cpu
所谓的CPU只需要记住一点就是:
CPU所负责的就是解释和运行最终转换成机器语言的程序内容
cpu结构
重点关注寄存器
运算器
从字面上看,就是跟机器的 运算有关,简单来说就是负责运算从内存读取到寄存器中的数据,可以看作一个数据加工厂,就是对寄存器中的数据做运算给,这些运算包含基本的算数和逻辑运算。
然后对于运算器来说,需要了解几个重要角色:
算数逻辑单元(ALU)
这个是运算器中重要的组成,主要负责的就是对数据的处理,从而实现对数据的算术和逻辑运算。
累计寄存器(AC)
通常叫累计器,是一个通用寄存器,作用在于==》当ALU处理完算术运算或者逻辑运算之后,会得到一个结果,这个结果就存储在AC中。
数据缓冲寄存器(DR)
这个DR也是存放数据的,存放的主要是从内存读取过的数据,会暂时存放在这个DR中,这里就相当于内存和CPU之间做数据传送的一个中转站,为什么会有DR的存在呢?所有的数据到CPU和内存的速度是有很大差别的,中间引入一个DR,一定程度上起到了速度上的缓冲作用,不至于速度相差太大。
状态条件寄存器(PSW)
首先寄存器还是保存数据的,所有PSW自然也是保存某一类数据的,他保存的主要是由算数指令和逻辑指令运行或者测试的结果建立的各种条件码内容,一般分为状态标志和控制标志。
以上这些都是运算器的核心
控制器
作用是控制整个CPU的工作,对于控制器,一般要能够保证陈旭的正确执行以及能够处理异常事件。
同样的,对于控制器,需要关注一下几点:
指令寄存器(IR)
寄存器是保存东西的,指令寄存器自然就是保存指令的,也就是:CPU要执行一条,命令,需要先把指令从内存上读取,然后放在上面说到的DR中,之后再从DR放到IR里面,接着会有一个叫做指令译码器的,根据IR的内容生成很多的微操作指令,从而去控制其他部件以完成相应的功能。
程序计数器(PC)
这个学过Java内存结构的都会有所了解,他保存着下一条要执行的指令,也就是说当一个程序要执行的时候,会把这个程序的起始地址存到这个PC中,如果这个指令被执行了,CPU会自动修改,使的PC存放下一条要执行的指令。
地址寄存器(AR)
这个就是保存着CPU访问内存上的那一块内存的内存地址,保存这个的目的是,因为cpu和内存的速度相差较大,所以cpu要保存着正在访问的那块内存地址,直到内存的读写操作完成,不然,找不到之前访问的是哪一个内存单元
指令译码器(ID)
对指令做分析
CPU就是寄存器的集合体
寄存器
累计寄存器:存储执行运算的数据和运算后的数据
标志寄存器
种类 | 功能 |
---|---|
累计寄存器 | 存储执行运算的数据和运算后的数据 |
标志寄存器 | 存储运算处理后的cpu的状态 |
程序寄存器 | 存储下一条指令所在内存的地址 |
基址寄存器 | 存储数据内存的地址 |
变址寄存器 | 存储基址寄存器的相对地址 |
通用寄存器 | 存储任意数据 |
指令寄存器 | 存储指令。CPU内部使用,无法通过过程序对该寄存器进行读写操作 |
栈寄存器 | 存储栈区域的起始地址 |