cpu内部组成
计算机系统的硬件结构主要由四部分组成:控制器、运算器、内存和输入输出设备
其中,控制器和运算器统称为中央处理器。简称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有着很大的不同。CISC的寄存器通常很少,主要是受了当时硬件成本所限。比如x86指令集只有8个通用寄存器。所以,CISC的CPU执行是大多数时间是在访问存储器中的数据,而不是寄存器中的。这就拖慢了整个系统的速度。而RISC系统往往具有非常多的通用寄存器,并采用了重叠寄存器窗口和寄存器堆等技术使寄存器资源得到充分的利用。
对于x86指令集只支持8个通用寄存器的缺点,Intel和AMD的最新CPU都采用了一种叫做“寄存器重命名”的技术,这种技术使x86CPU的寄存器可以突破8个的限制,达到32个甚至更多。不过,相对于RISC来说,这种技术的寄存器操作要多出一个时钟周期,用来对寄存器进行重命名。
4、 专用寄存器 专用寄存器通常是一些状态寄存器,不能通过程序改变,由CPU自己控制,表明某种状态。
(二) 控制器 运算器只能完成运算,而控制器用于控制着整个CPU的工作。
1、 指令控制器 指令控制器是控制器中相当重要的部分,它要完成取指令、分析指令等操作,然后交给执行单元(ALU或FPU)来执行,同时还要形成下一条指令的地址。
2、 时序控制器 时序控制器的作用是为每条指令按时间顺序提供控制信号。时序控制器包括时钟发生器和倍频定义单元,其中时钟发生器由石英晶体振荡器发出非常稳定的脉冲信号,就是CPU的主频;而倍频定义单元则定义了CPU主频是存储器频率(总线频率)的几倍。 3、 总线控制器 总线控制器主要用于控制CPU的内外部总线,包括地址总线、数据总线、控制总线等等。
4、中断控制器 中断控制器用于控制各种各样的中断请求,并根据优先级的高低对中断请求进行排队,逐个交给CPU处理。
1.RISC与CISC的差异
处理器的指令集可简单分为2种,CISC(complex instruction set computer)以及RISC(reduced instruction set computer)。一开始的处理器都是CISC架构,随着时间演进,有越来越多的指令集加入。由于当时编译器的技术并不纯熟,程序都会直接以机器码或是汇编语言写成,为了减少程序设计师的设计时间,逐渐开发出单一指令,复杂操作的程序码,设计师只需写下简单的指令,再交由CPU去执行。但是后来有人发现,整个指令集中,只有约20%的指令常常会被使用到,约占整个程序的80%;剩余80%的指令,只占整个程序的20%。于是1979年美国加州大学柏克莱分校的David Patterson教授提出了RISC的想法,主张硬件应该专心加速常用的指令,较为复杂的指令则利用常用的指令去组合。
RISC的优点列举如下:
指令长度固定,方便CPU译码,简化译码器设计。
尽量在CPU的暂存器(最快的存储器元件)里操作,避免额外的读取与载入时间。
由于指令长度固定,更能受益于执行线路管线化(pipeline)后所带来的效能提升。
处理器简化,晶体管数量少,易于提升运作时脉。比起同时脉的CISC处理器,耗电量较低。
RISC的缺点列举如下:
复杂指令需要由许多的小指令去完成,程序变得比较大,存储器也占用比较多,这在硬盘昂贵,常常使用磁带储存的时代来说,是个大缺点。
程序变长,代表着读取工作变得繁重,需要更多的时间将指令从存储器载入至处理器内。
这里也提供一个小小的概念,CISC是在RISC出现之后才出现的相对名词,并不是从一开始就有CISC、RISC这2种处理器架构。
2. CISC和RISC的区别
前者更加专注于高性能但同时高功耗的实现(x86),而后者则专注于小尺寸低功耗领域(ARM)。
实际上也有很多事情CISC更加合适,而另外一些事情则是RISC更加合适,比如在执行高密度的运算任务的时候CISC就更具备优势,而在执行简单重复劳动的时候RISC就能占到上风。
cpu内部组成的更多相关文章
- 整数运算:CPU内部只有加法运算
学汇编的一边儿去.我这里讲的是CPU进行计算的原理.首先我这里用MC的红石电路模拟了一个加法器:http://www.0xaa55.com/thread-313-1-1.htm首先加法器是怎么实现的呢 ...
- R0-R37它是Arm 寄存器,那是,CPU内部。和GPIO注册所有外设。换句话说,要是arm的cpu,它包含了其他芯片公司将有R0-R37,和GPIO寄存器只有一个特定的芯片。
R0-R37它是Arm 寄存器.那是,CPU内部.和GPIO注册所有外设. 换句话说,要是arm的cpu,它包含了其他芯片公司将有R0-R37,和GPIO有. 版权声明:本文博主原创文章.博客,未经同 ...
- CPU内部组成及原理
CPU,Central Processing Unit,翻译过来叫中央处理器.是一块超大规模的集成电路,是一台计算机的运算核心(Core)和控制核心( Control Unit).电脑中所有操作都由C ...
- 小甲鱼零基础汇编语言学习笔记第二章之寄存器(CPU工作原理,CPU内部通讯)
这一章主要介绍了CPU中的重要器件——寄存器,整个系列通篇是以8086CPU作为探讨对象,其它更高级的CPU都是在此基础之上进行的升级. 1.一个典型的CPU是由运算器.控制器.寄存器等器件组成, ...
- CPU内部结构域寄存器
CPU内部结构域寄存器 64位和32位系统区别: 寄存器是CPU内部最基本的存储单元. CPU对外是通过总线(地址.控制.数据)来和外部设备交互的,总线的宽度是8位,同时CPU的寄存器也是8位,那 ...
- [No0000167]CPU内部组成结构及指令执行过程
计算机的基本硬件系统由运算器.控制器.存储器和输入.输出设备五大部件组成.运算器和控制器等部件被集成在一起统称为中央处理单元(Central Processing Unit,CPU). CPU的功能 ...
- CPU内部结构图
原文地址:http://blog.csdn.net/jiuyueguang/article/details/9350793
- CPU的内部架构和工作原理 (转,相当不错)
http://blog.chinaunix.net/uid-23069658-id-3563960.html 一直以来,总以为CPU内部真是如当年学习<计算机组成原理>时书上所介绍的那样, ...
- CPU的内部架构和工作原理
一直以来,总以为CPU内部真是如当年学习<计算机组成原理>时书上所介绍的那样,是各种逻辑门器件的组合.当看到纳米技术时就想,真的可以把那些器件做的那么小么?直到看了Intel CPU制作流 ...
随机推荐
- 使用http-server 快速的开启一个静态服务器
在本地安装好了nodejs后我们可以使用一个命令快速开启一个服务器: 命令界面进入到根目录(存放静态网页的文件夹) //方式一 npx http-server //默认 8080端口 //方式二 np ...
- 教程10--hexo搭建
1.安装node.js 下载系统对应的node安装包一直下一步完成 2.安装git 参照git安装https://www.cnblogs.com/daxiang2008/p/10687616.html ...
- PCL库在Linux环境下的编译安装
PCL库在Linux环境下的编译安装 PCL库的源码库:https://github.com/PointCloudLibrary/pcl 下载完了之后解压下来 编译库的几个步骤 mkdir build ...
- 修饰符-final
Java是由C/C++泛生的,其也保留了C/C++的部分特性,如关键字.在C/C++中,关键字有着特殊的含义. final修饰符 在编程中,一般会存在一些变量或方法,程序员不让其数据"发生改 ...
- How to use Remote-SSH in Windows
对于不太会使用 Vim 的我来说,在服务器上用 Vim 去修改 nginx.conf 实在有点麻烦,比如没有高亮和格式化.正好想起前不久微软发布了远程开发工具包,其中一个就是今天要介绍的 Remote ...
- java后端工程师学习路线
根据自己的经历和见识梳理了一份java后端工程师的学习路线(不含安卓方向),难免有局限性和疏漏,请在评论区反馈意见和建议! 很明显的是我的学习路线过于庞大了[尴尬],你可以认为这些只是我的一家之言,具 ...
- PHP防止订单超卖,秒杀,限购,PHP高并发防止超卖代码实践
建表 1.订单表 CREATE TABLE `order` ( `id` int(11) NOT NULL AUTO_INCREMENT, `order_sn` varchar(45) NOT NUL ...
- centos7 安装 nginx-1.18.0 并设置开机自启动
一.到官网下载nginx Mainline version: nginx主力版本,为开发版 Stable version: 稳定版,在生产环境中选择此版本进行安装 Legacy versions: ...
- Linux命令 之 “救命稻草”
一.前言 虽然Linux操作系统图形界面已经退出,但由于大量的操作在终端操作比较快捷,所以,对linux命令的使用必不可少.在linux系统日常的学习和工作中,常常会出现有些命令忘记了或者该命令的参数 ...
- 2022 年了,还不了解 PWA ? 教你 VuePress 博客如何快速兼容 PWA
前言 在 <一篇带你用 VuePress + Github Pages 搭建博客>中,我们使用 VuePress 搭建了一个博客,最终的效果查看:TypeScript 中文文档. 本篇我们 ...