Bài giảng Kiến trúc máy tính - Chương 1. Giới thiệu chung - Nguyễn Kim Khánh

pdf 51 trang phuongnguyen 2220
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Kiến trúc máy tính - Chương 1. Giới thiệu chung - Nguyễn Kim Khánh", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfbai_giang_kien_truc_may_tinh_chuong_1_gioi_thieu_chung_nguye.pdf

Nội dung text: Bài giảng Kiến trúc máy tính - Chương 1. Giới thiệu chung - Nguyễn Kim Khánh

  1. KIẾN TRÚC MÁY TÍNH Computer Architecture Nguyễn Kim Khánh, PhD. in Computer Engineering Bộ môn Kỹ thuật máy tính Viện Công nghệ thông tin và Truyền thông School of Information and Communication Technology (SoICT) 3 May 2012 IT3030
  2. NKK-HUT Contact  DCE’s Office: 322-C1  SoICT’s Office: 320-C1  Mobile: 091-358-5533  e-mail: khanhnk@soict.hut.edu.vn 3 May 2012 IT3030 2
  3. NKK-HUT Giới thiệu học phần  Mã số: IT3030  Khối lượng: 3(3-1-0-6)  Đối tượng tham dự: Sinh viên đại học các ngành công nghệ thông tin từ học kỳ 4.  Điều kiện học phần:  Học phần học trước: IT1010 (THĐC)  Đánh giá: TN/BT/KT(0,3)- T(0,7) 3 May 2012 IT3030 3
  4. NKK-HUT Mục tiêu học phần  Giới thiệu các kiến thức cơ bản về kiến trúc máy tính, bao gồm: kiến trúc tập lệnh và tổ chức của máy tính, cũng như các vấn đề cơ bản trong thiết kế một hệ thống máy tính.  Sinh viên có khả năng đánh giá được hiệu năng của các họ máy tính, khai thác và sử dụng hiệu quả các loại máy tính và có khả năng tiếp cận để phát triển các hệ máy tính nhúng phục vụ các mục đích chuyên dụng. 3 May 2012 IT3030 4
  5. NKK-HUT Tài liệu tham khảo chính 1. William Stallings - Computer Organization and Architecture – Designing for Performance – 2009 (8th edition) 2. David A. Patterson & John L. Hennessy - Computer Organization and Design: The Hardware/Software Interface – 2009 (4th edition) 3. Behrooz Parhami - Computer Architecture: From Microprocessors to Supercomputers - 2005 3 May 2012 IT3030 5
  6. NKK-HUT Tài liệu tham khảo 3 May 2012 IT3030 6
  7. NKK-HUT Nội dung học phần  Chương 1. Giới thiệu chung  Chương 2. Cơ bản về logic số  Chương 3. Hệ thống máy tính  Chương 4. Kiến trúc tập lệnh  Chương 5. Số học máy tính  Chương 6. Bộ xử lý  Chương 7. Bộ nhớ  Chương 8. Vào-ra  Chương 9. Kiến trúc máy tính tiên tiến 3 May 2012 IT3030 7
  8. NKK-HUT Kiến trúc máy tính Chương 1 GIỚI THIỆU CHUNG Nguyễn Kim Khánh Trường Đại học Bách khoa Hà Nội 3 May 2012 IT3030 8
  9. NKK-HUT Nội dung 1.1. Máy tính và phân loại 1.2. Kiến trúc máy tính 1.3. Sự phát triển của máy tính 1.4. Hiệu năng máy tính 3 May 2012 IT3030 9
  10. NKK-HUT 1.1. Máy tính và phân loại máy tính Máy tính  Máy tính (Computer) là thiết bị điện tử thực hiện các công việc sau:  Nhận thông tin vào,  Xử lý thông tin theo dãy các lệnh được nhớ sẵn bên trong,  Đưa thông tin ra.  Dãy các lệnh nằm trong bộ nhớ để yêu cầu máy tính thực hiện công việc cụ thể gọi là chương trình (program) Máy tính hoạt động theo chương trình. 3 May 2012 IT3030 10
  11. NKK-HUT Máy tính Bé xö lý trung t©m (Central Processing Unit) C¸c thiÕt bÞ vµo C¸c thiÕt bÞ ra (Input Devices) (Output Devices) Bé nhí chÝnh (Main Memory) 3 May 2012 IT3030 11
  12. NKK-HUT Phân loại máy tính  Phân loại truyền thống:  Máy vi tính (Microcomputers)  Máy tính nhỏ (Minicomputers)  Máy tính lớn (Mainframe Computers)  Siêu máy tính (Supercomputers) 3 May 2012 IT3030 12
  13. NKK-HUT Phân loại máy tính hiện đại Theo Hennessy/Patterson:  Máy tính để bàn (Desktop Computers)  Máy chủ (Server Computers)  Máy tính nhúng (Embedded Computers) 3 May 2012 IT3030 13
  14. NKK-HUT Máy tính để bàn  Là loại máy tính đa năng  Đa dạng phần mềm  1981 IBM giới thiệu máy tính IBM-PC sử dụng bộ xử lý Intel 8088  1984 Apple đưa ra Macintosh sử dụng bộ xử lý Motorola 68000  Giá thành: hàng trăm đến hàng nghìn USD 3 May 2012 IT3030 14
  15. NKK-HUT Máy chủ (Servers)  Thực chất là máy phục vụ  Dùng trong mạng theo mô hình Client/Server (Khách hàng/Người phục vụ)  Tốc độ và hiệu năng tính toán cao  Dung lượng bộ nhớ lớn  Độ tin cậy cao  Giá thành: hàng nghìn đến hàng chục triệu USD. 3 May 2012 IT3030 15
  16. NKK-HUT Máy tính nhúng (Embedded Computers)  Là máy tính đặt ẩn trong một thiết bị khác để điều khiển thiết bị đó làm việc  Được thiết kế chuyên dụng  Ví dụ:  Điện thoại di động  Máy ảnh số  Bộ điều khiển trong TV, máy giặt,  Router – bộ định tuyến trên mạng  Giá thành: vài USD đến hàng trăm nghìn USD. 3 May 2012 IT3030 16
  17. NKK-HUT 1.2. Kiến trúc máy tính  Định nghĩa trước đây về kiến trúc máy tính:  Cách nhìn logic của máy tính từ người lập trình (hardware/software interface)  Kiến trúc tập lệnh (Instruction Set Architecture – ISA)  Là định nghĩa hẹp 3 May 2012 IT3030 17
  18. NKK-HUT Định nghĩa của Hennessy/ Patterson  Kiến trúc máy tính bao gồm:  Kiến trúc tập lệnh (Instruction Set Architecture): nghiên cứu máy tính theo cách nhìn của người lập trình (hardware/software interface).  Tổ chức máy tính (Computer Organization): nghiên cứu thiết kế máy tính ở mức cao,chẳng hạn như hệ thống nhớ, cấu trúc bus, thiết kế bên trong CPU.  Phần cứng (Hardware): nghiên cứu thiết kế logic chi tiết và công nghệ đóng gói của máy tính.  Kiến trúc tập lệnh thay đổi chậm, tổ chức và phần cứng máy tính thay đổi rất nhanh. 3 May 2012 IT3030 18
  19. NKK-HUT Kiến trúc tập lệnh Kiến trúc tập lệnh của máy tính bao gồm:  Tập lệnh: tập hợp các chuỗi số nhị phân mã hoá cho các thao tác mà máy tính có thể thực hiện  Các kiểu dữ liệu: các kiểu dữ liệu mà máy tính có thể xử lý 3 May 2012 IT3030 19
  20. NKK-HUT Cấu trúc cơ bản của máy tính CPU Bé nhí chÝnh Bus liªn kÕt hÖ thèng Vµo-ra 3 May 2012 IT3030 20
  21. NKK-HUT Các thành phần cơ bản của máy tính  Bộ xử lý trung tâm (Central Processing Unit): Điều khiển hoạt động của máy tính và xử lý dữ liệu.  Bộ nhớ chính (Main Memory): Chứa các chương trình và dữ liệu đang được sử dụng.  Vào ra (Input/Output): Trao đổi thông tin giữa máy tính với bên ngoài.  Bus liên kết hệ thống (System Interconnection Bus): Kết nối và vận chuyển thông tin giữa các thành phần với nhau. 3 May 2012 IT3030 21
  22. NKK-HUT Mô hình phân lớp của máy tính Ng•êi sö dông Ng•êi lËp tr×nh C¸c øng dông Ng•êi thiÕt kÕ H§H C¸c phÇn mÒm trung gian HÖ ®iÒu hµnh PhÇn cøng  Phần cứng (Hardware): hệ thống vật lý của máy tính.  Phần mềm (Software): các chương trình và dữ liệu. 3 May 2012 IT3030 22
  23. NKK-HUT 1.3. Sự phát triển của của máy tính Các thế hệ máy tính  Thế hệ thứ nhất: Máy tính dùng đèn điện tử chân không (1950s)  Thế hệ thứ hai: Máy tính dùng transistor (1960s)  Thế hệ thứ ba: Máy tính dùng vi mạch SSI, MSI và LSI (1970s)  Thế hệ thứ tư: Máy tính dùng vi mạch VLSI (1980s)  Thế hệ thứ năm: Máy tính dùng vi mạch ULSI, SoC (1990s) 3 May 2012 IT3030 23
  24. NKK-HUT Máy tính dùng đèn điện tử  ENIAC- Máy tính điện tử đầu tiên  Electronic Numerical Intergator And Computer  Dự án của Bộ Quốc phòng Mỹ  Do John Mauchly và John Presper Eckert ở Đại học Pennsylvania thiết kế.  Bắt đầu từ năm 1943, hoàn thành năm 1946 3 May 2012 IT3030 24
  25. NKK-HUT ENIAC  Nặng 30 tấn  18000 đèn điện tử và 1500 rơle  5000 phép cộng/giây  Xử lý theo số thập phân  Bộ nhớ chỉ lưu trữ dữ liệu  Lập trình bằng cách thiết lập vị trí của các chuyển mạch và các cáp nối. 3 May 2012 IT3030 25
  26. NKK-HUT Máy tính von Neumann  Đó là máy tính IAS:  Princeton Institute for Advanced Studies  Được bắt đầu từ 1947, hoàn thành1952  Do John von Neumann thiết kế  Được xây dựng theo ý tưởng “chương trình được lưu trữ” (stored-program concept) của von Neumann/Turing (1945) 3 May 2012 IT3030 26
  27. NKK-HUT Đặc điểm chính của máy tính IAS  Bao gồm các thành phần: đơn vị điều khiển, đơn vị số học và logic (ALU), bộ nhớ chính và các thiết bị vào-ra.  Bộ nhớ chính chứa chương trình và dữ liệu  Bộ nhớ chính được đánh địa chỉ theo từng ngăn nhớ, không phụ thuộc vào nội dung của nó.  ALU thực hiện các phép toán với số nhị phân  Đơn vị điều khiển nhận lệnh từ bộ nhớ, giải mã và thực hiện lệnh một cách tuần tự.  Đơn vị điều khiển điều khiển hoạt động của các thiết bị vào-ra  Trở thành mô hình cơ bản của máy tính 3 May 2012 IT3030 27
  28. NKK-HUT Các máy tính thương mại ra đời  1947 - Eckert-Mauchly Computer Corporation  UNIVAC I (Universal Automatic Computer)  1950s - UNIVAC II  Nhanh hơn  Bộ nhớ lớn hơn 3 May 2012 IT3030 28
  29. NKK-HUT Hãng IBM  IBM - International Business Machine  1953 - IBM 701  Máy tính lưu trữ chương trình đầu tiên của IBM  Sử dụng cho tính toán khoa học  1955 – IBM 702  Các ứng dụng thương mại 3 May 2012 IT3030 29
  30. NKK-HUT Máy tính dùng transistor  Máy tính PDP-1 của DEC (Digital Equipment Corporation) máy tính mini đầu tiên  IBM 7000  Hàng trăm nghìn phép cộng trong một giây.  Các ngôn ngữ lập trình bậc cao ra đời. 3 May 2012 IT3030 30
  31. NKK-HUT Máy tính dùng vi mạch SSI, MSI và LSI  Vi mạch (Integrated Circuit - IC): nhiều transistor và các phần tử khác được tích hợp trên một chip bán dẫn.  SSI (Small Scale Integration)  MSI (Medium Scale Integration)  LSI (Large Scale Integration)  VLSI (Very Large Scale Integration) (thế hệ thứ tư)  ULSI (Ultra Large Scale Integration) (thế hệ thứ năm)  SoC (System on Chip)  Siêu máy tính xuất hiện: CRAY-1, VAX  Bộ vi xử lý (microprocessor) ra đời  Bộ vi xử lý đầu tiên Intel 4004 (1971). 3 May 2012 IT3030 31
  32. NKK-HUT Luật Moore  Gordon Moore – người đồng sáng lập Intel  Số transistors trên chip sẽ gấp đôi sau 18 tháng  Giá thành của chip hầu như không thay đổi  Mật độ cao hơn, do vậy đường dẫn ngắn hơn  Kích thước nhỏ hơn dẫn tới độ phức tạp tăng lên  Điện năng tiêu thụ ít hơn  Hệ thống có ít các chip liên kết với nhau, do đó tăng độ tin cậy 3 May 2012 IT3030 32
  33. NKK-HUT IBM 360 Family và PDP-11 (1973) 3 May 2012 IT3030 33
  34. NKK-HUT VAX-11, Micro VAX, CRAY-1 3 May 2012 IT3030 34
  35. NKK-HUT Máy tính dùng vi mạch VLSI/ULSI Các sản phẩm chính của công nghệ VLSI/ULSI:  Bộ vi xử lý (Microprocessor): CPU được chế tạo trên một chip.  Vi mạch điều khiển tổng hợp (Chipset): một hoặc một vài vi mạch thực hiện được nhiều chức năng điều khiển và nối ghép.  Bộ nhớ bán dẫn (Semiconductor Memory): ROM, RAM  Các bộ vi điều khiển (Microcontroller): máy tính chuyên dụng được chế tạo trên 1 chip. 3 May 2012 IT3030 35
  36. NKK-HUT Sự phát triển của bộ vi xử lý  1971: bộ vi xử lý 4-bit Intel 4004  1972-1977: các bộ xử lý 8-bit  1978-1984: các bộ xử lý 16-bit  Khoảng từ 1985: các bộ xử lý 32-bit  Khoảng từ 2000: các bộ xử lý 64-bit  Từ 2006: các bộ xử lý đa lõi (multicores): 3 May 2012 IT3030 36
  37. NKK-HUT Máy tính ngày nay Massive Cluster Gigabit Ethernet Clusters Sensor Refrigerators Nets Cars Robots Routers 3 May 2012 IT3030 37
  38. NKK-HUT 1.4. Hiệu năng máy tính  Định nghĩa hiệu năng: Performance = 1/Execution Time  “Máy tính X nhanh hơn máy Y n lần” Performanc e X Performanc e Y Execution time Y Execution time X n  Ví dụ: Thời gian chạy chương trình:  10s trên máy A, 15s trên máy B  Execution TimeB / Execution TimeA = 15s / 10s = 1.5 3 May 2012  Vậy máy A nhanhIT3030 hơn máy B 1.5 lần 38
  39. NKK-HUT Xung nhịp của CPU  Hoạt động của CPU được điều khiển bởi xung nhịp có tần số xác định Clock period Clock (cycles) Data transfer and computation Update state  Chu kỳ xung nhịp (Clock period): thời gian của một chu kỳ: –12  VD: 250ps = 0.25ns = 250×10 s  Tần số xung nhịp (Clock frequency hay Clock rate): số chu kỳ trong 1 giây: 9  VD: 4.0GHz = 4000MHz = 4.0×10 Hz 3 May 2012 IT3030 39
  40. NKK-HUT Thời gian CPU CPU Time CPU Clock Cycles Clock Cycle Time CPU Clock Cycles Clock Rate  Hiệu năng được tăng lên bằng cách:  Giảm số chu kỳ xung nhịp  Tăng tần số xung nhịp (Clock Rate) 3 May 2012 IT3030 40
  41. NKK-HUT Ví dụ  Máy tính A: 2GHz clock, 10s CPU time  Máy tính B  6s CPU time  Số chu kỳ xung nhịp của B = 1.2 x Số chu kỳ xung nhịp của A  Xác định tần số xung nhịp của máy B? Clock Cycles B 1.2 Clock Cycles A Clock Rate B CPU Time B 6s Clock Cycles A CPU Time A Clock Rate A 10s 2GHz 20 10 9 1.2 20 10 9 24 10 9 Clock Rate B 4GHz 6s 6s 3 May 2012 IT3030 41
  42. NKK-HUT Số lệnh và số chu kỳ trên một lệnh Clock Cycles Instructio n Count Cycles per Instructio n CPU Time Instructio n Count CPI Clock Cycle Time Instructio n Count CPI Clock Rate  Số lệnh của chương trình: IC (Instruction Count):  Được xác định bởi chương trình, kiến trúc tập lệnh và chương trình dịch  Số chu kỳ trên một lệnh: CPI (Cycles per Instruction)  CPI trung bình:  Được xác định bởi phần cứng CPU  Các lệnh khác nhau có CPI khác nhau 3 May 2012 IT3030 42
  43. NKK-HUT Ví dụ  Máy tính A: Cycle Time = 250ps, CPI = 2.0  Máy tính B: Cycle Time = 500ps, CPI = 1.2  Cùng kiến trúc tập lệnh (ISA)  Máy nào nhanh hơn và nhanh hơn bao nhiêu ? CPU Time Instructio n Count CPI Cycle Time A A A I 2.0 250ps I 500ps A nhanh hơn CPU Time Instructio n Count CPI Cycle Time B B B I 1.2 500ps I 600ps CPU Time B I 600ps 1.2 lần CPU Time I 500ps A 3 May 2012 IT3030 43
  44. NKK-HUT Chi tiết hơn về CPI  Nếu loại lệnh khác nhau có số chu kỳ khác nhau n Clock Cycles (CPI Instructio n Count )  i i i 1  CPI trung bình: Clock Cycles n Instructio n Count CPI CPI i  i Instructio n Count i 1 Instructio n Count 3 May 2012 IT3030 44
  45. NKK-HUT Ví dụ  Cho bảng chỉ ra các dãy lệnh sử dụng các lệnh thuộc các loại A, B, C Loại lệnh A B C CPI theo loại lệnh 1 2 3 IC trong dãy lệnh 1 2 1 2 IC trong dãy lệnh 2 4 1 1  Dãy lệnh 1: IC = 5  Dãy lệnh 2: IC = 6  Clock Cycles  Clock Cycles = 2×1 + 1×2 + 2×3 = 4×1 + 1×2 + 1×3 = 10 = 9  Avg. CPI = 10/5 = 2.0  Avg. CPI = 9/6 = 1.5 3 May 2012 IT3030 45
  46. NKK-HUT Tóm tắt về Hiệu năng Instructio ns Clock cycles Seconds CPU Time Program Instructio n Clock cycle  Hiệu năng phụ thuộc vào:  Thuật toán: ảnh hưởng tới IC, có thể cả CPI  Ngôn ngữ lập trình: ảnh hưởng tới IC, CPI  Chương trình dịch: ảnh hưởng tới IC, CPI  Kiến trúc tập lệnh: ảnh hưởng tới IC, CPI, Tc 3 May 2012 IT3030 46
  47. NKK-HUT MIPS như là thước đo hiệu năng  MIPS: Millions of Instructions Per Second (Số triệu lệnh trên 1 giây) Instructio n count MIPS Execution time 10 6 Instructio n count Clock rate 6 Instructio n count CPI 6 CPI 10 10 Clock rate Clock rate CPI MIPS 10 6 3 May 2012 IT3030 47
  48. NKK-HUT Ví dụ Tính MIPS của bộ xử lý với: clock rate = 2GHz và CPI = 4 0.5ns 2ns 1 chu kỳ = 1/(2x109) = 0,5ns CPI = 4 1 lệnh = 4x0,5ns = 2ns Vậy bộ xử lý thực hiện được 500MIPS 3 May 2012 IT3030 48
  49. NKK-HUT Ví dụ Tính CPI của bộ xử lý với: clock rate = 1GHz và 400 MIPS? 1ns 4x108 lệnh thực hiện trong 1s 8 1 lệnh thực hiện trong 1/(4x10 )s = 2,5ns CPI = 2,5 3 May 2012 IT3030 49
  50. NKK-HUT MFLOPS Millions of Floating Point Operations per Second (Số triệu phép toán số dấu phẩy động trên một giây) Executed floating point operations MFLOPS Execution time 10 6 GFLOPS(109 ) TFLOPS(1012) 3 May 2012 IT3030 50
  51. NKK-HUT Hết chương 1 3 May 2012 IT3030 51