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制作流 ...
随机推荐
- Service层抽象规范
Service层是整个web系统的负责业务逻辑一块,最有必要实现抽象,Service层要达到复用性,低耦合性.那么该如何抽象呢?一般遵循以下原则 1.单一职责(SRP) 2.开放-封闭(OCP) 3. ...
- Java基础--集合解析-ArrayList
1.ArrayList中添加,获取,删除元素: 2.ArrayList中是否包含某个元素: 3.ArrayList中根据索引将元素数值改变(替换): 4.ArrayList中查看(判断)元素的索引: ...
- Python:读取txt中按列分布的数据,并将结果保存在Excel文件中 && 保存每一行的元素为list
import xlwt import os def write_excel(words,filename): #写入Excel的函数,words是数据,filename是文件名 wb=xlwt.Wor ...
- MySQL第三讲
昨日内容回顾 公钥私钥 数据库存储引擎 MyISAM 是5.5版本之前默认的存储引擎 存取数据的速度较快.但是安全性偏差 三个文件 结构.索引.数据 InnoDB 5.5版本及之后默认的存储引擎 存取 ...
- JZ-032-把数组排成最小的数
把数组排成最小的数 题目描述 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为3213 ...
- go RWMutex 的实现
Overview go 里面的 rwlock 是 write preferred 的,可以避免写锁饥饿. 读锁和写锁按照先来后到的规则持有锁,一旦有协程持有了写锁,后面的协程只能在写锁被释放后才能得到 ...
- php 手动创建分页
- laravel 框架 下拉分页
<!doctype html><html lang="en"><head> <meta charset="UTF-8" ...
- python程序的三种执行结构
一.分支结构:根据条件判断的真假去执行不同分支对应的子代码 1.1 if判定 完整语法如下: if 条件1: #条件可以是任意表达式,如果条件1为True,则依次执行代码. 代码1 代码2 ... e ...
- SQLMAP-Tamper之较为通用的双写绕过
前言 21年省决赛的SQLITE注入就是用的双写绕过,当时是手搓代码打的,这几天想起来了,寻思着写个tamper试试. 一开始以为很简单,后来才发现有很多要注意的点,折磨了挺久. 等弄完才明白为什么s ...