You are on page 1of 35

TRƯỜNG ĐẠI HỌC

SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH


HCMC University of Technology and Education

NHÓM 3 : KIẾN TRÚC MÁY TÍNH

BÁO CÁO

ĐỀ TÀI: DRAM VÀ MÔ PHỎNG DRAMSim2

DƯƠNG QUANG THỊNH 17119104


NGUYỄN ĐĂNG KHOA 17119085
LÊ TRÍ DŨNG 17119065
BÙI THỊ DIỄM 17119062
TRẦN TIẾN ĐẠT 17119068
NGUYỄN HỮU TRỌNG 17119109
VÕ QUANG LINH 17119089
NGUYỄN THÀNH TÍN 17119106
NGUYỄN TẤN ĐẠT 17119117
VŨ TẤN KHOA 17119086

Thành phố Hồ Chí Minh, 12/2019


Contents
CHƯƠNG 1: TỔNG QUAN VỀ DRAM...................................................................... 1
1.1 Định nghĩa............................................................................................................ 1
1.2 Tổ chức hệ thống DRAM.....................................................................................2
1.3 Vai trò của DRAM............................................................................................... 5
1.4 Nguyên tắc hoạt động...........................................................................................6
1.5 Phân loại DRAM.................................................................................................. 8
1.6 Ưu điểm và Nhược điểm của DRAM................................................................ 11
CHƯƠNG 2: CẤU TRÚC CỦA DRAM.................................................................... 13
2.1 DIMM, Channel và các thành phần khác.......................................................... 13
2.2 Command........................................................................................................... 14
CHƯƠNG 3: MEMORY CONTROLER...................................................................17
3.1 Bộ điều khiển(Controller).................................................................................. 17
3.2 Row-buffer-management policies......................................................................18
3.3 Ánh xạ địa chỉ(Address mapping)..................................................................... 20
3.4 Hàng chờ lệnh(Command Queue)..................................................................... 21
3.5 Latency............................................................................................................... 23
3.6 Refresh................................................................................................................25
CHƯƠNG 4: TỔNG QUAN MÔ PHỎNG BỘ NHỚ DRAMSim2.........................26
4.1 Ngõ vào DRAMSim2............................................................................................ 26
4.2 Kết quả mô phỏng DRAMSim2............................................................................28
TÀI LIỆU THAM KHẢO, LƯU Ý............................................................................. 32
BẢNG PHÂN CÔNG VÀ HOÀN THÀNH CÔNG VIỆC....................................... 33
CHƯƠNG 1: TỔNG QUAN VỀ DRAM
1.1 Định nghĩa
Bộ nhớ truy cập ngẫu nhiên động (DRAM) là một loại bộ nhớ bán dẫn ngẫu
nhiên lưu trữ từng bit dữ liệu trong một ô nhớ bao gồm một tụ điện nhỏ và một bóng
bán dẫn, cả hai thường dựa trên công nghệ bán dẫn oxit kim loại (MOS).
DRAM thường có dạng chip mạch tích hợp, có thể chứa hàng chục đến hàng
tỷ tế bào bộ nhớ DRAM. Chip DRAM được sử dụng rộng rãi trong các thiết bị điện tử
kỹ thuật, những nơi yêu cầu bộ nhớ máy tính dung lượng cao và chi phí thấp. Một
trong những ứng dụng lớn nhất cho DRAM là bộ nhớ chính (tạm gọi là "RAM") trong
các máy tính và card đồ họa hiện đại (trong đó "bộ nhớ chính" được gọi là bộ nhớ đồ
họa). Nó cũng được sử dụng trong nhiều thiết bị cầm tay và máy chơi game video.
Ngược lại, SRAM, nhanh hơn và đắt hơn DRAM, thường được sử dụng khi mà ở đó
tốc độ là mối quan tâm lớn hơn chi phí và kích thước, chẳng hạn như bộ nhớ đệm
trong bộ xử lý.
Do cần một hệ thống để thực hiện làm mới, DRAM có các yêu cầu về mạch và
thời gian phức tạp hơn SRAM, nhưng nó được sử dụng rộng rãi hơn nhiều. Ưu điểm
của DRAM là sự đơn giản về cấu trúc của các ô nhớ của nó: chỉ cần một bóng bán dẫn
và tụ điện cho mỗi bit, so với bốn hoặc sáu bóng bán dẫn trong SRAM. Điều này cho
phép DRAM đạt được mật độ rất cao, làm cho DRAM rẻ hơn nhiều trên mỗi bit. Các
bóng bán dẫn và tụ điện được sử dụng là cực kỳ nhỏ; với một chip bộ nhớ duy nhất có
thể chứa đến hàng tỷ cái . Do tính chất động của các ô nhớ, DRAM tiêu thụ một lượng
điện năng tương đối lớn, với các cách khác nhau để quản lý mức tiêu thụ năng lượng.

1
1.2 Tổ chức hệ thống DRAM

Hình 1.2

JEDEC - tổ chức bộ nhớ kiểu bus . Hình 1.2 cho thấy một hệ thống của bộ
điều khiển bộ nhớ và hai mô-đun bộ nhớ với bus dữ liệu 16 bit và địa chỉ 8 bit và bus
lệnh.

2
Hình 1.3

Một tế bào Dram bao gồm một tụ điện được kết nối bởi một bóng bán dẫn
thông qua dòng bit (hoặc dòng chữ số hoặc dòng cột). Dòng chữ số (hoặc dòng cột)
được kết nối với vô số ô được sắp xếp trong một cột. Dòng từ (hoặc dòng hàng) cũng
được kết nối với vô số ô, nhưng được sắp xếp thành một hàng. Nếu dòng từ được xác
định, thì bóng bán dẫn T1 trong Hình 1 được mở và tụ C1 được kết nối với dòng bit.
Tế bào bộ nhớ DRAM lưu trữ thông tin nhị phân dưới dạng điện tích được lưu
trữ trên tụ điện. Nút chung của tụ điện bị sai lệch khoảng tại VCC / 2. Do đó, tế bào
chứa điện tích Q = ± VCC / 2 • Ccell, nếu điện dung của tụ điện là Ccell. Điện tích là
Q = + VCC / 2 • Ccell nếu ô lưu trữ 1, nếu không thì điện tích là Q = -VCC / 2 • Ccell.
Các dòng rò khác nhau sẽ từ từ loại bỏ điện tích, làm cho hoạt động làm mới là không
thể tránh khỏi.
Nếu chúng ta mở bóng bán dẫn thông qua bằng cách yêu cầu dòng từ, thì điện
tích sẽ tiêu tan trên dòng chữ số, dẫn đến thay đổi điện áp. Sự thay đổi điện áp được
đưa ra bởi (Vsignal quan sát sự thay đổi điện áp trong dòng chữ số, Ccell điện dung
của tụ điện tế bào DRAM và Cline điện dung của dòng chữ số
Vsignal = Vcell • Ccell • (Ccell + Cline) -1

Ví dụ: nếu VCC là 3,3V thì Vcell là 1,65V. Các giá trị tiêu biểu cho công suất là

3
Cline = 300fF và Ccell = 50fF. Điều này dẫn đến cường độ tín hiệu là 235 mV. Khi
một ô DRAM được truy cập, nó chia sẻ điện tích của nó với dòng chữ số.

Hình 1.4

4
1.3 Vai trò của DRAM
Hình 1.5 minh họa vị trí của DRAM trong một mô hình PC. Một thiết bị DRAM riêng
lẻ thường kết nối gián tiếp với CPU (tức là bộ vi xử lý) thông qua bộ điều khiển bộ
nhớ.

Hình 1.5

Nhờ tăng dung lượng máy chủ và các công nghệ bộ nhớ đệm tinh vi, DRAM
có thể phục vụ như một tầng trong cơ sở hạ tầng lưu trữ. Ngay cả phần cứng máy chủ
tầm trung thường có khả năng chứa hơn 1TB DRAM và trong khi 1TB đó có thể tốn
gấp 3 đến 5 lần so với lưu trữ flash, khả năng hiệu suất của nó rất hấp dẫn. Ngoài ra,
khu vực lưu trữ này có thể truy cập trực tiếp qua khe CPU, do đó tạo ra độ trễ thấp
nhất có thể.

5
1.4 Nguyên tắc hoạt động
DRAM thường được sắp xếp trong một mảng hình chữ nhật của các ô lưu trữ
điện tích bao gồm một tụ điện và bóng bán dẫn trên mỗi bit dữ liệu. Một số ma trận
DRAM có hàng ngàn ô có chiều cao và chiều rộng.

Các đường ngang dài kết nối mỗi hàng được gọi là dòng từ. Mỗi cột của các ô
được tạo thành từ hai dòng bit, mỗi dòng được kết nối với mọi ô lưu trữ khác trong
cột. Chúng thường được gọi là các dòng bit "+" và "-".

Bộ khuếch đại cảm giác về cơ bản là một cặp biến tần được kết nối chéo giữa các
dòng bit. Biến tần đầu tiên được kết nối với đầu vào từ + bit-line và đầu ra đến - bit-
line. Đầu vào của biến tần thứ hai là từ - bit-line với đầu ra đến + bit-line. Điều này
dẫn đến phản hồi tích cực ổn định sau khi một dòng hoàn toàn ở mức điện áp cao nhất
và dòng bit khác ở mức điện áp thấp nhất có thể.

Hoạt động để đọc một bit dữ liệu lưu trữ DRAM .

Các bộ khuếch đại cảm giác bị ngắt kết nối.

Các dòng bit được nạp lại với điện áp chính xác bằng nhau ở giữa mức logic cao
và thấp (ví dụ: 0,5 V nếu hai mức là 0 và 1 V). Các đường bit đối xứng vật lý để giữ
điện dung bằng nhau, và do đó tại thời điểm này điện áp của chúng bằng nhau.

Mạch nạp điện bị tắt. Bởi vì các dòng bit tương đối dài, chúng có đủ điện dung để
duy trì điện áp được sạc trong một thời gian ngắn. Đây là một ví dụ về logic động .

Dòng từ của hàng sau đó được điều khiển cao để kết nối tụ lưu trữ của một phần
tử với dòng bit của nó. Điều này làm cho bóng bán dẫn tiến hành, chuyển điện tích từ
ô lưu trữ sang đường bit được kết nối (nếu giá trị được lưu là 1) hoặc từ đường bit
được kết nối đến ô lưu trữ (nếu giá trị được lưu là 0). Do điện dung của dòng bit
thường cao hơn nhiều so với điện dung của ô lưu trữ, nên điện áp trên dòng bit tăng

6
rất nhẹ nếu tụ điện của phần tử lưu trữ bị phóng điện và giảm rất ít nếu phần tử lưu trữ
được sạc (ví dụ: 0,54 và 0,45 V trong hai trường hợp). Vì các dòng bit khác giữ
0,50 V, có sự chênh lệch điện áp nhỏ giữa hai dòng bit xoắn.

Các bộ khuếch đại cảm giác (sense-amplifier) hiện được kết nối với các cặp bit-
line. Sau đó phản hồi tích cực xảy ra từ các bộ biến tần được kết nối chéo, do đó
khuếch đại chênh lệch điện áp nhỏ giữa các dòng bit lẻ và chẵn của một cột cụ thể cho
đến khi một dòng bit hoàn toàn ở điện áp thấp nhất và dòng kia ở điện áp cao tối
đa. Khi điều này đã xảy ra, hàng là "mở" (dữ liệu ô mong muốn có sẵn).

Tất cả các ô lưu trữ trong hàng mở được cảm nhận đồng thời và đầu ra bộ khuếch
đại cảm giác được chốt. Sau đó, một địa chỉ cột sẽ chọn bit nào để kết nối với bus dữ
liệu ngoài. Việc đọc các cột khác nhau trong cùng một hàng có thể được thực hiện mà
không có độ trễ mở hàng bởi vì, đối với hàng mở, tất cả dữ liệu đã được cảm nhận và
chốt.

Trong khi việc đọc các cột trong một hàng mở đang diễn ra, dòng điện sẽ chảy
ngược dòng bit từ đầu ra của bộ khuếch đại cảm giác và sạc lại các ô lưu trữ. Điều này
củng cố (tức là "làm mới") điện tích trong ô lưu trữ bằng cách tăng điện áp trong tụ
lưu trữ nếu nó được sạc để bắt đầu hoặc bằng cách giữ cho nó được xả nếu trống. Lưu
ý rằng do độ dài của các dòng bit, có độ trễ lan truyền khá dài để điện tích được
chuyển trở lại tụ điện của phần tử. Điều này cần thời gian đáng kể sau khi kết thúc
khuếch đại cảm giác, và do đó trùng lặp với một hoặc nhiều lần đọc cột.

Khi thực hiện với việc đọc tất cả các cột trong hàng mở hiện tại, dòng từ bị tắt để
ngắt kết nối các tụ điện lưu trữ (hàng được "đóng") khỏi các dòng bit. Bộ khuếch đại
cảm giác bị tắt và các dòng bit được sạc lại.

7
1.5 Phân loại DRAM
Khi nhìn vào chính công nghệ bộ nhớ, có rất nhiều loại DRAM khác nhau. Các
loại DRAM chính được tóm tắt dưới đây:

DRAM không đồng bộ: DRAM không đồng bộ là loại DRAM cơ bản mà tất cả
các loại khác dựa trên. DRAM không đồng bộ có các kết nối cho nguồn, địa chỉ đầu
vào và đường dữ liệu hai chiều.

Mặc dù loại DRAM này không đồng bộ, hệ thống được điều hành bởi bộ điều
khiển bộ nhớ có xung nhịp và điều này giới hạn tốc độ của hệ thống thành bội số của
tốc độ xung nhịp.

Có nhiều loại DRAM không đồng bộ khác nhau : RAS chỉ làm mới, ROR: Đây
là loại DRAM không đồng bộ cổ điển và được làm mới bằng cách lần lượt mở từng
hàng. Các chu kỳ làm mới được trải đều trên toàn bộ khoảng thời gian làm mới. Một
bộ đếm bên ngoài là cần thiết để làm mới các hàng liên tục.

CAS trước khi làm mới RAS, CBR: Để giảm mức độ mạch ngoài, bộ đếm cần
thiết cho việc làm mới đã được tích hợp vào chip chính. Đây trở thành định dạng
chuẩn để làm mới DRAM không đồng bộ. (Đây cũng là hình thức duy nhất thường
được sử dụng với SDRAM).

FPM DRAM: DRAM FPM hoặc DRAM Chế độ trang nhanh được thiết kế để
nhanh hơn các loại DRAM thông thường. Do đó, đây là loại DRAM chính được sử
dụng trong PC, mặc dù hiện tại nó đã lỗi thời vì nó chỉ có thể hỗ trợ tốc độ bus bộ nhớ
lên tới khoảng 66 MHz.

EDO DRAM: DRAM dữ liệu mở rộng, EDO DRAM là một dạng DRAM cung
cấp hiệu suất tăng so với DRAM FPM. Tuy nhiên, loại DRAM này vẫn chỉ có thể hoạt
động ở tốc độ lên tới khoảng 66 MHz.

8
EDO DRAM đôi khi được gọi là DRAM chế độ Hyper Page vì nó là sự phát
triển của loại DRAM của FPM mà nó mang nhiều điểm tương đồng. Loại DRAM
EDO có tính năng bổ sung rằng có thể bắt đầu một chu kỳ truy cập mới trong khi đầu
ra dữ liệu từ chu kỳ trước vẫn còn. Loại DRAM này đã bắt đầu xuất dữ liệu của nó
trên cạnh xuống của dòng / CAS. Tuy nhiên, nó không ức chế đầu ra khi dòng / CAS
tăng. Thay vào đó, nó giữ đầu ra hợp lệ cho đến khi / RAS không được xác nhận hoặc
cạnh rơi / CAS mới chọn địa chỉ cột khác. Trong một số trường hợp, có thể thực hiện
giao dịch bộ nhớ trong một chu kỳ đồng hồ hoặc cung cấp một cải tiến từ việc sử dụng
ba chu kỳ đồng hồ thành hai tùy thuộc vào kịch bản và bộ nhớ được sử dụng.

Điều này cung cấp cơ hội để tăng đáng kể mức hiệu năng bộ nhớ trong khi cũng
giảm chi phí.

BEDO DRAM: Burst EDO DRAM là một loại DRAM giúp cải thiện hiệu suất
của DRAM EDO thẳng. Ưu điểm của loại BEDO DRAM là nó có thể xử lý bốn địa
chỉ bộ nhớ trong một đợt tiết kiệm ba chu kỳ xung nhịp khi so sánh với bộ nhớ
EDO. Điều này được thực hiện bằng cách thêm bộ đếm địa chỉ trên chip đếm địa chỉ
tiếp theo.

BEDO DRAM cũng đã thêm một đường ống để cho phép chia chu kỳ truy cập
trang thành hai thành phần: thành phần đầu tiên truy cập dữ liệu từ mảng bộ nhớ đến
giai đoạn đầu ra, thành phần thứ hai đã đưa bus dữ liệu từ chốt này ở mức logic phù
hợp.

Vì dữ liệu đã có trong bộ đệm đầu ra, nên thời gian truy cập nhanh hơn - cải
thiện tới 50% so với EDO DRAM thông thường.

9
BEDO DRAM cung cấp một cải tiến đáng kể so với các loại DRAM trước đó,
nhưng vào thời điểm nó được giới thiệu, SDRAM đã được tung ra và chiếm lĩnh thị
trường. Do đó, BEDO DRAM ít được sử dụng.

SDRAM: DRAM đồng bộ là một loại DRAM nhanh hơn nhiều so với các dạng
RAM và DRAM thông thường trước đây. Nó hoạt động ở chế độ đồng bộ, đồng bộ
hóa với bus trong CPU.

RDRAM: Đây là Rambus DRAM - một loại DRAM được phát triển bởi
Rambus Inc, rõ ràng lấy tên từ công ty. Nó là đối thủ cạnh tranh với SDRAM và DDR
SDRAM và có thể hoạt động ở tốc độ nhanh hơn nhiều so với các phiên bản DRAM
trước đây.

10
1.6 Ưu điểm và nhược điểm DRAM
 Ưu điểm

 Mật độ dày đặt

 Chi phí thấp

 Cấu trúc phần tử bộ nhớ đơn giản

 Nhược điểm

 Yêu cầu mạch bên trong phức tạp hơn

 Quy trình sản xuất phức tạp

 Thông tin sẽ bị mất dần trừ khi dữ liệu được nạp lại đều đặn

 Tốc độ hoạt động tương đối chậm


 Bảng so sánh [1]

CƠ SƠ
SRAM DRAM FLASH
SO SÁNH

Tốc độ Nhanh Trung bình Đọc nhanh, viết chậm

Kích thước Nhỏ Lớn Nhỏ

Giá cả Đắt Rẻ Rẻ

Vai trò Bộ nhớ cache Bộ nhớ chính Bộ nhớ điện tĩnh

11
CƠ SƠ
SRAM DRAM FLASH
SO SÁNH

Cấu trúc Có cấu trúc phức Có cấu trúc đơn giản, Bao gồm các cổng
tạp, sử dụng bóng sử dụng tụ điện và rất logic.
bán dẫn và chốt. ít bóng bán dẫn.

Yêu cầu một 6 transistors 1 transistor 2 transistors


khối bộ nhớ

Năng lượng tiêu Thấp Cao Thấp


thụ

12
CHƯƠNG 2: CẤU TRÚC CỦA DRAM

2.1 DIMM, Channel và các thành phần khác

Figure 2.1

Figure 2.2

Figure 2.3
DIMM: DIMM (Dual In-line memory module) chứa CHIP ở cả hai mặt bao gồm
một chuỗi của các mạch tích hợp DRAM. Các module này được dán lên một board
mạch in.
CHANNEL: CHANNEL được kết nối với memory controller, khi máy tính chọn
một kênh , nó sẽ xác định một DIMM cụ thể.

13
RANK: RANK nằm trong DIMM và một DIMM thì chứa hai RANK..
CHIP: CHIP thì nằm trong RANK, một rank có thể chứa nhiều CHIP. Bên trong
CHIP thì có nhiều BANK.
BANK: BANK là mảng hai chiều gồm HÀNG (ROW) và CỘT (COLUMN) và
được xem như là MẢNG BỘ NHỚ (MEMORY ARRAY).

Figure 2.4

2.2 Command
+Activate command: để mở HÀNG (ROW) và hàng đó được đưa vào ROW BUFFER.
+Read/write command: ĐỌC/GHI cột ở trong ROW BUFFER.

14
+Precharge command: để đóng HÀNG(ROW) và chuẩn bị BANK cho lần truy cập sau.

Figure 2.5

Khi nhìn sâu vào CHIP, ta có thể thấy được nhiều BANK. BANK chứa một mảng
các hàng và cột. Các hàng và cột tạo nên mảng tế bào bộ nhớ.
Tổ chức của CHIP DRAM có một mạch gải mã hàng để giải mã địa chỉ hàng
được gửi bằng bus điều khiển, và có row buffer giải mã hàng để giả mã địa chỉ hàng và
sau đó là đệm dữ liệu.

15
DRAM read operation [1]: bộ nhớ phải đọc một địa chỉ:(row 0, column 0). Bộ
giải mã hàng giải mã một hàng cụ thể (row 0) được đề cập đến ở địa chỉ này. Sau đó,
hàng cụ thể đó được đẩy vào row buffer vì thế nó được hiển thị trong row buffer, Tiếp
theo, bộ nhớ có thể truy cập vào các cột được liên kết với row này. Ví dụ: đây là row 0,
bộ nhớ có thể truy cập vào tất cả các column thuộc row này:
[Row, Column]=(0,0);(0,1)……
Nếu bộ nhớ truy cập vào một địa chỉ khác mà có row khác với row 0 như row 1,
nó sẽ xảy ra xung đột (conflict) và lệnh precharge được thực thi để đóng row 0. Sau đó
chu trình đọc của DRAM được lặp lại như trên.
Sau khi tất cả các column của row này được giải mã thì một địa chỉ cụ thể sẽ được
gửi đến bus dữ liệu.

Row buffer: Cần được làm mới (refresh) theo chu kỳ. Tế bào DRAM dùng một tụ
điện và lượng điện nạp trong tụ bị rò rỉ vì thế giá trị được trữ trong row buffer bị thay
đổi. Bởi vì DRAM bị rò rỉ lượng điện nạp nên giá trị thì được lưu trong row buffer và
sẽ được ghi (write) lại vào tế bào để sử dụng cho chu trình đọc tiếp theo. Nghĩa là, row
buffer được dùng để lưu giá trị khi bộ nhớ truy cập đến một vị trí cụ thể sử dụng bộ
giải mã hàng và cột.

16
CHƯƠNG 3: MEMORY CONTROLER
3.1 Controller (BỘ ĐIỀU KHIỂN)

Trong các hệ thống máy tính, bộ điều khiển bộ nhớ là một phần của chipset cầu
bắc xử lý nhiều bộ vi xử lý, đồng xử lý đồ họa, giao tiếp với chipset cầu nam (lần lượt,
xử lý tất cả các chức năng I / O của hệ thống) , cũng như giao diện tới hệ thống
DRAM.

Được thiết kế để giảm thiểu kích thước khuôn, giảm thiểu tiêu thụ năng lượng,
tối đa hóa hiệu suất hệ thống, hoặc đơn giản là đạt được sự thỏa hiệp tối ưu hợp lý của
các mục tiêu thiết kế xung đột.
Chức năng của bộ điều khiển bộ nhớ DRAM là quản lý luồng dữ liệu vào và ra
khỏi các thiết bị DRAM được kết nối với bộ điều khiển DRAM đó trong hệ thống bộ
nhớ. Giao thức truy cập DRAM xác định giao thức giao diện giữa bộ điều khiển bộ
nhớ DRAM và hệ thống các thiết bị DRAM.

HÌNH 3.1

17
3.2 Row-buffer management policies

Chính sách quản lý Row- buffer

3.2.1 Open-Page Row-Buffer Management Policy

Chính sách quản lý Open-Page Row-Buffer

Chính sách quản lý open-page row-buffer được thiết kế để ưu tiên truy cập bộ
nhớ vào cùng một hàng bộ nhớ bằng cách giữ cho bộ khuếch đại cảm giác mở và giữ
một hàng dữ liệu để sẵn sàng truy cập. Khi một hàng dữ liệu được đưa đến mảng của
các bộ khuếch đại cảm giác trong một bank của DRAM, các cột khác nhau của cùng
một hàng có thể được truy cập lại với độ trễ tối thiểu của tCAS. Trong trường hợp truy
cập đọc bộ nhớ khác được thực hiện vào cùng hàng, việc truy cập bộ nhớ đó có thể xảy
ra với độ trễ tối thiểu do hàng đã hoạt động trong bộ khuếch đại cảm giác và chỉ cần
một lệnh truy cập cột để di chuyển dữ liệu từ bộ khuếch đại (SENSE-AMPLIFIER)
sang bộ điều khiển bộ nhớ.
Tuy nhiên, trong trường hợp quyền truy cập vào một hàng khác nhau của cùng
một bank, bộ điều khiển bộ nhớ trước tiên phải nạp ( điện tích) cho mảng DRAM, kích
hoạt một hàng khác kích hoạt, sau đó thực hiện truy cập cột.
Chính sách open-page row-buffer thường được triển khai trong các hệ
thống bộ nhớ của nền tảng số lượng bộ xử lý thấp
3.2.2 Close-Page Row-Buffer-Management Policy

Chính sách quản lý Close-Page Row-Buffer

Chính sách quản lý Close-Page Row-Buffer được thiết kế để ưu tiên truy cập
vào các vị trí ngẫu nhiên trong bộ nhớ và hỗ trợ tối ưu các mẫu yêu cầu bộ nhớ với
mức độ địa phương truy cập thấp.
Xác suất trúng hàng giảm và khả năng xung đột bank gia tăng trong các hệ
thống, đạt đỉnh điểm của các loại trong đó chính sách close-page cung cấp hiệu suất tốt
hơn cho hệ thống máy tính.
Chính sách close-page thường được triển khai trong các hệ thống bộ nhớ của các
nền tảng số lượng bộ xử lý lớn hơn là trong các hệ thống lớn, việc xen kẽ các
chuỗi yêu cầu bộ nhớ từ nhiều bối cảnh luồng, đồng thời, làm giảm vị trí của
chuỗi truy cập bộ nhớ kết quả.

18
3.2.3 Hybrid (Dynamic) Row-Buffer Management Policies

Chính sách Row-Buffer hỗn hợp (Động)

Để hỗ trợ các chuỗi yêu cầu bộ nhớ có tốc độ yêu cầu và truy cập địa chỉ có thể
thay đổi đáng kể tùy thuộc vào hoạt động, thời gian chạy của khối lượng công việc, bộ
điều khiển bộ nhớ DRAM được thiết kế cho điện toán đa năng có thể sử dụng kết hợp
lịch sử truy cập và bộ hẹn giờ để điều khiển động hàng chính sách quản lý row-buffer
để tối ưu hóa hiệu suất hoặc giảm thiểu điện năng tiêu thụ.
Tỷ lệ tối thiểu của các lần truy cập row buffer có nghĩa là nếu một chuỗi các
xung đột bank xảy ra liên tiếp nhanh chóng và tỷ lệ các yêu cầu đọc bộ nhớ là các lần
truy cập row buffer nằm dưới ngưỡng được tính toán trước, bộ điều khiển DRAM có
thể chuyển sang chính sách trang close-page để tốt hơn hiệu suất. Tương tự, nếu liên
tiếp nhanh chóng các yêu cầu bộ nhớ đến một bank nhất định được thực hiện cho cùng
một hàng, bộ điều khiển DRAM có thể chuyển sang chính sách open-page để cải thiện
hiệu suất.
Một cơ chế đơn giản được sử dụng trong các bộ điều khiển DRAM hiện đại để
cải thiện hiệu suất và giảm mức tiêu thụ điện năng là sử dụng bộ hẹn giờ để điều khiển
các bộ khuếch đại cảm giác. Nghĩa là, bộ hẹn giờ được đặt thành giá trị định trước khi
một hàng được kích hoạt. Đồng hồ đếm ngược với mỗi tích tắc đồng hồ và khi nó về 0,
lệnh nạp (điện tích) được ban hành để nạp vào bank. Trong trường hợp row buffer truy
cập vào bank mở, bộ đếm được đặt lại về giá trị cao hơn và lặp lại đếm ngược. Theo
cách này, thời gian và không gian hiện diện trong một chuỗi truy cập bộ nhớ nhất định
có thể được sử dụng mà không giữ các hàng mở vô thời hạn.

19
3.3 Ánh xạ địa chỉ (Address Mapping)

Sơ đồ ánh xạ địa chỉ (Address Mapping Scheme) là sơ đồ dùng để chuyển địa


chỉ vật lý được đưa vào thành các thành phần của hệ thống địa chỉ DRAM bao gồm
channel ID (kênh ), rank ID, bank ID, row ID, column ID. Đôi khi công việc của hàm
ánh xạ địa chỉ có thể được hiểu là phiên dịch địa chỉ. Nhiệm vụ chính của sơ đồ ánh xạ
địa chỉ bao gồm giảm thiểu tỉ lệ xung đột bank, xung đột row trong việc thực hiện các
lệnh liên tiếp, đồng thời gia tăng sự tương đồng của hệ thống bộ nhớ. Mỗi thành phần
của địa chỉ, được biểu diễn dưới dạng 1 dãy bit, có thể được phiên dịch thành nhiều địa
chỉ DRAM khác nhau, tùy thuộc vào sơ đồ ánh xạ địa chỉ.

20
Để bảo đảm hiệu năng tốt nhất, việc lựa chọn sơ đồ ánh xạ địa chỉ thường được
chọn cặp cùng với hệ thống quản lý row-buffer (row-buffer-management policy) của
khối điều khiển bộ nhớ (memory controller). Ví dụ như, trong trường hợp chọn hệ
thống quản lý row-buffer mở (Open-Page Row-Buffer-Management Policy), các địa
chỉ vật lý sau khi được phiên dịch thành địa chỉ DRAM, thường được phân thành các
channel khác nhau, nhưng lại có cùng địa chỉ row, bank, rank để tận dụng tối đa ưu
điểm của hệ thống mở.[1]
3.4 Hàng chờ lệnh (Command Queue)
Để điều khiển dòng dữ liệu giữa 2 khối điều khiển bộ nhớ DRAM (DRAM
memory controller) và các thiết bị DRAM, dòng dữ liệu được phiên dịch thành chuỗi
các lệnh DRAM trong hệ thống điều khiển bộ nhớ DRAM. Để tối đa hóa việc thực
hiện các lệnh DRAM, các lệnh này có thể được đặt vào 1 hàng chờ hoặc nhiều hàng
chờ khác nhau.
Với việc các lệnh DRAM đã được sắp xếp cấu trúc theo dạng hàng chờ lệnh,
khối điều khiển bộ nhớ DRAM (DRAM memory controller) sẽ ưu tiên thực hiện các
lệnh này dựa vào nhiều yếu tố khác nhau, bao gồm độ ưu tiên của lệnh, các tài nguyên
khả dụng để thực hiện lệnh được giao, địa chỉ bank của lệnh, thời gian yêu cầu lệnh,
lịch sử truy cập của khối đưa ra lệnh và các yếu tố liên quan.

21
Trong hàng chờ theo bank, giả sử các lệnh có độ ưu tiên như nhau, được sắp xếp
vào các hàng chờ lệnh khác nhau theo từng bank. Các chuỗi lệnh được phiên dịch, sau
đó được sắp xếp vào các hàng chờ khác nhau dựa vào địa chỉ bank của chúng.[1]

Chú thích hình: các lệnh được thực hiện theo vòng tròn trên từng bank, dựa trên độ
dài hàng chờ (queue depth – số lệnh có thể thực hiện được) hay tài nguyên hiện có.
 Đối với hệ thống mở (open-page), với hệ thống của hình 3.3, các lệnh trong hàng
chờ sẽ bao gồm 2 phần, 1 phần thuộc row đang được mở, phần còn lại sẽ là các
lệnh còn lại, thuộc các row khác. Sau khi các lệnh thuộc row được mở đã được
thực hiện, lệnh precharge sẽ được đưa ra để hệ thống có thể thực hiện các lệnh
của bank tiếp theo.
 Đối với hệ thống đóng (close-page), hệ thống của hình 3.3 sẽ thực hiện các lệnh
giữa các bank bất kì một cách tối ưu hơn, đồng thời không bị ảnh hưởng bởi
việc các thiếu điện áp của các mạnh logic.

Tuy nhiên, vẫn có các nhược điểm tồn tại, nhất là trong hệ thống mở (open-
page).Trong hệ thống mở, sơ đồ ánh xạ địa chỉ thường phiên dịch các địa chỉ vào
cùng một hàng đang mở, và do đó rất nhiều lệnh sẽ thuộc hàng chờ của hàng này.

22
3.5 Latency (ĐỘ TRỄ)
4 thông số cơ bản biểu diễn độ trễ của DRAM (Đơn vị: xung )
CL CAS Latency: số xung đồng hồ tính từ khi bộ nhớ gửi địa chỉ
column đến khi dữ liệu được trả lại
t RCD Row Address to Column Address Delay: số xung tối thiểu tính từ
lúc mở 1 row đến khi truy cập vào column được yêu cầu
t RP Row Precharge Time: số xung tối thiểu tính từ lúc yêu cầu lệnh
precharge đến khi mở row tiếp theo
t RAS Row Active Time: số xung tối thiểu tính từ khi truy cập vào row
đã kích hoạt đến khi đưa ra lệnh precharge

Độ trễ CAS , viết tắt của “Column Access Strobe”. Đây là số xung đồng hồ tính
từ khi bộ nhớ gửi địa chỉ column đến khi dữ liệu được trả lại. Thời gian CAS cao hơn
có thể dẫn đến độ trễ cao hơn ngay cả với tốc độ xung nhịp cao hơn. CAS càng thấp,
RAM càng nhanh và do đó, càng đắt. Khi quyết định giữa RAM có tốc độ xung nhịp
khác nhau, RAM có tốc độ xung nhịp cao hơn là vượt trội; nhưng khi chọn giữa RAM
có tốc độ xung nhịp giống hệt nhau, RAM có độ trễ CAS thấp hơn sẽ nhanh hơn.

23
A: Yêu cầu bị trì hoãn trong Hàng đợi
B: Yêu cầu được gửi đến Bộ điều khiển bộ nhớ
C: Yêu cầu trong hàng đợi lệnh
D: Các lệnh được gửi đến DRAM
E: Thông số độ trễ
E = CL - Row hit
E = CL + T RAS - Row miss
E = CL + T RAS + T RP - Row Conflict
F: Dữ liệu được gửi lại cho CPU
Độ trễ DRAM = A + B + C + D + E + F

24
3.6 Refresh
Từ "DRAM" là một từ viết tắt của bộ nhớ truy cập ngẫu nhiên động. Bản chất của
việc lưu trữ điện tích không liên tục trong các tế bào DRAM có nghĩa là điện tích được
lưu trữ trong các tụ lưu trữ sẽ dần bị rò rỉ qua các bóng bán dẫn truy cập. Do đó, để
duy trì tính toàn vẹn dữ liệu, các giá trị dữ liệu được lưu trữ trong các ô DRAM phải
được đọc định kỳ và khôi phục về mức điện áp đầy đủ tương ứng trước khi các điện
tích được lưu trữ phân rã thành các mức không thể phân biệt. Lệnh refresh hoàn thành
nhiệm vụ đọc và khôi phục dữ liệu trong các thiết bị DRAM và miễn là khoảng thời
gian giữa các lệnh refresh được thực hiện cho một hàng nhất định của mảng DRAM
ngắn hơn thời gian phân rã dữ liệu trong trường hợp xấu nhất, các lệnh refresh DRAM
có thể được sử dụng để đảm bảo tính toàn vẹn dữ liệu.
Hầu hết các thiết bị DRAM sử dụng thanh ghi địa chỉ hàng refresh để theo dõi địa
chỉ của hàng được refresh lần cuối. Thông thường, bộ điều khiển bộ nhớ gửi một lệnh
refresh cho thiết bị DRAM và thiết bị DRAM tăng địa chỉ trong thanh ghi địa chỉ hàng
refresh và đi qua một chu kỳ hàng cho tất cả các hàng có địa chỉ hàng đó trong tất cả
các ngân hàng trong thiết bị DRAM .
Trong hầu hết các thiết bị DRAM hiện đại, để đảm bảo tính toàn vẹn của dữ liệu
được lưu trữ trong các thiết bị DRAM, mỗi hàng DRAM chứa dữ liệu hợp lệ phải
được refresh ít nhất một lần mỗi vòng refresh, thường là cứ sau 32 hoặc 64 ms.
Luồng yêu cầu của bộ vi xử lý được phân tách thành các hàng yêu cầu đọc hoặc
ghi và các lệnh yêu cầu được đặt vào hàng đợi refresh. Theo cách này, trong trường
hợp yêu cầu refresh nằm dưới ngưỡng trì hoãn đặt trước, tất cả các yêu cầu đọc và ghi
sẽ được ưu tiên hơn yêu cầu refresh. Trong trường hợp hệ thống không hoạt động mà
không có yêu cầu đọc hoặc ghi đang chờ xử lý nào khác, thì yêu cầu refresh có thể
được gửi đến các thiết bị DRAM. Trong trường hợp hệ thống chứa đầy các yêu cầu
đọc và ghi đang chờ xử lý nhưng yêu cầu refresh DRAM gần vượt quá thời gian trì
hoãn tối đa, thì yêu cầu refresh DRAM sẽ nhận được mức ưu tiên cao nhất để đảm bảo
rằng yêu cầu refresh dược thực hiện trong khoảng thời gian yêu cầu để đảm bảo tính
toàn vẹn dữ liệu trong hệ thống bộ nhớ.

Hình 3.5

25
CHƯƠNG 4: TỔNG QUAN MÔ PHỎNG BỘ NHỚ DRAMSim2

Tổng quan mô phỏng

4.1 Ngõ vào DRAMSim2


Device Ini File:
Định nghĩa các đặc điểm cấu trúc của DRAM như là:
- DEVICE_WIDTH: số lượng bit mà dram có thể di chuyển trong 1 chu kỳ, hoặc số
chân dữ liệu trên chip.
- NUM_BANKS: số lượng bank của dram.
- NUM_ROWS: số lượng hàng trên 1 mảng của dram.
- NUM_COLS: số lượng cột trên 1mảng của dram.
Và các đặc điểm phi cấu trúc:
- REFRESH_PERIOD: chu kỳ làm tươi được tính bằng nano giây (nanoseconds).
- CL (CAS Latency): khoảng thời gian từ lúc gửi tín hiệu địa chỉ cột vào bộ nhớ
đến lúc bắt đầu có dữ liệu phản hồi, được tính bằng chu kỳ.( sẽ nói sau)

26
- tRCD( Row Address to Column Address Delay): số chu kỳ xung clock tối thiểu
cần thiết từ lúc mở hàng của bộ nhớ đến lúc truy cập cột ở trong hàng đó.
- tRP (Row Precharge Time): số chu kỳ xung clock tối thiểu cần thiết từ lúc gửi
lệnh precharge đến lúc mở ra hàng tiếp theo trong bộ nhớ.
- tRAS (Row Active Time): số chu kỳ xung clock tối thiểu cần thiết để hàng đó
active.
System Ini File : biểu diễn các đặc điểm cơ bản của Memory Controller:
- JEDEC_DATA_BUS_BITS: luôn để là 64 khi mô phỏng dòng DDR Dram.
- TRANS_QUEUE_DEPTH: transaction queue ( tạm dịch: hàng chờ giao dịch)
trong hàng đợi này chứa các lệnh ở cấp độ CPU như là: READ 0xbeef.
- CMD_QUEUE_DEPTH: command queue (tạm dịch: hàng chờ lệnh) trong hàng
chờ này chứa lệnh đã qua bước ánh xạ địa chỉ vật lý (address mapping) các lệnh
này ở cấp độ DRAM : CAS 544, RAS 4.
- ADDRESS_MAPPING_SCHEME: có 7 scheme tất cả, mỗi sheme là một thuật
toán ánh xạ địa chỉ vật lý khác nhau được nhà sx cung cấp sẵn để giải quyết vấn
đề row conflict.
 Memory Trace:
- Sơ lược qua về Trace-based Simulation: mục đích của giả lập này là nhìn vào
“vết tích” (trace) của hệ thống sau khi thực hiện mô phỏng qua đó đánh giá
hiệu năng, hiệu suất của hệ thống.
DRAMSim 2 cũng là một trình mô phỏng theo dạng Trace-based Simulation, “vết
tích”( hay trace) ở đây trong chế độ chạy độc lập chính là file
k6_aoe_02_short.trc( gọi là Trace File) trong TraceFile này có 3 cột :
MemoryAddress, Transaction Type(P_MEM_WR, P_MEM_RD,P_FETCH),
Cycles.
Trong trường hợp frontend driver tạo ra một TraceFile ở cột thứ ba được tính bằng
nanoseconds, ta phải đổi nó qua cycles bằng cách chạy python script có tên là
traceparse. Sau khi chạy xong tất cả cycles đã được đổi qua chu kỳ ( với 1 chu kỳ cycle

27
bằng 10ns).

4.2 Kết quả mô phỏng DRAMSim2:


Để có được kết quả đầu tiên chúng ta phải vào file system.ini chỉnh tất cả các
debug flags lên true.
[1] Ta có được kết quả mô phỏng cơ bản như sau:

Trong kết quả này, có các phần lưu ý sau:


- Mọi lệnh hay dữ liệu được gửi lên bus được đóng gói vào một object được gọi là
Bus Packet. Ví dụ:
BP [ACT] pa[0x5dec818] r[1] b[1] row[1502] col[800]
Thông tin được hiển thị ở trên đúng theo thứ tự: loại lệnh, địa chỉ vật lý, rank #,
bank #, hàng #, cột #.

28
- Dòng bắt đầu với “--” biểu diễn bus traffic
-- R0 Receiving On Bus : BP [ACT] pa[0x5dec7f0] r[0] b[3] row[1502] col[799]
=> Rank0 nhận được từ bus lệnh ACT active hàng 1502, cột 799 của bank 3, rank
0với địa chỉ vật lý 0x5dec7f0.
-- MC Issuing On Data Bus : BP [DATA] pa[0x7edc7e0] r[0] b[2] row[2029]
col[799] data[0]=...
=> Memory Controller gửi lên bus dữ liệu một data ở hàng 2029, cột 799, của
bank 2, rank 0.
-- MC Issuing On Command Bus : BP [READ_P] pa[0x5dec7f8] r[1] b[3]
row[1502] col[799]
=> Memory Controller gửi lên bus command một lệnh READ_P ở hàng 2029,
cột 799, của bank 2, rank 0.

- Hàng chờ giao dịch : chứa các lệnh cấp độ cpu như đã nói ở trên.

- Ánh xạ địa chỉ vật lý.

- Command queue: chứa các lệnh cấp độ DRAM như đã nói ở trên.

29
- Bank State: nằm ở memory controller để kiểm tra trạng thái của bank, mỗi ô []
biểu diễn 1 bank có 4 trạng thái idle, precharge, lowp, active ( hiển thị hàng
được active).
Ngoài ra còn có các khảo sát mà nhóm tiến hành để khảo sát sự khác biệt về tốc độ
của open page policy và close page policy:
Open-Page-Policy : (100 cycles) [1]

30
Close-Page-Policy : (100 cycles) [1]

 Có thể thấy với close page policy bandwidth trung bình thấp hơn rất nhiều so
với open page policy, cùng với đó là thời gian latency của close page cũng cao
hơn rất nhiều so với open page trong 100 cycles.
 Xét về năng lượng trung bình thì close page tiêu tốn ít năng lượng hơn so với
open page và để ý thì năng lượng dùng để đóng mở hàng (act/pre) của close
page nhiều hơn so với open page, lý do đã được giải thích ở trên.
 Nhìn chung qua mô phỏng DRAMSim2 chúng ta có thể quan sát được cách hoạt
động của DRAM, năng lượng tiêu tốn để thực hiện các hoạt động của nó qua đó
giúp ta nắm rõ hơn về hiệu năng, hiệu suất tiêu thụ của DRAM cụ thể hơn là
DDR DRAM.

31
TÀI LIỆU THAM KHẢO, LƯU Ý
 Impacts_of_Memory_Address_Mapping_Scheme_on_Reducing_DRAM_Self_refr
-esh_Power_for_Mobile_Computing_Devices by Zongwei Zhu, Jing Cao , Xi Li,
Junneng Zhan, Youqing X, and Gangyong Jia
 Memory Systems: Cache, DRAM, Disk by Bruce Jacob, Spencer W. Ng, David T.
Wang
 Computer Architecture: Main memory by Prof. Onur Mutlu, Carnegie Mellon
University
LƯU Ý
[1] PHẦN ĐƯƠC YÊU CẦU CHỈNH SỬA

32
BẢNG PHÂN CÔNG VÀ HOÀN THÀNH CÔNG VIỆC

TỔNG QUAN VÕ QUANG LINH: 50%


NGUYỄN HỮU TRỌNG: 50%
MEMORY CONTROLLER LÊ TRÍ DŨNG 35%
BÙI THỊ DIỄM 35%
VŨ TẤN KHOA 30%
CẤU TRÚC DRAM DƯƠNG QUANG THỊNH 35%
TRẦN TIẾN ĐẠT 35%
NGUYỄN THÀNH TÍN 30%
MÔ PHỎNG DRAMSIM2 NGUYỄN ĐĂNG KHOA 50%
LÊ TRÍ DŨNG 30%
NGUYỄN TẤN ĐẠT 20%
POWERPOINT LÊ TRÍ DŨNG 90%
TEAM 10%

33

You might also like