Upload
hanhu
View
220
Download
2
Embed Size (px)
Citation preview
Bài giảng Kiến trúc máy tính Jan2014
Nguyễn Kim Khánh DCE-HUST 1
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI Hanoi University of Science and Technology
KIẾN TRÚC MÁY TÍNH Computer Architecture
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
NKK-HUST
Contact Information
n Address: 502-B1 n Mobile: 091-358-5533 n e-mail: [email protected] [email protected]
Jan2014 Computer Architecture 2
NKK-HUST
Mục tiêu học phần
n Sinh viên được trang bị các kiến thức cơ sở về kiến trúc tập lệnh và tổ chức của máy tính, cũng như những vấn đề cơ bản trong thiết kế máy tính.
n Sau khi học xong học phần này, sinh viên có khả năng: n Tìm hiểu kiến trúc tập lệnh của các bộ xử lý cụ thể n Lập trình hợp ngữ trên một số kiến trúc 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 n Phân tích và thiết kế máy tính
Jan2014 Computer Architecture 3
NKK-HUST
Tài liệu tham khảo chính [1] William Stallings - Computer Organization and
Architecture – Designing for Performance – 2013 (9th edition)
[2] David A. Patterson & John L. Hennessy - Computer
Organization and Design: The Hardware/Software Interface – 2012 (revised 4th edition)
[3] David Money Harris and Sarah L. Harris, Digital
Design and Computer Architecture – 2013 (2nd edition) [4] Andrew S. Tanenbaum - Structured Computer
Organization – 2012 (6th edition)
Jan2014 Computer Architecture 4
Bài giảng Kiến trúc máy tính Jan2014
Nguyễn Kim Khánh DCE-HUST 2
NKK-HUST
Nội dung học phần
Chương 1. Giới thiệu chung Chương 2. Cơ bản về logic số Chương 3. Hệ thống máy tính Chương 4. Số học máy tính Chương 5. Kiến trúc tập lệnh Chương 6. Bộ xử lý Chương 7. Bộ nhớ máy tính Chương 8. Hệ thống vào-ra Chương 9. Các kiến trúc song song
Jan2014 Computer Architecture 5
NKK-HUST
Chú ý: Bài giảng mới nhất Jan 2014
ftp://dce.hust.edu.vn/khanhnk/CA
Jan2014 Computer Architecture 6
NKK-HUST
Kiến trúc máy tính
Chương 1 GIỚI THIỆU CHUNG
Nguyễn Kim Khánh Trường Đại học Bách khoa Hà Nội
Jan2014 Computer Architecture 7
NKK-HUST
1.1. Máy tính và phân loại 1.2. Khái niệm kiến trúc máy tính 1.3. Sự tiến hóa của máy tính 1.4. Hiệu năng máy tính
Nội dung
Jan2014 Computer Architecture 8
Bài giảng Kiến trúc máy tính Jan2014
Nguyễn Kim Khánh DCE-HUST 3
NKK-HUST
n Máy tính (Computer) là thiết bị điện tử thực hiện các công việc sau: n Nhận thông tin vào, n Xử lý thông tin theo dãy các lệnh được nhớ sẵn bên
trong, n Đưa thông tin ra.
n Dãy các lệnh nằm trong bộ nhớ để yêu cầu máy tính thực hiện công việc cụ thể gọi là chương trình (program)
à Máy tính hoạt động theo chương trình.
1.1. Máy tính và phân loại máy tính
1. Máy tính
Jan2014 Computer Architecture 9
NKK-HUST
Máy tính ....
Các thiết bị vào
(Input Devices)
Bộ nhớ chính(Main Memory)
Các thiết bị ra(Output
Devices)
Bộ xử lý trung tâm (Central
Processing Unit)
Jan2014 Computer Architecture 10
NKK-HUST
n Phân loại truyền thống: n Máy vi tính (Microcomputers) n Máy tính nhỏ (Minicomputers) n Máy tính lớn (Mainframe Computers) n Siêu máy tính (Supercomputers)
2. Phân loại máy tính
Jan2014 Computer Architecture 11
NKK-HUST
n Thiết bị di động cá nhân (Personal Mobile Devices): n Smartphones, Tablet
n Máy tính cá nhân đa dụng (Personal Computers) n Desktop computers, Laptop computers
n Máy chủ (Servers) n Thực chất là Máy phục vụ n Dùng trong mạng theo mô hình Client/Server
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
Phân loại máy tính hiện đại [P&H]
Jan2014 Computer Architecture 12
Bài giảng Kiến trúc máy tính Jan2014
Nguyễn Kim Khánh DCE-HUST 4
NKK-HUST
1.2. Khái niệm kiến trúc máy tính
n Định nghĩa trước đây về kiến trúc máy tính: n Là thiết kế kiến trúc tập lệnh (Instruction Set
Architecture – ISA) n Các thuộc tính của máy tính theo cách nhìn
người lập trình (hardware/software interface) n Là định nghĩa hẹp
Jan2014 Computer Architecture 13
NKK-HUST
Định nghĩa của Hennessy/ Patterson
n Kiến trúc máy tính bao gồm: n Kiến trúc tập lệnh (Instruction Set Architecture):
nghiên cứu máy tính theo cách nhìn của người lập trình (hardware/software interface).
n Tổ chức máy tính (Computer Organization) hay Vi kiến trúc (Microarchitecture): nghiên cứu thiết kế máy tính ở mức cao, chẳng hạn như hệ thống nhớ, cấu trúc bus, thiết kế bên trong CPU.
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 14
NKK-HUST
Kiến trúc tập lệnh
Kiến trúc tập lệnh của máy tính bao gồm: n Tập lệnh: tập hợp các chuỗi số nhị phân
mã hoá cho các thao tác mà máy tính có thể thực hiện
n Các kiểu dữ liệu: các kiểu dữ liệu mà máy tính có thể xử lý
Jan2014 Computer Architecture 15
NKK-HUST
Cấu trúc cơ bản của máy tính
CPU Bộ nhớ chính
Bus liên kết hệ thống
Hệ thống vào-ra
Jan2014 Computer Architecture 16
Bài giảng Kiến trúc máy tính Jan2014
Nguyễn Kim Khánh DCE-HUST 5
NKK-HUST
n Bộ xử lý trung tâm (Central Processing Unit): Điều khiển hoạt động của máy tính và xử lý dữ liệu.
n Bộ nhớ chính (Main Memory): Chứa các chương trình và dữ liệu đang được sử dụng.
n Hệ thống vào-ra (Input/Output System): Trao đổi thông tin giữa máy tính với bên ngoài.
n Bus liên kết hệ thống (System Interconnection Bus): Kết nối và vận chuyển thông tin giữa các thành phần với nhau.
Các thành phần cơ bản của máy tính
Jan2014 Computer Architecture 17
NKK-HUST
Mô hình phân lớp của máy tính
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.
Phần mềm ứng dụng
Phần mềm trung gian
Hệ điều hành
Kiến trúc tập lênh
Vi kiến trúc
Logic-số
Mạch điện tử
Jan2014 Computer Architecture 18
Các phần mềm ứng dụng
Các phần mềm trung gian
Hệ điều hành
Phần cứng
Người sử dụng Người lập
trình
Người thiết kế HĐH
NKK-HUST
1.3. Sự tiến hóa của máy tính
Các thế hệ máy tính n Thế hệ thứ nhất: Máy tính dùng đèn điện tử
chân không (1950s) n Thế hệ thứ hai: Máy tính dùng transistor
(1960s) n Thế hệ thứ ba: Máy tính dùng vi mạch SSI,
MSI và LSI (1970s) n Thế hệ thứ tư: Máy tính dùng vi mạch VLSI
(1980s) n Thế hệ thứ năm: Máy tính dùng vi mạch
ULSI, SoC (1990s-nay) Jan2014 Computer Architecture 19
NKK-HUST
n Electronic Numerical Intergator and Computer
n Dự án của Bộ Quốc phòng Mỹ n Do John Mauchly và John Presper
Eckert ở Đại học Pennsylvania thiết kế. n Bắt đầu từ 1943, hoàn thành 1946 n Nặng 30 tấn n 18000 đèn điện tử và 1500 rơle n 5000 phép cộng/giây n Xử lý theo số thập phân n Bộ nhớ chỉ lưu trữ dữ liệu 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.
ENIAC – Máy tính điện tử đầu tiên
Jan2014 Computer Architecture 20
Bài giảng Kiến trúc máy tính Jan2014
Nguyễn Kim Khánh DCE-HUST 6
NKK-HUST
Máy tính von Neumann
n Chính là máy tính IAS (thực hiện tại Princeton Institute for Advanced Studies)
n Bắt đầu 1947, hoàn thành 1952 n Do John von Neumann thiết kế n Được xây dựng theo ý tưởng “chương trình được lưu trữ” - (stored-program concept) của von Neumann/Turing (1945)
n Trở thành mô hình cơ bản của máy tính
Jan2014 Computer Architecture 21
NKK-HUST
n Vi mạch hay là mạch tích hợp (Integrated Circuit - IC): mạch điện tử gồm nhiều transistors và các linh kiện khác được tích hợp trên một chip bán dẫn.
n Phân loại vi mạch theo qui mô tích hợp: n SSI - Small Scale Integration n MSI - Medium Scale Integration n LSI - Large Scale Integration n VLSI - Very Large Scale Integration n ULSI - Ultra Large Scale Integration
Vi mạch
Jan2014 Computer Architecture 22
NKK-HUST
n Bộ vi xử lý (Microprocessors): CPU được chế tạo trên một chip.
n Vi mạch điều khiển tổng hợp (Chipset): một hoặc một vài vi mạch thực hiện được nhiều chức năng điều khiển và nối ghép.
n Bộ nhớ bán dẫn (Semiconductor Memory): ROM, RAM, Flash
n Hệ thống trên chip (SoC – System on Chip) n Các bộ vi điều khiển (Microcontrollers)
Một số vi mạch số điển hình
Jan2014 Computer Architecture 23
NKK-HUST
Luật Moore
n Gordon Moore – người đồng sáng lập Intel n Số transistors trên chip sẽ gấp đôi sau 18 tháng n Giá thành của chip hầu như không thay đổi n Mật độ cao hơn, do vậy đường dẫn ngắn hơn n Kích thước nhỏ hơn dẫn tới độ phức tạp tăng lên n Điện năng tiêu thụ ít hơn n Hệ thống có ít các chip liên kết với nhau, do đó tăng độ tin
cậy
2.1 / A BRIEF HISTORY OF COMPUTERS 31
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.
IBM SYSTEM/360 By 1964, IBM had a firm grip on the computer market with its 7000 series of machines. In that year, IBM announced the System/360, a new family of computer products. Although the announcement itself was no surprise, it contained some unpleasant news for current IBM customers: the 360 product line was incompatible with older IBM machines. Thus, the transition to the 360 would be difficult for the current customer base. This was a bold step by IBM, but one IBM felt was necessary to break out of some of the constraints of the 7000 architecture and to produce a system capable of evolving with the new integrated circuit technology [PADE81, GIFF87]. The strategy paid off both financially and technically. The 360 was the success of the decade and cemented IBM as the overwhelmingly dominant computer vendor, with a market share above 70%. And, with some modifications 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 throughout this text.
The System/360 was the industry’s first planned family of computers. The family covered a wide range of performance and cost. Table 2.4 indicates some of 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 a program written for one model should be capable of being executed by another model in the series, with only a difference in the time it takes to execute.
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
11947
First w
orking
trans
istor
Moo
re’s l
aw
promulg
ated
Inven
tion o
f
integ
rated
circu
it
50 55 60 65 70 75 80 85 90 95 2000 05 11
10100100010,000100,00010 m100 m1 bn10 bn100 bn
Figure 2.8 Growth in Transistor Count on Integrated Circuits
Jan2014 Computer Architecture 24
Bài giảng Kiến trúc máy tính Jan2014
Nguyễn Kim Khánh DCE-HUST 7
NKK-HUST
Sự phát triển của vi xử lý
n 1971: bộ vi xử lý 4-bit Intel 4004 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)
Jan2014 Computer Architecture 25
NKK-HUST
Máy tính ngày nay
Clusters
Massive Cluster
Gigabit Ethernet
Robots Routers
Cars
Sensor Nets
Ref
riger
ator
s
Robots Routers Jan2014 Computer Architecture 26
NKK-HUST
1.4. Hiệu năng máy tính
n Định nghĩa hiệu năng P(Performance): P = 1/ t
trong đó: t là thời gian thực hiện n “Máy tính A nhanh hơn máy B n lần” PA / PB = tB / tA = n n Ví dụ: Thời gian chạy chương trình:
n 10s trên máy A, 15s trên máy B n tB / tA = 15s / 10s = 1.5 n Vậy máy A nhanh hơn máy B 1.5 lần
Jan2014 Computer Architecture 27
NKK-HUST
Xung nhịp của CPU n Hoạt động của CPU được điều khiển bởi xung
nhịp có tần số xác định
n Chu kỳ xung nhịp T0(Clock period): thời gian của một chu kỳ
n Tần số xung nhịp f0 (Clock rate): số chu kỳ trong 1 giây. n f0 = 1/T0
n VD: Bộ xử lý có f0 = 4GHz = 4000MHz = 4×109Hz T0 = 1/(4x109) = 0.25x10–9s = 0.25ns
T0
Jan2014 Computer Architecture 28
Bài giảng Kiến trúc máy tính Jan2014
Nguyễn Kim Khánh DCE-HUST 8
NKK-HUST
Thời gian CPU (tCPU)
n trong đó: n là số chu kỳ xung nhịp 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
00 f
nTntCPU =×=
Jan2014 Computer Architecture 29
NKK-HUST
Ví dụ n Máy tính A:
n Tần số xung nhịp: fA= 2GHz n Thời gian của CPU: tA = 10s
n Máy tính B 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 Xác định tần số xung nhịp của máy B (fB)?
Jan2014 Computer Architecture 30
NKK-HUST
Ví dụ n Máy tính A:
n Tần số xung nhịp: fA= 2GHz n Thời gian của CPU: tA = 10s
n Máy tính B 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 Xác định tần số xung nhịp của máy B (fB)? n Giải:
GHzss
f
GHzsftnsn
tnf
B
AAA
A
B
BB
461024
610202.1
102021062.1
99
9
=×
=××
=
×=×=×=
×==
Jan2014 Computer Architecture 31
NKK-HUST
Số lệnh và số chu kỳ trên một lệnh
n Trong trường hợp các lệnh khác nhau có CPI khác nhau, cần tính CPI trung bình
n Số chu kỳ = Số lệnh x Số chu kỳ trên một lệnh CPIICn ×=
n - số chu kỳ, IC - số lệnh (Instruction Count), CPI - số chu kỳ trên một lệnh (Cycles per Instruction)
n Thời gian thực hiện của CPU:
00 f
CPIICTCPIICtCPU×
=××=
Jan2014 Computer Architecture 32
Bài giảng Kiến trúc máy tính Jan2014
Nguyễn Kim Khánh DCE-HUST 9
NKK-HUST
Ví dụ
n Máy tính A: TA = 250ps, CPIA = 2.0 n Máy tính B: TB = 500ps, CPIB = 1.2 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 ?
Jan2014 Computer Architecture 33
NKK-HUST
Ví dụ
n Máy tính A: TA = 250ps, CPIA = 2.0 n Máy tính B: TB = 500ps, CPIB = 1.2 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 ?
1.2500psIC600psIC
AtBt
600psIC500ps1.2ICBTBCPIICBt
500psIC250ps2.0ICATACPIICAt
=×
×=
×=××=
××=
×=××=
××=
Vậy: A nhanh hơn B 1.2 lần
Jan2014 Computer Architecture 34
NKK-HUST
Chi tiết hơn về CPI
n Nếu loại lệnh khác nhau có số chu kỳ khác nhau, ta có tổng số chu kỳ:
∑=
×=K
1iii )IC(CPIn
n CPI trung bình:
∑=
⎟⎠
⎞⎜⎝
⎛ ×==K
1i
iiTB ICICCPI
ICnCPI
Jan2014 Computer Architecture 35
NKK-HUST
Ví dụ
n Cho bảng chỉ ra các dãy lệnh sử dụng các lệnh thuộc các loại A, B, C. Tính CPI trung bình?
Loại lệnh A B C CPI theo loại lệnh 1 2 3 IC trong dãy lệnh 1 2 1 2 IC trong dãy lệnh 2 4 1 1
Jan2014 Computer Architecture 36
Bài giảng Kiến trúc máy tính Jan2014
Nguyễn Kim Khánh DCE-HUST 10
NKK-HUST
Ví dụ
n Cho bảng chỉ ra các dãy lệnh sử dụng các lệnh thuộc các loại A, B, C. Tính CPI trung bình?
Loại lệnh A B C CPI theo loại lệnh 1 2 3 IC trong dãy lệnh 1 2 1 2 IC trong dãy lệnh 2 4 1 1
n Dãy lệnh 1: IC = 5 n Số chu kỳ
= 2×1 + 1×2 + 2×3 = 10
n CPITB = 10/5 = 2.0
n Dãy lệnh 2: IC = 6 n Số chu kỳ
= 4×1 + 1×2 + 1×3 = 9
n CPITB = 9/6 = 1.5
Jan2014 Computer Architecture 37
NKK-HUST
Tóm tắt về Hiệu năng
n Hiệu năng phụ thuộc vào: n Thuật toán n Ngôn ngữ lập trình n Chương trình dịch n Kiến trúc tập lệnh
cycle ClockSeconds
nInstructiocycles Clock
ProgramnsInstructioTime CPU ××=
00 f
CPIICTCPIICtCPU×
=××=
Jan2014 Computer Architecture 38
NKK-HUST
MIPS như là thước đo hiệu năng
n MIPS: Millions of Instructions Per Second (Số triệu lệnh trên 1 giây)
10CPIrate Clock
10rate Clock
CPIcount nInstructiocount nInstructio
10time Executioncount nInstructioMIPS 6
66 ×
=×
×=
×=
60
10MIPSfCPI×
=60
10CPIfMIPS×
=
Jan2014 Computer Architecture 39
NKK-HUST
Ví dụ Tính MIPS của bộ xử lý với:
clock rate = 2GHz và CPI = 4
Jan2014 Computer Architecture 40
Bài giảng Kiến trúc máy tính Jan2014
Nguyễn Kim Khánh DCE-HUST 11
NKK-HUST
Ví dụ Tính MIPS của bộ xử lý với:
clock rate = 2GHz và CPI = 4
0.5ns
2ns
1 chu kỳ = 1/(2x109) = 0,5ns CPI = 4 à thời gian thực hiện 1 lệnh: 4 x 0,5ns = 2ns Vậy bộ xử lý thực hiện được 500 MIPS
Jan2014 Computer Architecture 41
NKK-HUST
Ví dụ
Tính CPI của bộ xử lý với: clock rate = 1GHz và 400 MIPS?
Jan2014 Computer Architecture 42
NKK-HUST
Ví dụ
Tính CPI của bộ xử lý với: clock rate = 1GHz và 400 MIPS?
1ns
4x108 lệnh thực hiện trong 1s à 1 lệnh thực hiện trong 1/(4x108)s = 2,5ns à CPI = 2,5
Jan2014 Computer Architecture 43
NKK-HUST
MFLOPS
Millions of Floating Point Operations per Second (Số triệu phép toán số dấu phẩy động trên một giây)
GFLOPS(109 ) TFLOPS(1012)
610time Executionoperations point floating ExecutedMFLOPS×
=
Jan2014 Computer Architecture 44
Bài giảng Kiến trúc máy tính Jan2014
Nguyễn Kim Khánh DCE-HUST 12
NKK-HUST
Hết chương 1
Jan2014 Computer Architecture 45
NKK-HUST
Kiến trúc máy tính
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 46
NKK-HUST
Nội dung học phần
Chương 1. Giới thiệu chung Chương 2. Cơ bản về logic số Chương 3. Hệ thống máy tính Chương 4. Số học máy tính Chương 5. Kiến trúc tập lệnh Chương 6. Bộ xử lý Chương 7. Bộ nhớ máy tính Chương 8. Hệ thống vào-ra Chương 9. Các kiến trúc song song
Jan2014 Computer Architecture 47
NKK-HUST
2.1. Các hệ đếm cơ bản 2.2. Đại số Boole 2.3. Các cổng logic 2.4. Mạch tổ hợp 2.5. Mạch dãy
Nội dung của chương 2
Jan2014 Computer Architecture 48
Bài giảng Kiến trúc máy tính Jan2014
Nguyễn Kim Khánh DCE-HUST 13
NKK-HUST
2.1. Các hệ đếm cơ bản
n Hệ thập phân (Decimal System) à con người sử dụng
n Hệ nhị phân (Binary System) à máy tính sử dụng
n Hệ mười sáu (Hexadecimal System) à dùng để viết gọn cho số nhị phân
Jan2014 Computer Architecture 49
NKK-HUST
1. Hệ thập phân
n Cơ số 10 n 10 chữ số: 0,1,2,3,4,5,6,7,8,9 n Dùng n chữ số thập phân có thể biểu diễn được 10n giá trị khác nhau: n 00...000 = 0 n 99...999 = 10n - 1
Jan2014 Computer Architecture 50
NKK-HUST
Dạng tổng quát của số thập phân
Giá trị của A được hiểu như sau:
mnn a...aaa...aaA −−−= 1011 ,
mm
nn
nn a...aaa...aaA −
−−
−−
− +++++++= 101010101010 11
00
11
11
in
miiaA 10∑
−=
=
Jan2014 Computer Architecture 51
NKK-HUST
Ví dụ số thập phân
472.38 = 4x102 + 7x101 + 2x100 + 3x10-1 + 8x10-2
n Các chữ số của phần nguyên: n 472 : 10 = 47 dư 2 n 47 : 10 = 4 dư 7 n 4 : 10 = 0 dư 4
n Các chữ số của phần lẻ: n 0.38 x 10 = 3.8 phần nguyên = 3 n 0.8 x 10 = 8.0 phần nguyên = 8
Jan2014 Computer Architecture 52
Bài giảng Kiến trúc máy tính Jan2014
Nguyễn Kim Khánh DCE-HUST 14
NKK-HUST
2. Hệ nhị phân
n Cơ số 2 n 2 chữ số nhị phân: 0 và 1 n chữ số nhị phân gọi là bit (binary digit) n Bit là đơn vị thông tin nhỏ nhất n Dùng n bit có thể biểu diễn được 2n giá trị
khác nhau: n 00...000 = 0 n 11...111 = 2n - 1
Jan2014 Computer Architecture 53
NKK-HUST
Bits, Bytes, Nibbles…
n Bits
n Bytes & Nibbles
n Bytes
10010110nibble
byte
CEBF9AD7least
significantbyte
mostsignificantbyte
10010110least
significantbit
mostsignificant
bit
Jan2014 Computer Architecture 54
NKK-HUST
Lũy thừa hai
n 210 = 1 kilo ≈ 1000 (1024) n 220 = 1 mega ≈ 1 triệu (1,048,576) n 230 = 1 giga ≈ 1 tỷ (1,073,741,824) n 240 = 1 tera ≈ 1000 tỷ n 250 = 1 peta ≈ 1 triệu tỷ
Jan2014 Computer Architecture 55
NKK-HUST
Dạng tổng quát của số nhị phân
Giá trị của A được tính như sau:
mnn a...aaa...aaA −−−= 1011 ,
mm
nn
nn a...aaa...aaA −
−−
−−
− +++++++= 222222 11
00
11
11
in
miiaA 2∑
−=
=
Có một số nhị phân A như sau:
Jan2014 Computer Architecture 56
Bài giảng Kiến trúc máy tính Jan2014
Nguyễn Kim Khánh DCE-HUST 15
NKK-HUST
Ví dụ số nhị phân
1101001.1011(2) = 6 5 4 3 2 1 0 -1 -2 -3 -4
= 26 + 25 + 23 + 20 + 2-1 + 2-3 + 2-4
= 64 + 32 + 8 + 1 + 0.5 + 0.125 + 0.0625 = 105.6875(10)
Jan2014 Computer Architecture 57
NKK-HUST
Chuyển đổi số nguyên thập phân sang nhị phân
n Phương pháp 1: chia dần cho 2 rồi lấy phần dư
n Phương pháp 2: Phân tích thành tổng của các số 2i à nhanh hơn
Jan2014 Computer Architecture 58
NKK-HUST
Phương pháp chia dần cho 2
n Ví dụ: chuyển đổi 105(10) n 105 : 2 = 52 dư 1 n 52 : 2 = 26 dư 0 n 26 : 2 = 13 dư 0 n 13 : 2 = 6 dư 1 n 6 : 2 = 3 dư 0 n 3 : 2 = 1 dư 1 n 1 : 2 = 0 dư 1
n Kết quả: 105(10) = 1101001(2)
Jan2014 Computer Architecture 59
NKK-HUST
Phương pháp phân tích thành tổng của các 2i
n Kết quả: 105(10) = 0110 1001(2)
27 26 25 24 23 22 21 20 128 64 32 16 8 4 2 1 0 1 1 0 1 0 0 1
n Ví dụ 1: chuyển đổi 105(10) n 105 = 64 + 32 + 8 +1 = 26 + 25 + 23 + 20
n Ví dụ 2: 17000(10) = 16384 + 512 + 64 + 32 + 8 = 214 + 29 + 26 + 25 + 23
17000(10) = 0100 0010 0110 1000(2) 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Jan2014 Computer Architecture 60
Bài giảng Kiến trúc máy tính Jan2014
Nguyễn Kim Khánh DCE-HUST 16
NKK-HUST
Chuyển đổi số lẻ thập phân sang nhị phân
n Ví dụ 1: chuyển đổi 0.6875(10) n 0.6875 x 2 = 1.375 phần nguyên = 1 n 0.375 x 2 = 0.75 phần nguyên = 0 n 0.75 x 2 = 1.5 phần nguyên = 1 n 0.5 x 2 = 1.0 phần nguyên = 1
n Kết quả : 0.6875(10)= 0.1011(2)
Jan2014 Computer Architecture 61
NKK-HUST
Chuyển đổi số lẻ thập phân sang nhị phân (tiếp)
n Ví dụ 2: chuyển đổi 0.81(10) n 0.81 x 2 = 1.62 phần nguyên = 1 n 0.62 x 2 = 1.24 phần nguyên = 1 n 0.24 x 2 = 0.48 phần nguyên = 0 n 0.48 x 2 = 0.96 phần nguyên = 0 n 0.96 x 2 = 1.92 phần nguyên = 1 n 0.92 x 2 = 1.84 phần nguyên = 1 n 0.84 x 2 = 1.68 phần nguyên = 1
n 0.81(10) ≈ 0.1100111(2)
Jan2014 Computer Architecture 62
NKK-HUST
Chuyển đổi số lẻ thập phân sang nhị phân (tiếp)
n Ví dụ 3: chuyển đổi 0.2(10) n 0.2 x 2 = 0.4 phần nguyên = 0 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 x 2 = 0.4 phần nguyên = 0 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
NKK-HUST
3. Hệ mười sáu (Hexa)
n Cơ số 16 n 16 chữ số: 0,1,2,3,4,5,6,7,8,9, A,B,C,D,E,F n Dùng để viết gọn cho số nhị phân: cứ một
nhóm 4-bit sẽ được thay bằng một chữ số Hexa
Jan2014 Computer Architecture 64
Bài giảng Kiến trúc máy tính Jan2014
Nguyễn Kim Khánh DCE-HUST 17
NKK-HUST
Quan hệ giữa số nhị phân và số Hexa 4-bit Chữ số Hexa
0000 0
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
0111 7
1000 8
1001 9
1010 A
1011 B
1100 C
1101 D
1110 E
1111 F
Ví dụ chuyển đổi số nhị phân à số Hexa: n 1011 00112 = B316 n 0000 00002 = 0016 n 0010 1101 1001 10102 = 2D9A16
n 1111 1111 1111 11112 = FFFF16
Jan2014 Computer Architecture 65
NKK-HUST
2.2. Đại số Boole
n Đại số Boole sử dụng các biến logic và phép toán logic
n Biến logic có thể nhận giá trị 1 (TRUE) hoặc 0 (FALSE)
n Phép toán logic cơ bản là AND, OR và NOT với ký hiệu như sau: n A AND B : A•B n A OR B : A + B n NOT A : A
n Thứ tự ưu tiên: NOT > AND > OR
Jan2014 Computer Architecture 66
NKK-HUST
Các phép toán logic (tiếp)
n Các phép toán NAND, NOR, XOR:
n A NAND B:
n A NOR B :
n A XOR B:
BA•
BA+
BABABA •+•=⊕
Jan2014 Computer Architecture 67
NKK-HUST
Phép toán đại số Boole
A B NOT A
A A AND B
A•B A OR B
A+B A NAND B
A•B A NOR B
A+B A XOR B
A ⊕ B
0
0
1
1
0
1
0
1
1
1
0
0
0
0
0
1
0
1
1
1
1
1
1
0
1
0
0
0
0
1
1
0
Jan2014 Computer Architecture 68
Bài giảng Kiến trúc máy tính Jan2014
Nguyễn Kim Khánh DCE-HUST 18
NKK-HUST
Các đồng nhất thức của đại số Boole
A • B = B • A A • (B + C) = (A • B) + (A • C)
1 • A = A
A • A = 0
0 • A = 0
A • A = A
A • (B • C) = (A • B) • C
A • B = A + B (Định lý De Morgan)
A + B = B + A A + (B • C) = (A + B) • ( A + C)
0 + A = A
A + A = 1
1 + A = 1
A + A = A
A + (B + C) = (A + B) + C
A + B = A • B (Định lý De Morgan)
Jan2014 Computer Architecture 69
NKK-HUST
2.3. Các cổng logic (Logic Gates)
n Thực hiện các hàm logic: n NOT, AND, OR, NAND, NOR, etc.
n Cổng logic một đầu vào: n Cổng NOT, bộ đệm (buffer)
n Cổng hai đầu vào: n AND, OR, XOR, NAND, NOR, XNOR
n Cổng nhiều đầu vào
Jan2014 Computer Architecture 70
NKK-HUST
Các cổng logic
368 CHAPTER 11 / DIGITAL LOGIC
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-ple Boolean operation on its input signals. The basic gates used in digital logic are AND, OR, NOT, NAND, NOR, and XOR. Figure 11.1 depicts these six gates. Each gate is defined in three ways: graphic symbol, algebraic notation, and truth table. The symbology used in this chapter is from the IEEE standard, IEEE Std 91. Note that the inversion (NOT) operation is indicated by a circle.
Each gate shown in Figure 11.1 has one or two inputs and one output. However, as indicated in Table 11.1b, all of the gates except NOT can have more than two inputs. Thus, (X + Y + Z) can be implemented with a single OR gate with three inputs. When one or more of the values at the input are changed, the correct output signal appears almost instantaneously, delayed only by the 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 outputs, one output being the negation of the other output.
A B F0 0 10 1 01 0 01 1 0A B F0 0 00 1 11 0 11 1 0
Graphical SymbolAlgebraicFunction Truth TableName
AND
OR
NOT
NAND
NOR
XOR
F ! A • Bor
F ! AB
F ! A " B
A B F0011
0001
0101
A B F0011
0111
0101
A B F0011
1110
0101
A F01
10
A
A
B
F ! Aor
F ! A#
F ! AB
F ! A " B
F ! A ! B
F
A
BF
A
BF
F
A
BF
A
BF
Figure 11.1 Basic Logic GatesJan2014 Computer Architecture 71
NKK-HUST
Tập đầy đủ
n Là tập các cổng có thể thực hiện được bất kỳ hàm logic nào từ các cổng của tập đó.
n Một số ví dụ về tập đầy đủ: n {AND, OR, NOT} n {AND, NOT} n {OR, NOT} n {NAND} n {NOR}
Jan2014 Computer Architecture 72
Bài giảng Kiến trúc máy tính Jan2014
Nguyễn Kim Khánh DCE-HUST 19
NKK-HUST
Sử dụng cổng NAND
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 the AND and NOT gates to form a functionally complete set, there must be a way to synthesize the OR operation from the AND and NOT operations. This can be done by applying DeMorgan’s theorem:
A + B = A # BA OR B = NOT ((NOT A) AND (NOT B))
Similarly, the OR and NOT operations are functionally complete because they can be used to synthesize the AND operation.
Figure 11.2 shows how the AND, OR, and NOT functions can be implemented solely with NAND gates, and Figure 11.3 shows the same thing for NOR gates. For this reason, digital circuits can be, and frequently are, implemented solely with NAND gates or solely with NOR gates.
A
A A
B
A
B
A
B
A+B
A BA B
Figure 11.2 Some Uses of NAND Gates
Jan2014 Computer Architecture 73
NKK-HUST
Sử dụng cổng NOR
370 CHAPTER 11 / DIGITAL LOGIC
With gates, we have reached the most primitive circuit level of computer hardware. An examination of the transistor combinations used to construct gates 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
A combinational circuit is an interconnected set of gates whose output at any time is a function only of the input at that time. As with a single gate, the appearance of the input is followed almost immediately by the appearance of the output, with only gate delays.
In general terms, a combinational circuit consists of n binary inputs and m binary outputs. As with a gate, a combinational circuit can be defined in three ways:
• Truth table: For each of the 2n possible combinations of input signals, the binary value of each of the m output signals is listed.
• Graphical symbols: The interconnected layout of gates is depicted. • Boolean equations: Each output signal is expressed as a Boolean function of
its input signals.
Implementation of Boolean Functions
Any Boolean function can be implemented in electronic form as a network of gates. For any given function, there are a number of alternative realizations. Consider the Boolean function represented by the truth table in Table 11.3. We can express this func-tion by simply itemizing the combinations of values of A, B, and C that cause F to be 1:
F + ABC + ABC + ABC (11.1)
A A
A
B
A
B
A (A+B)
BA+B
A B
Figure 11.3 Some Uses of NOR Gates
Jan2014 Computer Architecture 74
NKK-HUST
Một số ví dụ vi mạch logic 20-34 CHAPTER 20 / DIGITAL LOGIC
14 13 12 11 10 9 8
1 2 3 4 5 6 7
VCC 4B 4A 4Y 3B 3A 3Y
1A 1B 1Y 2A 2B 2Y GND
7400
14 13 12 11 10 9 8
1 2 3 4 5 6 7
VCC 4B 4A 4Y 3B 3A 3Y
1A 1B 1Y 2A 2B 2Y GND
7408
14 13 12 11 10 9 8
1 2 3 4 5 6 7
VCC 2D 2C NC 2B 2A 2Y
1A 1B NC 1C 1D 1Y GND
7422
14 13 12 11 10 9 8
1 2 3 4 5 6 7
VCC 1C 1Y 3C 3B 3A 3Y
1A 1B 2A 2B 2C 2Y GND
7411
14 13 12 11 10 9 8
1 2 3 4 5 6 7
VCC 6A 6Y 5A 5Y 4A 4Y
1A 1Y 2A 2Y 3A 3Y GND
7404
14 13 12 11 10 9 8
1 2 3 4 5 6 7
VCC 4B 4A 4Y 3B 3A 3Y
1A 1B 1Y 2A 2B 2Y GND
7432
14 13 12 11 10 9 8
1 2 3 4 5 6 7
VCC NC H G NC NC Y
A B C D E F GND
7430
14 13 12 11 10 9 8
1 2 3 4 5 6 7
VCC 4B 4A 4Y 3B 3A 3Y
1A 1B 1Y 2A 2B 2Y GND
7486
Figure 20.32 Some SSI Chips. Pin layouts from The TTL Data Book for Design Engineers,copyright © 1976 Texas Instrument Incorporated.Jan2014 Computer Architecture 75
NKK-HUST
2.4. Mạch tổ hợp n Mạch logic là mạch bao gồm:
n Các đầu vào (Inputs) n Các đầu ra (Outputs) n Đặc tả chức năng (Functional specification) n Đặc tả thời gian (Timing specification)
n Các kiểu mạch logic: n Mạch logic tổ hợp (Combinational Logic)
n Mạch không nhớ n Đầu ra được xác định bởi các giá trị hiện tại của đầu vào
n Mạch logic dãy (Sequential Logic) 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
của đầu vào Jan2014 Computer Architecture 76
Bài giảng Kiến trúc máy tính Jan2014
Nguyễn Kim Khánh DCE-HUST 20
NKK-HUST
Mạch tổ hợp
n Mạch tổ hợp là mạch logic trong đó đầu ra chỉ phụ thuộc đầu vào ở thời điểm hiện tại.
n Là mạch không nhớ và được thực hiện bằng các cổng logic cơ bản
n Mạch tổ hợp có thể được định nghĩa theo ba cách: n Bảng thật n Dạng sơ đồ n Phương trình Boole
Jan2014 Computer Architecture 77
NKK-HUST
Ví dụ
CABBCACBAF ++=
A B C F 0 0 0 0 1 1 1 1
0 0 1 1 0 0 1 1
0 1 0 1 0 1 0 1
0 0 1 1 0 0 1 0
11.3 / COMBINATIONAL CIRCUITS 371
There are three combinations of input values that cause F to be 1, and if any one of these combinations occurs, the result is 1. This form of expression, for 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,
F = 1A B C2 # 1A B C2 # 1A B C2 # 1A B C2 # 1A B C2This can be rewritten using a generalization of DeMorgan’s theorem:
(X # Y # Z) = X + Y + Z
Table 11.3 A Boolean Function of Three Variables
A B C F
0 0 0 0
0 0 1 0
0 1 0 1
0 1 1 1
1 0 0 0
1 0 1 0
1 1 0 1
1 1 1 0
A B C
F
Figure 11.4 Sum-of-Products Implementation of Table 11.3
Jan2014 Computer Architecture 78
NKK-HUST
Bộ dồn kênh (Multiplexer-MUX)
n 2n đầu vào dữ liệu n n đầu vào chọn n 1 đầu ra n Đầu vào chọn (S) xác định đầu vào nào (D) sẽ được nối với đầu ra (F).
S2 S1 F
0 0 1 1
0 1 0 1
D0 D1 D2 D3
380 CHAPTER 11 / DIGITAL LOGIC
NAND AND NOR IMPLEMENTATIONS Another consideration in the implementation of Boolean functions concerns the types of gates used. It is sometimes desirable to implement a Boolean function solely with NAND gates or solely with NOR gates. Although this may not be the minimum-gate implementation, it has the advantage of regularity, which can simplify the manufacturing process. Consider again Equation (11.3):
F = B(A + C)
Because the complement of the complement of a value is just the original value,
F = B(A + C) = (AB + (BC)
Applying DeMorgan’s theorem,
F = (AB)•(BC)
which has three NAND forms, as illustrated in Figure 11.11.
Multiplexers
The multiplexer connects multiple inputs to a single output. At any time, one of the inputs is selected to be passed to the output. A general block diagram representation is shown in Figure 11.12. This represents a 4-to-1 multiplexer. There are four input lines, labeled D0, D1, D2, and D3. One of these lines is selected to provide the
AB
BC
F
Figure 11.11 NAND Implementation of Table 11.3
D0
D1
D2
S2 S1
D3
F4-to-1MUX
Figure 11.12 4-to-1 Multiplexer Representation
Jan2014 Computer Architecture 79
NKK-HUST
Thực hiện MUX bốn đầu vào
11.3 / COMBINATIONAL CIRCUITS 381
output signal F. To select one of the four possible inputs, a 2-bit selection code is needed, and this is implemented as two select lines labeled S1 and S2.
An example 4-to-1 multiplexer is defined by the truth table in Table 11.7. This is a simplified form of a truth table. Instead of showing all possible combinations of input variables, it shows the output as data from line D0, D1, D2, or D3. Figure 11.13 shows an implementation using AND, OR, and NOT gates. S1 and S2 are connected to the AND gates in such a way that, for any combination of S1 and S2, three of the AND gates will output 0. The fourth AND gate will output the value of the selected line, which is either 0 or 1. Thus, three of the inputs to the OR gate are always 0, and the output of the OR gate will equal the value of the selected input gate. Using this regular organization, it is easy to construct multiplexers of size 8-to-1, 16-to-1, and so on.
Multiplexers are used in digital circuits to control signal and data routing. An example is the loading of the program counter (PC). The value to be loaded into the program counter may come from one of several different sources:
D0
D1
D2
D3
S1S2
F
Figure 11.13 Multiplexer Implementation
Table 11.7 4-to-1 Multiplexer Truth Table
S2 S1 F
0 0 D0
0 1 D1
1 0 D2
1 1 D3
Jan2014 Computer Architecture 80