2. GIỚI THIỆU
3.1. CÁC CỔNG VÀ ĐẠI SỐ LOGIC
3.2. CÁC MẠCH LOGIC SỐ CƠ BẢN
Mạch tích hợp
Các mạch tổ hợp
Tổng quát
Mạch cộng
Bộ dồn kênh
Bộ phân kênh
Mạch giải mã/mạch mã hoá
3.3 BỘ NHỚ
3.4 CHIP VÀ HỆ THỐNG BUS
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 2 / 50
3. CÁC CỔNG CƠ BẢN
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 3 / 50
4. Hàm Logic
Hàm Logic có thể được biểu diễn dưới một
số cách như sau:
Bảng chân lý
Biểu thức Logic
Biểu đồ
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 4 / 50
5. Hàm Logic
Hàm biểu diễn 3 giá trị đầu vào Dạng biểu diễn của hàm
F=AB+BC+AC
A B C F
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 1
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 5 / 50
6. Hàm Logic tương đương – VD
Ba mạch a,b,c đều đưa ra kết quả : F = A B
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 6 / 50
7. Hàm Logic tương đương
Kiểm tra sự tương đương giữa các mạch?
Sử dụng bảng chân lý
Với mọi tổ hợp đầu vào, nếu có cùng kết
quả đầu ra hai hàm tương đương
Chỉ có thể áp dụng khi các hàm logic có
số biến ít
Sử dụng đại số Bool
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 7 / 50
8. Các mạch logic số cơ bản
Mạch tích hợp
Mạch tổ hợp
Mạch số học
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 8 / 50
9. Các mạch tích hợp – IC
Là mạch mà một đơn vị có nhiều cổng
Thường phân loại chip theo số lượng cổng:
Ký hiệu Số cổng/chip
SSI (Small Scale Integrated) 1-10
MSI (Medium Scale Integrated) 10-100
LSI (Large Scale Integrated) 100-100.000
VLSI (Very Large Scale Integrated) > 100.000
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 9 / 50
10. Các mạch tổ hợp
Là mạch có nhiều đầu vào và nhiều đầu ra, các giá
trị ra được xác định bằng các giá trị đầu vào tại thời
điểm hiện thời
Mạch giải mã, mạch mã hóa, mạch ưu tiên, mạch
dồn kênh, mạch phân kênh, mạch cộng .v..v
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 10 /
11. Bộ dồn kênh
(Multiplexers)
Multiplexer
4-data input MUX
2 đầu vào dữ liệu
n
n lối vào điều khiển
Một đầu ra
Dựa vào tín hiệu điều
khiển để xác định đầu
vào nào sẽ là tín hiệu
đưa ra
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 11 /
12. Bộ dồn kênh
(Multiplexers)
I0
I1
I2
I3
S1 So
Bộ dồn kênh cho 4 đường dữ liệu vào
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 12 /
13. Bộ phân kênh
(Demultiplexers)
• Có một đầu vào
• Đầu ra là một trong số 2n đầu ra tuỳ theo tín hiệu điều khiển
O0
C1 C0
O1
0 0 O0=I
0 1 O1=I I
O2
1 0 O2=I
1 1 O3=I O3
C1 C0
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 13 /
14. Bộ phân kênh
(Demultiplexers)
74138 có thể được sử dụng như bộ phân kênh và bộ giải
mã
a. Bộ dồn kênh b. Bộ phân kênh
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 14 /
15. Mạch giải mã (Decoder)
Mạch được ứng dụng vào giải mã chọn địa chỉ
Đầu vào: n bit
Đầu ra: 2n (lựa chọn 1 trong số các đầu ra)
Ví dụ: n=3, 2n = 8
I0 I1 I2 In-2 In-1 n đầu vào
O 0 O1 O2 O2n-1 2n đầu ra
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 15 /
16. Mạch giải mã (Decoder)
Xét I0=1,I1=1,I2=1. Theo sơ đồ ta có O7=111.
Những chân xuất từ O0,...,O6 là 000 do có cổng NOT nên biến 1 0,
01
I2 I1 I0
I2 I1 I0
0 0 0 O0
0 0 1 O1
0 1 0 O2
0 1 1 O3
1 0 0 O4
1 0 1 O5
1 1 0 O6
1 1 1 O7
O7 O6 O5 O4 O3 O2 O1 O0
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 16 /
17. Mạch giải mã (Decoder)
74138 có thể được sử dụng như bộ phân kênh và bộ giải
mã
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 17 /
18. Mạch giải mã (Decoder)
Mạch Decoder 2 - 4
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 18 /
19. Mạch giải mã (Decoder)
Logic function
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 19 /
20. Mạch giải mã (Decoder)
74139: Dual decoder chip
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 20 /
21. Mạch mã hóa (Encoder)
Ngược với mạch giải mã
Đầu vào: 2n
Đầu ra: n
Ví dụ: n=3, k=2n = 8
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 21 /
22. Mạch mã hóa 8 đường ra 3 đường
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 22 /
23. Mạch mã hóa (Encoder)
8 cổng vào chuyển thành 3 cổng ra dạng số nhị phân 3
bit. Chỉ có 1 cổng vào ở mức tích cực tương ứng với chỉ
một tổ hợp mã số 3 cổng ra
Từ bảng bên, ta có
Y0 = I1 + I3 + I5 + I7
Y1 = I2 + I3 + I6 + I7
Y2 = I4 + I5 + I6 +I7
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 23 /
24. Mạch mã hóa (Encoder)
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 24 /
25. Mạch mã hóa (Encoder)(4-2)
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 25 /
26. Mạch mã hóa (Encoder)
Priority encoders
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 26 /
27. Bộ so sánh
• So sánh 2 từ nhị phân bằng cách so sánh các cặp
bit tương ứng. VD: A = A3A2A1A0, B = B3B2B1B0
• Đầu ra A=B sẽ có giá trị 1 nếu 2 từ đưa vào là
bằng nhau, ngược lại sẽ có giá trị 0.
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 27 /
28. Các mạch số học
Bộ dịch
Bộ cộng
Bộ số học và logic ALU
Bộ tạo tín hiệu thời gian (clock)
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 28 /
29. Bộ dịch - shifter
VD: Bộ dịch bit 8 bit:
8 đầu vào: D0 .. D7; 8 đầu ra: S0 .. S7
C xác định hướng dịch chuyển của các bit, nếu C=1: dịch
phải một vị trí, nếu C=0: dịch trái một vị trí
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 29 /
30. Bộ cộng (Adders)
Bộ cộng nửa (Half-adder)
Cộng hai bit
Trả lại tổng và số nhớ carry out
Không có lối vào cho số nhớ carry – in nên không
dùng để cộng các bit bậc cao hơn 0
Bộ cộng đủ (Full-adder)
Cộng hai bit vào và bit nhớ carry – in
Trả lại tổng và số nhớ carry out
Cho phép xây dựng bộ cộng có kích thước lớn N
bit
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 30 /
34. Bộ số học và logic - ALU
VD:
F0F1=00: A AND B
F0F1=01: A OR B
F0F1=10: NOT B (đảo B)
F0F1=11: A + B
11
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 34 /
35. Bộ số học và logic - ALU
11
ALU 8-bit được xây dựng từ 8 bộ ALU kiểu bit-slices
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 35 /
36. Mạch tạo xung Clock
Các mạch của máy tính được điều khiển bởi một mạch tạo
các chuỗi xung tuần hoàn gọi là xung Clock
Xung Clock xác định các chu kỳ của máy tính
Ví dụ:
Một chu kỳ được ấn định để thực hiện một vi lệnh
Các ngõ vào của ALU phải có giá trị ổn định khi kết quả ngõ ra được lưu
trữ. 1 2 3 4 5 6 7 8 9 10 12
11
Q0
delay
delay Q1
delay
Q2
Q3
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 36 /
37. 3.3 Bộ nhớ
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 37 /
38. Thanh ghi chốt RS
Lối vào
S (set): Thiết lập Q=1
R (Reset): Xoá Q=0
Lối ra: Q và Q
R=S=0: Trong khi Thanh ghi RS đang ở một trong 2
trạng thái cân bằng ổn định, Q sẽ không thay đổi
S=1, R=0 trong khi Q=0Q=1
R=1, S=0 Q=0 không phụ thuộc trạng thái trước
đó
R=S=1 : Cấm
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 38 /
39. Thanh ghi chốt RS hoạt động theo nhịp xung
đồng hồ
Sử dụng thêm tín hiệu clock
Mục đích: làm thanh ghi RS chỉ có thể chuyển trạng
thái vào những khoảng thời gian xác định
Bình thường clock = 0: không thể chuyển trạng thái
Clock = 1: thanh ghi phản ứng theo S và R
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 39 /
40. Thanh ghi chốt D hoạt động theo nhịp xung
đồng hồ
Mục đích: loại trừ tổ hợp R = S = 1 bị cấm
D=1, clock = 1: Q =1
D=0, clock = 1: Q = 0
Qn+1 = Dn
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 40 /
41. 3.3.2 Flip-flop và thanh ghi
3.3.2.1 Flip-flop D
Flip-flop D là một biến thể của thanh ghi chốt D, có khả
năng trong khoảng thời gian ứng với xung đồng hồ rất ngắn
trên lối vào clock, ghi nhận được giá trị ở lối vào D
Thời gian kéo dài xung không quan trọng, chỉ cần sự
chuyển trạng thái xảy ra đủ nhanh.
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 41 /
42. ... 3.3.2.1 Flip-flop D
Ký hiệu chuẩn của một số thanh ghi chốt và flip-flop.
Hình a) là thanh ghi chốt D, chuyển trạng thái khi tín hiệu CK=1,
bình thường CK=0. (chuyển mạch theo mức.)
Hình b) là thanh ghi chốt D, chuyển trạng thái khi tín hiệu CK=0,
bình thường CK=1. (chuyển mạch theo mức.)
Hình c) và d) là các Flip-flop, ở lối vào clock của chúng được vẽ ký
hiệu đầu mũi tên ‘>‘.
Hình (e): Nhiều thanh ghi chốt và flip-flop ngoài đầu ra Q còn có
đầu ra và có thêm các đầu vào Set hoặc Preset (để thiết lập Q=1)
và Reset hay Clear (để thiết lập Q=0)
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 42 /
43. ... 3.3.2.1 Flip-flop D
Hình a: chip có chứa 2 flip-flop D độc lập với nhau,
có các chân clear và preset.
Hình b: một loại chip khác chứa 8 flip-flop D
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 43 /
44. Một số loại Flip-Flop điển hình
Tìm hiểu và mô tả chi tiết hoạt động (bao gồm
cả bảng trạng thái) của một số loại Flip-Flop
sau
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 44 /
45. 3.3.2.2 Thanh ghi - Register
Là một nhóm các phần tử nhớ cơ bản cùng hoạt
động như một đơn vị.
Thanh ghi thực hiện các nhiệm vụ: nhớ, tính toán
số học - dịch trái, dịch phải hoặc các thao tác khác
phức tạp hơn nữa.
Các thanh ghi làm nhiệm vụ nhớ thường được xây
dựng từ các flip-flop, chúng cần có khả năng hoạt
động ở tốc độ cao hơn các thanh ghi được sử
dụng trong bộ nhớ chính.
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 45 /
46. 3.3.2.2 Thanh ghi - Register
Thanh ghi đệm 4-bit, sử dụng 4 flip-flop D.
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 46 /
47. 3.3.3 Bộ nhớ ROM
ROM (Read Only Memory) là bộ nhớ giữ thông tin cố
định, không thay đổi nội dung ngay cả khi ngắt nguồn
điện nuôi:
ROM mặt nạ (Maskable ROM)
ROM có thể nạp chương trình (PROM - Programmable
ROM)
ROM có thể xoá (Erasable ROM)
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 47 /
48. 3.3.3.1 ROM mặt nạ
Thường được tổ chức
dưới dạng ma trận.
Có đi-ốt tại vị trí (i,j): 1
Không có: 0
Mỗi hàng i: 1 word
Dây địa chỉ Ai được sử
dụng để chọn lấy một từ
Đưa nội dung ra ngoài:
D3D2D1D0.
Hình 3-25b: một "ô
nhớ“
Hình 3-25c: bảng chân
lý
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 48 /
49. 3.3.3.2 PROM - ROM có thể nạp chương
trình
Giống ROM mặt nạ:
Các phần tử nhớ được bố trí ở giao
điểm của các dây hàng và cột
Một cầu chì sẽ đóng vai trò của
công tắc có hai trạng thái là đóng,
mở.
Khác ROM mặt nạ:
Chip PROM khi xuất xưởng chưa
được ghi nội dung, tất cả các cầu
chì đều chưa đứt.
NSD có thể tự ghi nội dung bằng
một thiết bị chuyên dụng – ROM
Writer.
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 49 /
50. 3.3.3.3 EPROM - ROM có thể xoá và ghi lại
Phần tử nhớ là 1 transistor MOS, có 3 cực: S
(nguồn), D (góp), Gốc).
Giá thành cao hơn PROM.
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 50 /
51. Tổ chức bộ nhớ
Phần tử nhớ là các mạch
D-latch
Tổ hợp các bits thành các
words
Điều khiển Điều khiển
Dữ liệu Dữ liệu
Chọn Ô nhớ Chọn Ô nhớ
vào ra
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 51 /
53. Tổ chức bộ nhớ
Tổ chức chip nhớ
A0 D0
A1 D1
.
. CHIP .
. .
NHỚ .
.
An - 1 .
CS Dm - 1
WE OE
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 53 /
54. Tổ chức bộ nhớ
Tổ chức chip nhớ
Các đường địa chỉ: A0 ÷ An - 1 → có 2n ngăn nhớ.
Các đường dữ liệu: D0 ÷ Dm - 1 → độ dài ngăn nhớ là m
bit.
Dung lượng chip nhớ: 2n x m bit A0 D0
A D
Các đường điều khiển:
1
. .
1
. CHIP .
Tín hiệu chọn chip: CS (Chip Select) . .
Tín hiệu điều khiển đọc: RD / OE nA -1 . NHỚ .
CS D -1
m
Tín hiệu điều khiển ghi: WR / WE
WE OE
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 54 /
55. Tổ chức của DRAM
Dùng n đường địa chỉ dồn kênh → cho phép truyền
2n bit địa chỉ
Tín hiệu chọn địa chỉ hàng RAS (Row Address
Select)
Tín hiệu chọn địa chỉ cột CAS (Column Address
Select)
Dung lượng của DRAM: 2n x m bit
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 55 /
56. Thiết kế module nhớ bán dẫn
Đặt vấn đề
Dung lượng chip nhớ là 2n x m bit
Cần thiết kế để tăng dung lượng:
Tăng độ dài ngăn nhớ (tăng m)
Tăng số lượng ngăn nhớ (tăng n)
Kết hợp cả hai loại (tăng m và n)
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 56 /
57. Thiết kế module nhớ bán dẫn
Tăng độ dài ngăn nhớ (tăng m)
Ví dụ 1:
Cho chip nhớ SRAM: 8K x 4 bit
Hãy thiết kế modul nhớ 8K x 8 bit
Dung lượng chip nhớ: ?
Chip nhớ có: ? đường địa chỉ và ? đường dữ
liệu
Modul nhớ cần có:? đường địa chỉ và ? đường
dữ liệu
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 57 /
58. Thiết kế module nhớ bán dẫn
Tăng độ dài ngăn nhớ (tăng m)
Ví dụ 1:
Cho chip nhớ SRAM: 8K x 4 bit
Hãy thiết kế modul nhớ 8K x 8 bit
Giải:
Dung lượng chip nhớ: 213 x 4 bit
Chip nhớ có:
13 đường địa chỉ (A0 ÷ A12), 4 đường dữ liệu (D0 ÷ D3)
Modul nhớ cần có:
13 đường địa chỉ (A0 ÷ A12), 8 đường dữ liệu (D0 ÷ D7)
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 58 /
59. Thiết kế module nhớ bán dẫn
A0 ÷ A12
A0 ÷ A12 A0 ÷ A12
8K x 4 bit 8K x 4 bit D4÷D7
D0 ÷ D 3 D0 ÷ D 3 D0÷D3
CS CS
WE OE WE OE
CS
WE
OE
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 59 /
60. Thiết kế module nhớ bán dẫn
Tăng độ dài ngăn nhớ (tăng m)
Bài toán tăng độ dài tổng quát:
Cho chip nhớ 2n x m bit
Cần thiết kế modul nhớ 2n x (k.m) bit
⇒ Cần ghép nối k chip nhớ
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 60 /
61. Thiết kế module nhớ bán dẫn
Tăng số lượng ngăn nhớ (tăng n)
Ví dụ 2:
Cho chip nhớ SRAM: 4K x 4 bit
Hãy thiết kế modul nhớ 8K x 4 bit
:
Dung lượng chip nhớ: ?
Chip nhớ có:
? đường địa chỉ và ? đường dữ liệu
Modul nhớ cần có:
? đường địa chỉ, ? đường dữ liệu
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 61 /
62. Thiết kế module nhớ bán dẫn
Tăng số lượng ngăn nhớ (tăng n)
Ví dụ 2:
Cho chip nhớ SRAM: 4K x 4 bit
Hãy thiết kế modul nhớ 8K x 4 bit
Giải:
Dung lượng chip nhớ: 212 x 4 bit
Chip nhớ có:
12 đường địa chỉ (A0 ÷ A11), 4 đường dữ liệu (D0 ÷ D3)
Modul nhớ cần có:
13 đường địa chỉ (A0 ÷ A12), 4 đường dữ liệu (D0 ÷ D3)
212+1=213 ý tưởng xây dựng mạch như thế nào?, sử
dụng thêm mạch gì?
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 62 /
63. Thiết kế module nhớ bán dẫn
A0÷A11
A0 ÷ A11
D0÷D3
CS
A12 WE OE
A Y0
D0 ÷ D 3
A0÷A11
CS G Y1
D0÷D3
CS
G A Y1 Y0
WE OE
0 0 0 1
0 1 1 0
WE
1 X 1 1 OE
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 63 /
64. Thiết kế module nhớ bán dẫn
Tăng số lượng ngăn nhớ (tăng n) tổng quát
Cho chip nhớ 2n x m bit
Cần ghép nối modul nhớ: 2k+n x m bit
⇒ Cần ghép nối 2k chip
và phải dùng bộ giải mã k: 2k (k → 2k)
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 64 /
65. Thiết kế module nhớ bán dẫn
Kết hợp cả hai loại (tăng m và n)
Ví dụ 3:
Cho chip nhớ SRAM: 8K x 4 bit
Hãy thiết kế modul nhớ 16K x 8 bit
Dung lượng chip nhớ: ?
Chip nhớ có: ? đường địa chỉ, ? đường dữ liệu
Modul nhớ cần có: ? đường địa chỉ , ? đường
dữ liệu
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 65 /
66. Thiết kế module nhớ bán dẫn
Kết hợp cả hai loại (tăng m và n)
Ví dụ 3:
Cho chip nhớ SRAM: 8K x 4 bit
Hãy thiết kế modul nhớ 16K x 8 bit
Giải:
Dung lượng chip nhớ: 213 x 4 bit
Chip nhớ có:
13 đường địa chỉ (A0 ÷ A12), 4 đường dữ liệu (D0 ÷ D3)
Modul nhớ cần có:
14 đường địa chỉ (A0 ÷ A13), 8 đường dữ liệu (D0 ÷ D7)
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 66 /
67. Thiết kế module nhớ bán dẫn
A0÷A12
A0÷A12 A0÷A12
D4÷D7
D0÷D3 D0÷D3
D0÷D3
CS CS
A13 WE OE WE OE
A Y0
CS G Y1 A0÷A12 A0÷A12
D4÷D7
D0÷D3 D0÷D3
D0÷D3
CS CS
WE OE WE OE
WE
OE
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 67 /
68. Thiết kế module nhớ bán dẫn
Bài toán tăng số lượng và độ dài tổng quát:
Cho chip nhớ 2n x m bit
Cần ghép nối modul nhớ: 2p+n x (q.m) bit
⇒ Cần ghép nối q.2p chip thành 2p bộ, mỗi bộ
q chip và phải dùng bộ giải mã p: 2p (p → 2p)
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 68 /
69. Không gian nhớ
Segment (16 bit)
Offset (16) n
216 = 64K
xxxx xxxx xxxx xxxx 0000 220 =
1MB
Tghi 16 bit dịch trái 4 không
gian
xxxx xxxx xxxx xxxx xxxx nhớ
20 bit
x
Địa chỉ vật lý = segment x 24 + offset x +1
16 byte
• segment = 16 bit số lượng segment: 216 = 64k đoạn
• offset = 16 bit kích thước tối đa của đoạn: 64KB
Không gian logic: 216 x 216 = 64 kđoạn x 64kB ~ 4G >> 1M vật lý
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 69 /
70. Giải mã địa chỉ
Lý do cần giải mã địa chỉ khi ghép nối các vi mạch nhớ với VXL:
Gán địa chỉ cụ thể (trong toàn bộ không gian địa chỉ
của bộ nhớ) cho từng mạch nhớ.
Nếu không có bộ giải mã địa chỉ thì chỉ nối được một
phần vi mạch nhớ tới bộ VXL
VD: Khi ghép nối vi mạch nhớ EPROM 2716 2Kx8 tới
bộ VXL 8088.
Số chân địa chỉ của 8088: ?
Số chân địa chỉ của 2716: ?
Dung lượng tối đa mà 8088 có thể sử dụng khi dùng:
Bộ giải mã
Không dùng bộ giải mã
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 70 /
71. Giải mã địa chỉ
Lý do cần giải mã địa chỉ khi ghép nối các vi mạch nhớ với VXL:
Gán địa chỉ cụ thể (trong toàn bộ không gian địa chỉ
của bộ nhớ) cho từng mạch nhớ.
Nếu không có bộ giải mã địa chỉ thì chỉ nối được một
phần vi mạch nhớ tới bộ VXL
VD: Khi ghép nối vi mạch nhớ EPROM 2716 2Kx8 tới
bộ VXL 8088.
Số chân địa chỉ của 8088: 20 chân
Số chân địa chỉ của 2716: 11 chân
bộ VXL 8088 sẽ gửi địa chỉ trên 20 bit trên bus địa chỉ. Nếu
chỉ nối 11 chân địa chỉ của 8088 với 2716 thì 8088 chỉ nhìn
thấy 2KB bộ nhớ thay vì 1MB như nó có thể
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 71 /
72. Giải mã địa chỉ - Bộ giải mã cổng NAND
Sử dụng 1 cổng NAND để giải mã
VD: giải mã địa chỉ cho vi mạch nhớ
EPROM 2716 2Kx8 ghép nối với 8088
Phân tích, vẽ sơ đồ mạch?
Số đường địa chỉ, đường dữ liệu của chip nhớ?
Số đường địa chỉ của 8088?
Phương pháp nối?
Vẽ sơ đồ mạch.
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 72 /
73. Giải mã địa chỉ - Bộ giải mã cổng NAND
VD: giải mã địa chỉ cho vi mạch nhớ EPROM 2716
2Kx8 ghép nối với 8088
Phân tích:
EPROM 2716 2Kx8 11 đường địa chỉ: A10 – A0, 8
đường dữ liệu D7 – D0
8088 có 20 đường địa chỉ: A19-A0
Các chân từ A10-A0 của 8088 được nối với đầu vào
địa chỉ từ A10 – A0 của 2716
Các chân A19 – A11 được nối với đầu vào của bộ
giải mã cổng NAND
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 73 /
74. Giải mã địa chỉ - Bộ giải mã cổng NAND
D7
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 74 /
75. Giải mã địa chỉ - Bộ giải mã cổng NAND
Đầu ra NAND = 0 khi các chân A19 – A11 = 1 và
IO/M =0.
20 bit địa chỉ của các ô nhớ trong EPROM có dạng:
1111 1111 1XXX XXXX XXXX
Khoảng địa chỉ dành cho EPROM là từ:
1111 1111 1000 0000 0000 = FF800H
Đến:
1111 1111 1111 1111 1111 = FFFFF H
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 75 /
76. Giải mã địa chỉ - Bộ giải mã 74LS138
Mạch giải mã 74LS138
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 76 /
77. Giải mã địa chỉ - Bộ giải mã 74LS138
Bảng chân lý của 74LS138
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 77 /
78. Giải mã địa chỉ - Bộ giải mã 74LS138
Nhận xét:
Tại bất kỳ thời điểm nào cũng chỉ có một
đầu ra bằng 0
Để bộ giải mã hoạt động thì G2A = 0,
G2B=0, G1=1
A, B, C sẽ chọn đầu ra nào =0. Đầu ra
bộ giải mã được nối với CE hay CS của
vi mạch nhớ
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 78 /
79. Giải mã địa chỉ - Bộ giải mã 74LS138
Ví dụ: Giải mã địa chỉ cho bộ nhớ 64Kx8 (gồm 8
EPROM 2764 – 8Kx8) trong hệ VXL 8088
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 79 /
80. Giải mã địa chỉ - Bộ giải mã 74LS138
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 80 /
81. Giải mã địa chỉ - Bộ giải mã 74LS138
Nhận xét:
Các đầu ra của 74LS138 được nối với CE
Tại bất kỳ thời điểm nào cũng chỉ có một đầu ra
bằng 0 chỉ có một vi mạch nhớ được chọn và
gửi dữ liệu của nó trên bus dữ liệu khi RD = 0
Khi A19 – A16 đều =1, IO/M=0 G2A=0, G2B=0,
G1=1 kích hoạt bộ giải mã
Khi bộ giải mã hoạt động A15 – A13 xác định đầu
ra nào = 0, và tương ứng một vi mạch nhớ sẽ
được chọn
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 81 /
82. Giải mã địa chỉ - Bộ giải mã 74LS138
Dạng địa chỉ một ô nhớ được giải mã:
1111 XXXX XXXX XXXX XXXX
Khoảng địa chỉ ô nhớ từ:
1111 0000 0000 0000 0000 = F0000H
Đến:
1111 1111 1111 1111 1111= FFFFFH
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 82 /
83. Giải mã địa chỉ - Bộ giải mã 74LS138
Khoảng địa chỉ của vi mạch nhớ nối tới đầu ra
của bộ giải mã
VD: xác định khoảng địa chỉ của vi mạch nhớ
nối tới đầu ra 0, vi mạch này được chọn khi
CBA = 000
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 83 /
84. Giải mã địa chỉ - Bộ giải mã 74LS138
Dạng địa chỉ vi mạch nhớ:
1111 000X XXXX XXXX XXXX
Khoảng địa chỉ
1111 0000 0000 0000 0000 = F0000H
Đến: 1111 0001 1111 1111 1111 = F1FFFH
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 84 /
85. Giải mã địa chỉ - Bộ giải mã 74LS138
Về nhà: Đọc về bộ giải mã kép 2- 4 (74LS139)
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 85 /
86. Bộ nhớ đệm
(Bộ nhớ Cache)
Thiết bị có truy cập dữ liệu hay thực thi các
chương trình trực tiếp từ ổ đĩa cứng không?
Tại sao bộ nhớ chính không được thiết kế để có
thể đạt được tốc độ như thanh ghi ?
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 86 /
87. Ý tưởng chung:
Khi cần truy cập một từ, từ đó sẽ được chuyển từ bộ nhớ
lớn tốc độ thấp (bộ nhớ chính - main memory) về bộ nhớ
nhỏ tốc độ cao (bộ nhớ cache), để lần sau nếu được sử
dụng thì có thể truy cập nhanh hơn.
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 87 /
88. Bộ nhớ đệm
(Bộ nhớ Cache)
Là một lượng nhỏ các đơn vị nhớ tốc độ cao
Nằm giữa bộ nhớ chính và CPU
Mục đích là làm tăng tốc độ xử lý
Có thể nằm trong chip CPU hoặc ngay trên bản mạch
CPU
Cache hoạt động theo sự điều khiển của vi chương
trình
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 88 /
89. Bộ nhớ đệm
(Bộ nhớ Cache)
Bộ nhớ cache thường là một phân đoạn dùng
với bus riêng được nối với CPU
Dùng để lưu giữ dữ liệu và mã lệnh mà CPU
hay truy cập đến
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 89 /
90. Bộ nhớ đệm
(Bộ nhớ Cache)
Phân mức Cache
Cache L1 (level 1)
Cache L2 (level 2)
Một số máy tính hiện đại còn có cache L3 (vd:
CPU Pentium 4 Extreme Edition )
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 90 /
91. Bộ nhớ đệm
(Bộ nhớ Cache)
Ở thế hệ máy cũ, L2 còn nằm trên mainboard
Ngày nay, L1, L2 đều được tích hợp trên CPU
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 91 /
92. Bộ nhớ đệm
(Bộ nhớ Cache)
Trên CPU đa lõi:
Với các CPU dual-core Pentium D và AMD được
xây dựng trên kiến trúc K8, mỗi lõi của CPU lại
có Cache nhớ L2 riêng của chính nó. Chính vì
vậy mỗi một lõi làm việc như nó đang làm việc
cho một CPU độc lập.
Các CPU dual-core của Intel được xây dựng
trên kiến trúc Core và Pentium M thì hai Cache
nhớ L2 lại có thể được chia sẻ giữa hai lõi
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 92 /
93. Bộ nhớ đệm
(Bộ nhớ Cache)
Hoạt động của bộ nhớ Cache
CPU yêu cầu nội dung của một vùng nhớ nào đó
Kiểm tra cache xem có nội dung đó chưa?
Nếu có, đọc ngay từ cache (Hit Cache)
Nếu không có, đọc khối nhớ từ bộ nhớ chính và
cache (miss cache)
Sau đó chuyển từ cache vào CPU
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 93 /
94. Bộ nhớ đệm
(Bộ nhớ Cache)
Tổ chức Cache
Nguyên lý cục bộ về không gian: khi một phần tử
nào đó được truy xuất thì các phần tử tiếp theo
cũng có thể được truy xuất
Ví dụ: Các chỉ thị trong chương trình thường được truy
cập tuần tự
Truy cập một phần tử của mảng
Nguyên lý cục bộ về thời gian: nếu một phần tử
nào đó được truy xuất thì nó có thể được truy xuất
lại trong một khoảng thời gian ngay sau đó
Ví dụ: vòng lặp của chương trình
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 94 /
95. Bộ nhớ đệm
(Bộ nhớ Cache)
Phân chia bộ nhớ thành các khối.
Bộ nhớ chính lưu trữ theo các word theo một địa
chỉ tuần tự
Cache lại không sắp xếp như vậy
Vì thế lược đồ địa chỉ của bộ nhớ chính được sử
dụng để xác định các khối của từ nhớ và các
phương thức định vị của khối nhớ đó
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 95 /
96. Bộ nhớ đệm
(Bộ nhớ Cache)
Cấu trúc bộ nhớ cache
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 96 /
97. Bộ nhớ đệm
(Bộ nhớ Cache)
Cache:
Chia thành các Line: Tag và Block
Tag: lưu địa chỉ của ô nhớ được chuyển vào cache từ main
memmory (RAM).
Block lưu dữ liệu của block chuyển từ MainMem vào.
Main Memory:
Chiathành các block có kích thước bằng block trên Cache.
Trong mỗi block lại được chia thành k word.
Vậy:
Trên MainMem có 2n word => số block = 2n/k
Kích thước của cache = C * k word
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 97 /
98. Bộ nhớ đệm
(Bộ nhớ Cache)
Phân chia bộ nhớ thành các khối.
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 98 /
99. Bộ nhớ đệm
(Bộ nhớ Cache)
Nhận xét: Trong hình trên:
Cần sử dụng bao nhiêu bit để biểu diễn địa chỉ bộ
nhớ?
Một block có bao nhiêu word?
Cần sử dụng bao nhiêu bit để xác định vị trí word?
Cần bao nhiêu bit để biểu diễn block_id?
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 99 /
100. Bộ nhớ đệm
(Bộ nhớ Cache)
Nhận xét: Trong hình trên:
Cần sử dụng 20 bit để biểu diễn địa chỉ bộ nhớ
Một block có 4 word
Cần sử dụng 2 bit để xác định vị trí word
Còn 20-2=18 bit để biểu diễn block_id
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 100 /
101. Bộ nhớ đệm
(Bộ nhớ Cache)
Một địa chỉ bộ nhớ sẽ được chia thành 2
phần:
Một để biểu diễn số khối: sử dụng các bit cao để
biểu diễn
Một để xác định vị trí của word trong khối: sử dụng
bit thấp để biểu diễn
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 101 /
102. Bộ nhớ đệm
(Bộ nhớ Cache)
Ví dụ: Chia địa chỉ A5696 theo khối kích thước
4 word. Xác định vị trí word và block id?
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 102 /
103. Bộ nhớ đệm
(Bộ nhớ Cache)
Ví dụ: Chia địa chỉ A5696 theo khối kích thước
4 word
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 103 /
104. Bộ nhớ đệm
(Bộ nhớ Cache)
Ví dụ: Có bao nhiêu khối kích thước 8 word trong
1Gig bộ nhớ?
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 104 /
105. Bộ nhớ đệm
(Bộ nhớ Cache)
Ví dụ: Có bao nhiêu khối kích thước 8 word trong
1Gig bộ nhớ?
8 word: 3bit để xác định vị trí của khối.
Kích thước bộ nhớ là 1Gig (230): cần phải có 30 đường địa
chỉ.
Đã sử dụng 3 đường để biểu diễn vị trí word, còn lại 27
đường để biểu diễn số khối số khối: 227 = 134217728
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 105 /
106. Bộ nhớ đệm
(Bộ nhớ Cache)
Chức năng ánh xạ (Mapping Function)
Ánh xạ trực tiếp
Ánh xạ liên kết
Ánh xạ liên kết thành bộ
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 106 /
107. Bộ nhớ đệm
(Bộ nhớ Cache)
Lý do cần phải ánh xạ:
Bộ nhớ đệm nhanh lưu trữ những dữ liệu có ích tuy nhiên
nó sẽ trở thành vô ích nếu CPU không tìm thấy nó.
Khi truy cập vào dữ liệu hoặc các tập lệnh, CPU lần đầu
tiên tạo ra một địa chỉ bộ nhớ chính.
Nếu dữ liệu đã được sao chép vào bộ nhớ cache, các địa
chỉ của dữ liệu trong bộ nhớ cache không giống như là địa
chỉ chính của bộ nhớ.
Làm thế nào CPU tìm ra dữ liệu khi nó đã được sao chép
vào bộ nhớ đệm?
CPU sử dụng một chương trình ánh xạ "chuyển đổi" các
địa chỉ của bộ nhớ chính vào một vị trí bộ nhớ cache.
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 107 /
108. Bộ nhớ đệm
(Bộ nhớ Cache)
Giả sử, bộ nhớ chính được chia thành n khối, và
cache chứa được m khối (với m<n).
Số lần lấp đầy vào cache = Integer (n/m)
Ví dụ: bộ nhớ chính có kích thước là 128Mg, được
chia thành các khối kích thước là 4. bộ nhớ Cache
có kích thước là 256K, các khối trong Cache cũng
được chia thành các khối có kích thước là 4. Vậy sau
bao nhiêu lần truy xuất thì bộ nhớ chính sẽ lấp đầy
Cache?
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 108 /
109. Bộ nhớ đệm
(Bộ nhớ Cache)
Ví dụ: bộ nhớ chính có kích thước là 128Mg, được
chia thành các khối kích thước là 4. bộ nhớ Cache
có kích thước là 256K, các khối trong Cache cũng
dược chia thành các khối có kích thước là 4. Vậy sau
bao nhiêu lần truy xuất thì bộ nhớ chính sẽ lấp đầy
Cache?
Giải:
Nếu bộ nhớ chính có kích thước là 128Meg (227), kích
thước của khối là 4 (22), vì thế bộ nhớ chính có thể lưu
n= 227-2=225 khối.
Nếu hệ thống Cache lưu trữ được 256K (218) từ nhớ,
Ta có m=218-2=216 khối.
Số lần lấp đầy Cache: n/m=225/216=29=512 lần
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 109 /
110. Bộ nhớ đệm
(Bộ nhớ Cache)
Ánh xạ trực tiếp:
Mỗi Block của BNC chỉ được ánh xạ vào một Line duy nhất:
i = j mod m
i: số hiệu Line trong cache
j: số hiệu Block trong BNC
m: số lượng Line trong cache
Cụ thể: B0 → L0 Bm → L0
B1 → L1 Bm+1 → L1. . .
...
Bm-1 → Lm-1 B2m-1 → Lm-1 . . .
Như vậy
L0 : B0, Bm, B2m, ..., Bnm
L1 : B1, Bm+1, B2m+1, ..., Bnm+1
.. . . . . .
Lm-1: Bm-1, B2m-1, B3m-1, ..., B(n+1)m-1
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 110 /
111. Ánh xạ trực tiếp
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 111 /
112. Ánh xạ trực tiếp
Khi đó, địa chỉ do CPU phát ra gồm 3 trường:
Tag Line Word
t bit r bit w bit
Word: xác định số hiệu ngăn nhớ trong Block (vị trí word
trong block)
⇒ Block (Line) có 2w ngăn nhớ
Line: xác định số hiệu Line để lưu khối trong cache
⇒ Cache có 2r Line, cache chứa 2r + w ngăn nhớ
Tag: xác định vị trí Block trong bộ nhớ
⇒ BNC chứa 2t + r + w ngăn nhớ
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 112 /
113. Ví dụ
Cho máy tính có dung lượng:
BNC = 128 MB, cache = 256 KB, line = 32 byte,
Độ dài ngăn nhớ = 1 byte.
Tìm dạng địa chỉ do BXL phát ra?
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 113 /
114. Ví dụ
Cho máy tính có dung lượng:
BNC = 128 MB, cache = 256 KB, line = 32 byte,
Độ dài ngăn nhớ = 1 byte.
Tìm dạng địa chỉ do BXL phát ra?
Giải: Ta có:
BNC = 128 MB = 27 * 220 byte = 227 byte
Cache = 256 KB = 28 * 210 byte = 218 byte
Line = 32 byte = 25 byte ⇒ w = 5
Số lượng Line trong cache: 218/ 25 = 213 ⇒ r = 13
Số bit của phần Tag: t= 27 - 13 - 5 = 9
9 13 5
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 114 /
115. Ví dụ
Cho máy tính có dung lượng:
BNC = 256 MB, cache = 64 KB, line = 16 byte,
Độ dài ngăn nhớ = 4 byte.
Tìm dạng địa chỉ do BXL phát ra?
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 115 /
116. Ví dụ
Cho máy tính có dung lượng:
BNC = 256 MB, cache = 64 KB, line = 16 byte,
Độ dài ngăn nhớ = 4 byte.
Tìm dạng địa chỉ do BXL phát ra?
Giải: Ta có:
BNC = 256 MB = 228 byte = 228/22 = 226 ng/nhớ
Cache = 64 KB = 216 byte = 216 /22 = 214 ng/nhớ
Line = 16 byte =24/ 22 = 22 ng/nhớ ⇒ w = 2
Số lượng Line trong cache: 214 / 22 = 212⇒ r = 12
Số bit của phần Tag: t= 26 - 12 - 2 = 12
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 116 /
117. Ví dụ
Hãy xác định giá trị của Line(block), Tag và
Word trong địa chỉ có kích thước 32 bit là
3FE9704Ah, biết rằng:
Bộ nhớ sử dụng cơ chế ánh xạ trực tiếp.
1 word=2 byte:
Kích thước cache 16K line
Kích thước của 1 bock = 1 line = 16 word
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 117 /
118. Ví dụ
3FE9704Ah = 0011 1111 1110 1001 0111 0000 0100
1010 b
Kích thước cache 16K line = 214 line => L=14 bit
Kích thước 1 block = 16 word = 24 => k = 4 bit
=> Số bít cho trường Tag = 32 – 4 – 14 = 14
Tag Line Word
Size 14 bit 14 bit 4 bit
Hệ nhị phân 0011 1111 1110 10 01 0111 0000 0100 1010
Hệ 10 4090 5892 10
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 118 /
119. Bộ nhớ đệm
(Bộ nhớ Cache)
Ví dụ: 10 line đầu tiên của cache có 256 line, được
liệt kê ra như bảng dưới đây. Hãy xác định địa chỉ
của dữ liệu D8. biết rằng trong cache này lưu thành
các khối 4word.
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 119 /
120. Bộ nhớ đệm
(Bộ nhớ Cache)
Tag: 110011
Line: 4 0100
Word: 10
Tag: 110011 Line 0100 Word 10
t bit r bit w bit
1100 1101 0010 CD2
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 120 /
121. Đánh giá
Ưu điểm:
Dễ thực hiện, vì một Block được ánh xạ cố định
vào một Line ⇒ không cần thuật toán chọn Line.
Thiết kế mạch đơn giản.
Nhược điểm:
Xácsuất cache hit thấp và hiệu xuất của cache
không cao vì mỗi một block chỉ có thể đưa vào
một vị trí xác định trong khi các vị trí khác có thể
đang trống.
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 121 /
122. Bộ nhớ đệm
(Bộ nhớ Cache)
Ánh xạ liên kết: Mỗi Block trong BNC được ánh xạ
vào một Line bất kỳ trong Cache
Khi đó, địa chỉ do BXL phát ra có dạng:
Tag Word
w bit
s bit
Word: xác định ngăn nhớ trong Block
⇒ Block có 2w ngăn nhớ
Tag: xác định Block đang ở trong Line
⇒ Số lượng Block: 2s
⇒ Dung lượng BNC: 2s + w ngăn nhớ
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 122 /
123. Ưu điểm:
Tỉ
lệ cache hit cao hơn ánh xạ trực tiếp vì một
Block được phép vào một Line bất kỳ.
Nhược điểm:
Thiết
kế mạch tương đối phức tạp, thể hiện ở
mạch so sánh.
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 123 /
124. Bộ nhớ đệm
(Bộ nhớ Cache)
Ví dụ: bảng sau đây biểu diễn 5 line trong một Cache
sử dụng cơ chế ánh xạ liên kết, biết rằng kích thước
của mỗi khối là 8. Hãy xác định địa chỉ của dữ liệu
C9
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 124 /
125. Bộ nhớ đệm
(Bộ nhớ Cache)
Giải: tại địa chỉ C9 có
Tag : 0100011010101
Word: 001
Kết hợp hai phần này ta xác định được địa chỉ
trong bộ nhớ chính khi ánh xạ vào trong cache
là:
0100 0110 1010 1001=46A9
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 125 /
126. Bộ nhớ đệm
(Bộ nhớ Cache)
Ví dụ: dữ liệu trong bộ nhớ có địa chỉ là
1E65 sẽ tương ứng với địa chỉ nào trong
bảng sau
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 126 /
127. Bộ nhớ đệm
(Bộ nhớ Cache)
Ví dụ: dữ liệu trong bộ nhớ có địa chỉ là 1E65 sẽ tương
ứng với địa chỉ nào trong bảng trên
Giải: Chuyển địa chỉ 1E65 sang giá trị nhị phân ta có
0001 1110 0110 0101
Theo cơ chế ánh xạ trên ta có thể phân chia địa chỉ này
như sau:
0001111001100 101
Tag ID Word ID
Tương ứng với 9E
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 127 /
128. Bộ nhớ đệm
(Bộ nhớ Cache)
Cache liên kết thành bộ
Là sự kết hợp giữa cache ánh xạ trực tiếp và cache ánh xạ
liên kết bằng cách nhóm các line cùng nhau vào trong một
set
Cache được chia thành nhiều Set, mỗi Set gồm nhiều Line
liên tiếp
Một Block của BNC chỉ được ánh xạ vào một Set duy nhất
trong cache, nhưng được ánh xạ vào Line bất kỳ trong set
đó:
i = j mod v
i: số hiệu Set trong cache
j: số hiệu Block trong BNC
v: số lượng Set trong cache
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 128 /
129. Bộ nhớ đệm
(Bộ nhớ Cache)
Vídụ: một hệ thống sử dụng một cache với 2 9=512
line, một khối trong bộ nhớ có kích thước 2 3=8
word chứa trong một không gian nhớ là 2 30= 1gig.
Xét sự kết hợp giữa hai kiểu ánh xạ trên để tạo
thành cơ chế ánh xạ liên kết thành bộ
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 129 /
130. Khi đó, địa chỉ do BXL phát ra gồm:
Tag Set Word
t bit d bit w bit
Word: xác định số hiệu ngăn nhớ trong Block
⇒ Block (Line) có 2w ngăn nhớ
Set: xác định số hiệu Set trong cache
⇒ Cache có 2d Set
Tag: xác định Block nào đang ở trong Line
⇒ BNC chứa 2t + d + w ngăn nhớ
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 130 /
131. Bộ nhớ đệm
(Bộ nhớ Cache)
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 131 /
132. Cho máy tính có dung lượng:
BNC = 512 MB, cache = 128 KB, line = 32 byte,
Set = 8 Line, độ dài ngăn nhớ = 1 byte.
Tìm dạng địa chỉ do BXL phát ra?
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 132 /
133. Cho máy tính có dung lượng:
BNC = 512 MB, cache = 128 KB, line = 32 byte,
Set = 8 Line, độ dài ngăn nhớ = 1 byte.
Tìm dạng địa chỉ do BXL phát ra?
Giải: Ta có:
BNC = 512 MB = 229 byte; Cache = 128 KB = 217 byte
Line = 25 byte ⇒ w = 5
Set = 8 line = 23 line
Dung lượng Set: 23 * 25 = 28 byte
⇒ số lượng Set trong Cache: 217/28 = 29 ⇒ d = 9
Số bit của phần Tag: t= 29 - 9 - 5 = 15
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 133 /
134. Cho máy tính có dung lượng:
BNC = 256 MB, cache = 128 KB, line = 64 byte,
Set = 4 Line, độ dài ngăn nhớ = 4 byte.
Tìm dạng địa chỉ do BXL phát ra?
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 134 /
135. Cho máy tính có dung lượng:
BNC = 256 MB, cache = 128 KB, line = 64 byte,
Set = 4 Line, độ dài ngăn nhớ = 4 byte.
Tìm dạng địa chỉ do BXL phát ra?
Giải: Ta có:
BNC = 228 byte = 228/22 = 226 ng/nhớ
Cache = 217 byte = 217/22 = 215 ng/nhớ
Line = 26/22 = 24 ng/nhớ ⇒ w = 4
D/l Set: 22 * 24= 26 ⇒ s/l Set: 215/26 = 29 ⇒ d = 9
Số bit của phần Tag: t= 26 - 9 - 4 = 13
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 135 /
136. Bộ nhớ đệm
(Bộ nhớ Cache)
Ví dụ. Hãy xác định số set trong Block có địa chỉ là
29ABCDE8
Hãy cho biết số Tag, địa chỉ thấp nhất và cao
nhất của Block . Biết rằng đây là Cache 4 đường,
mỗi Block chứa 16 word.
Số lượng line trong Cache là 4K line
Kích thước của bộ nhớ chính là 1Gig
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 136 /
137. Bộ nhớ đệm
(Bộ nhớ Cache)
Do bộ nhớ có kích thước là 1Gig: cần 30 đường địa
chỉ, vậy 4 bit được sử dụng để xác định cho 16 word
trong block
Do đây là cache 4 đường và số lượng các Line trong
cache là 4K=212. Vậy số set để lưu sẽ là: 212/22=210
cần 10 bit để xác định số Set
30 bit địa chỉ trên được chia thành:
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 137 /
138. Bộ nhớ đệm
(Bộ nhớ Cache)
Địa chỉ: 29ABCDE8 =
0010 1001 1010 1011 1100 1101 1110 1000
16 bit đầu tiên để biểu diễn cho Tag
10 bit tiếp theo để số set sẽ lưu block
4 bit cuối cùng biểu diễn vị trí của word trong block
Địa chỉ thấp nhất tương ứng với word có địa chỉ là :
0000. Hay chính là địa chỉ 29ADCBE0
Địa chỉ cao nhất tương ứng với word có địa chỉ là : 1111
Hay chính là địa chỉ 29ADCBEF
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 138 /
139. Ưu điểm:
Tỉlệ cache hit cao vì một Block được phép vào
một Line bất kỳ trong Set, và dễ so sánh.
Đây là kỹ thuật ánh xạ tốt nhất trong 3 kỹ thuật.
Nhược điểm:
Thiết kế mạch phức tạp.
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 139 /
140. Các thuật toán thay thế
Hai kỹ thuật ánh xạ liên kết: có 4 thuật toán
Random: thay ngẫu nhiên một Block cũ nào đó
⇒ Dễ thực hiện, nhanh nhất, tỉ lệ cache hit thấp.
FIFO (First In - First Out): thay Block ở đầu tiên
trong số các Block đang có trong cache
⇒ tỉ lệ cache hit không cao
LFU (Least Frequently Used): thay Block được
dùng với tần suất ít nhất ⇒ tỉ lệ cache hit tương
đối cao
LRU (Least Recently Used): thay Block được
dùng gần đây ít nhất ⇒ tỉ lệ cache hit cao
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 140 /
141. Hoạt động của cache
Đọc:
Nếu cache hit: đọc ngăn nhớ từ cache
Nếu cache miss: thay Block ⇒ cache hit
Ghi:
Nếu cache hit: có 2 phương pháp:
Write through: ghi dữ liệu vào cả cache và cả BNC
⇒ không cần thiết, tốc độ chậm, mạch đơn giản.
Write back: chỉ ghi vào cache, khi nào Block (trong
cache) được ghi bị thay đi → ghi vào BNC
⇒ tốc độ nhanh, mạch phức tạp.
Nếu cache miss: thay Block ⇒ cache hit
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 141 /
142. Hoạt động của cache
BXL Cache BNC
a) Write Through
BXL Cache BNC
b) Write Back
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 142 /
143. Ví dụ cache trên các bộ xử lý Intel
80386: không có cache trên chip
80486:
• 8KB, kích thước Line: 16 byte
• Ánh xạ liên kết tập hợp 4 đường
Pentium: có hai cache L1 trên chip
Cache lệnh: 8KB, cache dữ liệu: 8KB:
Petium 4: cache L1 (2 loại) và L2 trên chip:
Cache L1: + Mỗi cache: 8KB, kích thước Line: 64 byte
+ Ánh xạ liên kết tập hợp 4 đường
Cache L2: + 256KB, kích thước Line: 128 byte
+ Ánh xạ liên kết tập hợp 8 đường
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 143 /
144. BÀI TẬP
BÀI 1: có bao nhiêu khối kích thước
16word/block được lưu trong một không gian
nhớ là 256Gig
BÀI 2: hãy xác định số line, số tag và vị trí của
word trong mỗi địa chỉ dưới đây
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 144 /
145. 3.4.2 Các bus của máy tính (Phân loại theo
loại tín hiệu truyền trên bus)
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 145 /
146. Bus địa chỉ
Chức năng: vận chuyển địa chỉ để xác định
ngăn nhớ hay cổng vào-ra.
Độ rộng bus địa chỉ: xác định dung lượng bộ
nhớ cực đại của hệ thống.
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 146 /
147. Bus dữ liệu
Chức năng: vận chuyển lệnh từ bộ nhớ đến
CPU vận chuyển dữ liệu giữa CPU, các
môđun nhớ và môđun vào-ra.
Độ rộng bus dữ liệu: xác định số bit dữ liệu có
thể được trao đổi đồng thời.
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 147 /
148. Bus điều khiển
Chức năng: vận chuyển các tín hiệu điều
khiển
Các loại tín hiệu điều khiển
+ Các tín hiệu phát ra từ CPU để điều khiển
môđun nhớ và môđun vào-ra
+ Các tín hiệu từ môđun nhớ hay môđun vào-ra
gửi đến yêu cầu CPU.
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 148 /
149. 3.4.6 Việc xử lý ngắt
Một ứng dụng quan trọng nữa của bus là để xử lý
ngắt:
Khi CPU ra lệnh cho một thiết bị I/O làm một việc gì đó,
nó thường chờ đợi tín hiệu ngắt do thiết bị I/O phát ra
khi hoàn thành công việc được CPU yêu cầu.
Khi nhận được tín hiệu ngắt, CPU sẽ phản ứng ngay, đó
có thể là việc nhận dữ liệu do thiết bị I/O đã truyền về,
cũng có thể là việc gửi tiếp dữ liệu ra thiết bị I/O hoặc
CPU sẽ sử dụng bus cho một thao tác khác...
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 149 /
150. Xử lý ngắt (Interrupts)
Khái niệm: Ngắt là cơ chế cho phép CPU tạm
dừng chương trình đang thực 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.
Các loại ngắt
+ Ngắt do lỗi khi thực hiện chương trình, ví dụ: tràn số,
chia cho 0 …
+ Ngắt do lỗi phần cứng, ví dụ: lỗi bộ nhớ RAM
+ Ngắt do môđun vào-ra phát tín hiệu ngắt đến CPU
yêu cầu trao đổi dữ liệu.
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 150 /
151. Chu trình lệnh thực hiện lệnh ngắt
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 151 /
152. Hoạt động ngắt (tiếp)
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA 152 /
Address Bus : nhóm đường truyền nhận diện vị trí truy xuất trong thiết bị đích : thông tin được đọc từ đâu hoặc ghi vào đâu Data Bus : nhóm đường truyền để tải data thực sự giữa các thiết bị hệ thống do địa chỉ trên address bus đã xác định. Độ rộng của data bus (số đường dây dẫn) xác định data trong mỗi lần truyền là bao nhiêu. Control Bus : nhóm đường truyền cho các tín hiệu điều khiển như : tác vụ là đọc hay ghi, tác vụ thực thi trên bộ nhớ hay trên thiết bị ngoại vi, nhận dạng chu kỳ bus và khi nào thì hoàn tất tác vụ…