Bài giảng kiến trúc máy tính chương 1: Nhập môn kiến trúc máy tính

Một máy tính số được phát triển trên cơ sở của 2 phần: Phần cứng và phần mềm - Phần cứng (Hardware) - Phần mềm (Software)

pdf59 trang | Chia sẻ: haohao89 | Lượt xem: 2092 | Lượt tải: 3download
Bạn đang xem trước 20 trang tài liệu Bài giảng kiến trúc máy tính chương 1: Nhập môn kiến trúc máy tính, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Bài giảng KIẾN TRÚC MÁY TÍNH TRƯỜNG CĐCĐ ĐỒNG THÁP KHOA KT-CN  9/7/2010 GV: Huỳnh Văn Khỏe 2 Chương 1: Nhập môn kiến trúc máy tính 9/7/2010 GV: Huỳnh Văn Khỏe 3  Nội dung: 1.1 Một số khái niệm và nguyên lý cơ bản 1.1.1 Nguyên tắc tổ chức 1.1.2 Ngôn ngữ máy và các cấp kiến trúc máy tính 1.2 Lịch sử phát triển và phân loại máy tính 1.2.1 Lịch sử phát triển 1.2.2 Phân loại máy tính 1.3 Các hệ thống số 1.3.1 Hệ thập phân 1.3.2 Hệ nhị phân 1.3.2 Hệ bát phân 1.3.3 Hệ thập lục phân 1.4 Số nguyên có dấu 9/7/2010 GV: Huỳnh Văn Khỏe 4 1.1 Một số khái niệm và nguyên lý cơ bản 1.1.1 Nguyên tắc tổ chức: Một máy tính số được phát triển trên cơ sở của 2 phần: Phần cứng và phần mềm - Phần cứng (Hardware) - Phần mềm (Software) 9/7/2010 GV: Huỳnh Văn Khỏe 5 Phần cứng (Hardware) 9/7/2010 GV: Huỳnh Văn Khỏe 6 1.1 Một số khái niệm và nguyên lý cơ bản 1.1.2 Ngôn ngữmáy và các cấp kiến trúc máy tính Các ngôn ngữ bậc cao và hướng đối tượngi t Cấp hợp ngữ Cấp máy hệ điều hànhi Cấp lệnh máy (lệnh vĩ mô) l (l ĩ ) Cấp vi lệnh (lệnh vi mô)i l (l i ) Cấp logic số (Các mạch điện tử số) l i ( i t ) 5 4 3 2 1 0 9/7/2010 GV: Huỳnh Văn Khỏe 7 1.2 Lịch sử phát triển và ứng dụng của máy tính điện tử: 1.2.1 Các thế hệ máy tính: Thế hệ thứ I (1946 – 1957) Thế hệ thứ II (1958 – 1964) Thế hệ thứ III (1965 – 1971) Thế hệ thứ IV (1972 - … ) 9/7/2010 GV: Huỳnh Văn Khỏe 8 1.2.2 Lịch sử phát triển: Sự phát triển của máy tính được mô tả dựa trên sự tiến bộ của các công nghệ chế tạo các linh kiện cơ bản của máy tính như: bộ xử lý, bộ nhớ, các ngoại vi,… 1.2 Lịch sử phát triển và ứng dụng của máy tính điện tử: 9/7/2010 GV: Huỳnh Văn Khỏe 9 1.2.2 Lịch sử phát triển: 1.2.2.1 Thế hệ đầu tiên (1946-1957): - Công nghệ chế tạo: + Đèn điện tử + Rờ le - Phần mềm: + Lập trình bằng tay 9/7/2010 GV: Huỳnh Văn Khỏe 10 1.2.2 Lịch sử phát triển: 1.2.2.1 Thế hệ đầu tiên (1946-1957): Tiêu biểu: ENIAC (Electronic Numerical Integrator and Computer) là máy tính điện tử số đầu tiên do Giáo sư Mauchly và người học trò Eckert tại Đại học Pennsylvania thiết kế vào năm 1943 và được hoàn thành vào năm 1946 9/7/2010 GV: Huỳnh Văn Khỏe 11 1.2.2.1 Thế hệ đầu tiên: 9/7/2010 GV: Huỳnh Văn Khỏe 12 1.2.2.1 Thế hệ đầu tiên: Giáo sư toán học John Von Neumann đã đưa ra ý tưởng thiết kế máy tính IAS (Princeton Institute for Advanced Studies Máy tính Von Neumann. 9/7/2010 GV: Huỳnh Văn Khỏe 13 - Sử dụng Transistor lưỡng cực (BJT) - Mạch in - Bộ nhớ xuyến từ - Ngôn ngữ lập trình đầu tiên : FORTRAN (1956), COBOL (1959), ALGOL (1960) - Hệ điều hành kiểu tuần tự (Batch Processing) được dùng 1.2.2.2 Thế hệ thứ 2 (1958-1964): 9/7/2010 GV: Huỳnh Văn Khỏe 14 1.2.2.2 Thế hệ thứ 2 (1958-1964): 9/7/2010 GV: Huỳnh Văn Khỏe 15 1.2.2.2 Thế hệ thứ 2 (1958-1964): - Mạch in (PCB: Printed Circuit Board) 9/7/2010 GV: Huỳnh Văn Khỏe 16 1.2.2.2 Thế hệ thứ 2 (1958-1964): - Bộ nhớ xuyến từ: 9/7/2010 GV: Huỳnh Văn Khỏe 17 - Mạch tích hợp (IC: Integrated Circuit) - S/MSI : Small/Medium Scale Integration - Mạch in nhiều lớp - Bộ nhớ bán dẫn - Máy tính đa chương trình - Hệ điều hành chia thời gian được dùng. 1.2.2.3 Thế hệ thứ 3 (1965-1971): 9/7/2010 GV: Huỳnh Văn Khỏe 18 1.2.2.3 Thế hệ thứ 3 (1965-1971): 9/7/2010 GV: Huỳnh Văn Khỏe 19  Công nghệ chế tạo: - L/VLSI : Large/Very large Scale Integration - Bộ xử lí (Microprocessor) PC (Personal Computer) NC (Network Computer) - Bộ nhớ bán dẫn, bộ nhớ cache và bộ nhớ ảo - Kỹ thuật ống dẫn (pipeline), máy tính song song  Phần mềm: - Các giải thuật Song song, - HĐH phân tán (Client-server) 1.2.2.4 Thế hệ thứ 4 (1972-nay): 9/7/2010 GV: Huỳnh Văn Khỏe 20 1.2.2.4 Thế hệ thứ 4 (1972-nay) 9/7/2010 GV: Huỳnh Văn Khỏe 21 1.2.2.5 Khuynh hướng hiện đại: 9/7/2010 GV: Huỳnh Văn Khỏe 22 1.2.3 Phân loại máy tính: Đơn vị flop: - gigaflop tỷ phép tính/giây - teraflop nghìn tỷ phép tính/giây - petaflop triệu tỷ phép tính/giây - exaflop tỷ tỷ phép tính/giây - zettaflop nghìn tỷ tỷ phép tính/giây - yottaflop triệu tỷ tỷ phép tính/giây - xeraflop tỷ tỷ tỷ phép tính/giây 9/7/2010 GV: Huỳnh Văn Khỏe 23 1.2.3 Phân loại máy tính: - Siêu máy tính (Super computer): - Vượt trội trong khả năng và tốc độ xử lý. - Siêu máy tính hiện nay có tốc độ xử lý hàng trăm teraflop (một teraflop tương đương với hiệu suất một nghìn tỷ phép tính/giây) - Có thể hiểu siêu máy tính là hệ thống những máy tính làm việc song song. - Giá vài triệu USD - Dùng để tính toán khoa học 9/7/2010 GV: Huỳnh Văn Khỏe 24 1.2.3 Phân loại máy tính: - Siêu máy tính (Super computer): - Siêu máy tính mới của IBM gồm 96 khối máy, mỗi khối có kích cỡ bằng một chiếc tủ lạnh - Tên là Sequoia, sẽ được đưa ra thị trường vào năm 2011 và khách hàng đầu tiên là Bộ Năng lượng Mỹ. Bộ này sẽ sử dụng nó cho các nghiên cứu thử nghiệm hạt nhân. - Sequoia được thiết kế có tốc độ xử lý 20 triệu tỷ phép tính/1 giây, nhanh hơn 20 lần so với tốc độ của chiếc siêu máy tính nhanh nhất thế giới hiện nay và nhanh gấp 2 triệu lần một chiếc máy tính thông thường. 9/7/2010 GV: Huỳnh Văn Khỏe 25 1.2.3 Phân loại máy tính: - Siêu máy tính (Super computer): - Nhỏ gọn như máy để bàn - Siêu máy tính SC072 – tên mã là Catapult - Trang bị tới 72 chip vi xử lý, 48GB dung lượng bộ nhớ RAM, 3 cổng PCIExpress kết nối thiết bị lưu trữ và có mức tiêu thụ năng lượng trung bình vào khoảng 200 watts. 9/7/2010 GV: Huỳnh Văn Khỏe 26 1.2.3 Phân loại máy tính: - Máy tính lớn (Mainframe) - Là loại máy tính có kích thước lớn được sử dụng chủ yếu bởi các công ty lớn như các ngân hàng, các hãng bảo hiểm ... - Có thể nhận hàng ngàn lệnh cùng 1 lúc. - Ví dụ máy IBM Z9 (2008) có thể được cài 20 processor và đáp ứng 8000.000.000 (8 tỉ) lệnh 1 giây . 9/7/2010 GV: Huỳnh Văn Khỏe 27 1.2.3 Phân loại máy tính: - Máy tính mini (Minicomputer) - Được sử dụng như mainframe - Sức mạnh ở giữa máy tính lớn và máy tính cá nhân - Là một hệ thống đa xử lý có khả năng hỗ trợ từ 4 đến khoảng 200 người sử dụng cùng một lúc. - Ứng dụng trong các trường đại học, các ngành công nghiệp,và thương mại - Giá vài chục ngàn USD 9/7/2010 GV: Huỳnh Văn Khỏe 28 1.2.3 Phân loại máy tính: - Máy tính cá nhân (Microcomputer/PC) 9/7/2010 GV: Huỳnh Văn Khỏe 29  Thành quả của máy tính: 9/7/2010 GV: Huỳnh Văn Khỏe 30 Quy luật MOORE về sự phát triển của máy tính  Thành quả của máy tính: 9/7/2010 GV: Huỳnh Văn Khỏe 31  Thành quả của máy tính: 9/7/2010 GV: Huỳnh Văn Khỏe 32  Thành quả của máy tính: 9/7/2010 GV: Huỳnh Văn Khỏe 33  Thành quả của máy tính: 9/7/2010 GV: Huỳnh Văn Khỏe 34  Thành quả của máy tính: 9/7/2010 GV: Huỳnh Văn Khỏe 35 Quy luật MOORE về sự phát triển của máy tính  Thành quả của máy tính: 9/7/2010 GV: Huỳnh Văn Khỏe 36 1.3 Các hệ thống số - Khái niệm thông tin Thông tin số: tri thức về một trạng thái trong số một số hữu hạn các trạng thái có thể có Lượng tử thông tin: 1 bit thông tin: được biểu diễn bởi số nhị phân 0,1 n bit có 2n trạng thái khác nhau Lượng thông tin chứa trong tri thức của một trạng thái trong số N là I= log2N Độ lớn thông tin mà máy tính có thể thao tác: 8, 16, 32, 64 bits 9/7/2010 GV: Huỳnh Văn Khỏe 37 1.3 Các hệ thống số - Biểu diễn số: Cần phân biệt số và cách thể hiện số. Thể hiện một số là một cách mã hoá Một hệ thống số được gọi là hệ b sẽ gồm b ký hiệu trong một tập hợp: Một số N được viết: Sẽ có giá trị là: i n mi i m m i i n n n n ba babaababababaN           .........( 1 10 1 1 1 1  110 ,...,,  bb ssss bibminn saaaaaaaaaN   ;)...,......( 21011 9/7/2010 GV: Huỳnh Văn Khỏe 38 1.3 Các hệ thống số 1.3.1 Hệ thập phân (cơ số 10) Gồm 10 số mã trong một tập hợp 1.3.2 Hệ nhị phân (cơ số 2) Gồm 2 số mã trong một tập hợp 1.3.3 Hệ bát phân (cơ số 8) Gồm 8 số mã trong một tập hợp 1.3.4 Hệ thập lục phân (cơ số 16) Gồm 16 số mã trong một tập hợp (theo sau có chữ H hay h)  9,...,2,1,010 s  1,02 s  7,...,2,1,08 s  FEDCBAs ,,,,,,9,...,2,1,016  9/7/2010 GV: Huỳnh Văn Khỏe 39 1.3.5 Chuyển cơ số  Từ hệ b sang hệ 10  Từ hệ 10 sang hệ b Một số N hệ b có dạng: Trong đó: : là phần nguyên và : là phần lẻ của N i n mi i m m i i n n n n ba babaababababaN           .........( 1 10 1 1 1 1 bibminn saaaaaaaaaN   ;)...,......( 21011 )()......( 01 NPEaaaa binn  )()...,0( 21 NPFaaa bm  9/7/2010 GV: Huỳnh Văn Khỏe 40  Từ hệ 10 sang hệ b VD: đổi số 25,12510 sang hệ 2 Phần nguyên 25:2=12 dư 1  a0=1 12:2=6 dư 0  a1=0 6:2 = 3 dư 0  a2=0 3:2 =1 dư 1  a3=1 1:2 = 0 dư 1  a4=1  PE(N) = 11001 9/7/2010 GV: Huỳnh Văn Khỏe 41  Từ hệ 10 sang hệ b Phần lẻ: 0,125 x 2 = 0,025  a-1=0 0,025 x 2 =0,5  a-2=0 0,5 x 2 =1,0  a-3 = 1  PF(N)=001 Kết quả : 25,12510 = 11001.0012 9/7/2010 GV: Huỳnh Văn Khỏe 42 Đổi một số từ hệ b sang hệ bk và ngược lại: Để đổi một số từ hệ b sang hệ bk, từ dấu phẩy đi về 2 phía ta nhóm từng k số hạng, giá trị của mỗi k số hạng này (tính theo hệ b) chính là số trong hệ bk VD: đổi số N=10111110101.011012 sang hệ 8 = 23 N= 010 111 110 101. 011 010 N= 2 7 6 5 , 3 2 8 9/7/2010 GV: Huỳnh Văn Khỏe 43 Đổi một số từ hệ bk sang hệ bp và ngược lại Để đổi một số N từ hệ bk sang hệ bp, trước nhất ta đổi N cang hệ b, rồi từ hệ b tiếp tục đổi sang hệ bp. VD: đổi số N=1234,678 sang hệ 16 = 24 N= 001 010 011 100. 110 111 N= 0010 1001 1100. 1101 1100 N= 2 9 C , D C H 9/7/2010 GV: Huỳnh Văn Khỏe 44 Bảng kê các số đầu tiên trong các hệ khác nhau: Thập phân Nhị phân Bát phân Thập lục phân Thập phân Nhị phân Bát phân Thập lục phân 0 1 2 3 4 5 6 7 8 9 10 11 12 0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 0 1 2 3 4 5 6 7 10 11 12 13 14 0 1 2 3 4 5 6 7 8 9 A B C 13 14 15 16 17 18 19 20 21 22 23 24 25 1101 1110 1111 10000 10001 10010 10011 10100 10101 10110 10111 11000 11001 15 16 17 20 21 22 23 24 25 26 27 30 31 D E F 10 11 12 13 14 15 16 17 18 19 9/7/2010 GV: Huỳnh Văn Khỏe 45 1.3.6 Các phép tính trong hệ nhị phân:  Phép cộng: 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 0 (nhớ 1 cho bít cao hơn) Lưu ý: -Nếu số bít 1 chẵn, kết quả là 0 -Nếu bít 1 lẻ, kết quả là 1 -Và cứ 1 cặp bít 1 cho một số nhớ VD: tính 011 + 101 + 011 + 011 1 1  số nhớ 1 1 1  số nhớ 0 1 1 + 1 0 1 0 1 1 0 1 1 1 1 1 0 9/7/2010 GV: Huỳnh Văn Khỏe 46 1.3.6 Các phép tính trong hệ nhị phân:  Phép trừ: 0 - 0 = 0 1 - 1 = 0 1 - 0 = 1 0 - 1 = 1 (nhớ 1 cho bít cao hơn) VD: tính 1 0 1 1 – 0 1 0 1 1  số nhớ 1 0 1 1 - 0 1 0 1 0 1 1 0 9/7/2010 GV: Huỳnh Văn Khỏe 47 1.3.6 Các phép tính trong hệ nhị phân:  Phép nhân: 0 x 0 = 0 1 x 0 = 0 1 x 1 = 1 VD: tính 1 1 0 1 x 1 0 1 1 1 0 1 x 1 0 1 1 1 0 1 0 0 0 0 1 1 0 1 1 0 0 0 0 0 1 9/7/2010 GV: Huỳnh Văn Khỏe 48 1.3.6 Các phép tính trong hệ nhị phân:  Phép chia: VD: chia 1 0 0 1 1 0 0 1 0 0 cho 1 1 0 0 0 1 0 0 1 1 0 0 1 0 0 1 1 0 0 0 - 1 1 0 0 0 1 1 0 0 1. 1 0 0 1 1 1 0 0 -1 1 0 0 0 0 0 1 0 0 1 0 0 - 1 1 0 0 0 0 1 1 0 0 0 Thêm 0 vào để chia tiếp lấy phần lẻ - 1 1 0 0 0 0 0 0 0 0 9/7/2010 GV: Huỳnh Văn Khỏe 49 1.4 Số nguyên có dấu: Có nhiều cách để biểu diễn một số n bit có dấu. Trong tất cả mọi cách thì bit cao nhất luôn tượng trưng cho dấu. - bit dấu có giá trị là 0 thì số nguyên dương - bit dấu có giá trị là 1 thì số nguyên âm dn-1 dn-2 di d1 d0 bit dấu Số nguyên có bit dn-1 là bit dấu và có trị số tượng trưng bởi các bit từ d0 tới dn-2 …… 9/7/2010 GV: Huỳnh Văn Khỏe 50 1.4.1 Cách biểu diễn bằng trị tuyệt đối và dấu Trong cách này, bit dn-1 là bit dấu và các bit từ d0 tới dn-2 cho giá trị tuyệt đối. Một từ n bit tương ứng với số nguyên thập phân có dấu. Ví dụ: +2510 = 000110012 -2510 = 100110012 - Một Byte (8 bit) có thể biểu diễn các số có dấu từ -127 tới +127. - Có hai cách biểu diễn số không là 00000000 (+0) và 10000000 (-0). i n i i d dN n 2)1( 2 0 1    9/7/2010 GV: Huỳnh Văn Khỏe 51 1.4.2 Cách biểu diễn hằng số bù 1 Số âm -N được có bằng cách thay các số nhị phân di của số đương N bằng số bù của nó (nghĩa là nếu di = 0 thì người ta đổi nó thành 1 và ngược lại). Ví dụ: +2510 = 0 0 0 1 1 0 0 12 -2510 = 1 1 1 0 0 1 1 02 - Một Byte cho phép biểu diễn tất cả các số có dấu từ -127 (100000002) đến 127 (0111 11112) - Có hai cách biểu diễn cho 0 là 00000000 (+0) và 11111111 (-0). 9/7/2010 GV: Huỳnh Văn Khỏe 52 1.4.3 Cách biểu diễn hằng số bù 2 Để có số bù 2 của một số nào đó, người ta lấy số bù 1 rồi cộng thêm 1. Vậy một từ n bit (dn-1 ....... d0) có trị thập phân. Ví dụ: +2510 = 000110012 -2510 = 111001112 - Dùng 1 Byte (8 bit) để biểu diễn một số có dấu lớn nhất là +127 và số nhỏ nhất là –128. - Chỉ có một giá trị 0: +0 = 000000002, -0 = 000000002 i n i i n n ddN 22 2 0 1 1       9/7/2010 GV: Huỳnh Văn Khỏe 53 1.4.4 Cách biểu diễn bằng số thừa K Số dương của một số N có được bằng cách “cộng thêm vào” số thừa K được chọn sao cho tổng của K và một số âm bất kỳ luôn luôn dương. Số âm -N của số N có được bằng cáck lấy K-N (hay lấy bù hai của số vừa xác định). Ví dụ: (số thừa K=128, số “cộng thêm vào” 128 là một số nguyên dương. Số âm là số lấy bù hai số vừa tính, bỏ qua số giữ của bit cao nhất) : 128 + 2510 = 100110012 - 2510 = 011001112 - Dùng 1 Byte (8 bit) để biểu diễn một số có dấu lớn nhất là +127 và số nhỏ nhất là –128. - Chỉ có một giá trị 0: +0 = 100000002, -0 = 100000002 9/7/2010 GV: Huỳnh Văn Khỏe 54 1.4.5 Cách biểu diễn số với dấu chấm động Chuẩn IEEE 754 định nghĩa hai dạng biểu diễn số chấm động: - Số chấm động chính xác đơn với định dạng được định nghĩa: chiều dài số: 32 bit được chia thành các trường: dấu S (Sign bit - 1 bit), mũ E (Exponent – 8 bit), phần lẻ F (Fraction - 23 bit). Số này tương ứng với số thực (-1)S * (1,f1 f2 ..... f23) * 2(E - 127) Bit 31 30 23 22 1 0 S E f1 f2 …… f22 f23 9/7/2010 GV: Huỳnh Văn Khỏe 55 1.4.5 Cách biểu diễn số với dấu chấm động Chuẩn IEEE 754 định nghĩa hai dạng biểu diễn số chấm động: - Số chấm động chính xác kép với định dạng được định nghĩa: chiều dài số: 64 bit được chia thành các trường: dấu S (Sign bit - 1 bit), mũ E (Exponent – 11 bit), phần lẻ F (Fraction - 52 bit) Số này tương ứng với số thực (-1)S * (1,f1 f2 ..... f52) * 2(E - 1023) Bit 63 62 52 51 1 0 S E f1 f2 …… f22 f23 9/7/2010 GV: Huỳnh Văn Khỏe 56 1.4.5 Cách biểu diễn số với dấu chấm động VD: Đổi số thập phân -12.62510 sang số chấm động chuẩn IEEE 754 chính xác đơn (32 bit) - Bước 1: Đổi số -12.62510 sang nhị phân: -12.62510 = - 1100.1012 - Bước 2: Chuẩn hoá: -1100.1012 = -1.1001012 x 23 (Số 1.1001012 dạng 1.f) - Bước 3: Điền các bit vào các trường theo chuẩn: Số âm: bit dấu S có giá trị 1. Phần mũ E với số thừa K=127, ta có: E-127=3 ⇒ E = 3 + 127 = 130 (1000 00102). Kết quả: 1 1000 0010 1001 0100 0000 0000 0000 000 S E F Câu hỏi ôn tập Bài tập Tài liệu tham khảo 1. Giáo trình kiến trúc máy tính – Khoa CNTT&TT trường ĐHCT (2003) 2. Kiến trúc máy tính – Hóa NGUYEN - College of Technology, Vietnam National University, HanoiUniversity 3. Kiến trúc máy tính – Trần Quang Vinh – NXB ĐHSP 4. Giáo trình Kỹ thuật số - Nguyễn Trung Lập – Trường ĐHCT