1. 能解释一下内存存取吗
内存作为计算机的重要部件,近几年发展迅速,从SDRAM到如今的DDR3,内存经历了多个技术时代。本文就内存的发展简单讲解内存的存储原理和内存技术发展岁遇到的瓶颈。
内存和显存被统称为记忆体(Memory),全名是动态随机存取记忆体(DynamicRandomAccessMemory,DRAM)。基本原理就是利用电容内存储电荷的多寡来代表0和1,这就是一个二进制位元(bit),内存的最小单位。
DRAM的结构可谓是简单高效,每一个bit只需要一个晶体管加一个电容。但是电容不可避免的存在漏电现象,如果电荷不足会导致数据出错,因此电容必须被周期性的刷新(预充电),这也是DRAM的一大特点。而且电容的充放电需要一个过程,刷新频率不可能无限提升(频障),这就导致DRAM的频率很容易达到上限,即便有先进工艺的支持也收效甚微。
“上古”时代的FP/EDO内存,由于半导体工艺的限制,频率只有25MHz/50MHz,自SDR以后频率从66MHz一路飙升至133MHz,终于遇到了难以逾越的障碍。此后所诞生的DDR1/2/3系列,它们存储单元官方频率(JEDEC制定)始终在100MHz-200MHz之间徘徊,非官方(超频)频率也顶多在250MHz左右,很难突破300MHz。事实上高频内存的出错率很高、稳定性也得不到保证,除了超频跑简单测试外并无实际应用价值。
既然存储单元的频率(简称内核频率,也就是电容的刷新频率)不能无限提升,那么就只有在I/O(输入输出)方面做文章,通过改进I/O单元,这就诞生了DDR1/2/3、GDDR1/2/3/4/5等形形色色的内存种类。
通常大家所说的DDR-400、DDR2-800、DDR3-1600等,其实并非是内存的真正频率,而是业界约定俗成的等效频率,这些DDR1/2/3内存相当于老牌SDR内存运行在400MHz、800MHz、1600MHz时的带宽,因此频率看上去很夸张,其实真正的内核频率都只有200MHz而已!
内存有三种不同的频率指标,它们分别是核心频率、时钟频率和有效数据传输频率。核心频率即为内存Cell阵列(MemoryCellArray,即内部电容)的刷新频率,它是内存的真实运行频率;时钟频率即I/OBuffer(输入/输出缓冲)的传输频率;而有效数据传输频率就是指数据传送的频率(即等效频率)。
●SDR和DDR1/2/3全系列频率对照表:
内存数据预取技术示意图:并行转串行
这种存储阵列内部的实际位宽较大,但是数据输出位宽却比较小的设计,就是所谓的数据预取技术,它可以让内存的数据传输频率倍增。试想如果我们把一条细水管安装在粗水管之上,那么水流的喷射速度就会翻几倍。
明白了数据预取技术的原理之后,再来看看DDR1/2/3内存的定义,以及三种频率之间的关系,就豁然开朗了:
●SDRAM(SynchronousDRAM):同步动态随机存储器
之所以被称为“同步”,因为SDR内存的存储单元频率、I/O频率及数据传输率都是相同的,比如经典的PC133,三种频率都是133MHz。
SDR在一个时钟周期内只能读/写一次,只在时钟上升期读/写数据,当同时需要读取和写入时,就得等待其中一个动作完成之后才能继续进行下一个动作。
●DDR(DoubleDateRateSDRAM):双倍速率同步动态随机存储器
双倍是指在一个时钟周期内传输两次数据,在时钟的上升期和下降期各传输一次数据(通过差分时钟技术实现),在存储阵列频率不变的情况下,数据传输率达到了SDR的两倍,此时就需要I/O从存储阵列中预取2bit数据,因此I/O的工作频率是存储阵列频率的两倍。
DQ频率和I/O频率是相同的,因为DQ在时钟上升和下降研能传输两次数据,也是两倍于存储阵列的频率。
●DDR2(DDR2SDRAM):第二代双倍速率同步动态随机存储器
DDR2在DDR1的基础上,数据预取位数从2bit扩充至4bit,此时上下行同时传输数据(双倍)已经满足不了4bit预取的要求,因此I/O控制器频率必须加倍。
至此,在存储单元频率保持133-200MHz不变的情况下,DDR2的实际频率达到了266-400MHz,而(等效)数据传输率达到了533-800MHz。
●DDR3(DDR3SDRAM):第三代双倍速率同步动态随机存储器
DDR3就更容易理解了,数据预取位数再次翻倍到8bit,同理I/O控制器频率也加倍。此时,在存储单元频率保持133-200MHz不变的情况下,DDR3的实际频率达到了533-800MHz,而(等效)数据传输率高达1066-1600MHz。
综上可以看出,DDR1/2/3的发展是围绕着数据预取而进行的,同时也给I/O控制器造成了不小的压力,虽然存储单元的工作频率保持不变,但I/O频率以级数增长,我们可以看到DDR3的I/O频率已逼近1GHz大关,此时I/O频率成为了新的瓶颈,如果继续推出DDR4(注意不是GDDR4,两者完全不是同一概念,后文会有详细解释)的话,将会受到很多未知因素的制约,必须等待更先进的工艺或者新解决方案的出现才有可能延续DDR的生命。
2. 存储器的原理是什么
存储器讲述工作原理及作用
介绍
存储器(Memory)是现代信息技术中用于保存信息的记忆设备。其概念很广,有很多层次,在数字系统中,只要能保存二进制数据的都可以是存储器;在集成电路中,一个没有实物形式的具有存储功能的电路也叫存储器,如RAM、FIFO等;在系统中,具有实物形式的存储设备也叫存储器,如内存条、TF卡等。计算机中全部信息,包括输入的原始数据、计算机程序、中间运行结果和最终运行结果都保存在存储器中。它根据控制器指定的位置存入和取出信息。有了存储器,计算机才有记忆功能,才能保证正常工作。计算机中的存储器按用途存储器可分为主存储器(内存)和辅助存储器(外存),也有分为外部存储器和内部存储器的分类方法。外存通常是磁性介质或光盘等,能长期保存信息。内存指主板上的存储部件,用来存放当前正在执行的数据和程序,但仅用于暂时存放程序和数据,关闭电源或断电,数据会丢失。
2.按存取方式分类
(1)随机存储器(RAM):如果存储器中任何存储单元的内容都能被随机存取,且存取时间与存储单元的物理位置无关,则这种存储器称为随机存储器(RAM)。RAM主要用来存放各种输入/输出的程序、数据、中间运算结果以及存放与外界交换的信息和做堆栈用。随机存储器主要充当高速缓冲存储器和主存储器。
(2)串行访问存储器(SAS):如果存储器只能按某种顺序来存取,也就是说,存取时间与存储单元的物理位置有关,则这种存储器称为串行访问存储器。串行存储器又可分为顺序存取存储器(SAM)和直接存取存储器(DAM)。顺序存取存储器是完全的串行访问存储器,如磁带,信息以顺序的方式从存储介质的始端开始写入(或读出);直接存取存储器是部分串行访问存储器,如磁盘存储器,它介于顺序存取和随机存取之间。
(3)只读存储器(ROM):只读存储器是一种对其内容只能读不能写入的存储器,即预先一次写入的存储器。通常用来存放固定不变的信息。如经常用作微程序控制存储器。目前已有可重写的只读存储器。常见的有掩模ROM(MROM),可擦除可编程ROM(EPROM),电可擦除可编程ROM(EEPROM).ROM的电路比RAM的简单、集成度高,成本低,且是一种非易失性存储器,计算机常把一些管理、监控程序、成熟的用户程序放在ROM中。
3.按信息的可保存性分类
非永久记忆的存储器:断电后信息就消失的存储器,如半导体读/写存储器RAM。
永久性记忆的存储器:断电后仍能保存信息的存储器,如磁性材料做成的存储器以及半导体ROM。
4.按在计算机系统中的作用分
根据存储器在计算机系统中所起的作用,可分为主存储器、辅助存储器、高速缓冲存储器、控制存储器等。为了解决对存储器要求容量大,速度快,成本低三者之间的矛盾,目前通常采用多级存储器体系结构,即使用高速缓冲存储器、主存储器和外存储器。
能力影响
从写命令转换到读命令,在某个时间访问某个地址,以及刷新数据等操作都要求数据总线在一定时间内保持休止状态,这样就不能充分利用存储器通道。此外,宽并行总线和DRAM内核预取都经常导致不必要的大数据量存取。在指定的时间段内,存储器控制器能存取的有用数据称为有效数据速率,这很大程度上取决于系统的特定应用。有效数据速率随着时间而变化,常低于峰值数据速率。在某些系统中,有效数据速率可下降到峰值速率的10%以下。
通常,这些系统受益于那些能产生更高有效数据速率的存储器技术的变化。在CPU方面存在类似的现象,最近几年诸如AMD和 TRANSMETA等公司已经指出,在测量基于CPU的系统的性能时,时钟频率不是唯一的要素。存储器技术已经很成熟,峰值速率和有效数据速率或许并不比以前匹配的更好。尽管峰值速率依然是存储器技术最重要的参数之一,但其他结构参数也可以极大地影响存储器系统的性能。
影响有效数据速率的参数
有几类影响有效数据速率的参数,其一是导致数据总线进入若干周期的停止状态。在这类参数中,总线转换、行周期时间、CAS延时以及RAS到CAS的延时(tRCD)引发系统结构中的大部分延迟问题。
总线转换本身会在数据通道上产生非常长的停止时间。以GDDR3系统为例,该系统对存储器的开放页不断写入数据。在这期间,存储器系统的有效数据速率与其峰值速率相当。不过,假设100个时钟周期中,存储器控制器从读转换到写。由于这个转换需要6个时钟周期,有效的数据速率下降到峰值速率的 94%。在这100个时钟周期中,如果存储器控制器将总线从写转换到读的话,将会丢失更多的时钟周期。这种存储器技术在从写转换到读时需要15个空闲周期,这会将有效数据速率进一步降低到峰值速率的79%。表1显示出针几种高性能存储器技术类似的计算结果。
显然,所有的存储器技术并不相同。需要很多总线转换的系统设计师可以选用诸如XDR、RDRAM或者DDR2这些更高效的技术来提升性能。另一方面,如果系统能将处理事务分组成非常长的读写序列,那么总线转换对有效带宽的影响最小。不过,其他的增加延迟现象,例如库(bank)冲突会降低有效带宽,对性能产生负面影响。
DRAM技术要求库的页或行在存取之前开放。一旦开放,在一个最小周期时间,即行周期时间(tRC)结束之前,同一个库中的不同页不能开放。对存储器开放库的不同页存取被称为分页遗漏,这会导致与任何tRC间隔未满足部分相关的延迟。对于还没有开放足够周期以满足tRC间隙的库而言,分页遗漏被称为库冲突。而tRC决定了库冲突延迟时间的长短,在给定的DRAM上可用的库数量直接影响库冲突产生的频率。
大多数存储器技术有4个或者8个库,在数十个时钟周期具有tRC值。在随机负载情况下,那些具有8个库的内核比具有4个库的内核所发生的库冲突更少。尽管tRC与库数量之间的相互影响很复杂,但是其累计影响可用多种方法量化。
存储器读事务处理
考虑三种简单的存储器读事务处理情况。第一种情况,存储器控制器发出每个事务处理,该事务处理与前一个事务处理产生一个库冲突。控制器必须在打开一个页和打开后续页之间等待一个tRC时间,这样增加了与页循环相关的最大延迟时间。在这种情况下的有效数据速率很大程度上决定于I/O,并主要受限于DRAM内核电路。最大的库冲突频率将有效带宽削减到当前最高端存储器技术峰值的20%到30%。
在第二种情况下,每个事务处理都以随机产生的地址为目标。此时,产生库冲突的机会取决于很多因素,包括tRC和存储器内核中库数量之间的相互作用。tRC值越小,开放页循环地越快,导致库冲突的损失越小。此外,存储器技术具有的库越多,随机地址存取库冲突的机率就越小。
第三种情况,每个事务处理就是一次页命中,在开放页中寻址不同的列地址。控制器不必访问关闭页,允许完全利用总线,这样就得到一种理想的情况,即有效数据速率等于峰值速率。
第一种和第三种情况都涉及到简单的计算,随机情况受其他的特性影响,这些特性没有包括在DRAM或者存储器接口中。存储器控制器仲裁和排队会极大地改善库冲突频率,因为更有可能出现不产生冲突的事务处理,而不是那些导致库冲突的事务处理。
然而,增加存储器队列深度未必增加不同存储器技术之间的相对有效数据速率。例如,即使增加存储器控制队列深度,XDR的有效数据速率也比 GDDR3高20%。存在这种增量主要是因为XDR具有更高的库数量以及更低的tRC值。一般而言,更短的tRC间隔、更多的库数量以及更大的控制器队列能产生更高的有效带宽。
实际上,很多效率限制现象是与行存取粒度相关的问题。tRC约束本质上要求存储器控制器从新开放的行中存取一定量的数据,以确保数据管线保持充满。事实上,为保持数据总线无中断地运行,在开放一个行之后,只须读取很少量的数据,即使不需要额外的数据。
另外一种减少存储器系统有效带宽的主要特性被归类到列存取粒度范畴,它规定了每次读写操作必须传输的数据量。与之相反,行存取粒度规定每个行激活(一般指每个RAS的CAS操作)需要多少单独的读写操作。列存取粒度对有效数据速率具有不易于量化的巨大影响。因为它规定一个读或写操作中需要传输的最小数据量,列存取粒度给那些一次只需要很少数据量的系统带来了问题。例如,一个需要来自两列各8字节的16字节存取粒度系统,必须读取总共32字节以存取两个位置。因为只需要32个字节中的16个字节,系统的有效数据速率降低到峰值速率的50%。总线带宽和脉冲时间长度这两个结构参数规定了存储器系统的存取粒度。
总线带宽是指连接存储器控制器和存储器件之间的数据线数量。它设定最小的存取粒度,因为对于一个指定的存储器事务处理,每条数据线必须至少传递一个数据位。而脉冲时间长度则规定对于指定的事务处理,每条数据线必须传递的位数量。每个事务处理中的每条数据线只传一个数据位的存储技术,其脉冲时间长度为1。总的列存取粒度很简单:列存取粒度=总线宽度×脉冲时间长度。
很多系统架构仅仅通过增加DRAM器件和存储总线带宽就能增加存储系统的可用带宽。毕竟,如果4个400MHz数据速率的连接可实现 1.6GHz的总峰值带宽,那么8个连接将得到3.2GHz。增加一个DRAM器件,电路板上的连线以及ASIC的管脚就会增多,总峰值带宽相应地倍增。
首要的是,架构师希望完全利用峰值带宽,这已经达到他们通过物理设计存储器总线所能达到的最大值。具有256位甚或512位存储总线的图形控制器已并不鲜见,这种控制器需要1,000个,甚至更多的管脚。封装设计师、ASIC底层规划工程师以及电路板设计工程师不能找到采用便宜的、商业上可行的方法来对这么多信号进行布线的硅片区域。仅仅增加总线宽度来获得更高的峰值数据速率,会导致因为列存取粒度限制而降低有效带宽。
假设某个特定存储技术的脉冲时间长度等于1,对于一个存储器处理,512位宽系统的存取粒度为512位(或者64字节)。如果控制器只需要一小段数据,那么剩下的数据就被浪费掉,这就降低了系统的有效数据速率。例如,只需要存储系统32字节数据的控制器将浪费剩余的32字节,进而导致有效的数据速率等于50%的峰值速率。这些计算都假定脉冲时间长度为1。随着存储器接口数据速率增加的趋势,大多数新技术的最低脉冲时间长度都大于1。
选择技巧
存储器的类型将决定整个嵌入式系统的操作和性能,因此存储器的选择是一个非常重要的决策。无论系统是采用电池供电还是由市电供电,应用需求将决定存储器的类型(易失性或非易失性)以及使用目的(存储代码、数据或者两者兼有)。另外,在选择过程中,存储器的尺寸和成本也是需要考虑的重要因素。对于较小的系统,微控制器自带的存储器就有可能满足系统要求,而较大的系统可能要求增加外部存储器。为嵌入式系统选择存储器类型时,需要考虑一些设计参数,包括微控制器的选择、电压范围、电池寿命、读写速度、存储器尺寸、存储器的特性、擦除/写入的耐久性以及系统总成本。
选择存储器时应遵循的基本原则
1、内部存储器与外部存储器
一般情况下,当确定了存储程序代码和数据所需要的存储空间之后,设计工程师将决定是采用内部存储器还是外部存储器。通常情况下,内部存储器的性价比最高但灵活性最低,因此设计工程师必须确定对存储的需求将来是否会增长,以及是否有某种途径可以升级到代码空间更大的微控制器。基于成本考虑,人们通常选择能满足应用要求的存储器容量最小的微控制器,因此在预测代码规模的时候要必须特别小心,因为代码规模增大可能要求更换微控制器。目前市场上存在各种规模的外部存储器器件,我们很容易通过增加存储器来适应代码规模的增加。有时这意味着以封装尺寸相同但容量更大的存储器替代现有的存储器,或者在总线上增加存储器。即使微控制器带有内部存储器,也可以通过增加外部串行EEPROM或闪存来满足系统对非易失性存储器的需求。
2、引导存储器
在较大的微控制器系统或基于处理器的系统中,设计工程师可以利用引导代码进行初始化。应用本身通常决定了是否需要引导代码,以及是否需要专门的引导存储器。例如,如果没有外部的寻址总线或串行引导接口,通常使用内部存储器,而不需要专门的引导器件。但在一些没有内部程序存储器的系统中,初始化是操作代码的一部分,因此所有代码都将驻留在同一个外部程序存储器中。某些微控制器既有内部存储器也有外部寻址总线,在这种情况下,引导代码将驻留在内部存储器中,而操作代码在外部存储器中。这很可能是最安全的方法,因为改变操作代码时不会出现意外地修改引导代码。在所有情况下,引导存储器都必须是非易失性存储器。
可以使用任何类型的存储器来满足嵌入式系统的要求,但终端应用和总成本要求通常是影响我们做出决策的主要因素。有时,把几个类型的存储器结合起来使用能更好地满足应用系统的要求。例如,一些PDA设计同时使用易失性存储器和非易失性存储器作为程序存储器和数据存储器。把永久的程序保存在非易失性ROM中,而把由用户下载的程序和数据存储在有电池支持的易失性DRAM中。不管选择哪种存储器类型,在确定将被用于最终应用系统的存储器之前,设计工程师必须仔细折中考虑各种设计因素。
3. 硬件预取要不要打开
硬件预取要打开。
单可以更换SSD固态硬盘。只是官方卖出来的没有直接就装SSd固态硬盘的。你可以自己去买固态硬盘来更换你的机械硬盘,然后把机械硬盘卖掉。
软件软件预取是指在编译时由编译器加入预取指令,提前将下一级存储器中的数据取回。预取指令需要计算出准确的预取地址。
硬件预取:
硬件预取是由硬件根据访存的历史信息,对未来可能的访存单元预先取入Cache,从而在数据真正被用到时不会造成Cache失效。
但是由于只是基于访存的历史信息,硬件预取会取回大量无用的Cache块,占用访存带宽,还会导致严重的Cache污染问题。由于硬件预取是基于访存的历史信息来预测未来的访存模式,从而可以在数据使用之前将其从下一级的存储器中取回。
因为加入了大量的预取指令,同时显示的预取指令需要计算出准确的预取地址,从而导致不能及时的发出预取指令以足够隐藏访存延时,影响了性能的提高。并且必须使额外的 预取指令开销不能超过预取所能带来的效益, 否则得不偿失。
4. 你好,主cpu像ddr写入数据时,又是怎么提现预取技术呢 谢谢
你这个问题可以写一本书~(而且很可能真有不止一本)因为这个课题太大
一般简单说~硬件预取+软件预取
硬件--根据历史信息--估算--提取待用 --但是由于只是基于访存的历史信息,硬件预取会取回大量无用的Cache块。。。。。
软件---软件预取是指在编译时由编译器加入预取指令,提前将下一级存储器中的数据取回。预取指令需要计算出准确的预取地址。。。。。
从而可见~就算软硬协同~准确率和无效操作。。。这就引出---各种算法
大致意思~~
5. 存储器有哪些主要技术指标
主存储器的主要有以下技术指标:
1、存储容量:在一个存储器中可以容纳的存储单元总数、存储空间的大小、字数、字节数。
2、存取时间:启动到完成一次存储器操作所经历的时间、主存的速度。
3、存储周期:连续启动两次操作所需间隔的最小时间、主存的速度。
4、存储器带宽:单位时间里存储器所存取的信息量,、数据传输速率技术指标。
主存储器的性能指标主要是存储容量、存取时间、存储周期和存储器带宽。
字存储单元即存放一个机器字的存储单元,相应的地址称为字地址。一个机器字可以包含数个字节,所以一个存储单元也可包含数个能够单独编址的字节地址。
下面列出主存储器的主要几项技术指标:
主存储器的主要几项技术指标指标 含义 表现 单位 存储容量 在一个存储器中可以容纳的存储单元总数 存储空间的大小 字数,字节数 存取时间 启动到完成一次存储器操作所经历的时间 主存的速度 ns 存储周期 连续启动两次操作所需间隔的最小时间 主存的速度 ns 存储器带宽 单位时间里存储器所存取的信息量, 数据传输速率技术指标 位/秒,字节/秒 主存储器的性能指标主要是存储容量、存取时间和存储周期。
存放一个机器字的存储单元,通常称为字存储单元,相应的单元地址叫字地址。而存放一个字节的单元,称为字节存储单元,相应的地址称为字节地址。如果计算机中可编址的最小单位是字存储单元,则该计算机称为按字编址的计算机。如果计算机中可编址的最小单位是字节,则该计算机称为按字节编址的计算机。一个机器字可以包含数个字节,所以一个存储单元也可以包含数个能够单独编址的字节地址。例如,PDP-11系列计算机,一个16位二进制的字存储单元可存放两个字节,可以按字地址寻址,也可以按字节地址寻址。当用字节地址寻址时,16位的存储单元占两个字节地址。
在一个存储器中容纳的存储单元总数通常称为该存储器的存储容量。存储容量用字数或字节数(B)来表示,如64K字,512KB,10MB。外存中为了表示更大的存储容量,采用MB,GB,TB等单位。其中1KB=2B,1MB=2B,1GB=2B,1TB=2B。B表示字节,一个字节定义为8个二进制位,所以计算机中一个字的字长通常为8的倍数。存储容量这一概念反映了存储空间的大小。
存储时间有称存储器访问时间,是指从启动一次存储器操作到完成该操作所经历的时间。具体讲,从一次读操作命令发出到该操作完成,将数据读入数据缓冲寄存器为止所经历的时间,即为存储器存取时间。
存储周期是指连续启动两次独立的存储器操作(如连续两次读操作)所需间隔的最小时间。通常,存储周期略大于存储时间,其时间单位为ns
6. 当代计算机为什么要采用流水线技术和cache存储技术
总的来说,目的都是一个,充分利用计算资源,即充分利用cpu,防止其闲置
效果都是使计算机更快,计算能力更强
那么,我们首先要定位到有哪些计算资源是被浪费掉的。
1.对于cpu内部,假设一条指令要经过 取指令,解码指令,执行指令,存储访问,写回数据 五个步骤完成,且每个步骤都有对应的部件。没有流水线技术的情况下,当cpu执行一条指令时,你会发现只有一个部件在运行,其余四个都闲着——这些资源都被闲置了。
于是流水线技术横空出世了,让这些闲置的部件都运作了起来。具体技术细节课本上有,我就不赘述了。
2.如果所有程序都只是加减乘除逻辑运算,那么计算机会很快解决,但是,一旦涉及存储器访问就会出现麻烦(比如指令中的操作数在存储器中),因为从内存读数据很慢(相对于cpu正常工作速度),得不到数据cpu只能闲置着。
而cache存储技术就是为了解决这个问题(cpu速度与存储器存取速度不匹配)而出现的。小而快速的cache能对cpu的数据要求做出快速应答,使cpu不再受等待数据(数据饥饿)的困扰。
技术延拓
技术的出发点比较纯粹,而后来许多更复杂的流水线技术已经不再满足于解决资源利用问题,他们只有一个目的: 让cpu更快!
于是各种流水线的“奇技淫巧”(指令级的并行,超标量,超流水等)就出现了~
cache方面出现了预取,非阻塞,流水cache等技术
在基础原理熟练掌握的前提下,再去看看这些进一步的优化吧,否则一头雾水。
(以上回答仅为个人看法,如有错误希望您能批评指正)
7. 高速缓冲存储器的工作原理是什么
高速缓存内存标识位于主内存中的重复指令和数据,并将其复制到其内存中。CPU不再为相同的指令和数据重复访问较慢的主内存,而是访问更快的缓存。
缓存有时称为CPU内存,通常运行在高性能的SRAM内存模块上。CPU可以访问更快的缓存内存来运行性能敏感的操作。高速缓存内存通常集成在主板下,或者在不同的芯片上,通过总线与CPU互连。
(7)存储器预取技术扩展阅读
Cache 技术所依赖的原理是”程序执行与数据访问的局部性原理“,这种局部性表现在两个方面:
时间局部性:如果程序中的某条指令一旦执行,不久以后该指令可能再次执行,如果某数据被访问过,不久以后该数据可能再次被访问。
空间局部性:一旦程序访问了某个存储单元,在不久之后,其附近的存储单元也将被访问,即程序在一段时间内所访问的地址,可能集中在一定的范围之内,这是因为指令或数据通常是顺序存放的。
时间局部性是通过将近来使用的指令和数据保存到Cache中实现。空间局部性通常是使用较大的高速缓存,并将 预取机制 集成到高速缓存控制逻辑中来实现。
8. 硬盘的主要技术指标包括哪些
硬盘常见的技术指标有以下几种:1、
每分钟转速(RPM,Revolutions
Per
Minute):这一指标代表了硬盘主轴马达(带动磁盘)的转速,比如5400RPM就代表该硬盘中的主轴转速为每分钟5400转。 2、
平均寻道时间(Average
Seek
Time):如果没有特殊说明一般指读取时的寻道时间,单位为ms(毫秒)。这一指标的含义是指硬盘接到读/写指令后到磁头移到指定的磁道(应该是柱面,但对于具体磁头来说就是磁道)上方所需要的平均时间。除了平均寻道时间外,还有道间寻道时间(Track
to
Track或Cylinder
Switch
Time)与全程寻道时间(Full
Track或Full
Stroke),前者是指磁头从当前磁道上方移至相邻磁道上方所需的时间,后者是指磁头从最外(或最内)圈磁道上方移至最内(或最外)圈磁道上方所需的时间,基本上比平均寻道时间多一倍。出于实际的工作情况,我们一般只关心平均寻道时间。 3、
平均潜伏期(Average
Latency):这一指标是指当磁头移动到指定磁道后,要等多长时间指定的读/写扇区会移动到磁头下方(盘片是旋转的),盘片转得越快,潜伏期越短。平均潜伏期是指磁盘转动半圈所用的时间。显然,同一转速的硬盘的平均潜伏期是固定的。7200RPM时约为4.167ms,5400RPM时约为5.556ms。 4、
平均访问时间(Average
Access
Time):又称平均存取时间,一般在厂商公布的规格中不会提供,这一般是测试成绩中的一项,其含义是指从读/写指令发出到第一笔数据读/写时所用的平均时间,包括了平均寻道时间、平均潜伏期与相关的内务操作时间(如指令处理),由于内务操作时间一般很短(一般在0.2ms左右),可忽略不计,所以平均访问时间可近似等于平均寻道时间+平均潜伏期,因而又称平均寻址时间。如果一个5400RPM硬盘的平均寻道时间是9ms,那么理论上它的平均访问时间就是14.556ms。 5、
数据传输率(DTR
,Data
Transfer
Rate):单位为MB/s(兆字节每秒,又称MBPS)或Mbits/s(兆位每秒,又称Mbps)。DTR分为最大(Maximum)与持续(Sustained)两个指标,根据数据交接方的不同又分外部与内部数据传输率。内部DTR是指磁头与缓冲区之间的数据传输率,外部DTR是指缓冲区与主机(即内存)之间的数据传输率。外部DTR上限取决于硬盘的接口,目前流行的Ultra
ATA-100接口即代表外部DTR最高理论值可达100MB/s,持续DTR则要看内部持续DTR的水平。内部DTR则是硬盘的真正数据传输能力,为充分发挥内部DTR,外部DTR理论值都会比内部DTR高,但内部DTR决定了外部DTR的实际表现。由于磁盘中最外圈的磁道最长,可以让磁头在单位时间内比内圈的磁道划过更多的扇区,所以磁头在最外圈时内部DTR最大,在最内圈时内部DTR最小。 6、
缓冲区容量(Buffer
Size):很多人也称之为缓存(Cache)容量,单位为MB。在一些厂商资料中还被写作Cache
Buffer。缓冲区的基本要作用是平衡内部与外部的DTR。为了减少主机的等待时间,硬盘会将读取的资料先存入缓冲区,等全部读完或缓冲区填满后再以接口速率快速向主机发送。随着技术的发展,厂商们后来为SCSI硬盘缓冲区增加了缓存功能(这也是为什么笔者仍然坚持说其是缓冲区的原因)。这主要体现在三个方面:预取(Prefetch),实验表明在典型情况下,至少50%的读取操作是连续读取。预取功能简单地说就是硬盘“私自”扩大读取范围,在缓冲区向主机发送指定扇区数据(即磁头已经读完指定扇区)之后,磁头接着读取相邻的若干个扇区数据并送入缓冲区,如果后面的读操作正好指向已预取的相邻扇区,即从缓冲区中读取而不用磁头再寻址,提高了访问速度。写缓存(Write
Cache),通常情况下在写入操作时,也是先将数据写入缓冲区再发送到磁头,等磁头写入完毕后再报告主机写入完毕,主机才开始处理下一任务。具备写缓存的硬盘则在数据写入缓区后即向主机报告写入完毕,让主机提前“解放”处理其他事务(剩下的磁头写入操作主机不用等待),提高了整体效率。为了进一步提高效能,现在的厂商基本都应用了分段式缓存技术(Multiple
Segment
Cache),将缓冲区划分成多个小块,存储不同的写入数据,而不必为小数据浪费整个缓冲区空间,同时还可以等所有段写满后统一写入,性能更好。读缓存(Read
Cache),将读取过的数据暂时保存在缓冲区中,如果主机再次需要时可直接从缓冲区提供,加快速度。读缓存同样也可以利用分段技术,存储多个互不相干的数据块,缓存多个已读数据,进一步提高缓存命中率。这是我们经常能看到的硬盘参数指标,正确理解它们的含义无疑对选购是有帮助的 7、
噪音与温度(Noise
&
Temperature):这两个属于非性能指标。对于噪音,以前厂商们并不在意,但从2000年开始,出于市场的需要(比如OEM厂商希望生产更安静的电脑以增加卖点)厂商通过各种手段来降低硬盘的工作噪音,ATA-5规范第三版也加入了自动声学(噪音)管理子集(AAM,Automatic
Acoustic
Management),因此目前的所有新硬盘都支持AAM功能。硬盘的噪音主要来源于主轴马达与音圈马达,降噪也是从这两点入手(盘片的增多也会增加噪音,但这没有办法)。除了AAM外,厂商的努力在上文的厂商介绍中已经讲到,在此就不多说了。至于热量,其实每个厂商都有自己的标准,并声称硬盘的表现是他们预料之中的,完全在安全范围之内,没有问题。这一点倒的是不用担心,不过关键在于硬盘是机箱中的一个组成部分,它的高热会提高机箱的整体温度,也许硬盘本身没事,但可能周围的配件却经受不了,别的不说,如果是两个高热的硬盘安装得很紧密,那么它还能承受近乎于双倍的热量吗?所以硬盘的热量仍需厂商们注意。