|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
Intel公司的X86序列CPU以及其它公司所生产的兼容产品,是目前世界上个人电脑中装机最多的芯片。每当各种媒体介绍或评价这类CPU时,经常会提到诸如“流水线”、“乱序执行”和“分枝预测”等专业术语,尽管不少朋友也知道这些都是CPU使用的先进技术,但毕竟比什么主频、外频等难理解多了。所以笔者就经常出现在CPU特性表中的专业术语谈谈自己的理解,以供其他电脑业余爱好者参考。; r' W2 `1 `2 ?9 d: a* C% m# q
) M, l$ g* m- `' l8 ]+ W- b
??1、IA-32&IA-646 `1 O* ?; u- ^
??IA是英语“英特尔体系/Intel Architecture”的缩写。这是因为目前使用的CPU以Intel公司的X86序列产品为主,所以人们将Intel生产的CPU统称为英特尔体系(IA)CPU。由于其它公司如AMD等公司生产的CPU基本上能在软、硬件方面与Intel的CPU兼容,所以人们通常也将这部分CPU列入IA系列。6 t% [" x/ Y P5 o! c! z( R0 J4 t; |8 d
# H+ S K( `* `: A??由于目前使用的CPU,包括新推出的Pentium III都还是32位的,所以又被列为IA-32。而IA-64就是Intel下一步将推出的64位CPU,但其物理结构和工作机理与目前的X86序列的IA-32CPU完全不同。; x5 \6 S& l- e0 ~( e
/ b i$ o$ g0 H9 [# W- L' W7 p6 N' h3 }- H
??2、CPU的位和字长
q: T& A% A* J5 Z! p4 \" r/ i& Z1 n2 T* F, u; V5 Y% l
??位
% x5 z$ F X3 Q k3 y: b7 G??在数字电路和电脑技术中采用二进制,代码只有“0”和“1”,其中无论是“0”或是“1”在CPU中都是一“位”。) ]! A- C1 {' ?: n
2 q7 ?/ w: m& N& e5 H$ d9 g6 I) A??字长* V. j* ], [ M) n$ T
??电脑技术中对CPU在单位时间内(同一时间)能一次处理的二进制数的位数叫字长。所以能处理字长为8位数据的CPU通常就叫8位的CPU。同理32位的CPU就能在单位时间内处理字长为32位的二进制数据。
" P2 z' c! B3 y: m! m) a" s
0 D2 J: u$ ]: j/ {7 |! F" k0 n
??字节和字长的区别
% _% M, g3 u- ~2 ]+ d2 d# K??由于常用的英文字符用8位二进制数就可以表示,所以通常就将8位称为一个字节。字节的长度是固定的,而字长的长度是不固定的,对于不同的CPU,字长的长度也不一样。8位的CPU一次只能处理一个字节,而32位的CPU一次就能处理4个字节,同理字长为64位的CPU一次可以处理8个字节。
0 T- ] B( E3 W( ?
- f: a [# B3 v8 v" ^- @?3、CPU外频3 M7 u$ j! i. P" }6 e
??CPU外频也就是常见特性表中所列的CPU总线频率,是由主板为CPU提供的基准时钟频率,而CPU的工作主频则按倍频系数乘以外频而来。在Pentium时代,CPU的外频一般是60/66MHz,从Pentium Ⅱ 350开始,CPU外频提高到100MHz。由于正常情况下CPU总线频率和内存总线频率相同,所以当CPU外频提高后,与内存之间的交换速度也相应得到了提高,对提高电脑整体运行速度影响较大。
! g" Y! D! ~% p1 l. w& s& B
! H% z) R$ U( W" b7 d9 w9 T1 ]??4、CPU主频
! ^% Q8 H: N) b* z: W8 K??CPU主频也叫工作频率,是CPU内核(整数和浮点运算器)电路的实际运行频率。在486DX2 CPU之前,CPU的主频与外频相等。从486DX2开始,基本上所有的CPU主频都等于“外频乘上倍频系数”了。" o& W; G" L2 r) |
6 c1 n( i5 }; Q K0 E+ u??5、流水线技术
2 O0 r; _/ u; Q% A??流水线(pipeline)是Intel首次在486芯片中开始使用的。流水线的工作方式就象工业生产上的装配流水线。在CPU中由5~6个不同功能的电路单元组成一条指令处理流水线,然后将一条X86指令分成5~6步后再由这些电路单元分别执行,这样就能实现在一个CPU时钟周期完成一条指令,因此提高CPU的运算速度。从图1a中我们可以了解,由于486CPU只有一条流水线,通过流水线中取指令、译码、产生地址、执行指令和数据写回五个电路单元分别同时执行那些已经分成五步的指令,因此实现了486CPU设计人员预期的在每个时钟周期中完成一条指令的目的(按笔者看法,CPU实际上应该是从第五个时钟周期才达到每周期能完成一条指令的处理速度)。到了Pentium时代,设计人员在CPU中设置了两条具有各自独立电路单元的流水线,因此这样CPU在工作时就可以通过这两条流水线来同时执行两条指令,因此在理论上可以实现在每一个时钟周期中完成两条指令的目的。
, g3 l3 g3 e$ H8 m; _* f& ?1 z2 E; K
??6、超流水线. S- r' q/ D! _# _: [
??超流水线(superpiplined)是指某型CPU内部的流水线超过通常的5~6步以上,例如Pentium pro的流水线就长达14步。将流水线设计的步(级)数越多,其完成一条指令的速度越快,因此才能适应工作主频更高的CPU。这一点我们可以用日常事例来说明,比如栽树时由5个人同时栽10棵(一人两棵)所完成的速度当然没有10人同时栽(一人一棵)所完成的速度快。% a, i' Z: l4 q8 `3 U
' R! p [4 s) X0 {# h* [3 A
9 o. S0 K i0 t% ]
??7、超标量技术6 G6 V+ `7 a2 U$ \! B% n
??超标量(superscalar)是指在CPU中有一条以上的流水线,并且每时钟周期内可以完成一条以上的指令,这种设计就叫超标量技术。( B8 y" I y4 X$ N( t* a) c
! C+ y) P8 n% n8 x
+ C; i7 c+ ^6 D1 \, j+ ???8、乱序执行技术- A; [9 |" L% E Y/ [! Z
??乱序执行(out-of-order execution)是指CPU采用了允许将多条指令不按程序规定的顺序分开发送给各相电路单元处理的技术。比方说程序某一段有7条指令,此时CPU将根据各单元电路的空闲状态和各指令能否提前执行的具体情况分析后,将能提前执行的指令立即发送给相应电路执行。当然在各单元不按规定顺序执行完指令后还必须由相应电路再将运算结果重新按原来程序指定的指令顺序排列后才能返回程序。这种将各条指令不按顺序拆散后执行的运行方式就叫乱序执行(也有叫错序执行)技术。0 c5 Z8 {: \: Y1 X. V$ z% i& z7 a
- s, M5 B3 V, a7 G" c1 W, S??采用乱序执行技术的目的是为了使CPU内部电路满负荷运转并相应提高了CPU的运行程序的速度。这好比请A、B、C三个名人为晚会题写横幅"春节联欢晚会"六个大字,每人各写两个字。如果这时在一张大纸上按顺序由A写好"春节"后再交给B写"联欢",然后再由C写"晚会",那么这样在A写的时候,B和C必须等待,而在B写的时候C仍然要等待而A已经没事了。但如果采用三个人分别用三张纸同时写的做法, 那么B和C都不必须等待就可以同时各写各的了,甚至C和B还可以比A先写好也没关系(就象乱序执行),但当他们都写完后就必须重新在横幅上(自然可以由别人做,就象CPU中乱序执行后的重新排列单元)按"春节联欢晚会"的顺序排好才能挂出去。
( a3 ^1 [: D3 u
1 l$ c3 S6 W6 W0 G. Q6 r3 w: b
1 I+ r1 {" r5 l9 q5 a??9、分枝, o0 b$ I1 G: |, k% e
??分枝(branch)是指程序运行时需要改变的节点。分枝有无条件分枝和有条件分枝,其中无条件分枝只需要CPU按指令顺序执行,而条件分枝则必须根据处理结果再决定程序运行方向是否改变。因此需要"分枝预测"技术处理的是条件分枝。, q1 a# a/ P' }) D4 w& A
3 B, D( o$ [- M7 B1 }( W
a1 G# `: `# D+ ~% ?' V/ C5 e??10、分枝预测和推测执行技术
( r8 s1 `* ~" @4 S" z7 \6 c5 U??分枝预测(branch prediction)和推测执行(speculation execution)是CPU动态执行技术中的主要内容,动态执行是目前CPU主要采用的先进技术之一。采用分枝预测和动态执行的主要目的是为了提高CPU的运算速度。推测执行是依托于分枝预测基础上的,在分枝预测程序是否分枝后所进行的处理也就是推测执行。2 y+ X+ m# \0 T1 V+ ^9 L4 s* ]
3 k% ^! ~* a$ O0 k; m1 v |
 手机扫码浏览
|