Bài giảng Kiến trúc máy tính - Trường Đại học Bách khoa Hà Nội

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

File đính kèm:

  • pdfbai_giang_kien_truc_may_tinh_truong_dai_hoc_bach_khoa_ha_noi.pdf