2024年3月8日发(作者:以司辰)
一、现在主流处理器:
1、双核心:
AMD:
(1)、AMD Athlon II X2 240
Intel:
(1)、Intel Core 2 Duo E7400
(2)、Intel Pentium E5300
2、三核心:
(1)、AMD Phenom II X3 720 Black Edition
3、四核心:
AMD:
(1)、AMD Phenom II X4 965 Black Edition
(2)、AMD Athlon II X4 620
Intel:
(1)、Intel Core i7-920
(2)、Intel Core i5-750
(3)、Intel Core 2 Quad Q9550
(4)、Intel Core 2 Quad Q8200
二、X86架构处理器:
X86就是采用cisc(Complex Instruction Set Computer,复杂指令架构计算机)架构的处理器,大多数CPU厂商生产的就是这种处理器如:IA-32、x86-32、x86-64;Intel的32位服务器Xeon(至强)处理器系列;AMD的全系列;VIA的全系列处理器产品都属于x86架构的,与采用RISC(精简指令架构计算机)架构的PowerPC(如苹果电脑)不同。X86指令的长度是不定的,而且有几种不同的格式,结果造成X86 CPU的解码工作非常复杂,X86指令集架构只有8个通用寄存器,而且实际只能使用6个,内存访问,X86指令可访问内存地址,而现代RISC CPU则使用LOAD/STORE模式,只有LOAD和STORE指令才能从内存中读取数据到寄存器。x86是一个intel通用计算机系列的标准编号缩写,也标识一套通用的计算机指令集合,X与处理器没有任何关系,它是一个对所有*86系统的简单的通配符定义,如今的奔腾,P2,P4,赛扬系列都是支持X86指令系统的,所以都属于X86家族 ,X86指令集是美国Intel公司为其第一块16位CPU(i8086)专门开发的,当然在目前的台式(便携式)电脑中并不都是使用X86系列CPU,部分服务器和苹果(Macintosh)机中还使用美国DIGITAL(数字)公司的Alpha 61164和PowerPC 604e系列CPU。
在CISC处理器中,程序的各条指令是按顺序串行执行的,每条指令中的各个操作也是按顺序串行执行的。顺序执行的优点是控制简单,但计算机各部分的利用率低,执行速度慢。英特尔非常清楚,是X86指令集限制了CPU性能的进一步提高,因此,他们正同惠普一道努力开发下一代指令集架构(Instruction Set
Architecture ,ISA): EPIC(Explicitly Parallel Instruction Computing,显性并行指令计算)。对英特尔而言, IA-64(英特尔的64位架构)是下一个10到15年的架构。新的ISA将使英特尔摆脱X86架构的限制,从而设计出超越所有现有RISC CPU和X86 CPU的新型处理器。
三、下一代指令集IA-64架构处理器:
Merced是第一款使用IA-64的处理器,这款CPU具有64位寻址能力和64
位宽的寄存器,具有64位寻址能力,支持1百万TB的地址空间,足以运算企业级任务;64位宽的寄存器可以使Merced 达到非常高的精度。
尽可能并行工作是提高CPU性能的最佳方法,程序分支和指令依赖是造成难以并行执行许多指令的原因,而Merced采用的方法是让编译器告诉CPU哪些指令可以一起发布并执行。编译器将使用模板告诉CPU,哪些指令可以同时发布。模板也包含了包的结束位,用以告诉CPU这个包是否结束,CPU是否需准备捆绑下两个或更多的包,高端CPU可以一起执行几个包。由于IA-64架构的64个通用寄存器和64个浮点寄存器使CPU可以同时发布许多指令。强悍的EPIC CPU也需要一个强悍的编译器,编译器的工作是检查指令依赖情况,把并行指令放在一起,并重新排序,使执行单元可以很顺畅地工作。
Merced的预测机制,可以摆脱大部分分支情况。
首先来看RISC/x86 CPU怎样处理典型的"IF-THEN -ELSE"分支:
if (i==0)
instruction 1;
else
instruction 2;
CPU执行过程如下:
比较I是否为0;
如果不相等,则跳到else;
然后执行指令1;
跳到NEXT处;
else:执行指令2;
NEXT
在这里,CPU必须判断它去执行ELSE分支呢还是THEN分支。
下面再看EPIC CPU的解决方案:
比较I是否为0;
开始对指令1解码,设定预测寄存器"P1"的预测位;
开始对指令2解码,设定预测寄存器"P2"的预测位;
当I等于0时,寄存器"P1"为真(1),寄存器"P2"为假(0);
执行所有预测位为真值的指令;
Merced没有跳跃,它一开始就执行所有的分支指令,它具有64个分支预测寄存器,可以被设为真或假,而每个指令中的6位被分配到单独一个预测寄存器中。就上例来说,如果指令1指派给预测寄存器1,预测位被设为:000001。当变量I 等于0时,预测寄存器1被设定为"真",只有那些指向预测寄存器为"真"的指令结果才会被执行。
四、投机装载:
投机装载是把所需数据提前数十个周期放到一级数据Cache中。这样就可避免Cache未命中情况的发生, CPU几乎不再访问内存,它总是可以在一级Cache中找到它需要的东西。
2024年3月8日发(作者:以司辰)
一、现在主流处理器:
1、双核心:
AMD:
(1)、AMD Athlon II X2 240
Intel:
(1)、Intel Core 2 Duo E7400
(2)、Intel Pentium E5300
2、三核心:
(1)、AMD Phenom II X3 720 Black Edition
3、四核心:
AMD:
(1)、AMD Phenom II X4 965 Black Edition
(2)、AMD Athlon II X4 620
Intel:
(1)、Intel Core i7-920
(2)、Intel Core i5-750
(3)、Intel Core 2 Quad Q9550
(4)、Intel Core 2 Quad Q8200
二、X86架构处理器:
X86就是采用cisc(Complex Instruction Set Computer,复杂指令架构计算机)架构的处理器,大多数CPU厂商生产的就是这种处理器如:IA-32、x86-32、x86-64;Intel的32位服务器Xeon(至强)处理器系列;AMD的全系列;VIA的全系列处理器产品都属于x86架构的,与采用RISC(精简指令架构计算机)架构的PowerPC(如苹果电脑)不同。X86指令的长度是不定的,而且有几种不同的格式,结果造成X86 CPU的解码工作非常复杂,X86指令集架构只有8个通用寄存器,而且实际只能使用6个,内存访问,X86指令可访问内存地址,而现代RISC CPU则使用LOAD/STORE模式,只有LOAD和STORE指令才能从内存中读取数据到寄存器。x86是一个intel通用计算机系列的标准编号缩写,也标识一套通用的计算机指令集合,X与处理器没有任何关系,它是一个对所有*86系统的简单的通配符定义,如今的奔腾,P2,P4,赛扬系列都是支持X86指令系统的,所以都属于X86家族 ,X86指令集是美国Intel公司为其第一块16位CPU(i8086)专门开发的,当然在目前的台式(便携式)电脑中并不都是使用X86系列CPU,部分服务器和苹果(Macintosh)机中还使用美国DIGITAL(数字)公司的Alpha 61164和PowerPC 604e系列CPU。
在CISC处理器中,程序的各条指令是按顺序串行执行的,每条指令中的各个操作也是按顺序串行执行的。顺序执行的优点是控制简单,但计算机各部分的利用率低,执行速度慢。英特尔非常清楚,是X86指令集限制了CPU性能的进一步提高,因此,他们正同惠普一道努力开发下一代指令集架构(Instruction Set
Architecture ,ISA): EPIC(Explicitly Parallel Instruction Computing,显性并行指令计算)。对英特尔而言, IA-64(英特尔的64位架构)是下一个10到15年的架构。新的ISA将使英特尔摆脱X86架构的限制,从而设计出超越所有现有RISC CPU和X86 CPU的新型处理器。
三、下一代指令集IA-64架构处理器:
Merced是第一款使用IA-64的处理器,这款CPU具有64位寻址能力和64
位宽的寄存器,具有64位寻址能力,支持1百万TB的地址空间,足以运算企业级任务;64位宽的寄存器可以使Merced 达到非常高的精度。
尽可能并行工作是提高CPU性能的最佳方法,程序分支和指令依赖是造成难以并行执行许多指令的原因,而Merced采用的方法是让编译器告诉CPU哪些指令可以一起发布并执行。编译器将使用模板告诉CPU,哪些指令可以同时发布。模板也包含了包的结束位,用以告诉CPU这个包是否结束,CPU是否需准备捆绑下两个或更多的包,高端CPU可以一起执行几个包。由于IA-64架构的64个通用寄存器和64个浮点寄存器使CPU可以同时发布许多指令。强悍的EPIC CPU也需要一个强悍的编译器,编译器的工作是检查指令依赖情况,把并行指令放在一起,并重新排序,使执行单元可以很顺畅地工作。
Merced的预测机制,可以摆脱大部分分支情况。
首先来看RISC/x86 CPU怎样处理典型的"IF-THEN -ELSE"分支:
if (i==0)
instruction 1;
else
instruction 2;
CPU执行过程如下:
比较I是否为0;
如果不相等,则跳到else;
然后执行指令1;
跳到NEXT处;
else:执行指令2;
NEXT
在这里,CPU必须判断它去执行ELSE分支呢还是THEN分支。
下面再看EPIC CPU的解决方案:
比较I是否为0;
开始对指令1解码,设定预测寄存器"P1"的预测位;
开始对指令2解码,设定预测寄存器"P2"的预测位;
当I等于0时,寄存器"P1"为真(1),寄存器"P2"为假(0);
执行所有预测位为真值的指令;
Merced没有跳跃,它一开始就执行所有的分支指令,它具有64个分支预测寄存器,可以被设为真或假,而每个指令中的6位被分配到单独一个预测寄存器中。就上例来说,如果指令1指派给预测寄存器1,预测位被设为:000001。当变量I 等于0时,预测寄存器1被设定为"真",只有那些指向预测寄存器为"真"的指令结果才会被执行。
四、投机装载:
投机装载是把所需数据提前数十个周期放到一级数据Cache中。这样就可避免Cache未命中情况的发生, CPU几乎不再访问内存,它总是可以在一级Cache中找到它需要的东西。