软硬件融合技术内幕 终极篇 (8) —— 美味的豆汁
上期我们介绍了针对SRAM降成本的方案——DRAM。DRAM的每bit只需要1个晶体管实现,大大降低了芯片面积,功耗和成本。
DRAM接口也与SRAM有所不同。
如图,DRAM的总体结构当然是Cell构成的存储矩阵。而存储矩阵的行线和列线则控制了每个Cell单元的读写。
那么问题来了:
我们知道,现代主流的CPU的位宽为64bit,也就是CPU的数据总线为64bit。而Intel Xeon Scalable 三代处理器整机可以支持4TB内存,也就是物理地址总线至少为42bit,最高可达64bit。那么,我们如何实现让地址线最终控制每一条行线和列线,从而能够读写到具体的cell呢?
我们在前面提到过,Intel处理器在保护模式下,指令中的地址是逻辑地址(Virtual Address),它将被MMU翻译为物理地址(Physical Address),也就是CPU向DRAM控制器发送的地址。DRAM控制器拿到物理地址后,会将物理地址进行拆分,将物理地址拆分为Row (行),Column(列)后,分别发送给内存芯片,其时序如下图所示:
如图,DRAM控制器拉低RAS的电平,同时发送行地址(Row Address),然后拉低CAS的电平,发送列地址。两个地址发送完毕后,CAS和RAS恢复高电平,从DQ也就是数据线读出数据。
在内存芯片中,会在RAS下降沿和CAS下降沿分别锁存行地址和列地址,并且通过译码,确定Cell矩阵的哪条线应该拉为低电平。
我们发现,在这种情况下,每次读写都需要向DRAM发送两次地址,才能读到数据。而计算机读取内存中的数据,往往是有连续性的,这叫做空间局部性。
什么是空间局部性呢?
让我们打一个比方。
方老师认识一位Z同学,喜欢喝豆汁,经常提着一壶豆汁在办公室招摇过市,每次路过豆汁店都要买上一大碗享用一番。
然而,Z同学在一次洗涤心灵的旅游中,认识了一位美丽的女孩,擦出了心灵的火花,两个人心心相印,如胶似漆。但是,这个女孩不喜欢豆汁的味道,而Z同学却难以舍弃豆汁的美味,两个人产生了难以调和的矛盾。
有一天,Z同学发现,自己常去的豆汁店隔壁的便利店有卖漱口水和香水,于是每次Z同学享用完豆汁后,都要去隔壁便利店购买漱口水和香水。从此,两个人重归于好,达成了生命的大河蟹。
正如Z同学每次访问过豆汁店后,都要访问隔壁的便利店一样,计算机系统中,访问某内存地址后,紧接着访问其临近地址的可能性是很大的。这就是空间局部性。
在对DRAM的访问中,如果应用空间局部性,并不是每次都要发送Row Address,而是对访问的地址做一个判断,如果Row Address没有变化,则只发送Column Address,就可以大大提升DRAM的访问效率!
工程师们立即着手进行了改进,这就是FPM DRAM,它的读写时序如下图:
图中,在第一次访问时,DRAM控制器向DRAM发送了Row Address和Column Address,但随后的访问中,由于Row Address并没有更新,因此只更新Column Address,DRAM就返回了数据。
进一步地,工程师们发现,在DRAM返回数据或接受写入数据时,DRAM的地址总线是空闲的。能否利用这段时间传输下一次读写的地址呢?这就是EDO DRAM的改进。
EDO是Extended Data Out的缩写。EDO内存可以在上一次读写尚未完成的时候,就接收DRAM为下一次读写更新的Column Address,从而让读写时序更加紧凑,进一步提升性能。
实际上,有开发经验的同学会发现,对内存块的读写,地址连续的场景是比较多的。如网卡将收到的数据包通过DMA的方式写入内存缓冲区的场景,有可能连续读写上千字节的内容。这叫做猝发访问(Burst Access)。
EDO内存也增加了对Burst Address的支持,如图:
图中,由于CPU读写的内存地址是连续的,DRAM控制器发送了Row Address和Column Address后,可以连续读取一串数据,而无需更新地址。
EDO内存的出现大大提升了DRAM内存读写的效率,但由于其工作频率较低,工程师们又想出了一项新的改进——让DRAM的时钟复用前端总线FSB的时钟。这就是所谓同步DRAM(Synchronous DRAM,SDRAM)。
SDRAM的读写时序如上图。注意到SDRAM可以在发送Row Addr和Col Addr的同时,发送读写命令信号,并支持EDO内存的猝发读写等特性。SDRAM的时钟频率与CPU的FSB(前端总线)频率一致,理论上其猝发读写能力可以与CPU指令执行时间仅差一个倍频系数。
如,Pentium-II 350处理器的前端总线频率为100MHz,其SDRAM的工作频率也就是100MHz。在最好的情况下,每个10ns的时钟周期可以猝发读写64bit的数据,相当于3.5个CPU的指令周期。
那么,有没有更好的方案,让内存工作频率进一步提高,甚至能跟上CPU的工作速率呢?
这在内存行业引发了一起不小的纷争。
请看下期。
相关文章
- NFT链游系统开发Dapp部署技术
- GPU算力+明眸融合视频AI技术,GPU 视频增强型实例 GN7vi 重磅发布!
- 软硬件融合技术内幕 基础篇 (8) —— 刺破青天锷未残
- 软硬件融合技术内幕 基础篇 (10) ——大厂高P毕业背后的隐情 (中)
- 软硬件融合技术内幕 基础篇 (11) ——大厂高P毕业背后的隐情 (下)
- 软硬件融合技术内幕 基础篇 小结
- SLAM技术分享_it技术分享社区
- 软硬件融合技术内幕 进阶篇 (15) —— 世界大同的梦想 (中)
- 软硬件融合技术内幕 终极篇 (1) 从硝烟中走来
- 软硬件融合技术内幕 终极篇 (2) 从摩尔斯电码到柏林墙
- 软硬件融合技术内幕 终极篇 (4) —— 人类历史的丰碑
- 企业钟爱的小程序有何技术优势?
- 特定领域知识图谱融合方案:技术知识前置【一】-文本匹配算法、知识融合学术界方案、知识融合
- 特定领域知识图谱(Domain-specific KnowledgeGraph:DKG)融合方案:技术知识前置【一】-文本匹配算法、知识融合学术界方案、知识融合业界落地方案、算法测评KG生产质量保障
- 软硬件融合技术内幕 终极篇 (10) —— 数据持久化的秘密 (上)
- AR技术简谈:相关原理,技术应用以及设备推荐,带你感受虚拟信息与真实世界巧妙融合。
- OPPO 推出“安第斯智能云”,三大技术护城河已形成
- SkeyeVSS视频共享融合赋能平台技术方案之视频融合子系统功能模块设计
- 我国北斗系统加速与新技术融合发展
- Kali Linux:让技术更加便捷的汉化之旅(kalilinux汉化)
- 《技术人求职指南》(六)如何选择Offer
- Oracle 11g2技术深度剖析(oracle11g2)
- 政策、技术生变,AI+教育路在何方? | CCF-GAIR 2019
- 使用Dbcp连接Oracle数据库的技术实践(dbcp连接oracle)
- 两种技术的融合借助 Ruby 与 Redis 实现强大的数据处理(ruby和redis)
- Redis连接数查询技术实践(redis链接数查询)