You are on page 1of 62

dce

2013

COMPUTER ARCHITECTURE
CSE Fall 2013
Faculty of Computer Science and
Engineering
BK
TP.HCM Department of Computer Engineering

Vo Tan Phuong
http://www.cse.hcmut.edu.vn/~vtphuong
dce
2013

Chapter 5
Bộ nhớ máy tính

Computer Architecture – Chapter 5 ©Fall 2013, CS 2


dce
2013
Nội dung trình bày
 Công nghệ và thuật ngữ liên quan đến bộ nhớ

 Tổ chức / thiết kế bộ nhớ

 Sự cần thiết phải có bộ nhớ đệm

 Phân loại bộ nhớ đệm

 Đánh giá hiệu năng của bộ nhớ đệm

Computer Architecture – Chapter 5 ©Fall 2013, CS 3


dce
2013
Máy tính PC
 Nhìn từ bên ngoài, bộ RAM CPU RAM

xử lý kết nối với RAM


và chip cầu bắc (quản
lý các kết nối vào bus Card Chip cầu bắc
đồ
tốc độ cao như card đồ họa Khe cắm PCI
họa, khe PCI), chip cầu
bắc nối với chip cầu Chip
nam (quản lý USB bus, cầu
nam
network, ổ cứng, ổ
CD…)

Computer Architecture – Chapter 5 ©Fall 2013, CS 4


dce
2013
Hệ thống bộ nhớ máy tính
 Bộ nhớ máy tính hiểu
Processor Devices
theo nghĩa rộng là tất
cả nơi chứa dữ liệu Control Memory Input
(thanh ghi, bộ nhớ
Datapath Output
đệm, bộ nhớ chính, bộ
nhớ ngoài)
Microprocessor
 Hệ thống bộ nhớ tổ
Registers
chức theo mô hình
phân cấp, trên cùng là L1 Cache

bộ thanh ghi, đến bộ L2 Cache

Bigger
nhớ đệm L1, L2, bộ Faster
Memory Bus
nhớ chính, bộ nhớ phụ Main Memory

I/O Bus
Magnetic or Flash Disk

Computer Architecture – Chapter 5 ©Fall 2013, CS 5


dce
2013
Hệ thống bộ nhớ phân cấp trong Pipline
MIPS CPU
Imm16

Imm
E
ALU result 32
0
32
1

ALUout
Register File
I-Cache Instruction Rs 5 BusA 2 D-Cache

WB Data
A 0
RA 3
Instruction Rt 5 L Address
BusB 32
RB 0 U
PC

Address Data_out
1 1 1

B
RW 2 0 Data_in

D
BusW
3
32
32

Rd2

Rd3

Rd4
0
1
Rd

clk
Instruction Block
Block Address

Block Address

D-Cache miss
I-Cache miss

I-Cache miss hoặc D-Cache miss

Data Block
làm quá trình pipeline bị stall

Interface to L2 Cache or Main Memory

Computer Architecture – Chapter 5 ©Fall 2013, CS 6


dce
2013
Cấu tạo thanh ghi
 Thanh ghi có thành phần chính là các D Flip-Flop, có n bit
dữ liệu vào, n bit dữ liệu ra, tín hiệu WE (Write Enable) và
tín hiệu xung nhịp Clock
Register
D Flip-Flop
D Q
C
D0

D Q
C
D1
Data_In Data_Out
32 . 32
.
.
D Q
C
D31 D Latch

WE
Clock

Computer Architecture – Chapter 5 ©Fall 2013, CS 7


dce 2013
Chi tiết bộ thanh ghi
Bộ thanh ghi MIPS gồm 32 thanh ghi 32 bit; RA, RB là 2 đầu vào yêu
cầu truy xuất dữ liệu, dữ liệu được đưa ra BusA, BusB; để ghi dữ liệu
cần chỉ ra nơi lưu RW, giá trị lưu BusW, yêu cầu ghi RegWrite và thời
điểm ghi được đồng bộ với xung nhịp Clock

Register
5
RA
File BusA 32

5
RB
32
5 BusB
RW

Clock
BusW

32
RegWrite

Computer Architecture – Chapter 5 ©Fall 2013, CS 8


dce
2013
Bộ nhớ truy xuất ngẫu nhiên RAM
 Là một mảng 2n phần tử nhớ, mỗi phần tử nhớ lưu trữ
m-bit dữ liệu
 Là bộ nhớ “bốc hơi”
 Dữ liệu chỉ được lưu khi còn được cung cấp điện

 Truy xuất ngẫu nhiên


 Thời gian truy xuất dữ liệu từ một phần tử nhớ bất kỳ là như
nhau

 Tín hiệu điều khiển Output Enable (OE) RAM


n
 Yêu cầu xuất dữ liệu khi “đọc” Address

Data
 Tín hiệu điều khiển Write Enable (WE) m
OE WE
 Yêu cầu ghi dữ liệu

 2n × m RAM : n-bit địa chỉ, m-bit dữ liệu


Computer Architecture – Chapter 5 ©Fall 2013, CS 9
dce
2013
Công nghệ bộ nhớ
 Static RAM (SRAM) dùng cho bộ nhớ đệm
 1 bit nhớ cần 6 transistor
 Tốc độ truy xuất dữ liệu cao (~ 1ns)
 Cần ít năng lượng để duy trì giá trị lưu trữ
 Dynamic RAM (DRAM) dùng cho bộ nhớ chính
 1 bit nhớ cần 1 transistor + 1 capacitor
 Tốc độ truy xuất dữ liệu thấp (~ 100ns)
 Cần phải ghi lại giá trị vào ô nhớ sau khi đọc
 Cần phải định kỳ “làm tươi”
 Mỗi hàng có thể được làm tươi đồng thời

Computer Architecture – Chapter 5 ©Fall 2013, CS 10


dce
2013
Cấu tạo SRAM

Computer Architecture – Chapter 5 ©Fall 2013, CS 11


dce
2013
Cấu tạo DRAM

Computer Architecture – Chapter 5 ©Fall 2013, CS 12


dce
2013
Mô hình bit nhớ của DRAM
 1 bit nhớ sử dụng tụ làm phần tử lưu trữ
 Tụ có đặt tính “rò điện tích” theo thời gian
 Cần “làm tươi” để giữ mức điện thế tương ứng mức 1

Computer Architecture – Chapter 5 ©Fall 2013, CS 13


dce
2013
Chu kỳ làm tươi DRAM
 Chu kỳ làm tươi (refresh cycle) vào khoảng 10ms
 Việc làm tươi được thực hiện cho toàn bộ nhớ
 Mỗi hàng sẽ được đọc và ghi trở lại để phục hồi điện tích
 Băng thông bộ nhớ bị giảm bởi việc làm tươi

Voltage 1 Written Refreshed Refreshed Refreshed


for 1

Threshold
voltage

0 Stored Refresh Cycle


Voltage Time
for 0

Computer Architecture – Chapter 5 ©Fall 2013, CS 14


dce
2013
Ví dụ một IC DRAM
 24 chân, dạng dual in-line cho bộ nhớ 16Mbit = 222  4
 22-bit địa chỉ bao gồm
Chú thích:
 11-bit row address Ai Address bit i
CAS Column address strobe
 11-bit column address Dj Data bit j
NC No connection
 Địa chỉ hàng và cột dùng chung OE Output enable
RAS Row address strobe
11 đường địa chỉ A0-A10 WE Write enable

Vss D4 D3 CAS OE A9 A8 A7 A6 A5 A4 Vss

24 23 22 21 20 19 18 17 16 15 14 13

1 2 3 4 5 6 7 8 9 10 11 12

Vcc D1 D2 WE RAS NC A10 A0 A1 A2 A3 Vcc

Computer Architecture – Chapter 5 ©Fall 2013, CS 15


dce
2013
Ví dụ cấu trúc của DRAM

 Row decoder
 Lựa chọn hàng để đọc/ghi

Row Decoder
Row address
2r × 2c × m bits
 Column decoder r

...
Cell Matrix
 Lựa chọn cột để đọc/ghi

 Cell Matrix
 Mảng 2 chiều các phần tử nhớ Sense/write amplifiers
m
Data Row Latch 2c × m bits
 Sense/Write amplifiers
...
 Làm rõ mức 0/1 khi đọc/ghi
Column Decoder
 Sử dụng chung đường dữ liệu vào/ra c

Column address

Computer Architecture – Chapter 5 ©Fall 2013, CS 16


dce
2013
Thông số DRAM
Year Row Column Cycle Time
Chip size Type
Produced access access New Request
1980 64 Kbit DRAM 170 ns 75 ns 250 ns
1983 256 Kbit DRAM 150 ns 50 ns 220 ns
1986 1 Mbit DRAM 120 ns 25 ns 190 ns
1989 4 Mbit DRAM 100 ns 20 ns 165 ns
1992 16 Mbit DRAM 80 ns 15 ns 120 ns
1996 64 Mbit SDRAM 70 ns 12 ns 110 ns
1998 128 Mbit SDRAM 70 ns 10 ns 100 ns
2000 256 Mbit DDR1 65 ns 7 ns 90 ns
2002 512 Mbit DDR1 60 ns 5 ns 80 ns
2004 1 Gbit DDR2 55 ns 5 ns 70 ns
2006 2 Gbit DDR2 50 ns 3 ns 60 ns
2010 4 Gbit DDR3 35 ns 1 ns 37 ns
2012 8 Gbit DDR3 30 ns 0.5 ns 31 ns

Computer Architecture – Chapter 5 ©Fall 2013, CS 17


dce
2013
SDRAM và DDR SDRAM

 SDRAM: Synchronous Dynamic RAM


 Thêm tín hiệu clock vào DRAM
 SDRAM được đồng bộ với xung nhịp hệ thống
 DRAM với công nghệ cũ là loại bất đồng bộ
 Khi xung nhịp hệ thống tăng, SDRAM có hiệu năng
cao hơn DRAM bất đồng bộ
 DDR: Double Data Rate SDRAM
 Giống với SDRAM, DDR đồng bộ với xung nhịp hệ
thống, nhưng khác ở chỗ DDR độc dữ liệu tại cạnh
lên và cạnh xuống của tín hiệu xung nhịp

Computer Architecture – Chapter 5 ©Fall 2013, CS 18


dce
2013
Transfer Rates & Peak Bandwidth
Standard Memory Millions Transfers Module Peak
Name Bus Clock per second Name Bandwidth
DDR-200 100 MHz 200 MT/s PC-1600 1600 MB/s
DDR-333 167 MHz 333 MT/s PC-2700 2667 MB/s
DDR-400 200 MHz 400 MT/s PC-3200 3200 MB/s
DDR2-667 333 MHz 667 MT/s PC-5300 5333 MB/s
DDR2-800 400 MHz 800 MT/s PC-6400 6400 MB/s
DDR2-1066 533 MHz 1066 MT/s PC-8500 8533 MB/s
DDR3-1066 533 MHz 1066 MT/s PC-8500 8533 MB/s
DDR3-1333 667 MHz 1333 MT/s PC-10600 10667 MB/s
DDR3-1600 800 MHz 1600 MT/s PC-12800 12800 MB/s
DDR4-3200 1600 MHz 3200 MT/s PC-25600 25600 MB/s

 1 Transfer = 64 bits = 8 bytes of data

Computer Architecture – Chapter 5 ©Fall 2013, CS 19


dce
2013
Nội dung trình bày
 Công nghệ và thuật ngữ liên quan đến bộ nhớ

 Tổ chức / thiết kế bộ nhớ

 Sự cần thiết phải có bộ nhớ đệm

 Phân loại bộ nhớ đệm

 Đánh giá hiệu năng của bộ nhớ đệm

Computer Architecture – Chapter 5 ©Fall 2013, CS 20


dce
2013
Tổ chức bộ nhớ
2 4
Giải mã Địa chỉ 00 (0)
địa chỉ Địa chỉ 01 (1)
n 2n Địa chỉ 10 (2)
địa Giải mã lựa Địa chỉ 11 (3)
địa chỉ
chỉ chọn
4 x 8 bit
Dữ liệu 8 bit
3 8
Địa chỉ 000 (0)
Giải mã Địa chỉ 001 (1)
địa chỉ Địa chỉ 010 (2)
Địa chỉ 011 (3)
Địa chỉ 100 (4)
Địa chỉ 101 (5)
Địa chỉ 110 (6)
8 x 16 bit Địa chỉ 111 (7)

Dữ liệu 16 bit byte cao byte thấp


©2010, Dr. Dinh Duc Anh Vu 21

Computer Architecture – Chapter 5 ©Fall 2013, CS 21


dce
2013
Tổ chức theo dung lượng

A15 – A0 64K x 8 bit

64K x 8 bit

64K x 8 bit

2 4
A17 Giải mã
64K x 8 bit
A16 địa chỉ

Tổng cộng có 256K x 8 bit D7 – D0

©2010, Dr. Dinh Duc Anh Vu 22

Computer Architecture – Chapter 5 ©Fall 2013, CS 22


dce
2013
Tổ chức theo kích thước

64K x 8 bit 64K x 8 bit 64K x 8 bit 64K x 8 bit

A15 – A0

D31 – D24 D23 – D16 D15 – D8 D7 – D0

Tổng cộng có 64K x 32 bit

©2010, Dr. Dinh Duc Anh Vu 23

Computer Architecture – Chapter 5 ©Fall 2013, CS 23


dce
2013
Giải mã địa chỉ bộ nhớ
A12 A11
00 0000 0000

08 0000 1000
Bộ nhớ

0000
0000
07FF Bank 0
0800 Tuyến địa chỉ 0000
07FF

0FFF Mạch
1000 giải mã Bank 1 07FF
17FF địa chỉ 0000
1800
Bank 2 07FF
1FFF
0000
10 0001 0000
Bank 3 07FF

18 0001 1000
©2010, Dr. Dinh Duc Anh Vu 24

Computer Architecture – Chapter 5 ©Fall 2013, CS 24


dce
2013
Giải mã địa chỉ bộ nhớ
Địa chỉ A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0

0000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1

...

07FF 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1

0800 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0

0801 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1

...

0FFF 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1

1000 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0

1001 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1

...

17FF 0 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1

1800 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0

1801 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1

...

1FFF 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1

©2010, Dr. Dinh Duc Anh Vu 25

Computer Architecture – Chapter 5 ©Fall 2013, CS 25


dce
2013
Mạch chi tiết
U5 U3
A0 8 9 D0 A0 8 9
A0 D0 A0 D0 D0
A1 7 10 D1 A1 7 10
A1 D1 A1 D1 D1
A2 6 11 D2 A2 6 11
A2 D2 A2 D2 D2
A3 5 13 D3 A3 5 13
A3 D3 A3 D3 D3
A4 4 14 D4 A4 4 14
A4 D4 A4 D4 D4
A5 3 15 D5 A5 3 15
A5 D5 A5 D5 D5
A6 2 16 D6 A6 2 16
A6 D6 A6 D6 D6
A7 1 17 D7 A7 1 17
A7 D7 A7 D7 D7
A8 23 A8 23
22 A8 22 A8
A9 A9 A9 A9
A10 19 A10 19
A10 A10
18 18
20 CS 20 CS
RD OE RD OE
21 21
WR WE WR WE
HM6116/SO HM6116/SO
U6 U4
8 9 8 9
A0 A0 D0 D0 A0 A0 D0 D0
7 10 7 10
A1 A1 D1 D1 A1 A1 D1 D1
A2 6 11 D2 A2 6 11 D2
5 A2 D2 13 5 A2 D2 13
A3 A3 D3 D3 A3 A3 D3 D3
A4 4 14 D4 A4 4 14 D4
3 A4 D4 15 3 A4 D4 15
A5 A5 D5 D5 A5 A5 D5 D5
2 16 2 16
A6 A6 D6 D6 A6 A6 D6 D6
1 17 1 17
A7 A7 D7 D7 A7 A7 D7 D7
23 23
A8 A8 A8 A8
22 22
A9 A9 A9 A9
19 19
A10 A10 A10 A10
18 18
20 CS 20 CS
U2A RD OE RD OE
21 21
WR WE WR WE
A11 2 4
A12 3 A Y0 5 HM6116/SO HM6116/SO
B Y1 6
1 Y2 7
MREQ G Y3
74LS139
©2010, Dr. Dinh Duc Anh Vu 26

Computer Architecture – Chapter 5 ©Fall 2013, CS 26


dce
2013
Bài tập (1)
1) Tính các địa chỉ CS1, CS2, CS3, CS4

U7A U8A
A13 2 4 CS1 A11 2 4
A Y0 A Y0
A15 3 5 CS2 A12 3 5 CS5 U9A
B Y1 B Y1
6 6 1
Y2 Y2
MREQ 1 7 1 7 3 CS3
G Y3 G Y3
2
74LS139 74LS139
74LS08

U10A
1
3 CS4
2

74LS08

2) Vẽ mạch giải mã địa chỉ cho bộ nhớ cho các trường hợp sau :
a. 14KB = 2 x 4KB + 2 x 2KB + 2 x 1KB
b. 32KB= 2 x 8KB + 4 x 4KB
3) Thiết kế mạch giải mã địa chỉ bộ nhớ cho hệ thống Z80-CPU: 1ROM 4K,
1RAM 4K và 2RAM 2K. Yêu cầu địa chỉ RAM liên tục từ 1800H trở đi.
©2010, Dr. Dinh Duc Anh Vu 27

Computer Architecture – Chapter 5 ©Fall 2013, CS 27


dce
2013
Bài tập (2)

4) Hãy xác định tầm địa chỉ làm cho các tín hiệu CS1,
CS2, CS3 trong mạch giải mã địa chỉ sau đây tích cực.
U1
1 15 U2A
A10 A Y0
2 14 2 4 U3A
A11 B Y1 A8 A Y0
3 13 3 5 1
A12 C Y2 A9 B Y1
12 6 2 12
Y3 Y2 CS3
11 1 7 13
Y4 G Y3
6 10
A15 G1 Y5 CS1
4 9 74LS139 74LS11
A14 G2A Y6
5 7
MREQ G2B Y7

74LS138 U2B
14 12
A7 A Y0
13 11
A8 B Y1
10
Y2 CS2
15 9
G Y3

74LS139

©2010, Dr. Dinh Duc Anh Vu 28

Computer Architecture – Chapter 5 ©Fall 2013, CS 28


dce
2013
Bài tập (3)
5. Một hệ thống máy tính 0000H
dùng CPU có tuyến địa chỉ 4K SRAM1
16 đường A15 – A0 và có
bản đồ sử dụng bộ nhớ 1K không có
như sau:
2K EPROM1
a) Hãy xác định tầm địa chỉ
sử dụng của từng chip bộ
3K không có
nhớ trong hệ thống.
b) Thiết kế mạch giải mã
địa chỉ bộ nhớ đầy đủ cho 4K SRAM 2
CPU trên. Tín hiệu chọn bộ
nhớ có tên là MREQ.
2K EPROM 2

©2010, Dr. Dinh Duc Anh Vu 29

Computer Architecture – Chapter 5 ©Fall 2013, CS 29


dce
2013
Nội dung trình bày
 Công nghệ và thuật ngữ liên quan đến bộ nhớ

 Tổ chức / thiết kế bộ nhớ

 Sự cần thiết phải có bộ nhớ đệm

 Phân loại bộ nhớ đệm

 Đánh giá hiệu năng của bộ nhớ đệm

Computer Architecture – Chapter 5 ©Fall 2013, CS 30


dce
2013
Khoảng cách về hiệu năng của CPU-DRAM

 Bộ xử lý MIPS chạy với tốc độ 2GHz có thể thực thi 100


lệnh trong thời gian truy xuất dữ liệu ở bộ nhớ chính
DRAM có thời gian truy xuất 50ns
©2011, Dr. Dinh Duc Anh Vu 31

Computer Architecture – Chapter 5 ©Fall 2013, CS 31


dce
2013
Quy luật cục bộ của tham khảo
 Chương trình có xu hướng sử dụng lại dữ liệu và lệnh
đã sử dụng hoặc đã tham khảo gần đây
 Cục bộ về mặt thời gian
 Nếu một phần tử (biến, hàm, đối tượng…) được tham khảo, sẽ
được tham khảo lại ngay sau đó
 VD: các lệnh trong vòng lặp được nạp lại sau mỗi lần lặp; hàm
printf có thể được gọi và thực thi nhiều lần
 Cục bộ về mặt không gian
 Một lệnh đang được thực thi, lệnh kế tiếp nhiều khả năng được
thực thi
 Một phần tử được tham khảo, các phần tử gần đó có khả truy
xuất sau đó
 VD: Các lệnh được thực thi tuần tự; duyệt các phần tử mảng
liên tiếp nhau
Computer Architecture – Chapter 5 ©Fall 2013, CS 32
dce
2013
VD tính cục bộ của tham khảo
 Xét đoạn chương trình: sum = 0;
for (i = 0; i<n; i++)
sum += a[i];
return sum
 Cục bộ về mặt thời gian
 Biến sum được tham khảo ở mỗi lần lặp
 Lệnh sum += a[i] được lặp lại

 Cục bộ về mặt không gian


 Các phần tử của mảng a[] lần lược được tham khảo qua mỗi lần
lặp
 Các lệnh liên tiếp nhau (dạng hợp ngữ của đoạn chương trình)
sẽ được thực thi

Computer Architecture – Chapter 5 ©Fall 2013, CS 33


dce
2013
VD tính cục bộ của tham khảo
 Sinh viên mượn sách tham
khảo từ thư viện
 Cục bộ về mặt thời gian
 Sách “Computer Architecture”
được tham khảo lại hàng
tuần trong học kỳ này

 Cục bộ về mặt không gian


 Sách của những môn khác
(vd: Cấu trúc dữ liệu – giải
thuật) được giảng dạy trong
kỳ này cũng được tham khảo

Computer Architecture – Chapter 5 ©Fall 2013, CS 34


dce
2013
Sự cần thiết của bộ nhớ đệm
 Khoản cách tốc độ ngày càng xa giữa CPU - DRAM
 Mỗi lệnh cần ít nhất một truy xuất đến bộ nhớ
 Một truy xuất để nạp lệnh
 Truy xuất thứ hai có thể có cho lệnh load/store

 Băng thông bộ nhớ giới hạn tốc độ thực hiện lệnh


 Chi phí trên một phần tử nhớ của bộ nhớ tốc độ cao
(SRAM, D Flip-Flop) lớn -> giá SRAM 1GHz ??
 Cần giải quyết bài toán bộ nhớ “vừa nhanh, vừa rẻ”
 Bài toán này được giải quyết bởi việc đệm dữ liệu (bộ
nhớ đệm, tổ chức bộ nhớ phân cấp) dựa vào đặc tính
“cục bộ của tham khảo” của một chương trình
Computer Architecture – Chapter 5 ©Fall 2013, CS 35
dce
2013
Bộ nhớ đệm là gì ?
 Bộ nhớ nhanh (SRAM), dung lượng ít
 Đệm một phần dữ liệu và lệnh của chương trình đang thực thi

 Được sử dụng để giảm thời gian truy xuất trung bình đến
bộ nhớ chính
 Bộ nhớ đệm tận dụng tính cục bộ về thời gian bởi …
 Giữ dữ liệu truy xuất gần đây gần với bộ xử lý

 Bộ nhớ đệm tận dụng tính cục bộ về không gian bởi …


 Đưa cả những dữ liệu gần dữ liệu đang truy xuất vào bộ nhớ
đệm

 Mục đích để đạt được


 Tốc độ truy xuất nhanh của SRAM dùng trong bộ nhớ đệm
 Cân bằng chi phí của hệ thống bộ nhớ
Computer Architecture – Chapter 5 ©Fall 2013, CS 36
dce
2013
Tổ chức bộ nhớ phân cấp
 Các thanh ghi ở trên cùng
 Dung lượng thông thường < 1 KB
 Thời gian truy xuất (access time) < 0.5 ns
 Bộ nhớ đệm cấp 1 L1 Cache (8 – 64 KB)
Microprocessor
 Access time: 1 ns
Registers
 Bộ nhớ đệm L2 (512KB – 8MB)
L1 Cache
 Access time: 3 – 10 ns
L2 Cache
 Bộ nhớ chính (4 – 16 GB)

Bigger
Faster
 Access time: 50 – 100 ns Memory Bus
Main Memory
 Disk Storage (> 200 GB)
I/O Bus
 Access time: 5 – 10 ms
Magnetic or Flash Disk

Computer Architecture – Chapter 5 ©Fall 2013, CS 37


dce
2013
Đặc tính của bộ nhớ phân cấp

Đơn vị dịch Processor


chuyển Tính bao gộp
4-8 bytes (word)
giữa mỗi – những gì ở
cấp trong L1$ là
Chiều tăng L1$ tập con của
của thời 8-32 bytes (block) những gì ở
gian truy L2$ trong L2$ và
xuất theo là tập con của
1 to 4 blocks
khoảng những gì ở
cách đến Main Memory
trong bộ nhớ
bộ xử lý 1,024+ bytes chính và là tập
(disk sector = page)
con của bộ
Secondary Memory
nhớ thứ cấp

Kích thước tương đối củ bộ nhớ ở mỗi cấp

38

Computer Architecture – Chapter 5 ©Fall 2013, CS 38


dce
2013
Đệm dữ liệu của bộ nhớ đệm
Cấp đệm k có tốc độ
Cấp k: nhanh, dung lượng ít,
dữ liệu là tập con của
cấp đệm k+1
Dữ liệu được
dịch chuyển
giữa các cấp
theo đơn vị
“khối” (block)

Cấp đệm k+1 có tốc


chậm, dung lượng lớn,
Cấp k+1: dữ liệu được chia
thành từng khối

Computer Architecture – Chapter 5 ©Fall 2013, CS 39


dce
2013
Các khác niệm về bộ nhớ đệm
 Chương trình đang tham khảo
dữ liệu w ở trong block b
 Cache hit:
Cấp k:  Chương trình tìm thấy b ở bộ nhớ
đệm cấp k (vd: block 14)
 Cache miss:
 b (vd: 12) không có ở cấp k, phải
lấy từ cấp k+1, đồng thời được
đưa vào cấp k
 Cách ánh xạ? b sẽ được đưa vào
vị trí nào (vd: 12 mod 4 = 0)
Cấp
k+1:  Nếu bộ nhớ đệm cấp k đầy, một
block nào đó sẽ được thay thế:
 Chiến lược thay thế? vd: thay thế
bock đã được đưa vào sớm nhất
Computer Architecture – Chapter 5 ©Fall 2013, CS 40
dce
2013
Hoạt động của bộ nhớ đệm

Bộ xử lý yêu cầu “load” một dữ liệu w trong block b

So sánh trường tag của địa chỉ truy xuất với “tag address”
Miss (không tìm thấy
Hit (tìm
trong bộ nhớ đệm)
thấy trong
bộ nhớ Truy xuất block b từ bộ nhớ
đệm) cấp thấp hơn

Đưa block b vào bộ nhớ


đệm + thay thế nếu cần

Lấy dữ liệu w từ block b ở


bộ nhớ đệm cho bộ xử lý
Computer Architecture – Chapter 5 ©Fall 2013, CS 41
dce
2013
Nội dung trình bày
 Công nghệ và thuật ngữ liên quan đến bộ nhớ

 Tổ chức / thiết kế bộ nhớ

 Sự cần thiết phải có bộ nhớ đệm

 Phân loại bộ nhớ đệm

 Đánh giá hiệu năng của bộ nhớ đệm

Computer Architecture – Chapter 5 ©Fall 2013, CS 42


dce
2013
Bốn câu hỏi liên quan tới bộ nhớ đệm
 Q1: Một khối sẽ được đưa
vào đâu trong bộ nhớ đệm?
 Direct Mapped, Set Associative,
Fully Associative
 Q2: Làm sao để tìm một khối
(xác định hit/miss)?
 Block address, tag, index
 Q3: Khối nào sẽ được thay
thế khi miss và bộ nhớ đệm
đầy?
 FIFO, Random, LRU
 Q4: Việc ghi như thế nào?
 Write Back/Write Through (with
Write Buffer)
Computer Architecture – Chapter 5 ©Fall 2013, CS 43
dce
2013
Q1: Đưa một block vào bộ nhớ đệm

Block 12 được Bất kỳ vị trí Bất kỳ vị trí Tại vị trí 4


đưa vào vị trí nào nào trong set (12 mod 8)
nào? 0 (12 mod 4)
Computer Architecture – Chapter 5 ©Fall 2013, CS 44
dce
2013
Q2: Tìm một block trong bộ nhớ đệm

 Index: để tìm đến line (set) nào; so sánh Tag của địa chỉ
truy xuất với giá trị ở trường tags (với Valid bit V là hợp lệ)
 Offset: để xác định dữ liệu w cần lấy trong block b
 Hình trên: Direct mapped, 8 Byte/block, 4 line cache
 Offset: 3 bit; Index: 2 bit; Tag: 32 – (3 + 2) = 27 bit
Computer Architecture – Chapter 5 ©Fall 2013, CS 45
dce
2013
Q2: Tìm một block trong bộ nhớ đệm

 Index: để tìm đến set nào; so sánh Tag ở địa chỉ truy xuất
với tất cả giá trị ở trường tags trong set đã tìm đến (với
Valid bit V là hợp lệ)
 Hình trên: 2-way associative, 8 Byte/block, 4 line cache
 Offset: 3 bit; Index: 1 bit; Tag: 32 – (3 + 1) = 28 bit

Computer Architecture – Chapter 5 ©Fall 2013, CS 46


dce
2013
Ánh xạ một địa chỉ vào một block ở bộ nhớ đệm
 Ví dụ:
 Xét một bộ nhớ đệm direct-mapped có 256 block (line)
 Block size = 16 bytes
 Tính giá trị tag, index, byte offset của địa chỉ: 0x01FFF8AC
Block Address
 Lời giải 20 8 4

 32-bit địa chỉ được chia: Tag Index offset

 4-bit byte offset, vì block size = 24 = 16 bytes


 8-bit cache index, vì bộ nhớ đệm có 28 = 256 sets (1 set gồm 1
line/block)
 20-bit tag
 Byte offset = 0xC = 12 (4 bit thấp giá trị địa chỉ)
 Cache index = 0x8A = 138 (8 bit thấp tiếp theo của giá trị địa chỉ)
 Tag = 0x01FFF (20 bit cao của giá trị địa chỉ)

Computer Architecture – Chapter 5 ©Fall 2013, CS 47


dce
2013
Ví dụ Cache Hits & Misses
 Xét một bộ nhớ đệm direct-mapped có 32 block
 Bộ nhớ đệm ban đầu rỗng, Block size = 16 bytes
 Các địa chỉ sau (dạng thập phân) được tham khảo:
1000, 1004, 1008, 2548, 2552, 2556.
 Ánh xạ những địa chỉ đó vào block trong bộ nhớ đệm và xác định
hit/miss 23 5 4
Tag Index offset
 Lời giải:
 1000 = 0x3E8 cache index = 0x1E Miss (truy xuất lần đầu)
 1004 = 0x3EC cache index = 0x1E Hit
 1008 = 0x3F0 cache index = 0x1F Miss (V = không hợp lệ)
 2548 = 0x9F4 cache index = 0x1F Miss (khác tag)
 2552 = 0x9F8 cache index = 0x1F Hit
 2556 = 0x9FC cache index = 0x1F Hit

Computer Architecture – Chapter 5 ©Fall 2013, CS 48


dce
2013
Ví dụ Cache Hits & Misses

 Direct-mapped cache, 2 line, block size = 2 word


Start with an empty cache - all 0 1 2 3 4 3 4 15
blocks initially marked as not valid

0 miss 1 hit 2 miss


00 Mem(1) Mem(0) 00 Mem(1) Mem(0) 00 Mem(1) Mem(0)
00 Mem(3) Mem(2)

3 hit 4 miss 3 hit


01 5 4
00 Mem(1) Mem(0) 00 Mem(1) Mem(0) 01 Mem(5) Mem(4)
00 Mem(3) Mem(2) 00 Mem(3) Mem(2) 00 Mem(3) Mem(2)

4 hit 15 miss
01 Mem(5) Mem(4) 1101 Mem(5) Mem(4)
00 Mem(3) Mem(2) 15 14
00 Mem(3) Mem(2)

©2011, Dr. Dinh Duc Anh Vu 49

Computer Architecture – Chapter 5 ©Fall 2013, CS 49


dce
2013
Q3: Thay thế một block khi đầy + miss
 Không có lựa chọn trong bộ nhớ đệm “direct-mapped”
 Vớ bộ nhớ đệm “associative”, block nào được thay thế
khi đầy và miss?
 Ngẫu nhiên
 Least Recently Used (LRU)
 Thay thế block không được tham khảo lâu nhất
 Cập nhật thứ tự của block mỗi khi “hit”
 First In First Out (FIFO)
 Thay thế block đưa vào trước ở một set
 Một bộ đếm theo dõi được tăng mỗi khi “miss”

Computer Architecture – Chapter 5 ©Fall 2013, CS 50


dce
2013
Q4: Chiến lược ghi
 Trường hợp “Cache Hit”:
 Write Through – ghi dữ liệu vào cả bộ nhớ đệm và bộ nhớ
chính
 Write Back – chỉ ghi dữ liệu vào bộ nhớ đệm, ghi dữ liệu vào
bộ nhớ chính khi “miss”
 Trường hợp “Cache Miss”:
 Write Allocate – nạp block chứa dữ liệu cần ghi vào bộ nhớ
đệm, sau đó thực hiện ghi
 No Write Allocate – không thay đổi bộ nhớ đệm, chỉ ghi xuống
bộ nhớ chính
 Các kết hợp thông dụng:
 Write Through & No Write Allocate
 Write Back & Write Allocate

Computer Architecture – Chapter 5 ©Fall 2013, CS 51


dce
2013
Nội dung trình bày
 Công nghệ và thuật ngữ liên quan đến bộ nhớ

 Tổ chức / thiết kế bộ nhớ

 Sự cần thiết phải có bộ nhớ đệm

 Phân loại bộ nhớ đệm

 Đánh giá hiệu năng của bộ nhớ đệm

Computer Architecture – Chapter 5 ©Fall 2013, CS 52


dce
2013
Hit Rate & Miss Rate
 Hit Rate = Hits / (Hits + Misses)
 Miss Rate = Misses / (Hits + Misses)
 I-Cache Miss Rate = Miss rate tại bộ nhớ đệm lệnh
 D-Cache Miss Rate = Miss rate tại bộ nhớ đệm dữ liệu
 Ví dụ:
 1000 lệnh được nạp, 150 lần miss ở I-Cache
 25% là lệnh load-store, 50 lần miss ở D-Cache
 Tính I-cache và D-cache miss rate?

 I-Cache Miss Rate = 150 / 1000 = 15%


 D-Cache Miss Rate = 50 / (25% × 1000) = 50 / 250 = 20%

Computer Architecture – Chapter 5 ©Fall 2013, CS 53


dce
2013
Memory Stall Cycles
 Bộ xử lý stall trong trường hợp Cache miss
 Khi nạp lệnh từ Instruction Cache (I-cache)
 Khi load/store dữ liệu tại Data Cache (D-cache)

Memory stall cycles = Combined Misses  Miss Penalty


 Miss Penalty: số chu kỳ xung nhịp cần để xử lý “miss”
Combined Misses = I-Cache Misses + D-Cache Misses
I-Cache Misses = I-Count × I-Cache Miss Rate
D-Cache Misses = LS-Count × D-Cache Miss Rate
LS-Count (Load & Store) = I-Count × LS Frequency

Computer Architecture – Chapter 5 ©Fall 2013, CS 54


dce
2013
Memory Stall Cycles Per Instruction
 Memory Stall Cycles Per Instruction =
Combined Misses Per Instruction × Miss Penalty
 Miss Penalty được giả sử bằng nhau cho I-cache & D-
cache
 Miss Penalty được giả sử bằng nhau cho Load & Store
 Combined Misses Per Instruction =
I-Cache Miss Rate + LS Frequency × D-Cache Miss Rate
 Do đó, Memory Stall Cycles Per Instruction =
I-Cache Miss Rate × Miss Penalty +
LS Frequency × D-Cache Miss Rate × Miss Penalty

Computer Architecture – Chapter 5 ©Fall 2013, CS 55


dce
2013
Ví dụ vệ Memory Stall Cycles
 Xét một chương trình có các thông số sau:
 Instruction count (I-Count) = 106 lệnh
 30% là lệnh load & store
 D-cache miss rate là 5%; I-cache miss rate là 1%
 Miss penalty: 100 clock cycles (chu kỳ xung nhịp
 Tính combined misses per instruction và memory stall cycles
 Combined misses per instruction in I-Cache and D-Cache
 1% + 30%  5% = 0.025 combined misses per instruction
 25 lần miss trên 1000 lệnh
 Memory stall cycles
 0.025  100 (miss penalty) = 2.5 stall cycles per instruction
 Total memory stall cycles = 106  2.5 = 2,500,000

Computer Architecture – Chapter 5 ©Fall 2013, CS 56


dce
2013
CPU Time với Memory Stall Cycles

CPU Time = I-Count × CPIMemoryStalls × Clock Cycle

CPIMemoryStalls = CPIPerfectCache + Mem Stalls per Instruction

 CPIPerfectCache = CPI khi bộ nhớ đệm là lý tưởng (không


bị miss)

 CPIMemoryStalls = CPI khi tính đến memory stalls

 Memory stall cycles làm tăng CPI tổng thể

Computer Architecture – Chapter 5 ©Fall 2013, CS 57


dce
2013
Ví dụ CPI với Memory Stalls
 Một bộ xử lý có CPI là 1.5 cho trường hợp không miss
 Cache miss rate là 2% cho I-cache và 5% cho D-cache (load &
store)
 20% lệnh là load & store
 Cache miss penalty: 100 clock cycles cho cả I-cache & D-cache
 Tính CPI khi tính tới cache miss?
 Lời giải: Instruction data

Mem Stalls per Instruction = 0.02×100 + 0.2×0.05×100 = 3


CPIMemoryStalls = 1.5 + 3 = 4.5 cycles per instruction
CPIMemoryStalls / CPIPerfectCache = 4.5 / 1.5 = 3
Bộ xử lý chạy chậm đi 3 lần vì memory stall cycles
CPINoCache = 1.5 + (1 + 0.2) × 100 = 121.5 (rất lớn)
Computer Architecture – Chapter 5 ©Fall 2013, CS 58
dce
2013
Average Memory Access Time
 Average Memory Access Time (AMAT)
AMAT = Hit time + Miss rate × Miss penalty
 Thời gian truy xuất trung bình tính cả cho trường hợp hit
& miss
 Ví dụ: Tính AMAT cho bộ nhớ đệm:
 Thời gian truy xuất bộ nhớ đệm (Hit time) = 1 clock cycle = 2 ns
 Miss penalty: 20 clock cycles
 Miss rate: 0.05

 Lời giải:
AMAT = 1 + 0.05 × 20 = 2 cycles = 4 ns
Khi không dùng bộ nhớ đệm, AMAT sẽ bằng Miss penalty = 20 cycle

Computer Architecture – Chapter 5 ©Fall 2013, CS 59


dce
2013
Cải tiến hiệu năng của bộ nhớ đệm
 Average Memory Access Time (AMAT)
AMAT = Hit time + Miss rate * Miss penalty

 Công thức AMAT được sử dụng để thực hiện cải tiến


 Giảm Hit time
 Bộ nhớ đệm phải nhỏ và đơn giản

 Giảm Miss Rate


 Bộ nhớ đệm phải lớn, associativity nhiều, block size lớn

 Giảm Miss Penalty


 Bộ nhớ đệm phải nhiều cấp

Computer Architecture – Chapter 5 ©Fall 2013, CS 60


dce
2013
Phân loại Miss – 3C

 Compulsory (bắt buộc): Tham khảo đến một block chưa


tồn tại trong bộ nhớ đệm (valid bit có giá trị không hợp lệ)
 Capacity (dung lượng): Dung lượng bộ nhớ đệm không
đủ để chứa dữ liệu cần trong một chương trình (vd:
chương trình cần 5 block để chứa dữ liệu > 4)
 Conflict (xung đột): Đụng độ do thiếu associativity (vd:
chương trình lặp trên 3 block dữ liệu > 2)
Computer Architecture – Chapter 5 ©Fall 2013, CS 61
dce
2013
Phân loại Miss

Compulsory misses độc lập với cache size


Rất nhỏ khi chạy chương trình dài
Miss Rate
14% Capacity misses giảm khi tăng dung
1-way
lượng bộ nhớ đệm
12%
2-way
10% Conflict misses khi tăng
4-way tính associativity
8%
8-way
6%
Capacity
4% Compulsory

2%
0
1 2 4 8 16 32 64 128 KB Dung lượng

Computer Architecture – Chapter 5 ©Fall 2013, CS 62

You might also like