理论极限值是可以计算的:1333MHz * 64bit(单通道,双通道则128bit) / 8(位到字节单位转换) = 10.664GB/s。这只是理论,实际发挥还要看内存控制器,实际上1333单条跑出来的数据在7~9GB/s差不多了。

首先,实际中我没见过内存速度超过10GB/s的情况,不知道是不是题主你把单位弄错了?实际见过的像RamDisk之类的软件,连续读写能达到的速度也不过5~8GB/s左右,如果是随机读写,性能大概还要下降接近十分之一。

所以内存没你想的那么快。

其次,内存检测不是把内存读写一遍就完事,读写完还要检测读写数据是否一致,这些都是要通过CPU的ALU完成,CPU的负载会非常重,而且很多时候也并非是大块读写,而是4字节甚至单字节读写,这样算下来,为了检测一个字节的内存单元,CPU可能需要十几个到几十指令,这里还包含不少算数指令,速度很慢。

这样最终算下来,内存检测的速度大概在100MB/s或者更慢,这还没完,为了检测内存的每个bit是否正确,通常来说要擦写很多中不同的数据,比如uboot里的内存检测就写了好几次,如果以4字节16进制数来看,那么写入的东西包括:全0,全1,全5,全A,全F,基于地址的移位,地址值,地址值求反……

这还没完,还要检测物理地址的地址线是否有效,地址线可能会断开、互绕、短路等等,还有一堆堆的数字要写进去、读出来,有些地址线还可能把同一个内存位置错误的映射成两个不同的地址,因此写入的次序也有要求。

所以最终的结果就是内存检测的时间非常漫长,不亚于压缩一部像内存那么大的片子。

补充:以上仅限于用专门的内存检测工具测试的效果,PC机开机自检一般只做很简单的测试,速度很快。

内存,有核心频率,I/O频率,等效频率,最后由等效频率而算出带宽,带宽就等于内存的速度。

首先SDR时代,只有SDR-133是PC-133的标准,核心频率为133,由于SRD为单向传送所以等效频率也是133,带宽为1.06GB/S

然后是大家所熟悉的DDR时代,由于DDR的特性是双向传送,也就是说在读的同时也可以写,这样就等于带宽加大了一倍,所以DDR的等效频率就需要核心频率X2,就拿133MHZ的DDR来说吧,他的等效频率就是266,也就是DDR 266HMZ,当然带宽也就提升了一倍为2.1GB/S。

接着是DDR2时代,DDR2是扩充了数据预取,从DDR1的2bit扩大到了4bit,再加上数据上下行同行,(在这里我引入一个数据预期技术,这要从DDR开始讲,因为DDR是双向的,所以他需要数据预取,再读写的同时预取数据,这样才能达到2倍的核心频率而达到等效频率),接着来讲DDR2,刚才说到DDR2的数据预取扩大了,因此I/O控制器满足不了4bit,所以I/O频率就必须翻倍,所以DDR2的等效频率=核心频率X2X2,比如PC2-6400(DDR2 800MHZ)的算法就是200(核心频率)X2X2=800MHZ,数据带宽是6.4GB/S。

最后来说说DDR3,这个就更容易理解了,因为数据预取又扩大了,从DDR2的4bit翻倍成了8bit,所以I/O频率又翻倍了,所以DDR3等效频率=核心频率X4X2,因此DDR3的等效频率可以达到惊人的1600HMZ。内存数据带宽就=12.8GB/S

最后再说说,带宽的算法,内存带宽=内存等效频率X64/8,举例DDR3 1600HMZ的内存带宽速度就=1600HMZX64/8=12.8GB/S。

Ddr2,ddr3,ddr4内存条的读写速率的更多相关文章

  1. 如何区分DDR1 DDR2 DDR3内存条

    DDR1,DDR2,DDR3内存条(DDR是Double Data Rate双倍速率同步动态随机存储器的英文缩写)就是俗称的一二三代内存条.这三种内存条工艺不同,接口不同,性能不同,互不兼容.要区分它 ...

  2. DDR3 DDR4 FPGA实现

    基于7系列.virtex6等xilinx器件的MIG ip核设计DDR3/4读写控制器,以及基于arria 10器件的DDR4读写控制:DDR3/4的设计,设计的关键点是提高DDR3/4的访问效率,目 ...

  3. 测试linux下磁盘的读写速率

    1) 通过df -h命令查看磁盘情况 Filesystem            Size  Used Avail Use% Mounted on/dev/sda4             289G  ...

  4. FPGA上外挂DDR2&DDR3&MIG IP的使用记录

    前言 当需要大容量数据存储及处理的时候,FPGA内部自带的存储资源是远远不够的,所以问题来了,怎么使用外带的DDR3? 首要问题在于DDR3是什么?有没有协议?当然只是需要用Xilinx MIG IP ...

  5. 十二、S3C2440 裸机 — SDRAM

    12.1 SDRAM 介绍 12.1.1 SDRAM 定义 SDRAM(Synchronous Dynamic Random Access Memory):同步动态随机存储器-内存条 同步是指内存工作 ...

  6. Chapter Zero 0.2.2 内存

    目录 内存 内存的多通道设计 DRAM 和 SRAM 只读存储器(ROM) RAM.ROM以及硬盘的区别(转自百度) 内存 CPU的数据都是来自主存储器(main memory),个人计算机的主寄存器 ...

  7. 三星S5-PV210内存初始化

    一.S5PV210时钟系统 时钟:一定频率的电信号.   时钟系统:基于CMOS工艺的高性能处理器时钟系统,集成PLL可以从内部触发,比从外部触发更快且更准确,能有效地避免一些与信号完整性相关的问题. ...

  8. 未来IT行业的掌控者

    (题外话,我发现很多高手都喜欢讲代码实现,喜欢贴代码贴图,我个人不大喜欢这种方式,我觉得最重要的是思想,是想法,具体的实现代码实现步骤由读者自己去实现.这纯属我个人喜好,望各大内高手勿喷,可能是本人水 ...

  9. 在使用FPGA来控制DDR3/DDR2 IP 的时候两个错误的解决办法

    对于熟悉Intel FPGA的老(gong)司(cheng)机(shi)来说,外部存储器的控制早已是轻车熟路,但是对于新手,DDR3/DDR2 的IP使用也许并没有那么简单,不过没关系,骏龙的培训网站 ...

随机推荐

  1. centos下cmake编译安装mysql5.7.24

    一.centos6.5推荐最小安装.自定义添加如图两个包 二.安装cmake3.0(mysql5.7要求cmake2.9以上.cmake3.1要求gcc g++4.8以上.所以选自3.0) 1.分别执 ...

  2. RedHat6.5安装Spark集群

    版本号: RedHat6.5   RHEL 6.5系统安装配置图解教程(rhel-server-6.5) JDK1.8      http://blog.csdn.net/chongxin1/arti ...

  3. 基于nginx + lua实现的反向代理动态更新

    大家都知道,nginx是当前应用非常广泛的web服务器,热度因为他的高并发高性能高可靠性,且轻量级!牛逼的不行,不多说这些. 今天要介绍的是,如何基于nginx和lua脚本,也就是在openresty ...

  4. inf 启动

    How to install an INF file using Delphi If you need to install an "inf" file using Delphi, ...

  5. java.lang.OutOfMemoryError: Java heap space解决方法 (有问题咨询加微信)

    支付宝扫码领取最高99元红包,到店支付15天,双十二瓜分15亿,打开支付宝首页搜“555176706”领红包,领到大红包的小伙伴赶紧使用哦! //首先检查程序有没有限入死循环 这个问题主要还是由这个问 ...

  6. 值得收藏的JSP连接mysql数据库的例子

    1:用mysql驱动把mysql与tomcat的连接起来.把mysql驱动包(不用解压)放到Tomcat安装目录中lib文件夹下即可. 2:然后在自己的新建的web应用程序上面就可以下下面的代码 3: ...

  7. Java第01次实验提纲(基本概念+编程环境入门+PTA)

    0. 控制台下编译.运行 在Notepad++编写Java程序 学会使用控制台,javac.java 学会使用Notepad++ 参考资料: 控制台-cmd应用基础 扫盲教程 使用命令行编译并运行ja ...

  8. vue中为对象添加值的问题

    demo: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...

  9. 胖子哥的大数据之路(9)-数据仓库金融行业数据逻辑模型FS-LDM

    引言: 大数据不是海市蜃楼,万丈高楼平地起只是意淫,大数据发展还要从点滴做起,基于大数据构建国家级.行业级数据中心的项目会越来越多,大数据只是技术,而非解决方案,同样面临数据组织模式,数据逻辑模式的问 ...

  10. 安装使用git

    阿斯蒂芬 http://www.cnblogs.com/alex3714/articles/5930846.html