`

CPU内核

    博客分类:
  • cpu
阅读更多

CPU内核结构


分类: 电脑组成2011-10-30 19:57186人阅读评论(0)收藏举报


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有着很大的不同:
a) CISC的寄存器通常很少,主要是受了当时硬件成本所限。比如x86指令集只有8个通用寄存 器。所以,CISC的CPU执行是大多数时间是在访问存储器中的数据,而不是寄存器中的。这就拖慢了整个系统的速度。
b) 而RISC系统往往具有非常多的通用 寄存器,并采用了重叠寄存器窗口和寄存器堆等技术使寄存器资源得到充分的利用。
c) 对于x86指令集只支持8个通用寄存器的缺点,Intel和AMD的最新CPU都采用了一种叫做“寄存器重命名”的技术,这种技术使x86CPU的寄存器可以突破8个的限制,达到32个甚至更多。
d) 不过,相对于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)
对于一条具体的指令执行过程,通常可以分为五个部分:取指令,指令译码,取操作数,运算(ALU),写结果。
其中前三步一般由指令控制器完成,后两步 则由运算器完成。
按照传统的方式,所有指令顺序执行,那么先是指令控制器工作,完成第一条指令的前三步,然后运算器工作,完成后两步,在指令控制器工作, 完成第二条指令的前三步,在是运算器,完成第二条指令的后两部-----很明显,当指令控制器工作是运算器基本上在休息,而当运算器在工作时指令控制器却在休 息,造成了相当大的资源浪费。解决方法很容易想到,当指令控制器完成了第一条指令的前三步后,直接开始第二条指令的操作,运算单元也是。这样就形成了流水线系统,这是一条2级流水线。
如果是一个超标量系统,假设有三个指令控制单元和两个运算单元,那么就可以在完成了第一条指令的取址工作后直接开始第二条指令的取址,这时第一条指令在进行译码,然后第三条指令取址,第二条指令译码,第一条指令取操作数……这样就是一个5级流水线。很显然,5级流水线的平均理论速度是不用流水线的4 倍。
流水线系统最大限度地利用了CPU资源,使每个部件在每个时钟周期都工作,大大提高了效率。但是,流水线有两个非常大的问题:相关和转移。
在一个流水线系统中,如果第二条指令需要用到第一条指令的结果,这种情况叫做相关。以上面哪个5级流水线为例,当第二条指令需要取操作数时,第一条指 令的运算还没有完成,如果这时第二条指令就去取操作数,就会得到错误的结果。所以,这时整条流水线不得不停顿下来,等待第一条指令的完成。这是很讨厌的问 题,特别是对于比较长的流水线,比如20级,这种停顿通常要损失十几个时钟周期。目前解决这个问题的方法是乱序执行。乱序执行的原理是在两条相关指令中插 入不相关的指令,使整条流水线顺畅。比如上面的例子中,开始执行第一条指令后直接开始执行第三条指令(假设第三条指令不相关),然后才开始执行第二条指 令,这样当第二条指令需要取操作数时第一条指令刚好完成,而且第三条指令也快要完成了,整条流水线不会停顿。当然,流水线的阻塞现象还是不能完全避免的, 尤其是当相关指令非常多的时候。
另一个大问题是条件转移。在上面的例子中,如果第一条指令是一个条件转移指令,那么系统就会不清楚下面应该执行那一条指令?这时就必须等第一条指令的 判断结果出来才能执行第二条指令。条件转移所造成的流水线停顿甚至比相关还要严重的多。所以,现在采用分支预测技术来处理转移问题。虽然我们的程序中充满 着分支,而且哪一条分支都是有可能的,但大多数情况下总是选择某一分支。比如一个循环的末尾是一个分支,除了最后一次我们需要跳出循环外,其他的时候我们 总是选择继续循环这条分支。根据这些原理,分支预测技术可以在没有得到结果之前预测下一条指令是什么,并执行它。现在的分支预测技术能够达到90%以上的 正确率,但是,一旦预测错误,CPU仍然不得不清理整条流水线并回到分支点。这将损失大量的时钟周期。所以,进一步提高分支预测的准确率也是正在研究的一 个课题。
越是长的流水线,相关和转移两大问题也越严重,所以,流水线并不是越长越好,超标量也不是越多越好,找到一个速度与效率的平衡点才是最重要的。

转载http://hi.baidu.com/halleyzhang/blog/item/e45ed35c3ebb0442fbf2c09d.html
分享到:
评论

相关推荐

    如何为多CPU SoC设计选择合适的CPU内核.pdf

    "如何选择合适的CPU内核 для多CPU SoC设计" CPU内核是多CPU SoC设计的核心组件之一,对于选择合适的CPU内核非常重要。本文将讨论如何选择合适的CPU内核 для多CPU SoC设计,重点介绍了多CPU SoC设计的挑战和...

    DSP课件CPU内核结构存储器和IO空间

    本篇内容主要围绕DSP的基础知识展开,包括CPU内核结构、存储器体系以及输入/输出(I/O)空间,这些都是理解DSP工作原理的关键组成部分。 首先,我们来看CPU内核结构。CPU是DSP的核心,它负责执行指令和控制整个系统...

    浅议CPU内核供电问题.pdf

    "浅议CPU内核供电问题" CPU 内核供电问题是当前 CPU 技术的关键问题之一。在 CPU 的设计和 Manufacturing 过程中,内核供电问题是一个非常重要的课题。内核供电问题是指 CPU 内核在工作过程中的电压供电问题,包括...

    CPU内核温度查看

    本文将详细讨论如何查看CPU内核温度,以及了解各内核温度的重要性。 首先,我们需要理解CPU内核温度的概念。CPU内部由多个执行单元,即内核组成,每个内核都有自己的工作温度。当CPU进行大量计算时,内核会产生热量...

    高性能低成本的CPU内核——E9000.pdf

    高性能低成本的CPU内核——E9000.pdf 本文档介绍了高性能低成本的CPU内核E9000,属于PM C.Sierra 公司生产的MIPS 微处理器系列。E9000 CPU 内核可以应用于两种类型的产品中:独立式处理器和集成在同一硅片中的范围...

    双 CPU 内核上的 RT-Thread/Linux 的 Gemini 系统

    本文将深入探讨"双 CPU 内核上的 RT-Thread/Linux 的 Gemini 系统"这一主题,围绕操作系统的核心概念、双 CPU 架构、RT-Thread 实时操作系统以及 Linux 操作系统进行详细解析。 首先,让我们了解双 CPU 内核的概念...

    Windows操作系统多核CPU内核线程管理方法.pdf

    Windows 操作系统多核 CPU 内核线程管理方法 Windows 操作系统多核 CPU 内核线程管理方法是指在 Windows 操作系统中,如何合理地分配多核 CPU 的资源,以提高软件的实时性和性能。该方法基于 Windows 内核模式下...

    一种8位微机芯片的CPU内核.pdf

    本文主要介绍了一种8位微机芯片的CPU内核,该内核的设计是基于VHDL硬件描述语言,目标是实现与MC68HC05内核兼容的8位微处理器。这种微机芯片在家电、通讯、工业控制等领域有着广泛应用,因此自主研制具有重要意义。 ...

    浅谈国产32位CPU内核的电器专用SOC芯片研发探究.pdf

    《浅谈国产32位CPU内核的电器专用SOC芯片研发探究》 本文主要探讨了国产32位CPU内核在电器专用系统级芯片(SOC)研发中的应用和挑战。随着我国集成电路产业的发展,自主知识产权的CPU内核和SOC芯片的研发显得尤为...

    windows系统多核CPU内核线程管理

    ### Windows系统多核CPU内核线程管理 #### 引言与背景 随着计算机硬件技术的不断进步,尤其是CPU架构的革新,多核处理器已成为现代计算设备的标准配置。多核处理器能够并行处理多个任务,极大地提升了计算效率和...

    首款MIPS‘Warrior P-class’CPU内核.pdf

    **首款MIPS“Warrior P-class”CPU内核详解** MIPS(Microprocessor without Interlocked Pipeline Stages,无互锁流水线级微处理器)架构是一种RISC(Reduced Instruction Set Computer,精简指令集计算机)架构,...

    集成标准CPU内核,FPGA为嵌入式设计带来更高灵活性.pdf

    标题:“集成标准CPU内核, FPGA为嵌入式设计带来更高灵活性” 描述:“在嵌入式系统设计中,集成标准CPU内核的FPGA器件使开发人员能够在单一芯片上实现处理功能与可编程逻辑功能,进而提供更高的设计灵活性。” ...

    CPU内核电压电路设计.pdf

    CPU内核电压电路设计是确保微处理器正常运行的关键部分,特别是在高性能计算和移动设备中,对能源效率和稳定性有着极高的要求。Linear公司的LTC1709是一款专为Intel Pentium4微处理器设计的电源转换器,它具有动态...

    移动用CPU内核供电的挑战.pdf

    移动设备中的CPU内核供电面临着严峻的挑战,尤其是随着现代高速CPU性能的提升,其所需的电流不断增大,这对电源设计提出了更高的要求。为了应对低输出电压、大电流以及快速响应负载动态变化的需求,电源转换效率、...

    分布式CPU内核电压调节模块.pdf

    《分布式CPU内核电压调节模块》这篇论文深入探讨了在计算机工业快速发展背景下,如何应对高功率需求的挑战,特别是针对2007年前需要在0.95V电压下提供200A电流的需求。文章重点在于分布式电压调节模块(VRM)的设计...

    哈工大DSP课件---第3章CPU内核结构

    ### 哈工大DSP课件之第3章:CPU内核结构详解 #### CPU功能模块解析 在《哈工大DSP课件—第3章CPU内核结构》中,详细介绍了TMS320LF240x的CPU功能模块和时钟模块。这一章节是DSP(数字信号处理器)学习的重要组成...

    用于CPU内核的分布式电压调节模块.pdf

    《用于CPU内核的分布式电压调节模块》 随着信息技术的快速发展,CPU的性能需求日益增长,对于电源管理的要求也变得更加严格。2007年,个人计算机(PC)的CPU核心需要能够在0.95V的电压下提供高达200A的电流,这对...

    可实现更高处理能力及代码效率的CPU内核系列.pdf

    【CPU内核与处理器性能】 CPU(中央处理器)内核是计算机硬件系统的核心部分,它负责执行指令和处理数据。CPU内核的性能直接影响到整个系统的处理能力,从而影响到程序运行的速度和效率。本篇提到的R X系列单片机,...

    Ibex 是一个小型 32 位 RISC-V CPU 内核,以前称为 zero-riscy_SystemVeri_代码_下载

    bex 是用 SystemVerilog 编写的生产级开源 32 位 RISC-V CPU 内核。CPU 内核高度可参数化,非常适合嵌入式控制应用。Ibex 正在接受广泛的验证,并且已经看到多个流片。Ibex 支持整数 (I) 或嵌入式 (E)、整数乘除法 ...

    M26 OpenCPU内核配置文件

    标题"M26 OpenCPU内核配置文件"涉及的是物联网领域中的OpenCPU技术,特别是针对移远公司的M26模块。OpenCPU(开放式中央处理器)是一种允许开发者在硬件平台上自由编程的技术,它通常包括一个微控制器或者处理器核心...

Global site tag (gtag.js) - Google Analytics