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 đủ
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:
- bai_giang_kien_truc_may_tinh_truong_dai_hoc_bach_khoa_ha_noi.pdf