Kiến trúc máy tính - Chương 1: Giới thiệu chung

pdf 136 trang vanle 2300
Bạn đang xem 20 trang mẫu của tài liệu "Kiến trúc máy tính - Chương 1: Giới thiệu chung", để 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:

  • pdfkien_truc_may_tinh_chuong_1_gioi_thieu_chung.pdf

Nội dung text: Kiến trúc máy tính - Chương 1: Giới thiệu chung

  1. 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 Address: 502-B1 KIẾN TRÚC MÁY TÍNH n Mobile: 091-358-5533 n e-mail: khanhnk@soict.hust.edu.vn Computer Architecture khanh.nguyenkim@hust.edu.vn 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 Computer Architecture 2 NKK-HUST NKK-HUST Mục tiêu học phần Tài liệu tham khảo chính n 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 – 2013 (9th như những vấn đề cơ bản trong thiết kế máy edition) tính. [2] David A. Patterson & John L. Hennessy - Computer n Sau khi học xong học phần này, sinh viên có Organization and Design: The Hardware/Software Interface khả năng: – 2012 (revised 4th edition) n 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 n Lập trình hợp ngữ trên một số kiến trúc Design and Computer Architecture – 2013 (2nd edition) n Đánh giá hiệu năng của các họ máy tính n Khai thác và quản trị hiệu quả các hệ thống máy tính [4] Andrew S. Tanenbaum - Structured Computer th n Phân tích và thiết kế máy tính Organization – 2012 (6 edition) Jan2014 Computer Architecture 3 Jan2014 Computer Architecture 4 Nguyễn Kim Khánh DCE-HUST 1
  2. Bài giảng Kiến trúc máy tính Jan2014 NKK-HUST NKK-HUST Nội dung học phần Chú ý: Bài giảng mới nhất Jan 2014 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 5 Jan2014 Computer Architecture 6 NKK-HUST NKK-HUST Kiến trúc máy tính Nội dung 1.1. Máy tính và phân loại Chương 1 1.2. Khái niệm kiến trúc máy tính GIỚI THIỆU CHUNG 1.3. Sự tiến hóa 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 Jan2014 Computer Architecture 7 Jan2014 Computer Architecture 8 Nguyễn Kim Khánh DCE-HUST 2
  3. 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: Bộ xử lý trung tâm n Nhận thông tin vào, (Central Các Các Processing Unit) n Xử lý thông tin theo dãy các lệnh được nhớ sẵn bên thiết bị ra thiết bị vào (Output trong, (Input Devices) Devices) n Đưa thông tin ra. Bộ nhớ chính n Dãy các lệnh nằm trong bộ nhớ để yêu cầu (Main Memory) 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. Jan2014 Computer Architecture 9 Jan2014 Computer Architecture 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 [P&H] n Thiết bị di động cá nhân (Personal Mobile Devices): n Smartphones, Tablet n Phân loại truyền thống: n Máy tính cá nhân đa dụng (Personal Computers) n Máy vi tính (Microcomputers) n Desktop computers, Laptop computers n Máy tính nhỏ (Minicomputers) n Máy chủ (Servers) n Thực chất là Máy phục vụ n Máy tính lớn (Mainframe Computers) n Dùng trong mạng theo mô hình Client/Server n Siêu máy tính (Supercomputers) n Máy tính cụm/máy tính qui mô lớn (Clusters/Warehouse Scale Computers): n Sử dụng tại các trung tâm tính toán, trung tâm dữ liệu n Supercomputers n Máy tính nhúng (Embedded Computers) n Đặt ẩn trong thiết bị khác n Được thiết kế chuyên dụng Jan2014 Computer Architecture 11 Jan2014 Computer Architecture 12 Nguyễn Kim Khánh DCE-HUST 3
  4. 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 Định nghĩa của Hennessy/ Patterson n Kiến trúc máy tính bao gồm: n Định nghĩa trước đây về kiến trúc máy n Kiến trúc tập lệnh (Instruction Set Architecture): tính: nghiên cứu máy tính theo cách nhìn của người lập n Là thiết kế kiến trúc tập lệnh (Instruction Set trình (hardware/software interface). Architecture – ISA) n Tổ chức máy tính (Computer Organization) hay Vi n Các thuộc tính của máy tính theo cách nhìn kiến trúc (Microarchitecture): nghiên cứu thiết kế máy người lập trình (hardware/software interface) 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. n Là định nghĩa hẹp n 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. n 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 13 Jan2014 Computer Architecture 14 NKK-HUST 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: CPU Bộ nhớ chính 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 Bus liên kết hệ thống n Các kiểu dữ liệu: các kiểu dữ liệu mà máy tính có thể xử lý Hệ thống vào-ra Jan2014 Computer Architecture 15 Jan2014 Computer Architecture 16 Nguyễn Kim Khánh DCE-HUST 4
  5. 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 Mô hình phân lớp của máy tính n Bộ xử lý trung tâm (Central Processing Unit): Phần mềm Người sử ứng dụng dụng Điều khiển hoạt động của máy tính và xử lý dữ Người lập Phần mềm trình liệu. trung gian Hệ điều hành n Bộ nhớ chính (Main Memory): Chứa các Các phần mềm ứng dụng Kiến trúc Người thiết kế HĐH tập lênh chương trình và dữ liệu đang được sử dụng. Các phần mềm trung gian Vi kiến trúc n Hệ thống vào-ra (Input/Output System): Trao Hệ điều hành đổi thông tin giữa máy tính với bên ngoài. Logic-số Phần cứng n Bus liên kết hệ thống (System Interconnection Mạch điện tử Bus): Kết nối và vận chuyển thông tin giữa các thành phần với nhau. n Phần cứng (Hardware): hệ thống vật lý của máy tính. n Phần mềm (Software): các chương trình và dữ liệu. Jan2014 Computer Architecture 17 Jan2014 Computer Architecture 18 NKK-HUST 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 Electronic Numerical Intergator and Computer n Thế hệ thứ nhất: Máy tính dùng đèn điện tử n Dự án của Bộ Quốc phòng Mỹ chân không (1950s) n Do John Mauchly và John Presper Eckert ở Đại học Pennsylvania thiết kế. n Thế hệ thứ hai: Máy tính dùng transistor n Bắt đầu từ 1943, hoàn thành 1946 (1960s) n Nặng 30 tấn n Thế hệ thứ ba: Máy tính dùng vi mạch SSI, n 18000 đèn điện tử và 1500 rơle MSI và LSI (1970s) n 5000 phép cộng/giây n Xử lý theo số thập phân n Thế hệ thứ tư: Máy tính dùng vi mạch VLSI n Bộ nhớ chỉ lưu trữ dữ liệu (1980s) n 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. n Thế hệ thứ năm: Máy tính dùng vi mạch ULSI, SoC (1990s-nay) Jan2014 Computer Architecture 19 Jan2014 Computer Architecture 20 Nguyễn Kim Khánh DCE-HUST 5
  6. 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 Vi mạch hay là mạch tích hợp (Integrated Circuit n Chính là máy tính IAS (thực - IC): mạch điện tử gồm nhiều transistors và các hiện tại Princeton Institute for linh kiện khác được tích hợp trên một chip bán Advanced Studies) dẫn. n Bắt đầu 1947, hoàn thành 1952 n Phân loại vi mạch theo qui mô tích hợp: n Do John von Neumann thiết kế n SSI - Small Scale Integration n Được xây dựng theo ý tưởng n MSI - Medium Scale Integration “chương trình được lưu trữ” - n LSI - Large Scale Integration (stored-program concept) của n VLSI - Very Large Scale Integration von Neumann/Turing (1945) n ULSI - Ultra Large Scale Integration n Trở thành mô hình cơ bản của máy tính Jan2014 Computer Architecture 21 Jan2014 Computer Architecture 22 NKK-HUST NKK-HUST Một số vi mạch số điển hình Luật Moore 2.1 / A BRIEF HISTORY OF COMPUTERS 31 First working Invention of Moore’s law transistor integrated circuit promulgated n Bộ vi xử lý (Microprocessors): CPU được chế 100 bn 10 bn 1 bn tạo trên một chip. 100 m 10 m 100,000 10,000 n Vi mạch điều khiển tổng hợp (Chipset): một 1000 100 10 hoặc một vài vi mạch thực hiện được nhiều 1 1947 50 55 60 65 70 75 80 85 90 95 2000 05 11 chức năng điều khiển và nối ghép. Figure 2.8 Growth in Transistor Count on Integrated Circuits n Gordon MooreIBM SYSTEM –/360 ng Byườ 1964, IBMi đồ hadng a firm sáng grip on the lcomputerập Intel market with n Bộ nhớ bán dẫn (Semiconductor Memory): its 7000 series of machines. In that year, IBM announced the System/360, a new n Số transistorsfamily of computer trên products. chip Although sẽ theg ấannouncementp đôi itselfsau was no18 surprise, tháng it contained some unpleasant news for current IBM customers: the 360 product line ROM, RAM, Flash was incompatible with older IBM machines. Thus, the transition to the 360 would be n Giá thànhdifficult của for thechip current customerhầu base.nh Thisư was không a bold step by IBM,thay but one đổ IBMi felt was necessary to break out of some of the constraints of the 7000 architecture and n n to produce a system capable of evolving with the new integrated circuit technology Hệ thống trên chip (SoC – System on Chip) Mật độ cao[PADE81, hơ GIFF87].n, do The vstrategyậy paidđườ off bothng financially dẫ nand ngtechnically.ắn Theh ơ360n was the success of the decade and cemented IBM as the overwhelmingly dominant n Kích thướcomputerc nh vendor,ỏ h ơwithn a marketdẫn share tớ abovei độ 70%. phAnd, ứwithc some tạ modificationsp tăng lên n Các bộ vi điều khiển (Microcontrollers) and extensions, the architecture of the 360 remains to this day the architecture of IBM’s mainframe9 computers. Examples using this architecture can be found n Điện năngthroughout tiêu thisth text.ụ ít hơn The System/360 was the industry’s first planned family of computers. The n Hệ thống familycó coveredít các a wide chip range of performanceliên k ếandt cost. vớ Tablei nhau, 2.4 indicates somedo of đ ó 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 Jan2014 Computer Architecture 23 Jan2014 model in the series, with onlyComputer a difference Architecture in the time it takes to execute. 24 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 9The 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
  7. 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ý Máy tính ngày nay n 1971: bộ vi xử lý 4-bit Intel 4004 Massive Cluster Gigabit Ethernet Clusters n 1972: các bộ xử lý 8-bit n 1978: các bộ xử lý 16-bit n 1985: các bộ xử lý 32-bit n 2001: các bộ xử lý 64-bit n 2006: các bộ xử lý đa lõi (multicores) Sensor Refrigerators Nets Cars Robots Robots RoutersRouters Jan2014 Computer Architecture 25 Jan2014 Computer Architecture 26 NKK-HUST NKK-HUST 1.4. Hiệu năng máy tính Xung nhịp của CPU n Hoạt động của CPU được điều khiển bởi xung n Định nghĩa hiệu năng P(Performance): nhịp có tần số xác định P = 1/ t trong đó: t là thời gian thực hiện T0 n “Máy tính A nhanh hơn máy B n lần” n Chu kỳ xung nhịp T0(Clock period): thời gian của PA / PB = tB / tA = n một chu kỳ n Ví dụ: Thời gian chạy chương trình: n Tần số xung nhịp f0 (Clock rate): số chu kỳ trong 1 n 10s trên máy A, 15s trên máy B giây. n f = 1/T n tB / tA = 15s / 10s = 1.5 0 0 9 n Vậy máy A nhanh hơn máy B 1.5 lần n VD: Bộ xử lý có f0 = 4GHz = 4000MHz = 4×10 Hz 9 –9 T0 = 1/(4x10 ) = 0.25x10 s = 0.25ns Jan2014 Computer Architecture 27 Jan2014 Computer Architecture 28 Nguyễn Kim Khánh DCE-HUST 7
  8. 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 Máy tính A: n Tần số xung nhịp: f = 2GHz n A n Thời gian của CPU: tA = 10s tCPU = n ×T0 = n Máy tính B f0 n Thời gian của CPU: tB = 6s n Số chu kỳ xung nhịp của B = 1.2 x Số chu kỳ xung nhịp của A n trong đó: n là số chu kỳ xung nhịp n Xác định tần số xung nhịp của máy B (fB)? n Hiệu năng được tăng lên bằng cách: n Giảm số chu kỳ xung nhịp n n Tăng tần số xung nhịp f0 Jan2014 Computer Architecture 29 Jan2014 Computer Architecture 30 NKK-HUST NKK-HUST Ví dụ Số lệnh và số chu kỳ trên một lệnh n Máy tính A: n Số chu kỳ = Số lệnh x Số chu kỳ trên một lệnh n Tần số xung nhịp: fA= 2GHz n Thời gian của CPU: tA = 10s n = IC ×CPI n Máy tính B n - số chu kỳ, IC - số lệnh (Instruction Count), CPI - số n Thời gian của CPU: t = 6s B chu kỳ trên một lệnh (Cycles per Instruction) n Số chu kỳ xung nhịp của B = 1.2 x Số chu kỳ xung nhịp của A n Xác định tần số xung nhịp của máy B (fB)? n n Giải: Thời gian thực hiện của CPU: nB 1.2× nA f B = = IC×CPI tB 6s tCPU = IC×CPI ×T0 = 9 f0 nA = t A × f A =10s× 2GHz = 20 ×10 n Trong trường hợp các lệnh khác nhau có CPI khác 1.2× 20 ×10 9 24 ×10 9 f = = = 4GHz nhau, cần tính CPI trung bình B 6s 6s Jan2014 Computer Architecture 31 Jan2014 Computer Architecture 32 Nguyễn Kim Khánh DCE-HUST 8
  9. Bài giảng Kiến trúc máy tính Jan2014 NKK-HUST NKK-HUST Ví dụ Ví dụ n Máy tính A: TA = 250ps, CPIA = 2.0 n Máy tính A: TA = 250ps, CPIA = 2.0 n Máy tính B: TB = 500ps, CPIB = 1.2 n Máy tính B: TB = 500ps, CPIB = 1.2 n Cùng kiến trúc tập lệnh (ISA) n Cùng kiến trúc tập lệnh (ISA) n Máy nào nhanh hơn và nhanh hơn bao nhiêu ? n Máy nào nhanh hơn và nhanh hơn bao nhiêu ? t = IC ×CPI × T A A A = IC × 2.0 × 250ps = IC ×500ps t IC CPI T B = × B × B = IC ×1.2×500ps = IC × 600ps t IC × 600ps B = = 1.2 Vậy: t IC 500ps A nhanh hơn B 1.2 lần A × Jan2014 Computer Architecture 33 Jan2014 Computer Architecture 34 NKK-HUST NKK-HUST Chi tiết hơn về CPI Ví dụ n Nếu loại lệnh khác nhau có số chu kỳ khác n 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 IC trong dãy lệnh 2 4 1 1 n CPI trung bình: n K IC CPI ⎛CPI i ⎞ TB = = ∑⎜ i × ⎟ IC i=1 ⎝ IC ⎠ Jan2014 Computer Architecture 35 Jan2014 Computer Architecture 36 Nguyễn Kim Khánh DCE-HUST 9
  10. Bài giảng Kiến trúc máy tính Jan2014 NKK-HUST NKK-HUST Ví dụ Tóm tắt về Hiệu năng n Cho bảng chỉ ra các dãy lệnh sử dụng các lệnh Instructions Clock cycles Seconds thuộc các loại A, B, C. Tính CPI trung bình? CPU Time = × × Program Instruction Clock cycle Loại lệnh A B C IC×CPI CPI theo loại lệnh 1 2 3 tCPU = IC×CPI ×T0 = IC trong dãy lệnh 1 2 1 2 f0 IC trong dãy lệnh 2 4 1 1 n Hiệu năng phụ thuộc vào: n Thuật toán n Dãy lệnh 1: IC = 5 n Dãy lệnh 2: IC = 6 n Ngôn ngữ lập trình n Số chu kỳ n Số chu kỳ = 2×1 + 1×2 + 2×3 = 4×1 + 1×2 + 1×3 n Chương trình dịch = 10 = 9 n Kiến trúc tập lệnh n CPITB = 10/5 = 2.0 n CPITB = 9/6 = 1.5 Jan2014 Computer Architecture 37 Jan2014 Computer Architecture 38 NKK-HUST NKK-HUST MIPS như là thước đo hiệu năng Ví dụ n MIPS: Millions of Instructions Per Second Tính MIPS của bộ xử lý với: (Số triệu lệnh trên 1 giây) clock rate = 2GHz và CPI = 4 Instruction count Instruction count Clock rate MIPS = 6 = = 6 Execution time 10 Instruction count ×CPI 6 CPI 10 × ×10 × Clock rate f f MIPS = 0 CPI = 0 CPI×106 MIPS×106 Jan2014 Computer Architecture 39 Jan2014 Computer Architecture 40 Nguyễn Kim Khánh DCE-HUST 10
  11. 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: Tính CPI của bộ xử lý với: clock rate = 2GHz và CPI = 4 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 Jan2014 Computer Architecture 42 NKK-HUST NKK-HUST Ví dụ MFLOPS Tính CPI của bộ xử lý với: Millions of Floating Point Operations per Second clock rate = 1GHz và 400 MIPS? (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×106 1ns GFLOPS(109 ) 4x108 lệnh thực hiện trong 1s 8 TFLOPS(1012) à 1 lệnh thực hiện trong 1/(4x10 )s = 2,5ns à CPI = 2,5 Jan2014 Computer Architecture 43 Jan2014 Computer Architecture 44 Nguyễn Kim Khánh DCE-HUST 11
  12. 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 Hết chương 1 Chương 2 CƠ BẢN VỀ LOGIC SỐ Nguyễn Kim Khánh Trường Đại học Bách khoa Hà Nội Jan2014 Computer Architecture 45 Jan2014 Computer Architecture 46 NKK-HUST NKK-HUST Nội dung học phần Nội dung của chương 2 Chương 1. Giới thiệu chung Chương 2. Cơ bản về logic số 2.1. Các hệ đếm cơ bản Chương 3. Hệ thống máy tính 2.2. Đại số Boole Chương 4. Số học máy tính 2.3. Các cổng logic Chương 5. Kiến trúc tập lệnh 2.4. Mạch tổ hợp Chương 6. Bộ xử lý 2.5. Mạch dãy 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 47 Jan2014 Computer Architecture 48 Nguyễn Kim Khánh DCE-HUST 12
  13. 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 1. Hệ thập phân n Cơ số 10 n Hệ thập phân (Decimal System) n 10 chữ số: 0,1,2,3,4,5,6,7,8,9 à con người sử dụng n Dùng n chữ số thập phân có thể biểu diễn n Hệ nhị phân (Binary System) được 10n giá trị khác nhau: à máy tính sử dụng n 00 000 = 0 n n Hệ mười sáu (Hexadecimal System) n 99 999 = 10 - 1 à dùng để viết gọn cho số nhị phân Jan2014 Computer Architecture 49 Jan2014 Computer Architecture 50 NKK-HUST NKK-HUST Dạng tổng quát của số thập phân Ví dụ số thập phân 2 1 0 -1 -2 A = an an−1 a1a0 ,a−1 a−m 472.38 = 4x10 + 7x10 + 2x10 + 3x10 + 8x10 n Các chữ số của phần nguyên: Giá trị của A được hiểu như sau: n 472 : 10 = 47 dư 2 n 47 : 10 = 4 dư 7 n n−1 1 0 −1 −m A = an10 + an−110 + + a110 + a010 + a−110 + + a−m10 n 4 : 10 = 0 dư 4 n n Các chữ số của phần lẻ: i A a 10 n 0.38 x 10 = 3.8 phần nguyên = 3 = ∑ i i=−m n 0.8 x 10 = 8.0 phần nguyên = 8 Jan2014 Computer Architecture 51 Jan2014 Computer Architecture 52 Nguyễn Kim Khánh DCE-HUST 13
  14. Bài giảng Kiến trúc máy tính Jan2014 NKK-HUST NKK-HUST 2. Hệ nhị phân Bits, Bytes, Nibbles n Bits 10010110 n Cơ số 2 most least n 2 chữ số nhị phân: 0 và 1 significant significant bit bit n chữ số nhị phân gọi là bit (binary digit) byte n Bit là đơn vị thông tin nhỏ nhất n n Bytes & Nibbles 10010110 n Dùng n bit có thể biểu diễn được 2 giá trị nibble khác nhau: n 00 000 = 0 n n 11 111 = 2 - 1 CEBF9AD7 n Bytes most least significant significant byte byte Jan2014 Computer Architecture 53 Jan2014 Computer Architecture 54 NKK-HUST NKK-HUST Lũy thừa hai Dạng tổng quát của số nhị phân 10 n 2 = 1 kilo ≈ 1000 (1024) Có một số nhị phân A như sau: 20 n 2 = 1 mega ≈ 1 triệu (1,048,576) A = an an−1 a1a0 ,a−1 a−m 30 n 2 = 1 giga ≈ 1 tỷ (1,073,741,824) Giá trị của A được tính như sau: 40 n 2 = 1 tera ≈ 1000 tỷ n n−1 1 0 −1 −m 50 A = an 2 + an−1 2 + + a1 2 + a0 2 + a−1 2 + + a−m 2 n 2 = 1 peta ≈ 1 triệu tỷ n A a 2i = ∑ i i=−m Jan2014 Computer Architecture 55 Jan2014 Computer Architecture 56 Nguyễn Kim Khánh DCE-HUST 14
  15. 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 n Phương pháp 1: chia dần cho 2 rồi lấy 6 5 3 0 -1 -3 -4 = 2 + 2 + 2 + 2 + 2 + 2 + 2 phần dư = 64 + 32 + 8 + 1 + 0.5 + 0.125 + 0.0625 n Phương pháp 2: Phân tích thành tổng i của các số 2 à nhanh hơn = 105.6875(10) Jan2014 Computer Architecture 57 Jan2014 Computer Architecture 58 NKK-HUST NKK-HUST Phương pháp chia dần cho 2 Phương pháp phân tích thành tổng của các 2i n Ví dụ 1: chuyển đổi 105(10) n Ví dụ: chuyển đổi 105 6 5 3 0 (10) n 105 = 64 + 32 + 8 +1 = 2 + 2 + 2 + 2 n 105 : 2 = 52 dư 1 7 6 5 4 3 2 1 0 n 52 : 2 = 26 dư 0 2 2 2 2 2 2 2 2 n 26 : 2 = 13 dư 0 128 64 32 16 8 4 2 1 0 1 1 0 1 0 0 1 n 13 : 2 = 6 dư 1 n 6 : 2 = 3 dư 0 n Kết quả: 105(10) = 0110 1001(2) n 3 : 2 = 1 dư 1 n Ví dụ 2: 17000 = 16384 + 512 + 64 + 32 + 8 n 1 : 2 = 0 dư 1 (10) = 214 + 29 + 26 + 25 + 23 n Kết quả: 105(10) = 1101001(2) 17000(10) = 0100 0010 0110 1000(2) 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Jan2014 Computer Architecture 59 Jan2014 Computer Architecture 60 Nguyễn Kim Khánh DCE-HUST 15
  16. 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 Chuyển đổi số lẻ thập phân sang nhị phân (tiếp) n n Ví dụ 1: chuyển đổi 0.6875(10) Ví dụ 2: chuyển đổi 0.81(10) n 0.81 x 2 = 1.62 phần nguyên = 1 n 0.6875 x 2 = 1.375 phần nguyên = 1 n 0.62 x 2 = 1.24 phần nguyên = 1 n 0.375 x 2 = 0.75 phần nguyên = 0 n 0.24 x 2 = 0.48 phần nguyên = 0 n 0.75 x 2 = 1.5 phần nguyên = 1 n 0.48 x 2 = 0.96 phần nguyên = 0 n 0.5 x 2 = 1.0 phần nguyên = 1 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 Kết quả : 0.6875(10)= 0.1011(2) n 0.81(10) ≈ 0.1100111(2) Jan2014 Computer Architecture 61 Jan2014 Computer Architecture 62 NKK-HUST NKK-HUST Chuyển đổi số lẻ thập phân sang nhị phân (tiếp) 3. Hệ mười sáu (Hexa) n Ví dụ 3: chuyển đổi 0.2(10) n Cơ số 16 n 0.2 x 2 = 0.4 phần nguyên = 0 n 16 chữ số: 0,1,2,3,4,5,6,7,8,9, A,B,C,D,E,F n 0.4 x 2 = 0.8 phần nguyên = 0 n 0.8 x 2 = 1.6 phần nguyên = 1 n Dùng để viết gọn cho số nhị phân: cứ một n 0.6 x 2 = 1.2 phần nguyên = 1 nhóm 4-bit sẽ được thay bằng một chữ số n 0.2 x 2 = 0.4 phần nguyên = 0 Hexa n 0.4 x 2 = 0.8 phần nguyên = 0 n 0.8 x 2 = 1.6 phần nguyên = 1 n 0.6 x 2 = 1.2 phần nguyên = 1 n 0.2(10) ≈ 0.00110011 (2) Jan2014 Computer Architecture 63 Jan2014 Computer Architecture 64 Nguyễn Kim Khánh DCE-HUST 16
  17. 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 2.2. Đại số Boole 4-bit Chữ số Hexa 0000 0 Ví dụ chuyển đổi số nhị phân à số Hexa: n Đại số Boole sử dụng các biến logic và phép 0001 1 n 1011 00112 = B316 toán logic 0010 2 0011 3 n 0000 00002 = 0016 n Biến logic có thể nhận giá trị 1 (TRUE) hoặc 0 0100 4 (FALSE) 0101 5 0110 6 n 0010 1101 1001 10102 = 2D9A16 n Phép toán logic cơ bản là AND, OR và NOT 0111 7 n 1111 1111 1111 11112 = FFFF16 với ký hiệu như sau: 1000 8 1001 9 n A AND B : A•B 1010 A n A OR B : A + B 1011 B 1100 C n NOT A : A 1101 D n Thứ tự ưu tiên: NOT > AND > OR 1110 E 1111 F Jan2014 Computer Architecture 65 Jan2014 Computer Architecture 66 NKK-HUST NKK-HUST Các phép toán logic (tiếp) Phép toán đại số Boole n Các phép toán NAND, NOR, XOR: NOT A A AND B A OR B A NAND B A NOR B A XOR B A B A A•B A+B A•B A+B A ⊕ B n A NAND B: A• B 0 0 1 0 0 1 1 0 n A NOR B : A + B 0 1 1 0 1 1 0 1 n A XOR B: A⊕ B = A• B + A• B 1 0 0 0 1 1 0 1 1 1 0 1 1 0 0 0 Jan2014 Computer Architecture 67 Jan2014 Computer Architecture 68 Nguyễn Kim Khánh DCE-HUST 17
  18. 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 2.3. Các cổng logic (Logic Gates) A • B = B • A A + B = B + A n Thực hiện các hàm logic: A • (B + C) = (A • B) + (A • C) A + (B • C) = (A + B) • ( A + C) n NOT, AND, OR, NAND, NOR, etc. 1 • A = A 0 + A = A n Cổng logic một đầu vào: A • A = 0 A + A = 1 n Cổng NOT, bộ đệm (buffer) 0 • A = 0 1 + A = 1 n Cổng hai đầu vào: A • A = A A + A = A n AND, OR, XOR, NAND, NOR, XNOR A • (B • C) = (A • B) • C A + (B + C) = (A + B) + C n Cổng nhiều đầu vào 368 CHAPTER 11 / DIGITAL LOGIC A • B = A + B (Định lý De Morgan) A + B = A • B (Định lý De Morgan) 11.2 GATES The fundamental building block of all digital logic circuits is the gate. Logical func- tions are implemented by the interconnection of gates. A gate is an electronic circuit that produces an output signal that is a sim- Jan2014 ple Boolean operation on its inputComputer signals. Architecture The basic gates used in digital logic are 69 Jan2014 Computer Architecture 70 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 NKK-HUST with three inputs. When one or more of the values at the input are changed, the NKK-HUST correct output signal appears almost instantaneously, delayed only by the propaga- tion 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 Tập đầy đủ Cácoutputs, c oneổ outputng beinglogic the negation of the other output. Algebraic Graphical Symbol Truth Table Name Function AB F n Là tập các cổng có thể thực hiện được A F ϭ A • B 0 0 0 AND F or 0 1 0 B bất kỳ hàm logic nào từ các cổng của F ϭ AB 1 0 0 1 1 1 AB F A 0 0 0 tập đó. OR F F ϭ A ϩ B 0 1 1 B 1 0 1 1 1 1 n Một số ví dụ về tập đầy đủ: F ϭ A AF 0 1 NOT A F or n F ϭ AЈ 1 0 {AND, OR, NOT} AB F n A 0 0 1 {AND, NOT} NAND F F ϭ AB 0 1 1 B 1 0 1 1 1 0 n {OR, NOT} A B F A 0 0 1 NOR F F ϭ A ϩ B 0 1 0 n {NAND} B 1 0 0 1 1 0 A B F n {NOR} A 0 0 0 XOR F F ϭ A  B 0 1 1 B 1 0 1 1 1 0 Figure 11.1 Basic Logic Gates Jan2014 Computer Architecture 71 Jan2014 Computer Architecture 72 Nguyễn Kim Khánh DCE-HUST 18
  19. 11.2 / GATES 369 Here we introduce a common term: we say that to assert a signal is to cause a signal line to make a transition from its logically false (0) state to its logically true (1) state. The true (1) state is either a high or low voltage state, depending on the type of electronic circuitry. Typically, not all gate types are used in implementation. Design and fabrication are simpler if only one or two types of gates are used. Thus, it is important to identify functionally complete sets of gates. This means that any Boolean function can be imple- mented using only the gates in the set. The following are functionally complete sets: • AND, OR, NOT • AND, NOT • OR, NOT • NAND • NOR It should be clear that AND, OR, and NOT gates constitute a functionally complete set, because they represent the three operations of Boolean algebra. For Bài giảng Kiến thetrúc AND máy and NOT tí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 Similarly, the OR and NOT operations are functionally complete because NKK-HUST they can be used to synthesize the AND operation. SFigureử d 11.2ụng shows c howổng the AND,NAND OR, and NOT functions can be implemented Sử dụng cổng NOR 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. 370 CHAPTER 11 / DIGITAL LOGIC A A A A A A B A (A+B) A B A+B B B A A A A A+B A B B B B B Figure 11.2 Some Uses of NAND Gates Figure 11.3 Some Uses of NOR Gates With gates, we have reached the most primitive circuit level of computer hardware. An examination of the transistor combinations used to construct gates Jan2014 Computer Architecture 73 Jan2014 Computer Architecture 74 departs from that realm and enters the realm of electrical engineering. For our pur- poses, however, we are content to describe how gates can be used as building blocks to implement the essential logical circuits of a digital computer. 11.3 COMBINATIONAL CIRCUITS NKK-HUST NKK-HUST A combinational circuit is an interconnected set of gates whose output at any time Một số ví dụ vi mạch logic is a function2.4. onlyMạ ofch the inputtổ ath thatợp time. As with a single gate, the appearance of 20-34 CHAPTER 20 / DIGITAL LOGIC the input is followed almost immediately by the appearance of the output, with only 7400 7404 gate delays. VCC 4B 4A 4Y 3B 3A 3Y VCC 6A 6Y 5A 5Y 4A 4Y 14 13 12 11 10 9 8 14 13 12 11 10 9 8 n MạInch general logic terms, là a mcombinationalạch bao circuit gồ m:consists of n binary inputs and m binary outputs. As with a gate, a combinational circuit can be defined in three ways: n Các đầu vào (Inputs) • Truth table: For each of the 2n possible combinations of input signals, the 1 2 3 4 5 6 7 1 2 3 4 5 6 7 n 1A 1B 1Y 2A 2B 2Y GND 1A 1Y 2A 2Y 3A 3Y GND binaryCác valueđầu of ra each (Outputs) of the m output signals is listed. 7408 7411 VCC 4B 4A 4Y 3B 3A 3Y VCC 1C 1Y 3C 3B 3A 3Y • Graphical symbols: The interconnected layout of gates is depicted. 14 13 12 11 10 9 8 14 13 12 11 10 9 8 n Đặc tả chức năng (Functional specification) • Boolean equations: Each output signal is expressed as a Boolean function of n itsĐặ inputc t ảsignals. thời gian (Timing specification) 1 2 3 4 5 6 7 1 2 3 4 5 6 7 1A 1B 1Y 2A 2B 2Y GND 1A 1B 2A 2B 2C 2Y GND n ImplementationCác kiểu m ofạ chBoolean logic: Functions 7422 7430 VCC 2D 2C NC 2B 2A 2Y VCC NC H G NC NC Y 14 13 12 11 10 9 8 14 13 12 11 10 9 8 Anyn BooleanMạch function logic cantổ behợ implementedp (Combinational in electronic form Logic) as a network of gates. For any given function, there are a number of alternative realizations. Consider the Booleann function Mạch represented không nh byớ the truth table in Table 11.3. We can express this func- tion by simplyn itemizing the combinations of values of A, B, and C that cause F to be 1: 1 2 3 4 5 6 7 1 2 3 4 5 6 7 Đầu ra được xác định bởi các giá trị hiện tại của đầu vào 1A 1B NC 1C 1D 1Y GND A B C D E F GND 7432 7486 F ABC ABC ABC (11.1) VCC 4B 4A 4Y 3B 3A 3Y VCC 4B 4A 4Y 3B 3A 3Y n Mạch logic dãy (Sequential+ + Logic)+ 14 13 12 11 10 9 8 14 13 12 11 10 9 8 n Mạch có nhớ n Đầu ra được xác định bởi các giá trị trước đó và giá trị hiện tại 1 2 3 4 5 6 7 1 2 3 4 5 6 7 1A 1B 1Y 2A 2B 2Y GND 1A 1B 1Y 2A 2B 2Y GND của đầu vào Figure 20.32 Some SSI Chips. Pin layouts from The TTL Data Book for Design Engineers, Jan2014 copyright © 1976 Texas InstrumentComputer Incorporated. Architecture 75 Jan2014 Computer Architecture 76 Nguyễn Kim Khánh DCE-HUST 19
  20. 11.3 / COMBINATIONAL CIRCUITS 371 Table 11.3 A Boolean Function of Three Variables ABCF 0000 0010 0101 0111 1000 1010 1101 1110 Bài giảng Kiến trúc máy tính There are three combinations of input values that cause F to be 1, and if anyJan2014 one of these combinations occurs, the result is 1. This form of expression, for self- evident 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 NKK-HUST F = A B C # A B C # A B C # A B C # A B C Mạch tổ hợp Ví dụ This can be rewritten1 using2 a 1generalization2 1 of DeMorgan’s2 1 2 theorem:1 2 (X # Y # Z) = X + Y + Z n AB C Mạch tổ hợp là mạch logic trong đó đầu A B C F ra chỉ phụ thuộc đầu vào ở thời điểm 0 0 0 0 hiện tại. 0 0 1 0 0 1 0 1 380 CHAPTER 11 / DIGITAL LOGIC n Là mạch không nhớ và được thực hiện 0 1 1 1 A 11.3 / COMBINATIONAL CIRCUITS 381 B bằng các cổng logic cơ bản 1 0 0 0 F 1 0 1 Table0 11.7 4-to-1 Multiplexer Truth Table n Mạch tổ hợp có thểF được định nghĩa 1 1 0 S21 S1 F 0 0 D0 B theo ba cách: 1 1 1 0 0 1 D1 C Figure 11.4 Sum-of-Products Implementation of Table 11.3 n Bảng thật 1 0 D2 Figure 11.11 NAND Implementation of 1 1 D3 Table 11.3 n Dạng sơ đồ F = ABC + ABC + ABC output signal F. To select one of the four possible inputs, a 2-bit selection code is NAND AND NOR nIMPLEMENTATIONS Phương trình Another Boole consideration in the needed, and this is implemented as two select lines labeled S1 and S2. implementation of Boolean functions concerns the types of gates used. It is sometimes An example 4-to-1 multiplexer is defined by the truth table in Table 11.7. This desirable toJan2014 implement a Boolean function solely withComputer NAND Architecture gates or solely with 77 Jan2014 is a simplified form of a truth table.Computer Instead Architecture of showing all possible combinations of 78 NOR gates. Although this may not be the minimum-gate implementation, it has the input variables, it shows the output as data from line D0, D1, D2, or D3. Figure 11.13 advantage of regularity, which can simplify the manufacturing process. Consider shows an implementation using AND, OR, and NOT gates. S1 and S2 are connected again Equation (11.3): 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 F = B(A + C) 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 Because the complement of the complement of a value is just the original value, NKK-HUST NKK-HUST this regular organization, it is easy to construct multiplexers of size 8-to-1, 16-to-1, F B(A C) (AB (BC) and so on. = + = + Multiplexers are used in digital circuits to control signal and data routing. An Applying DeMorgan’s Btheorem,ộ dồn kênh (Multiplexer-MUX) exampleThự is cthe hiloadingện of MUXthe program bcounterốn (PC).đầ Theu valuevào to be loaded into the program counter may come from one of several different sources: F = (AB)•(BC) n n S2 S1 which has three NAND2 forms, đầ asu illustrated vào d inữ Figure liệu 11.11. n n đầu vào chọn Multiplexers The multiplexer connectsn 1 multipleđầu rainputs to a single output. At any time, one of the inputs is selected to be passed to the output. A general block diagram representation D0 is shown in Figure 11.12.n Đầ Thisu represents vào ch a 4-to-1ọn (S) multiplexer. xác địTherenh are đầ fouru inputvào nào (D) sẽ lines, labeled D0, D1, D2,đượ andc D3. nố Onei v ớof ithese đầ ulines ra is (F).selected to provide the D1 S2 S1 F D0 F D1 0 0 D0 D2 4-to-1 MUX F D2 0 1 D1 1 0 D2 D3 1 1 D3 D3 Figure 11.13 Multiplexer Implementation S2 S1 Jan2014 Figure 11.12 4-to-1 MultiplexerComputer Architecture 79 Jan2014 Computer Architecture 80 Representation Nguyễn Kim Khánh DCE-HUST 20
  21. Bài giảng Kiến trúc máy tính Jan2014 NKK-HUST NKK-HUST Bộ giải mã (Decoder) Thực hiện bộ giải mã 3 ra 8 11.3 / COMBINATIONAL CIRCUITS 383 A 000 D N 0 n N đầu vào, 2 đầu ra B n Chỉ có một đầu ra tích cực (được chọn) tương 001 D 1 ứng với một tổ hợp của N đầu vào. C 010 D2 2:4 A1 A0 Decoder 011 D3 11 Y3 A1 10 Y2 100 D4 A0 01 Y1 Y3 00 Y0 101 D Y2 5 A1 A0 Y3 Y2 Y1 Y0 Y 1 110 D 0 0 0 0 0 1 6 0 1 0 0 1 0 Y0 111 1 0 0 1 0 0 D7 1 1 1 0 0 0 Figure 11.15 Decoder with 3 Inputs and 23 = 8 Outputs Jan2014 Computer Architecture 81 Jan2014 Computer Architecture 82 A0 A7 256 ϫ 8 256 ϫ 8 256 ϫ 8 256 ϫ 8 RAM RAM RAM RAM NKK-HUST NKK-HUST 2-to-4 Enable Enable Enable Enable Decoder Bộ cộng (Adder) Bộ cộA8ng (tiếp) A9 Figure 11.16 Address Decoding n Bộ cộng bán phần (Half-adder) n Cộng hai bit tạo ra bit tổng và bit nhớ n Bộ cộng toàn phần (Full-adder) n Cộng 3 bit n Cho phép xây dựng bộ cộng N-bit Jan2014 Computer Architecture 83 Jan2014 Computer Architecture 84 Nguyễn Kim Khánh DCE-HUST 21
  22. 386 CHAPTER 11 / DIGITAL LOGIC Table 11.9 Binary Addition Truth Tables (a) Single-Bit Addition (b) Addition with Carry Input A B Sum Carry Cin A B Sum Cout 00 0 0 0000 0 01 1 0 0011 0 10 1 0 010111.3 / COMBINATIONAL CIRCUITS 0 387 11 0 1 0110 1 A B 1001 0 C 1010 1 A 1100 1 B C 1111 1 Sum A B 0011C +0 A +1 +0 +1 B 0C 1 1 10 However, addition canA still be dealt with in Boolean terms. In Table 11.9a, we show the logic for addingB two input bits to produce a 1-bit sum and a carry bit. This truth table could easily be implemented in digital logic. However, we are not interested in performingA addition on just a single pair of bits. Rather, we wish to Carry add two n-bit numbers. CThis can be done by putting together a set of adders so that Bài giảng Kiếthen carrytrúc from máy one adder tính is provided as input to the next. A 4-bit adder is depicted Jan2014 in Figure 11.19. B For a multiple-bit adderC to work, each of the single-bit adders must have three inputs, including the carry from the next-lower-order adder. The revised truth table appears in Table 11.9b. FigureThe two 11.20 outputs Implementation can be expressed: of an Adder Sum = A BC + ABC + ABC + ABC NKK-HUST NKK-HUST Thus we haveCarry the necessary= AB + AClogic+ toBC implement a multiple-bit adder such as shown in Figure 11.21. Note that because the output from each adder depends on Figure 11.20 is an implementation using AND, OR, and NOT gates. the carryBộ from cộ theng previous 4-bit adder, và there b ộis an c increasingộng 32-bit delay from the least signifi- 2.5. Mạch dãy cant to the most significant bit. Each single-bit adder experiences a certain amount of gate delay, and this gate delay accumulates. For larger adders, the accumulated A3 B3 A2 B2 A1 B1 A0 B0 delay can become unacceptably high. n Mạch dãy là mạch logic trong đó đầu ra If the carry values could be determined without having to ripple through all Overflow phụ thuộc giá trị đầu vào ở thời điểm the previousC stages,C then eachC single-bitC adderC could CfunctionC independently,C 0 and signaldelay would3 not accumulate.in This2 can bein achieved1 with inan approach0 knownin as carry lookahead. Let us look again at the 4-bit adder to explain this approach. hiện tại và quá khứ We would like to come up with an expression that specifies the carry input to any stage of the adder without reference to previous carry values. We have n Là mạch có nhớ, được thực hiện bằng S3 S2 S1 S0 Figure 11.19 4-Bit Adder phần tử nhớ (Latch, Flip-Flop) và có thể A31 B31 A24 B24 A23 B23 A16 B16 A15 B15 A8 B8 A7 B7 A0 B0 kết hợp với các cổng logic cơ bản 8-bit C23 8-bit C15 8-bit C7 8-bit C C n Mạch dãy bao gồm: out adder adder adder adder in 392 CHAPTER 11 / DIGITAL LOGIC n Mạch tổ hợp K Q S31 S24 S23 S16 S15 S8 S7 S0 n Mạch hồi tiếp Figure 11.21 Construction of a 32-Bit Adder Using 8-Bit Adders Clock Jan2014 Computer Architecture 85 Jan2014 Computer Architecture 86 J Q Figure 11.26 J–K Flip-Flop causing the output to be 1; if only the K input is asserted, the result is a reset function, causing the output to be 0. When both J and K are 1, the function performed is NKK-HUST NKK-HUST referred to as the toggle function: the output is reversed. Thus, if Q is 1 and 1 is applied to J and K, then Q becomes 0. The reader should verify that the implementation of Các thành phần chính của mạch dãy CácFigure Flip-Flop 11.26 produces this characteristic cơ b ảfunction.n Name Graphical Symbol Truth Table SQ S R Qnϩ1 00 Qn S–R Ck 0 1 0 1 0 1 RQ 1 1 – JQ J K Qnϩ1 00 Qn J–K Ck 0 1 0 1 0 1 KQ 1 1 Qn DQ D Qnϩ1 0 0 D Ck 1 1 Q Figure 11.27 Basic Flip-Flops Jan2014 Computer Architecture 87 Jan2014 Computer Architecture 88 Nguyễn Kim Khánh DCE-HUST 22
  23. Bài giảng Kiến trúc máy tính Jan2014 11.4 / SEQUENTIAL CIRCUITS 393 NKK-HUST NKK-HUST Data lines D18R-SD17 LatchD16 và cácD15 Flip-FlopD14 D13 D12 D11 Thanh ghi 8-bit song song 11.4 / SEQUENTIAL CIRCUITS 393 Data lines D Q D Q D Q D Q D Q D Q D Q D Q D18 D17 D16 D15 D14 D13 D12 D11 Clk Clk Clk Clk Clk Clk Clk Clk Clock Load R-S Flip Flop D Q D Q D Q D Q D Q D Q D Q D Q R-SD08 LatchD07 D06 D05 D04 D03 D02 D01 Clk Clk Clk Clk Clk Clk Clk Clk 394 CHAPTER 11 / DIGITAL LOGIC Output lines Clock latter capacity, they need to be equipped with parallel read/write circuitry as well Figure 11.28 8-Bit Parallel Register Load as serial. D08 D07 D06 D05 D04 D03 D02 D01 Registers Counters Output lines As an example of the use of flip-flops, let us first examine one of the essential ele- Figure 11.28Another 8-Bit useful Parallel category Register of sequential circuit is the counter. A counter is a register whose value is easily incremented by 1 modulo the capacity of the register; that is, ments of the CPU: the register. As we know, a register is a digital circuit used within after the maximum value is achieved the next increment sets the counter value to 0. the CPU to store one or more bits of data. Two basic types of registers are com- Registers n Thus, a register made up of n flip-flops can count up to 2 - 1. An example of a monly used:D Flip parallel Flop registers and shift registers. J-K Flip Flop counterAs an example in the CPU of the is the use program of flip-flops, counter. let us first examine one of the essential ele- Counters can be designated as asynchronous or synchronous, depending on PARALLEL REGISTERS A parallel register consists of a set of 1-bit memories that ments of the CPU: the register. As we know, a register is a digital circuit used within the wayCPU in to which store they one operate. or more Asynchronous bits of data. countersTwo basic are types relatively of registers slow because are com- can be read or written simultaneously. It is used to store data. The registers that we the output of one flip-flop triggers a change in the status of the next flip-flop. In a Jan2014 Computer Architecture 89 Jan2014 monly used: parallel registersComputer and shift Architecture registers. 90 have discussed throughout this book are parallel registers. synchronous counter, all of the flip-flops change state at the same time. Because the The 8-bit register of Figure 11.28 illustrates the operation of a parallel register latterPARALLEL type is REGISTERS much faster, Ait isparallel the kind register used in consists CPUs. However, of a set of it is1-bit useful memories to begin that using D flip-flops. A control signal, labeled load, controls writing into the register thecan discussionbe read or with written a description simultaneously. of an asynchronous It is used to counter. store data. The registers that we have discussed throughout this book are parallel registers. from signal lines, D11 through D18. These lines might be the output of multiplexers, RIPPLE COUNTER An asynchronous counter is also referred to as a ripple counter, so that data from a variety of sources can be loaded into the register. becauseThe the 8-bit change register that of occurs Figure to 11.28 increment illustrates the thecounter operation starts of at a one parallel end registerand “ripples”using D flip-flops. through toA thecontrol other signal, end. Figurelabeled 11.30 load ,shows controls an implementationwriting into the ofregister a SHIFT REGISTER A shift register accepts and/or transfers information serially. from signal lines, D11 through D18. These lines might be the output of multiplexers, NKK-HUST NKK-HUST 4-bit counter using J–K flip-flops, together with a timing diagram that illustrates its Consider, for example, Figure 11.29, which shows a 5-bit shift register constructed behavior.so that data The from timing a variety diagram of issources idealized can in be that loaded it does into not the show register. the propagation from clocked D flip-flops. Data are input only to the leftmost flip-flop. With each delaySHIFT that REGISTER occurs as A the shift signals register move accepts down the and/or series transfers of flip-flops. information The output serially. of clock Thanhpulse, data areghi shifted dị chto the 5-bit right one position, and the rightmost bit is BConsider,theộ leftmostđế mfor flip-flop example, 4-bit (Q 0Figure) is the 11.29, least significantwhich shows bit. a The5-bit design shift registercould clearly constructed be extended to an arbitrary number of bits by cascading more flip-flops. transferred out. from clocked D flip-flops. Data are input only to the leftmost flip-flop. With each Shift registers can be used to interface to serial I/O devices. In addition, they clockHigh pulse, data are shifted to the right one position, and the rightmost bit is can be used within the ALU to perform logical shift and rotate functions. In this transferred out. Shift registersJQ can be used toJQ interface to serialJQ I/O devices. In JQaddition, they can be used within the ALU to perform logical shift and rotate functions. In this Serial in D Q D Q D Q D Q D Q Serial out Clock Ck Ck Ck Ck Clk Clk Clk Clk Clk Serial in DK QQ D Q K Q D Q KD Q D QK Q Serial out Q Q Q Q Clk 0 Clk Clk1 Clk 2 Clk 3 (a) Sequential circuit Clock Clock Clock Figure 11.29 5-Bit Shift Register Q0 Figure 11.29 5-Bit Shift Register Q1 Q2 Q3 (b) Timing diagram Figure 11.30 Ripple Counter Jan2014 Computer Architecture 91 Jan2014 Computer Architecture 92 Nguyễn Kim Khánh DCE-HUST 23
  24. 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 3 Hết chương 2 HỆ THỐNG MÁY TÍNH Nguyễn Kim Khánh Trường Đại học Bách khoa Hà Nội Jan2014 Computer Architecture 93 Jan2014 Computer Architecture 94 NKK-HUST NKK-HUST Nội dung học phần Nội dung của chương 3 Chương 1. Giới thiệu chung Chương 2. Cơ bản về logic số 3.1. Các thành phần cơ bản của máy tính Chương 3. Hệ thống máy tính 3.2. Hoạt động cơ bản của máy tính Chương 4. Số học máy tính 3.3. Bus 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 95 Jan2014 Computer Architecture 96 Nguyễn Kim Khánh DCE-HUST 24
  25. Bài giảng Kiến trúc máy tính Jan2014 NKK-HUST NKK-HUST 3.1. Các thành phần cơ bản của máy tính 1. Bộ xử lý trung tâm (CPU) n Chức năng: n Bộ xử lý trung tâm (CPU) n điều khiển hoạt động của máy tính n Bộ nhớ (Memory) n xử lý dữ liệu n Hệ thống vào-ra (Input/Output System) n n Bus liên kết hệ thống (System Interconnection Bus) Nguyên tắc hoạt động cơ bản: CPU hoạt động theo chương trình nằm trong bộ nhớ chính. Jan2014 Computer Architecture 97 Jan2014 Computer Architecture 98 NKK-HUST NKK-HUST Cấu trúc cơ bản của CPU Các thành phần cơ bản của CPU n Đơn vị điều khiển (Control Unit - CU): điều Đơn vị khiển hoạt động của máy tính theo chương trình Đơn vị Tập các số học và điều khiển thanh ghi đã định sẵn. logic (CU) (RF) (ALU) n Đơn vị số học và logic (Arithmetic and Logic Unit - ALU): thực hiện các phép toán số học và phép toán logic. bus bên trong n Tập thanh ghi (Register File - RF): lưu giữ các thông tin tạm thời phục vụ cho hoạt động của Đơn vị nối ghép bus (BIU) CPU. n Đơn vị nối ghép bus (Bus Interface Unit - BIU) bus bên ngoài kết nối và trao đổi thông tin giữa bus bên trong (internal bus) và bus bên ngoài (external bus). Jan2014 Computer Architecture 99 Jan2014 Computer Architecture 100 Nguyễn Kim Khánh DCE-HUST 25
  26. Bài giảng Kiến trúc máy tính Jan2014 NKK-HUST NKK-HUST 2. Bộ nhớ máy tính Các thành phần của bộ nhớ máy tính n Chức năng: lưu trữ chương trình và dữ liệu. n Các thao tác cơ bản với bộ nhớ: n Thao tác ghi (Write) Bộ nhớ Bộ nhớ CPU trong ngoài n Thao tác đọc (Read) n Các thành phần chính: n Bộ nhớ trong (Internal Memory) n Bộ nhớ ngoài (External Memory) Jan2014 Computer Architecture 101 Jan2014 Computer Architecture 102 NKK-HUST NKK-HUST Bộ nhớ trong Bộ nhớ chính (Main Memory) Nội dung Địa ch ỉ n Chứa các chương trình và 1011 0010 0000 n Chức năng và đặc điểm: dữ liệu đang được CPU sử 1110 0010 0001 n Chứa các thông tin mà CPU có thể trao đổi dụng. 0001 1111 0010 trực tiếp 1010 1011 0011 n Tổ chức thành các ngăn 0000 1000 0100 n Tốc độ rất nhanh nhớ được đánh địa chỉ. 1111 1111 0101 0011 1100 0110 n Dung lượng không lớn n Ngăn nhớ thường được tổ 1000 1111 0111 n Sử dụng bộ nhớ bán dẫn: ROM và RAM chức theo byte. 1111 0001 1000 0011 1101 1001 n n Nội dung của ngăn nhớ có Các loại bộ nhớ trong: 1000 1111 1010 thể thay đổi, song địa chỉ vật n Bộ nhớ chính 0011 0011 1011 lý của ngăn nhớ luôn cố 1100 1101 1100 n Bộ nhớ cache (bộ nhớ đệm) định. 0101 1010 1101 1000 1101 1110 1111 0000 1111 Jan2014 Computer Architecture 103 Jan2014 Computer Architecture 104 Nguyễn Kim Khánh DCE-HUST 26
  27. Bài giảng Kiến trúc máy tính Jan2014 NKK-HUST NKK-HUST Bộ nhớ cache Bộ nhớ ngoài (External Memory) n Bộ nhớ có tốc độ nhanh được đặt đệm giữa n Chức năng và đặc điểm CPU và bộ nhớ chính nhằm tăng tốc độ n Lưu giữ tài nguyên phần mềm của máy tính CPU truy cập bộ nhớ n Được kết nối với hệ thống dưới dạng các thiết bị vào-ra n Dung lượng nhỏ hơn bộ nhớ chính n Dung lượng lớn n Tốc độ nhanh hơn n Tốc độ chậm n Cache thường được chia thành một số mức n Các loại bộ nhớ ngoài n Bộ nhớ từ: ổ đĩa cứng n Cache có thể được tích hợp trên cùng chip n Bộ nhớ quang: đĩa CD, DVD bộ xử lý. n Bộ nhớ bán dẫn: Ổ nhớ flash, thẻ nhớ, ổ SSD n Cache có thể có hoặc không Jan2014 Computer Architecture 105 Jan2014 Computer Architecture 106 NKK-HUST NKK-HUST 3. Hệ thống vào-ra Cấu trúc cơ bản của hệ thống vào-ra n Chức năng: Trao đổi thông tin giữa máy Cổng Thiết bị bus vào- tính với thế giới bên ngoài. ngoại vi hệ ra thống n Các thao tác cơ bản: Mô-đun vào-ra n Vào dữ liệu (Input) Cổng Thiết bị nối ghép vào- ngoại vi n Ra dữ liệu (Output) với CPU ra và bộ n Các thành phần chính: nhớ chính n Các thiết bị ngoại vi (Peripheral Devices) Cổng n Các mô-đun vào-ra (IO Modules) Mô-đun Thiết bị vào- vào-ra ngoại vi ra Jan2014 Computer Architecture 107 Jan2014 Computer Architecture 108 Nguyễn Kim Khánh DCE-HUST 27
  28. Bài giảng Kiến trúc máy tính Jan2014 NKK-HUST NKK-HUST Các thiết bị ngoại vi Mô-đun vào-ra n Chức năng: nối ghép các thiết bị ngoại vi n Chức năng: chuyển đổi dữ liệu giữa bên trong và bên ngoài máy tính với máy tính n Các loại thiết bị ngoại vi cơ bản n Mỗi mô-đun vào-ra có một hoặc một vài cổng vào-ra (I/O Port). n Thiết bị vào: bàn phím, chuột, máy quét n Thiết bị ra: màn hình, máy in n Mỗi cổng vào-ra được đánh một địa chỉ n Thiết bị nhớ: các ổ đĩa xác định. n Thiết bị truyền thông: MODEM n Các thiết bị ngoại vi được kết nối và trao đổi dữ liệu với máy tính thông qua các cổng vào-ra. Jan2014 Computer Architecture 109 Jan2014 Computer Architecture 110 NKK-HUST NKK-HUST 3.2. Hoạt động cơ bản của máy tính 1. Thực hiện chương trình n Là hoạt động cơ bản của máy tính n Thực hiện chương trình n Máy tính lặp đi lặp lại hai bước: n Hoạt động ngắt n Nhận lệnh n Hoạt động vào-ra n Thực hiện lệnh n Thực hiện chương trình bị dừng nếu thực hiện lệnh bị lỗi hoặc gặp lệnh dừng. Jan2014 Computer Architecture 111 Jan2014 Computer Architecture 112 Nguyễn Kim Khánh DCE-HUST 28
  29. Bài giảng Kiến trúc máy tính Jan2014 NKK-HUST NKK-HUST Nhận lệnh Minh họa quá trình nhận lệnh n Bắt đầu mỗi chu trình lệnh, CPU nhận lệnh từ bộ nhớ chính. CPU lệnh 300 CPU lệnh 300 n Bộ đếm chương trình PC (Program Counter) PC lệnh 301 PC lệnh 301 của CPU giữ địa chỉ của lệnh sẽ được nhận. 302 lệnh i 302 303 lệnh i 302 lệnh i+1 303 lệnh i+1 303 n CPU nhận lệnh từ ngăn nhớ được trỏ bởi PC. IR IR lệnh i+2 304 lệnh i lệnh i+2 304 n Lệnh được nạp vào thanh ghi lệnh IR (Instruction Register). n Sau khi lệnh được nhận vào, nội dung PC tự Trước khi nhận lệnh i Sau khi nhận lệnh i động tăng để trỏ sang lệnh kế tiếp. Jan2014 Computer Architecture 113 Jan2014 Computer Architecture 114 NKK-HUST NKK-HUST Thực hiện lệnh 2. Hoạt động ngắt (Interrupt) n Bộ xử lý giải mã lệnh đã được nhận và n Khái niệm chung về ngắt: Ngắt là cơ chế cho phát tín hiệu điều khiển thực hiện thao phép CPU tạm dừng chương trình đang thực tác mà lệnh yêu cầu. hiện để chuyển sang thực hiện một chương trình khác, gọi là chương trình con phục vụ ngắt. n Các kiểu thao tác của lệnh: n Các loại ngắt: n Trao đổi dữ liệu giữa CPU và bộ nhớ chính n Ngắt do lỗi khi thực hiện chương trình, ví dụ: tràn số, chia cho 0. n Trao đổi dữ liệu giữa CPU và mô-đun vào-ra n Ngắt do lỗi phần cứng, ví dụ lỗi bộ nhớ RAM. n Xử lý dữ liệu: thực hiện các phép toán số n Ngắt do mô-đun vào-ra phát tín hiệu ngắt đến CPU học hoặc phép toán logic với các dữ liệu. yêu cầu trao đổi dữ liệu. n Điều khiển rẽ nhánh n Ngắt do bộ định thời trong chế độ đa chương trình n Kết hợp các thao tác trên. Jan2014 Computer Architecture 115 Jan2014 Computer Architecture 116 Nguyễn Kim Khánh DCE-HUST 29
  30. Bài giảng Kiến trúc máy tính Jan2014 NKK-HUST NKK-HUST Hoạt động ngắt (tiếp) Hoạt động ngắt (tiếp) n Sau khi hoàn thành mỗi một lệnh, bộ xử lý kiểm Chương trình đang thực hiên tra tín hiệu ngắt Chương trình con phục vụ ngắt n Nếu không có ngắt à bộ xử lý nhận lệnh tiếp theo lệnh của chương trình hiện tại lệnh lệnh lệnh n Nếu có tín hiệu ngắt: lệnh lệnh Ngắt ở đây lệnh i lệnh n Tạm dừng chương trình đang thực hiện lệnh i+1 n Cất ngữ cảnh (các thông tin liên quan đến chương trình . . . lệnh bị ngắt) RETURN n Thiết lập PC trỏ đến chương trình con phục vụ ngắt . . . n Chuyển sang thực hiện chương trình con phục vụ ngắt lệnh n Cuối chương trình con phục vụ ngắt, khôi phục ngữ cảnh và tiếp tục chương trình đang bị tạm dừng Jan2014 Computer Architecture 117 Jan2014 Computer Architecture 118 NKK-HUST NKK-HUST Xử lý với nhiều tín hiệu yêu cầu ngắt Xử lý với nhiều tín hiệu yêu cầu ngắt n Xử lý ngắt tuần tự n Xử lý ngắt ưu tiên n Khi một ngắt đang được thực hiện, các n Các ngắt được định ngắt khác sẽ bị cấm. nghĩa mức ưu tiên khác nhau n Bộ xử lý sẽ bỏ qua các n Ngắt có mức ưu ngắt tiếp theo trong khi tiên thấp hơn có thể đang xử lý một ngắt bị ngắt bởi ngắt ưu n Các yêu cầu ngắt vẫn tiên cao hơn đang đợi và được kiểm n Xẩy ra ngắt lồng tra sau khi ngắt đầu nhau tiên được xử lý xong n Các ngắt được thực hiện tuần tự Jan2014 Computer Architecture 119 Jan2014 Computer Architecture 120 Nguyễn Kim Khánh DCE-HUST 30
  31. Bài giảng Kiến trúc máy tính Jan2014 NKK-HUST NKK-HUST 3. Hoạt động vào-ra 3.3. Bus máy tính 1. Luồng thông tin trong máy tính n Hoạt động vào-ra: là hoạt động trao đổi dữ liệu giữa mô-đun vào-ra với bên trong máy tính. n Các mô-đun trong máy tính: n CPU n Các kiểu hoạt động vào-ra: n Mô-đun nhớ n CPU trao đổi dữ liệu với mô-đun vào-ra n Mô-đun vào-ra n Mô-đun vào-ra trao đổi dữ liệu trực tiếp với è cần được kết nối với nhau bộ nhớ chính (DMA- Direct Memory Access). Jan2014 Computer Architecture 121 Jan2014 Computer Architecture 122 NKK-HUST NKK-HUST Kết nối mô-đun nhớ Kết nối mô-đun nhớ (tiếp) n Địa chỉ đưa đến để xác định ngăn nhớ địa chỉ n Dữ liệu được đưa đến khi ghi n Dữ liệu hoặc lệnh được đưa ra khi đọc Mô-đun dữ liệu dữ liệu hoặc lệnh (lưu ý: bộ nhớ không phân biệt lệnh và nhớ dữ liệu) Tín hiệu điều khiển đọc n Nhận các tín hiệu điều khiển: n Điều khiển đọc (Read) Tín hiệu điều khiển ghi n Điều khiển ghi (Write) Jan2014 Computer Architecture 123 Jan2014 Computer Architecture 124 Nguyễn Kim Khánh DCE-HUST 31
  32. Bài giảng Kiến trúc máy tính Jan2014 NKK-HUST NKK-HUST Kết nối mô-đun vào-ra Kết nối mô-đun vào-ra (tiếp) n Địa chỉ đưa đến để xác định cổng vào-ra dữ liệu đến TBNV dữ liệu từ bên trong n Ra dữ liệu (Output) n Nhận dữ liệu từ CPU hoặc bộ nhớ chính dữ liệu từ TBNV dữ liệu đến bên trong n Đưa dữ liệu ra thiết bị ngoại vi Mô-đun n Vào dữ liệu (Input) vào-ra địa chỉ Các tín hiệu điều khiển TBNV n Nhận dữ liệu từ thiết bị ngoại vi n Đưa dữ liệu vào CPU hoặc bộ nhớ chính tín hiệu điều khiển đọc Các tín hiệu điều khiển ngắt n Nhận các tín hiệu điều khiển từ CPU tín hiệu điều khiển ghi n Phát các tín hiệu điều khiển đến thiết bị ngoại vi n Phát các tín hiệu ngắt đến CPU Jan2014 Computer Architecture 125 Jan2014 Computer Architecture 126 NKK-HUST NKK-HUST Kết nối CPU Kết nối CPU (tiếp) n Phát địa chỉ đến các mô-đun nhớ hay lệnh địa chỉ các mô-đun vào-ra n Đọc lệnh và dữ liệu dữ liệu CPU dữ liệu n Đưa dữ liệu ra (sau khi xử lý) n Phát tín hiệu điều khiển đến các mô-đun Các tín hiệu điều khiển ngắt Các tín hiệu điều khiển nhớ và các mô-đun vào-ra bộ nhớ và vào-ra n Nhận các tín hiệu ngắt Jan2014 Computer Architecture 127 Jan2014 Computer Architecture 128 Nguyễn Kim Khánh DCE-HUST 32
  33. Bài giảng Kiến trúc máy tính Jan2014 NKK-HUST NKK-HUST 2. Cấu trúc bus cơ bản Sơ đồ cấu trúc bus cơ bản n Bus: tập hợp các đường kết nối dùng để vận chuyển thông tin giữa các mô-đun của Mô-đun Mô-đun Mô-đun Mô-đun máy tính với nhau. CPU nhớ nhớ vào-ra vào-ra n Các bus chức năng: n Bus địa chỉ bus địa chỉ n Bus dữ liệu bus dữ liệu n Bus điều khiển bus điều khiển n Độ rộng bus: là số đường dây của bus có thể truyền các bit thông tin đồng thời (chỉ dùng cho bus địa chỉ và bus dữ liệu) Jan2014 Computer Architecture 129 Jan2014 Computer Architecture 130 NKK-HUST NKK-HUST Bus địa chỉ Bus dữ liệu n Chức năng: vận chuyển địa chỉ để xác n Chức năng: định ngăn nhớ hay cổng vào-ra n vận chuyển lệnh từ bộ nhớ đến CPU n Độ rộng bus địa chỉ: cho biết số lượng n vận chuyển dữ liệu giữa CPU, mô đun nhớ, ngăn nhớ tối đa được đánh địa chỉ. mô đun vào-ra với nhau n N bit: AN-1, AN-2, A2, A1, A0 n Độ rộng bus dữ liệu: Xác định số bit dữ è có thể đánh địa chỉ tối đa cho 2N ngăn nhớ liệu có thể được trao đổi đồng thời. (không gian địa chỉ bộ nhớ) n M bit: DM-1, DM-2, D2, D1, D0 n Ví dụ: n M thường là 8, 16, 32, 64,128 bit. n Bộ xử lý Pentium có bus địa chỉ 32 bit n Ví dụ: Các bộ xử lý Pentium có bus dữ è có khả năng đánh địa chỉ cho 232 bytes nhớ liệu 64 bit (4GBytes) (ngăn nhớ tổ chức theo byte) Jan2014 Computer Architecture 131 Jan2014 Computer Architecture 132 Nguyễn Kim Khánh DCE-HUST 33
  34. Bài giảng Kiến trúc máy tính Jan2014 NKK-HUST NKK-HUST Bus điều khiển Một số tín hiệu điều khiển điển hình n Các tín hiệu (phát ra từ CPU) điều khiển n Chức năng: vận chuyển các tín hiệu đọc-ghi: điều khiển n Memory Read (MEMR): điều khiển đọc dữ liệu từ một ngăn nhớ có địa chỉ xác định lên bus dữ n Các loại tín hiệu điều khiển: liệu. n Các tín hiệu điều khiển đọc/ghi n Memory Write (MEMW): điều khiển ghi dữ liệu n Các tín hiệu điều khiển ngắt có sẵn trên bus dữ liệu đến một ngăn nhớ có địa chỉ xác định. n Các tín hiệu điều khiển bus n I/O Read (IOR): điều khiển đọc dữ liệu từ một cổng vào-ra có địa chỉ xác định lên bus dữ liệu. n I/O Write (IOW): điều khiển ghi dữ liệu có sẵn trên bus dữ liệu ra một cổng có địa chỉ xác định. Jan2014 Computer Architecture 133 Jan2014 Computer Architecture 134 NKK-HUST NKK-HUST Một số tín hiệu điều khiển điển hình (tiếp) Một số tín hiệu điều khiển điển hình (tiếp) n Các tín hiệu điều khiển ngắt: n Các tín hiệu điều khiển bus: n Interrupt Request (INTR): Tín hiệu từ bộ điều khiển n Bus Request (BRQ) hay là Hold: Tín hiệu từ vào-ra gửi đến yêu cầu ngắt CPU để trao đổi vào- ra. Tín hiệu INTR có thể bị che. mô-đun điều khiển vào-ra gửi đến yêu cầu CPU chuyển nhượng quyền sử dụng bus. n Interrupt Acknowledge (INTA): Tín hiệu phát ra từ CPU báo cho bộ điều khiển vào-ra biết CPU chấp n Bus Grant (BGT) hay là Hold Acknowledge nhận ngắt để trao đổi vào-ra. (HLDA): Tín hiệu phát ra từ CPU chấp nhận chuyển nhượng quyền sử dụng bus. n Non Maskable Interrupt (NMI): tín hiệu ngắt không che được gửi đến ngắt CPU. n Lock/ Unlock: Tín hiệu cấm/cho-phép xin n Reset: Tín hiệu từ bên ngoài gửi đến CPU và các chuyển nhượng bus thành phần khác để khởi động lại máy tính. Jan2014 Computer Architecture 135 Jan2014 Computer Architecture 136 Nguyễn Kim Khánh DCE-HUST 34
  35. Bài giảng Kiến trúc máy tính Jan2014 NKK-HUST NKK-HUST Đặc điểm của cấu trúc đơn bus 3. Phân cấp bus trong máy tính n Bus hệ thống chỉ phục vụ được một yêu cầu n Tổ chức thành nhiều bus trong hệ thống trao đổi dữ liệu tại một thời điểm máy tính n Bus hệ thống phải có tốc độ bằng tốc độ bus n Cho các thành phần khác nhau: của mô-đun nhanh nhất trong hệ thống n Bus của bộ xử lý n Bus hệ thống phụ thuộc vào cấu trúc bus (các n Bus của bộ nhớ chính tín hiệu) của bộ xử lý à các mô-đun nhớ và n Các bus vào-ra các mô-đun vào-ra cũng phụ thuộc vào bộ xử lý. n Các bus khác nhau về tốc độ n Khắc phục: phân cấp bus à cấu trúc đa bus n Bus bộ nhớ chính và các bus vào-ra không phụ thuộc vào bộ xử lý cụ thể. Jan2014 Computer Architecture 137 Jan2014 Computer Architecture 138 NKK-HUST NKK-HUST Một số bus điển hình trong máy tính Ví dụ bus trong máy tính n Bus của bộ xử lý: có tốc độ nhanh nhất n Bus của bộ nhớ chính (nối ghép với các mô-đun RAM) n PCI Express bus (Peripheral Component Interconnect): nối ghép với các thiết bị ngoại vi có tốc độ trao đổi dữ liệu nhanh. n SATA (Serial Advanced Technology Attachment): Bus kết nối với ổ đĩa cứng hoặc ổ đĩa CD/DVD n USB (Universal Serial Bus): Bus nối tiếp đa năng Jan2014 Computer Architecture 139 Jan2014 Computer Architecture 140 Nguyễn Kim Khánh DCE-HUST 35
  36. Bài giảng Kiến trúc máy tính Jan2014 NKK-HUST NKK-HUST Ví dụ bus trong máy tính (tiếp) Ví dụ về bo mạch chính Jan2014 Computer Architecture 141 Jan2014 Computer Architecture 142 NKK-HUST NKK-HUST Ví dụ bo mạch chính trong máy tính để bàn Hết chương 3 Jan2014 Computer Architecture 143 Jan2014 Computer Architecture 144 Nguyễn Kim Khánh DCE-HUST 36
  37. 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 Nội dung học phần Chương 1. Giới thiệu chung Chương 4 Chương 2. Cơ bản về logic số Chương 3. Hệ thống máy tính SỐ HỌC 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 Nguyễn Kim Khánh Chương 8. Hệ thống 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 Jan2014 Computer Architecture 145 Jan2014 Computer Architecture 146 NKK-HUST NKK-HUST Nội dung chương 4 4.1. Biểu diễn số nguyên 4.1. Biểu diễn số nguyên 4.2. Phép cộng và phép trừ số nguyên n Số nguyên không dấu (Unsigned Integer) 4.3. Phép nhân và phép chia số nguyên n Số nguyên có dấu (Signed Integer) 4.4. Số dấu phẩy động Jan2014 Computer Architecture 147 Jan2014 Computer Architecture 148 Nguyễn Kim Khánh DCE-HUST 37
  38. Bài giảng Kiến trúc máy tính Jan2014 NKK-HUST NKK-HUST 1. Biểu diễn số nguyên không dấu Các ví dụ n Nguyên tắc tổng quát: Dùng n bit biểu diễn số nguyên không dấu A: n Ví dụ 1. Biểu diễn các số nguyên không dấu sau đây bằng 8-bit: A = 41 ; B = 150 an−1an−2 a2a1a0 Giải: Giá trị của A được tính như sau: A = 41 = 32 + 8 + 1 = 25 + 23 + 20 n−1 41 = 0010 1001 A a 2i = ∑ i i=0 B = 150 = 128 + 16 + 4 + 2 = 27 + 24 + 22 + 21 Dải biểu diễn của A: từ 0 đến 2n – 1 150 = 1001 0110 Jan2014 Computer Architecture 149 Jan2014 Computer Architecture 150 NKK-HUST NKK-HUST Các ví dụ (tiếp) Với n = 8 bit n Ví dụ 2. Cho các số nguyên không dấu M, N Biểu diễn được các giá trị từ 0 đến 255 được biểu diễn bằng 8-bit như sau: 0000 0000 = 0 Chú ý: n M = 0001 0010 0000 0001 = 1 1111 1111 n N = 1011 1001 0000 0010 = 2 + 0000 0001 Xác định giá trị của chúng ? 0000 0011 = 3 1 0000 0000 Giải: Vậy: 255 + 1 = 0 ? 4 1 n M = 0001 0010 = 2 + 2 = 16 +2 = 18 1111 1111 = 255 à do tràn nhớ ra 7 5 4 3 0 n N = 1011 1001 = 2 + 2 + 2 + 2 + 2 ngoài = 128 + 32 + 16 + 8 + 1 = 185 Jan2014 Computer Architecture 151 Jan2014 Computer Architecture 152 Nguyễn Kim Khánh DCE-HUST 38
  39. Bài giảng Kiến trúc máy tính Jan2014 NKK-HUST NKK-HUST Trục số học với n = 8 bit Với n = 16 bit, 32 bit, 64 bit Trục số học: 16 n n= 16 bit: dải biểu diễn từ 0 đến 65535 (2 – 1) 0 1 2 3 255 n 0000 0000 0000 0000 = 0 n n 0000 0000 1111 1111 = 255 Trục số học máy tính: 255 0 1 254 2 n 0000 0001 0000 0000 = 256 3 n n 1111 1111 1111 1111 = 65535 32 n n= 32 bit: dải biểu diễn từ 0 đến 2 - 1 64 n n= 64 bit: dải biểu diễn từ 0 đến 2 - 1 Jan2014 Computer Architecture 153 Jan2014 Computer Architecture 154 NKK-HUST NKK-HUST 2. Biểu diễn số nguyên có dấu Số bù chín và Số bù mười (tiếp) Số bù chín và Số bù mười n Ví dụ: với n=4, cho A = 3265 n Số bù chín của A: n Cho một số thập phân A được biểu diễn 4 bằng n chữ số thập phân, ta có: 9999 (10 -1) n - 3265 (A) n Số bù chín của A = (10 -1) – A n 6734 n Số bù mười của A = 10 – A n Số bù mười của A: n Số bù mười của A = (Số bù chín của A) +1 1 0000 (104) - 3265 (A) 6735 Jan2014 Computer Architecture 155 Jan2014 Computer Architecture 156 Nguyễn Kim Khánh DCE-HUST 39
  40. Bài giảng Kiến trúc máy tính Jan2014 NKK-HUST NKK-HUST Số bù một và Số bù hai Số bù một và Số bù hai (tiếp) Ví dụ: với n = 8 bit, cho A = 0010 0101 n Số bù một của A được tính như sau: n Định nghĩa: Cho một số nhị phân A 1111 1111 (28-1) được biểu diễn bằng n bit, ta có: - 0010 0101 (A) n n Số bù một của A = (2 -1) – A 1101 1010 n à đảo các bit của A n Số bù hai của A = 2 – A n Số bù hai của A được tính như sau: n Số bù hai của A = (Số bù một của A) +1 1 0000 0000 (28) - 0010 0101 (A) 1101 1011 à thực hiện khó khăn Jan2014 Computer Architecture 157 Jan2014 Computer Architecture 158 NKK-HUST NKK-HUST Quy tắc tìm Số bù một và Số bù hai Biểu diễn số nguyên có dấu bằng mã bù hai n Số bù một của A = đảo giá trị các bit của A Nguyên tắc tổng quát: Dùng n bit biểu diễn số n (Số bù hai của A) = (Số bù một của A) + 1 nguyên có dấu A: n Ví dụ: n Cho A = 0010 0101 an−1an−2 a2a1a0 n Số bù một = 1101 1010 + 1 n Với A là số dương: bit an-1 = 0, các bit còn lại n Số bù hai = 1101 1011 biểu diễn độ lớn như số không dấu n Nhận xét: n Với A là số âm: được biểu diễn bằng số bù hai A = 0010 0101 của số dương tương ứng, vì vậy bit a = 1 Số bù hai = + 1101 1011 n-1 1 0000 0000 = 0 (bỏ qua bit nhớ ra ngoài) à Số bù hai của A = -A Jan2014 Computer Architecture 159 Jan2014 Computer Architecture 160 Nguyễn Kim Khánh DCE-HUST 40
  41. Bài giảng Kiến trúc máy tính Jan2014 NKK-HUST NKK-HUST Biểu diễn số dương Biểu diễn số âm n Dạng tổng quát của số dương A: n Dạng tổng quát của số âm A: 0an−2 a2 a1a0 1an−2 a2 a1a0 n Giá trị của số dương A: n Giá trị của số âm A: n−2 n−2 i n−1 i A = ai 2 A = −2 + ai 2 ∑ ∑ i=0 i=0 n-1 n-1 n Dải biểu diễn cho số âm: -1 đến -2 n Dải biểu diễn cho số dương: 0 đến 2 -1 Jan2014 Computer Architecture 161 Jan2014 Computer Architecture 162 NKK-HUST NKK-HUST Biểu diễn tổng quát cho số nguyên có dấu Các ví dụ n Ví dụ 1. Biểu diễn các số nguyên có dấu sau n Dạng tổng quát của số nguyên A: đây bằng 8-bit: a a a a a A = +58 ; B = -80 n−1 n−2 2 1 0 Giải: A = +58 = 0011 1010 n Giá trị của A được xác định như sau: n−2 A a 2n−1 a 2i B = -80 = − n−1 + ∑ i Ta có: + 80 = 0101 0000 i=0 Số bù một = 1010 1111 + 1 n-1 n-1 n Dải biểu diễn: từ -(2 ) đến +(2 -1) Số bù hai = 1011 0000 Vậy: B = -80 = 1011 0000 Jan2014 Computer Architecture 163 Jan2014 Computer Architecture 164 Nguyễn Kim Khánh DCE-HUST 41
  42. Bài giảng Kiến trúc máy tính Jan2014 NKK-HUST NKK-HUST Các ví dụ Với n = 8 bit Biểu diễn được các giá trị từ -128 đến +127 n Ví dụ 2. Hãy xác định giá trị của các số nguyên 0000 0000 = 0 có dấu được biểu diễn dưới đây: 0000 0001 = +1 n P = 0110 0010 0000 0010 = +2 Chú ý: n Q = 1101 1011 0000 0011 = +3 +127 + 1 = -128 Giải: (-128)+(-1) = +127 0111 1111 = +127 à do tràn xảy ra n P = 0110 0010 = 64+32+2 = +98 1000 0000 = - 128 n Q = 1101 1011 = -128+64+16+8+2+1 = -37 1000 0001 = - 127 1111 1110 = -2 1111 1111 = -1 Jan2014 Computer Architecture 165 Jan2014 Computer Architecture 166 NKK-HUST NKK-HUST Trục số học số nguyên có dấu với n = 8 bit Với n = 16 bit, 32 bit, 64 bit n Trục số học: n Với n=16bit: biểu diễn từ -32768 đến +32767 -128 -2 -1 0 1 2 +127 n 0000 0000 0000 0000 = 0 n 0000 0000 0000 0001 = +1 n n Trục số học máy tính: -1 0 +1 -2 +2 n 0111 1111 1111 1111 = +32767 -3 +3 n 1000 0000 0000 0000 = -32768 n n 1111 1111 1111 1111 = -1 31 31 n Với n=32bit: biểu diễn từ -2 đến 2 -1 -128 +127 63 63 n Với n=64bit: biểu diễn từ -2 đến 2 -1 Jan2014 Computer Architecture 167 Jan2014 Computer Architecture 168 Nguyễn Kim Khánh DCE-HUST 42
  43. Bài giảng Kiến trúc máy tính Jan2014 NKK-HUST NKK-HUST Chuyển đổi dữ liệu từ 8 bit thành 16 bit 4.2. Thực hiện phép cộng/trừ với số nguyên n Đối với số dương: 1. Phép cộng số nguyên không dấu +19 = 0001 0011 (8bit) Bộ cộng n-bit +19 = 0000 0000 0001 0011 (16bit) Y X à thêm 8 bit 0 bên trái n bit n bit Cout Cin Bộ cộng n-bit n Đối với số âm: - 19 = 1110 1101 (8bit) n bit - 19 = 1111 1111 1110 1101 (16bit) S à thêm 8 bit 1 bên trái Jan2014 Computer Architecture 169 Jan2014 Computer Architecture 170 NKK-HUST NKK-HUST Nguyên tắc cộng số nguyên không dấu Ví dụ cộng số nguyên không dấu n 57 = 0011 1001 Khi cộng hai số nguyên không dấu n-bit, + 34 = + 0010 0010 kết quả nhận được là n-bit: 91 0101 1011 = 64+16+8+2+1=91 à đúng n Nếu Cout=0 à nhận được kết quả đúng. n 209 = 1101 0001 + 73 = + 0100 1001 n Nếu Cout=1 à nhận được kết quả sai, 282 1 0001 1010 do tràn nhớ ra ngoài (Carry Out). 0001 1010 = 16+8+2=26 à sai n à có tràn nhớ ra ngoài (Cout=1) n Tràn nhớ ra ngoài khi: tổng > (2 – 1) Để có kết quả đúng ta thực hiện cộng theo 16-bit: 209 = 0000 0000 1101 0001 + 73 = + 0000 0000 0100 1001 0000 0001 0001 1010 = 256+16+8+2 = 282 Jan2014 Computer Architecture 171 Jan2014 Computer Architecture 172 Nguyễn Kim Khánh DCE-HUST 43
  44. Bài giảng Kiến trúc máy tính Jan2014 NKK-HUST NKK-HUST 2. Phép đảo dấu 3. Cộng số nguyên có dấu n Ta có: Khi cộng hai số nguyên có dấu n-bit, kết quả + 37 = 0010 0101 bù một = 1101 1010 nhận được là n-bit và không cần quan tâm đến . + 1 bit Cout bù hai = 1101 1011 = -37 n Cộng hai số khác dấu: kết quả luôn luôn đúng. n Lấy bù hai của số âm: n Cộng hai số cùng dấu: - 37 = 1101 1011 n nếu dấu kết quả cùng dấu với các số hạng thì kết bù một = 0010 0100 quả là đúng. + 1 n nếu kết quả có dấu ngược lại, khi đó có tràn xảy ra bù hai = 0010 0101 = +37 (Overflow) và kết quả bị sai. n Kết luận: Phép đảo dấu số nguyên trong máy tính n Tràn xảy ra khi tổng nằm ngoài dải biểu diễn: thực chất là lấy bù hai [ -(2n-1),+(2n-1-1)] Jan2014 Computer Architecture 173 Jan2014 Computer Architecture 174 NKK-HUST NKK-HUST Ví dụ cộng số nguyên có dấu không tràn Ví dụ cộng số nguyên có dấu bị tràn n ( + 70) = 0100 0110 n ( + 75) = 0100 1011 + ( + 42) = 0010 1010 + 112 0111 0000 = +112 +( + 82) = 0101 0010 +157 1001 1101 n (+ 97) = 0110 0001 = - 128+16+8+4+1= -99 à sai + (- 52) = 1100 1100 (+52=0011 0100) + 45 1 0010 1101 = +45 n ( - 104) = 1001 1000 (+104=0110 1000) n ( - 90) = 1010 0110 (+90=0101 1010) + ( - 43) = 1101 0101 (+ 43 =0010 1011) + ( +36) = 0010 0100 - 147 1 0110 1101 - 54 1100 1010 = - 54 = 64+32+8+4+1= +109 à sai n ( - 74) = 1011 0110 (+74=0100 1010) n Cả hai ví dụ đều tràn vì tổng nằm ngoài dải +( - 30) = 1110 0010 (+30=0001 1110) biểu diễn [-128, +127] -104 1 1001 1000 = -104 Jan2014 Computer Architecture 175 Jan2014 Computer Architecture 176 Nguyễn Kim Khánh DCE-HUST 44
  45. Bài giảng Kiến trúc máy tính Jan2014 NKK-HUST NKK-HUST 4. Nguyên tắc thực hiện phép trừ 4.3. Phép nhân và phép chia số nguyên n Phép trừ hai số nguyên: X-Y = X+(-Y) 1. Nhân số nguyên không dấu n Nguyên tắc: Lấy bù hai của Y để được –Y, rồi cộng với X 1011 Số bị nhân (11) x 1101 Số nhân (13) n-bit Y n-bit X 1011 Bù hai 0000 Các tích riêng phần 1011 Bộ cộng n-bit 1011 n-bit S= X-Y 10001111 Tích (143) Jan2014 Computer Architecture 177 Jan2014 Computer Architecture 178 NKK-HUST NKK-HUST Nhân số nguyên không dấu (tiếp) Bộ nhân số nguyên không dấu Số bị nhân n Các tích riêng phần được xác định như sau: Mn-1 Mn-2 . . . M1 M0 n Nếu bit của số nhân bằng 0 à tích riêng phần bằng 0. n Nếu bit của số nhân bằng 1 à tích riêng phần bằng số Điều khiển bị nhân. cộng Bộ logic điều khiển Bộ cộng n-bit n Tích riêng phần tiếp theo được dịch trái một bit so với cộng và dịch tích riêng phần trước đó. Điều khiển dịch phải n Tích bằng tổng các tích riêng phần n Nhân hai số nguyên n-bit, tích có độ dài 2n bit C An-1 An-2 . . . A1 A0 Qn-1 Qn-2 . . . Q1 Q0 (không bao giờ tràn). Số nhân Jan2014 Computer Architecture 179 Jan2014 Computer Architecture 180 Nguyễn Kim Khánh DCE-HUST 45
  46. Bài giảng Kiến trúc máy tính Jan2014 NKK-HUST NKK-HUST Lưu đồ nhân số nguyên không dấu Ví dụ nhân số nguyên không dấu Bắt đầu n Số bị nhân M = 1011 (11) n Số nhân Q = 1101 (13) C ß 0; A ß 0 n Tích = 1000 1111 (143) M ß Số bị nhân Q ß Số nhân Bộ đếm ß n C A Q n 0 0000 1101 Các giá trị khởi đầu No Yes + 1011 Q = 1 ? 0 0 1011 1101 A ← A + M C,A ß A+M n 0 0101 1110 Dịch phải n 0 0010 1111 Dịch phải Dịch phải C,A,Q Bộ đếm ßBộ đếm-1 + 1011 0 1101 1111 A ← A + M No n Bộ đếm = 0 ? 0 0110 1111 Dịch phải + 1011 Yes 1 0001 1111 A ← A + M Kết thúc Tích trong AQ n 0 1000 1111 Dịch phải Jan2014 Computer Architecture 181 Jan2014 Computer Architecture 182 NKK-HUST NKK-HUST Ví dụ nhân số nguyên không dấu 2. Nhân số nguyên có dấu n Số bị nhân M = 0010 (2) n Sử dụng thuật giải nhân không dấu n Số nhân Q = 0011 (3) n Tích = 0000 0110 (6) n Sử dụng thuật giải Booth C A Q n 0 0000 0011 Các giá trị khởi đầu + 0010 0 0010 0011 A ← A + M n 0 0001 0001 Dịch phải + 0010 0 0011 0001 n 0 0001 1000 Dịch phải n 0 0000 1100 Dịch phải n 0 0000 0110 Dịch phải Jan2014 Computer Architecture 183 Jan2014 Computer Architecture 184 Nguyễn Kim Khánh DCE-HUST 46
  47. 10.3 / INTEGER ARITHMETIC 335 as the twos complement value -7, then each partial product must be a negative twos complement number of 2n (8) bits, as shown in Figure 10.11b. Note that this is accomplished by padding out each partial product to the left with binary 1s. If the multiplier is negative, straightforward multiplication also will not work. The reason is that the bits of the multiplier no longer correspond to the shifts or multiplications that must take place. For example, the 4-bit decimal number -3 is written 1101 in twos complement. If we simply took partial products based on each bit position, we would have the following correspondence: Bài giảng Kiến trúc máy tính 3 2 1 0 3 2 0 Jan2014 1101 g -(1 * 2 + 1 * 2 + 0 * 2 + 1 * 2 ) = -(2 + 2 + 2 ) In fact, what is desired is -(21 + 20). So this multiplier cannot be used directly in the manner we have been describing. There are a number of ways out of this dilemma. One would be to convert both multiplier and multiplicand to positive numbers, perform the multiplication, and then take the twos complement of the result if and only if the sign of the two original numbers differed. Implementers have preferred to use techniques that NKK-HUST NKK-HUST do not require this final transformation step. One of the most common of these is Booth’s algorithm. This algorithm also has the benefit of speeding up the multipli- cation process, relative to a more straightforward approach. Sử dụng thuật giải nhân không dấu ThuậtBooth’s giả algorithmi Booth is depicted (thamin Figure 10.12 andkh canả beo described COA-[1]) as follows. As before, the multiplier and multiplicand are placed in the Q and M registers, n Bước 1. Chuyển đổi số bị nhân và số START nhân thành số dương tương ứng A 0, Q 0 ؊1 M Multiplicand Q Multiplier n Bước 2. Nhân hai số dương bằng thuật Count n giải nhân số nguyên không dấu, được 01 ؍ 10 ؍ tích của hai số dương. Q0, Q؊1 11 ؍ 00 ؍ n Bước 3. Hiệu chỉnh dấu của tích: A A ؊ M A A ؉ M Arithmetic shift n Nếu hai thừa số ban đầu cùng dấu thì giữ Right: A, Q, Q؊1 Count Count 1 nguyên kết quả ở bước 2. ؊ No Yes END ?0 ؍ Count n Nếu hai thừa số ban đầu là khác dấu thì đảo Figure 10.12 Booth’s Algorithm for Twos dấu kết quả của bước 2 (lấy bù hai). Complement Multiplication Jan2014 Computer Architecture 185 Jan2014 Computer Architecture 186 NKK-HUST NKK-HUST 3. Chia số nguyên không dấu Bộ chia số nguyên không dấu Số chia M Mn-1 Mn-2 . . . M1 M0 Số bị chia 10010011 1011 Số chia Điều - 1011 00001101 Thương khiển cộng/trừ Bộ logic điều khiển Bộ cộng/trừ n-bit 001110 cộng/trừ và dịch - 1011 Điều khiển 001111 dịch trái - 1011 An-1 An-2 . . . A1 A0 Qn-1 Qn-2 . . . Q1 Q0 100 Phần dư Số bị chia Q Jan2014 Computer Architecture 187 Jan2014 Computer Architecture 188 Nguyễn Kim Khánh DCE-HUST 47
  48. Bài giảng Kiến trúc máy tính Jan2014 NKK-HUST NKK-HUST Lưu đồ chia số nguyên không dấu 4. Chia số nguyên có dấu Bắt đầu n Bước 1. Chuyển đổi số bị chia và số chia về thành số A ß 0 M ß Số chia dương tương ứng. Q ß Số bị chia Bộ đếm ß n n Bước 2. Sử dụng thuật giải chia số nguyên không dấu để chia hai số dương, kết quả nhận được là thương Q và Dịch trái A,Q phần dư R đều là dương A ß A - M n Bước 3. Hiệu chỉnh dấu của kết quả như sau: No Yes A < 0 ? (Lưu ý: phép đảo dấu thực chất là thực hiện phép lấy bù hai) Q ß 0 Q ß1 0 0 A ß A + M Số bị chia Số chia Thương Số dư Bộ đếmßBộ đếm-1 dương dương giữ nguyên giữ nguyên No dương âm đảo dấu giữ nguyên Bộ đếm = 0 ? âm dương đảo dấu đảo dấu Yes Thương ở Q âm âm giữ nguyên đảo dấu Kết thúc Số dư ở A Jan2014 Computer Architecture 189 Jan2014 Computer Architecture 190 NKK-HUST NKK-HUST 4.4. Số dấu phẩy động 2. Chuẩn IEEE754-2008 1. Nguyên tắc chung n Cơ số R =346 2 CHAPTER 10 / COMPUTER ARITHMETIC n Floating Point Number à biểu diễn cho số Sign Biased n Các dạng: bit exponent Trailing thực n Dạng 32-bit significand field 8 bits 23 bits n Tổng quát: một số thực X được biểu diễn (a) Binary32 format Sign Biased theo kiểu số dấu phẩy động như sau: bit exponent Trailing significand field n Dạng 64-bit E X = M * R 11 bits 52 bits (b) Binary64 format n M là phần định trị (Mantissa), Sign bit Biased Trailing significand field n R là cơ số (Radix), n Dạng 128-bit exponent 15 bits 112 bits n E là phần mũ (Exponent). (c) Binary128 format Figure 10.21 IEEE 754 Formats is implementation dependent, but the standard places certain constraints on the length of the exponent and significand. These formats are arithmetic format types but not interchange format types. The extended formats are to be used for inter- Jan2014 Computer Architecture 191 Jan2014 mediate calculations.Computer Architecture With their greater precision, the extended formats lessen 192the Table 10.3 IEEE 754 Format Parameters Format Parameter Binary32 Binary64 Binary128 Storage width (bits) 32 64 128 Exponent width (bits) 8 11 15 Exponent bias 127 1023 16383 Nguyễn Kim Khánh DCE-HUST Maximum exponent 127 1023 16383 48 Minimum exponent -126 -1022 -16382 Approx normal number range 10-38, 10+38 10-308, 10+308 10-4932, 10+4932 (base 10) Trailing significand width (bits)* 23 52 112 Number of exponents 254 2046 32766 Number of fractions 223 252 2112 Number of values 1.98 * 231 1.99 * 263 1.99 * 2128 Smallest positive normal number 2-126 2-1022 2-16362 Largest positive normal number 2128 - 2104 21024 - 2971 216384 - 216271 Smallest subnormal magnitude 2-149 2-1074 2-16494 Note: *not including implied bit and not including sign bit
  49. Bài giảng Kiến trúc máy tính Jan2014 NKK-HUST NKK-HUST Dạng 32 bit Ví dụ 1 31 30 23 22 0 S e m Xác định giá trị của số thực được biểu diễn bằng 32-bit như sau: n S là bit dấu: n 1100 0001 0101 0110 0000 0000 0000 0000 n S = 0 à số dương n S = 1 à số âm n S = 1 à số âm n e = 1000 0010 = 130 à E = 130-127=3 n e (8 bit) là mã excess-127 của phần mũ E: 2 Vậy n e = E+127 à E = e – 127 X = -1.10101100 23 = -1101.011 = -13.375 n giá trị 127 gọi là là độ lệch (bias) * n m (23 bit) là phần lẻ của phần định trị M: n M = 1.m n 0011 1111 1000 0000 0000 0000 0000 0000 = ? n Công thức xác định giá trị của số thực: = +1.0 S e-127 X = (-1) *1.m * 2 Jan2014 Computer Architecture 193 Jan2014 Computer Architecture 194 NKK-HUST NKK-HUST Ví dụ 2 Ví dụ 3 Biểu diễn số thực X= 83.75 về dạng số dấu phẩy Biểu diễn số thực X= -0,2 về dạng số dấu phẩy động IEEE754 32-bit động IEEE754 32-bit Giải: Giải: 6 n X = -0,2(10) = - 0.00110011 0011 (2) = n X = 83.75(10) = 1010011.11(2) = 1.01001111 x 2 = - 1.100110011 0011 x 2-3 n Ta có: n Ta có: n S = 0 vì đây là số dương n S = 1 vì đây là số âm n E = e-127 = 6 à e = 127 + 6 = 133(10) = 1000 0101(2) n E = e-127 = -3 à e = 127 -3 = 124(10) = 0111 1100(2) n Vậy: n Vậy: X = 0100 0010 1010 0111 1000 0000 0000 0000 X = 1011 1110 0100 1100 1100 1100 1100 1100 Jan2014 Computer Architecture 195 Jan2014 Computer Architecture 196 Nguyễn Kim Khánh DCE-HUST 49
  50. Bài giảng Kiến trúc máy tính Jan2014 NKK-HUST NKK-HUST Bài tập Các qui ước đặc biệt Biểu diễn các số thực sau đây về dạng n Các bit của e bằng 0, các bit của m bằng 0, thì X = ± 0 số dấu phẩy động IEEE754 32-bit: x000 0000 0000 0000 0000 0000 0000 0000 à X = ± 0 X = - 27.0625; Y = 1/32 n Các bit của e bằng 1, các bit của m bằng 0, thì X = ± ∞ x111 1111 1000 0000 0000 0000 0000 0000 à X =± ∞ n Các bit của e bằng 1, còn m có ít nhất một bit bằng 1, thì nó không biểu diễn cho số nào cả (NaN - not a number) Jan2014 Computer Architecture 197 Jan2014 Computer Architecture 198 NKK-HUST NKK-HUST Dải giá trị biểu diễn Dạng 64-bit -127 +127 n S là bit dấu n 2 đến 2 -38 +38 n 10 đến 10 n e (11 bit): mã excess-1023 của phần mũ E à E = e – 1023 n m (52 bit): phần lẻ của phần định trị M -2+127 -2-127 0 +2-127 +2+127 n Giá trị số thực: S e-1023 X = (-1) *1.m * 2 -308 +308 n Dải giá trị biểu diễn: 10 đến 10 Jan2014 Computer Architecture 199 Jan2014 Computer Architecture 200 Nguyễn Kim Khánh DCE-HUST 50
  51. Bài giảng Kiến trúc máy tính Jan2014 NKK-HUST NKK-HUST Dạng 128-bit 3. Thực hiện phép toán số dấu phẩy động n S là bit dấu E1 n X1 = M1 * R n e (15 bit): mã excess-16383 của phần E2 n X2 = M2 * R mũ E à E = e – 16383 n Ta có E1+E2 n m (112 bit): phần lẻ của phần định trị M n X1 * X2 = (M1* M2) * R E1-E2 n X1 / X2 = (M1 / M2) R n Giá trị số thực: * E1-E2 E2 n X1 ± X2 = (M1*R ± M2) * R , với E2 ≥ E1 S e-16383 X = (-1) *1.m * 2 -4932 +4932 n Dải giá trị biểu diễn: 10 đến 10 Jan2014 Computer Architecture 201 Jan2014 Computer Architecture 202 NKK-HUST NKK-HUST Các khả năng tràn số Phép cộng và phép trừ n Tràn trên số mũ (Exponent Overflow): mũ dương vượt ra khỏi giá trị cực đại của số mũ n Kiểm tra các số hạng có bằng 0 hay dương có thể. (à ∞) không n Tràn dưới số mũ (Exponent Underflow): mũ âm vượt ra khỏi giá trị cực đại của số mũ âm có thể n Hiệu chỉnh phần định trị (à 0). n Cộng hoặc trừ phần định trị n Tràn trên phần định trị (Mantissa Overflow): n Chuẩn hoá kết quả cộng hai phần định trị có cùng dấu, kết quả bị nhớ ra ngoài bit cao nhất. n Tràn dưới phần định trị (Mantissa Underflow): Khi hiệu chỉnh phần định trị, các số bị mất ở bên phải phần định trị. Jan2014 Computer Architecture 203 Jan2014 Computer Architecture 204 Nguyễn Kim Khánh DCE-HUST 51
  52. Bài giảng Kiến trúc máy tính Jan2014 NKK-HUST NKK-HUST Thuật toán cộng/trừ số dấu phẩy động Thuật toán nhân số dấu phẩy động NHÂN TRỪ N N Đổi dấu của Y X = 0 ? Y = 0 ? Cộng phần mũ Y Y N N Y Cộng có dấu Kết quả Y Làm tròn Trừ cho CỘNG X = 0 ? Y = 0 ? Phần mũ bằng nhau? phần định trị chuẩn hóa? kết quả độ lệch Z ß 0 Y Y N N Y Z ß Y Z ß X Tăng phần mũ Z ß 0 định trị = 0? Dịch phải TRỞ VỀ Tràn trên Y Thông báo TRỞ VỀ nhỏ hơn phần định trị phần mũ? tràn trên N TRỞ VỀ TRỞ VỀ Dịch phải N định trị bị N Giảm phần mũ phần định trị tràn? Tràn dưới Y Thông báo Y phần mũ? tràn dưới N Dịch phải Y = 0 ? N phần định trị Phần mũ bị N tràn dưới? Nhân phần TRỞ VỀ Y định trị Cất số kia Tăng phần mũ Y vào Z TRỞ VỀ Báo tràn dưới Chuẩn hóa Y Phần mũ N TRỞ VỀ Báo tràn bị tràn? TRỞ VỀ Làm tròn TRỞ VỀ Jan2014 Computer Architecture 205 Jan2014 Computer Architecture 206 NKK-HUST NKK-HUST Thuật toán chia số dấu phẩy động CHIA N N X = 0 ? Y = 0 ? Trừ phần mũ Y Y Công thêm Z ß 0 Z ß ∞ độ lệch TRỞ VỀ Tràn trên Y Thông báo phần mũ? tràn trên Hết chương 4 N Y Tràn dưới Thông báo phần mũ? tràn dưới N Chia phần TRỞ VỀ định trị Chuẩn hóa Làm tròn TRỞ VỀ Jan2014 Computer Architecture 207 Jan2014 Computer Architecture 208 Nguyễn Kim Khánh DCE-HUST 52
  53. 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 Nội dung học phần Chương 1. Giới thiệu chung Chương 5 Chương 2. Cơ bản về logic số Chương 3. Hệ thống máy tính KIẾN TRÚC TẬP LỆNH Chương 4. Số học máy tính (Instruction Set Architecture) 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 Nguyễn Kim Khánh Chương 8. Hệ thống 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 Jan2014 Computer Architecture 209 Jan2014 Computer Architecture 210 NKK-HUST NKK-HUST Nội dung của chương 5 5.1. Giới thiệu chung về kiến trúc tập lệnh 1. Mô hình lập trình của máy tính 5.1. Giới thiệu chung về kiến trúc tập lệnh 5.2. Kiến trúc tập lệnh MIPS PC: Program Counter IR: Instruction Register 5.3. Kiến trúc tập lệnh Intel x86 * Jan2014 Computer Architecture 211 Jan2014 Computer Architecture 212 Nguyễn Kim Khánh DCE-HUST 53
  54. Bài giảng Kiến trúc máy tính Jan2014 NKK-HUST NKK-HUST Tập thanh ghi Một số thanh ghi điển hình n Chứa các thông tin (dữ liệu, địa chỉ, trạng thái) cho hoạt động điều khiển và xử lý n Bộ đếm chương trình PC (Program Counter) dữ liệu của CPU ở thời điểm hiện tại n Con trỏ dữ liệu DP (Data Pointer) n Được coi là mức đầu tiên của hệ thống n Con trỏ ngăn xếp SP (Stack Pointer) nhớ n Thanh ghi cơ sở và Thanh ghi chỉ số n Số lượng thanh ghi nhiều à tăng hiệu (Base Register & Index Register) năng của CPU n Các thanh ghi dữ liệu n Có hai loại thanh ghi: n Thanh ghi trạng thái n Các thanh ghi lập trình được n Các thanh ghi không lập trình được Jan2014 Computer Architecture 213 Jan2014 Computer Architecture 214 NKK-HUST NKK-HUST Bộ đếm chương trình PC Thanh ghi con trỏ dữ liệu n Còn được gọi là con trỏ lệnh IP (Instruction Pointer) n Chứa địa chỉ của dữ liệu lệnh ngăn nhớ dữ liệu mà dữ liệu n Giữ địa chỉ của lệnh tiếp theo lệnh dữ liệu sẽ được nhận vào. lệnh CPU muốn truy nhập DP dữ liệu cần đọc/ghi PC lệnh sẽ được nhận dữ liệu n Sau khi một lệnh được nhận lệnh kế tiếp dữ liệu vào, nội dung PC tự động lệnh dữ liệu tăng để trỏ sang lệnh kế tiếp. lệnh dữ liệu n PC tăng bao nhiêu? Jan2014 Computer Architecture 215 Jan2014 Computer Architecture 216 Nguyễn Kim Khánh DCE-HUST 54
  55. Bài giảng Kiến trúc máy tính Jan2014 NKK-HUST NKK-HUST Ngăn xếp (Stack) Con trỏ ngăn xếp SP (Stack Pointer) n Chứa địa chỉ của ngăn nhớ đỉnh n Ngăn xếp là vùng nhớ có cấu trúc LIFO ngăn xếp (Last In - First Out à vào sau – ra trước) n Khi cất một thông tin vào ngăn xếp: SP đỉnh ngăn xếp n Ngăn xếp thường dùng để phục vụ cho n Nội dung của SP giảm chiều địa chương trình con n Thông tin được cất vào ngăn nhớ chỉ tăng được trỏ bởi SP dần n Đáy ngăn xếp là một ngăn nhớ xác định n Khi lấy một thông tin ra khỏi ngăn xếp: n Đỉnh ngăn xếp là thông tin nằm ở vị trí n Thông tin được đọc từ ngăn nhớ trên cùng trong ngăn xếp được trỏ bởi SP đáy ngăn xếp n Nội dung của SP tăng n Đỉnh ngăn xếp có thể bị thay đổi n Khi ngăn xếp rỗng, SP trỏ vào đáy Jan2014 Computer Architecture 217 Jan2014 Computer Architecture 218 NKK-HUST NKK-HUST Thanh ghi cơ sở và thanh ghi chỉ số Các thanh ghi dữ liệu n Để truy nhập một ngăn nhớ có thể sử dụng hai tham số: n Chứa các dữ liệu tạm thời hoặc các kết n Địa chỉ cơ sở (base address) Địa chỉ cơ sở quả trung gian Ngăn nhớ cơ sở n Phần dịch chuyển địa chỉ (offset) n Cần có nhiều thanh ghi dữ liệu n Địa chỉ của ngăn nhớ cần truy Offset nhập = địa chỉ cơ sở + offset n Các thanh ghi số nguyên: 8, 16, 32, 64 bit n Có thể sử dụng các thanh ghi n Các thanh ghi số dấu phẩy động để quản lý các tham số này: Ngăn nhớ cần truy nhập n Thanh ghi cơ sở: chứa địa chỉ cơ sở n Thanh ghi chỉ số: chứa phần dịch chuyển địa chỉ Jan2014 Computer Architecture 219 Jan2014 Computer Architecture 220 Nguyễn Kim Khánh DCE-HUST 55
  56. Bài giảng Kiến trúc máy tính Jan2014 NKK-HUST NKK-HUST Thanh ghi trạng thái (Status Register) 2. Thứ tự lưu trữ các byte trong bộ nhớ chính n Bộ nhớ chính thường đánh địa chỉ theo n Được sử dụng trên một số kiến trúc cụ thể byte n Còn gọi là thanh ghi cờ (Flag Register) n Hai cách lưu trữ thông tin nhiều byte: n Chứa các thông tin trạng thái của CPU n Đầu nhỏ (Little-endian): Byte có ý nghĩa thấp được lưu trữ ở ngăn nhớ có địa chỉ n Các cờ phép toán: báo hiệu trạng thái của kết nhỏ, byte có ý nghĩa cao được lưu trữ ở quả phép toán ngăn nhớ có địa chỉ lớn. n Các cờ điều khiển: biểu thị trạng thái điều n Đầu to (Big-endian): Byte có ý nghĩa cao khiển của CPU được lưu trữ ở ngăn nhớ có địa chỉ nhỏ, byte có ý nghĩa thấp được lưu trữ ở ngăn nhớ có địa chỉ lớn. Jan2014 Computer Architecture 221 Jan2014 Computer Architecture 222 NKK-HUST NKK-HUST Ví dụ lưu trữ dữ liệu 32-bit Lưu trữ của các bộ xử lý điển hình 0001 1010 0010 1011 0011 1100 0100 1101 1A 2B 3C 4D n Intel x86: little-endian n Motorola 680x0, MIPS, SunSPARC: big-endian n Power PC, Itanium: bi-endian 4D 3000 1A 3000 3C 3001 2B 3001 2B 3002 3C 3002 1A 3003 4D 3003 little-endian big-endian Jan2014 Computer Architecture 223 Jan2014 Computer Architecture 224 Nguyễn Kim Khánh DCE-HUST 56
  57. Bài giảng Kiến trúc máy tính Jan2014 NKK-HUST NKK-HUST 3. Giới thiệu chung về tập lệnh Các thành phần của lệnh máy n Mỗi bộ xử lý có một tập lệnh xác định Mã thao tác Địa chỉ của các toán hạng n Tập lệnh thường có hàng chục đến hàng trăm lệnh n Mã thao tác (operation code à opcode): mã n Mỗi lệnh là một chuỗi số nhị phân mà bộ xử hóa cho thao tác mà bộ xử lý phải thực hiện lý hiểu được để thực hiện một thao tác xác n Địa chỉ toán hạng: chỉ ra nơi chứa các toán định. hạng mà thao tác sẽ tác động n Các lệnh được mô tả bằng các ký hiệu gợi n Toán hạng nguồn (source operand): dữ liệu vào của nhớ dạng text à chính là các lệnh của hợp thao tác ngữ (assembly language) n Toán hạng đích (destination operand): dữ liệu ra của thao tác Jan2014 Computer Architecture 225 Jan2014 Computer Architecture 226 NKK-HUST NKK-HUST Các kiểu thao tác thông dụng của tập lệnh Định địa chỉ toán hạng n Toán hạng của lệnh có thể là: n Các lệnh chuyển dữ liệu n Một giá trị cụ thể nằm ngay trong lệnh n Các lệnh xử lý số học n Nội dung của thanh ghi n Các lệnh xử lý logic n Nội dung của ngăn nhớ hoặc cổng vào-ra n Các lệnh chuyển điều khiển (rẽ nhánh, nhảy) n Phương pháp định địa chỉ (addressing modes) là cách thức địa chỉ hóa trong trường địa chỉ của lệnh để xác định nơi chứa toán hạng Jan2014 Computer Architecture 227 Jan2014 Computer Architecture 228 Nguyễn Kim Khánh DCE-HUST 57
  58. Bài giảng Kiến trúc máy tính Jan2014 NKK-HUST NKK-HUST Các phương pháp định địa chỉ thông dụng Định địa chỉ tức thì Mã thao tác Toán hạng n Định địa chỉ tức thì n Định địa chỉ thanh ghi n Toán hạng là hằng số nằm ngay trong lệnh n Định địa chỉ trực tiếp n Chỉ có thể là toán hạng nguồn n Định địa chỉ gián tiếp qua thanh ghi n Ví dụ: n Định địa chỉ dịch chuyển ADD R1, 5 # R1ß R1+5 n Không tham chiếu bộ nhớ n Truy nhập toán hạng rất nhanh n Dải giá trị của toán hạng bị hạn chế Jan2014 Computer Architecture 229 Jan2014 Computer Architecture 230 NKK-HUST NKK-HUST Định địa chỉ thanh ghi Định địa chỉ trực tiếp Mã thao tác Tên thanh ghi Mã thao tác Địa chỉ Bộ nhớ n Toán hạng nằm trong thanh ghi có n Toán hạng là ngăn nhớ có địa chỉ tên được chỉ ra trong lệnh Tập thanh ghi được cho trực tiếp trong lệnh n Ví dụ: ADD R1, R2 # R1ß R1+R2 n Ví dụ: Toán hạng n Số lượng thanh ghi ít à Trường địa Toán hạng ADD R1, A #R1 ß R1 + (A) chỉ toán hạng chỉ cần ít bit n Cộng nội dung thanh ghi R1 với nội n Không tham chiếu bộ nhớ dung của ngăn nhớ có địa chỉ là A n Truy nhập toán hạng nhanh n Tìm toán hạng trong bộ nhớ ở địa n Tăng số lượng thanh ghi à hiệu chỉ A quả hơn n CPU tham chiếu bộ nhớ một lần để truy nhập dữ liệu Jan2014 Computer Architecture 231 Jan2014 Computer Architecture 232 Nguyễn Kim Khánh DCE-HUST 58
  59. Bài giảng Kiến trúc máy tính Jan2014 NKK-HUST NKK-HUST Định địa chỉ gián tiếp qua thanh ghi Định địa chỉ dịch chuyển Mã thao tác Tên thanh ghi Mã thao tác Tên thanh ghi Hằng số n n Toán hạng nằm ở ngăn nhớ Bộ nhớ Để xác định toán hạng, Bộ nhớ có địa chỉ trong thanh ghi Tập thanh ghi Trường địa chỉ chứa hai Tập thanh ghi n Trường địa chỉ toán hạng cho thành phần: biết tên thanh ghi đó n Tên thanh ghi Địa chỉ Địa chỉ + Toán hạng n Thanh ghi có thể là ngầm định Toán hạng n Hằng số (offset) n Thanh ghi này được gọi là n Địa chỉ của toán hạng = thanh ghi con trỏ nội dung thanh ghi + n Vùng nhớ có thể được tham hằng số chiếu là lớn (2n), (với n là độ dài của thanh ghi) n Thanh ghi có thể được ngầm định Jan2014 Computer Architecture 233 Jan2014 Computer Architecture 234 NKK-HUST NKK-HUST Số lượng địa chỉ toán hạng trong lệnh (1) Số lượng địa chỉ toán hạng trong lệnh (2) n Ba địa chỉ toán hạng: n Hai địa chỉ toán hạng: n 2 toán hạng nguồn, 1 toán hạng đích n Một toán hạng vừa là toán hạng nguồn vừa n Phù hợp với dạng: c = a + b là toán hạng đích; toán hạng còn lại là toán hạng nguồn n add r1, r2, r3 # r1 ß r2 + r3 n a = a + b n Từ lệnh dài vì phải mã hoá địa chỉ cho cả ba toán hạng n add r1, r2 # r1 ß r1 + r2 n Được sử dụng trên các bộ xử lý tiên tiến n Giá trị cũ của 1 toán hạng nguồn bị mất vì phải chứa kết quả n Rút gọn độ dài từ lệnh n Phổ biến Jan2014 Computer Architecture 235 Jan2014 Computer Architecture 236 Nguyễn Kim Khánh DCE-HUST 59
  60. Bài giảng Kiến trúc máy tính Jan2014 NKK-HUST NKK-HUST Số lượng địa chỉ toán hạng trong lệnh (3) Số lượng địa chỉ toán hạng trong lệnh (4) n Một địa chỉ toán hạng: n 0 địa chỉ toán hạng: n Các toán hạng đều được ngầm định n Một toán hạng được chỉ ra trong lệnh n Sử dụng Stack n Một toán hạng là ngầm định à thường là thanh ghi (thanh chứa –accumulator) n Ví dụ: push a n add r1 # Acc ß Acc + r1 push b n Được sử dụng trên các máy ở các thế hệ add trước pop c có nghĩa là : c = a+b n không thông dụng Jan2014 Computer Architecture 237 Jan2014 Computer Architecture 238 NKK-HUST NKK-HUST 4. CISC và RISC Các đặc trưng của RISC n CISC: Complex Instruction Set Computer: n Số lượng lệnh ít n Máy tính với tập lệnh phức tạp n Hầu hết các lệnh truy nhập toán hạng ở các thanh ghi n Các bộ xử lý truyền thống: Intel x86, Motorola 680x0 n Truy nhập bộ nhớ bằng các lệnh LOAD/STORE n RISC: Reduced Instruction Set Computer: n Thời gian thực hiện lệnh là một chu kỳ máy n Máy tính với tập lệnh thu gọn n Các lệnh có độ dài cố định (32 bit) n SunSPARC, Power PC, MIPS, ARM n Số lượng dạng lệnh ít (<=4) n RISC đối nghịch với CISC n CPU có tập thanh ghi lớn n Kiến trúc tập lệnh tiên tiến n Có ít phương pháp định địa chỉ toán hạng(<=4) n Hỗ trợ các thao tác của ngôn ngữ bậc cao Jan2014 Computer Architecture 239 Jan2014 Computer Architecture 240 Nguyễn Kim Khánh DCE-HUST 60
  61. Bài giảng Kiến trúc máy tính Jan2014 NKK-HUST NKK-HUST 1. Giới thiệu chung n MIPS- Microprocessor without Interlocked Pipeline Stages n Được phát triển ở đại học Stanford, sau đó 5.2. Kiến trúc tập lệnh MIPS được thương mại hóa bởi Công ty MIPS Technologies n Năm 2012: MIPS Technologies được bán cho Imagination Technologies (imgtech.com) n Kiến trúc RISC n Chiếm thị phần lớn trong các sản phẩm nhúng n Điển hình cho nhiều kiến trúc tập lệnh hiện đại Jan2014 Computer Architecture 241 Jan2014 Computer Architecture 242 NKK-HUST NKK-HUST 2. Phép toán số học và các toán hạng Toán hạng thanh ghi n Cộng và trừ: 3 toán hạng n Các lệnh số học sử dụng toán hạng n Hai toán hạng nguồn và một toán hạng thanh ghi đích n MIPS có tập 32 thanh ghi 32-bit add a, b, c # a ß b + c n Được sử dụng thường xuyên n Tất cả các lệnh số học có dạng trên n Được đánh số từ 0 đến 31 (dùng 5 bit) n Toán hạng có thể là: n Dữ liệu 32-bit được gọi là “word” n Nội dung thanh ghi n Chương trình dịch Assembler đặt tên: n Nội dung ngăn nhớ n $t0, $t1, , $t9 chứa các giá trị tạm thời n Hằng số n $s0, $s1, , $s7 cất các biến Jan2014 Computer Architecture 243 Jan2014 Computer Architecture 244 Nguyễn Kim Khánh DCE-HUST 61
  62. Bài giảng Kiến trúc máy tính Jan2014 NKK-HUST NKK-HUST Tập thanh ghi của MIPS Ví dụ toán hạng thanh ghi Tên thanh ghi Số hiệu thanh ghi Công dụng n Mã C: $zero 0 the constant value 0 a = b + c; $at 1 assembler temporary d = a – e; $v0-$v1 2-3 procedure return values n Mã hợp ngữ: $a0-$a3 4-7 procedure arguments add a,b,c sub d,a,e $t0-$t7 8-15 temporaries $s0-$s7 16-23 saved variables n Mã C: $t8-$t9 24-25 more temporaries f = (g + h) - (i + j); $k0-$k1 26-27 OS temporaries n f, g, h, i, j nằm ở $s0, $s1, $s2, $s3, $s4 $gp 28 global pointer n Được dịch thành mã MIPS: $sp 29 stack pointer add $t0, $s1, $s2 # $t0 ß $s1+$s2 $fp 30 frame pointer add $t1, $s3, $s4 # $t1 ß $s3+$s4 sub $s0, $t0, $t1 # $s0 ß $t0-$t1 $ra 31 procedure return address Jan2014 Computer Architecture 245245 Jan2014 Computer Architecture 246 NKK-HUST NKK-HUST Toán hạng ở bộ nhớ Ví dụ toán hạng bộ nhớ n Bộ nhớ chính được sử dụng lưu trữ các dữ liệu n Mã C: n Địa chỉ cơ sở Biến vô hướng, mảng, bản ghi, dữ liệu động A[0] g = h + A[8]; A[1] n Muốn thực hiện phép toán số học, cần phải: A[2] n g ở $s1, h ở $s2, địa chỉ cơ sở của mảng A[3] n Nạp (Load) các giá trị từ bộ nhớ vào các thanh ghi A ở $s3 A[4] n Thực hiện phép toán trên các thanh ghị A[5] A[6] n Lưu (store) kết quả từ thanh ghi ra bộ nhớ A[7] A[8] n Bộ nhớ được đánh địa chỉ theo byte A[9] A[10] n Mỗi địa chỉ xác định vị trí của một byte nhớ A[11] A[12] n Mỗi Word có độ dài 32 bit à địa chỉ của các Word là bội của 4 n MIPS lưu trữ theo kiểu Đầu to (Big Endian) Jan2014 Computer Architecture 247 Jan2014 Computer Architecture 248 Nguyễn Kim Khánh DCE-HUST 62
  63. Bài giảng Kiến trúc máy tính Jan2014 NKK-HUST NKK-HUST Ví dụ toán hạng bộ nhớ Ví dụ toán hạng bộ nhớ (tiếp) Địa chỉ cơ sở n Mã C: n Mã C: A[0] Địa chỉ cơ sở A[0] A[12] = h + A[8]; A[1] g = h + A[8]; A[1] A[2] A[2] n h ở $s2, địa chỉ cơ sở của mảng A nằm ở $s3 A[3] n g ở $s1, h ở $s2, địa chỉ cơ sở của mảng A[3] A[4] A ở $s3 A[4] A[5] A[5] A[6] n Mã MIPS: A[6] A[7] A[7] A[8] n Chỉ số 8 yêu cầu phần dịch chuyển (offset) A[8] A[9] là 32 (chỉ số từ 0) do 4 bytes/ word A[9] A[10] A[10] A[11] lw $t0,32($s3) # load word A[8] A[11] A[12] add $s1,$s2,$t0 # g = h+A[8] A[12] offset base register Jan2014 Computer Architecture 249 Jan2014 Computer Architecture 250 NKK-HUST NKK-HUST Ví dụ toán hạng bộ nhớ (tiếp) Thanh ghi với Bộ nhớ Địa chỉ cơ sở n Truy nhập thanh ghi nhanh hơn bộ nhớ n Mã C: A[0] A[12] = h + A[8]; A[1] n A[2] Thao tác dữ liệu trên bộ nhớ yêu cầu n h ở $s2, địa chỉ cơ sở của mảng A nằm ở $s3 A[3] nạp (load) và lưu (store). n Mã MIPS: A[4] A[5] n Cần thực hiện nhiều lệnh hơn lw $t0, 32($s3) # load word from A[8] A[6] add $t0, $s2, $t0 # t0 = h + A[8] A[7] n Chương trình dịch sử dụng các thanh sw $t0, 48($s3) # store word to A[12] A[8] A[9] ghi cho các biến nhiều nhất có thể A[10] A[11] n Chỉ sử dụng bộ nhớ cho các biến ít được A[12] sử dụng n Cần tối ưu hóa sử dụng thanh ghi Jan2014 Computer Architecture 251 Jan2014 Computer Architecture 252 Nguyễn Kim Khánh DCE-HUST 63
  64. Bài giảng Kiến trúc máy tính Jan2014 NKK-HUST NKK-HUST Toán hạng tức thì (immediate) Hằng số Zero n Dữ liệu hằng số được xác định ngay n Thanh ghi 0 của MIPS ($zero hay $0) luôn trong lệnh chứa hằng số 0 addi $s3, $s3, 4 # $s3 ß $s3+4 n Không thể thay đổi giá trị n Không có lệnh trừ (subi) với giá trị tức n Hữu ích cho một số thao tác thông dụng thì n Chẳng hạn, chuyển dữ liệu giữa các thanh ghi n Sử dụng hằng số âm để thực hiện phép trừ add $t2, $s1, $zero # $t2 ß $s1 addi $s2, $s1, -1 # $s2 ß $s1-1 Jan2014 Computer Architecture 253 Jan2014 Computer Architecture 254 NKK-HUST NKK-HUST 3. Mã máy Các dạng lệnh của MIPS n Các lệnh được mã hóa dưới dạng nhị phân được gọi là mã máy n Các lệnh của MIPS: n Được mã hóa bằng các từ lệnh 32-bit n Có ít dạng lệnh n Số hiệu thanh ghi n $t0 – $t7 là các thanh ghi 8 – 15 n $t8 – $t9 là các thanh ghi 24 – 25 n $s0 – $s7 là các thanh ghi 16 – 23 Jan2014 Computer Architecture 255 Jan2014 Computer Architecture 256 Nguyễn Kim Khánh DCE-HUST 64
  65. Bài giảng Kiến trúc máy tính Jan2014 NKK-HUST NKK-HUST Lệnh dạng R (Register) Ví dụ dạng lệnh R op rs rt rd shamt funct Giá trị các trường Hợp ngữ op rs rt rd shamt funct 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits ad d $s0, $s1, $s2 0 17 18 16 0 32 n Các trường của lệnh sub $t0, $t3, $t5 0 11 13 8 0 34 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits n op: operation code (opcode): mã thao tác Mã máy n rs: số hiệu thanh ghi nguồn thứ nhất op rs rt rd shamt funct n rt: số hiệu thanh ghi nguồn thứ hai 000000 10001 10010 10000 00000 100000 (0x02328020) n rd: số hiệu thanh ghi đích 000000 01011 01101 01000 00000 100010 (0x016D4022) 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits n shamt (shift amount): số bit được dịch n funct: function code (extends opcode): mã hàm (mã thao tác mở rộng) Jan2014 Computer Architecture 257 Jan2014 Computer Architecture 258 NKK-HUST NKK-HUST Lệnh dạng I (Immediate) Ví dụ lệnh dạng I Hợp ngữ Giá trị các trường op rs rt constant or address op rs rt imm addi $s0, $s1, 5 8 17 16 5 6 bits 5 bits 5 bits 16 bits addi $t0, $s3, -12 8 19 8 -12 n Dùng cho các lệnh số học với toán hạng tức thì và lw $t2, 32($0) 35 0 10 32 các lệnh load/store (nạp/lưu) sw $s1, 4($t1) 43 9 17 4 n rt: số hiệu thanh ghi đích hoặc thanh ghi nguồn 6 bits 5 bits 5 bits 16 bits 15 15 n Hằng số: từ –2 đến +2 – 1 Mã máy n Địa chỉ: offset cộng với địa chỉ cơ sở nằm ở rs op rs rt imm 001000 10001 10000 0000 0000 0000 0101 (0x22300005) n addi rt, rs, imm #(rt) ß (rs)+imm 001000 10011 01000 1111 1111 1111 0100 (0x2268FFF4) n lw rt, imm(rs) #(rt) ß mem[(rs)+imm] 100011 00000 01010 0000 0000 0010 0000 (0x8C0A0020) n sw rt, imm(rs) #(rt) à mem[(rs)+imm] 101011 01001 10001 0000 0000 0000 0100 (0xAD310004) 6 bits 5 bits 5 bits 16 bits Jan2014 Computer Architecture 259 Jan2014 Computer Architecture 260 Nguyễn Kim Khánh DCE-HUST 65