电脑技术学习

电脑的内存条包含内容?:如何排除电脑故障

dn001
问题:RT


最佳谜底:常用内存参数设置

--------------------------------------------------------------------------------

行地址节制器 (CAS)

行地址节制器(CAS)可能是最能决定内存模块对数据请求进行响应的因素之一了。通常我们把这

个叫做CAS延迟,一般来讲,在SDR SDRAM中,我们可以设定为2或者3(当然是根据自己内存的具体情况

而定)。对于DDR内存来讲,我们一般常用的设定为2或者2.5。

内存中最基本的存储单元就是柱面,而这些个柱面通过行和列的排列组成了1个矩阵。而每个行和列

的坐标集就代表了1个唯一的地址。所之内存在存取数据的时候是根据行和列的地址集来进行数据搜索

的。

寻址到可用(Trp)/CAS到RAS (CMD)

相对而言,Trp以及CMD时间并没有CAS时间那么重要,但是也是足以影响内存的性能的了。一般这

个地方设置的值为3(时钟循环),如果把这个这个值改小为2,就可以提升一点内存性能。

列地址节制器(RAS) /其他延迟

内存本身就是1个非常复杂的零部件,可以这么说,计算机内部工作过程最复杂的就是存储器了。

但是幸好这些个烦琐的工作对于我们这些个终极用户来讲是透明的,而我们平时用来判断内存性能、质量好

坏的这些个参数也只是其中的一些部分而已。有两个是不得不提到的,那就是RAS延迟和另外两个延迟。

RAS 一般是6个始终循环,但是实际上在超频中可以将它修改为5。

Command rate(指令比值)是另外1个比较普遍的延迟。允许进行的设置为1T或者是2T,而通常2T

是默认的设置,1T就要比2T稍微快一点点。另外1个需要注意之处就是Row Cycle Time (Trc,列循

环时间),这个参数通常是3或者2。

其他一些和内存紧密相关的参数

Bank 拿获时间
Bank 循环时间
已装载数据到充电前时间
已装载数据到拿获时间
Bank到Bank延迟

大部分数的这些个参数都是在内存出厂的时候由厂商根据内存的型号种类设定好了的,比如说PC2100

DDR, PC800 RAMBUS, PC133 SDR等等,她们不同的内存会给她们设置不同的参数。而我们不克不及够自己随

意的改动它。

校验内存暖和冲内存和以上我们先容的内存又有不一样之处。为了同步内存的时钟频率(这在一

些特殊的情况下要求特别严酷),数据在输出前是要首先被放到1个叫做“校验区”的存储模块中,这

样很多人都把这种内存叫做“校验内存”。这样就可以保证所有从内存中读出的数据都是“同步”的,

这样就可以制止很多的数据读写错误了。这样的1个校验过程将会消耗掉1个时钟循环,所以理论上

CAS 2的校验内存将会和CAS 3的非缓冲内存性能相当――不要嫌弃,这一切都是为了数据的稳定。

也许有一些伴侣会注意到,当她们把内存设置到CAS 2工作模式下的时候,反而体系的性能还没有

默认的CAS 2.5/3好了,这是什么原因呢?我的理解是这样的:内存执本就不克不及稳定的工作在那种模式

下,而用户强行的将内存设置为那种工作模式,这样的话就会在存取数据的时候不时的造成数据“丢失

”,这样数据不克不及取得,当然就只能重新读取,这样就浪费掉了很多的时间,当然体系效率就变低了哦



举个例子方便理解吧。内存试着去搜索所有的行和列,但是如果它在这个时钟循环中并没有能够完

成这次数据读取,那么就只有等待下1个循环,原来用1个时钟循环就能够解决的问题而现在需要用两

个时钟循环甚至3个去完成,这就较着的降低了体系效率。这个时候,越是高的频率越容易导致错误。

高速缓冲存储器Cache是位于CPU与内存之间的姑且存储器,它的容量比内存小但互换速度快。在Cache

中的数据是内存中的一小部分,但这一小部分是短期内CPU行将拜候的,当CPU调用大量数据时,就可

避开内存直接从Cache中调用,从而加快读取速度。由此可见,在CPU中加入Cache是一种高效的解决方

案,这样整个内存储器(Cache+内存)就变成了既有Cache的高速度,又有内存的大容量的存储体系了。

Cache对CPU的性能影响很大,首要是因为CPU的数据互换顺序和CPU与Cache间的带宽引起的。

高速缓存的工作原理

1.读取顺序

CPU要读取1个数据时,首先从Cache中查找,如果找到就立即读取并送给CPU处理;如果没有找到

,就用相对慢的速度从内存中读取并送给CPU处理,同时把这个数据地点的数据块调入Cache中,可以使

得往后对整块数据的读取都从Cache中进行,没必要再调用内存。

正是这样的读取机制使CPU读取Cache的命中率非常高(大部分数CPU可达90%左右),也就是说CPU下一

次要读取的数据90%都在Cache中,只有大约10%需要从内存读取。这大大节省了CPU直接读取内存的时间

,也使CPU读取数据时基本无需等待。总的来讲,CPU读取数据的顺序是先Cache后内存。

2.缓存分类

前边是把Cache作为1个整体来思量的,现在要分类阐发了。Intel从Pentium开始将Cache分开,通

常分为一级高速缓存L1和二级高速缓存L2。

在以往的观念中,L1 Cache是集成在CPU中的,被称为片内Cache。在L1中还分数据Cache(I-Cache)

和指令Cache(D-Cache)。它们别离用来储存安放数据和执行这些个数据的指令,并且两个Cache可以同时被CPU

拜候,减少了争用Cache所造成的冲突,提高了处理器效能。

在P4处理器中使用了一种先进的一级指令Cache――动态跟踪缓存。它直接和执行单元及动态跟踪

引擎相连,通过动态跟踪引擎可以很快地找到所执行的指令,并且将指令的顺序存储在追踪缓存里,这

样就减少了主执行循环的解码周期,提高了处理器的运算效率。

以前的L2 Cache没集成在CPU中,而在主板上或与CPU集成在统一块电路板上,因此也被称为片外

Cache。但从PⅢ开始,由于工艺的提高L2 Cache被集成在CPU内核中,以相同于主频的速度工作,结束

了L2 Cache与CPU大差距分频的汗青,使L2 Cache与L1 Cache在性能上平等,得到更高的传输速度。

L2Cache只存储数据,因此不分数据Cache和指令Cache。在CPU核心不变化的情况下,增加L2 Cache的容

量能使性能提升,统一核心的CPU高低端之分往往也是在L2 Cache上做手脚,可见L2 Cache的重要性。

现在CPU的L1 Cache与L2 Cache惟一区别在于读取顺序。

3.读取命中率

CPU在Cache中找到有用的数据被称为命中,当Cache中没有CPU所需的数据时(这时候称为未命中),

CPU才拜候内存。从理论上讲,在一颗拥有2级Cache的CPU中,读取L1 Cache的命中率为80%。也就是说

CPU从L1 Cache中找到的有用数据占数据总量的80%,剩下的20%从L2 Cache读取。由于不克不及准确预测将

要执行的数据,读取L2的命中率也在80%左右(从L2读到有用的数据占总数据的16%)。那么还有的数据就

不得不从内存调用,但这已经是1个相当小的比例了。在一些高端领域的CPU(像Intel的Itanium)中,

我们常听到L3 Cache,它是为读取L2 Cache后未命中的数据预设的―种Cache,在拥有L3 Cache的CPU中

,只有约5%的数据需要从内存中调用,这进一步提高了CPU的效率。

为了保证CPU拜候时有较高的命中率,Cache中的内容应该按一定的算法替代。一种较常用的算法是

“最近最少使用算法”(LRU算法),它是将最近一段时间内最少被拜候过的行淘汰出局。因此需要为每

行设置1个统计器,LRU算法是把命中行的统计器清零,其他各行统计器加1。当需要替代时淘汰行统计

器统计值最大的数据行出局。这是一种高效、科学的算法,其统计器清零过程可以把一些频繁调用后再

不需要的数据淘汰出Cache,提高Cache的利用率。

缓存技术的发展

总之,在传输速度有较大差异的装备间都可以利用Cache作为匹配来调治差距,或者说是这些个装备

的传输通道。在显示体系、硬盘和光驱,以及网络通讯中,都需要使用Cache技术。但Cache均由静态

RAM组成,结构复杂,成本不菲,使用现有工艺在有限的面积内不可能做得很大,不过,这也正是技术

前进的源动力,有需要才有进步!


内存在电脑中的重要性和地位仅次于CPU,其品质的优劣对电脑性能有至关重要的影响。为充分发挥内

存的潜能,必须在BIOS设置中对与内存有关的参数进行调整。下面针对稍老一点的支持Intel Pentium

Ⅲ、CeleronⅡ处理器的Intel 815E/815EP芯片组主板、VIA(威盛)694X芯片组主板和支持AMD Thunder

bird(雷鸟)、Duron(钻龙)处理器的VIA KT133/133A芯片组主板,先容如何在最常见的Award BIOS 6.0

中优化内存设置。对于使用较早芯片组的主板和低版本的Award BIOS,其内存设置项相对要少一些,但

本文所先容的设置方法同样是适用的。
Intel 815E/815EP芯片组主板

在这类主板BIOS的Advanced Chipset Features(高级芯片组特性)设置页面中一般包罗以下内存设

置项:
Set SDRAM Timing By SPD(根据SPD确定内存时序)

可选项:Disabled,Enabled。

SPD(Serial Presence Detect )是内存条上1个很小的芯片,它存储了内存条的工作参数信息。如

果使用优质的品牌内存,则可以将DRAM Timing By SPD设置成Enabled,此时,就无需对下面先容的

BIOS内存参数进行设置了,体系会自动根据SPD中的数据确定内存的运行参数。有些兼容内存的SPD是空

的或者感觉某些品牌内存的SPD参数比较保守,想充分挖掘其潜能,则可以将该参数设置成Disabled

,这时候,就可以对以下的内存参数进行调整了。
SDRAM CAS Latency Time(内存CAS延迟时间)

可选项:2,3。

内存CAS(Column Address Strobe,列地址选通脉冲)延迟时间节制SDRAM内存接收到一条数据读取

指令后要等待多少个时钟周期才实际执行该指令。同时该参数也决定了在一次内存暴发传送过程中完成

第一部分传送所需要的时钟周期数。这个参数越小,则内存的速度越快。在133MHz频率下,品质一般的

兼容内存大部分只能在CAS=3下运行,在CAS=2下运行会使体系不稳定、丢失数据甚至无法启动。CAS延迟

时间是1个非常重要的内存参数,对电脑性能的影响比较大,Intel与VIA就PC133内存规范的不合也与

此参数有关,Intel以为PC133内存应能稳定运行于133MHz频率、CAS=2下,而VIA以为PC133内存能稳定

运行于133MHz频率便可,并未特别指定CAS值,因此Intel的规范越发严酷,一般只有品牌内存才能够满

足此规范,所以大家感觉Intel的主板比较挑内存。
SDRAM Cycle Time Tras/Trc(内存Tras/Trc时钟周期)

可选项:5/7,7/9。

该参数用于确定SDRAM内存行拿获时间和行周期时间的时钟周期数。Tras代表SDRAM行拿获时间(Row

Active Time),它是为进行数据传输而开启行单元所需要的时钟周期数。Trc代表SDRAM行周期时间(Row

Cycle Time),它是包括行单元开启和行单元刷新在内的整个过程所需要的时钟周期数。出于最佳性能

思量可将该参数设为5/7,这时候内存的速度较快,但有可能呈现因行单元开启时间不足而影响数据传输

的情况,在SDRAM内存的工作频率高于100MHz时尤其是这样,纵然是品牌内存大部分也承受不了如此苛刻

的设置。
SDRAM RAS-TO-CAS Delay(内存行地址传输到列地址的延迟时间)

可选项:2,3。

该参数可以节制SDRAM行地址选通脉冲(RAS,Row Address Strobe)旌旗灯号与列地址选通脉冲旌旗灯号之间

的延迟。对SDRAM进行读、写或刷新操作时,需要在这两种脉冲旌旗灯号之间插入延迟时钟周期。出于最佳

性能思量可将该参数设为2,如果体系无法稳定运行则可将该参数设为3。
SDRAM RAS Precharge Time(内存行地址选通脉冲预充电时间)

可选项:2,3。

该参数可以节制在进行SDRAM刷新操作之前行地址选通脉冲预充电所需要的时钟周期数。将预充电

时间设为2可以提高SDRAM的性能,但是如果2个时钟周期的预充电时间不足,则SDRAM会因无法正常完成

刷新操作而不克不及保持数据。
Memory Hole At 15M-16M(位于15M~16M的内存保留区)

可选项: Disabled,Enabled。

一些特殊的ISA扩展卡的正常工作需要使用位于15M~16M的内存区域,该参数设为Enabled就将该内

存区域保留给此类ISA扩展卡使用。由于PC’99规范已不再支持ISA扩展槽,所以新型的主板一般都没有

ISA插槽,因而应将该参数设为Disabled。
System Memory Frequency(体系内存频率)

可选项:AUTO、100MHz、133MHz。

此项设置使成为事实内存异步运行管理功效。AUTO:根据内存的特性自动设定内存的工作频率;100MHz:

将内存强力压制设定在100MHz频率下工作;133MHz:将内存强力压制设定在133MHz频率下工作。
Memory Parity/ECC Check(内存奇偶/ECC校验)

可选项:Disabled,Enabled。

如果体系使用了ECC内存,可以将该参数设为Enabled,否则一定要将该参数设成Disabled。ECC表

示差错校验和改正(Error Checking and Correction)一般是高档服务器内存条所具备的功效,这种

内存条有使成为事实ECC功效的内存颗粒,使体系能够检测并改正内存中的一位数据差错或者是检测出两位数

据差错。ECC功效可以提高数据的完整性和体系的稳定性,这对服务器尤其重要,但ECC会造成一定的性

能损失。
VIA芯片组主板

VIA芯片组主板一般比Intel芯片组主板内存设置选项要富厚一些,在这类主板BIOS的Advanced

Chipset Features(高级芯片组特性)设置页面中一般包罗以下内存设置项:

Bank 0/1、2/三、4/5 DRAM Timing(内存速度设定)

可选项:Turbo(高速),Fast(迅速),Medium(中等),Normal(正常),SDRAM 8/10 ns。

该选项用于设定内存的速度,对于SDRAM内存条,设定为SDRAM 8/10 ns便可。
SDRAM Clock(内存时钟频率)

可选项:HOST CLK,HCLK+33M(或HCLK-33M)。

该参数设置内存的异步运行模式。HOST CLK表示内存运行频率等于体系的外频,HCLK+33M表示内存

运行频率等于体系外频再加上33MHz,HCLK-33M表示内存运行频率等于体系外频减去33MHz。如Pentium

Ⅲ 800EB时,BIOS自动使该参数的可选项呈现HOST CLK和HCLK-33M,如果使用PC133内存,可以将该参

数设为HOST CLK,如果使用PC100内存,则可以将该参数设为HCLK-33M,这样就可使体系配合性能较低

的PC100内存使用。内存异步功效使体系对内存的兼容性的提升是比较较着的,也是VIA芯片组一项比较

重要的功效。

Bank Interleave(内存Bank交错)

可选项:Disabled,2-Bank,4-Bank。

内存交错使SDRAM内存各个面的刷新时钟信与读写时钟旌旗灯号能够交错呈现,这可以使成为事实CPU在刷新一

个内存面的同时对另1个内存面进行读写,这样就没必要破费专门的时间来对各个内存面进行刷新。并且

在CPU行将拜候的一串内存地址别离位于不同内存面的情况下,内存面交错使CPU能够使成为事实在向后1个内

存面发送地址的同时从前1个内存面接收数据,从而产生一种流水线操作的成效,提高了SDRAM内存的

带宽。因此,有人甚至以为开始使用内存交错对于体系性能的提高比将内存CAS延迟时间从3改成2还要大。
不过,内存交错是1个比较高级的内存设置选项,有一些采用VIA 694X芯片组的主板由于BIOS版本

较旧,可能没有该设置项,这时候可以进级主板的BIOS。如果在最新版的BIOS中仍未呈现该设置项,那就

只有通过某些VIA芯片组内存BANK交错开启软件,如WPCREdit和相应的插件(可以从“驱动之家”网站下

载)来修改北桥芯片的寄存器,从而打开内存交错模式。
SDRAM Driver Strength(内存拜候旌旗灯号的强度)

可选项:Auto,Manual。

此选项用于节制内存拜候旌旗灯号的强度。一般情况下可以将该选项设置成Auto,此时芯片组承担内存

拜候旌旗灯号强度的节制工作并自动调整内存拜候旌旗灯号的强度以与电脑中安装的内存相顺应。如果需要超频

或排除电脑故障,则可以将该参数设为Manual,这时候就可以手工调整SDRAM Driver Value(内存拜候信

号强度值)的数值。
SDRAM Driver Value(内存拜候旌旗灯号强度值)

可选项:00至FF(十六进制)。

该选项决定了内存拜候旌旗灯号强度的数值。要注意的是只有将SDRAM Driver Strength选项设为

Manual时,SDRAM Driver Value的数值才是有效的。SDRAM Driver Value的范围是十六进制的00至FF,

其数值越大,则内存拜候旌旗灯号的强度也越大。内存对工作频率是比较敏感的,当工作频率高于内存的标

称频率时,将该选项的数值调高,可以提高电脑在超频状态下的稳定性。这种做法尽管没有提高内存的

工作电压(有一些超频功效较强的主板可以调整内存的工作电压),但在提高SDRAM Driver Value的数值

时仍然要十分稳重,以免造成内存条的损坏。
Fast R-W Turn Around(迅速读写转换)

可选项: Enabled,Disabled。

当CPU先从内存读取数据然后向内存写入数据时,通常存在额外的延迟,该参数可以降低这种读写

转换之间的延迟。将该参数设置成Enabled,可以降低内存读写转换延迟,从而使内存从读状态转入写

状态的速度更快。然而,如果内存不克不及使成为事实迅速读写转换,则会造成数据丢失和体系不稳定,这时候就需

要将该参数设置成Disabled。
注意:在BIOS中对内存进行优化设置可能会对电脑运行的稳定性造成不良影响,所以建议内存优化

后一定要使用测试软件进行电脑稳定性和速度的测试。如果您对自己内存的性能没有信心,那么最好采

保释守设置,毕竟稳定性是最重要的。如果因内存优化而呈现电脑经常死机、重启动或程序发生异样错

误等情况,只要清除CMOS参数,再次设置成体系默认的数值就可以了。




--------------------------------------------------------------------------------

行地址节制器 (CAS)

行地址节制器(CAS)可能是最能决定内存模块对数据请求进行响应的因素之一了。通常我们把这

个叫做CAS延迟,一般来讲,在SDR SDRAM中,我们可以设定为2或者3(当然是根据自己内存的具体情况

而定)。对于DDR内存来讲,我们一般常用的设定为2或者2.5。

内存中最基本的存储单元就是柱面,而这些个柱面通过行和列的排列组成了1个矩阵。而每个行和列

的坐标集就代表了1个唯一的地址。所之内存在存取数据的时候是根据行和列的地址集来进行数据搜索

的。

寻址到可用(Trp)/CAS到RAS (CMD)

相对而言,Trp以及CMD时间并没有CAS时间那么重要,但是也是足以影响内存的性能的了。一般这

个地方设置的值为3(时钟循环),如果把这个这个值改小为2,就可以提升一点内存性能。

列地址节制器(RAS) /其他延迟

内存本身就是1个非常复杂的零部件,可以这么说,计算机内部工作过程最复杂的就是存储器了。

但是幸好这些个烦琐的工作对于我们这些个终极用户来讲是透明的,而我们平时用来判断内存性能、质量好

坏的这些个参数也只是其中的一些部分而已。有两个是不得不提到的,那就是RAS延迟和另外两个延迟。

RAS 一般是6个始终循环,但是实际上在超频中可以将它修改为5。

Command rate(指令比值)是另外1个比较普遍的延迟。允许进行的设置为1T或者是2T,而通常2T

是默认的设置,1T就要比2T稍微快一点点。另外1个需要注意之处就是Row Cycle Time (Trc,列循

环时间),这个参数通常是3或者2。

其他一些和内存紧密相关的参数

Bank 拿获时间
Bank 循环时间
已装载数据到充电前时间
已装载数据到拿获时间
Bank到Bank延迟

大部分数的这些个参数都是在内存出厂的时候由厂商根据内存的型号种类设定好了的,比如说PC2100

DDR, PC800 RAMBUS, PC133 SDR等等,她们不同的内存会给她们设置不同的参数。而我们不克不及够自己随

意的改动它。

校验内存暖和冲内存和以上我们先容的内存又有不一样之处。为了同步内存的时钟频率(这在一

些特殊的情况下要求特别严酷),数据在输出前是要首先被放到1个叫做“校验区”的存储模块中,这

样很多人都把这种内存叫做“校验内存”。这样就可以保证所有从内存中读出的数据都是“同步”的,

这样就可以制止很多的数据读写错误了。这样的1个校验过程将会消耗掉1个时钟循环,所以理论上

CAS 2的校验内存将会和CAS 3的非缓冲内存性能相当――不要嫌弃,这一切都是为了数据的稳定。

也许有一些伴侣会注意到,当她们把内存设置到CAS 2工作模式下的时候,反而体系的性能还没有

默认的CAS 2.5/3好了,这是什么原因呢?我的理解是这样的:内存执本就不克不及稳定的工作在那种模式

下,而用户强行的将内存设置为那种工作模式,这样的话就会在存取数据的时候不时的造成数据“丢失

”,这样数据不克不及取得,当然就只能重新读取,这样就浪费掉了很多的时间,当然体系效率就变低了哦



举个例子方便理解吧。内存试着去搜索所有的行和列,但是如果它在这个时钟循环中并没有能够完

成这次数据读取,那么就只有等待下1个循环,原来用1个时钟循环就能够解决的问题而现在需要用两

个时钟循环甚至3个去完成,这就较着的降低了体系效率。这个时候,越是高的频率越容易导致错误。

高速缓冲存储器Cache是位于CPU与内存之间的姑且存储器,它的容量比内存小但互换速度快。在Cache

中的数据是内存中的一小部分,但这一小部分是短期内CPU行将拜候的,当CPU调用大量数据时,就可

避开内存直接从Cache中调用,从而加快读取速度。由此可见,在CPU中加入Cache是一种高效的解决方

案,这样整个内存储器(Cache+内存)就变成了既有Cache的高速度,又有内存的大容量的存储体系了。

Cache对CPU的性能影响很大,首要是因为CPU的数据互换顺序和CPU与Cache间的带宽引起的。

高速缓存的工作原理

1.读取顺序

CPU要读取1个数据时,首先从Cache中查找,如果找到就立即读取并送给CPU处理;如果没有找到

,就用相对慢的速度从内存中读取并送给CPU处理,同时把这个数据地点的数据块调入Cache中,可以使

得往后对整块数据的读取都从Cache中进行,没必要再调用内存。

正是这样的读取机制使CPU读取Cache的命中率非常高(大部分数CPU可达90%左右),也就是说CPU下一

次要读取的数据90%都在Cache中,只有大约10%需要从内存读取。这大大节省了CPU直接读取内存的时间

,也使CPU读取数据时基本无需等待。总的来讲,CPU读取数据的顺序是先Cache后内存。

2.缓存分类

前边是把Cache作为1个整体来思量的,现在要分类阐发了。Intel从Pentium开始将Cache分开,通

常分为一级高速缓存L1和二级高速缓存L2。

在以往的观念中,L1 Cache是集成在CPU中的,被称为片内Cache。在L1中还分数据Cache(I-Cache)

和指令Cache(D-Cache)。它们别离用来储存安放数据和执行这些个数据的指令,并且两个Cache可以同时被CPU

拜候,减少了争用Cache所造成的冲突,提高了处理器效能。

在P4处理器中使用了一种先进的一级指令Cache――动态跟踪缓存。它直接和执行单元及动态跟踪

引擎相连,通过动态跟踪引擎可以很快地找到所执行的指令,并且将指令的顺序存储在追踪缓存里,这

样就减少了主执行循环的解码周期,提高了处理器的运算效率。

以前的L2 Cache没集成在CPU中,而在主板上或与CPU集成在统一块电路板上,因此也被称为片外

Cache。但从PⅢ开始,由于工艺的提高L2 Cache被集成在CPU内核中,以相同于主频的速度工作,结束

了L2 Cache与CPU大差距分频的汗青,使L2 Cache与L1 Cache在性能上平等,得到更高的传输速度。

L2Cache只存储数据,因此不分数据Cache和指令Cache。在CPU核心不变化的情况下,增加L2 Cache的容

量能使性能提升,统一核心的CPU高低端之分往往也是在L2 Cache上做手脚,可见L2 Cache的重要性。

现在CPU的L1 Cache与L2 Cache惟一区别在于读取顺序。

3.读取命中率

CPU在Cache中找到有用的数据被称为命中,当Cache中没有CPU所需的数据时(这时候称为未命中),

CPU才拜候内存。从理论上讲,在一颗拥有2级Cache的CPU中,读取L1 Cache的命中率为80%。也就是说

CPU从L1 Cache中找到的有用数据占数据总量的80%,剩下的20%从L2 Cache读取。由于不克不及准确预测将

要执行的数据,读取L2的命中率也在80%左右(从L2读到有用的数据占总数据的16%)。那么还有的数据就

不得不从内存调用,但这已经是1个相当小的比例了。在一些高端领域的CPU(像Intel的Itanium)中,

我们常听到L3 Cache,它是为读取L2 Cache后未命中的数据预设的―种Cache,在拥有L3 Cache的CPU中

,只有约5%的数据需要从内存中调用,这进一步提高了CPU的效率。

为了保证CPU拜候时有较高的命中率,Cache中的内容应该按一定的算法替代。一种较常用的算法是

“最近最少使用算法”(LRU算法),它是将最近一段时间内最少被拜候过的行淘汰出局。因此需要为每

行设置1个统计器,LRU算法是把命中行的统计器清零,其他各行统计器加1。当需要替代时淘汰行统计

器统计值最大的数据行出局。这是一种高效、科学的算法,其统计器清零过程可以把一些频繁调用后再

不需要的数据淘汰出Cache,提