SDRAM 方向性 - 在“官方”带宽数据中读取和写入计数是不是相同?
Posted
技术标签:
【中文标题】SDRAM 方向性 - 在“官方”带宽数据中读取和写入计数是不是相同?【英文标题】:SDRAM bidirectionality - do reads & writes count the same in 'official' bandwidth figures?SDRAM 方向性 - 在“官方”带宽数据中读取和写入计数是否相同? 【发布时间】:2015-09-17 10:29:42 【问题描述】:SDRAM 可以同时加载和存储吗?
如果是这样,同时存储和加载如何影响带宽?
作为存储带宽和加载带宽之和的总带宽是否会在两者都进行时下降? 总和是否相同,但在加载和存储之间进行了划分? 或者我可以使用整个规定的带宽来存储和整个规定的带宽来存储吗??【问题讨论】:
【参考方案1】:SDRAM 相对于异步 DRAM 的主要优势之一实际上是支持 DRAM 芯片内部的多个内部存储库。 SDRAM 控制器可以同时提供对不同内部存储体的存储器访问命令。只要这些同时访问命令针对不同的存储体,它们就可以被加载或存储。 现代 SDRAM 设备分为 2、4 或 8 个(来自 DDR2)独立的内部数据库。通过保留请求地址的 1、2 或 3 位来完成存储区选择。
除此之外,SDRAM 还允许进行某种流水线操作。也就是说,可以在等待前一个命令的结果的同时处理新命令。
最后,提醒一下现代 SDRAM 的最小读/写单元已显着增加。标准 SDRAM 过去只能读/写 1 个字,而 DDR2 SDRAM 用一个命令读/写 4 个连续字。对于 DDR3,这个最小单位变成 8 个连续的字。此功能可以通过减少对 SDRAM 组的访问次数来进一步加快内存操作。
【讨论】:
如果我理解正确的话,你写的一切都完全独立于你是存储还是加载,这些操作对于SDRAM芯片都是一样的。对吗? 如果你问我关于时序行为的问题,我不会说从 SDRAM 芯片的角度来看加载和存储是相同的。这在很大程度上取决于 SDRAM 类型和 SDRAM 控制器。我想说的是,从银行的角度来看,您可以并行发出命令,而不管它们的类型。 例如,我看到内存控制器 (AURIX TriCore) 为用于缓存最后访问的字的每个内核实现了一个读取缓冲区。这样的读取缓冲区可以加快顺序字的读取速度,但对写入没有帮助。其他内存控制器对加载和存储进行某种重新排序,最终可能会延迟存储(如果定向到不同的地址)以连续执行更连续的加载并从空间局部性中受益。 ...但是这种读取缓存是依赖于已发布的时序数据,还是可以说只是“奶油上的樱桃”? 已发布的时序图最有可能描述了 bank 上的命令、行选择成本、预取等。所以正如你所说,这个读取缓存是“奶油上的樱桃”:)以上是关于SDRAM 方向性 - 在“官方”带宽数据中读取和写入计数是不是相同?的主要内容,如果未能解决你的问题,请参考以下文章
对黑金AX301中sdram数据读取demo代码中的几个疑问的探索