1. 关于CPU的一些知识
CPU又叫中央处理器,是英文单词Central Processing Unit的缩写,负责对信息和数据进行运算和处理,并实现本身运行过程的自动化。在早期的计算机当中,CPU被分成了运算器和控 制器两个部分,后来由于电路集成度的提高,在微处理器问世时,就将它们都集成在一个芯片中了。需要智能控制、大量信息处理的地方就会 用到CPU。
CPU有通用CPU和嵌入式CPU,通用和嵌入式的分别,主要是根据应用模式的不同而划分的。通用CPU芯片的功能一般比较强,能运 行复杂的操作系统和大型应用软件。嵌入式CPU在功能和性能上有很大的变化范围。随着集成度的提高,在嵌入式应用中,人们倾向于把CPU、 存储器和一些外围电路集成到一个芯片上,构成所谓的系统芯片(简称为SOC),而把SOC上的那个CPU成为CPU芯核。
现在,指令系统的优化设计有两个截然相反的方向。一个是增强指令的功能,设置一些功能复杂的指令,把一些原来有软件实现的常用功能 改用硬件的指令系统来实现,这种计算机成为复杂指令系统计算机。早期Intel的X86指令体系就是一种CISC指令结构。
RISC是Reced Instruction Set Computer的缩写中文翻译成精简指令系统计算机,是八十年代发展起来的,尽量简化指令功能,只保留那些功能简单,能在 一个节拍内执行完成的指令,较复杂的功能用一段子程序来实现,这种计算机系统成为精简指令系统计算机。目前采用RISC体系结构的处理器 的芯片厂商有SUN、SGI、IBM的Power PC系列、DEC公司的Alpha系列、Motorola公司的龙珠和Power PC等等。
介绍一下 MIPS体系。
MIPS是世界上很流行的一种RISC处理器。MIPS的意思是"无内部互锁流水级的微处理器"(Microprocessor without interlocked piped stages),其机制是尽量利用软件办法避免流水线中的数据相关问题。他最早是在80年代初期由斯坦福(Stanford)大学 Hennessy教授领导的研究小组研制出来的。MIPS公司的R系列就是在此基础上开发的RISC工业产品的微处理器。这些系列产品以为很多打计算机 公司采用构成各种工作站和计算机系统。
指令系统
要讲CPU,就必须先讲一下指令系统。 指令系统指的是一个CPU所能够处理的全部指
令的集合,是一个CPU的根本属性。比如我们现在所用的CPU都是采用x86指令集的,他们都是 同一类型的CPU,不管是PIII、Athlon或Joshua。我们也知道,世界上还有比PIII和Athlon快得多的CPU,比如Alpha,但它们不是用x86指令集 ,不能使用数量庞大的基于x86指令集的程序,如Windows98。之所以说指令系统是一个CPU的根本属性,是因为指令系统决定了一个CPU能够运 行什么样的程序。
所有采用高级语言编出的程序,都需要翻译(编译或解释)成为机器语言后才能运行,这些机器语言中 所包含的就是一条条的指令。
1、 指令的格式
一条指令一般包括两个部分:操作码和地址码。操 作码其实就是指令序列号,用来告诉CPU需要执行的是那一条指令。地址码则复杂一些,主要包括源操作数地址、目的地址和下一条指令的地址 。在某些指令中,地址码可以部分或全部省略,比如一条空指令就只有操作码而没有地址码。
举个例子吧,某个指令系统 的指令长度为32位,操作码长度为8位,地址长度也为8位,且第一条指令是加,第二条指令是减。当它收到一个 “”的指令时,先取出它的前8位操作码,即00000010,分析得出这是一个减法操作,有3个地址,分别是 两个源操作数地址和一个目的地址。于是,CPU就到内存地址00000100处取出被减数,到00000001处取出减数,送到ALU中进行减法运算,然后 把结果送到00000110处。
这只是一个相当简单化的例子,实际情况要复杂的多
2、 指令的分类与寻址 方式
一般说来,现在的指令系统有以下几种类型的指令:
(1)算术逻辑运算指令
算术逻辑运算 指令包括加减乘除等算术运算指令,以及与或非异或等逻辑运算指令。现在的指令系统还加入了一些十进制运算指令以及字符串运算指令等。
(2)浮点运算指令
用于对浮点数进行运算。浮点运算要大大复杂于整数运算,所以CPU中一般还会有专门负责浮点运 算的浮点运算单元。现在的浮点指令中一般还加入了向量指令,用于直接对矩阵进行运算,对于现在的多媒体和3D处理很有用。
(3)位 操作指令
学过C的人应该都知道C语言中有一组位操作语句,相对应的,指令系统中也有一组位操作指令,如左移一位右移 一位等。对于计算机内部以二进制不码表示的数据来说,这种操作是非常简单快捷的。
(4)其他指令
上面三种都是 运算型指令,除此之外还有许多非运算的其他指令。这些指令包括:数据传送指令、堆栈操作指令、转移类指令、输入输出指令和一些比较特 殊的指令,如特权指令、多处理器控制指令和等待、停机、空操作等指令。
对于指令中的地址码,也会有许多不同的寻址 (编址)方式,主要有直接寻址,间接寻址,寄存器寻址,基址寻址,变址寻址等,某些复杂的指令系统会有几十种甚至更多的寻址方式。
3、 CISC与RISC
CISC,Complex Instruction Set Computer,复杂指令系统计算机。RISC,Reced Instruction Set Computer,精简指令系统计算机。虽然这两个名词是针对计算机的,但下文我们仍然只对指令集进行研究。
(1)CISC 的产生、发展和现状
一开始,计算机的指令系统只有很少一些基本指令,而其他的复杂指令全靠软件编译时通过简单指令 的组合来实现。举个最简单的例子,一个a乘以b的操作就可以转换为a个b相加来做,这样就用不着乘法指令了。当然,最早的指令系统就已经 有乘法指令了,这是为什么呢?因为用硬件实现乘法比加法组合来得快得多。
由于那时的计算机部件相当昂贵,而且速度 很慢,为了提高速度,越来越多的复杂指令被加入了指令系统中。但是,很快又有一个问题:一个指令系统的指令数是受指令操作码的位数所 限制的,如果操作码为8位,那么指令数最多为256条(2的8次方)。
那么怎么办呢?指令的宽度是很难增加的,聪明的设计师们又想出了 一种方案:操作码扩展。前面说过,操作码的后面跟的是地址码,而有些指令是用不着地址码或只用少量的地址码的。那么,就可以把操作码 扩展到这些位置。
举个简单的例子,如果一个指令系统的操作码为2位,那么可以有00、01、10、11四条不同的指令。现在 把11作为保留,把操作码扩展到4位,那么就可以有00、01、10、1100、1101、1110、1111七条指令。其中1100、1101、1110、1111这四条指令 的地址码必须少两位。
然后,为了达到操作码扩展的先决条件:减少地址码,设计师们又动足了脑筋,发明了各种各样的寻址方式,如基 址寻址、相对寻址等,用以最大限度的压缩地址码长度,为操作码留出空间。
就这样,慢慢地,CISC指令系统就形成了, 大量的复杂指令、可变的指令长度、多种的寻址方式是CISC的特点,也是CISC的缺点:因为这些都大大增加了解码的难度,而在现在的高速硬 件发展下,复杂指令所带来的速度提升早已不及在解码上浪费点的时间。除了个人PC市场还在用x86指令集外,服务器以及更大的系统都早已不 用CISC了。x86仍然存在的唯一理由就是为了兼容大量的x86平台上的软件。
]:(2)RISC的产生、发展和现状
1975年,IBM的设计师John Cocke研究了当时的IBM370CISC系统,发现其中占总指令数仅20%的简单指令却在程序调用中占了80% ,而占指令数80%的复杂指令却只有20%的机会用到。由此,他提出了RISC的概念。
事实证明,RISC是成功的。80年代末,各公司的RISC CPU如雨后春笋般大量出现,占据了大量的市场。到了90年代,x86的CPU如pentium和k5也开始使用先进的RISC核心。
RISC 的最大特点是指令长度固定,指令格式种类少,寻址方式种类少,大多数是简单指令且都能在一个时钟周期内完成,易于设计超标量与流水线 ,寄存器数量多,大量操作在寄存器之间进行。由于下文所讲的CPU核心大部分是讲RISC核心,所以这里就不多介绍了,对于RISC核心的设计下 面会详细谈到。
RISC目前正如日中天,Intel的Itanium也将最终抛弃x86而转向RISC结构。
二、CPU内核结构
好吧 ,下面来看看CPU。CPU内核主要分为两部分:运算器和控制器。
(一) 运算器
1、 算术逻辑运算单元ALU(Arithmetic and Logic Unit)
ALU主要完成对二进制数据的定点算术运算(加减乘除)、逻辑运算(与或非异或)以及移位操作。在某些CPU中还 有专门用于处理移位操作的移位器。
通常ALU由两个输入端和一个输出端。整数单元有时也称为IEU(Integer Execution Unit)。我们通常所说的“CPU是XX位的”就是指ALU所能处理的数据的位数。
2、 浮点运算单元FPU(Floating Point Unit)
FPU主要负责浮点运算和高精度整数运算。有些FPU还具有向量运算的功能,另外一些则有专门的向量处理单元。
3、通用寄存器组
通用寄存器组是一组最快的存储器,用来保存参加运算的操作数和中间结果。
在通用寄存器的设计上,RISC与CISC有 着很大的不同。CISC的寄存器通常很少,主要是受了当时硬件成本所限。比如x86指令集只有8个通用寄存器。所以,CISC的CPU执行是大多数时 间是在访问存储器中的数据,而不是寄存器中的。这就拖慢了整个系统的速度。而RISC系统往往具有非常多的通用寄存器,并采用了重叠寄存 器窗口和寄存器堆等技术使寄存器资源得到充分的利用。
对于x86指令集只支持8个通用寄存器的缺点,Intel和AMD的最新 CPU都采用了一种叫做“寄存器重命名”的技术,这种技术使x86CPU的寄存器可以突破8个的限制,达到32个甚至更多。不过,相对于RISC来说 ,这种技术的寄存器操作要多出一个时钟周期,用来对寄存器进行重命名。
4、 专用寄存器
专用寄存器通常是一些状 态寄存器,不能通过程序改变,由CPU自己控制,表明某种状态。
(二) 控制器
运算器只能完成运算,而控 制器用于控制着整个CPU的工作。
1、 指令控制器
指令控制器是控制器中相当重要的部分,它要完成取指令、分析指令等操作,然 后交给执行单元(ALU或FPU)来执行,同时还要形成下一条指令的地址。
2、 时序控制器
时序控制器的作用是为每条 指令按时间顺序提供控制信号。时序控制器包括时钟发生器和倍频定义单元,其中时钟发生器由石英晶体振荡器发出非常稳定的脉冲信号,就 是CPU的主频;而倍频定义单元则定义了CPU主频是存储器频率(总线频率)的几倍。
3、 总线控制器
总线控制器主要用于控制CPU 的内外部总线,包括地址总线、数据总线、控制总线等等。
4、中断控制器
中断控制器用于控制各种各样的中断请求,并根据优先 级的高低对中断请求进行排队,逐个交给CPU处理。
(三) CPU核心的设计
CPU的性能是由什么决定的呢?单纯的一个ALU速度在一个CPU中并不起决定性作用,因为ALU的速度都差不多。而一个CPU的性能表现的决 定性因素就在于CPU内核的设计。
1、超标量(Superscalar)
既然无法大幅提高ALU的速度,有什么替代的方法呢?并行处理的方 法又一次产生了强大的作用。所谓的超标量CPU,就是只集成了多个ALU、多个FPU、多个译码器和多条流水线的CPU,以并行处理的方式来提高 性能。
超标量技术应该是很容易理解的,不过有一点需要注意,就是不要去管“超标量”之前的那个数字,比如“9路超标量”,不同 的厂商对于这个数字有着不同的定义,更多的这只是一种商业上的宣传手段。
2、流水线(Pipeline)
流水线是现代RISC核心的一 个重要设计,它极大地提高了性能。
对于一条具体的指令执行过程,通常可以分为五个部分:取指令,指令译码,取操作数,运算 (ALU),写结果。其中前三步一般由指令控制器完成,后两步则由运算器完成。按照传统的方式,所有指令顺序执行,那么先是指令控制器工 作,完成第一条指令的前三步,然后运算器工作,完成后两步,在指令控制器工作,完成第二条指令的前三步,在是运算器,完成第二条指令 的后两部……很明显,当指令控制器工作是运算器基本上在休息,而当运算器在工作时指令控制器却在休息,造成了相当大的资源浪费。解决 方法很容易想到,当指令控制器完成了第一条指令的前三步后,直接开始第二条指令的操作,运算单元也是。这样就形成了流水线系统,这是 一条2级流水线。
如果是一个超标量系统,假设有三个指令控制单元和两个运算单元,那么就可以在完成了第一条指令的取址工作后直 接开始第二条指令的取址,这时第一条指令在进行译码,然后第三条指令取址,第二条指令译码,第一条指令取操作数……这样就是一个5级流 水线。很显然,5级流水线的平均理论速度是不用流水线的4倍。
流水线系统最大限度地利用了CPU资源,使每个部件在每个时钟周期都 工作,大大提高了效率。但是,流水线有两个非常大的问题:相关和转移。
在一个流水线系统中,如果第二条指令需要用到第一条指 令的结果,这种情况叫做相关。以上面哪个5级流水线为例,当第二条指令需要取操作数时,第一条指令的运算还没有完成,如果这时第二条指 令就去取操作数,就会得到错误的结果。所以,这时整条流水线不得不停顿下来,等待第一条指令的完成。这是很讨厌的问题,特别是对于比 较长的流水线,比如20级,这种停顿通常要损失十几个时钟周期。目前解决这个问题的方法是乱序执行。乱序执行的原理是在两条相关指令中 插入不相关的指令,使整条流水线顺畅。比如上面的例子中,开始执行第一条指令后直接开始执行第三条指令(假设第三条指令不相关),然 后才开始执行第二条指令,这样当第二条指令需要取操作数时第一条指令刚好完成,而且第三条指令也快要完成了,整条流水线不会停顿。当 然,流水线的阻塞现象还是不能完全避免的,尤其是当相关指令非常多的时候。
另一个大问题是条件转移。在上面的例子中,如果第 一条指令是一个条件转移指令,那么系统就会不清楚下面应该执行那一条指令?这时就必须等第一条指令的判断结果出来才能执行第二条指令 。条件转移所造成的流水线停顿甚至比相关还要严重的多。所以,现在采用分支预测技术来处理转移问题。虽然我们的程序中充满着分支,而 且哪一条分支都是有可能的,但大多数情况下总是选择某一分支。比如一个循环的末尾是一个分支,除了最后一次我们需要跳出循环外,其他 的时候我们总是选择继续循环这条分支。根据这些原理,分支预测技术可以在没有得到结果之前预测下一条指令是什么,并执行它。现在的分 支预测技术能够达到90%以上的正确率,但是,一旦预测错误,CPU仍然不得不清理整条流水线并回到分支点。这将损失大量的时钟周期。所以 ,进一步提高分支预测的准确率也是正在研究的一个课题。
越是长的流水线,相关和转移两大问题也越严重,所以,流水线并不是越 长越好,超标量也不是越多越好,找到一个速度与效率的平衡点才是最重要的。
1、解码器(Decode Unit)
这是x86CPU才有的东西,它的作用是把长度不定的x86指令转换为长度固定的类似于RISC的指令,并交给RISC内核。解码分为硬件解码和微解码 ,对于简单的x86指令只要硬件解码即可,速度较快,而遇到复杂的x86指令则需要进行微解码,并把它分成若干条简单指令,速度较慢且很复 杂。好在这些复杂指令很少会用到。
Athlon也好,PIII也好,老式的CISC的x86指令集严重制约了他们的性能表现。
2、一级缓存 和二级缓存(Cache)
以及缓存和二级缓存是为了缓解较快的CPU与较慢的存储器之间的矛盾而产生的,以及缓存通常集成在CPU内核, 而二级缓存则是以OnDie或OnBoard的方式以较快于存储器的速度运行。对于一些大数据交换量的工作,CPU的Cache显得尤为重要。
2. 求基于pc机的硬件高速缓冲存储器cache的性能分析与优化论文。迫切的求。或者有相关资料也行。越多越好。
高速缓冲存储器Cache设计的关键技术分析
摘要:高速缓冲存储器(Cache)技术是现代处理器设计中的核心技术之一。本文详细讨论了Cache设计中的重要内容,包括Cache设计的基本问题,Cache性能分析,Cache失效原因的分析以及Cache设计中一些折衷的考虑。
关键词:高速缓冲存储器;Cache;处理器;存储体系
引言
在现代处理器设计中,Cache有效地解决了处理速度和存储速度之间的匹配问题,从而成为RISC技术成功的一项重要的支撑技术。现代计算机几乎没有不含Cache的。在很多机器中,还采用了多级Cache结构。可以说,Cache和流水线共同构成了RISC成功的两大支柱。本文将详细讨论Cache设计中的一些重要问题。
Cache设计中的四大基本问题
映射方式
相对于主存来说,Cache是一个小存储器。因此主存的块到Cache的行的映射是一种多到一映射。通常有三种映射策略:
a)直接映射
主存的一个块只能对应Cache的某一特定行。该方案中Cache被分为若干行,主存块号i对应的Cache行号为i对Cache行数的模。
b)全相连映射
主存的一个块可以存放在Cache中的任何行。
c)组相连映射
Cache行被分为M组,每组包含N行。主存的一个块和一个特定的组相对应,可存放在该组的任何一行。主存块号I映射成Cache的组号为I对Cache组数M的模。其中每组的行数N常被称为Cache的路数。
不难看到,直接映射和全相联可以看作是组相联方案的特殊形式。全相联命中率最高,但实现最复杂;直接映射实现最简单,但命中率较低。采用组相联是一种折衷方式,在总容量一定后,考虑组数M,路数N,及行中字节数L之间的配合关系。
映射机构
这是映射方式的实现问题。在Cache中为每个行设置了一个标志以指明该行对应的主存块地址。每个Cache行的标志中可包含一些特定信息,根据这些特定信息可以检测它们是否和来自CPU的块地址相匹配。由于速度对Cache至关重要,所以应该对所有可能的标志行并行查找。
另外,我们必需判断出Cache中的块中是否存放着有效信息。通用解决方法是在标志上增加一个有效位,以指明该标志是否包含有效地址。若有效位未设置,则不能对其进行匹配。由于每个Cache行都需要一个标志,所以增大行的大小对减小标志存储器占Cache总成本的比例是有益的。
替换策略
对于直接映射方式,在失效时只能对一个块进行替换,是最为简单的。但是对全相联和组相联方式,出现失效时需要在多个块中进行选择。这是我们有如下三种基本替换策略:
a)随机替换策略
这种策略就是随机的在候选块中选择一个进行替换。由于纯粹的随机选择会给硬件调试带来很大的困难,所以在一些系统中实际采用一种具有可再现能力的伪随机策略。
b)最近最少使用策略(LRU)
为了减少替换出最近可能使用的信息的机会,可以对块的访问情况进行记录。在发生Cache失效时,利用访问的时间局部性现象,替换出候选块中最近最少被访问的存储块。
c)先进先出策略(FIFO)
这种策略在Cache失效时,替换掉存放在Cache中时间最长的候选存储块。
试验数据证明随机替换策略一般比先进先出策略性能要好,而实现也更简单。所以我们只对随机替换策略和LRU策略进行比较分析。随机策略的一个重要性质就是易于硬件实现。随着可记录块数的增多,LRU策略的实现成本迅速增加,而性能改进一般并不十分明显。表1显示了LRU策略和随机策略在实效率方面的一些情况。可以看出,LRU在较小的Cache中比在较大的Cache中起着更重要的作用。
存储器的写策略
对Cache主要进行的是读操作,统计数据表明通常程序的读操作至少是写操作的两倍。但Amdahl定律提醒我们面向高性能的设计绝不能忽视写操作的速度。对于写命中情况,有两种基本的写策略:
a)写透策略
信息将被同时写到Cache行和低级存储器的相应存储块中。
b)写回策略
信息仅被写到Cache的相应行中,当被改变的行被替换出Cache时,其内容才被写回到主存相应的块。
这两种写策略各有利弊。对于写回策略,写操作能以Cache的速度来进行,而且在一个块内进行多次写操作仅需要一次对低级存储器的写动作,有益于降低对存储器的带宽要求,使其在多处理器系统中备受重视。对于写透策略,读失效不会导致必须对低级存储器进行写操作,而且写透操作更容易实现。写透策略的另一优点是主存中总是保存着最新数据,这对于多处理器系统和I/O设计都是非常重要的。
对于写失效情况,也有两种选择:
a)装入写
将块装入Cache,接着进行和命中情况相同的操作。
b)绕写
对低级存储器的相应内容进行改写,但不装入Cache。
上述两种写失效策略对写透和写回策略都适用,但对于写回方式,一般采用装入写策略,便于该存储块能被Cache继续利用;对于写透方式,由于后续对该存储块的写操作仍需写到主存中,故以绕写策略为好。
Cache的性能分析
之前本文介绍的各种技术的目的是减少平均访存时间。但是,设计Cache的最终目的是减少CPU的执行时间。CPU时间可以分为CPU执行时间和访存等待时间,即:
CPU时间=(CPU执行时钟数+访存等待时钟数)×时钟周期
由于Cache失效是访存等待的最重要原因,我们假设访存等待都是有Cache失
效产生的,以简化分析。
访存等待时钟数=(存储器访问数/程序)×失效率×失效损失
将指令总数IC提取出来单独考虑,可得:
CPU时间=IC×(CPI执行+(访存数/指令)×失效率×失效损失)×时钟周期长度
可见,对于越小CPI的处理器,设置Cache对CPI的影响程度越大。由于计算CPI时,Cache失效的损失以CPU时钟周期为单位进行衡量,所以较高的CPU时钟频率将导致较大的失效损失。
根据CPU时间公式,可得采用Cache会增大处理器的CPI,但它可以有效减少平均访存等待的周期数,所以它是有益于提高CPU性能的。对于CPI较小,特别是RISC处理器,Cache失效对CPI的影响很严重,在设计这种处理器的时候,必须降低Cache的失效率。
Cache失效原因的分析
导致Cache失效的主要原因有以下三种:
a)突发失效
对某存储块进行第一次访问时,由于该块不在Cache中,所以必须首先将存储块取到Cache中。这种情况又称为冷启失效。
b)容量失效
如果Cache不能容纳某一程序执行过程中的所有存储块,那么当程序又需使用某一曾在Cache中,但现在已替换出的存储块时,就会出现容量失效。
c)冲突失效
在采用组相联或直接映射替换策略的Cache中,许多块都必须映射到Cache中的某一块中,由于这种原因使得当程序又需要使用某一曾在Cache中,但现在已被替换出的存储块时,就会出现冲突失效。
全相联Cache中没有冲突失效,但增加相联度在意味着增加成本,而且可能延长访问时间,这样就会降低处理器的整体性能。要减少容量失效,就要增加Cache的容量。上层存储器容量太小,就会频繁产生抖动现象,这意味着机器将以接近低级存储器的速度运行。增加存储块的大小可以减小突发失效的数目,但这又会增加冲突失效的可能。这就需要在Cache的设计工作中,综合考虑三种失效情况,确定折衷的设计方案。
结束语
在现代处理器设计中,Cache有效地解决了处理速度和存储速度之间的匹配问题,从而成为现代处理器不可缺少的核心技术之一。在设计中应充分考虑各种条件的制约,权衡各种因素,才能充分提高系统的性能。
3. CPU专业名词详解
有很多朋友都想DIY自己的电脑,而最重要的部分-电脑处理器却了解不深。电脑处理器简称CPU,它决定了电脑的大部分运行速度和性能。在购买电脑时,CPU也是衡量电脑价格的重要指标。为了方便广大网友对CPU的认识,我特此进行电脑处理器科普,给大家收集史上最全的CPU专业名词详解。
1、 主频
主频也叫时钟频率,单位是兆赫(MHz)或千兆赫(GHz),用来表示CPU的运算、处理数据的速度。通常,主频越高,CPU处理数据的速度就越快。
CPU的主频=外频×倍频系数。主频和实际的运算速度存在一定的关系,但并不是一个简单的线性关系。所以,CPU的主频与CPU实际的运算能力是没有直接关系的,主频表示在CPU内数字脉冲信号震荡的速度。在Intel的处理器产品中,也可以看到这样的例子:1 GHz Itanium芯片能够表现得差不多跟2.66 GHz至强(Xeon)/Opteron一样快,或是1.5 GHz Itanium 2大约跟4 GHz Xeon/Opteron一样快。CPU的运算速度还要看CPU的流水线、总线等各方面的性能指标。
2、 外频
外频是CPU的基准频率,单位是MHz。CPU的外频决定着整块主板的运行速度。通俗地说,在台式机中,所说的超频,都是超CPU的外频(当然一般情况下,CPU的倍频都是被锁住的)相信这点是很好理解的。但对于服务器CPU来讲,超频是绝对不允许的。前面说到CPU决定着主板的运行速度,两者是同步运行的,如果把服务器CPU超频了,改变了外频,会产生异步运行,(台式机很多主板都支持异步运行)这样会造成整个服务器系统的不稳定。
绝大部分电脑系统中外频与主板前端总线不是同步速度的,而外频与前端总线(FSB)频率又很容易被混为一谈。
3、 总线频率
前端总线(FSB)是将CPU连接到北桥芯片的总线。前端总线(FSB)频率(即总线频率)是直接影响CPU与内存直接数据交换速度。有一条公式可以计算,即数据带宽=(总线频率×数据位宽)/8,数据传输最大带宽取决于所有同时传输的数据的宽度和传输频率。比方,支持64位的至强Nocona,前端总线是800MHz,按照公式,它的数据传输最大带宽是6.4GB/秒。
外频与前端总线(FSB)频率的区别:前端总线的速度指的是数据传输的速度,外频是CPU与主板之间同步运行的速度。也就是说,100MHz外频特指数字脉冲信号在每秒钟震荡一亿次;而100MHz前端总线指的是每秒钟CPU可接受的数据传输量是100MHz×64bit÷8bit/Byte=800MB/s。
4、 倍频系数
倍频系数是指CPU主频与外频之间的相对比例关系。在相同的外频下,倍频越高CPU的频率也越高。但实际上,在相同外频的前提下,高倍频的CPU本身意义并不大。这是因为CPU与系统之间数据传输速度是有限的,一味追求高主频而得到高倍频的CPU就会出现明显的“瓶颈”效应-CPU从系统中得到数据的极限速度不能够满足CPU运算的速度。一般除了工程样版的Intel的CPU都是锁了倍频的,少量的如Intel酷睿2核心的奔腾双核E6500K和一些至尊版的CPU不锁倍频,而AMD之前都没有锁,AMD推出了黑盒版CPU(即不锁倍频版本,用户可以自由调节倍频,调节倍频的超频方式比调节外频稳定得多)。
5、 CPU的位和字长
位:在数字电路和电脑技术中采用二进制,代码只有“0”和“1”,其中无论是“0”或是“1”在CPU中都是一“位”。
字长:电脑技术中对CPU在单位时间内(同一时间)能一次处理的二进制数的位数叫字长。所以能处理字长为8位数据的CPU通常就叫8位的CPU。同理32位的CPU就能在单位时间内处理字长为32位的二进制数据。字节和字长的区别:由于常用的英文字符用8位二进制就可以表示,所以通常就将8位称为一个字节。字长的长度是不固定的,对于不同的CPU、字长的长度也不一样。8位的CPU一次只能处理一个字节,而32位的CPU一次就能处理4个字节,同理字长为64位的CPU一次可以处理8个字节。
6、 缓存
缓存大小也是CPU的重要指标之一,而且缓存的结构和大小对CPU速度的影响非常大,CPU内缓存的运行频率极高,一般是和处理器同频运作,工作效率远远大于系统内存和硬盘。实际工作时,CPU往往需要重复读取同样的数据块,而缓存容量的增大,可以大幅度提升CPU内部读取数据的命中率,而不用再到内存或者硬盘上寻找,以此提高系统性能。但是由于CPU芯片面积和成本的因素来考虑,缓存都很小。
L1Cache(一级缓存) 是CPU第一层高速缓存,分为数据缓存和指令缓存。内置的L1高速缓存的容量和结构对CPU的性能影响较大,不过高速缓冲存储器均由静态RAM组成,结构较复杂,在CPU管芯面积不能太大的情况下,L1级高速缓存的容量不可能做得太大。一般服务器CPU的L1缓存的容量通常在32-256KB。
L2Cache(二级缓存) 是CPU的第二层高速缓存,分内部和外部两种芯片。内部的芯片二级缓存运行速度与主频相同,而外部的二级缓存则只有主频的一半。L2高速缓存容量也会影响CPU的性能,原则是越大越好,以前家庭用CPU容量最大的是512KB,笔记本电脑中也可以达到2M,而服务器和工作站上用CPU的L2高速缓存更高,可以达到8M以上。
L3Cache(三级缓存) ,分为两种,早期的是外置,内存延迟,同时提升大数据量计算时处理器的性能。降低内存延迟和提升大数据量计算能力对游戏都很有帮助。而在服务器领域增加L3缓存在性能方面仍然有显着的提升。比方具有较大L3缓存的配置利用物理内存会更有效,故它比较慢的磁盘I/O子系统可以处理更多的数据请求。具有较大L3缓存的处理器提供更有效的文件系统缓存行为及较短消息和处理器队列长度。
其实最早的L3缓存被应用在AMD发布的K6-III处理器上,当时的L3缓存受限于制造工艺,并没有被集成进芯片内部,而是集成在主板上。在只能够和系统总线频率同步的L3缓存同主内存其实差不了多少。后来使用L3缓存的是英特尔为服务器市场所推出的Itanium处理器。接着就是P4EE和至强MP。Intel还打算推出一款9MB L3缓存的Itanium2处理器,和以后24MB L3缓存的双核心Itanium2处理器。
但基本上L3缓存对处理器的性能提高显得不是很重要,比方配备1MB L3缓存的Xeon MP处理器却仍然不是Opteron的对手,由此可见前端总线的增加,要比缓存增加带来更有效的性能提升。
7. CPU扩展指令集
CPU依靠指令来计算和控制系统,每款CPU在设计时就规定了一系列与其硬件电路相配合的指令系统。指令的强弱也是CPU的重要指标,指令集是提高微处理器效率的最有效工具之一。从现阶段的主流体系结构讲,指令集可分为复杂指令集和精简指令集两部分,而从具体运用看,如Intel的MMX(Multi Media Extended)、SSE、 SSE2(Streaming-Single instruction multiple data-Extensions 2)、SEE3和AMD的3DNow!等都是CPU的扩展指令集,分别增强了CPU的多媒体、图形图象和Internet等的处理能力。我们通常会把CPU的扩展指令集称为"CPU的指令集"。SSE3指令集也是目前规模最小的指令集,此前MMX包含有57条命令,SSE包含有50条命令,SSE2包含有144条命令,SSE3包含有13条命令。目前SSE3也是最先进的指令集,英特尔Prescott处理器已经支持SSE3指令集,AMD会在未来双核心处理器当中加入对SSE3指令集的支持,全美达的处理器也将支持这一指令集。
8. CPU内核和I/O工作电压
从586CPU开始,CPU的工作电压分为内核电压和I/O电压两种,通常CPU的核心电压小于等于I/O电压。其中内核电压的大小是根据CPU的生产工艺而定,一般制作工艺越小,内核工作电压越低;I/O电压一般都在1.6~5V。低电压能解决耗电过大和发热过高的问题。
9. 制造工艺
制造工艺的微米是指IC内电路与电路之间的距离。制造工艺的趋势是向密集度愈高的方向发展。密度愈高的IC电路设计,意味着在同样大小面积的IC中,可以拥有密度更高、功能更复杂的电路设计。最近官方已经表示有 32nm 的制造工艺了。
10. 指令集
(1) CISC指令集
CISC指令集,也称为复杂指令集,英文名是CISC,(Complex Instruction Set Computer的缩写)。在CISC微处理器中,程序的各条指令是按顺序串行执行的,每条指令中的各个操作也是按顺序串行执行的。顺序执行的优点是控制简单,但计算机各部分的利用率不高,执行速度慢。其实它是英特尔生产的x86系列(也就是IA-32架构)CPU及其兼容CPU,如AMD、VIA的。即使是现在新起的X86-64(也被成AMD64)都是属于CISC的范畴。
要知道什么是指令集还要从当今的X86架构的CPU说起。X86指令集是Intel为其第一块16位CPU(i8086)专门开发的,IBM1981年推出的世界第一台PC机中的CPU―i8088(i8086简化版)使用的也是X86指令,同时电脑中为提高浮点数据处理能力而增加了X87芯片,以后就将X86指令集和X87指令集统称为X86指令集。
虽然随着CPU技术的不断发展,Intel陆续研制出更新型的i80386、i80486直到过去的PII至强、PIII至强、Pentium 3,最后到今天的Pentium 4系列、至强(不包括至强Nocona),但为了保证电脑能继续运行以往开发的各类应用程序以保护和继承丰富的软件资源,所以Intel公司所生产的所有CPU仍然继续使用X86指令集,所以它的CPU仍属于X86系列。由于Intel X86系列及其兼容CPU(如AMD Athlon MP、)都使用X86指令集,所以就形成了今天庞大的X86系列及兼容CPU阵容。x86CPU目前主要有intel的服务器CPU和AMD的服务器CPU两类。
(2) RISC指令集
RISC是英文“Reced Instruction Set Computing ”的缩写,中文意思是“精简指令集”。它是在CISC指令系统基础上发展起来的,有人对CISC机进行测试表明,各种指令的使用频度相当悬殊,最常使用的是一些比较简单的指令,它们仅占指令总数的20%,但在程序中出现的频度却占80%。复杂的指令系统必然增加微处理器的复杂性,使处理器的研制时间长,成本高。并且复杂指令需要复杂的操作,必然会降低计算机的速度。基于上述原因,20世纪80年代RISC型CPU诞生了,相对于CISC型CPU ,RISC型CPU不仅精简了指令系统,还采用了一种叫做“超标量和超流水线结构”,大大增加了并行处理能力。RISC指令集是高性能CPU的发展方向。它与传统的CISC(复杂指令集)相对。相比而言,RISC的指令格式统一,种类比较少,寻址方式也比复杂指令集少。当然处理速度就提高很多了。目前在中高档服务器中普遍采用这一指令系统的CPU,特别是高档服务器全都采用RISC指令系统的CPU。RISC指令系统更加适合高档服务器的操作系统UNIX,现在Linux也属于类似UNIX的操作系统。RISC型CPU与Intel和AMD的CPU在软件和硬件上都不兼容。
目前,在中高档服务器中采用RISC指令的CPU主要有以下几类:PowerPC处理器、SPARC处理器、PA-RISC处理器、MIPS处理器、Alpha处理器。
(3) IA-64
EPIC(Explicitly Parallel Instruction Computers,精确并行指令计算机)是否是RISC和CISC体系的继承者的争论已经有很多,单以EPIC体系来说,它更像Intel的处理器迈向RISC体系的重要步骤。从理论上说,EPIC体系设计的CPU,在相同的主机配置下,处理Windows的应用软件比基于Unix下的应用软件要好得多。
Intel采用EPIC技术的服务器CPU是安腾Itanium(开发代号即Merced)。它是64位处理器,也是IA-64系列中的第一款。微软也已开发了代号为Win64的操作系统,在软件上加以支持。在Intel采用了X86指令集之后,它又转而寻求更先进的64-bit微处理器,Intel这样做的原因是,它们想摆脱容量巨大的x86架构,从而引入精力充沛而又功能强大的指令集,于是采用EPIC指令集的IA-64架构便诞生了。IA-64 在很多方面来说,都比x86有了长足的进步。突破了传统IA32架构的许多限制,在数据的处理能力,系统的稳定性、安全性、可用性、可观理性等方面获得了突破性的提高。
IA-64微处理器最大的缺陷是它们缺乏与x86的兼容,而Intel为了IA-64处理器能够更好地运行两个朝代的软件,它在IA-64处理器上(Itanium、Itanium2 ……)引入了x86-to-IA-64的解码器,这样就能够把x86指令翻译为IA-64指令。这个解码器并不是最有效率的解码器,也不是运行x86代码的最好途径(最好的途径是直接在x86处理器上运行x86代码),因此Itanium 和Itanium2在运行x86应用程序时候的性能非常糟糕。这也成为X86-64产生的根本原因。
(4) X86-64 (AMD64 / EM64T)
HAMD公司设计,可以在同一时间内处理64位的整数运算,并兼容于X86-32架构。其中支持64位逻辑寻址,同时提供转换为32位寻址选项;但数据操作指令默认为32位和8位,提供转换成64位和16位的选项;支持常规用途寄存器,如果是32位运算操作,就要将结果扩展成完整的64位。这样,指令中有“直接执行”和“转换执行”的区别,其指令字段是8位或32位,可以避免字段过长。
x86-64(也叫AMD64)的产生也并非空穴来风,x86处理器的32bit寻址空间限制在4GB内存,而IA-64的处理器又不能兼容x86。AMD充分考虑顾客的需求,加强x86指令集的功能,使这套指令集可同时支持64位的运算模式,因此AMD把它们的结构称之为x86-64。在技术上AMD在x86-64架构中为了进行64位运算,AMD为其引入了新增了R8-R15通用寄存器作为原有X86处理器寄存器的扩充,但在而在32位环境下并不完全使用到这些寄存器。原来的寄存器诸如EAX、EBX也由32位扩张至64位。在SSE单元中新加入了8个新寄存器以提供对SSE2的支持。寄存器数量的增加将带来性能的提升。与此同时,为了同时支持32和64位代码及寄存器,x86-64架构允许处理器工作在以下两种模式:Long Mode(长模式)和Legacy Mode(遗传模式),Long模式又分为两种子模式(64bit模式和Compatibility mode兼容模式)。该标准已经被引进在AMD服务器处理器中的Opteron处理器。
而今年也推出了支持64位的EM64T技术,再还没被正式命为EM64T之前是IA32E,这是英特尔64位扩展技术的名字,用来区别X86指令集。Intel的EM64T支持64位sub-mode,和AMD的X86-64技术类似,采用64位的线性平面寻址,加入8个新的通用寄存器(GPRs),还增加8个寄存器支持SSE指令。与AMD相类似,Intel的64位技术将兼容IA32和IA32E,只有在运行64位操作系统下的时候,才将会采用IA32E。IA32E将由2个sub-mode组成:64位sub-mode和32位sub-mode,同AMD64一样是向下兼容的。Intel的EM64T将完全兼容AMD的X86-64技术。现在Nocona处理器已经加入了一些64位技术,Intel的Pentium 4E处理器也支持64位技术。
应该说,这两者都是兼容x86指令集的64位微处理器架构,但EM64T与AMD64还是有一些不一样的地方,AMD64处理器中的NX位在Intel的处理器中将没有提供。
11. 超流水线与超标量
在解释超流水线与超标量前,先了解流水线(pipeline)。流水线是Intel首次在486芯片中开始使用的。流水线的工作方式就象工业生产上的装配流水线。在CPU中由5―6个不同功能的电路单元组成一条指令处理流水线,然后将一条X86指令分成5―6步后再由这些电路单元分别执行,这样就能实现在一个CPU时钟周期完成一条指令,因此提高CPU的运算速度。经典奔腾每条整数流水线都分为四级流水,即指令预取、译码、执行、写回结果,浮点流水又分为八级流水。
超标量是通过内置多条流水线来同时执行多个处理器,其实质是以空间换取时间。而超流水线是通过细化流水、提高主频,使得在一个机器周期内完成一个甚至多个操作,其实质是以时间换取空间。例如Pentium 4的流水线就长达20级。将流水线设计的步(级)越长,其完成一条指令的速度越快,因此才能适应工作主频更高的CPU。但是流水线过长也带来了一定副作用,很可能会出现主频较高的CPU实际运算速度较低的现象,Intel的奔腾4就出现了这种情况,虽然它的主频可以高达1.4G以上,但其运算性能却远远比不上AMD 1.2G的速龙甚至奔腾III。
CPU封装是采用特定的材料将CPU芯片或CPU模块固化在其中以防损坏的保护措施,一般必须在封装后CPU才能交付用户使用。CPU的封装方式取决于CPU安装形式和器件集成设计,从大的分类来看通常采用Socket插座进行安装的CPU使用PGA(栅格阵列)方式封装,而采用Slot x槽安装的CPU则全部采用SEC(单边接插盒)的形式封装。现在还有PLGA(Plastic Land Grid Array)、OLGA(Organic Land Grid Array)等封装技术。由于市场竞争日益激烈,目前CPU封装技术的发展方向以节约成本为主。
12、 多线程
多线程Simultaneous multithreading,简称SMT。SMT可通过复制处理器上的结构状态,让同一个处理器上的多个线程同步执行并共享处理器的执行资源,可最大限度地实现宽发射、乱序的超标量处理,提高处理器运算部件的利用率,缓和由于数据相关或Cache未命中带来的访问内存延时。当没有多个线程可用时,SMT处理器几乎和传统的宽发射超标量处理器一样。SMT最具吸引力的是只需小规模改变处理器核心的设计,几乎不用增加额外的成本就可以显着地提升效能。多线程技术则可以为高速的运算核心准备更多的待处理数据,减少运算核心的闲置时间。这对于桌面低端系统来说无疑十分具有吸引力。Intel从3.06GHz Pentium 4开始,所有处理器都将支持SMT技术。
13、 多核心
多核心,也指单芯片多处理器(Chip multiprocessors,简称CMP)。CMP是由美国斯坦福大学提出的,其思想是将大规模并行处理器中的SMP(对称多处理器)集成到同一芯片内,各个处理器并行执行不同的进程。与CMP比较, SMT处理器结构的灵活性比较突出。但是,当半导体工艺进入0.18微米以后,线延时已经超过了门延迟,要求微处理器的设计通过划分许多规模更小、局部性更好的基本单元结构来进行。相比之下,由于CMP结构已经被划分成多个处理器核来设计,每个核都比较简单,有利于优化设计,因此更有发展前途。
14、 SMP
SMP(Symmetric Multi-Processing),对称多处理结构的简称,是指在一个计算机上汇集了一组处理器(多CPU),各CPU之间共享内存子系统以及总线结构。在这种技术的支持下,一个服务器系统可以同时运行多个处理器,并共享内存和其他的主机资源。像双至强,也就是我们所说的二路,这是在对称处理器系统中最常见的一种(至强MP可以支持到四路,AMD Opteron可以支持1-8路)。也有少数是16路的。但是一般来讲,SMP结构的机器可扩展性较差,很难做到100个以上多处理器,常规的一般是8个到16个,不过这对于多数的用户来说已经够用了。在高性能服务器和工作站级主板架构中最为常见,像UNIX服务器可支持最多256个CPU的系统。
构建一套SMP系统的必要条件是:支持SMP的硬件包括主板和CPU;支持SMP的系统平台,再就是支持SMP的应用软件。
为了能够使得SMP系统发挥高效的性能,操作系统必须支持SMP系统,如WINNT、LINUX、以及UNIX等等32位操作系统。即能够进行多任务和多线程处理。多任务是指操作系统能够在同一时间让不同的CPU完成不同的任务;多线程是指操作系统能够使得不同的CPU并行的完成同一个任务。
要组建SMP系统,对所选的CPU有很高的要求,首先、CPU内部必须内置APIC(Advanced Programmable Interrupt Controllers)单元。Intel 多处理规范的核心就是高级可编程中断控制器(Advanced Programmable Interrupt Controllers--APICs)的使用;再次,相同的产品型号,同样类型的CPU核心,完全相同的运行频率;最后,尽可能保持相同的产品序列编号,因为两个生产批次的CPU作为双处理器运行的时候,有可能会发生一颗CPU负担过高,而另一颗负担很少的情况,无法发挥最大性能,更糟糕的是可能导致死机。
15、 NUMA技术
NUMA即非一致访问分布共享存储技术,它是由若干通过高速专用网络连接起来的独立节点构成的系统,各个节点可以是单个的CPU或是SMP系统。在NUMA中,Cache 的一致性有多种解决方案,需要操作系统和特殊软件的支持。图2中是Sequent公司NUMA系统的例子。这里有3个SMP模块用高速专用网络联起来,组成一个节点,每个节点可以有12个CPU。像Sequent的系统最多可以达到64个CPU甚至256个CPU。显然,这是在SMP的基础上,再用NUMA的技术加以扩展,是这两种技术的结合。
16、 乱序执行技术
乱序执行(out-of-orderexecution),是指CPU允许将多条指令不按程序规定的顺序分开发送给各相应电路单元处理的技术。这样将根据个电路单元的状态和各指令能否提前执行的具体情况分析后,将能提前执行的指令立即发送给相应电路单元执行,在这期间不按规定顺序执行指令,然后由重新排列单元将各执行单元结果按指令顺序重新排列。采用乱序执行技术的目的是为了使CPU内部电路满负荷运转并相应提高了CPU的运行程序的速度。分枝技术:(branch)指令进行运算时需要等待结果,一般无条件分枝只需要按指令顺序执行,而条件分枝必须根据处理后的结果,再决定是否按原先顺序进行。
17、 CPU内部的内存控制器
许多应用程序拥有更为复杂的读取模式(几乎是随机地,特别是当cache hit不可预测的时候),并且没有有效地利用带宽。典型的这类应用程序就是业务处理软件,即使拥有如乱序执行(out of order execution)这样的CPU特性,也会受内存延迟的限制。这样CPU必须得等到运算所需数据被除数装载完成才能执行指令(无论这些数据来自CPU cache还是主内存系统)。当前低段系统的内存延迟大约是120-150ns,而CPU速度则达到了3GHz以上,一次单独的内存请求可能会浪费200-300次CPU循环。即使在缓存命中率(cache hit rate)达到99%的情况下,CPU也可能会花50%的时间来等待内存请求的结束-比如因为内存延迟的缘故。
你可以看到Opteron整合的内存控制器,它的延迟,与芯片组支持双通道DDR内存控制器的延迟相比来说,是要低很多的。英特尔也按照计划的那样在处理器内部整合内存控制器,这样导致北桥芯片将变得不那么重要。但改变了处理器访问主存的方式,有助于提高带宽、降低内存延时和提升处理器性能。
4. 内存储器的发展历程
对于用过386机器的人来说,30pin的内存,我想在很多人的脑海里,一定或多或少的还留有一丝印象,这一次我们特意收集的7根30pin的内存条,并拍成图片,怎么样看了以后,是不是有一种久违的感觉呀!
30pin 反面 30pin 正面
下面是一些常见内存参数的介绍:
bit 比特,内存中最小单位,也叫“位”。它只有两个状态分别以0和1表示
byte字节,8个连续的比特叫做一个字节。
ns(nanosecond)
纳秒,是一秒的10亿分之一。内存读写速度的单位,其前面数字越小表示速度越快。
72pin正面 72pin反面
72pin的内存,可以说是计算机发展史的一个经典,也正因为它的廉价,以及速度上大幅度的提升,为电脑的普及,提供了坚实的基础。由于用的人比较多,目前在市场上还可以买得到。
SIMM(Single In-line Memory Moles)
单边接触内存模组。是5X86及其较早的PC中常采用的内存接口方式。在486以前,多采用30针的SIMM接口,而在Pentuim中更多的是72针的SIMM接口,或者与DIMM接口类型并存。人们通常把72线的SIMM类型内存模组直接称为72线内存。
ECC(Error Checking and Correcting)
错误检查和纠正。与奇偶校验类似,它不但能检测到错误的地方,还可以纠正绝大多数错误。它也是在原来的数据位上外加位来实现的,这些额外的位是用来重建错误数据的。只有经过内存的纠错后,计算机操作指令才可以继续执行。当然在纠错是系统的性能有着明显的降低。
EDO DRAM(Extended Data Output RAM)
扩展数据输出内存。是Micron公司的专利技术。有72线和168线之分、5V电压、带宽32bit、基本速度40ns以上。传统的DRAM和FPM DRAM在存取每一bit数据时必须输出行地址和列地址并使其稳定一段时间后,然后才能读写有效的数据,而下一个bit的地址必须等待这次读写操作完成才能输出。EDO DRAM不必等待资料的读写操作是否完成,只要规定的有效时间一到就可以准备输出下一个地址,由此缩短了存取时间,效率比FPM DRAM高20%—30%。具有较高的性/价比,因为它的存取速度比FPM DRAM快15%,而价格才高出5%。因此,成为中、低档Pentium级别主板的标准内存。
DIMM(Dual In-line Memory Moles)
双边接触内存模组。也就是说这种类型接口内存的插板两边都有数据接口触片,这种接口模式的内存广泛应用于现在的计算机中,通常为84针,由于是双边的,所以共有84×2=168线接触,所以人们常把这种内存称为168线内存。
PC133
SDRAM(Synchronous Burst RAM)
同步突发内存。是168线、3.3V电压、带宽64bit、速度可达6ns。是双存储体结构,也就是有两个储存阵列,一个被CPU读取数据的时候,另一个已经做好被读取数据的准备,两者相互自动切换,使得存取效率成倍提高。并且将RAM与CPU以相同时钟频率控制,使RAM与CPU外频同步,取消等待时间,所以其传输速率比EDO DRAM快了13%。SDRAM采用了多体(Bank)存储器结构和突发模式,能传输一整数据而不是一段数据。
SDRAM ECC 服务器专用内存
RDRAM(Rambus DRAM)
是美国RAMBUS公司在RAMBUSCHANNEL技术基础上研制的一种存储器。用于数据存储的字长为16位,传输率极速指标有望达到600MHz。以管道存储结构支持交叉存取同时执行四条指令,单从封装形式上看,与DRAM没有什么不同,但在发热量方面与100MHz的SDRAM大致相当。因为它的图形加速性能是EDO DRAM的3-10倍,所以目前主要应用于高档显卡上做显示内存。
Direct RDRAM
是RDRAM的扩展,它使用了同样的RSL,但接口宽度达到16位,频率达到800MHz,效率更高。单个传输率可达到1.6GB/s,两个的传输率可达到3.2GB/s。
点评:
30pin和72pin的内存,早已退出市场,现在市场上主流的内存,是SDRAM,而SDRAM的价格越降越底,对于商家和厂家而言,利润空间已缩到了极限,赔钱的买卖,有谁愿意去做了?再者也没有必要,毕竟厂家或商家们总是在朝着向“钱”的方向发展。
随着 INTEL和 AMD两大公司 CPU生产飞速发展,以及各大板卡厂家的支持,RAMBUS 和 DDRAM 也得到了更快的发展和普及,究竟哪一款会成为主流,哪一款更适合用户,市场终究会证明这一切的。
机存取存储器是电脑的记忆部件,也被认为是反映集成电路工艺水平的部件。各种存储器中以动态存储器(DRAM)的存储容量为最大,使用最为普及,几十年间它的存储量扩大了几千倍,存取数据的速度提高40多倍。存储器的集成度的提高是靠不断缩小器件尺寸达到的。尺寸的缩小,对集成电路的设计和制造技术提出了极为苛刻的要求,可以说是只有一代新工艺的突破,才有一代集成电路。
动态读写存储器DRAM(Dynamic Random Access MeMory)是利用MOS存储单元分布电容上的电荷来存储数据位,由于电容电荷会泄漏,为了保持信息不丢失,DRAM需要不断周期性地对其刷新。由于这种结构的存储单元所需要的MOS管较少,因此DRAM的集成度高、功耗也小,同时每位的价格最低。DRAM一般都用于大容量系统中。DRAM的发展方向有两个,一是高集成度、大容量、低成本,二是高速度、专用化。
从1970年Intel公司推出第一块1K DRAM芯片后,其存储容量基本上是按每三年翻两番的速度发展。1995年12月韩国三星公司率先宣布利用0.16μm工艺研制成功集成度达10亿以上的1000M位的高速(3lns)同步DRAM。这个领域的竞争非常激烈,为了解决巨额投资和共担市场风险问题,世界范围内的各大半导体厂商纷纷联合,已形成若干合作开发的集团格局。
1996年市场上主推的是4M位和16M位DRAM芯片,1997年以16M位为主,1998年64M位大量上市。64M DRAM的市场占有率达52%;16M DRAM的市场占有率为45%。1999年64M DRAM市场占有率已提高到78%,16M DRAM占1%。128M DRAM已经普及,明年将出现256M DRAM。
高性能RISC微处理器的时钟已达到100MHz~700MHz,这种情况下,处理器对存储器的带宽要求越来越高。为了适应高速CPU构成高性能系统的需要,DRAM技术在不断发展。在市场需求的驱动下,出现了一系列新型结构的高速DRAM。例如EDRAM、CDRAM、SDRAM、RDRAM、SLDRAM、DDR DRAM、DRDRAM等。为了提高动态读写存储器访问速度而采用不同技术实现的DRAM有:
(1) 快速页面方式FPM DRAM
快速页面方式FPM(Fast Page Mode)DRAM已经成为一种标准形式。一般DRAM存储单元的读写是先选择行地址,再选择列地址,事实上,在大多数情况下,下一个所需要的数据在当前所读取数据的下一个单元,即其地址是在同一行的下一列,FPM DRAM可以通过保持同一个行地址来选择不同的列地址实现存储器的连续访问。减少了建立行地址的延时时间从而提高连续数据访问的速度。但是当时钟频率高于33MHz时,由于没有足够的充电保持时间,将会使读出的数据不可靠。
(2) 扩展数据输出动态读写存储器EDO DRAM
在FPM技术的基础上发展起来的扩展数据输出动态读写存储器EDODRAM(Extended Data Out DRAM),是在RAM的输出端加一组锁存器构成二级内存输出缓冲单元,用以存储数据并一直保持到数据被可靠地读取时为止,这样就扩展了数据输出的有效时间。EDODRAM可以在50MHz时钟下稳定地工作。
由于只要在原DRAM的基础上集成成本提高并不多的EDO逻辑电路,就可以比较有效地提高动态读写存储器的性能,所以在此之前,EDO DRAM曾成为动态读写存储器设计的主流技术和基本形式。
(3) 突发方式EDO DRAM
在EDO DRAM存储器的基础上,又发展了一种可以提供更高有效带宽的动态读写存储器突发方式EDO DRAM(Burst EDO DRAM)。这种存储器可以对可能所需的4个数据地址进行预测并自动地预先形成,它把可以稳定工作的频率提高到66MHz。
(4) 同步动态读写存储器SDRAM
SDRAM(Synchronous DRAM)是通过同步时钟对控制接口的操作和安排片内隔行突发方式地址发生器来提高存储器的性能。它仅需要一个首地址就可以对一个存储块进行访问。所有的输入采样如输出有效都在同一个系统时钟的上升沿。所使用的与CPU同步的时钟频率可以高达66MHz~100MHz。它比一般DRAM增加一个可编程方式寄存器。采用SDRAM可大大改善内存条的速度和性能,系统设计者可根据处理器要求,灵活地采用交错或顺序脉冲。
Infineon Technologies(原Siemens半导体)今年已批量供应256Mit SDRAM。其SDRAM用0.2μm技术生产,在100MHz的时钟频率下输出时间为10ns。
(5) 带有高速缓存的动态读写存储器CDRAM
CDRAM(Cached DRAM)是日本三菱电气公司开发的专有技术,1992年推出样品,是通过在DRAM芯片,集成一定数量的高速SRAM作为高速缓冲存储器Cache和同步控制接口,来提高存储器的性能。这种芯片用单一+3.3V电源,低压TTL输入输出电平。目前三菱公司可以提供的CDRAM为4Mb和16Mb,其片内Cache为16KB,与128位内部总线配合工作,可以实现100MHz的数据访问。流水线式存取时间为7ns。
(6) 增强型动态读写存储器EDRAM(Enhanced DRAM)
由Ramtron跨国公司推出的带有高速缓冲存储器的DRAM产品称作增强型动态读写存储器EDRAM(Enhanced DRAM),它采用异步操作方式,单一+5V工作电源,CMOS或TTL输入输出电平。由于采用一种改进的DRAM 0.76μm CMOS工艺和可以减小寄生电容和提高晶体管增益的结构技术,其性能大大提高,行访问时间为35ns,读/写访问时间可以提高到65ns,页面写入周期时间为15ns。EDRAM还在片内DRAM存储矩阵的列译码器上集成了2K位15ns的静态RAM高速缓冲存储器Cache,和后写寄存器以及另外的控制线,并允许SRAM Cache和DRAM独立操作。每次可以对一行数据进行高速缓冲。它可以象标准的DRAM对任一个存储单元用页面或静态列访问模式进行操作,访问时间只有15ns。当Cache未命中时,EDRAM就把新的一行加载到Cache中,并把选择的存储单元数据输出,这需要花35ns。这种存储器的突发数据率可以达到267Mbytes/s。
(7) RDRAM(Rambus DRAM)
Rambus DRAM是Rambus公司利用本身研制的一种独特的接口技术代替页面方式结构的一种新型动态读写存储器。这种接口在处理机与DRAM之间使用了一种特殊的9位低压负载发送线,用250MHz同步时钟工作,字节宽度地址与数据复用的串行总线接口。这种接口又称作Rambus通道,这种通道嵌入到DRAM中就构成Rambus DRAM,它还可以嵌入到用户定制的逻辑芯片或微处理机中。它通过使用250MHz时钟的两个边沿可以使突发数据传输率达到500MHz。在采用Rambus通道的系统中每个芯片内部都有它自己的控制器,用来处理地址译码和面页高速缓存管理。由此一片存储器子系统的容量可达512K字节,并含有一个总线控制器。不同容量的存储器有相同的引脚并连接在同一组总线上。Rambus公司开发了这种新型结构的DRAM,但是它本身并不生产,而是通过发放许可证的方式转让它的技术,已经得到生产许可的半导体公司有NEC、Fujitsu、Toshiba、Hitachi和LG等。
被业界看好的下一代新型DRAM有三种:双数据传输率同步动态读写存储器(DDR SDRAM)、同步链动态读写存储器(SLDRAM)和Rambus接口DRAM(RDRAM)。
(1) DDR DRAM(Double Data Rate DRAM)
在同步动态读写存储器SDRAM的基础上,采用延时锁定环(Delay-locked Loop)技术提供数据选通信号对数据进行精确定位,在时钟脉冲的上升沿和下降沿都可传输数据(而不是第一代SDRAM仅在时钟脉冲的下降沿传输数据),这样就在不提高时钟频率的情况下,使数据传输率提高一倍,故称作双数据传输率(DDR)DRAM,它实际上是第二代SDRAM。由于DDR DRAM需要新的高速时钟同步电路和符合JEDEC标准的存储器模块,所以主板和芯片组的成本较高,一般只能用于高档服务器和工作站上,其价格在中低档PC机上可能难以接受。
(2) SLDRAM(Synchnonous Link DRAM)
这是由IBM、HP、Apple、NEC、Fujitsu、Hyundai、Micron、TI、Toshiba、Sansung和Siemens等业界大公司联合制定的一个开放性标准,委托Mosaid Technologies公司设计,所以SLDRAM是一种原本最有希望成为高速DRAM开放性工业标准的动态读写存储器。它是一种在原DDR DRAM基础上发展的一种高速动态读写存储器。它具有与DRDRAM相同的高数据传输率,但是它比其工作频率要低;另外生产这种存储器不需要支付专利使用费,使得制造成本较低,所以这种存储器应该具有市场竞争优势。但是由于SLDRAM联盟是一个松散的联合体,众多成员之间难以协调一致,在研究经费投入上不能达成一致意见,加上Intel公司不支持这种标准,所以这种动态存储器反而难以形成气候,敌不过Intel公司鼎立支持的Rambus公司的DRDRAM。SLDRAM可用于通信和消费类电子产品,高档PC和服务器。
(3) DRDRAM(Direct Rambus DRAM)
从1996年开始,Rambus公司就在Intel公司的支持下制定新一代RDRAM标准,这就是DRDRAM(Direct RDRAM)。这是一种基于协议的DRAM,与传统DRAM不同的是其引脚定义会随命令而变,同一组引脚线可以被定义成地址,也可以被定义成控制线。其引脚数仅为正常DRAM的三分之一。当需要扩展芯片容量时,只需要改变命令,不需要增加硬件引脚。这种芯片可以支持400MHz外频,再利用上升沿和下降沿两次传输数据,可以使数据传输率达到800MHz。同时通过把数据输出通道从8位扩展成16位,这样在100MHz时就可以使最大数据输出率达1.6Gb/s。东芝公司在购买了Rambus公司的高速传输接口技术专利后,于1998年9月首先推出72Mb的RDRAM,其中64Mb是数据存储器,另外8Mb用于纠错校验,由此大大提高了数据读写可靠性。
Intel公司办排众议,坚定地推举DRDRAM作为下一代高速内存的标准,目前在Intel公司对Micro、Toshiba和Samsung等公司组建DRDRAM的生产线和测试线投入资金。其他众多厂商也在努力与其抗争,最近AMD宣布至少今年推出的K7微处理器都不打算采用Rambus DRAM;据说IBM正在考虑放弃对Rambus的支持。当前市场上同样是64Mb的DRAM,RDRAM就要比其他标准的贵45美元。
由此可见存储器的发展动向是:大容量化,高速化, 多品种、多功能化,低电压、低功耗化。
存储器的工艺发展中有以下趋势:CHMOS工艺代替NMOS工艺以降低功耗;缩小器件尺寸,外围电路仍采用ECL结构以提高存取速度同时提高集成度;存储电容从平面HI-C改为深沟式,保证尺寸减少后的电荷存储量,以提高可靠性;电路设计中简化外围电路结构,注意降低噪声,运用冗余技术以提高质量和成品率;工艺中采用了多种新技术;使DRAM的存储容量稳步上升,为今后继续开发大容量的新电路奠定基础。
从电子计算机中的处理器和存储器可以看出ULSI前进的步伐和几十年间的巨大变化。