高级计算机体系结构
高级计算机体系结构
芯片堆叠DRAM(3D-DRAM)
•叠片DRAM:
•顶层存储数据
•底层逻辑层存储各种控制、访问和接口电路
•魔法:堆叠表示高
密度,所以高的b/w插入器集成不那么昂贵。
•当前产品:
•混合存储立方体(微米)
•高带宽内存(三星、AMD和海力士)
•权衡:
•延迟与DRAM基本相同,但带宽高得多
•更贵,所以我们没有那么多内存…
•在GPU中:一直需要高带宽,但不需要那么多内存,所以它可以作为主内存。
•CPU怎么办:需要巨大的内存,因此成本至关重要…
新兴:混合内存立方体
混合存储立方体MCM
DRAM网络
•传统DRAM:星形拓扑
•HMC:网格等是可行的
混合存储立方体
•芯片堆栈中隔离的高速逻辑
•用于带宽的3D TSV
高带宽存储器(HBM)
•高速串行链路与2.5D硅插入器
•商业化,HBM2/HBM3…
[Shmuel Csaba Otto Traian]
未来:电阻存储器
•PCM:以材料的相位状态存储位
•备选方案:
•存储器,STT-MRAM
•不易挥发
•密集型:跨点架构(无访问设备)
•读取速度相对较快
•写入速度非常慢(功率也很高)
•书写耐力通常有限
•写入均衡(也用于闪存)
•避免冗余写入(读取、cmp、写入)
•修复单个位错误(写入、读取、cmp、修复)
•使用它来扩充/替换主存储器需要做大量工作
RAM
•RAM:大型存储阵列
•基本结构
•MxN位阵列(M个N位字)
•这里是4x2
•通过字线连接的字中的位
•位线连接到位
•操作
•地址解码为M个字线
•高字线→ 位线上的字
•位/位线连接→ 读/写
•访问延迟
•#端口*√#位
SRAM
•SRAM:静态RAM
•位作为交叉耦合反相器(CCI)
–每比特四个晶体管
–更多用于端口的晶体管
•“静态”是指
•连接到pwr/gnd的逆变器
+比特自然/持续“刷新”
•专为速度而设计
DRAM
•DRAM:动态RAM
•比特作为电容器
+作为端口的单个晶体管
+每个位/端口一个晶体管
•“动态”是指
•电容器未连接到pwr/gnd
–储存电荷随时间衰减
–必须明确刷新
•专为密度而设计
DRAM基础〔雅各布和王〕
•预充电和行访问
DRAM基础知识(续)。
•列访问
DRAM基础知识(续)。
•数据传输
DRAM操作I
•读取:类似于缓存读取
•第一阶段:将位线预充电至0.5V
•第二阶段:解码地址,启用字线
•电容器向上(向下)摆动位线电压
•感应放大器将摆动解释为1(0)
–破坏性读取:字位现已放电
•写入:类似于缓存写入
•第一阶段:解码地址,启用字线
•第二阶段:启用位线
•高位线为相应的电容器充电
–随着时间的推移,泄漏情况如何?
DRAM操作II
•解决方案:添加一组D锁存器(行缓冲区)
•阅读:两个步骤
•第一步:将所选单词读入行缓冲区
•步骤IIA:将行缓冲区读取到引脚
•步骤IIB:将行缓冲区写回所选字
+解决“破坏性读取”问题
•写作:两个步骤
•步骤IA:将所选字读入行缓冲区
•步骤IB:将数据写入行缓冲区
•第二步:将行缓冲区写回所选字
DRAM刷新
•DRAM定期刷新所有内容
•遍历所有单词
•将字读入行缓冲区
•将行缓冲区写回DRAM阵列
•刷新占用DRAM时间的1%至2%
DRAM参数
•DRAM参数
•大容量:例如64–256Mb
•按正方形排列
+最小化导线长度
+最大限度地提高刷新效率
•窄数据接口:1–16位
•便宜的套餐→ 少数总线引脚
•窄地址接口:N/2位
•16Mb DRAM具有12位地址总线
•这是怎么回事?
二阶寻址
两级寻址
•行解码器/列多路复用器共享
地址线
•两个选通器(RAS、CAS)信号
当前在总线上的部分地址
DRAM存取比SRAM慢得多
•更多比特→ 较长的电线
•具有两级寻址的缓冲访问
•SRAM访问延迟:<1ns
•DRAM访问延迟:30–50ns
•DRAM循环时间也比访问时间长
•循环时间:连续访问开始之间的时间
•SRAM:循环时间=访问时间
•第一次访问结束后立即开始第二次访问
•DRAM:循环时间=2*访问时间
•为什么?DRAM刷新行时无法开始新的访问
打开与关闭的页面
•打开页面
•行保持活动状态,直到需要访问另一行
•充当内存级缓存以减少延迟
•可变访问延迟使内存控制器复杂化
•更高的功耗(感应放大器保持活动)
•关闭页面
•访问后立即停用行
•所有访问变为激活行、读/写、预充电
•复杂的功率与性能权衡
DRAM带宽
•使用多个DRAM芯片增加带宽
•回想一下,访问大小与二级缓存相同
•例如,用于32B访问的16个2字节宽芯片
•DRAM密度的增长速度快于需求
•结果:每个系统的内存芯片数量减少
•需要增加每个芯片的带宽
•在游戏机中尤为重要
•SDRAM➔ DDR➔ DDR2➔ FBDIMM(➔ DDR3)
•Rambus-高带宽内存
•多台游戏机使用
同步DRAM(SDRAM)
•添加时钟和更宽的数据!
•每个RAS/CAS还有多个传输
增强型SDRAM和DDR
•SDRAM的进化增强功能:
1.ESDRAM(增强型):具有刷新的重叠行缓冲区访问
2.DDR(双倍数据速率):在两个时钟边缘上传输
3.DDR2的小改进
较低电压、片上端接、驱动器校准预取、冲突缓冲
4.DDR3,更小的改进更低的电压,2X的速度,2X预取,
2X组,“飞驰拓扑”,自动校准
交错主存储器
•将内存划分为M个组,并在它们之间“交错”地址,因此单词A为
•组内(A模式M)
•单词处(A div M)
交错存储器在没有更宽总线的情况下增加了内存带宽
•在内存组中使用并行性来隐藏内存延迟
块交错存储器系统
•缓存块映射到单独的内存控制器
•跨DRAM交错,带MC
•使用DRAM在内部DRAM组间交错
研究:内存处理
•在内存中进行处理
•在DRAM中嵌入一些ALU
•图片是合乎逻辑的,而非物理的
•在DRAM中进行计算,而不是…
•将数据从DRAM移动到CPU
•在CPU上计算
•将数据从CPU移动到DRAM
•将以“矢量”为单位返回
•例如:IRAM:智能RAM
•伯克利研究项目
•[Patterson+,ISCA'97]
•再次非常热
内存层次结构审查
•存储:寄存器、内存、磁盘
•记忆是基本要素
•内存组件性能
•tavg=thit+%miss*tmiss
•无法在单个结构中同时获得低命中率和%未命中率
•内存层次结构
•上部组件:小、快、贵
•较低的组件:大、慢、便宜
•层次结构的tavg接近上层(最快)组件的thit
•10/90规则:90%的物质在最快的组件中找到
•时间/空间局部性:自动上下数据移动
DRAM子系统
DRAM子系统组织
•通道
•DIMM
•排名
•芯片
•组
•行/列
页面模式DRAM
•DRAM组是一个二维单元阵列:行x列
•“DRAM行”也称为“DRAM页”
“灵敏放大器”也称为“行缓冲器”
•每个地址都是一对<行,列>
•访问“封闭行”
•激活命令打开行(放入行缓冲区)
•读取/写入命令读取/写入行缓冲区中的列
•预充电命令关闭行,并为下一行做好准备
通道
•访问“开放行”
•无需激活命令
DRAM组操作
DRAM芯片
•由多个组组成(2-16)
•银行共享命令/地址/数据总线
•芯片本身具有窄接口(每次读取4-16位)
128M x 8位DRAM芯片
DRAM等级和模块
•等级:多个芯片一起操作,形成宽接口
•同时控制包含一个等级的所有芯片
•响应单个命令
•共享地址和命令总线,但提供不同的数据
•DRAM模块由一个或多个列组成
•例如,DIMM(双列直插式内存模块)
•这就是插入主板的东西
•如果我们有带8位接口的芯片,要在一次访问中读取8个字节,请在DIMM中使用8个芯片
64位宽DIMM(单列)
64位宽DIMM(单列)
•优点:
•功能类似于具有宽接口的高容量DRAM芯片
•简单性:内存控制器不需要处理单个芯片
•缺点:
•粒度:
访问权限不能小于接口宽度
多个DIMM
DRAM通道
•2个独立通道:2个内存控制器(上图)
•2个相关/锁步通道:1个具有宽接口的内存控制器(以上未显示)
广义内存结构
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【.NET】调用本地 Deepseek 模型
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
2022-11-10 激光雷达-Resnet-推荐系统分析
2021-11-10 使用Tensor Expression张量表达式处理算子
2021-11-10 TVM优化c++部署实践
2020-11-10 Pipe Utilization管道利用率