Skip to content

Commit b0429e0

Browse files
committed
mem: Add HBM2 pseudo channel interface configuration
Change-Id: I6f2fa14e28e3c1769710537c6b0ca5ef945bfa6f
1 parent bbb048e commit b0429e0

File tree

1 file changed

+82
-0
lines changed

1 file changed

+82
-0
lines changed

src/mem/DRAMInterface.py

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1152,6 +1152,88 @@ class HBM_1000_4H_1x64(HBM_1000_4H_1x128):
11521152
# self refresh exit time
11531153
tXS = '65ns'
11541154

1155+
# A single HBM2 x64 interface (tested with HBMCtrl in gem5)
1156+
# to be used as a single pseudo channel. The timings are based
1157+
# on HBM gen2 specifications. 4H stack, 8Gb per die and total capacity
1158+
# of 4GiB.
1159+
1160+
class HBM_2000_4H_1x64(DRAMInterface):
1161+
1162+
# 64-bit interface for a single pseudo channel
1163+
device_bus_width = 64
1164+
1165+
# HBM2 supports BL4
1166+
burst_length = 4
1167+
1168+
# size of channel in bytes, 4H stack of 8Gb dies is 4GiB per stack;
1169+
# with 16 pseudo channels, 256MiB per pseudo channel
1170+
device_size = "256MiB"
1171+
1172+
device_rowbuffer_size = "1KiB"
1173+
1174+
# 1x128 configuration
1175+
devices_per_rank = 1
1176+
1177+
ranks_per_channel = 1
1178+
1179+
banks_per_rank = 16
1180+
bank_groups_per_rank = 4
1181+
1182+
# 1000 MHz for 2Gbps DDR data rate
1183+
tCK = "1ns"
1184+
1185+
tRP = "14ns"
1186+
1187+
tCCD_L = "3ns"
1188+
1189+
tRCD = "12ns"
1190+
tRCD_WR = "6ns"
1191+
tCL = "18ns"
1192+
tCWL = "7ns"
1193+
tRAS = "28ns"
1194+
1195+
# BL4 in pseudo channel mode
1196+
# DDR @ 1000 MHz means 4 * 1ns / 2 = 2ns
1197+
tBURST = "2ns"
1198+
1199+
# value for 2Gb device from JEDEC spec
1200+
tRFC = "220ns"
1201+
1202+
# value for 2Gb device from JEDEC spec
1203+
tREFI = "3.9us"
1204+
1205+
tWR = "14ns"
1206+
tRTP = "5ns"
1207+
tWTR = "4ns"
1208+
tWTR_L = "9ns"
1209+
tRTW = "18ns"
1210+
1211+
#tAAD from RBus
1212+
tAAD = "1ns"
1213+
1214+
# single rank device, set to 0
1215+
tCS = "0ns"
1216+
1217+
tRRD = "4ns"
1218+
tRRD_L = "6ns"
1219+
1220+
# for a single pseudo channel
1221+
tXAW = "16ns"
1222+
activation_limit = 4
1223+
1224+
# 4tCK
1225+
tXP = "8ns"
1226+
1227+
# start with tRFC + tXP -> 160ns + 8ns = 168ns
1228+
tXS = "216ns"
1229+
1230+
page_policy = 'close_adaptive'
1231+
1232+
read_buffer_size = 64
1233+
write_buffer_size = 64
1234+
1235+
two_cycle_activate = True
1236+
11551237
# A single LPDDR5 x16 interface (one command/address bus)
11561238
# for a single x16 channel with default timings based on
11571239
# initial JEDEC specification

0 commit comments

Comments
 (0)