简介

处理器一般指中央处理器,中央处理器(CPU, Central Processing Unit)是一块超大规模的集成电路,是一台计算机的核心(Core)和控制核心(Control Unit)。它的功能主要是解释计算机指令以及处理计算机软件中的数据。
大多数现代电路设计都是用信号线上的高电压和低电压来表示不同的位值。
要实现一个数字系统需要三个主要的组成部分:
(1)计算对位进行操作的函数的组合逻辑(ALU);
(2)存储位的存储器元素(寄存器);
(3)控制存储器元素更新的时钟信号。

结构

根据冯·诺依曼思想,计算机采用二进制作为数制基础,必须包含:运算器、控制器、存储设备,以及输入输出设备,如下图所示:
CPU的根本任务就是执行指令,对计算机来说最终都是一串由“0”和“1”组成的序列。CPU从逻辑上可以划分成3个模块,分别是控制单元、运算单元和存储单元,这三部分由CPU内部总线连接起来。如下所示:

  • 控制单元
    控制单元是整个CPU的指挥控制中心,由指令寄存器IR(Instruction Register)、指令译码器ID(Instruction Decoder)和操作控制器OC(Operation Controller)等,对协调整个电脑有序工作极为重要。它根据用户预先编好的程序,依次从存储器中取出各条指令,放在指令寄存器IR中,通过指令译码(分析)确定应该进行什么操作,然后通过操作控制器OC,按确定的时序,向相应的部件发出微操作控制信号。操作控制器OC中主要包括节拍脉冲发生器、控制矩阵、时钟脉冲发生器、复位电路和启停电路等控制逻辑。
  • 运算单元
    运算单元是运算器的核心。可以执行算术运算(包括加减乘数等基本运算及其附加运算)和逻辑运算(包括移位、逻辑测试或两个值比较)。相对控制单元而言,运算器接受控制单元的命令而进行动作,即运算单元所进行的全部操作都是由控制单元发出的控制信号来指挥的,所以它是执行部件。
  • 存储单元
    存储单元包括CPU片内缓存和寄存器组,是CPU暂时存放数据的地方,里面保存着那些等待处理的数据,或者已经处理过的数据,CPU访问寄存器所用的时间比直接访问内存的时间短。采用寄存器,可以减少CPU访问内存的次数,从而提高了CPU的工作速度。但因为受到芯片面积和集成度限制,寄存器组的容量不可能很大。寄存器组可分为专用寄存器和通用寄存器。专用寄存器的作用是固定的,分别寄存相应的数据。而通用寄存器作用广泛并可由程序员规定其用途,通用寄存器的数目因微处理器而不同。

工作原理

CPU的工作原理概括如下图:

总的来说,CPU从内存中一条一条地取出指令和相应的数据,按照指令操作码的规定,对数据进行运算处理,直到程序执行完毕为止。
更细一点的说,控制单元是CPU的控制中心,CPU需要通过它才知道下一步做什么,也就是执行什么指令,控制单元包含指令寄存器(IR)、指令译码器(ID)和操作控制器(OC)。当程序被加载进内存后,指令就在内存中了,这个时候说的内存是独立于CPU外的主存设备,也就是PC机中的内存条。指令指针寄存器IP指向内存下一条待执行指令的地址,控制单元根据IP寄存器的指向,将主存中的指令加载到指令寄存器,这个指令寄存器也是一个存储设备,不过集成在CPU内部。指令从主存到达CPU后只是一串串010101的二进制串,还需要通过译码器解码,分析出操作码是什么,操作数在哪,之后就是具体的运算单元进行算数运算(加减乘除),逻辑运算(比较,位移)。
CPU指令执行过程大致为:取址(去主存获取指令放到寄存器)→ 译码(从主存获取操作数放到高速缓存L1)→ 执行(运算)
上图中 CPU 内部集成的存储单元 SRAM ,正好和主存中的 DRAM 对应, RAM 是随机访问内存,就是给一个地址就能访问到数据,而磁盘这种存储媒介必须顺序访问,而 RAM 又分为动态和静态两种,静态 RAM 由于集成度较低,一般容量小,速度快,而动态 RAM 集成度较高,主要通过给电容充电和放电实现,速度没有静态 RAM 快,所以一般将动态 RAM 做为主存,而静态 RAM 作为 CPU 和主存之间的高速缓存 (cache),用来屏蔽 CPU 和主存速度上的差异,也就是我们经常看到的 L1 , L2 缓存。每一级别缓存速度变低,容量变大。

处理器的逻辑单元

更细一点,从实现的功能方面看,CPU大致可分为如下八个逻辑单元:
(1)指令寄存器 :它是芯片上的指令仓库,有了它CPU就不必停下来查找计算机内存中的指令,从而大幅提高了CPU的运算速度。
(2)指令译码器 :它负责将复杂的机器语言指令解译成运算逻辑单元(ALU)和寄存器能够理解的简单格式,就像一位外交官。
(3)控制单元 :既然指令可以存入CPU,而且有相应指令来完成运算前的准备工作,背后自然有一个扮演推动作用的角色——它便是负责整个处理过程的操作控制器。根据来自译码单元的指令,它会生成控制信号,告诉运算逻辑单元(ALU)和寄存器如何运算、对什么进行运算以及对结果进行怎样的处理。
(4)寄存器 :它对于CPU来说非常的重要,除了存放程序的部分指令,它还负责存储指针跳转信息以及循环操作命令,是运算逻辑单元(ALU)为完成控制单元请求的任务所使用的数据的小型存储区域,其数据来源可以是高速缓存、内存、控制单元中的任何一个。
(5)逻辑运算单元(ALU) :它是CPU芯片的智能部件,能够执行加、减、乘、除等各种命令。此外,它还知道如何读取逻辑命令,如或、与、非。来自控制单元的讯息将告诉运算逻辑单元应该做些什么,然后运算单元会从寄存器中间断或连续提取数据,完成最终的任务。
(6)预取单元 :PU效能发挥对其依赖非常明显,预取命中率的高低直接关系到CPU核心利用率的高低,进而带来指令执行速度上的不同。根据命令或要执行任务所提出的要求,何时时候,预取单元都有可能从指令高速缓存或计算机内存中获取数据和指令。当指令到达时,预取单元最重要的任务就是确保所有指令均排列正确,然后发送给译码单元。
(7)总线单元 :它就像一条高速公路,快速完成各个单元间的数据交换,也是数据从内存流进和流出CPU的地方。
(8)数据高速缓存 :存储来自译码单元专门标记的数据,以备逻辑运算单元使用,同时还准备了分配到计算机不同部分的最终结果。
通过以上介绍可以看出CPU虽小,方寸之地却能容纳大世界,内部更像一个发达的装配工厂,环环相扣,层层相套。正因为有了相互间的协作配合,才使得指令最终得以执行,才构成了图文并茂、影像结合的神奇数字世界 。

处理器(CPU)结构相关推荐

  1. 【OS学习笔记】十二 现代处理器的结构和特点

    本文是一个衔接点,上一篇文章以前都是学习8086实模式的知识.本文开始学习80386这种现代处理器的编程架构.由此进入保护模式的学习.点击链接查看上一篇文章:上一篇文章 1.现代处理器的结构和特点 1 ...

  2. 计算机组成原理复习提纲六(CPU结构和功能)

    CPU结构和功能 文章目录 CPU结构和功能 CPU结构 1. CPU的功能 控制器的功能 运算器的功能 2. CPU的结构框图 3. CPU的寄存器 (1) 用户可见寄存器 (2) 控制和状态寄存器 ...

  3. 17 Redis 的性能受CPU结构影响

    17 Redis 的性能受CPU结构影响 前言 一.主流的 CPU 架构 二.多 CPU Socket 的架构 二.CPU 多核对 Redis 性能的影响 三.CPU 的 NUMA 架构对 Redis ...

  4. MCS-51单片机内部结构——CPU结构 单片机原理学习笔记(二)

    CPU结构 8051内部CPU是一个字长为二进制8位的中央处理单元,也就是说它对数据的处理是按字节为单位进行的.与微型计算机CPU类似,8051内部CPU也是由算术逻辑部件(ALU).控制器(定时控制 ...

  5. 【软考学习4】计算机构成——CPU 结构、Flynn 分类法、CISC和RISC

    CPU 结构.Flynn 分类法.CISC/RISC都是软考中较为常见的知识点,需要了解每种类型的特征.它们之间的区别. 一.CPU结构 数学家 冯·诺依曼 认为,计算机应当分为以下五个部分: 运算器 ...

  6. CPU结构与指令执行过程简介

    CPU(Central Processing Unit)是计算机中进行算术和逻辑计算处理指令的主要部件. CPU结构 CPU由通用寄存器组,运算器,控制器和数据通路等部件组成. 寄存器包括 数据寄存器 ...

  7. 国外计算机cpu排行,电脑处理器最新排行天梯图_处理器CPU最新天梯图2020 - 系统家园...

    在使用电脑的时候,我们广大的用户们是否会非常的去关注CPU的的性能呢,相信很多的用户们在玩耍游戏的时候,都遇到过CPU占用到90以上的情况,但是这样的CPU性能又如何呢,快来看看详细的教程吧~ 电脑处 ...

  8. 阿里云服务器AMD EPYC Milan 7T83处理器CPU性能详解

    阿里云AMD服务器通用型g7a.计算型c7a和内存型r7a采用AMD EPYC Milan 7T83处理器CPU,主频为2.55 GHz,单核睿频最高3.5 GHz,阿里云百科来详细说下采用AMD E ...

  9. CPU结构及工作原理

    CPU结构 中央处理器(CPU,Central Processing Unit)的功能主要是解释计算机指令以及处理计算机软件中的数据. 图1 CPU主要结构 CPU从逻辑上可以划分成3个模块,分别是控 ...

最新文章

  1. 数据科学家成长指南(下)
  2. 分布式的事务该怎么做?
  3. vb 访问远程计算机,vb 怎么访问远程电脑SQL SERVER数据库
  4. Guru of the Week 条款01: 变量的初始化
  5. 学界 | CVPR 2018颁布五大奖项,何恺明获年轻学者奖
  6. adb shell top 使用
  7. Eclipse 常用技巧及常见问题解决
  8. 国内的优秀HTML5前端开发框架
  9. swift 点击imageView全屏预览(UIview中弹出提示框)
  10. java面试排序都考哪几种排序_java算法面试题:排序都有哪几种方法?
  11. C++从文件中查找特定的字符串,并提取该字符串
  12. 简述Handler机制原理
  13. 报错:When executing step qmake
  14. 上海电力大学计算机科学与技术学院,栗风永 - 上海电力大学 - 计算机科学与技术学院...
  15. oracle、mysql创建用户赋DBA权限
  16. 图文推荐系统之数据冷启小结
  17. Echarts - lengend图例自定义
  18. 系统中IDE硬盘与SCSI硬盘的区别
  19. 适合中介的二手房房源管理系统
  20. Java P1443 马的遍历

热门文章

  1. Gridmanager
  2. Android APP架构设计——MVP的使用示例
  3. matlab 中@的用法
  4. js中回调函数的理解 举例说明js回调函数
  5. C语言读写ini、json、csv文件
  6. Covenant利用分析
  7. 搜狐,这次你玩过火了。
  8. Sql server 日期函数和日期转换
  9. 【产品经理】产品经理的日常工作
  10. 【AcWing】AcWing 2. 01背包问题