我读了几篇文章和课本。但是他们在这个话题上模棱两可--哪个因素对SRAM比DRAM更快的贡献最大?以下几种中的一个或更多?或任何其他因素?
1) DRAM的容量比SRAM大得多,SRAM寻址目标存储单元需要更长的时间。
2)组成DRAM和SRAM的电气元件。DRAM使用一个电容器和一个存取晶体管,而SRAM使用6个晶体管。电容器的充电时间比打开/关闭SRAM晶体管的时间更长。
3)为了克服泄漏,需要定期刷新DRAM,增加了访问延迟(当DRAM处于刷新状态时,不会发生访问)
发布于 2018-04-09 14:55:53
我认为如果你愿意,你可以建立一个相当快的内存,例如for the on-die eDRAM that POWER8 uses for L3 cache.
但由于各种原因,它不能像SRAM那样快,包括微小电容器上的电荷不能像SRAM中的晶体管那样驱动大负载。(这可能只是内存总访问时间的一小部分,我并不期望这么低的级别;您可能希望在http://electronics.stackexchange.com/上重新询问这一点)
因此,简单地查看实际芯片中现有的静态随机存取存储器/动态随机存取存储器有一些样本偏差:如果性能要求低到可以选择动态随机存取存储器,那么对于大型阵列,设计人员可能会使用eDRAM来获得密度优势。或者,在性能方面,使用静态随机存取存储器可能比大量优化eDRAM的速度更容易/更好。但POWER8绝对有快速的L3内存;aggregate bandwidth of 3TB/s across 12 cores @ 4GHz。
(片上静态随机存取存储器小于1 kiB的小型微控制器可能会使用静态随机存取存储器,因为它不需要任何刷新电路,以及其他对小型eDRAM阵列不起作用的开销。更不用说刷新带来的潜在访问延迟,这对于硬实时系统并不好,因为您希望确切地知道事情需要多长时间。)
发布于 2019-08-02 03:52:55
使DRAM比SRAM慢的#1因素是DRAM使用电容器的事实。
我被你的3点搞糊涂了,所以为了防止其他人偶然发现这个问题,让我来澄清一下在SRAM和DRAM中“一般”发生了什么,这样有编程头脑的人就可以理解为什么这个问题会出现在Stack Overflow上。
在DRAM中使用电容器意味着电容器必须每隔~64ms“刷新”一次,在此期间不可能进行存储器访问,因为刷新只是一个读取操作。
我真的很喜欢Ulrich Drepper在What Every Programmer Should Know About Memory中对这两者的描述,他解释了我们更多地使用动态内存而不是静态内存的主要原因是成本。SRAM的生产和使用成本更高!
这是组成SRAM的6个晶体管:

该单元的核心
由四个晶体管M1到M4形成,这四个晶体管形成两个交叉耦合的反相器。它们有两个稳定状态,分别代表0和1。只要打开Vdd电源可用,状态就是稳定的
另外两个晶体管是M5和M6,我将稍后讨论,以及如何写入静态随机存取存储器,但首先让我们看看动态随机存取存储器单元:

在这里,我们有一个晶体管,它的作用是保护电容器中所持有的电池的状态。因此,要访问此单元中的值,需要提高访问线(AL),并将电容器的值放在数据线(DL)上。为了写入或刷新,该值被置于DL上,AL需要激活足够长的时间来对电容器进行充电或放空。
正如您可以想象的那样,与SRAM相比,这需要时间,SRAM中的值是“静态”的,因此S。一旦字存取线(WL)被提出,读取立即可用。在SRAM中写入几乎同样简单,相应的值放在BL和
由于外部驱动器比四个晶体管(M1到M4)更强,这允许覆盖旧状态
DRAM需要一个“读出放大器”来使DL可读,因为电容器只能容纳如此多的电荷,因此需要这样的周期性刷新。一旦充满,这些电子就会随着时间的推移慢慢消散,这一概念被称为“泄漏”。每次发生读操作时,电容器也需要充电,只是读操作就会耗尽它。
总而言之,是什么让这成为一个堆栈溢出问题?嗯,Drepper说:
对于刷新和发出命令的时间点,程序员真的无能为力。但在解释测量结果时,务必牢记DRAM生命周期的这一部分。如果必须从当前正在刷新的行中检索关键字,则处理器可能会停顿相当长的时间。每次刷新所需的时间取决于内存模块
现在,Drepper在2007年写了这篇文章,在那之后的一段时间,人们开始操纵内存控制器(内存控制器包含了读写DRAM以及“刷新”DRAM所需的逻辑)。其中一个结果就是这个叫做ChargeCache的神奇机制,我将在这里留下一个链接:https://users.ece.cmu.edu/~omutlu/pub/chargecache_low-latency-dram_hpca16.pdf
发布于 2019-04-17 19:53:45
你的观点3:-让我解释一下动态随机存取存储器被称为动态随机存取存储器,因为它有一个电容器(它存储电荷,即充满电意味着1和空意味着0)和一个晶体管(作为一个开关,充分充放电电容器)和有许多对这样的电容器和晶体管在动态随机存取存储器中。现在,问题是电容器总是泄漏存储在它里面的电荷,所以需要不断地对保持电荷(值1)的电容器进行动态充电,以保持其每秒1000次的充电,这会使DRAM变慢。
https://stackoverflow.com/questions/49726721
复制相似问题