内存 : CL设置
CL(CAS Latency):为CAS的延迟时间,这是纵向地址脉冲的反应时间,也是在一定频率下衡量支持不同规范的内存的重要标志之一。
内存负责向CPU提供运算所需的原始数据,而目前CPU运行速度超过内存数据传输速度很多,因此很多情况下CPU都需要等待内存提供数据,这就是常说的“CPU等待时间”。内存传输速度越慢,CPU等待时间就会越长,系统整体性能受到的影响就越大。因此,快速的内存是有效提升CPU效率和整机性能的关键之一。
在实际工作时,无论什么类型的内存,在数据被传输之前,传送方必须花费一定时间去等待传输请求的响应,通俗点说就是传输前传输双方必须要进行必要的通信,而这种就会造成传输的一定延迟时间。CL设置一定程度上反映出了该内存在CPU接到读取内存数据的指令后,到正式开始读取数据所需的等待时间。不难看出同频率的内存,CL设置低的更具有速度优势。
上面只是给大家建立一个基本的CL概念,而实际上内存延迟的基本因素绝对不止这些。内存延迟时间有个专门的术语叫“Latency”。要形象的了解延迟,我们不妨把内存当成一个存储着数据的数组,或者一个EXCEL表格,要确定每个数据的位置,每个数据都是以行和列编排序号来标示,在确定了行、列序号之后该数据就唯一了。内存工作时,在要读取或写入某数据,内存控制芯片会先把数据的列地址传送过去,这个RAS信号(Row Address Strobe,行地址信号)就被激活,而在转化到行数据前,需要经过几个执行周期,然后接下来CAS信号(Column Address Strobe,列地址信号)被激活。在RAS信号和CAS信号之间的几个执行周期就是RAS-to-CAS延迟时间。在CAS信号被执行之后同样也需要几个执行周期。此执行周期在使用标准PC133的SDRAM大约是2到3个周期;而DDR RAM则是4到5个周期。在DDR中,真正的CAS延迟时间则是2到2.5个执行周期。RAS-to-CAS的时间则视技术而定,大约是5到7个周期,这也是延迟的基本因素。
CL设置较低的内存具备更高的优势,这可以从总的延迟时间来表现。内存总的延迟时间有一个计算公式,总延迟时间=系统时钟周期×CL模式数+存取时间(tAC)。首先来了解一下存取时间(tAC)的概念,tAC是Access Time from CLK的缩写,是指最大CAS延迟时的最大数输入时钟,是以纳秒为单位的,与内存时钟周期是完全不同的概念,虽然都是以纳秒为单位。存取时间(tAC)代表着读取、写入的时间,而时钟频率则代表内存的速度。
举个例子来计算一下总延迟时间,比如一条DDR333内存其存取时间为6ns,而其内存时钟周期为6ns(DDR内存时钟周期=1X2/内存频率,DDR400内存频率为400,则可计算出其时钟周期为6ns)。我们在主板的BIOS中将其CL设置为2.5,则总的延迟时间=6ns X2.5+6ns=21ns,而如果CL设置为2,那么总的延迟时间=6ns X2+6ns=18 ns,就减少了3ns的时间。
从总的延迟时间来看,CL值的大小起到了很关键的作用。所以对系统要求高和喜欢超频的用户通常喜欢购买CL值较低的内存。目前各内存颗粒厂商除了从提高内存时钟频率来提高DDR的性能之外,已经考虑通过更进一步的降低CAS延迟时间来提高内存性能。
不过,并不是说CL值越低性能就越好,因为其它的因素会影响这个数据。例如,新一代处理器的高速缓存较有效率,这表示处理器比较少地直接从内存读取数据。再者,列的数据会比较常被存取,所以RAS-to-CAS的发生几率也大,读取的时间也会增多。最后,有时会发生同时读取大量数据的情形,在这种情形下,相邻的内存数据会一次被读取出来,CAS延迟时间只会发生一次。
选择购买内存时,最好选择同样CL设置的内存,因为不同速度的内存混插在系统内,系统会以较慢的速度来运行,也就是当CL2.5和CL2的内存同时插在主机内,系统会自动让两条内存都工作在CL2.5状态,造成资源浪费。
内存 : CL设置的更多相关文章
- JIRA应用的内存参数设置不当+容器没有对资源进行限制导致服务挂掉的例子
背景: 应用的部署结构是这样的:使用rancher管理的Docker集群,有三台物理主机,二十多个Docker容器, 提供的功能是问题跟踪(JIRA),文档管理(Confluence),代码托管(sv ...
- 内存大小设置 Java heap space错误
1. 问题描述 当从数据库中查询大量的数据,每个模板取出来几百万条数据,或者是频繁的刷新项目.模板时就会占用Java虚拟机JVM的大量内存,超过内存就会出现报java.lang.OutOfMemory ...
- JVM内存的设置
一.JVM内存的设置的原理 默认的java虚拟机的大小比较小,在对大数据进行处理时java就会报错:java.lang.OutOfMemoryError. 设置jvm内存的方法,对于单独的.class ...
- tomcat内存大小设置
tomcat内存大小设置 如果安装为windows服务,需要进行内存设置的时候,选择configure...界面, 在Java Tab页面内可以进行内存参数的设置. 学习了:http://elf884 ...
- Docker环境下Java应用的最大内存和堆内存的设置
Docker环境下Java应用的最大内存和堆内存的设置 1. 设置应用允许使用的最大内存 通过docker run(创建一个新的容器并运行)命令中设置-m来进行设置.案例如下所示. docker r ...
- 什么?你们公司还没有将JVM初始和最大堆内存大小设置为相同值?
微信公众号:Java大家族 JVM将初始和最大内存大小设置为相同值的好处 启动应用程序时,我们指定初始内存大小和最大内存大小.对于在 JVM(Java 虚拟机)上运行的应用程序,初始和最大内存大小通过 ...
- Hadoop YARN中内存的设置
在YARN中,资源管理由ResourceManager和NodeManager共同完成,其中,ResourceManager中的调度器负责资源的分配,而NodeManager则负责资源的供给和隔离.R ...
- IIS内存溢出-设置IIS的应用程序池
在ASP.NET Web服务器上,ASP.NET所能够用到的内存,通常不会等同于所有的内存数量.在machine.config(C:/WINDOWS/Microsoft.NET/Framework/v ...
- tomcat安装服务和内存参数设置
第一:安装服务 在dos窗口进入到tomcat的bin目录下,通过如下命令即可将tomcat安装成服务 service.bat install Tomcat2 其中Tomcat2是服务的名称 如果启动 ...
随机推荐
- python3.7 sys模块
#!/usr/bin/env python __author__ = "lrtao2010" #python3.7 sys模块 #sys模块负责程序与python解释器的交互,提供 ...
- Harbor HA部署-使用Ceph RADOS后端
1. 前言 Harbor 1.4.0版本开始提供了HA部署方式,和非HA的主要区别就是把有状态的服务分离出来,使用外部集群,而不是运行在本地的容器上.而无状态的服务则可以部署在多个节点上,通过配置上层 ...
- 洛谷P1553数字反转升级版
题目链接:https://www.luogu.org/problemnew/show/P1553
- Storm Ack容错机制
- Eclipse 读取config目录下文件
最近在一个项目,在项目下新建了一个config配置文件夹,添加一个配置文件config.properties. 使用classpath:config.properties方式加载配置文件, 具体实现代 ...
- mysql 外连接的时候,条件在on后面和条件在where后面的区别
最近使用mysql的时候碰到一个问题:当一个表外联另一个表的时候,将一些查询条件放在on后面和放在where后面不太一样: 学生分数表stuscore: 当查询语句如下(查询语句1): SELECT ...
- day21&22&23:线程、进程、协程
1.程序工作原理 进程的限制:每一个时刻只能有一个线程来工作.多进程的优点:同时利用多个cpu,能够同时进行多个操作.缺点:对内存消耗比较高当进程数多于cpu数量的时候会导致不能被调用,进程不是越多越 ...
- 数据库路由中间件MyCat - 源代码篇(10)
此文已由作者张镐薪授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 3. 连接模块 3.5 后端连接 3.5.2 后端连接获取与维护管理 还是那之前的流程, st=>st ...
- 可拖动jquery插件
http://www.open-open.com/ajax/DragDrop.htm http://sc.chinaz.com/info/130722592854.htm http://sc.itcn ...
- NodeJs爬虫抓取古代典籍,共计16000个页面心得体会总结及项目分享
项目技术细节 项目大量用到了 ES7 的async 函数, 更直观的反应程序了的流程.为了方便,在对数据遍历的过程中直接使用了著名的async这个库,所以不可避免的还是用到了回调promise ,因为 ...