Upload
toa-cao
View
4.904
Download
3
Embed Size (px)
Citation preview
CHƯƠNG 3
MỨC LOGIC SỐ
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 2 / 50
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 ĐiỆN TỬ 3 / 50
CÁC CỔNG CƠ BẢN
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 4 / 50
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 ĐiỆN TỬ 5 / 50
Hàm Logic
Hàm biểu diễn 3 giá trị đầu vào
A B C F
0 0 0 00 0 1 00 1 0 00 1 1 11 0 0 01 0 1 11 1 0 11 1 1 1
Dạng biểu diễn của hàm
F = A B + B C + A C
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 6 / 50
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 ĐiỆN TỬ 7 / 50
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 ĐiỆN TỬ 8 / 50
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 ĐiỆN TỬ 9 / 50
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 ĐiỆN TỬ 10 / 50
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 ĐiỆN TỬ 11 / 50
Bộ dồn kênh(Multiplexers)
Multiplexer 2n đầu vào dữ liệu 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 đầuvào nào sẽ là tín hiệu đưa ra
4-data input MUX
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 12 / 50
Bộ dồn kênh(Multiplexers)
Bộ dồn kênh cho 4 đường dữ liệu vào
I1
I2
I3
I0
SoS1
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 13 / 50
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
C1 C0
0 0
0 1
1 0
1 1
O0=I
O1=I
O2=I
O3=I
C1 C0
O0
O1
O2
O3
I
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 14 / 50
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 ĐiỆN TỬ 15 / 50
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
I2I0 I1 In-2 In-1 n đầu vào
O0 O1 O2 O2n-1 2n đầu ra
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 16 / 50
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
0 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 1
O0O1O2O3O4O5O6O7
O7 O6 O5 O4 O3 O2 O1 O0
I2 I1 I0
O7 O6 O5 O4 O3 O2 O1
I2
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 17 / 50
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 ĐiỆN TỬ 18 / 50
Mạch giải mã (Decoder)
Mạch Decoder 2 - 4
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 19 / 50
Mạch giải mã (Decoder)
Logic function
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 20 / 50
Mạch giải mã (Decoder)
74139: Dual decoder chip
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 21 / 50
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 ĐiỆN TỬ 22 / 50
Mạch mã hóa 8 đường ra 3 đường
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 23 / 50
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 + I7Y1 = I2 + I3 + I6 + I7Y2 = I4 + I5 + I6 +I7
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 24 / 50
Mạch mã hóa (Encoder)
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 25 / 50
Mạch mã hóa (Encoder)(4-2)
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 26 / 50
Mạch mã hóa (Encoder)
Priority encoders
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 27 / 50
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 ĐiỆN TỬ 28 / 50
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 ĐiỆN TỬ 29 / 50
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 ĐiỆN TỬ 30 / 50
Bộ cộng (Adders)
Bộ cộng nửa (Half-adder)Cộng hai bitTrả lại tổng và số nhớ carry outKhô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 – inTrả lại tổng và số nhớ carry outCho 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 ĐiỆN TỬ 31 / 50
Bộ cộng (Adders)
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 32 / 50
Bộ cộng (Adders)
A 16-bit ripple-carry adder
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 33 / 50
Bộ cộng (Adders)
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 34 / 50
VD: F0F1=00: A AND B F0F1=01: A OR B F0F1=10: NOT B (đảo B)
F0F1=11: A + B
11
Bộ số học và logic - ALU
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 35 / 50
11
Bộ số học và logic - ALU
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 ĐiỆN TỬ 36 / 50
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ữ.
delay
delay
delay
11
1 2 3 54 876 109 12
Q1
Q0
Q2
Q3
Mạch tạo xung Clock
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 37 / 50
3.3 Bộ nhớ
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 38 / 50
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à 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
Q
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 39 / 50
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 ĐiỆN TỬ 40 / 50
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 ĐiỆN TỬ 41 / 50
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 ĐiỆN TỬ 42 / 50
... 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 ĐiỆN TỬ 43 / 50
... 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 ĐiỆN TỬ 44 / 50
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 ĐiỆN TỬ 45 / 50
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 ĐiỆN TỬ 46 / 50
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 ĐiỆN TỬ 47 / 50
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 ĐiỆN TỬ 48 / 50
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 ĐiỆN TỬ 49 / 50
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 ĐiỆN TỬ 50 / 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 ĐiỆN TỬ 51 / 50
Tổ chức bộ nhớ
Chọn
Điều khiển
Dữ liệu vào Ô nhớ Chọn
Điều khiển
Dữ liệu ra Ô nhớ
Phần tử nhớ là các mạch D-latch
Tổ hợp các bits thành các words
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 52 / 50
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 53 / 50
Tổ chức bộ nhớ
Tổ chức chip nhớ
CHIP NHỚ
D0
D1
Dm - 1
A0
A1
An - 1
CS
WE OE
.
.
.
.
.
.
.
.
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 54 / 50
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 Các đường điều khiển:
Tín hiệu chọn chip: CS (Chip Select) Tín hiệu điều khiển đọc: RD / OE Tín hiệu điều khiển ghi: WR / WE
CHIP NHỚ
D0
D1
Dm - 1
A0A1
An - 1
CS
WE OE
.
.
.
.
.
.
.
.
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 55 / 50
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 ĐiỆN TỬ 56 / 50
Thiết kế module nhớ bán dẫn
Đặt vấn đề Dung lượng chip nhớ là 2n x m bitCầ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 ĐiỆN TỬ 57 / 50
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 ĐiỆN TỬ 58 / 50
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 ĐiỆN TỬ 59 / 50
Thiết kế module nhớ bán dẫn
D0D
3
A0 A12
8K x 4 bit
D0 D3
CS
WE OE
A0 A12 A0 A12
8K x 4 bit
D0 D3
CS
WE OE
CSWEOE
D4D7
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 60 / 50
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 ĐiỆN TỬ 61 / 50
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 bitHã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 ĐiỆN TỬ 62 / 50
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 ĐiỆN TỬ 63 / 50
Thiết kế module nhớ bán dẫn
G A Y1 Y0
0
0
0
1
0
1
1
0
1 X 1 1
D0 D3
A0 A11
A0A11
D0D3
CS
WE OE
A0A11
D0D3
CS
WE OE
WE
OE
A Y0
G Y1
A1
2
CS
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 64 / 50
Thiết kế module nhớ bán dẫn
Tăng số lượng ngăn nhớ (tăng n) tổng quátCho chip nhớ 2n x m bitCầ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 ĐiỆN TỬ 65 / 50
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 ĐiỆN TỬ 66 / 50
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 ĐiỆN TỬ 67 / 50
Thiết kế module nhớ bán dẫn
A0A12
D0D3
CS
WE OE
A0A12
D0D3
CS
WE OE
A0A12
D0D3
CS
WE OE
A0A12
D0D3
CS
WE OE
A Y0
G Y1
A0A12
WE
OE
A13
CS
D0D3
D4D7
D0D3
D4D7
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 68 / 50
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 ĐiỆN TỬ 69 / 50
Không gian nhớ
216 = 64K
Segment (16 bit)Offset (16) n
220 = 1MB không gian nhớ
xxxx xxxx xxxx xxxx 0000
Tghi 16 bit dịch trái 4
xxxx xxxx xxxx xxxx xxxx
20 bit
Địa chỉ vật lý = segment x 24 + offset
• 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ý
x
x +116 byte
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 70 / 50
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 ĐiỆN TỬ 71 / 50
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 ĐiỆN TỬ 72 / 50
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 ĐiỆN TỬ 73 / 50
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 ĐiỆN TỬ 74 / 50
Giải mã địa chỉ - Bộ giải mã cổng NAND
D7
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 75 / 50
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 ĐiỆN TỬ 76 / 50
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 ĐiỆN TỬ 77 / 50
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 ĐiỆN TỬ 78 / 50
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 ĐiỆN TỬ 79 / 50
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 ĐiỆN TỬ 80 / 50
Giải mã địa chỉ - Bộ giải mã 74LS138
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 81 / 50
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 CETạ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 ĐiỆN TỬ 82 / 50
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 ĐiỆN TỬ 83 / 50
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 ĐiỆN TỬ 84 / 50
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 ĐiỆN TỬ 85 / 50
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 ĐiỆN TỬ 86 / 50
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 ĐiỆN TỬ 87 / 50
Ý 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 ĐiỆN TỬ 88 / 50
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 ĐiỆN TỬ 89 / 50
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 ĐiỆN TỬ 90 / 50
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 ĐiỆN TỬ 91 / 50
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 ĐiỆN TỬ 92 / 50
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 ĐiỆN TỬ 93 / 50
Bộ nhớ đệm(Bộ nhớ Cache)
Hoạt động của bộ nhớ CacheCPU 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 ĐiỆN TỬ 94 / 50
Bộ nhớ đệm(Bộ nhớ Cache)
Tổ chức CacheNguyê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 ĐiỆN TỬ 95 / 50
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 ĐiỆN TỬ 96 / 50
Bộ nhớ đệm(Bộ nhớ Cache)
Cấu trúc bộ nhớ cache
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 97 / 50
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: Chia thà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 ĐiỆN TỬ 98 / 50
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 ĐiỆN TỬ 99 / 50
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 ĐiỆN TỬ 100 / 50
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 wordCần sử dụng 2 bit để xác định vị trí wordCòn 20-2=18 bit để biểu diễn block_id
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 101 / 50
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ễnMộ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 ĐiỆN TỬ 102 / 50
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 ĐiỆN TỬ 103 / 50
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 ĐiỆN TỬ 104 / 50
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 ĐiỆN TỬ 105 / 50
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 ĐiỆN TỬ 106 / 50
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 ĐiỆN TỬ 107 / 50
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 ĐiỆN TỬ 108 / 50
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 ĐiỆN TỬ 109 / 50
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 ĐiỆN TỬ 110 / 50
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 ĐiỆN TỬ 111 / 50
Ánh xạ trực tiếp
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 112 / 50
Ánh xạ trực tiếp
Khi đó, địa chỉ do CPU phát ra gồm 3 trường:
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ớ
Tag Line Word
t bit w bitr bit
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 113 / 50
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 ĐiỆN TỬ 114 / 50
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
5139
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 115 / 50
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 ĐiỆN TỬ 116 / 50
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 = 2Số lượng Line trong cache: 214 / 22 = 212 r = 12Số bit của phần Tag: t= 26 - 12 - 2 = 12
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 117 / 50
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 lineKích thước của 1 bock = 1 line = 16 word
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 118 / 50
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 ĐiỆN TỬ 119 / 50
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 ĐiỆN TỬ 120 / 50
Bộ nhớ đệm(Bộ nhớ Cache)
Tag: 110011 Line: 4 0100 Word: 10
1100 1101 0010 CD2
Tag:
Line Word
t bit w bitr bit
110011 0100 10
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 121 / 50
Đá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ác suấ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 ĐiỆN TỬ 122 / 50
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:
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ớ
Tag Word
s bit w bit
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 123 / 50
Ư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 ĐiỆN TỬ 124 / 50
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 ĐiỆN TỬ 125 / 50
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 ĐiỆN TỬ 126 / 50
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 ĐiỆN TỬ 127 / 50
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:
Tương ứng với 9E
0001111001100 101
Tag ID Word ID
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 128 / 50
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 ĐiỆN TỬ 129 / 50
Bộ nhớ đệm(Bộ nhớ Cache)
Ví dụ: một hệ thống sử dụng một cache với 29=512 line, một khối trong bộ nhớ có kích thước 23=8 word chứa trong một không gian nhớ là 230= 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 ĐiỆN TỬ 130 / 50
Khi đó, địa chỉ do BXL phát ra gồm:
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 SetTag: xác định Block nào đang ở trong Line
BNC chứa 2t + d + w ngăn nhớ
Tag
Set Word
t bit w bitd bit
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 131 / 50
Bộ nhớ đệm(Bộ nhớ Cache)
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 132 / 50
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 ĐiỆN TỬ 133 / 50
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 ĐiỆN TỬ 134 / 50
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 ĐiỆN TỬ 135 / 50
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 = 4D/l Set: 22 * 24= 26 s/l Set: 215/26 = 29 d = 9Số bit của phần Tag: t= 26 - 9 - 4 = 13
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 136 / 50
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 ĐiỆN TỬ 137 / 50
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 ĐiỆN TỬ 138 / 50
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 ĐiỆN TỬ 139 / 50
Ư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 ĐiỆN TỬ 140 / 50
Các thuật toán thay thế
Hai kỹ thuật ánh xạ liên kết: có 4 thuật toánRandom: 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 caoLFU (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 ĐiỆN TỬ 141 / 50
Hoạt động của cache
Đọc: Nếu cache hit: đọc ngăn nhớ từ cacheNế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 ĐiỆN TỬ 142 / 50
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 ĐiỆN TỬ 143 / 50
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 ĐiỆN TỬ 144 / 50
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 ĐiỆN TỬ 145 / 50
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 ĐiỆN TỬ 146 / 50
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 ĐiỆN TỬ 147 / 50
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 ĐiỆN TỬ 148 / 50
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 ĐiỆN TỬ 149 / 50
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 ĐiỆN TỬ 150 / 50
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 ĐiỆN TỬ 151 / 50
Chu trình lệnh thực hiện lệnh ngắt
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 152 / 50
Hoạt động ngắt (tiếp)
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ 153 / 50
Hết Chương 3