论文部分内容阅读
没有CPU(Central Processing Unit,中央处理器),计算机能运行吗?能!世界上第一台电子计算机ENIAC(埃尼阿克)就不是靠CPU运行的,它在执行不同程序时,必须经过工程师一番线路调整才能启动,执行不同的程序,就需要重新调整一番线路,这些机器通常称为固定程序计算机(Fixed-Program Computer)。难以想像,如果我们在办公桌前操作笔记本电脑,敲敲键盘动动鼠标,后面必须有一帮工程师奔忙着帮你连接复杂的线路来完成计算,那是一幕多么恐怖的场景。
时势造英雄,冯·诺伊曼教授闪亮登场,他的冯·诺伊曼结构理论,奠定了现代计算机的基础,计算机开始能够储存指令并逐条运行,免去繁杂而不稳定的人工操作,随着这种储存程序型计算机一同登场的装置,也可以被称为中央处理器(CPU)。接下来的事大家都耳熟能详了,1971年,第一块微处理器4004在Intel公司诞生,然后是16位、32位、64位CPU的相继出现,性能越来越强大。
硬件扫盲—CPU工作原理初探
CPU看起来只是主板上一块小小的芯片,它如何控制整台电脑?翻过CPU,会发现有许多金属针脚,CPU插入主板后,这些针脚将与主板上的金属线路相连(你一定见过主板上密集的金黄色线路吧),正是通过这些线路,CPU向各个电脑设备发出指令以及接收各设备的请求进行处理等。这么看来,CPU又有点像一只坐镇在丝网中心的黑蜘蛛,哪条丝线有颤动,它就冲向哪里。
如果将CPU芯片放大再放大,让我们走进CPU中,又会发现它像一条流水线的工厂。这个“工厂”里主要有控制器、运算器和存储单元三大部分组成。这几大部分如同大的“车间”,每个车间又由多个小车间组成。控制器中包括程序计数器、指令寄存器、指令译码器、时序产生器和操作控制器组成等;运算器中包括算术逻辑单元ALU、累加寄存器、数据缓冲寄存器和状态条件寄存器等;存储单元是CPU中的小仓库,用来临时保存运算的数据,CPU还通过数据总线与外存储器相连。
这三个部分相互协作,对命令和数据进行分析、判断、运算并控制计算机各部分协调工作。
举个简单的例子。比如我们启动计算器程序让电脑计算1+1,首先要将计算命令1+1输入到内存,然后CPU控制单元会从中提取指令,接着将该指令编译为CPU可以识别的命令,运算器根据指令得出运算结果,最后将结果2暂存并输出到屏幕,这样就完成一次运算操作。
追根溯源—了解多核CPU历史
所谓多核CPU,相当于把多个CPU集成在一起,通过“人多力量大”来提高性能。
最初,CPU主要通过提高主频来实现性能提升,不过主频达到一定高度后性能也就达到了极限,而且散热量大增严重影响系统稳定性。因此CPU厂商停止主频的竞争,转而通过增加CPU核心来提高性能。
PC领域,AMD于2004年8月31日德州奥斯汀Fab25晶圆厂建厂周年纪念会上,展示了双核心的Opteron处理器。接着又在2005年发布了面向个人用户的Athlon64x2处理器。作为AMD的冤家对头,英特尔公司也不甘示弱,2004年9月,英特尔正式发布研发多时的双核心Itanium2处理器(代号Montecito),2005年4月18日,英特尔历史上第一颗双核心处理器奔腾至尊版840以及配套的Intel 955X芯片组正式发布。至此个人消费领域正式步入了CPU双(多)核之路,而现在八核心的AMD FX 8120(主频:3.1GHz)报价也不过一千余元,八核CPU过段时间就会成为主流配置。
刨根问底—多核是怎么工作的
一个和尚挑水吃,两个和尚抬水吃,三个和尚没水吃。多核CPU会不会也出现这种情况,它们是如何协同工作的呢?
并行处理达高效
上一期超级计算机技术解读中介绍过并行处理技术,实际PC上的多核CPU工作原理与之相似。我们以4核CPU为例。现在让你的电脑计算1+2+3直到100,对于单核电脑,它按部就班进行1+2+3+4直至100的计算,然后汇总输出结果。而对于4核电脑,假设计算程序和操作系统都支持多线程处理,那么操作系统就会让CPU1负责分配任务和汇总,它会分配CPU2负责1+2直到33,CPU1则负责34+35直到66,CPU3则负责67+68直到100,然后将结果汇总到CPU1并输出结果。显然这种并行处理的速度远远快于单核电脑,这就是多核并行计算带来的性能提升。
多核还需软件帮
多核CPU是硬件,要想达到高性能,还需要操作系统和软件的支持才能完全实现。
Windows本身就是多线程操作系统(DOS是单线程系统,DOS下2核4核和单核没区别),它可以把每个处理任务划分为多个子任务,这些子任务按顺序排成队列,在单核电脑中,这些子任务被轮流执行,在多核电脑中,系统自动将这些子任务分配给不同的CPU核心,并行处理从而提速。
关于多核不可不知的几个问题
双核≠双性能
多核不一定会使你的电脑时钟速度更快,但它将提高你的PC的整体性能,这是一个有所不同的细微的技术特色。多核处理器的性能提升并不是简单CPU核心的倍数,因为受到两(多)个核之间共享资源的拖累。比如双核性能只是单核的1.4~1.8倍,实际情况取决于具体的应用。
多核并不一定高能
从理论上来说,多核的性能肯定要比单核高很多。不过软件的发展远远跟不上硬件发展的速度,这样多核CPU在实际应用中就无法发挥其应用的功效,比如现在四核CPU已经非常的普及,但是针对四核优化的应用软件寥寥可数。即使你已经用上八核的CPU,在运行很多软件时仍然不会感到速度有多快的提升。因此我们并不要唯核是从,多核的不一定是最优的。“够用就好”永远是大家装机时选择硬件的唯一原则。另外由于架构、主频的不同,多核也并不一定比少核电脑性能高。
双核、双芯和超线程
双(多)核:是指拥有两(或多个)物理核心(又称为内核),各种CPU核心都具有固定的逻辑结构,一级缓存、二级缓存、执行单元、指令级单元和总线接口等逻辑单元,各个核心通过超传输技术让CPU内核直接跟外部I/O相连,集成内存控制器技术,使得每个内核都有自己的高速缓存可资遣用,都有自己的专用车道直通I/O,没有资源争抢的问题。
双(多)芯:仅仅将两(或多个)完整的CPU封装在一起,连接到同一个前端总线上。由于总线的限制,两个核心必然会产生总线争抢,影响性能,而且这样的核心越多,越容易加剧处理器争用前端总线带宽,成为提升系统性能的瓶颈,这是CPU架构引发的先天故障,因此这种双(多)芯实际上是“假多核”。双芯有些像是北京郊区开发的大型社区一样,多个社区利用同一条城市快速路,人们出行(数据处理)肯定要遇到堵车的问题。双核则是为不同小区开发专用车道,每个小区出行并不交叉(数据可以并行处理),并不会发生堵车现象。
HT技术(即超线程技术):HT技术是在处理器实现2个逻辑处理器(注意不是物理处理器),充分利用处理器资源,类似虚拟CPU,让系统误认为是双核处理器。而双核心处理器是集成2个物理核心,是实际意义上的双核心处理器。举个形象例子来说,前者好像是一个能用双手同时炒菜的厨师,但一次只能把一碟菜放到桌面;而双核心处理器好比2个厨师炒两个菜,并同时把两个菜送到桌面。
时势造英雄,冯·诺伊曼教授闪亮登场,他的冯·诺伊曼结构理论,奠定了现代计算机的基础,计算机开始能够储存指令并逐条运行,免去繁杂而不稳定的人工操作,随着这种储存程序型计算机一同登场的装置,也可以被称为中央处理器(CPU)。接下来的事大家都耳熟能详了,1971年,第一块微处理器4004在Intel公司诞生,然后是16位、32位、64位CPU的相继出现,性能越来越强大。
硬件扫盲—CPU工作原理初探
CPU看起来只是主板上一块小小的芯片,它如何控制整台电脑?翻过CPU,会发现有许多金属针脚,CPU插入主板后,这些针脚将与主板上的金属线路相连(你一定见过主板上密集的金黄色线路吧),正是通过这些线路,CPU向各个电脑设备发出指令以及接收各设备的请求进行处理等。这么看来,CPU又有点像一只坐镇在丝网中心的黑蜘蛛,哪条丝线有颤动,它就冲向哪里。
如果将CPU芯片放大再放大,让我们走进CPU中,又会发现它像一条流水线的工厂。这个“工厂”里主要有控制器、运算器和存储单元三大部分组成。这几大部分如同大的“车间”,每个车间又由多个小车间组成。控制器中包括程序计数器、指令寄存器、指令译码器、时序产生器和操作控制器组成等;运算器中包括算术逻辑单元ALU、累加寄存器、数据缓冲寄存器和状态条件寄存器等;存储单元是CPU中的小仓库,用来临时保存运算的数据,CPU还通过数据总线与外存储器相连。
这三个部分相互协作,对命令和数据进行分析、判断、运算并控制计算机各部分协调工作。
举个简单的例子。比如我们启动计算器程序让电脑计算1+1,首先要将计算命令1+1输入到内存,然后CPU控制单元会从中提取指令,接着将该指令编译为CPU可以识别的命令,运算器根据指令得出运算结果,最后将结果2暂存并输出到屏幕,这样就完成一次运算操作。
追根溯源—了解多核CPU历史
所谓多核CPU,相当于把多个CPU集成在一起,通过“人多力量大”来提高性能。
最初,CPU主要通过提高主频来实现性能提升,不过主频达到一定高度后性能也就达到了极限,而且散热量大增严重影响系统稳定性。因此CPU厂商停止主频的竞争,转而通过增加CPU核心来提高性能。
PC领域,AMD于2004年8月31日德州奥斯汀Fab25晶圆厂建厂周年纪念会上,展示了双核心的Opteron处理器。接着又在2005年发布了面向个人用户的Athlon64x2处理器。作为AMD的冤家对头,英特尔公司也不甘示弱,2004年9月,英特尔正式发布研发多时的双核心Itanium2处理器(代号Montecito),2005年4月18日,英特尔历史上第一颗双核心处理器奔腾至尊版840以及配套的Intel 955X芯片组正式发布。至此个人消费领域正式步入了CPU双(多)核之路,而现在八核心的AMD FX 8120(主频:3.1GHz)报价也不过一千余元,八核CPU过段时间就会成为主流配置。
刨根问底—多核是怎么工作的
一个和尚挑水吃,两个和尚抬水吃,三个和尚没水吃。多核CPU会不会也出现这种情况,它们是如何协同工作的呢?
并行处理达高效
上一期超级计算机技术解读中介绍过并行处理技术,实际PC上的多核CPU工作原理与之相似。我们以4核CPU为例。现在让你的电脑计算1+2+3直到100,对于单核电脑,它按部就班进行1+2+3+4直至100的计算,然后汇总输出结果。而对于4核电脑,假设计算程序和操作系统都支持多线程处理,那么操作系统就会让CPU1负责分配任务和汇总,它会分配CPU2负责1+2直到33,CPU1则负责34+35直到66,CPU3则负责67+68直到100,然后将结果汇总到CPU1并输出结果。显然这种并行处理的速度远远快于单核电脑,这就是多核并行计算带来的性能提升。
多核还需软件帮
多核CPU是硬件,要想达到高性能,还需要操作系统和软件的支持才能完全实现。
Windows本身就是多线程操作系统(DOS是单线程系统,DOS下2核4核和单核没区别),它可以把每个处理任务划分为多个子任务,这些子任务按顺序排成队列,在单核电脑中,这些子任务被轮流执行,在多核电脑中,系统自动将这些子任务分配给不同的CPU核心,并行处理从而提速。
关于多核不可不知的几个问题
双核≠双性能
多核不一定会使你的电脑时钟速度更快,但它将提高你的PC的整体性能,这是一个有所不同的细微的技术特色。多核处理器的性能提升并不是简单CPU核心的倍数,因为受到两(多)个核之间共享资源的拖累。比如双核性能只是单核的1.4~1.8倍,实际情况取决于具体的应用。
多核并不一定高能
从理论上来说,多核的性能肯定要比单核高很多。不过软件的发展远远跟不上硬件发展的速度,这样多核CPU在实际应用中就无法发挥其应用的功效,比如现在四核CPU已经非常的普及,但是针对四核优化的应用软件寥寥可数。即使你已经用上八核的CPU,在运行很多软件时仍然不会感到速度有多快的提升。因此我们并不要唯核是从,多核的不一定是最优的。“够用就好”永远是大家装机时选择硬件的唯一原则。另外由于架构、主频的不同,多核也并不一定比少核电脑性能高。
双核、双芯和超线程
双(多)核:是指拥有两(或多个)物理核心(又称为内核),各种CPU核心都具有固定的逻辑结构,一级缓存、二级缓存、执行单元、指令级单元和总线接口等逻辑单元,各个核心通过超传输技术让CPU内核直接跟外部I/O相连,集成内存控制器技术,使得每个内核都有自己的高速缓存可资遣用,都有自己的专用车道直通I/O,没有资源争抢的问题。
双(多)芯:仅仅将两(或多个)完整的CPU封装在一起,连接到同一个前端总线上。由于总线的限制,两个核心必然会产生总线争抢,影响性能,而且这样的核心越多,越容易加剧处理器争用前端总线带宽,成为提升系统性能的瓶颈,这是CPU架构引发的先天故障,因此这种双(多)芯实际上是“假多核”。双芯有些像是北京郊区开发的大型社区一样,多个社区利用同一条城市快速路,人们出行(数据处理)肯定要遇到堵车的问题。双核则是为不同小区开发专用车道,每个小区出行并不交叉(数据可以并行处理),并不会发生堵车现象。
HT技术(即超线程技术):HT技术是在处理器实现2个逻辑处理器(注意不是物理处理器),充分利用处理器资源,类似虚拟CPU,让系统误认为是双核处理器。而双核心处理器是集成2个物理核心,是实际意义上的双核心处理器。举个形象例子来说,前者好像是一个能用双手同时炒菜的厨师,但一次只能把一碟菜放到桌面;而双核心处理器好比2个厨师炒两个菜,并同时把两个菜送到桌面。