Bài giảng Kiến trúc máy tính - Nguyễn Kim Khánh
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 - 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:
- bai_giang_kien_truc_may_tinh_nguyen_kim_khanh.pdf
Nội dung text: Bài giảng Kiến trúc máy tính - Nguyễn Kim Khánh
- 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
- 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
- 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
- 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
- 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
- NKK-HUT Tài liệu tham khảo 3 May 2012 IT3030 6
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- NKK-HUT IBM 360 Family và PDP-11 (1973) 3 May 2012 IT3030 33
- NKK-HUT VAX-11, Micro VAX, CRAY-1 3 May 2012 IT3030 34
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- NKK-HUT Hết chương 1 3 May 2012 IT3030 51