Đăng ký Đăng nhập
Trang chủ Công nghệ thông tin Cơ sở dữ liệu BÀI GIẢNG KIẾN TRÚC MÁY TÍNH 2014 (FULL HD)...

Tài liệu BÀI GIẢNG KIẾN TRÚC MÁY TÍNH 2014 (FULL HD)

.PDF
136
989
95

Mô tả:

BÀI GIẢNG KIẾN TRÚC MÁY TÍNH 2014 (FULL HD)
Bài giảng Kiến trúc máy tính Jan2014 NKK-HUST TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI Hanoi University of Science and Technology Contact Information n  n  KIẾN TRÚC MÁY TÍNH n  Computer Architecture Address: 502-B1 Mobile: 091-358-5533 e-mail: [email protected] [email protected] Nguyễn Kim Khánh Bộ môn Kỹ thuật máy tính Viện Công nghệ thông tin và Truyền thông Department of Computer Engineering (DCE) School of Information and Communication Technology (SoICT) Version: Jan 2014 Jan2014 NKK-HUST n  2 NKK-HUST Mục tiêu học phần n  Computer Architecture Tài liệu tham khảo chính [1] William Stallings - Computer Organization and Architecture – Designing for Performance – 2013 (9th edition) Sinh viên được trang bị các kiến thức cơ sở về kiến trúc tập lệnh và tổ chức của máy tính, cũng như những vấn đề cơ bản trong thiết kế máy tính. Sau khi học xong học phần này, sinh viên có khả năng: n  n  n  n  n  [2] David A. Patterson & John L. Hennessy - Computer Organization and Design: The Hardware/Software Interface – 2012 (revised 4th edition) Tìm hiểu kiến trúc tập lệnh của các bộ xử lý cụ thể Lập trình hợp ngữ trên một số kiến trúc Đá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 Phân tích và thiết kế máy tính Jan2014 Nguyễn Kim Khánh Computer Architecture DCE-HUST [3] David Money Harris and Sarah L. Harris, Digital Design and Computer Architecture, 2007 [4] Andrew S. Tanenbaum - Structured Computer Organization – 2012 (6th edition) 3 Jan2014 Computer Architecture 4 1 Bài giảng Kiến trúc máy tính Jan2014 NKK-HUST NKK-HUST Chú ý: Bài giảng mới nhất Jan 2014 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. Số học máy tính Chương 5. Kiến trúc tập lệnh Chương 6. Bộ xử lý Chương 7. Bộ nhớ máy tính Chương 8. Hệ thống vào-ra Chương 9. Các kiến trúc song song Jan2014 Computer Architecture ftp://dce.hust.edu.vn/khanhnk/CA 5 NKK-HUST Jan2014 Computer Architecture 6 NKK-HUST Kiến trúc máy tính Nội dung 1.1. Máy tính và phân loại 1.2. Khái niệm kiến trúc máy tính 1.3. Sự tiến hóa của máy tính 1.4. Hiệu năng 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 Jan2014 Nguyễn Kim Khánh Computer Architecture DCE-HUST 7 Jan2014 Computer Architecture 8 2 Bài giảng Kiến trúc máy tính Jan2014 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 n  Máy tính (Computer) là thiết bị điện tử thực hiện các công việc sau: n  n  n  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. Các thiết bị vào (Input Devices) Computer Architecture 9 NKK-HUST Jan2014 Computer Architecture 10 NKK-HUST 2. Phân loại máy tính n  Các thiết bị ra (Output Devices) Bộ nhớ chính (Main Memory) 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. n  Jan2014 Bộ xử lý trung tâm (Central Processing Unit) Phân loại máy tính hiện đại [P&H] Phân loại truyền thống: n  n  n  n  n  Thiết bị di động cá nhân (Personal Mobile Devices): n  Máy tính cá nhân (Personal Computers) n  Máy chủ (Servers) n  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) n  n  n  n  n  n  Nguyễn Kim Khánh Computer Architecture DCE-HUST 11 Jan2014 Thực chất là Máy phục vụ Dùng trong mạng theo mô hình Client/Server Sử dụng tại các trung tâm tính toán, trung tâm dữ liệu Supercomputers Máy tính nhúng (Embedded Computers) n  Jan2014 Desktop computers, Laptop computers Máy tính cụm/máy tính qui mô lớn (Clusters/Warehouse Scale Computers): n  n  Smartphones, Tablet Đặt ẩn trong thiết bị khác Được thiết kế chuyên dụng Computer Architecture 12 3 Bài giảng Kiến trúc máy tính Jan2014 NKK-HUST NKK-HUST 1.2. Khái niệm kiến trúc máy tính n  Định nghĩa của Hennessy/ Patterson n  Định nghĩa trước đây về kiến trúc máy tính: Kiến trúc máy tính bao gồm: n  Là thiết kế kiến trúc tập lệnh (Instruction Set Architecture – ISA) n  Các thuộc tính của máy tính theo cách nhìn người lập trình (hardware/software interface) n  Là định nghĩa hẹp n  n  n  n  Jan2014 Computer Architecture 13 NKK-HUST 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) hay Vi kiến trúc (Microarchitecture): 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. Jan2014 Computer Architecture 14 NKK-HUST Kiến trúc tập lệnh 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: n  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 n  Các kiểu dữ liệu: các kiểu dữ liệu mà máy tính có thể xử lý CPU Bộ nhớ chính Bus liên kết hệ thống Hệ thống vào-ra Jan2014 Nguyễn Kim Khánh Computer Architecture DCE-HUST 15 Jan2014 Computer Architecture 16 4 Bài giảng Kiến trúc máy tính Jan2014 NKK-HUST NKK-HUST Các thành phần cơ bản của máy tính n  n  n  n  Mô hình phân lớp 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. Hệ thống vào-ra (Input/Output System): 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. Người sử dụng Computer Architecture Phần mềm trung gian Hệ điều hành Các phần mềm ứng dụng Các phần mềm trung gian Người thiết kế HĐH Kiến trúc tập lênh Vi kiến trúc Hệ điều hành Logic-số Phần cứng n  n  Jan2014 Phần mềm ứng dụng Người lập trình 17 NKK-HUST Jan2014 Mạch điện tử 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. Computer Architecture 18 NKK-HUST 1.3. Sự tiến hóa của máy tính ENIAC – Máy tính điện tử đầu tiên Các thế hệ máy tính n  Thế hệ thứ nhất: Máy tính dùng đèn điện tử chân không (1950s) n  Thế hệ thứ hai: Máy tính dùng transistor (1960s) n  Thế hệ thứ ba: Máy tính dùng vi mạch SSI, MSI và LSI (1970s) n  Thế hệ thứ tư: Máy tính dùng vi mạch VLSI (1980s) n  Thế hệ thứ năm: Máy tính dùng vi mạch ULSI, SoC (1990s-nay) Jan2014 Nguyễn Kim Khánh Computer Architecture DCE-HUST n  n  n  n  n  n  n  n  n  n  19 Jan2014 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ừ 1943, hoàn thành 1946 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. Computer Architecture 20 5 Bài giảng Kiến trúc máy tính Jan2014 NKK-HUST NKK-HUST Máy tính von Neumann Vi mạch n  Chính là máy tính IAS (thực hiện tại Princeton Institute for Advanced Studies) n  Bắt đầu 1947, hoàn thành 1952 n  Do John von Neumann thiết kế n  n  Đượ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) n  n  n  n  n  Trở thành mô hình cơ bản của máy tính n  Jan2014 Computer Architecture Vi mạch hay là mạch tích hợp (Integrated Circuit - IC): mạch điện tử gồm nhiều transistors và các linh kiện khác được tích hợp trên một chip bán dẫn. Phân loại vi mạch theo qui mô tích hợp: 21 NKK-HUST SSI - Small Scale Integration MSI - Medium Scale Integration LSI - Large Scale Integration VLSI - Very Large Scale Integration ULSI - Ultra Large Scale Integration Jan2014 Computer Architecture NKK-HUST Luật Moore n  n  n  n  F tra irst ns wo ist rk or in g Một số vi mạch số điển hình n  22 Bộ vi xử lý (Microprocessors): 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 Hệ thống trên chip (SoC – System on Chip) Các bộ vi điều khiển (Microcontrollers) 1947 50 n  n  n  n  n  n  n  Jan2014 Computer Architecture 55 Figure 2.8 23 Jan2014 2.1 / A BRIEF HISTORY OF COMPUTERS In in ven teg ti ra on te of d ci rc ui M t pr oor om e’ ul s la ga w te d n  60 65 70 75 80 85 90 95 2000 05 31 100 bn 10 bn 1 bn 100 m 10 m 100,000 10,000 1000 100 10 1 11 Growth in Transistor Count on Integrated Circuits Gordon Moore –/360 người đồng IBM By 1964, IBM had a firmsáng grip on the lập computerIntel market with its 7000 series of machines. In that year, IBM announced the System/360, a new family of computer products. Although the announcement itself was no surprise, it Số transistors trên chip sẽ gấp đôi sau 18 tháng contained some unpleasant news for current IBM customers: the 360 product line was incompatible with older IBM machines. Thus, the transition to the 360 would be Giá thànhdifficult củafor the chip hầu base. như không thay đổi current customer This was a bold step by IBM, but one IBM felt was necessary to break out of some of the constraints of the 7000 architecture and to produce a system capable of evolving with the new integrated circuit technology Mật độ cao hơn, do vậy đường dẫn ngắn hơn [PADE81, GIFF87]. The strategy paid off both financially and technically. The 360 was the success of the decade and cemented IBM as the overwhelmingly dominant Kích thước nhỏ hơn dẫnsharetới độ tạp tăng lên computer vendor, with a market above 70%. phức And, with some modifications and extensions, the architecture of the 360 remains to this day the architecture of IBM’s mainframe computers. Examples using this architecture can be found Điện năngthroughout tiêu thisthụ ít hơn text. The System/360 was the industry’s first planned family of computers. The covered a widechip range of performance and cost. Tablenhau, 2.4 indicates some Hệ thống family có ít các liên kết với doofđó tăng độ tin the key characteristics of the various models in 1965 (each member of the family is distinguished by a model number). The models were compatible in the sense that cậy a program written for one model should be capable of being executed by another SYSTEM 9 model in the series, with only a difference in the time it takes to execute. Computer Architecture The concept of a family of compatible computers was both novel and extremely successful. A customer with modest requirements and a budget to match could start with the relatively inexpensive Model 30. Later, if the customer’s needs grew, it was possible to upgrade to a faster machine with more memory without 24 9 The term mainframe is used for the larger, most powerful computers other than supercomputers. Typical characteristics of a mainframe are that it supports a large database, has elaborate I/O hardware, and is used in a central data processing facility. Nguyễn Kim Khánh DCE-HUST 6 Bài giảng Kiến trúc máy tính Jan2014 NKK-HUST NKK-HUST Sự phát triển của vi xử lý n  n  n  n  n  1971: bộ vi xử lý 4-bit Intel 4004 1972: các bộ xử lý 8-bit 1978: các bộ xử lý 16-bit 1985: các bộ xử lý 32-bit 2001: các bộ xử lý 64-bit 2006: các bộ xử lý đa lõi (multicores) Massive Cluster Gigabit Ethernet Sensor Nets Clusters Refrigerators n  Máy tính ngày nay Cars Jan2014 Computer Architecture 25 NKK-HUST Routers Routers Jan2014 n  Xung nhịp của CPU Định nghĩa hiệu năng P(Performance): 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” n  n  Ví dụ: Thời gian chạy chương trình: n  n  n  n  10s trên máy A, 15s trên máy B tB / tA = 15s / 10s = 1.5 Vậy máy A nhanh hơn máy B 1.5 lần Jan2014 Nguyễn Kim Khánh Computer Architecture DCE-HUST Hoạt động của CPU được điều khiển bởi xung nhịp có tần số xác định T0 PA / PB = tB / tA = n n  26 NKK-HUST 1.4. Hiệu năng máy tính n  RobotsRobots Computer Architecture n  27 Jan2014 Chu kỳ xung nhịp T0(Clock period): thời gian của một chu kỳ Tần số xung nhịp f0 (Clock rate): số chu kỳ trong 1 giây. n  f0 = 1/T0 VD: Bộ xử lý có f0 = 4GHz = 4000MHz = 4×109Hz T0 = 1/(4x109) = 0.25x10–9s = 0.25ns Computer Architecture 28 7 Bài giảng Kiến trúc máy tính Jan2014 NKK-HUST NKK-HUST Thời gian CPU (tCPU) Ví dụ n  tCPU n  n  n = n × T0 = f0 n  n  n  n  n  n  Computer Architecture 29 NKK-HUST Computer Architecture Số lệnh và số chu kỳ trên một lệnh Máy tính A: n  n  Tần số xung nhịp: fA= 2GHz Thời gian của CPU: tA = 10s n  Số chu kỳ = Số lệnh x Số chu kỳ trên một lệnh n = IC × CPI Máy tính B n  n  30 NKK-HUST n  n  Xác định tần số xung nhịp của máy B (fB)? Jan2014 Ví dụ n  Thời gian của CPU: tB = 6s Số chu kỳ xung nhịp của B = 1.2 x Số chu kỳ xung nhịp của A Giảm số chu kỳ xung nhịp n Tăng tần số xung nhịp f0 Jan2014 n  Tần số xung nhịp: fA= 2GHz Thời gian của CPU: tA = 10s Máy tính B n  trong đó: n là số chu kỳ xung nhịp Hiệu năng được tăng lên bằng cách: n  Máy tính A: n - số chu kỳ, IC - số lệnh (Instruction Count), CPI - số chu kỳ trên một lệnh (Cycles per Instruction) Thời gian của CPU: tB = 6s 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)? Giải: n  Thời gian thực hiện của CPU: n 1.2 × n A fB = B = tB 6s tCPU = IC × CPI × T0 = n A = t A × f A = 10 s × 2GHz = 20 ×10 9 fB = Jan2014 Nguyễn Kim Khánh n  1.2 × 20 ×10 9 24 ×10 9 = = 4GHz 6s 6s Computer Architecture DCE-HUST 31 Jan2014 IC × CPI f0 Trong trường hợp các lệnh khác nhau có CPI khác nhau, cần tính CPI trung bình Computer Architecture 32 8 Bài giảng Kiến trúc máy tính Jan2014 NKK-HUST NKK-HUST Ví dụ n  n  n  n  Ví dụ Máy tính A: TA = 250ps, CPIA = 2.0 Máy tính B: TB = 500ps, CPIB = 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 ? n  n  n  n  Máy tính A: TA = 250ps, CPIA = 2.0 Máy tính B: TB = 500ps, CPIB = 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 ? t A t t t Jan2014 Computer Architecture 33 NKK-HUST B = IC × 600ps = 1.2 IC × 500ps A Vậy: A nhanh hơn B 1.2 lần Computer Architecture 34 NKK-HUST Ví dụ Nếu loại lệnh khác nhau có số chu kỳ khác nhau, ta có tổng số chu kỳ: n  K n = ∑ (CPIi × ICi ) i=1 n  = IC × CPI × T B B = IC × 1.2 × 500ps = IC × 600ps Jan2014 Chi tiết hơn về CPI n  B = IC × CPI × T A A = IC × 2.0 × 250ps = IC × 500ps CPI trung bình: CPITB = Jan2014 Nguyễn Kim Khánh 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. Tính CPI trung bình? 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 K n IC ⎞ ⎛ = ∑ ⎜ CPIi × i ⎟ IC i=1 ⎝ IC ⎠ Computer Architecture DCE-HUST 35 Jan2014 Computer Architecture 36 9 Bài giảng Kiến trúc máy tính Jan2014 NKK-HUST NKK-HUST 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. Tính CPI trung bình? n  n  Tóm tắt về Hiệu năng 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 n  n  n  Số chu kỳ = 4×1 + 1×2 + 1×3 =9 CPITB = 9/6 = 1.5 n  n  Computer Architecture n  n  37 NKK-HUST IC × CPI f0 Hiệu năng phụ thuộc vào: n  n  n  Instructions Clock cycles Seconds × × Program Instruction Clock cycle tCPU = IC × CPI × T0 = Dãy lệnh 2: IC = 6 Số chu kỳ = 2×1 + 1×2 + 2×3 = 10 CPITB = 10/5 = 2.0 Jan2014 CPU Time = Thuật toán Ngôn ngữ lập trình Chương trình dịch Kiến trúc tập lệnh Jan2014 Computer Architecture 38 NKK-HUST MIPS như là thước đo hiệu năng Ví dụ  Tính MIPS của bộ xử lý với: clock rate = 2GHz và CPI = 4 MIPS: Millions of Instructions Per Second (Số triệu lệnh trên 1 giây) n  MIPS = Instructio n count Instructio n count Clock rate = = Execution time × 10 6 Instructio n count × CPI × 10 6 CPI × 10 6 Clock rate MIPS = Jan2014 Nguyễn Kim Khánh f0 CPI × 10 6 CPI = Computer Architecture DCE-HUST f0 MIPS × 10 6 39 Jan2014 Computer Architecture 40 10 Bài giảng Kiến trúc máy tính Jan2014 NKK-HUST NKK-HUST Ví dụ Ví dụ  Tính MIPS của bộ xử lý với: clock rate = 2GHz và CPI = 4  Tính CPI của bộ xử lý với: clock rate = 1GHz và 400 MIPS? 0.5ns 2ns 1 chu kỳ = 1/(2x109) = 0,5ns CPI = 4 à thời gian thực hiện 1 lệnh: 4 x 0,5ns = 2ns Vậy bộ xử lý thực hiện được 500 MIPS Jan2014 Computer Architecture 41 NKK-HUST Jan2014 Computer Architecture 42 NKK-HUST Ví dụ MFLOPS  Tính CPI của bộ xử lý với: clock rate = 1GHz và 400 MIPS? 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) MFLOPS = Executed floating point operations Execution time × 10 6 1ns GFLOPS(109 ) TFLOPS(1012) 4x108 lệnh thực hiện trong 1s 1 lệnh thực hiện trong 1/(4x108)s = 2,5ns à  CPI = 2,5 à  Jan2014 Nguyễn Kim Khánh Computer Architecture DCE-HUST 43 Jan2014 Computer Architecture 44 11 Bài giảng Kiến trúc máy tính Jan2014 NKK-HUST NKK-HUST Kiến trúc máy tính Chương 2 CƠ BẢN VỀ LOGIC SỐ Hết chương 1 Nguyễn Kim Khánh Trường Đại học Bách khoa Hà Nội Jan2014 Computer Architecture 45 NKK-HUST Jan2014 Computer Architecture 46 NKK-HUST Nội dung của chương 2 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. Số học máy tính Chương 5. Kiến trúc tập lệnh Chương 6. Bộ xử lý Chương 7. Bộ nhớ máy tính Chương 8. Hệ thống vào-ra Chương 9. Các kiến trúc song song Jan2014 Nguyễn Kim Khánh Computer Architecture DCE-HUST 2.1. Các hệ đếm cơ bản 2.2. Đại số Boole 2.3. Các cổng logic 2.4. Mạch tổ hợp 2.5. Mạch dãy 47 Jan2014 Computer Architecture 48 12 Bài giảng Kiến trúc máy tính Jan2014 NKK-HUST NKK-HUST 2.1. Các hệ đếm cơ bản n  n  n  1. Hệ thập phân Hệ thập phân (Decimal System) à con người sử dụng Hệ nhị phân (Binary System) à máy tính sử dụng Hệ mười sáu (Hexadecimal System) à dùng để viết gọn cho số nhị phân Jan2014 Computer Architecture n  Cơ số 10 n  10 chữ số: 0,1,2,3,4,5,6,7,8,9 Dùng n chữ số thập phân có thể biểu diễn được 10n giá trị khác nhau: n  49 NKK-HUST n  00...000 = 0 n  99...999 = 10n - 1 Jan2014 Computer Architecture 50 NKK-HUST Dạng tổng quát của số thập phân Ví dụ số thập phân A = an an−1 ... a1a0 , a−1 ... a−m 472.38 = 4x102 + 7x101 + 2x100 + 3x10-1 + 8x10-2 n  Giá trị của A được hiểu như sau: A = a n 10 n + a n −110 n −1 + ... + a1101 + a0 10 0 + a −110 −1 + ... + a −m 10 − m A = n ∑ a 10 n  i i i =− m Jan2014 Nguyễn Kim Khánh Computer Architecture DCE-HUST 51 Jan2014 Các chữ số của phần nguyên: n  472 : 10 = 47 dư 2 n  47 : 10 = 4 dư 7 n  4 : 10 = 0 dư 4 Các chữ số của phần lẻ: n  0.38 x 10 = 3.8 phần nguyên = 3 n  0.8 x 10 = 8.0 phần nguyên = 8 Computer Architecture 52 13 Bài giảng Kiến trúc máy tính Jan2014 NKK-HUST NKK-HUST 2. Hệ nhị phân n  n  n  n  n  Bits, Bytes, Nibbles… n  Cơ số 2 2 chữ số nhị phân: 0 và 1 chữ số nhị phân gọi là bit (binary digit) Bit là đơn vị thông tin nhỏ nhất Dùng n bit có thể biểu diễn được 2n giá trị khác nhau: n  n  00...000 11...111 least significant bit byte n  Bytes & Nibbles 10010110 nibble n  Computer Architecture 10010110 most significant bit = 0 = 2n - 1 Jan2014 Bits 53 NKK-HUST Jan2014 CEBF9AD7 Bytes most significant byte least significant byte Computer Architecture 54 NKK-HUST Lũy thừa hai Dạng tổng quát của số nhị phân 210 = 1 kilo n  220 = 1 mega n  230 = 1 giga n  240 = 1 tera n  250 = 1 peta 1000 (1024) ≈ 1 triệu (1,048,576) ≈ 1 tỷ (1,073,741,824) ≈ 1000 tỷ ≈ 1 triệu tỷ Có một số nhị phân A như sau: ≈ n  A = an an−1 ... a1a0 , a−1 ... a−m Giá trị của A được tính như sau: A = a n 2 n + a n −1 2 n −1 + ... + a1 21 + a0 2 0 + a −1 2 −1 + ... + a −m 2 − m A = n ∑a 2 i i i =− m Jan2014 Nguyễn Kim Khánh Computer Architecture DCE-HUST 55 Jan2014 Computer Architecture 56 14 Bài giảng Kiến trúc máy tính Jan2014 NKK-HUST NKK-HUST Ví dụ số nhị phân Chuyển đổi số nguyên thập phân sang nhị phân 1101001.1011(2) = 6 5 4 3 2 1 0 -1 -2 -3 -4 = 26 + 25 + 23 + 20 + 2-1 + 2-3 + n  2-4 n  = 64 + 32 + 8 + 1 + 0.5 + 0.125 + 0.0625 Phương pháp 1: chia dần cho 2 rồi lấy phần dư Phương pháp 2: Phân tích thành tổng của các số 2i à nhanh hơn = 105.6875(10) Jan2014 Computer Architecture 57 NKK-HUST Jan2014 Computer Architecture NKK-HUST Phương pháp chia dần cho 2 n  n  58 Phương pháp phân tích thành tổng của các 2i n  Ví dụ: chuyển đổi 105(10) Ví dụ 1: chuyển đổi 105(10) 6 5 3 0 n  105 = 64 + 32 + 8 +1 = 2 + 2 + 2 + 2 n  105 : 2 = 52 dư 1 n  52 : 2 = 26 dư 0 27 26 25 24 23 22 21 20 n  26 : 2 = 13 dư 0 128 64 32 16 8 4 2 1 n  13 : 2 = 6 dư 1 0 1 1 0 1 0 0 1 n  6:2 = 3 dư 0 n  3:2 = 1 dư 1 n  1:2 = 0 dư 1 n  n  Kết quả: 105(10) = 0110 1001(2) Ví dụ 2: 17000(10) = 16384 + 512 + 64 + 32 + 8 = Kết quả: 105(10) = 1101001(2) 17000(10) = 0100 0010 0110 1000(2) 15 14 13 12 Jan2014 Nguyễn Kim Khánh Computer Architecture DCE-HUST 214 + 29 + 26 + 25 + 23 59 Jan2014 11 10 9 8 7 6 5 4 Computer Architecture 3 2 1 0 60 15 Bài giảng Kiến trúc máy tính Jan2014 NKK-HUST NKK-HUST Chuyển đổi số lẻ thập phân sang nhị phân n  n  Chuyển đổi số lẻ thập phân sang nhị phân (tiếp) Ví dụ 1: chuyển đổi 0.6875(10) n  n  0.6875 x 2 = 1.375 phần nguyên = 1 n  0.81 x 2 = 1.62 phần nguyên = 1 n  0.375 x 2 = 0.75 phần nguyên = 0 n  0.62 x 2 = 1.24 phần nguyên = 1 n  0.24 x 2 = 0.48 phần nguyên = 0 n  0.48 x 2 = 0.96 phần nguyên = 0 n  0.96 x 2 = 1.92 phần nguyên = 1 n  0.92 x 2 = 1.84 phần nguyên = 1 n  0.84 x 2 = 1.68 phần nguyên = 1 n  0.75 x 2 = 1.5 phần nguyên = 1 n  0.5 x 2 = 1.0 phần nguyên = 1 Kết quả : 0.6875(10)= 0.1011(2) Jan2014 n  Computer Architecture 61 NKK-HUST 0.81(10) ≈ 0.1100111(2) Jan2014 Computer Architecture 62 NKK-HUST 3. Hệ mười sáu (Hexa) Chuyển đổi số lẻ thập phân sang nhị phân (tiếp) n  Ví dụ 2: chuyển đổi 0.81(10) Ví dụ 3: chuyển đổi 0.2(10) n  n  n  n  n  n  n  n  0.2 0.4 0.8 0.6 0.2 0.4 0.8 0.6 n  Jan2014 Nguyễn Kim Khánh x2 x2 x2 x2 x2 x2 x2 x2 = = = = = = = = 0.4 0.8 1.6 1.2 0.4 0.8 1.6 1.2 phần nguyên phần nguyên phần nguyên phần nguyên phần nguyên phần nguyên phần nguyên phần nguyên = = = = = = = = 0 0 1 1 0 0 1 1 n  Cơ số 16 n  16 chữ số: 0,1,2,3,4,5,6,7,8,9, A,B,C,D,E,F n  Dùng để viết gọn cho số nhị phân: cứ một nhóm 4-bit sẽ được thay bằng một chữ số Hexa 0.2(10) ≈ 0.00110011 (2) Computer Architecture DCE-HUST 63 Jan2014 Computer Architecture 64 16 Bài giảng Kiến trúc máy tính Jan2014 NKK-HUST NKK-HUST Quan hệ giữa số nhị phân và số Hexa 4-bit Chữ số Hexa 0000 0 0001 1 0010 2 0011 3 0100 4 0101 5 0110 0111 1000 8 2.2. Đại số Boole Ví dụ chuyển đổi số nhị phân à số Hexa: n  n  1011 00112 = B316 n  0000 00002 = 0016 n  6 n  0010 1101 1001 10102 = 2D9A16 n  7 n  1111 1111 1111 11112 = FFFF16 n  1001 9 1010 A 1011 B 1100 C 1101 D 1110 E 1111 F Jan2014 n  n  n  Computer Architecture 65 NKK-HUST A AND B : A OR B : NOT A : A•B A+B A Thứ tự ưu tiên: NOT > AND > OR Jan2014 Computer Architecture 66 NKK-HUST Các phép toán logic (tiếp) n  Đại số Boole sử dụng các biến logic và phép toán logic Biến logic có thể nhận giá trị 1 (TRUE) hoặc 0 (FALSE) Phép toán logic cơ bản là AND, OR và NOT với ký hiệu như sau: Phép toán đại số Boole Các phép toán NAND, NOR, XOR: n  A NAND B: A• B n  A NOR B : A+ B n  A XOR B: Jan2014 Nguyễn Kim Khánh A⊕ B = A• B + A• B Computer Architecture DCE-HUST 67 Jan2014 P AND Q P OR Q P NAND Q P NOR Q P XOR Q P ⊕ Q P + Q P+Q P•Q P•Q P Q P 0 0 1 0 0 1 1 0 0 1 1 0 1 1 0 1 1 0 0 0 1 1 0 1 1 1 0 1 1 0 0 0 Computer Architecture 68 17 Bài giảng Kiến trúc máy tính Jan2014 NKK-HUST NKK-HUST Các đồng nhất thức của đại số Boole A • B = B • A A + B = B + A A • (B + C) = (A • B) + (A • C) A + (B • C) = (A + B) • ( A + C) 1 • A = A 0 + A = A A • A = 0 A + A = 1 0 • A = 0 1 + A = 1 A • A = A A + A = A A • (B • C) = (A • B) • C A + (B + C) = (A + B) + C 368 2.3. Các cổng logic (Logic Gates) n  Thực hiện các hàm logic: n  n  Cổng logic một đầu vào: n  n  Cổng NOT, bộ đệm (buffer) Cổng hai đầu vào: n  n  NOT, AND, OR, NAND, NOR, etc. AND, OR, XOR, NAND, NOR, XNOR Cổng nhiều đầu vào CHAPTER 11 / DIGITAL LOGIC A • B = A + B (Định lý De Morgan) A + B = A • B (Định lý De Morgan) 11.2 GATES Jan2014 NKK-HUST The fundamental building block of all digital logic circuits is the gate. Logical functions are implemented by the interconnection of gates. A gate is an electronic circuit that produces an output signal that is a simComputer Architecture ple Boolean operation on its input signals. The basic gates used in digital logic are AND, OR, NOT, NAND, NOR, and XOR. Figure 11.1 depicts these six gates. Each gate is defined in three ways: graphic symbol, algebraic notation, and truth table. The symbology used in this chapter is from the IEEE standard, IEEE Std 91. Note that the inversion (NOT) operation is indicated by a circle. Each gate shown in Figure 11.1 has one or two inputs and one output. However, as indicated in Table 11.1b, all of the gates except NOT can have more than two inputs. Thus, (X + Y + Z) can be implemented with a single OR gate with three inputs. When one or more of the values at the input are changed, the correct output signal appears almost instantaneously, delayed only by the propagation time of signals through the gate (known as the gate delay). The significance of this delay is discussed in Section 11.3. In some cases, a gate is implemented with two outputs, one output being the negation of the other output. 69 Jan2014 Computer Architecture NKK-HUST Tập đầy đủ Các cổng logic AND OR NOT NAND NOR XOR Jan2014 Nguyễn Kim Khánh Algebraic Function Graphical Symbol Name A B A B A A B A B A B F F!A•B or F ! AB F F!A"B F!A or F ! A# F F F ! AB F F!A"B F F!A!B Figure 11.1 Basic Logic Gates Computer Architecture DCE-HUST Truth Table A 0 0 1 1 A 0 0 1 1 B 0 1 0 1 B 0 1 0 1 A 0 1 A 0 0 1 1 A 0 0 1 1 A 0 0 1 1 n  F 0 0 0 1 F 0 1 1 1 n  F 1 0 B 0 1 0 1 B 0 1 0 1 B 0 1 0 1 70 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 đủ: n  F 1 1 1 0 F 1 0 0 0 F 0 1 1 0 n  n  n  n  71 Jan2014 {AND, OR, NOT} {AND, NOT} {OR, NOT} {NAND} {NOR} Computer Architecture 72 18 • NAND • NOR It should be clear that AND, OR, and NOT gates constitute a functionally set, because they represent the three operations of Boolean algebra. For Bài giảng Kiến complete trúc the ANDmáy and NOTtính gates to form a functionally complete set, there must be a way Jan2014 to synthesize the OR operation from the AND and NOT operations. This can be done by applying DeMorgan’s theorem: A + B = A#B A OR B = NOT ((NOT A) AND (NOT B)) NKK-HUST NKK-HUST Similarly, the OR and NOT operations are functionally complete because they can be used to synthesize the AND operation. Figure 11.2 shows how the AND, OR, and NOT functions can be implemented solely with NAND gates, and Figure 11.3 shows the same thing for NOR gates. For this reason, digital circuits can be, and frequently are, implemented solely with NAND gates or solely with NOR gates. Sử dụng cổng NAND A Sử dụng cổng NOR 370 CHAPTER 11 / DIGITAL LOGIC A A A A B A A (A+B) A B A B B A A A A+B A B B B B Figure 11.2 Some Uses of NAND Gates Jan2014 A+B B Figure 11.3 Some Uses of NOR Gates Computer Architecture 73 Jan2014 With gates, we have reached the most primitive circuit level of computer hardware. An examination of theComputer transistor combinations used to construct gates Architecture departs from that realm and enters the realm of electrical engineering. For our purposes, however, we are content to describe how gates can be used as building blocks to implement the essential logical circuits of a digital computer. 74 11.3 COMBINATIONAL CIRCUITS NKK-HUST NKK-HUST A combinational circuit is an interconnected set of gates whose output at any time is a function only of the input at that time. As with a single gate, the appearance of the input is followed almost immediately by the appearance of the output, with only gate delays. n  In general terms, a combinational circuit consists of n binary inputs and m binary outputs. As with a gate, a combinational circuit can be defined in three ways: Một số ví dụ vi mạch logic 20-34 2.4. Mạch tổ hợp CHAPTER 20 / DIGITAL LOGIC VCC 14 4B 7400 4A 4Y 3B VCC 14 6A 7404 6Y 5A 5Y 3A 3Y 13 12 11 10 9 8 4A 4Y 13 12 11 10 9 8 1 1A 2 1B 3 1Y 4 2A 5 2B 6 7 2Y GND 1 1A 2 1Y 3 2A 4 2Y 5 3A 6 7 3Y GND VCC 14 4B 4A 13 12 3A 3Y 1Y 8 VCC 14 1C 9 13 12 Mạch logic là mạch bao gồm: n  1 1A 2 1B 3 1Y VCC 14 2D 2C 13 12 1 1A 2 1B 3 NC VCC 14 4B 4A 13 12 7408 4Y 3B 11 10 4 2A 5 2B 7422 NC 2B 11 10 4 1C 5 1D 7432 4Y 3B 11 10 6 7 2Y GND 1 1A 2 1B 3 2A 2A 2Y 9 8 VCC NC 14 13 12 6 7 1Y GND 3A 3Y 9 8 H 1 A 2 B 3 C VCC 14 4B 4A 13 12 7411 3C 3B 3A 3Y 11 10 9 8 4 2B 5 2C 6 7 2Y GND 7430 G NC NC 11 4 D 10 5 E 7486 4Y 3B 11 10 9 Các kiểu mạch logic: n  Implementation of Boolean Functions Any implemented in electronic form as a network of gates. n  Boolean Mạchfunction logic can tổ be hợp (Combinational Logic) For any given function, there are a number of alternative realizations. Consider the Mạchrepresented không nhớ Booleann function by the truth table in Table 11.3. We can express this function by simply itemizing the combinations of values of A, and C cause F to be 1: n  Đầu ra được xác định bởi các giá trịB,hiện tạithat của đầu vào Y 8 6 7 F GND 3A 3Y 9 8 Các đầu vào (Inputs) • Truth table: For each of the 2n possible combinations of input signals, the Các value đầuofraeach (Outputs) binary of the m output signals is listed. • Graphical The interconnected layoutspecification) of gates is depicted. n  Đặc tả symbols: chức năng (Functional • Boolean equations: Each output signal is expressed as a Boolean function of n  its Đặc thời gian (Timing specification) inputtả signals. n  n  + ABC + ABC + ABC Logic) Mạch logic dãyF (Sequential n  n  1 1A Jan2014 Nguyễn Kim Khánh 2 1B 3 1Y 4 2A 5 2B 6 7 2Y GND 1 1A 2 1B 3 1Y 4 2A 5 2B 6 7 2Y GND Figure 20.32 Some SSI Chips. Pin layouts from The TTL Data Book for Design Engineers, copyright © 1976 Texas Instrument Incorporated. Computer Architecture DCE-HUST 75 Jan2014 (11.1) Mạch có nhớ Đầu ra được xác định bởi các giá trị trước đó và giá trị hiện tại của đầu vào Computer Architecture 76 19 Bài giảng Kiến trúc máy tính Mạch tổ hợp là mạch logic trong đó đầu ra chỉ phụ thuộc đầu vào ở thời điểm hiện tại. CHAPTER 11 / DIGITAL LOGIC n  Là mạch không nhớ và được thực hiện A B bằng các cổng logic cơ bản n  Mạch tổ hợp có thểF được định nghĩa B theo ba cách: (X # Y # Z) = X + Y + Z A B C F 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 0 1 1 0 0 11.7 Table S21 00 Bảng thật Dạng sơ đồ n  Phương trìnhAnother Booleconsideration NOR IMPLEMENTATIONS 77 F = B(A + C) Bộ dồn kênh (Multiplexer-MUX) F = (AB)•(BC) 2n đầu vào dữ liệu n  n đầu vào chọn Multiplexers n  1 multiple đầu ra The multiplexer connects inputs to a single output. At any time, one of the inputs is selected to be passed to the output. A general block diagram representation n  Đầu vào chọn xác định đầu vào nào (D) sẽ is shown in Figure 11.12. This represents a 4-to-1(S) multiplexer. There are four input lines, labeled D0, D1, D2, and D3. One of these lines is selected to provide the được nối với đầu ra (F). S2 Jan2014 0 Nguyễn Kim Khánh S2 S1 F 0 0 1 1 0 1 0 1 D0 D1 D2 D3 S2 DCE-HUST F S1 F 0 D0 1 Figure0 11.4 D1 Sum-of-Products D2Implementation of Table 11.3 1 D3 78 S1 D0 D1 F D2 D3 Figure 11.13 Multiplexer Implementation S1 Figure 11.12 4-to-1 Multiplexer Computer Architecture Representation 381 output signal F. To select one of the four possible inputs, a 2-bit selection code is needed, and this is implemented as two select lines labeled S1 and S2. An example 4-to-1 multiplexer is defined by the truth table in Table 11.7. This Jan2014 Computer is a simplified form of a truth table. InsteadArchitecture of showing all possible combinations of input variables, it shows the output as data from line D0, D1, D2, or D3. Figure 11.13 shows an implementation using AND, OR, and NOT gates. S1 and S2 are connected to the AND gates in such a way that, for any combination of S1 and S2, three of the AND gates will output 0. The fourth AND gate will output the value of the selected line, which is either 0 or 1. Thus, three of the inputs to the OR gate are always 0, and the output of the OR gate will equal the value of the selected input gate. Using NKK-HUST this regular organization, it is easy to construct multiplexers of size 8-to-1, 16-to-1, and so on. Multiplexers are used in digital circuits to control signal and data routing. An example is the loading of the program counter (PC). The value to be loaded into the program counter may come from one of several different sources: n  which has three NAND forms, as illustrated in Figure 11.11. D3 11.3 / COMBINATIONAL CIRCUITS Thực hiện MUX bốn đầu vào Applying DeMorgan’s theorem, F C 4-to-1 Multiplexer Truth Table 1 Because the complement of the complement of a value is just the original value, NKK-HUST F = B(A + C) = (AB + (BC) D2 B F = A BC + A BC + ABC in the implementation of Boolean functions concerns the types of gates used. It is sometimes Jan2014 Computer Architecture desirable to implement a Boolean function solely with NAND gates or solely with NOR gates. Although this may not be the minimum-gate implementation, it has the advantage of regularity, which can simplify the manufacturing process. Consider again Equation (11.3): D0 A 1 n  Figure 11.11 NAND Implementation of Table 11.3 n  4-to-1 MUX 0 This can be rewritten using a generalization of DeMorgan’s theorem: C D1 1 1 F = 1A B C2 # 1A B C2 # 1A B C2 # 1A B C2 # 1A B C2 Ví dụ n  AND 0 1 There are three combinations of input values that cause F to be 1, and if any one of these combinations occurs, the result is 1. This form of expression, for selfevident reasons, is known as the sum of products (SOP) form. Figure 11.4 shows a straightforward implementation with AND, OR, and NOT gates. Another form can also be derived from the truth table. The SOP form expresses that the output is 1 if any of the input combinations that produce 1 is true. We can also say that the output is 1 if none of the input combinations that produce 0 is true. Thus, NKK-HUST Mạch tổ hợp NAND 1 1 Jan2014 NKK-HUST 380 1 79 Jan2014 Computer Architecture 80 20
- Xem thêm -

Tài liệu liên quan