寄存器用作处理器之内的本地数据存储区域,防止对数据进行代价巨大的内存访问。IA-32平台处理器提供了几个通用寄存器,用于在程序执行时保存数据和指针。按照指令指针寄存器的值从内存获取指令。控制寄存器控制处理器的行为。
于是我有问题了,对于IA-32平台的一系列处理器,一级缓存与二级缓存各有不同,那么上面所说的“IA-32平台处理器提供了几个通用寄存器,用于在程序执行时保存数据和指针。”这里只提供了“几个”寄存器,那么这个缓存跟通用寄存器有什么联系跟区别?,
寄存器是CPU内参与运算的单元。可以认为是CPU的变量的吧。
缓冲是内存,只是相对较快而已,不能直接参与运算过程。
CPU核心里的寄存器是一级缓存吗?
cpu和内存的关系二级缓存又是啥,一级缓存可分为一级指令缓存和一级数据缓存。一级指令缓存用于暂时存储并向CPU递送各类运算指令;一级数据缓存用于暂时存储并向CPU递送运算所需数据,这就是一级缓存的作用
内置的L1高速缓存的容量和结构对CPU的性能影响较大,不过高速缓冲存储器均由静态RAM组成,结构较复杂,在CPU管芯面积不能太大的情况下,L1级高速缓存的容量不可能做得太大。一般L1缓存的容量通常在20~256KB。
寄存器(Register)是CPU内部的元件,所以在寄存器之间的数据传送非常快。用途:1.可将寄存器内的数据执行算术及逻辑运算。2.存于寄存器内的地址可用来指向内存的某个位置,即寻址。3.可以用来读写数据到电脑的周边设备。
8个通用寄存器:
数据寄存器:AX,BX,CX,DX
指针寄存器:SP(堆栈指针),BP(基址指针)
变址寄存器:SI(原地址),DI(目的地址)
1、通用寄存器
数据寄存器,指针寄存器和变址寄存器统称为通用寄存器。这些寄存器除了各自专门用途外,它们均可用于传送和暂存数据,可以保存算术逻辑运算中的操作数和运算结果。
(1)数据寄存器
数据寄存器主要用来保存操作数或运算结果等信息,它们的存在节省了为存取操作数所需占用总线和访问存储器的时间。
(2)变址和指针寄存器
变址和指针寄存器主要用于存放某个存储单元地址的偏移,或某组存储单元地址的偏移,即作为存储器(短)指针使用。作为通用寄存器,它们可以保存16位算术逻辑运算中的操作数和运算结果,有时运算结果就是需要的存储单元地址的偏移。
2、控制寄存器(2个)
(1)指令指针寄存器
8086/8088CPU中的指令指针IP也是16位的。
指令指针IP给出接着要执行的指令在代码段中的偏移。
(2)标志寄存器
8086/8088CPU中有一个16位的标志寄存器,包含了9个标志,主要用于反映处理器的状态和运算结果的某些特征。6个条件标志+3个方向标志
3、段寄存器(4个)
8086/8088CPU依赖其内部的四个段寄存器实现寻址1M字节物理地址空间。
8086/8088把1M字节地址空间分成若干逻辑段,当前使用的段值存放在段寄存器中。
由于8086/8088有这四个段寄存器,所以有四个当前使用段可以直接存取,这四个当前段分别称为代码段,数据段,堆栈段和附加段。
(1)代码段
(2)数据段
(3)堆栈段
(4)附加段
···
···