可以通过编程指定多种功能的寄存器
用于存放操作数(包括源操作数,目的操作数及中间结果)和各种地址信息(作为满足某种寻址方式所需的寄存器)等
为了便于控制,通用寄存器的字长和机器字长相等
如AX,BX,CX,DX,SP等,
又例如
程序状态字寄存器_百度百科 (baidu.com)
状态寄存器_百度百科 (baidu.com)
保留由算术逻辑运算指令或测试指令的**结果**而建立的各种状态信息,如
控制器是整个系统的指挥中枢,协调并控制计算机各个部件执行程序的指令序列,基本功能是
取指令
分析指令
执行指令
控制器可以区分存储单元中存放的是指令还是数据
在控制器的控制下,使得运算器,存储器和输入/输出设备等功能部件构成一个有机的整体,根据指令的要求指挥全机协调工作
控制器的基本功能是执行指令,每条指令的执行是由控制器发出的一组微操作实现的(操作控制信号序列)
控制器有硬布线控制器和微程序控制器两种类型
控制器由
用于指出下一条指令在主存中的存放地址
PC决定了程序的执行顺序(体现为控制器能够控制指令的执行顺序)
CPU根据PC的内容去主存中取指令
因程序中指令(通常)是顺序执行的,所以PC有自增功能
有些地方相当于IP(InstructionPointer)指令指针
PC是可见的,汇编程序员可以指定待执行指令地址:
PC的位数和MAR位数不一定是等长
PC的值会在指令周期内发生至少一次的修改
自增(默认行为)
转移到程序的某处(转移指令的行为)
执行转移指令时,需要判断转移是否成功
执行任何一条指令X时(从指令的几个机器周期考虑),取指周期结束后,PC执行一次默认行为(自增1)
如果这条指令X是转移指令
用于保存当前正在执行的那条指令
其长度取决于指令字长
不能够由通用寄存器取代
用于存放要访问的主存单元的地址
地址寄存器本身可以具有通用性
位数必须足够长,以满足最大的地址范围
区别于存储器的地址译码器(AD)位于存储器内
存储器的各个部分分布:
cpu内
存储器内
根据IR的内容(指令),PSW的内容(状态信息)及时序信号,产生控制整个计算机系统所需的各种控制信号,
其结构有组合逻辑型和存储逻辑型两种
控制器的工作原理是,根据指令操作码,指令的执行步骤(微命令序列)和条件信号来形成当前计算机各部件要用到的控制信号
CPU内部寄存器大致可分为两类:
一类是用户可见的寄存器,可对这类寄存器编程,如
另一类是用户不可见的寄存器,对用户是透明的,不可对这类寄存器编程,如
Memory management unit (MMU)
Main article: Memory management unit
Many microprocessors (in smartphones and desktop, laptop, server computers) have a memory management unit, translating logical addresses into physical RAM addresses, providing memory protection and paging abilities, useful for virtual memory. Simpler processors, especially microcontrollers, usually don’t include an MMU.
X B , X ∈ { A , C , D , I } XB,X\in\set{A,C,D,I} XB,X∈{A,C,D,I}
M:Memory(内存)
CU(Signal)
Ad(IR)
OP(IR)
任务是取指令并且分析指令
不同指令的取值操作可能是不同的
根据PC中的内容,从主存中取出指令代码存放到IR中
PC中存放的是指令(字)的地址
P C → M A R → A B → M PC\to{MAR}\to{AB}\to{M} PC→MAR→AB→M
C U ( R ) → C B → M CU(R)\to{CB}\to{M} CU(R)→CB→M
M → D B → M D R → I R M\to{DB}\to{MDR}\to{IR} M→DB→MDR→IR
C U ( C ) → P C + 1 ‾ CU(C)\to\underline{PC+1} CU(C)→PC+1
指令字长(IWS)等于存储字长的情况下,取值周期等于机器周期
指令字长却和机器字长没有关系!
机器字长
In computing, a word is the natural unit of data used by a particular processor design. A word is a fixed-sized datum handled as a unit by the instruction set or the hardware of the processor. The number of bits or digits[a] in a word (the word size, word width, or word length) is an important characteristic of any specific processor design or computer architecture.
The size of a word is reflected in many aspects of a computer’s structure and operation; the majority of the registers in a processor are usually word sized and the largest datum that can be transferred to and from the working memory in a single operation is a word in many (not all) architectures. The largest possible address size, used to designate a location in memory, is typically a hardware word (here, “hardware word” means the full-sized natural word of the processor, as opposed to any other definition used).
采用cpu内部总线的方式,特点是
不采用片内总线的数据通路特点
连接各部间的总线只有一条时,称为单总线方式
将所有寄存器的输入端和输出端都连接到一条公共通路上
对于单总线结构,ALU的两个输入端不能同时和(片内)总线向量,只有其中的一端( A L U i n ALU_{in} ALUin)
- Further information: Instruction set architecture § Instruction encoding
The instruction that the CPU fetches from memory determines what the CPU will do.
In the decode step, performed by binary decoder circuitry([ˈsɜrkɪtri]) known as the instruction decoder, the instruction is converted into signals that control other parts of the CPU.
The way in which the instruction is interpreted is defined by the CPU’s instruction set architecture (ISA).[e]
Often, one group of bits (that is, a “field”) within the instruction, called the opcode, indicates which operation is to be performed,
while the remaining fields usually provide supplemental information required for the operation, such as the operands.
Those operands may be specified as
In some CPU designs the instruction decoder is implemented as a hardwired, unchangeable binary decoder circuit. In others, a microprogram is used to translate instructions into sets of CPU configuration signals that are applied sequentially over multiple clock pulses.
In some cases the memory that stores the microprogram is rewritable, making it possible to change the way in which the CPU decodes instructions.
- 中央处理器 - 维基百科,自由的百科全书 (wikipedia.org)
CPU的主要运作原理,不论其外观,都是执行(储存于程序里的)一系列指令
在此讨论的是遵循普遍的冯·诺伊曼结构(von Neumann architecture)设计的设备
程序以一系列数字储存在计算机存储器中
差不多所有的冯·诺伊曼CPU的运作原理可分为
第一阶段,提取,从程序内存中检索指令(为数值或一系列数值)
由程序计数器指定程序存储器的位置,程序计数器保存供识别目前程序位置的数值
换言之,程序计数器记录了CPU在目前程序里的踪迹
提取指令之后,PC根据指令式长度增加存储器单元[iwordlength]
指令的提取常常必须从相对较慢的存储器查找,导致CPU等候指令的送入这个问题主要被论及在现代处理器的缓存和流水线架构(见下)
CPU根据从存储器提取到的指令来决定其执行行为
在解码阶段,指令被拆解为有意义的片段
在提取和解码阶段之后,接着进入执行阶段该阶段中,连接到各种能够进行所需运算的CPU部件例如,要求一个加法运算,算术逻辑单元将会连接到一组输入和一组输出输入提供了要相加的数值,而且在输出将含有总和结果ALU内含电路系统,以于输出端完成简单的普通运算和逻辑运算(比如加法和位操作)如果加法运算产生一个对该CPU处理而言过大的结果,在标志寄存器里,溢出标志可能会被设置(参见以下的数值精度探讨)
最终阶段,写回,以一定格式将执行阶段的结果简单的写回运算结果经常被写进CPU内部的寄存器,以供随后指令快速访问在其它案例中,运算结果可能写进速度较慢,如容量较大且较便宜的主存某些类型的指令会操作程序计数器,而不直接产生结果资料这些一般称作“跳转”并在程序中带来循环行为,条件性执行(透过条件跳转)和函数[jumps]许多指令也会改变标志寄存器的状态比特这些标志可用来影响程序行为,缘由于它们时常显出各种运算结果例如,以一个“比较”指令判断两个值的大小,根据比较结果在标志寄存器上设置一个数值这个标志可借由随后的跳转指令来决定程序动向
在执行指令并写回结果资料之后,程序计数器的值会递增,反复整个过程,下一个指令周期正常的提取下一个顺序指令如果完成的是跳转指令,程序计数器将会修改成跳转到的指令地址,且程序继续正常执行许多复杂的CPU可以一次提取多个指令,解码,并且同时执行这个部分一般涉及“经典RISC流水线”,那些实际上是在众多使用简单CPU的电子设备中快速普及(常称为微控制器)[riscpipeline]
1History
2Operation
3Structure and implementation
4Virtual CPUs
5Performance
6See also