Page 1
Bài giảng Kiến trúc máy tính 14 January 2013 NKK-HUST Contact Information Address: DCE’s Office: 502-B1 KIẾN TRÚC MÁY TÍNH SoICT’s Office: 503-B1 CS Lab: 505-B1 Computer Architecture Mobile: 091-358-5533 e-mail: khanhnk@soict.hut.edu.vn Nguyễn Kim Khánh khanh.nguyenkim@hust.edu.vn Bộ môn Kỹ thuật máy tính Viện Công nghệ thông tin và Truyền thông Trường Đại học Bách Khoa Hà Nội Department of Computer Engineering (DCE) School of Information and Communication Technology (SoICT) Hanoi University of Science and Technology (HUST) 14 January 2013 Kiến trúc máy tính 2 NKK-HUST NKK-HUST Mục tiêu học phần Tài liệu tham khảo chính Sinh viên được trang bị các kiến thức cơ sở về [1] William Stallings - Computer Organization and kiến trúc tập lệnh và tổ chức của máy tính, cũng Architecture – Designing for Performance – 2009 (8th như những vấn đề cơ bản trong thiết kế máy edition) tính. [2] David A. Patterson & John L. Hennessy - Sau khi học xong học phần này, sinh viên có Computer Organization and Design: The khả năng: Hardware/Software Interface – 2009 (4th edition) Tìm hiểu kiến trúc tập lệnh của các bộ xử lý cụ thể [3] David Money Harris and Sarah L. Harris, Digital Lập trình hợp ngữ trên một số kiến trúc Design and Computer Architecture, 2007 Đánh giá hiệu năng của các họ máy tính Khai thác và quản trị hiệu quả các hệ thống máy tính [4] Behrooz Parhami - Computer Architecture: From Phân tích và thiết kế máy tính Microprocessors to Supercomputers - 2005 14 January 2013 Kiến trúc máy tính 3 14 January 2013 Kiến trúc máy tính 4 goupee.com fb.com/groups/goupee Nguyễn Kim Khánh - ĐHBKHN
Page 2
Bài giảng Kiến trúc máy tính 14 January 2013 NKK-HUST NKK-HUST Nội dung học phần Chú ý: Bài giảng mới nhất Jan 2013 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 ftp://dce.hut.edu.vn/khanhnk/CA Chương 4. Số học máy tính Chương 5. Kiến trúc tập lệnh Chương 6. Cấu trúc bộ xử lý Chương 7. Bộ nhớ Chương 8. Vào-ra Chương 9. Các kiến trúc song song 14 January 2013 Kiến trúc máy tính 5 NKK-HUST NKK-HUST Kiến trúc máy tính Nội dung Chương 1 1.1. Máy tính và phân loại 1.2. Kiến trúc máy tính GIỚI THIỆU CHUNG 1.3. Lịch sử phát triển của máy tính 1.4. Hiệu năng máy tính Nguyễn Kim Khánh Trường Đại học Bách khoa Hà Nội 14 January 2013 Kiến trúc máy tính 7 14 January 2013 Kiến trúc máy tính 8 goupee.com fb.com/groups/goupee Nguyễn Kim Khánh - ĐHBKHN
Page 3
Bài giảng Kiến trúc máy tính 14 January 2013 NKK-HUST NKK-HUST 1.1. Máy tính và phân loại máy tính Máy tính .... 1. 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. 14 January 2013 Kiến trúc máy tính 9 14 January 2013 Kiến trúc máy tính 10 NKK-HUST NKK-HUST 2. Phân loại máy tính Phân loại máy tính hiện đại [H&P] Thiết bị di động cá nhân (Personal Mobile Phân loại truyền thống: Device): Smartphone, Tablet,… Máy vi tính (Microcomputers) Máy tính để bàn (Desktop Computers) Máy tính nhỏ (Minicomputers) Máy chủ (Server Computers) Máy tính lớn (Mainframe Computers) Dùng trong mạng theo mô hình Client/Server Siêu máy tính (Supercomputers) Máy tính cụm/nhà kho (Clusters/Warehouse Scale Computers) Máy tính nhúng (Embedded Computers) Đặt ẩn trong thiết bị khác Thiết kế chuyên dụng 14 January 2013 Kiến trúc máy tính 11 14 January 2013 Kiến trúc máy tính 12 goupee.com fb.com/groups/goupee Nguyễn Kim Khánh - ĐHBKHN
Page 4
Bài giảng Kiến trúc máy tính 14 January 2013 NKK-HUST NKK-HUST 1.2. Định nghĩa kiến trúc máy tính Định nghĩa của Hennessy/ Patterson Định nghĩa trước đây về kiến trúc máy Kiến trúc máy tính bao gồm: tính: 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 Cách nhìn logic của máy tính từ người lập trình (hardware/software interface). trình (hardware/software interface) Tổ chức máy tính (Computer Organization): nghiên Kiến trúc tập lệnh (Instruction Set Architecture cứu thiết kế máy tính ở mức cao,chẳng hạn như hệ – ISA) thống nhớ, cấu trúc bus, thiết kế bên trong CPU. Là định nghĩa hẹp 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. 14 January 2013 Kiến trúc máy tính 13 14 January 2013 Kiến trúc máy tính 14 NKK-HUST NKK-HUST 1. Kiến trúc tập lệnh 2. Cấu trúc cơ bản của máy tí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ý 14 January 2013 Kiến trúc máy tính 15 14 January 2013 Kiến trúc máy tính 16 goupee.com fb.com/groups/goupee Nguyễn Kim Khánh - ĐHBKHN
Page 5
Bài giảng Kiến trúc máy tính 14 January 2013 NKK-HUST NKK-HUST Các thành phần cơ bản của máy tính Mô hình phân lớp của máy tính Bộ xử lý trung tâm (Central Processing Unit): Người sử Điều khiển hoạt động của máy tính và xử lý dữ dụng Người lập trình liệu. Bộ nhớ chính (Main Memory): Chứa các Các phần mềm ứng dụng Người chương trình và dữ liệu đang được sử dụng. thiết kế Các phần mềm trung gian HĐH Vào ra (Input/Output): Trao đổi thông tin giữa máy tính với bên ngoài. Hệ điều hành Bus liên kết hệ thống (System Interconnection Phần cứng Bus): Kết nối và vận chuyển thông tin giữa các thành phần với nhau. 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. 14 January 2013 Kiến trúc máy tính 17 14 January 2013 Kiến trúc máy tính 18 NKK-HUST NKK-HUST 1.3. Lịch sử phát triển của của máy tính Máy tính dùng đèn điện tử Các thế hệ máy tính ENIAC- Máy tính điện tử đầu tiên Electronic Numerical Intergator And Thế hệ thứ nhất: Máy tính dùng đèn điện tử Computer chân không (1950s) Dự án của Bộ Quốc phòng Mỹ Thế hệ thứ hai: Máy tính dùng transistor Do John Mauchly và John Presper Eckert ở Đại học Pennsylvania thiết (1960s) kế. Thế hệ thứ ba: Máy tính dùng vi mạch SSI, Bắt đầu từ 1943, hoàn thành 1946 MSI và LSI (1970s) Nặng 30 tấn 18000 đèn điện tử và 1500 rơle Thế hệ thứ tư: Máy tính dùng vi mạch VLSI 5000 phép cộng/giây (1980s) Xử lý theo số thập phân Thế hệ thứ năm: Máy tính dùng vi mạch Bộ nhớ chỉ lưu trữ dữ liệu ULSI, SoC (1990s) 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. 14 January 2013 Kiến trúc máy tính 19 14 January 2013 Kiến trúc máy tính 20 goupee.com fb.com/groups/goupee Nguyễn Kim Khánh - ĐHBKHN
Page 6
Bài giảng Kiến trúc máy tính 14 January 2013 NKK-HUST NKK-HUST Máy tính von Neumann Đặ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ị Đó là máy tính IAS: Princeton số học và logic (ALU), bộ nhớ chính và các thiết bị Institute for Advanced Studies vào-ra. Được bắt đầu từ 1947, hoàn Bộ nhớ chính chứa chương trình và dữ liệu thành1952 Bộ nhớ chính được đánh địa chỉ theo từng ngăn nhớ, Do John von Neumann thiết kế không phụ thuộc vào nội dung của nó. Được xây dựng theo ý tưởng “chương trình được lưu trữ” ALU thực hiện các phép toán với số nhị phân (stored-program concept) của Đơn vị điều khiển nhận lệnh từ bộ nhớ, giải mã và von Neumann/Turing (1945) 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 14 January 2013 Kiến trúc máy tính 21 14 January 2013 Kiến trúc máy tính 22 NKK-HUST NKK-HUST Các máy tính thương mại Hãng IBM 1947 - Eckert-Mauchly Computer Corporation IBM - International Business Machine UNIVAC I (Universal Automatic Computer) 1953 - IBM 701 1950s - UNIVAC II Máy tính lưu trữ chương trình đầu tiên của Nhanh hơn IBM Bộ nhớ lớn hơn Sử dụng cho tính toán khoa học 1955 – IBM 702 Các ứng dụng thương mại 14 January 2013 Kiến trúc máy tính 23 14 January 2013 Kiến trúc máy tính 24 goupee.com fb.com/groups/goupee Nguyễn Kim Khánh - ĐHBKHN
Page 7
Bài giảng Kiến trúc máy tính 14 January 2013 NKK-HUST NKK-HUST Máy tính dùng transistor Máy tính dùng vi mạch SSI, MSI và LSI Vi mạch (Integrated Circuit - IC): nhiều transistor Máy tính PDP-1 của và các phần tử khác được tích hợp trên một DEC (Digital Equipment chip bán dẫn. Corporation): máy tính SSI (Small Scale Integration) mini đầu tiên MSI (Medium Scale Integration) IBM 7000 LSI (Large Scale Integration) Hàng trăm nghìn phép VLSI (Very Large Scale Integration) (thế hệ thứ tư) cộng trong một giây. ULSI (Ultra Large Scale Integration) (thế hệ thứ năm) Các ngôn ngữ lập trình SoC (System on Chip) bậc cao ra đời. 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). 14 January 2013 Kiến trúc máy tính 25 14 January 2013 Kiến trúc máy tính 26 NKK-HUST NKK-HUST Luật Moore IBM 360 Family và PDP-11 (1973) 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 14 January 2013 Kiến trúc máy tính 27 14 January 2013 Kiến trúc máy tính goupee.com fb.com/groups/goupee Nguyễn Kim Khánh - ĐHBKHN
Page 8
Bài giảng Kiến trúc máy tính 14 January 2013 NKK-HUST NKK-HUST VAX-11, Micro VAX, CRAY-1 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, Flash 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. 14 January 2013 Kiến trúc máy tính 29 14 January 2013 Kiến trúc máy tính 30 NKK-HUST NKK-HUST Sự phát triển của bộ vi xử lý Máy tính ngày nay 1971: bộ vi xử lý 4-bit Intel 4004 Massive Cluster Gigabit Ethernet Clusters 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) Refrigerators Sensor Nets Cars Routers RobotsRobots Routers 14 January 2013 Kiến trúc máy tính 31 14 January 2013 Kiến trúc máy tính 32 goupee.com fb.com/groups/goupee Nguyễn Kim Khánh - ĐHBKHN
Page 9
Bài giảng Kiến trúc máy tính 14 January 2013 NKK-HUST NKK-HUST 1.4. Hiệu năng máy tính Xung nhịp của CPU Định nghĩa hiệu năng P(Performance): Hoạt động của CPU được điều khiển bởi xung nhịp có tần số xác định P = 1/ t trong đó: t là thời gian thực hiện “Máy tính A nhanh hơn máy B n lần” Chu kỳ xung nhịp T0(Clock period): thời gian của PA / PB = tB / tA = n một chu kỳ Ví dụ: Thời gian chạy chương trình: Tần số xung nhịp f (Clock rate): số chu kỳ trong 0 10s trên máy A, 15s trên máy B 1 giây. tB / tA = 15s / 10s = 1.5 f0 = 1/T0 Vậy máy A nhanh hơn máy B 1.5 lần VD: Bộ xử lý có f0 = 4GHz = 4000MHz = 4×109Hz T0 = 1/(4x109) = 0.25x10–9s = 0.25ns 14 January 2013 Kiến trúc máy tính 33 14 January 2013 Kiến trúc máy tính 34 NKK-HUST NKK-HUST Thời gian CPU (tCPU) Ví dụ Máy tính A: n Tần số xung nhịp: fA= 2GHz t = n×T = Thời gian của CPU: tA = 10s CPU 0 f Máy tính B 0 Thời gian của CPU: tB = 6s trong đó: n là số chu kỳ xung nhịp 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 (fB)? Hiệu năng được tăng lên bằng cách: Giải: Giảm số chu kỳ xung nhịp n n 1.2×n f = B = A B t 6s Tăng tần số xung nhịp f0 B n = t × f =10s×2GHz = 20×109 A A A 1.2×20×109 24×109 f = = = 4GHz B 6s 6s 14 January 2013 Kiến trúc máy tính 35 14 January 2013 Kiến trúc máy tính 36 goupee.com fb.com/groups/goupee Nguyễn Kim Khánh - ĐHBKHN
Page 10
Bài giảng Kiến trúc máy tính 14 January 2013 NKK-HUST NKK-HUST Số lệnh và số chu kỳ trên một lệnh Ví dụ Số chu kỳ = Số lệnh x Số chu kỳ trên một lệnh Máy tính A: TA = 250ps, CPIA = 2.0 n = IC×CPI Máy tính B: TB = 500ps, CPIB = 1.2 Cùng kiến trúc tập lệnh (ISA) n - số chu kỳ, IC - số lệnh (Instruction Count), CPI - số Máy nào nhanh hơn và nhanh hơn bao nhiêu ? chu kỳ trên một lệnh (Cycles per Instruction) tA =IC×CPIA ×TA Thời gian thực hiện của CPU: =IC×2.0×250ps =IC×500ps IC×CPI tB =IC×CPIB ×TB t = IC×CPI ×T = CPU 0 f =IC×1.2×500ps =IC×600ps 0 t B IC×600ps Vậy: Trong trường hợp các lệnh khác nhau có CPI khác = =1.2 nhau, cần tính CPI trung bình tA IC×500ps A nhanh hơn B 1.2 lần 14 January 2013 Kiến trúc máy tính 37 14 January 2013 Kiến trúc máy tính 38 NKK-HUST NKK-HUST Chi tiết hơn về CPI Ví dụ Nếu loại lệnh khác nhau có số chu kỳ khác Cho bảng chỉ ra các dãy lệnh sử dụng các lệnh nhau, ta có tổng số chu kỳ: thuộc các loại A, B, C. Tính CPI trung bình? K Loại lệnh A B C n = ∑(CPI ×IC ) CPI theo loại lệnh 1 2 3 i i i=1 IC trong dãy lệnh 1 2 1 2 CPI trung bình: IC trong dãy lệnh 2 4 1 1 n K ⎛ IC ⎞ Dãy lệnh 1: IC = 5 Dãy lệnh 2: IC = 6 CPI = = ∑⎜CPI × i ⎟ Số chu kỳ Số chu kỳ TB IC ⎝ i IC ⎠ i=1 = 2×1 + 1×2 + 2×3 = 4×1 + 1×2 + 1×3 = 10 = 9 CPITB = 10/5 = 2.0 CPITB = 9/6 = 1.5 14 January 2013 Kiến trúc máy tính 39 14 January 2013 Kiến trúc máy tính 40 goupee.com fb.com/groups/goupee Nguyễn Kim Khánh - ĐHBKHN
Page 11
Bài giảng Kiến trúc máy tính 14 January 2013 NKK-HUST NKK-HUST Tóm tắt về Hiệu năng MIPS như là thước đo hiệu năng Instructions Clock cycles Seconds MIPS: Millions of Instructions Per Second CPUTime = × × Program Instruction Clock cycle (Số triệu lệnh trên 1 giây) IC×CPI t = IC×CPI ×T = CPU 0 f Instructioncount Instructioncount Clockrate 0 MIPS= = = Executiontime×106 Instructioncount×CPI 6 CPI×106 ×10 Hiệu năng phụ thuộc vào: Clockrate Thuật toán: ảnh hưởng tới IC Ngôn ngữ lập trình: ảnh hưởng tới IC, CPI f f MIPS= 0 CPI= 0 CPI×106 MIPS×106 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 14 January 2013 Kiến trúc máy tính 41 14 January 2013 Kiến trúc máy tính 42 NKK-HUST NKK-HUST Ví dụ Ví dụ Tính MIPS của bộ xử lý với: Tính CPI của bộ xử lý với: clock rate = 2GHz và CPI = 4 clock rate = 1GHz và 400 MIPS? 0.5ns 1ns 2ns 4x108 lệnh thực hiện trong 1s 1 chu kỳ = 1/(2x109) = 0,5ns Æ 1 lệnh thực hiện trong 1/(4x108)s = 2,5ns CPI = 4 Æ 1 lệnh = 4x0,5ns = 2ns CPI = 2,5 Æ Vậy bộ xử lý thực hiện được 500MIPS 14 January 2013 Kiến trúc máy tính 43 14 January 2013 Kiến trúc máy tính 44 goupee.com fb.com/groups/goupee Nguyễn Kim Khánh - ĐHBKHN
Page 12
Bài giảng Kiến trúc máy tính 14 January 2013 NKK-HUST NKK-HUST 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) Hết chương 1 Executed floating point operations MFLOPS = Execution time×106 GFLOPS(109 ) TFLOPS(1012) 14 January 2013 Kiến trúc máy tính 45 14 January 2013 Kiến trúc máy tính 46 NKK-HUST NKK-HUST Kiến trúc máy tính Nội dung học phần Chương 1. Giới thiệu chung Chương 2 Chương 2. Cơ bản về logic số Chương 3. Hệ thống máy tính CƠ BẢN VỀ LOGIC SỐ Chương 4. Số học máy tính Chương 5. Kiến trúc tập lệnh Chương 6. Cấu trúc bộ xử lý Chương 7. Bộ nhớ Nguyễn Kim Khánh Chương 8. Vào-ra Trường Đại học Bách khoa Hà Nội Chương 9. Các kiến trúc song song 14 January 2013 Kiến trúc máy tính 47 14 January 201314 January 2013 Kiến trúc máy tính 48 goupee.com fb.com/groups/goupee Nguyễn Kim Khánh - ĐHBKHN
Page 13
Bài giảng Kiến trúc máy tính 14 January 2013 NKK-HUST NKK-HUST Nội dung của chương 2 2.1. Các hệ đếm cơ bản Hệ thập phân (Decimal System) 2.1. Các hệ đếm cơ bản Æ con người sử dụng 2.2. Đại số Boole 2.3. Các cổng logic Hệ nhị phân (Binary System) 2.4. Mạch tổ hợp Æ máy tính sử dụng 2.5. Mạch dãy Hệ mười sáu (Hexadecimal System) Æ dùng để viết gọn cho số nhị phân 14 January 2013 Kiến trúc máy tính 49 14 January 2013 Kiến trúc máy tính 50 NKK-HUST NKK-HUST 1. Hệ thập phân Dạng tổng quát của số thập phân Cơ số 10 A = a a ...a a ,a ...a n n−1 1 0 −1 −m 10 chữ số: 0,1,2,3,4,5,6,7,8,9 Giá trị của A được hiểu như sau: Dùng n chữ số thập phân có thể biểu diễn được 10n giá trị khác nhau: A = a 10n + a 10n−1 + ...+ a 101 + a 100 + a 10−1 + ...+ a 10−m 00...000 = 0 n n−1 1 0 −1 −m 99...999 = 10n - 1 ∑n A = a 10i i i=−m 14 January 2013 Kiến trúc máy tính 51 14 January 2013 Kiến trúc máy tính 52 goupee.com fb.com/groups/goupee Nguyễn Kim Khánh - ĐHBKHN
Page 14
Bài giảng Kiến trúc máy tính 14 January 2013 NKK-HUST NKK-HUST Ví dụ số thập phân 2. Hệ nhị phân 472.38 = 4x102 + 7x101 + 2x100 + 3x10-1 + 8x10-2 Cơ số 2 Các chữ số của phần nguyên: 2 chữ số nhị phân: 0 và 1 472 : 10 = 47 dư 2 chữ số nhị phân gọi là bit (binary digit) 47 : 10 = 4 dư 7 Bit là đơn vị thông tin nhỏ nhất 4 : 10 = 0 dư 4 Dùng n bit có thể biểu diễn được 2n giá trị khác nhau: Các chữ số của phần lẻ: 00...000 = 0 0.38 x 10 = 3.8 phần nguyên = 3 11...111 = 2n - 1 0.8 x 10 = 8.0 phần nguyên = 8 14 January 2013 Kiến trúc máy tính 53 14 January 2013 Kiến trúc máy tính 54 NKK-HUST NKK-HUST Bits, Bytes, Nibbles… Lũy thừa hai Bits 10010110 210 = 1 kilo ≈ 1000 (1024) most least 220 = 1 mega 1 triệu (1,048,576) significant significant ≈ bit bit 230 = 1 giga ≈ 1 tỷ (1,073,741,824) byte Bytes & Nibbles 10010110 240 = 1 tera ≈ 1000 tỷ nibble 250 = 1 peta 1 triệu tỷ ≈ CEBF9AD7 Bytes most least significant significant byte byte 14 January 2013 Kiến trúc máy tính 55 14 January 2013 Kiến trúc máy tính 56 goupee.com fb.com/groups/goupee Nguyễn Kim Khánh - ĐHBKHN
Page 15
Bài giảng Kiến trúc máy tính 14 January 2013 NKK-HUST NKK-HUST Dạng tổng quát của số nhị phân Ví dụ số nhị phân Có một số nhị phân A như sau: 1101001.1011 = (2) A = a a ...a a ,a ...a 6 5 4 3 2 1 0 -1 -2 -3 -4 n n−1 1 0 −1 −m = 26 + 25 + 23 + 20 + 2-1 + 2-3 + 2-4 Giá trị của A được tính như sau: = 64 + 32 + 8 + 1 + 0.5 + 0.125 + 0.0625 A = a 2n + a 2n−1 + ...+ a 21 + a 20 + a 2−1 + ...+ a 2−m n n−1 1 0 −1 −m = 105.6875(10) ∑n A = a 2i i i=−m 14 January 2013 Kiến trúc máy tính 57 14 January 2013 Kiến trúc máy tính 58 NKK-HUST NKK-HUST Chuyển đổi số nguyên thập phân sang nhị phân Phương pháp chia dần cho 2 Ví dụ: chuyển đổi 105(10) Phương pháp 1: chia dần cho 2 rồi lấy 105 : 2 = 52 dư 1 phần dư 52 : 2 = 26 dư 0 26 : 2 = 13 dư 0 Phương pháp 2: Phân tích thành tổng 13 : 2 = 6 dư 1 của các số 2i Æ nhanh hơn 6 : 2 = 3 dư 0 3 : 2 = 1 dư 1 1 : 2 = 0 dư 1 Kết quả: 105(10) = 1101001(2) 14 January 2013 Kiến trúc máy tính 59 14 January 2013 Kiến trúc máy tính 60 goupee.com fb.com/groups/goupee Nguyễn Kim Khánh - ĐHBKHN
Page 16
Bài giảng Kiến trúc máy tính 14 January 2013 NKK-HUST NKK-HUST Phương pháp phân tích thành tổng của các 2i Chuyển đổi số lẻ thập phân sang nhị phân Ví dụ 1: chuyển đổi 105(10) 105 = 64 + 32 + 8 +1 = 26 + 25 + 23 + 20 Ví dụ 1: chuyển đổi 0.6875(10) 0.6875 x 2 = 1.375 phần nguyên = 1 27 26 25 24 23 22 21 20 0.375 x 2 = 0.75 phần nguyên = 0 128 64 32 16 8 4 2 1 0 1 1 0 1 0 0 1 0.75 x 2 = 1.5 phần nguyên = 1 0.5 x 2 = 1.0 phần nguyên = 1 Kết quả: 105(10) = 0110 1001(2) Ví dụ 2: 17000(10) = 16384 + 512 + 64 + 32 + 8 Kết quả : 0.6875(10)= 0.1011(2) = 214 + 29 + 26 + 25 + 23 17000(10) = 0100 0010 0110 1000(2) 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 14 January 2013 Kiến trúc máy tính 61 14 January 2013 Kiến trúc máy tính 62 NKK-HUST NKK-HUST Chuyển đổi số lẻ thập phân sang nhị phân (tiếp) Chuyển đổi số lẻ thập phân sang nhị phân (tiếp) Ví dụ 2: chuyển đổi 0.81 Ví dụ 3: chuyển đổi 0.2(10) (10) 0.81 x 2 = 1.62 phần nguyên = 1 0.2 x 2 = 0.4 phần nguyên = 0 0.62 x 2 = 1.24 phần nguyên = 1 0.4 x 2 = 0.8 phần nguyên = 0 0.24 x 2 = 0.48 phần nguyên = 0 0.8 x 2 = 1.6 phần nguyên = 1 0.48 x 2 = 0.96 phần nguyên = 0 0.6 x 2 = 1.2 phần nguyên = 1 0.2 x 2 = 0.4 phần nguyên = 0 0.96 x 2 = 1.92 phần nguyên = 1 0.4 x 2 = 0.8 phần nguyên = 0 0.92 x 2 = 1.84 phần nguyên = 1 0.8 x 2 = 1.6 phần nguyên = 1 0.84 x 2 = 1.68 phần nguyên = 1 0.6 x 2 = 1.2 phần nguyên = 1 0.81(10) ≈ 0.1100111(2) 0.2(10) ≈ 0.00110011 (2) 14 January 2013 Kiến trúc máy tính 63 14 January 2013 Kiến trúc máy tính 64 goupee.com fb.com/groups/goupee Nguyễn Kim Khánh - ĐHBKHN
Page 17
Bài giảng Kiến trúc máy tính 14 January 2013 NKK-HUST NKK-HUST 3. Hệ mười sáu (Hexa) Quan hệ giữa số nhị phân và số Hexa 4-bit Chữ số Hexa Cơ số 16 0000 0 Ví dụ chuyển đổi số nhị phân Æ số Hexa: 0001 1 1011 0011 = B3 16 chữ số: 0,1,2,3,4,5,6,7,8,9, A,B,C,D,E,F 2 16 0010 2 0011 3 0000 00002 = 0016 Dùng để viết gọn cho số nhị phân: cứ một 0100 4 nhóm 4-bit sẽ được thay bằng một chữ số 0101 5 0010 1101 1001 1010 = 2D9A Hexa 0110 6 2 16 0111 7 1111 1111 1111 11112 = FFFF16 1000 8 1001 9 1010 A 1011 B 1100 C 1101 D 1110 E 1111 F 14 January 2013 Kiến trúc máy tính 65 14 January 2013 Kiến trúc máy tính 66 NKK-HUST NKK-HUST 2.2. Đại số Boole Các phép toán logic (tiếp) Đại số Boole sử dụng các biến logic và phép Các phép toán NAND, NOR, XOR: toán logic Biến logic có thể nhận giá trị 1 (TRUE) hoặc 0 A NAND B: A• B (FALSE) A+ B A NOR B : Phép toán logic cơ bản là AND, OR và NOT với ký hiệu như sau: A XOR B: A⊕ B = A• B + A• B A AND B : A•B A OR B : A + B NOT A : A Thứ tự ưu tiên: NOT > AND > OR 14 January 2013 Kiến trúc máy tính 67 14 January 201314 January 2013 Kiến trúc máy tính 6868 goupee.com fb.com/groups/goupee Nguyễn Kim Khánh - ĐHBKHN
Page 18
Bài giảng Kiến trúc máy tính 14 January 2013 NKK-HUST NKK-HUST Phép toán đại số Boole Các đồng nhất thức của đại số Boole A • B = B • A A + B = B + A P AND Q P OR Q P NAND Q P NOR Q P XOR Q P Q P P⊕Q A • (B + C) = (A • B) + (A • C) A + (B • C) = (A + B) • ( A + C) P•Q P+Q P•Q P+Q 1 • A = A 0 + A = A 0 0 1 0 0 1 1 0 A • A = 0 A + A = 1 0 1 1 0 1 1 0 1 0 • A = 0 1 + A = 1 1 0 0 0 1 1 0 1 A • A = A A + A = A 1 1 0 1 1 0 0 0 A • (B • C) = (A • B) • C A + (B + C) = (A + B) + C A • B = A + B (Định lý De A + B = A • B (Định lý De Morgan) Morgan) 14 January 2013 Kiến trúc máy tính 69 14 January 2013 Kiến trúc máy tính 70 NKK-HUST NKK-HUST 2.3. Các cổng logic (Logic Gates) Các cổng logic Thực hiện các hàm logic: NOT, AND, OR, NAND, NOR, etc. Cổng logic một đầu vào: Cổng NOT Cổng hai đầu vào: AND, OR, XOR, NAND, NOR, XNOR Cổng nhiều đầu vào 14 January 2013 Kiến trúc máy tính 71 14 January 2013 Kiến trúc máy tính 72 goupee.com fb.com/groups/goupee Nguyễn Kim Khánh - ĐHBKHN
Page 19
Bài giảng Kiến trúc máy tính 14 January 2013 NKK-HUST NKK-HUST Tập đầy đủ Sử dụng cổng NAND Là tập các cổng có thể thực hiện được bất kỳ hàm logic nào từ các cổng của tập đó. Một số ví dụ về tập đầy đủ: {AND, OR, NOT} {AND, NOT} {OR, NOT} {NAND} {NOR} 14 January 2013 Kiến trúc máy tính 73 14 January 2013 Kiến trúc máy tính 74 NKK-HUST NKK-HUST Sử dụng cổng NOR Một số ví dụ vi mạch logic 14 January 2013 Kiến trúc máy tính 75 14 January 2013 Kiến trúc máy tính 76 goupee.com fb.com/groups/goupee Nguyễn Kim Khánh - ĐHBKHN
Page 20
Bài giảng Kiến trúc máy tính 14 January 2013 NKK-HUST NKK-HUST 2.4. Mạch tổ hợp Mạch tổ hợp Mạch logic là mạch bao gồm: Mạch tổ hợp là mạch logic trong đó đầu Các đầu vào (Inputs) ra chỉ phụ thuộc đầu vào ở thời điểm Các đầu ra (Outputs) hiện tại. Đặc tả chức năng (Functional specification) Đặc tả thời gian (Timing specification) Là mạch không nhớ và được thực hiện Các kiểu mạch logic: bằng các cổng logic cơ bản Mạch logic tổ hợp (Combinational Logic) Mạch tổ hợp có thể được định nghĩa Mạch không nhớ theo ba cách: Đầu ra được xác định bởi các giá trị hiện tại của đầu vào Mạch logic dãy (Sequential Logic) Bảng thật Mạch có nhớ Dạng sơ đồ Đầu ra được xác định bởi các giá trị trước đó và giá trị hiện tại Phương trình Boole của đầu vào 14 January 2013 Kiến trúc máy tính 77 14 January 2013 Kiến trúc máy tính 78 NKK-HUST NKK-HUST Ví dụ Bộ dồn kênh (Multiplexer-MUX) 2n đầu vào dữ liệu A B C F 0 0 0 0 n đầu vào chọn 0 0 1 0 1 đầu ra 0 1 0 1 Đầu vào chọn (S) xác định đầu vào nào (D) sẽ 0 1 1 1 1 0 0 0 được nối với đầu ra (F). 1 0 1 0 1 1 0 1 S2 S1 F 1 1 1 0 0 0 D0 0 1 D1 1 0 D2 F = ABC + ABC + ABC 1 1 D3 14 January 2013 Kiến trúc máy tính 79 14 January 2013 Kiến trúc máy tính 80 goupee.com fb.com/groups/goupee Nguyễn Kim Khánh - ĐHBKHN
Affichage des 20 premières pages. Téléchargez le document pour le voir en entier.
Commentaires (0)
Aucun commentaire pour le moment. Soyez le premier !