触发器 锁存器
触发器(Flip-flop)和锁存器(latch)被用作数据存储元件,用于存储一个 位 (二进制数字)的数据;其中两种状态中的一种代表"1",另一种代表"0"。这种数据存储可用于存储 状态 ,而这样的电路在电子学中被称为 时序逻辑 。当用于 有限状态机 时,其输出和下一个状态不仅取决于当前输入,还取决于其当前状态(因此,也取决于之前的输入)。它还可以用于脉冲计数,以及将可变时序的输入信号同步到某个参考时序信号。
“触发器”在历史上泛指使用门电路存储一位数据的电平触发(异步、透明或非透明)和边沿触发( 同步 ,或 时钟 )电路。[1] 现代作者将术语 触发器 专用于边沿触发存储元件,而将 锁存器 用于电平触发元件。[2][3] 可以使用“边沿触发”和“电平触发”这些术语来避免歧义。[4]
当电平触发的锁存器被使能时,它会变得透明,但边沿触发的触发器的输出仅在时钟边沿(正向或负向)发生变化。
RAM
随机存取存储器 (RAM; /ræm/ ) 是一种可以按任意顺序读取和修改的电子计算机存储器 ,通常用于存储工作数据和机器码 。[1][2] 随机存取存储器允许数据项几乎在相同的时间内被读取或写入,而不管数据在存储器内部的物理位置如何,这与其他直接访问数据存储介质(例如硬盘和磁带 )形成对比,在这些介质中,由于机械限制(如介质旋转速度和臂移动),读取和写入数据项所需的时间因其在记录介质上的物理位置而异。
在当今技术中,随机存取存储器以集成电路 (IC)芯片的形式存在,包含 MOS(金属氧化物半导体) 存储单元 。RAM 通常与易失性类型的存储器相关联,其中如果断电,存储的信息会丢失。两种主要的易失性随机存取半导体存储器类型是静态随机存取存储器 (SRAM)和动态随机存取存储器 (DRAM)。
非易失性 RAM 也已开发出来 [3],其他类型的非易失性存储器允许随机访问进行读操作,但要么不允许写操作,要么有其他种类的限制。这包括大多数类型的 ROM 和 NOR 闪存 。
从 CPU 至 DRAM 晶粒之间依据层级由大至小为 channel>DIMM>rank>chip>bank>row/column
从记忆体控制器出来之后,最先遇到的就是 channel,每个 channel 需要配有 1 组记忆体控制器、2 个 channel 配置 2 组……以此类推。而每个 channel 中能够拥有许多组 DIMM(Dual In-line Memory Module),DIMM 也就是目前消费者能够在市场上买到的记忆体模组,因为多年前的主机板必须购买记忆体颗粒(chip)直接插在主机板上,而后发展出 SIMM(Single In-line Memory Module),将多组记忆体颗粒焊在 1 片电路板上,成为记忆体模组,再将此电路板插在主机板上。接着为了增加资料吞吐量,将 1 条记忆体模组的频宽从 SIMM 的 32bit 改换成 DIMM 的 64bit,这设计依然沿用至今。
从记忆体颗粒过度到 SIMM 的时代,坊间出现了替使用者将记忆体颗粒焊到 SIMM 电路板上的服务,因为当时记忆体非常昂贵,花一些小钱就可以把记忆体延用至新的电脑上。
rank 指的是连结到同 1 个CS(Chip Select)的记忆体颗粒 chip,记忆体控制器能够对同 1 rank 的 chip 进行读写操作,而在同 1 rank 的 chip 也分享同样的控制讯号。以目前的电脑来说,因为 1 组 channel 的宽度为 64bit,所以能够同时读写 8byte 的资料,如果是具有 ECC 功能的记忆体控制器和 ECC 记忆体模组,那么 1 组 channel 的宽度就是 72bit。
SRAM
静态随机存取存储器 ( 静态 RAM 或 SRAM)是一种使用锁存电路(触发器) 来存储每个位的随机存取存储器 (RAM)。SRAM 是易失性存储器 ;断电时数据会丢失。
| Date of introduction | Chip name | Capacity (bits) | Access time | SRAM type | Manufacturer(s) | Process | MOSFET | Ref |
|---|---|---|---|---|---|---|---|---|
| March 1963 | — | 1 | ? | Bipolar (cell) | Fairchild | — | — | [11] |
| 1965 | ? | 8 | ? | Bipolar | IBM | ? | — | |
| SP95 | 16 | ? | Bipolar | IBM | ? | — | [45] | |
| ? | 64 | ? | MOSFET | Fairchild | ? | PMOS | [46] | |
| 1966 | TMC3162 | 16 | ? | Bipolar (TTL) | Transitron | ? | — | [10] |
| ? | ? | ? | MOSFET | NEC | ? | ? | [47] | |
| 1968 | ? | 64 | ? | MOSFET | Fairchild | ? | PMOS | [47] |
| 144 | ? | MOSFET | NEC | ? | NMOS | |||
| 512 | ? | MOSFET | IBM | ? | NMOS | [46] | ||
| 1969 | ? | 128 | ? | Bipolar | IBM | ? | — | [11] |
| 1101 | 256 | 850 ns | MOSFET | Intel | 12,000 nm | PMOS | [48][49][50][51] | |
| 1972 | 2102 | 1 kbit | ? | MOSFET | Intel | ? | NMOS | [48] |
| 1974 | 5101 | 1 kbit | 800 ns | MOSFET | Intel | ? | CMOS | [48][52] |
| 2102A | 1 kbit | 350 ns | MOSFET | Intel | ? | NMOS (depletion) | [48][53] | |
| 1975 | 2114 | 4 kbit | 450 ns | MOSFET | Intel | ? | NMOS | [48][52] |
| 1976 | 2115 | 1 kbit | 70 ns | MOSFET | Intel | ? | NMOS (HMOS) | [48][49] |
| 2147 | 4 kbit | 55 ns | MOSFET | Intel | ? | NMOS (HMOS) | [48][54] | |
| 1977 | ? | 4 kbit | ? | MOSFET | Toshiba | ? | CMOS | [49] |
| 1978 | HM6147 | 4 kbit | 55 ns | MOSFET | Hitachi | 3,000 nm | CMOS (twin-well) | [54] |
| TMS4016 | 16 kbit | ? | MOSFET | Texas Instruments | ? | NMOS | [49] | |
| 1980 | ? | 16 kbit | ? | MOSFET | Hitachi, Toshiba | ? | CMOS | [55] |
| 64 kbit | ? | MOSFET | Matsushita | |||||
| 1981 | ? | 16 kbit | ? | MOSFET | Texas Instruments | 2,500 nm | NMOS | [55] |
| October 1981 | ? | 4 kbit | 18 ns | MOSFET | Matsushita, Toshiba | 2,000 nm | CMOS | [56] |
| 1982 | ? | 64 kbit | ? | MOSFET | Intel | 1,500 nm | NMOS (HMOS) | [55] |
| February 1983 | ? | 64 kbit | 50 ns | MOSFET | Mitsubishi | ? | CMOS | [57] |
| 1984 | ? | 256 kbit | ? | MOSFET | Toshiba | 1,200 nm | CMOS | [55][50] |
| 1987 | ? | 1 Mbit | ? | MOSFET | Sony, Hitachi, Mitsubishi, Toshiba | ? | CMOS | [55] |
| December 1987 | ? | 256 kbit | 10 ns | BiMOS | Texas Instruments | 800 nm | BiCMOS | [58] |
| 1990 | ? | 4 Mbit | 15–23 ns | MOSFET | NEC, Toshiba, Hitachi, Mitsubishi | ? | CMOS | [55] |
| 1992 | ? | 16 Mbit | 12–15 ns | MOSFET | Fujitsu, NEC | 400 nm | ||
| December 1994 | ? | 512 kbit | 2.5 ns | MOSFET | IBM | ? | CMOS (SOI) | [59] |
| 1995 | ? | 4 Mbit | 6 ns | Cache (SyncBurst) | Hitachi | 100 nm | CMOS | [60] |
| 256 Mbit | ? | MOSFET | Hyundai | ? | CMOS | [61] |
关键技术
1️⃣ 工艺微缩与 FinFET/GAAFET 支持
- 微缩工艺(7nm, 5nm, 3nm, 2nm)
提升 SRAM 单元密度,降低访问延迟和功耗,但静态功耗和漏电更需优化。
- FinFET / GAAFET 工艺:
- 减少亚阈值泄漏电流。
- 提供更好的电流驱动能力,保证 SRAM 在低电压下的稳定工作。
2️⃣ 超低功耗 SRAM 技术
为适应移动端、NPU、边缘 AI 的低功耗需求:
- 电压缩减 (Voltage Scaling):在低电压下稳定工作。
- 中间态存储 (Retention Mode):降低保持数据时的静态功耗。
- Data-aware Write Assist (DAWA):写入时动态调整电压/电流,降低写入功耗。
3️⃣ 高密度 SRAM Cells
经典 6T SRAM 单元之外,衍生:
- 8T / 10T SRAM Cells:
- 增加额外晶体管实现读写分离,提高读稳定性和写速度,适应深亚微米工艺。
- 4T / 5T SRAM(动态 SRAM):
- 减少晶体管数量提高密度,但对刷新机制和稳定性要求更高。
4️⃣ 嵌入式 SRAM (eSRAM) 技术
- 将 SRAM 嵌入 SoC(CPU/NPU/GPU 内部),提供低延迟缓存。
- 优化布局与互连,缩短访问路径。
- 可与非易失性存储(如 MRAM、ReRAM)协作,用作高速 Cache。
5️⃣ 可配置 SRAM 架构
- 可根据应用场景在:
- 速度优先模式(牺牲部分功耗,优先低延迟)。
- 功耗优先模式(牺牲部分速度,降低能耗)。
- 适应不同的 AI、视频处理、实时任务场景。
6️⃣ 多端口 SRAM
- 单端口 SRAM(便宜但访问冲突) → 双端口 / 多端口 SRAM(支持多访问路径)。
- 在高吞吐需求(如 NPU 多 PE 同时访问同块缓存)中广泛应用。
7️⃣ SRAM 高速接口技术
- 改进 Peripheral Circuit(译码器、放大器)以降低访问延迟。
- 提供更高的带宽支持,与 DDR/HBM 配合为大模型推理提供高速缓存。
8️⃣ 错误校验与可靠性技术
- 随着 SRAM 尺寸缩小,软错误率增加。
- 引入 ECC(Error Correction Code)提升可靠性,避免存储错误影响运算。
9️⃣ 3D 集成 SRAM(未来方向)
- SRAM 与逻辑层 3D 堆叠(Monolithic 3D / TSV 互联),实现:
- 高密度缓存近距访问,
- 降低延迟与功耗,
- 支持大规模 AI 推理的 on-chip Cache。
术语
| cache | fully associative | write allocate |
| virtual memory | dirty bit | unified cache |
| memory stall cycles | block offset | misses per instruction |
| direct mapped | write back | block |
| valid bit | data cache | locality |
| block address | hit time | address trace |
| write through | cache miss | set |
| instruction cache | page fault | random replacement |
| average memory access time | miss rate | index field |
| cache hit | n-way set associative | no-write allocate |
| page | least recently used | write buffer |
| miss penalty | tag field | write stal |
Cache、TCM、SPM
✅ Cache
- 全称: Cache Memory
- 本质: 硬件自动管理的快速缓冲存储器,位于 CPU 和主存(DRAM)之间。
- 作用: 利用局部性原理(时间、空间局部性)加速访存,隐藏 DRAM 延迟。
- 特性:
- 透明(软件不可直接控制)
- 一般分为 L1、L2、L3 多级
- 替换策略(LRU、FIFO 等)
- 自动写回或写直达
✅ TCM
- 全称: Tightly Coupled Memory
- 本质: 与 CPU/NPU 紧耦合的专用高速内存,通常是 SRAM。
- 作用: 提供确定性、低延迟的内存访问,适用于实时性高的场景(如 RTOS)。
- 特性:
- 软件可直接寻址(如常规内存)
- 无缓存一致性问题
- 无替换策略,容量较小
- 在 ARM Cortex 系列及 DSP、NPU 上常见
✅ SPM
- 全称: ScratchPad Memory
- 本质: 软件管理的专用高速内存(一般是片上 SRAM)。
- 作用: 软件显式分配与管理用于热点数据或特定任务,保证访问确定性。
- 特性:
- 软件显式分配和管理(非自动缓存)
- 无缓存一致性问题
- 容量较小(但可能比 Cache 大)
- 在 DSP、AI 芯片、嵌入式系统中常用于中间数据缓冲和 Kernel 优化
异同对比
| 特性 | Cache | TCM | SPM |
|---|---|---|---|
| 控制方式 | 硬件自动管理 | 软件直接访问,系统分配 | 软件显式分配和管理 |
| 可见性 | 对软件透明 | 软件可见,类似 RAM | 软件可见,需开发者管理 |
| 一致性问题 | 有,需要处理一致性(多核时) | 无一致性问题 | 无一致性问题 |
| 延迟确定性 | 不确定(受替换、冲刷影响) | 确定性高,固定延迟 | 确定性高,固定延迟 |
| 替换策略 | 有(LRU、FIFO 等) | 无 | 无 |
| 容量 | 小到中(多级 Cache) | 较小(通常 KB 级) | 小到中(根据设计需求) |
| 常见应用场景 | CPU/GPU 加速访存 | 实时系统、DSP、NPU、控制器 | DSP、NPU、特定 Kernel 优化 |
关系和设计权衡
✅ Cache 优势:
- 软件无需关心数据迁移,自动提升局部访问性能。
- 适合通用计算,开发效率高。
✅ Cache 劣势:
- 延迟不确定(可能 Cache Miss)
- 多核一致性管理复杂
- 能耗较高(Tag 比较、替换逻辑)
✅ TCM 优势:
- 提供可预测的固定延迟访问,适用于实时性关键任务。
- 软件无需复杂管理即可使用确定性延迟的空间。
✅ TCM 劣势:
- 容量小
- 无替换机制,超容量时需要软件决定何时使用外部内存。
✅ SPM 优势:
- 可预测的固定延迟访问(类似 TCM)
- 软件可决定放置热点数据、中间数据,便于特定算子优化
- 无替换机制,无一致性问题
✅ SPM 劣势:
- 需要开发者明确规划数据放置(增加软件复杂度)
- 容量有限
Cache性能评估
由于局部性和较小内存的较高速度,内存层次结构可以显著提高性能。评估缓存性能的一种方法是扩展第 1 章中的处理器执行时间方程。现在,我们考虑处理器在等待内存访问时停滞的周期数,我们称之为内存停滞周期。然后,性能是时钟周期时间以及处理器周期和内存停顿周期之和的乘积:
CPU execute time = (CPU clock cycyles + Memory stall cycles)* CPU clock time
此等式假定 CPU 时钟周期包括处理缓存命中的时间,并且处理器在缓存未命中期间停止。B.2节重新审视了这一简化假设。
内存停顿周期数取决于未命中次数和每次未命中的成本,这称为未命中惩罚:
Memory stall cycles = Number of misses * Miss penalty = IC * Misses / Instruction * Miss penalty = IC * Memory accesses / Instruction * Miss rate * Miss penalty
最后一种形式的优点是组件可以容易地测量。我们已经知道如何测量指令计数(IC)。(对于推测处理器,我们只计数提交的指令。)以同样的方式测量每个指令的内存引用数量;每个指令都需要一个指令访问,很容易决定它是否还需要一个数据访问。
请注意,我们将错失惩罚计算为平均值,但我们将在此处使用它,就像它是一个常数。由于先前的内存请求或内存刷新,高速缓存背后的内存在错失时可能会忙碌。处理器、总线和内存的不同时钟之间的接口处,时钟周期的数量也会有所不同。因此,请记住,使用单一数字表示错失惩罚是一种简化。
组件错失率只是导致错失的缓存访问的比例(即,错失的访问次数除以访问次数)。错失率可以使用缓存模拟器测量,这些模拟器获取指令和数据引用的地址跟踪,模拟缓存行为以确定哪些引用命中,哪些错失,然后报告命中和错失的总数。今天的许多微处理器提供硬件来计算错失次数和内存引用次数,这是一种更容易和更快的方式来测量错失率。
前述公式是一个近似值,因为读取和写入的错失率和错失惩罚经常不同。然后可以根据每个指令的内存访问次数、读取和写入的错失惩罚(以时钟周期计)以及读取和写入的错失率来定义内存阻塞时钟周期:
Memory stall clock cycles = IC * Reads per instruction * Read miss rate * Read miss penalty + IC * Writes per instruction * Write miss rate * Write miss penalty
我们通常通过结合读取和写入并找到读取和写入的平均未命中率和未命中率来简化完整的公式:
Memory stall clock cycles = IC * (Memory accesses / Instruction) * Miss rate * Miss penalty
未命中率是缓存设计最重要的衡量标准之一,但是,正如我们将在后面的章节中看到的那样,它不是唯一的衡量标准。
顺便说一下,每指令缺失通常以每1000条指令的缺失来报告,以显示整数而不是分数。因此,前面的答案也可以表示为每1000条指令30次缺失。
每指令缺失的优点是它独立于硬件实现。例如,推测性处理器获取的指令数量大约是实际提交的两倍,这可能会人为降低如果按照每次内存引用而不是每指令计算的缺失率。缺点是每指令的缺失是依赖于架构的;例如,80x86与RISC V的每条指令平均内存访问次数可能会有很大的不同。因此,每指令的缺失最受单一计算机系列架构师的欢迎,尽管RISC架构的相似性允许人们对其他架构有所了解。
DRAM
动态随机存取存储器 ( 动态 RAM 或 DRAM)是一种随机存取半导体存储器 ,它将每个位的数据存储在存储单元中,通常由一个微小的电容器和一个晶体管组成,两者通常基于金属氧化物半导体 (MOS)技术。虽然大多数 DRAM 存储单元设计使用电容器和晶体管,但有些只使用两个晶体管。在采用电容器的设计中,电容器可以充电或放电;这两种状态被用来表示位的两个值,通常称为 0 和 1。电容上的电荷会逐渐泄漏;如果没有干预,电容器上的数据很快就会丢失。为了防止这种情况,DRAM 需要一个外部内存刷新电路,该电路定期重写电容器中的数据,将它们恢复到原始电荷状态。这个刷新过程是动态随机存取存储器的定义特征,与静态随机存取存储器 (SRAM)不同,SRAM 不需要刷新数据。 与闪存不同,DRAM 是易失性存储器 (相对于非易失性存储器 ),因为它在断电时会迅速丢失数据。然而,DRAM 确实表现出有限的数据残留 。
刷新 DRAM 需要比 SRAM 更复杂的电路和时序。这种复杂性被 DRAM 存储单元的结构简单性所抵消:每个比特只需要一个晶体管和一个电容器,而 SRAM 则需要四个或六个晶体管。这使得 DRAM 能够达到非常高的密度 ,同时每比特的成本也随之降低。刷新数据会消耗电力,因此需要使用各种技术来管理整体功耗。正因如此,DRAM 通常需要配合内存控制器工作; 内存控制器需要了解 DRAM 参数,尤其是内存时序 ,以便初始化 DRAM,而不同的 DRAM 制造商和型号可能会有不同的时序要求。
"DRAM 市场的一个关键特征是,目前只有三家主要供应商——Micron Technology、SK Hynix 和 Samsung Electronics 在严格控制产能"。[4] 此外还有 Kioxia(2017 年分拆后为 Toshiba Memory Corporation),它不生产 DRAM。其他制造商生产和销售 DIMMs(但不包括其中的 DRAM 芯片),例如 Kingston Technology,还有一些制造商单独销售堆叠 DRAM(例如用于最快的超级计算机的艾可萨级 ),如 Viking Technology。其他人则将这类集成到其他产品中,例如 Fujitsu 将其集成到 CPU 中,AMD 集成到 GPU 中,以及 Nvidia,部分 GPU 芯片中使用了 HBM2。
DRAM(动态随机存取存储器)
| Date of introduction | Chip name | Capacity (bits) | DRAM type | Manufacturer(s) | Process | MOSFET | Area | Ref |
|---|---|---|---|---|---|---|---|---|
| 1965 | — | 1 bit | DRAM (cell) | Toshiba | — | — | — | [20][21] |
| 1967 | — | 1 bit | DRAM (cell) | IBM | — | MOS | — | [23][47] |
| 1968 | ? | 256 bit | DRAM (IC) | Fairchild | ? | PMOS | ? | [10] |
| 1969 | — | 1 bit | DRAM (cell) | Intel | — | PMOS | — | [47] |
| 1970 | 1102 | 1 kbit | DRAM (IC) | Intel, Honeywell | ? | PMOS | ? | [47] |
| 1103 | 1 kbit | DRAM | Intel | 8,000 nm | PMOS | 10 mm2 | [62][63][24] | |
| 1971 | μPD403 | 1 kbit | DRAM | NEC | ? | NMOS | ? | [64] |
| ? | 2 kbit | DRAM | General Instrument | ? | PMOS | 13 mm2 | [65] | |
| 1972 | 2107 | 4 kbit | DRAM | Intel | ? | NMOS | ? | [48][66] |
| 1973 | ? | 8 kbit | DRAM | IBM | ? | PMOS | 19 mm2 | [65] |
| 1975 | 2116 | 16 kbit | DRAM | Intel | ? | NMOS | ? | [67][10] |
| 1977 | ? | 64 kbit | DRAM | NTT | ? | NMOS | 35 mm2 | [65] |
| 1979 | MK4816 | 16 kbit | PSRAM | Mostek | ? | NMOS | ? | [68] |
| ? | 64 kbit | DRAM | Siemens | ? | VMOS | 25 mm2 | [65] | |
| 1980 | ? | 256 kbit | DRAM | NEC, NTT | 1,000–1,500 nm | NMOS | 34–42 mm2 | [65] |
| 1981 | ? | 288 kbit | DRAM | IBM | ? | MOS | 25 mm2 | [69] |
| 1983 | ? | 64 kbit | DRAM | Intel | 1,500 nm | CMOS | 20 mm2 | [65] |
| 256 kbit | DRAM | NTT | ? | CMOS | 31 mm2 | |||
| January 5, 1984 | ? | 8 Mbit | DRAM | Hitachi | ? | MOS | ? | [70][71] |
| February 1984 | ? | 1 Mbit | DRAM | Hitachi, NEC | 1,000 nm | NMOS | 74–76 mm2 | [65][72] |
| NTT | 800 nm | CMOS | 53 mm2 | [65][72] | ||||
| 1984 | TMS4161 | 64 kbit | DPRAM (VRAM) | Texas Instruments | ? | NMOS | ? | [73][74] |
| January 1985 | μPD41264 | 256 kbit | DPRAM (VRAM) | NEC | ? | NMOS | ? | [75][76] |
| June 1986 | ? | 1 Mbit | PSRAM | Toshiba | ? | CMOS | ? | [77] |
| 1986 | ? | 4 Mbit | DRAM | NEC | 800 nm | NMOS | 99 mm2 | [65] |
| Texas Instruments, Toshiba | 1,000 nm | CMOS | 100–137 mm2 | |||||
| 1987 | ? | 16 Mbit | DRAM | NTT | 700 nm | CMOS | 148 mm2 | [65] |
| October 1988 | ? | 512 kbit | HSDRAM | IBM | 1,000 nm | CMOS | 78 mm2 | [78] |
| 1991 | ? | 64 Mbit | DRAM | Matsushita, Mitsubishi, Fujitsu, Toshiba | 400 nm | CMOS | ? | [55] |
| 1993 | ? | 256 Mbit | DRAM | Hitachi, NEC | 250 nm | CMOS | ? | |
| 1995 | ? | 4 Mbit | DPRAM (VRAM) | Hitachi | ? | CMOS | ? | [60] |
| January 9, 1995 | ? | 1 Gbit | DRAM | NEC | 250 nm | CMOS | ? | [79][60] |
| Hitachi | 160 nm | CMOS | ? | |||||
| 1996 | ? | 4 Mbit | FRAM | Samsung | ? | NMOS | ? | [80] |
| 1997 | ? | 4 Gbit | QLC | NEC | 150 nm | CMOS | ? | [55] |
| 1998 | ? | 4 Gbit | DRAM | Hyundai | ? | CMOS | ? | [61] |
| February 2001 | ? | 4 Gbit | DRAM | Samsung | 100 nm | CMOS | ? | [55][81] |
| June 2001 | TC51W3216XB | 32 Mbit | PSRAM | Toshiba | ? | CMOS | ? | [82] |
关键技术
1️⃣ 工艺微缩(Process Scaling)
- 不断缩小 DRAM 的 存储单元(电容+晶体管)尺寸,提升密度和容量,降低单位成本。
- 挑战:
- 电容难以保持足够电荷避免数据丢失(信号完整性下降)。
- 漏电流增大,刷新频率需提升,功耗随之增加。
- 技术改进:
- 使用高介电常数材料(如 HfO₂)提升单位面积电容值。
- 电容三维结构(如深沟槽、堆叠式电容)增加有效电容面积。
2️⃣ DDR (Double Data Rate) 技术演进
| 代际 | 速率 | 特征 |
|---|---|---|
| DDR | ~400 MT/s | 双沿采样 |
| DDR2 | ~800 MT/s | 预取长度 x4,降低功耗 |
| DDR3 | ~1600 MT/s | 预取长度 x8,降低功耗 |
| DDR4 | ~3200 MT/s | Bank Group,Pre-fetch x8 |
| DDR5 | ~6400+ MT/s | 高速 IO,更多 Bank,ECC 内置 |
关键作用:
- 同一时钟频率下利用上升沿和下降沿传输数据,提升有效带宽。
- 增加预取深度和 Bank 数量以提升并行访问效率。
3️⃣ LPDDR (Low Power DDR) 系列
- 用于手机、移动设备、边缘设备,特点:
- 低电压(1.2V → 1.1V → 0.9V)
- 深度休眠、局部刷新、可调速率降低功耗
- 最新 LPDDR5 可达 6400+ MT/s,兼顾速度与低功耗。
4️⃣ 多 Bank 架构与地址交织
- 提升并行访问能力,降低 Row Conflict。
- 地址交织使连续访问分散到不同 Bank,提高带宽利用率,减少延迟。
5️⃣ HBM (High Bandwidth Memory)
- 3D 堆叠 DRAM(通过 TSV 实现芯片堆叠)
- 特点:
- 高带宽(>400 GB/s)
- 大容量(8GB、16GB、32GB)
- 芯片近距堆叠降低延迟和功耗
- 应用于 GPU、NPU、HPC、大模型推理与训练场景。
6️⃣ HMC (Hybrid Memory Cube)
- 类似 HBM,通过 TSV 垂直堆叠多层 DRAM Die。
- 内置高效控制器和交叉开关(crossbar switch),支持更高带宽和可扩展性。
7️⃣ GDDR (Graphics DDR)
- 针对 GPU 图形处理和 AI 加速器优化:
- GDDR5 → GDDR6 → GDDR6X(最高支持 20+ Gbps/pin)
- 高速大带宽支持大规模矩阵并行运算。
8️⃣ 刷新优化技术
随着 DRAM 单元缩小,保持电荷变难,刷新技术持续演进:
- 自动刷新(Auto-Refresh)
- 自刷新(Self-Refresh)
- 温度感知刷新(Temp-Sensitive Refresh)
- Fine Granularity Refresh(细粒度刷新,DDR4/DDR5 支持)
9️⃣ 错误校验与容错(ECC DRAM)
- 高可靠性场景(服务器、HPC、存储)引入 ECC(Error Correction Code)。
- 检测并修复单比特错误,检测多比特错误,保证数据可靠性。
3D DRAM + Logic Integration(未来方向)
- DRAM 与处理器/NPU 核心 3D 堆叠(Near-Memory/Processing-In-Memory):
- 降低内存墙瓶颈
- 提高 AI 大模型推理效率
- 与 MRAM、ReRAM 等非易失性存储技术协作构建分层存储。
现代DRAM优化手段
| 优化类别 | 具体手段 | 目标 | 适用场景 / 说明 |
|---|---|---|---|
| 地址/数据访问优化 | Bank Interleaving / Address Interleaving | 将连续地址映射到不同 bank 或 channel,提高并行访问 | 大矩阵访问、卷积或 Transformer 矩阵乘加计算中常用 |
| Rank / Channel 并行 | 多 rank / channel 并行访问,提高总带宽 | 高性能服务器 / HPC / AI 加速器 | |
| Row Buffer Hit 优化 | 优先访问已激活的行,减少 tRCD + tRP 延迟 | 连续访问同一行数据 | |
| 地址映射策略(Bitwise / XOR Interleaving) | 分散连续地址到不同 bank / channel | 提高 bank 利用率,降低冲突 | |
| 数据压缩 / ECC 压缩 | 减少传输数据量,提高有效带宽 | 激活/权重矩阵可压缩场景 | |
| 访问调度优化 | FR-FCFS(First-Ready First-Come First-Serve) | 优先 row buffer hit,减少行切换延迟 | DRAM 控制器常用 |
| Out-of-order / Reorder Scheduling | 动态调度,隐藏长延迟访问 | 多 bank / channel 并行 | |
| Prefetch / Read-Ahead | 提前加载即将访问的数据 | 矩阵连续或规律访问模式 | |
| 突发 / 数据传输优化 | Burst Transfer | 一次命令传输多个连续数据,减少地址解码/控制开销 | DDR / HBM 内存,每次访问一行或 cache line 数据 |
| On-die Termination (ODT) | 减少信号反射,提高高速信号完整性 | 高速 DRAM 信号优化 | |
| 芯片/系统协同优化 | HBM / 3D-stacked DRAM | 堆叠多层,带宽高,能耗低 | GPU / AI 加速器 |
| Wide IO / Hybrid Memory Cube (HMC) | 内部多通道并行 | 高性能嵌入式 / AI 芯片 | |
| Ping-Pong / Double Buffer | 一块 buffer 计算,一块 buffer 读写 | 隐藏 DRAM 访问延迟,AI 加速器常用 | |
| Near-Memory / In-Memory Computing | DRAM 附近做简单计算 | 减少数据移动成本,大模型推理场景 |
SDRAM
同步动态随机存取存储器 ( 同步动态 RAM 或 SDRAM) 是任何一种其外部引脚接口操作由外部提供的 时钟信号 进行协调的 DRAM。
从 20 世纪 70 年代初到 90 年代初生产的 DRAM 集成电路 (ICs) 使用了 异步 接口,其中输入控制信号对内部功能的影响直接,仅延迟于其半导体通路中的传输。SDRAM 具有 同步 接口,控制输入的变化在其时钟输入的上升沿后才会被识别。在由 JEDEC 标准化的 SDRAM 系列中,时钟信号控制一个内部 有限状态机 的步进,该状态机响应传入的命令。这些命令可以进行流水线处理以提高性能,先前启动的操作可以在接收新命令时完成。内存被划分为几个大小相等但独立的区域,称为 银行 ,允许设备同时在一个银行的内存访问命令上操作,并以 交错 方式加速访问。这使 SDRAM 能够实现比异步 DRAM 更高的并发性和数据传输速率。
DRAM 性能有几个限制。
- 最值得注意的是读周期时间,即连续两次对打开行的读操作之间的时间。这个时间从 66 MHz SDRAM 的 15 ns(1 MHz = 106 Hz)减少到 DDR-400 的 5 ns,但在 DDR2-800 和 DDR3-1600 时代基本保持不变。然而,通过将接口电路以基本读速率的越来越多的高倍数运行,可实现的带宽已迅速增加。
- 另一个限制是 CAS 延迟 ,即提供列地址和接收相应数据之间的时间。同样,在过去的几代 DDR SDRAM 中,这一值一直相对稳定在 10-15 纳秒。
DRAM 性能的主要限制(核心易记,适合教学/面试/体系化理解):
1️⃣ 带宽限制
- 受限于 I/O Pin 数与速率:
- DRAM 内部访问速度很高,但外部接口受限于 Pin 数和信号完整性。
- 高速率(DDR5/GDDR6X)受制于信号完整性、电磁干扰、功耗限制。
- 依赖预取机制:
- DDR 使用 4/8 位预取隐藏内部访问延迟,若访问模式不匹配,带宽利用率下降。
- 提升带宽常用方法:
- 增加并行通道(多 Channel)
- 增加 Bank 数量(并行 Bank 交织)
- 使用 HBM/HMC(通过 TSV 堆叠提高带宽)
2️⃣ 延迟限制(Latency)
- DRAM 的访问延迟相较 SRAM 较高:
- 激活(ACT)时需要打开行(Row Activate)
- 预充电(Precharge)需要关闭当前行
- 切换行时需额外开关行,导致 Row Conflict 延迟高
- 典型延迟:几十纳秒量级
- 随制程微缩,延迟下降幅度有限(远低于带宽提升速度),形成“内存墙(Memory Wall)”。
3️⃣ 电源与功耗限制
- 刷新(Refresh)引入额外功耗:
- DRAM 需周期性刷新维持数据完整性,占用部分访问周期。
- 高速操作下(高频率 I/O):
- 功耗增大,导致发热,需复杂散热设计。
- 高频操作可能受温度限制降频。
- 在移动设备(LPDDR)中尤为突出,需在性能和功耗间权衡。
4️⃣ 刷新开销限制
- 随着密度提升,刷新需要的功耗与时间开销增大。
- 刷新操作会占用可用带宽,影响实时访问。
- 高温环境下刷新周期需缩短,进一步增加功耗与影响性能。
5️⃣ 容量扩展限制
- DRAM 容量受:
- 制程微缩物理极限(电容尺寸难以继续缩小)
- 成本敏感(大容量成本仍高于 NAND 等)
- 大模型场景下,参数与激活值体积巨大,单颗 DRAM 容量有限,需通过堆叠(HBM)或多条通道实现容量扩展。
6️⃣ 随机访问效率限制
- DRAM 优于顺序访问(Burst Read/Write),随机访问效率低:
- 随机访问易触发 Row Conflict,增加延迟。
- 无法充分利用预取机制和带宽。
- AI/图形处理需优化数据排布以匹配 DRAM 访问模式。
7️⃣ 可扩展性与拓扑限制
- 多通道并行访问易受:
- 排布走线复杂性
- 信号完整性
- 时钟同步难度
限制。
- 大规模 DRAM 堆叠(如 HBM)需复杂 TSV 制造与散热设计。
SDRAM(同步动态随机存取存储器)
Part of this section is transcluded from Synchronous dynamic random-access memory. (edit | history)
| Date ofintro-duction | Chipname | Capacity(bits)[83] | SDRAMtype | Manufac-turer(s) | Pro-cess | MOS-FET | Area(mm2) | Ref |
|---|---|---|---|---|---|---|---|---|
| 1992 | KM48SL2000 | 16 Mbit | SDR | Samsung | ? | CMOS | ? | [84][28] |
| 1996 | MSM5718C50 | 18 Mbit | RDRAM | Oki | ? | CMOS | 325 | [85] |
| N64 RDRAM | 36 Mbit | RDRAM | NEC | ? | CMOS | ? | [86] | |
| ? | 1024 Mbit | SDR | Mitsubishi | 150 nm | CMOS | ? | [55] | |
| 1997 | ? | 1024 Mbit | SDR | Hyundai | ? | SOI | ? | [87] |
| 1998 | MD5764802 | 64 Mbit | RDRAM | Oki | ? | CMOS | 325 | [85] |
| Mar 1998 | Direct RDRAM | 72 Mbit | RDRAM | Rambus | ? | CMOS | ? | [88] |
| Jun 1998 | ? | 64 Mbit | DDR | Samsung | ? | CMOS | ? | [89][90][91] |
| 1998 | ? | 64 Mbit | DDR | Hyundai | ? | CMOS | ? | [87] |
| 128 Mbit | SDR | Samsung | ? | CMOS | ? | [92][90] | ||
| 1999 | ? | 128 Mbit | DDR | Samsung | ? | CMOS | ? | [90] |
| 1024 Mbit | DDR | Samsung | 140 nm | CMOS | ? | [55] | ||
| 2000 | GS eDRAM | 32 Mbit | eDRAM | Sony, Toshiba | 180 nm | CMOS | 279 | [93] |
| 2001 | ? | 288 Mbit | RDRAM | Hynix | ? | CMOS | ? | [94] |
| ? | DDR2 | Samsung | 100 nm | CMOS | ? | [91][55] | ||
| 2002 | ? | 256 Mbit | SDR | Hynix | ? | CMOS | ? | [94] |
| 2003 | EE+GS eDRAM | 32 Mbit | eDRAM | Sony, Toshiba | 90 nm | CMOS | 86 | [93] |
| ? | 72 Mbit | DDR3 | Samsung | 90 nm | CMOS | ? | [95] | |
| 512 Mbit | DDR2 | Hynix | ? | CMOS | ? | [94] | ||
| Elpida | 110 nm | CMOS | ? | [96] | ||||
| 1024 Mbit | DDR2 | Hynix | ? | CMOS | ? | [94] | ||
| 2004 | ? | 2048 Mbit | DDR2 | Samsung | 80 nm | CMOS | ? | [97] |
| 2005 | EE+GS eDRAM | 32 Mbit | eDRAM | Sony, Toshiba | 65 nm | CMOS | 86 | [98] |
| Xenos eDRAM | 80 Mbit | eDRAM | NEC | 90 nm | CMOS | ? | [99] | |
| ? | 512 Mbit | DDR3 | Samsung | 80 nm | CMOS | ? | [91][100] | |
| 2006 | ? | 1024 Mbit | DDR2 | Hynix | 60 nm | CMOS | ? | [94] |
| 2008 | ? | ? | LPDDR2 | Hynix | ? | |||
| Apr 2008 | ? | 8192 Mbit | DDR3 | Samsung | 50 nm | CMOS | ? | [101] |
| 2008 | ? | 16384 Mbit | DDR3 | Samsung | 50 nm | CMOS | ? | |
| 2009 | ? | ? | DDR3 | Hynix | 44 nm | CMOS | ? | [94] |
| 2048 Mbit | DDR3 | Hynix | 40 nm | |||||
| 2011 | ? | 16384 Mbit | DDR3 | Hynix | 40 nm | CMOS | ? | [102] |
| 2048 Mbit | DDR4 | Hynix | 30 nm | CMOS | ? | [102] | ||
| 2013 | ? | ? | LPDDR4 | Samsung | 20 nm | CMOS | ? | [102] |
| 2014 | ? | 8192 Mbit | LPDDR4 | Samsung | 20 nm | CMOS | ? | [103] |
| 2015 | ? | 12 Gbit | LPDDR4 | Samsung | 20 nm | CMOS | ? | [92] |
| 2018 | ? | 8192 Mbit | LPDDR5 | Samsung | 10 nm | FinFET | ? | [104] |
| 128 Gbit | DDR4 | Samsung | 10 nm | FinFET | ? | [105] |
SDRAM 发展关键技术
🚩 (1) Bank 架构与地址交织
- 引入多 Bank(4、8、16 Bank)结构,
- 支持 Bank Interleaving(交织访问):
- 在访问 Bank0 激活/预充电时可同时访问 Bank1,
- 减少等待延迟,提高带宽利用率。
🚩 (2) DDR 技术(Double Data Rate)
- SDRAM 向 DDR SDRAM 演进:
- DDR:双沿采样(时钟上升沿 + 下降沿同时传输数据),提高有效数据率。
- DDR2:预取深度 x4,速率更高。
- DDR3:预取深度 x8,引入 Fly-by 拓扑优化信号完整性。
- DDR4:引入 Bank Group 概念,提升并行度。
- DDR5:增加 Bank/Bank Group 数量,内置 ECC,提升 I/O 速率。
🚩 (3) 低功耗技术(LPDDR 系列)
- LPDDR(Low Power DDR)基于 SDRAM,优化功耗,适用于移动设备。
- 技术特性:
- 深度休眠(Deep Power Down)
- 自刷新(Self Refresh)
- 可变频率(Dynamic Frequency Scaling)
- LPDDR4/4X/5 提供高带宽与低功耗特性。
🚩 (4) 3D 堆叠(HBM / HMC)
- 基于 SDRAM 架构的高带宽存储技术:
- HBM(High Bandwidth Memory):
- 多层 DRAM Die 通过 TSV 堆叠,靠近逻辑 Die 部署。
- 高带宽(>400 GB/s),低功耗,低延迟。
- HMC(Hybrid Memory Cube):
- 类似堆叠方式,内置 Crossbar,高可扩展性。
- HBM(High Bandwidth Memory):
- 支持高性能计算(HPC)、GPU、NPU 的高吞吐 AI 推理与训练。
🚩 (5) 高速 IO 接口技术
- 提升 I/O Pin 的信号完整性:
- 差分信号(如 GDDR6X 的 PAM4 信号技术)
- ODT(On Die Termination)
- Fly-by 拓扑减少时序偏差
- 提升信号速率同时保证稳定性。
🚩 (6) 刷新优化
- 为维持数据稳定,SDRAM 需要刷新。
- 刷新优化技术包括:
- Auto-Refresh
- Self-Refresh
- Temperature Compensated Self-Refresh(TCSR,温感刷新)
- Fine Granularity Refresh(DDR4/DDR5 支持,按需微调刷新周期)
🚩 (7) 错误检测与纠正(ECC)
- 高可靠性场景下(服务器、数据中心、AI 推理),SDRAM 加入 ECC:
- 识别并修正单比特错误,
- 检测多比特错误,
- 保证长期运行的稳定性。
🚩 (8) 高密度与低电压工艺支持
- 工艺节点微缩(10nm, 7nm, 5nm)提升容量密度。
- 降低工作电压(DDR4:1.2V → DDR5:1.1V,LPDDR5:0.9V)。
- 适配高密度存储需求并降低功耗。
技术方向
| 技术方向 | 原理与作用 |
|---|---|
| DDR 技术 | 双沿采样,提升 2 倍速率 |
| 预取机制 | 内部预取多位,IO 高速分段输出,实现高速 |
| I/O Pin 数与并行通道 | 扩展总线宽度,多通道并行传输 |
| Bank 架构与交织 | 多 Bank 并行访问,减少冲突,提升带宽利用率 |
| Fly-By 与 ODT | 信号完整性优化,支持高频传输 |
| 低电压与先进工艺 | 降低 RC 延迟与功耗,支持更高频率 IO |
| 3D 堆叠 TSV(HBM) | 宽 IO 接口与近距部署,实现极高带宽 |
| PAM4 高速编码 | 每周期传递 2bit,IO 速率翻倍 |
SDRAM和DRAM区别
1️⃣ DRAM 的基本概念
- DRAM (Dynamic Random Access Memory):
- 使用电容存储数据(0/1 取决于是否有电荷),需要周期性刷新 (Refresh)。
- 异步工作方式: CPU 发出地址和控制信号后,DRAM 在一定时间后返回数据。
- 操作依赖外部严格控制时序,访问速度较慢。
2️⃣ SDRAM 的基本概念
- SDRAM (Synchronous DRAM):
- “Synchronous” 表示与 系统时钟同步,在时钟上升沿或下降沿完成命令和数据传输。
- 引入命令队列和流水线访问(Pipelining),在一条命令执行时可以发出下一条命令,提升效率。
- 提供 Bank 架构(通常 4 或 8 Bank)支持并行访问。
3️⃣ 核心区别表
| 项目 | DRAM (异步) | SDRAM (同步) |
|---|---|---|
| 时钟关系 | 与时钟无关,异步访问 | 与系统时钟同步,定时访问 |
| 时序控制 | 外部严格控制时序 | 内部控制时序,外部使用时序简单 |
| Pipeline 支持 | 不支持 | 支持命令和访问流水线 |
| Bank 架构 | 无(或较粗粒度行访问) | 内部多 Bank,可并行访问 |
| 访问速度 | 慢 | 快,带宽高 |
| 刷新 | 需要 | 需要 |
| 典型应用 | 早期内存条,部分嵌入式系统 | DDR/LPDDR 等均基于 SDRAM |
4️⃣ 是否支持地址交织
✅ DRAM 是否支持交织:
- 原生异步 DRAM 本身没有内部 Bank 架构用于自动交织,
- 但系统层(主控控制器或多颗 DRAM 组合)可 使用地址交织技术,
- 例如使用多条 DRAM 总线或多片 DRAM 芯片实现 Bank Interleaving,
- 将连续地址分配到不同的 DRAM 模块,提高并行访问效率。
✅ SDRAM 是否支持交织:
- SDRAM 内部通常 集成多个 Bank(4/8 Bank),
- 支持 Bank Interleaving(内部地址交织):
- 连续地址或交错地址被分配到不同 Bank 内,
- 在访问 Bank0 预充电或激活的同时,可以访问 Bank1,
- 提高带宽利用率,减少延迟。
Burst Transfer
我给你仔细讲一下 DRAM 突发传输(Burst Transfer) 的概念和原理,它在芯片和系统设计里非常常见,尤其是大模型加速器、GPU、CPU 内存访问优化中。
1️⃣ 基本概念
突发传输(Burst Transfer) 是指 DRAM 在一次访问请求后,不是只传输单个数据单元(比如 8 B 或 16 B),而是 连续传输一段连续地址的数据块。
- 目标:减少每次访问的 命令开销和行激活开销,提高内存带宽利用率。
- 突发长度(Burst Length, BL):一次连续传输的数据个数。例如 BL=4 表示一次传 4 个连续的数据字。
2️⃣ 为什么要有突发传输
DRAM 访问延迟高,主要由三个部分组成:
- 行激活时间(tRCD)
- 列访问时间(CL, CAS Latency)
- 数据传输时间
如果每次访问都只读一个 64 B 数据单元:
- 每次都要发起激活命令 + 列选通命令
- DRAM 内部预充电 / 行缓冲开销高
- 带宽利用率低
解决方案:一次激活一行,连续读取多列 → 突发传输。
3️⃣ 突发传输的工作流程
假设 DRAM 行宽是 8 KB,每个访问请求是 64 B:
- 命令阶段
- 控制器发起 读命令
- 指定起始列地址和突发长度 BL
- 内部读操作
- DRAM 将 一行(row buffer)装入内部缓冲
- 根据 BL,从缓冲中连续读取 BL 个数据单元
- 数据输出
- DRAM 在连续的时钟周期内输出这些数据
- CPU 或 DMA 可以连续接收,无需再发送读命令
好处:
- 减少每个数据单元的命令开销
- 利用行缓冲中的数据,提高带宽
- 在大矩阵计算或激活/权重加载中非常高效
应用场景
SDRAM 已取代传统异步 DRAM 成为主流 DRAM 类型,其所有后续发展(DDR/LPDDR/GDDR/HBM 等)均基于 SDRAM 架构:
(1) PC 和服务器内存
- DDR3 / DDR4 / DDR5 → 同步动态内存,均基于 SDRAM
- 为 CPU/GPU 提供主内存(Main Memory)
- 典型场景:
- 游戏、渲染
- 大模型训练和推理
- 多任务服务器负载
(2) 移动设备
- LPDDR4 / LPDDR5 → SDRAM 的低功耗版本
- 用于手机、平板、边缘 AI 设备作为主内存
(3) GPU / NPU 加速器
- GDDR6 / GDDR6X(显存)
- HBM2 / HBM3(高带宽内存)
- 用于深度学习推理、训练、高性能计算 HPC
(4) 嵌入式系统
- SDR SDRAM、DDR SDRAM
- 用于 MCU/FPGA 控制的图像处理、工业自动化、车载摄像头等需要中高速内存的应用
SGRAM
同步图形 RAM(SGRAM)是一种专为图形适配器设计的 SDRAM 特殊形式。它用于图形相关任务,如纹理内存和帧缓冲区 ,这些功能通常在显卡上实现。它增加了诸如位掩码 (在不影响其他位平面的情况下写入指定位平面)和块写入(用单一颜色填充内存块)等功能。与 VRAM 和 WRAM 不同,SGRAM 是单端口设计。然而,它能够同时打开两个内存页,这模拟了其他视频 RAM 技术的双端口特性。
图形双倍数据速率 SDRAM(GDDR SDRAM)是一种专为用作图形处理单元(GPU)主内存而设计的专用 DDR SDRAM。GDDR SDRAM 与 DDR3 等通用 DDR SDRAM 类型不同,尽管它们共享一些核心技术。它们的主要特点是 DRAM 核心和 I/O 接口的时钟频率更高,这为 GPU 提供了更大的内存带宽。截至 2025 年,GDDR 已有九代:GDDR2、GDDR3、GDDR4、GDDR5、GDDR5X、GDDR6、GDDR6X、GDDR6W 和 GDDR7。
SGRAM(同步图形随机存取存储器)
| Date of introduction | Chip name | Capacity (bits)[83] | SDRAM type | Manufacturer(s) | Process | MOSFET | Area | Ref |
|---|---|---|---|---|---|---|---|---|
| November 1994 | HM5283206 | 8 Mbit | SGRAM (SDR) | Hitachi | 350 nm | CMOS | 58 mm2 | [106][107] |
| December 1994 | μPD481850 | 8 Mbit | SGRAM (SDR) | NEC | ? | CMOS | 280 mm2 | [108][109] |
| 1997 | μPD4811650 | 16 Mbit | SGRAM (SDR) | NEC | 350 nm | CMOS | 280 mm2 | [110][111] |
| September 1998 | ? | 16 Mbit | SGRAM (GDDR) | Samsung | ? | CMOS | ? | [89] |
| 1999 | KM4132G112 | 32 Mbit | SGRAM (SDR) | Samsung | ? | CMOS | 280 mm2 | [112] |
| 2002 | ? | 128 Mbit | SGRAM (GDDR2) | Samsung | ? | CMOS | ? | [113] |
| 2003 | ? | 256 Mbit | SGRAM (GDDR2) | Samsung | ? | CMOS | ? | [113] |
| SGRAM (GDDR3) | ||||||||
| March 2005 | K4D553238F | 256 Mbit | SGRAM (GDDR) | Samsung | ? | CMOS | 77 mm2 | [114] |
| October 2005 | ? | 256 Mbit | SGRAM (GDDR4) | Samsung | ? | CMOS | ? | [115] |
| 2005 | ? | 512 Mbit | SGRAM (GDDR4) | Hynix | ? | CMOS | ? | [94] |
| 2007 | ? | 1024 Mbit | SGRAM (GDDR5) | Hynix | 60 nm | |||
| 2009 | ? | 2048 Mbit | SGRAM (GDDR5) | Hynix | 40 nm | |||
| 2010 | K4W1G1646G | 1024 Mbit | SGRAM (GDDR3) | Samsung | ? | CMOS | 100 mm2 | [116] |
| 2012 | ? | 4096 Mbit | SGRAM (GDDR3) | SK Hynix | ? | CMOS | ? | [102] |
| March 2016 | MT58K256M32JA | 8 Gbit | SGRAM (GDDR5X) | Micron | 20 nm | CMOS | 140 mm2 | [117] |
| January 2018 | K4ZAF325BM | 16 Gbit | SGRAM (GDDR6) | Samsung | 10 nm | FinFET | 225 mm2 | [118][119][120] |
| 模块类型 | 芯片类型 | 内存时钟 | 传输次数/秒 | 传输速率 | |
|---|---|---|---|---|---|
| 32条通道 | GDDR2 | 400–500 MHz | 0.8–1.0 GT/s | 25.6–32.0 Gbit/s | 3.2–4.0 GB/s |
| 32 通道 | GDDR3 | 400–1000 MHz | 0.8–2.0 GT/s | 25.6–64.0 Gbit/s | 3.2–8.0 GB/s |
| 32 通道 | GDDR4 | 868–1126 MHz | 1.7–2.3 GT/s | 55.6–72.1 Gbit/s | 6.9–9.0 GB/s |
| 32 通道 | GDDR5[3] | 1000–2000 MHz | 4.0–8.0 GT/s | 128.0–256.0 Gbit/s | 16.0–32.0 GB/s |
| 32条通道 | GDDR5X[4] | 1000–1808 MHz | 8.0–14.5 GT/s | 256.0–462.8 Gbit/s | 32.0–57.9 GB/s |
| 32条通道 | GDDR6 | 1375–2500 MHz | 11.0–20.0 GT/s | 352.0–640.0 Gbit/s | 44.0–80.0 GB/s |
| 32条通道 | GDDR6X | 1188–1438 MHz | 19.0–23.0 GT/s | 608.0–736.0 Gbit/s | 76.0–92.0 GB/s |
| 64条通道 | GDDR6W | ? | 22.0 GT/s | 1408.0 Gbit/s | 176.0 GB/s |
| 32条通道 | GDDR7 | ? | 28.0–40.0 GT/s | 896.0–1280.0 Gbit/s | 112.0–160.0 GB/s |
HBM
高带宽内存 (HBM)是由三星 、AMD 和 SK 海力士开发的一种高性能 RAM 接口,用于 3D 堆叠的 SDRAM。它设计用于与高性能图形加速器和网络设备协同工作。
HBM(高带宽内存)
| Date of introduction | Chip name | Capacity (bits)[8] | SDRAM type | Manufacturer(s) | Process | MOSFET | Area | Ref |
|---|---|---|---|---|---|---|---|---|
| 2013 | ? | ? | HBM | SK Hynix | ? | CMOS | ? | [45] |
| June 2016 | ? | 32 Gbit | HBM2 | Samsung | 20 nm | CMOS | ? | [75][76] |
| 2017 | ? | 64 Gbit | HBM2 | Samsung | 20 nm | CMOS | ? | [75] |
| 类型 | 发布 | 最大数据速率每引脚 | 堆叠 | 每堆叠 | |
|---|---|---|---|---|---|
| 最大容量 | 最大数据速率 | ||||
| HBM 1 | 2013年10月 | 1.0 Gb/s | 8×128 bit | 4 dies × 1 GB = 4 GB | 128 GB/s |
| HBM 2 | 2016年1月 | 2.4 Gb/s | 08 dies × 1 GB = 08 GB | 307 GB/s | |
| HBM 2E | 2019年8月 | 3.6 Gb/s | 12 个芯片 × 2 GB = 24 GB | 461 GB/s | |
| HBM 3 | 2022年1月 | 6.4 Gb/s | 16×64 bit | 12 dies × 2 GB = 24 GB | 819 GB/s |
| HBM 3E | 2023年5月 | 9.8 Gb/s | 16 颗芯片 × 3 GB = 48 GB | 1229 GB/s | |
| HBM 4 | 2026 | 6.4 Gb/s | 32×64 位 | 16 个芯片 × 4 GB = 64 GB | 1638 GB/s |
多通道内存架构
在数字电子和计算机硬件领域,多通道内存架构是一种通过在DRAM内存和内存控制器之间增加更多通信通道来提高数据传输速率的技术
交错式 DRAM
使用交错内存,内存地址依次分配给每个内存条。例如,在具有两个存储体的交错系统中(假设为字寻址存储器),如果逻辑地址 32 属于存储体 0,则逻辑地址 33 将属于存储体 1,逻辑地址 34 将属于存储体 0,依此类推. 当有n 个存储体并且存储位置i驻留在存储体i mod n中时,交错存储器被称为n 路交错。
具有 4 个存储体的内存交错示例。红色银行正在刷新,不能使用。
交错内存导致连续读取(这在多媒体和程序执行中都很常见)和连续写入(在填充存储或通信缓冲区时经常使用)实际上依次使用每个内存条,而不是重复使用同一个内存条。这导致显着提高内存吞吐量,因为每个存储体在读取和写入之间的等待时间最短。
主存(random-access memory,RAM)通常由DRAM内存芯片的集合组成,其中若干芯片可以组合在一起形成内存库。然后可以使用支持交错的存储控制器来布置这些存储体,使得存储体将交错。
DRAM 中的数据以页面为单位存储。每个 DRAM 库都有一个行缓冲区,用作访问库中任何页面的缓存。在读取 DRAM 库中的页面之前,它首先被加载到行缓冲区中。如果页面立即从行缓冲区中读取(或行缓冲区命中),则它在一个内存周期中具有最短的内存访问延迟。如果是行缓冲区未命中,也称为行缓冲区冲突,则速度较慢,因为新页面必须在读取之前加载到行缓冲区中。行缓冲区未命中发生在对同一存储区中不同内存页的访问请求得到服务时。行缓冲区冲突会导致内存访问的显着延迟。相反,对不同存储体的内存访问可以以高吞吐量并行进行。
行缓冲区冲突问题已得到充分研究,并提供了有效的解决方案。[1]行缓冲区的大小通常是操作系统管理的内存页的大小。行缓冲区冲突或未命中来自对同一存储体中不同页面的一系列访问。研究[1]表明,传统的内存交错方法会将高速缓存级别的地址映射冲突传播到内存地址空间,从而导致内存组中的行缓冲区未命中。基于排列的交错存储器方法以微不足道的微架构成本解决了这个问题。[1] Sun Microsystems在其产品中很快采用了这种置换交错方法。[2]这种免专利的方法可以在许多商业微处理器中找到,例如 AMD、Intel 和NVIDIA,用于嵌入式系统、笔记本电脑、台式机和企业服务器。[3]
在传统(平面)布局中,可以为存储体分配一个连续的内存地址块,这对于内存控制器来说非常简单,并且与通过交错实现的性能水平相比,在完全随机访问的情况下提供相同的性能。然而,实际上由于引用的局部性,内存读取很少是随机的,并且针对紧密访问进行 优化可以在交错布局中提供更好的性能。
内存的寻址方式对已缓存的内存位置的访问时间没有影响,仅对需要从 DRAM 检索的内存位置有影响。