计算机组成原理-指令执行过程
了解指令执行过程之前,需要了解指令的一些基本概念。 指令周期指令周期是CPU从主存中每取出并执行一条指令所需的全部时间。 指令周期常常用若干机器周期来表示,机器周期又叫CPU周期。 而一个机器周期又包含若干时钟周期(也成为节拍、T周期或CPU时钟周期,它是CPU操作的最基本单位) 由上图可得每个指令周期内机器周期数可以不等,每个机器周期内的节拍数也可以不等。 指令工作周期总共可以区分为四个阶段:取值周期、间址周期、执行周期和中断周期,而为了区别不同的工作周期,在CPU内设置4个标志触发器FE(对应取值)、IND(对应间址)、EX(对应执行)、INT(对应中断)来区别为哪个工作周期。 指令周期的数据流取指周期若想进行取指,首先PC会想MAR发送当前指令地址,然后CU会发出控制信号,经控制总线传到主存,同时MAR中地址信息也会通过地址总线发送到主存中,此时主存中所读出的数据会通过数据总线传到MDR中,最后将MDR中获取到的数据放到IR中,就完成了一次取指操作。 间指周期有些指令取完后会进入间指周期,此时IR中已经放着数据的地址,要再通过取指操作来进行间接寻址。 指令执行方案单...
计算机组成原理-CPU的功能和基本结构
CPU的功能中央处理器CPU由控制器和运算器组成。 CPU的具体功能包括: 指令控制。完成取指令、分析指令和执行指令的操作,即程序的顺序控制。 操作控制。一条指令的功能往往由若干操作信号的组合来实现。CPU管理并产生由内存取出的每条指令的操作信号,把各种操作信号送往相应的部件,从而控制这些部件按指令的要求尽心动作。 时间控制。对各种操作加以时间上的控制。 数据加工。对数据进行算术和逻辑运算。 中断处理。对计算机运行过程中出现的异常情况和特殊请求进行处理。 CPU的基本结构CPU主要由运算器和控制器组成, 运算器主要负责对数据的加工,进行逻辑和算术运算等操作。 控制器负责协调并控制计算机各部件执行指令的顺序等操作,包括取指令、分析指令、中断等操作。 运算器的基本结构运算器由算术逻辑单元(ALU)、通用寄存器组、暂存寄存器、累加寄存器(ACC)、程序状态寄存器(PSW)、移位器、计数器(CT)等所组成。 算术逻辑单元主要功能是进行算术/逻辑运算。 通用寄存器如AX、BX、CD、SP(堆栈指针,用于指示栈顶的地址)等,用于存放操作数(包括源操作数、目的操作数及中间结...
计算机组成原理-CISC和RISC的基本概念
复杂指令系统计算机(CISC, Complex Instruction Set Computer)设计思路:一条指令完成一个复杂的基本功能,例,x86架构,主要用于笔记本,台式机等。 CISC的主要特点: 指令系统复杂庞大,指令数目一般200条以上。 指令长度不固定。 可以访存的指令不受限制。 各种指令使用频率相差大。 各种指令指令时间相差大。 控制器大多数采用微程序控制。 难以优化编译生成高效的目标代码程序。 精简指令系统计算机(RISC, Reduced Instruction Set Computer)设计思路:一条指令完成一个基本“动作”;多条指令组合完成一个复杂的基本功能,例,ARM架构,主要用于手机、平板等。 RISC的主要特点: 选取使用频率最高的一些简单指令,复杂指令功能由简单指令的组合来实现。 指令长度固定,指令格式种类少。 只有Load/Store(取数,存数)指令能访存,其余指令的操作都在寄存器之间进行。 CPU中通用寄存器数量多。 RISC一定采用指令流水线技术,大部分指令在一个时钟周期内完成。 以硬布线控制为主。 重视编译优化工作,以减少程...
计算机组成原理-程序的机器代码表示
x86汇编语言指令基础x86汇编语言是指所有结尾为86型号的cpu所能解析的语言。 指令的格式为:操作码 + 地址码。 以mov操作(mov指令功能,将源操作数s复制到目的操作数d所指的位置)为例: mov eax,ebx:意思是将寄存器ebx的值复制到寄存器eax中。 mov eax,5: 意思是将立即数5复制到寄存器eax中。 mov eax, dword ptr [af996h]:意思是将内存地址 af996h所指的32bit值复制到寄存器eax中。 mov byte ptr [af996h], 5:意思是将立即数5复制到内存地址 af996h所指的一字节中。 内存读写长度的指明: dword ptr——双字, 32bit word ptr——单字,16bit byte ptr——字节,8bit x86架构相关寄存器 若通用寄存器去掉开头的英文字母E,即AX,BX,CX,DX,此时大小为低16bit。 若未指明主存读写长度时,默认32bit。 例: mov eax, [ebx] 等价于 mov eax, dword ptr [ebx] 常用指令以下的s均为源操作数(...
计算机组成原理-指令系统
指令的基本格式一条指令就是机器语言的一个语句,是一组有意义的二进制代码。一条指令通常包括操作码字段和地址码字段两部分: 零地址指令只给出操作码OP,没有显式地址,这种地址有两种可能: 不需要操作数的指令,如空操作指令、停机指令、关中断指令等。 零地址的运算类指令仅用在堆栈计算机(例如后缀表达式)中。 一地址指令 只有目的操作数的单操作数指令,按$A_1$地址读取操作数,进行OP操作后,结果存回原地址。 指令含义:$OP(A_1)->A_1$ 如操作码含义是加1、减1、求反、求补等。 隐含约定目的地址的双操作数指令, 例ACC, 指令函数:(ACC)OP$(A_1)$->ACC 若指令字长为32位,操作码占8位,1个地址码字段占24位,则指令操作数的直接寻址范围位$2^{24}=16M$。 二地址指令 常用于两个操作数的算数运算、逻辑运算相关指令 指令含义:$(A_1)OP(A_2)->A_1$ 三地址指令 常用于序列两个操作数的算数运算、逻辑运算相关指令,结果用地址保存。 指令含义:$(A_1)OP(A_2)->A_3$...
计算机组成原理-虚拟存储器
虚拟存储器的基本概念虚拟存储器就是基于主存和辅存(类似于cache在CPU和主存一样),在通过系统软件和硬件实现了主存的速度和辅存的容量。主要是为了解决主存容量不足的问题。 虚拟存储器会将主存或辅存的地址空间统一编址,这些地址称为虚地址或逻辑地址,虚地址对应的存储空间称为虚拟空间或程序空间。实际的主存单元地址称为实地址或物理地址。 虚地址=虚存页号+页内字地址 实地址=主存页号+页内字地址 辅存地址=磁盘号+盘面号+磁道号+扇区号 虚拟存储器的地址空间如下图所示。 CPU使用虚地址时会通过辅助硬件来找出虚地址和实地址之间的对应关系。 若虚地址对应存储单元内容已经在主存中,可以通过地址变换使CPU能直接访问主存指示的实际单元; 若虚地址对应存储单元内容不在主存中,则要把包含的字一页或一段调入主存后再由CPU访问。 若主存已满,则采用替换算法置换主存中的交换块(即页面)。 虚拟存储机制采用的使全相联映射,每个虚页面可以存放到对应主存区域的任何一个空闲页位置。此外,当进行写操作时,不能每次写操作都同时写回磁盘,因而,在处理一致性问题采用回写法。 ...
计算机组成原理-高速缓冲存储器
Cache的基本原理目前Cache被集成在CPU内部,且用SRAM实现,速度快,成本高 当cache要运行时,会将主存的存储空间进行“分块”,cache与主存之间的数据交换以cache块为单位。 例:设每1KB为一块,主存共4MB,cache为8KB,主存与cache间以“块”为单位进行数据交换。 4MB=$2^{22}bit$,1K=$2^{10}$,因此主存可以被分为$2^{12}=4096$块,cache分为8块。 然后因主存的地址共22位,所以可以将12位用来表示块号,剩下10位表示块内地址。 局部性原理 空间局部性:在最近的未来要用到的信息(指令和数据),很可能与现在正在使用的信息在存储空间上是邻近的 时间局部性:在最近的未来要用到的信息,很可能是现在正在使用的信息(指一段代码可能在邻近时间很快再被调用)。 Cache就是用局部性原理,把程序中正在使用的部分数据存在cache中,使CPU的访存操作大多数针对cache进行,从而提高程序的执行速度。 例: //程序A:按行访问 int sumarrayrows(int a[M][N...
计算机组成原理-外部存储器
计算机的外存储器又称为辅助存储器,目前主要使用磁表面存储器。 所谓“磁表面存储”,是指把某些磁性材料薄薄地涂在金属铝或塑料表面上作为载磁体来存储信息。磁盘存储器、磁带存储器和磁鼓存储器均属于磁表面存储器。 磁盘存储器磁盘存储器的优点有: 存储容量大,位价格低; 记录介质可重复使用; 记录信息可长期保存而不丢失,甚至可脱机存档; 非破坏性读出,读出时不需要再生 缺点:读取速度慢,机械结构复杂,对工作环境要求较高。 外存储器既可以作为输入设备也可以作为输出设备。 磁盘存储器的组成磁盘存储器是由磁盘驱动器、磁盘控制器和盘片组成。 磁盘驱动器。核心部件是磁头组件和盘片组件,温彻斯特盘是一种可移动磁头固定盘片的硬件存储器。 磁盘控制器。硬盘存储器和主机的接口,主流的标准有IDE、SCSI、SATA等。 磁盘的存储区域。一块硬盘含有若干纪录面,每个记录面划分为若干磁道,而每条磁道又划分为若干扇区,扇区(也称块),是磁盘读写的最小单位,即磁盘按块存取。 磁头数(Heads),即记录面数,表示硬盘总共又多少个磁头。磁头用于读取/写入盘片上记录面的信息,一个记录面对应一个磁...
数电-触发器
触发器的基本特点和作用Flip-Flop,简称为FF,又称双稳态触发器。 触发器基本特点 具有两个能自保持的稳定状态(稳态) 通常用输出端Q的状态来表示触发器的状态。 如$Q=0、\overline{Q}=1$时,表示0状态;$Q=1、\overline{Q}=0$时,表示1状态 在输入信号作用下,触发器的两个稳定状态可相互转换(状态的翻转)。 输入信号消失后,新状态可长期保持下来,具有记忆功能,可存储二进制信息。、 触发器的作用触发器和门电路是构成数字电路的基本单元。 触发器具有记忆功能,由它构成的电路在某时刻的输出不仅取决于该时刻的输入,还与电路原来状态有关(时序逻辑电路)。而门电路无记忆功能,由它构成的电路在某时刻的输出完全取决于该时刻的输入,与电路原来状态无关(组合逻辑电路)。 基本触发器由与非门构成的基本RS触发器 图中$\overline{S_D}$ 为置1端,也称置位端,$\overline{R_D}$为置0端,也称复位端。 $Q=0、\overline{Q}=1$时,表示触发器的0状态;$...
主存储器与CPU的连接
连接原理 主存储器通过数据总线、地址总线与控制总线与CPU连接。 地址总线的位数与工作频率的乘积正比于数据传输率。(数据总线的宽度=存储字长) 地址总线的位数决定了可寻址的最大内存空间。 控制总线(读/写)指出总线周期的类型和本次输入/输出操作完成的时刻。 上图是一块8$\times$8的单块存储芯片,单个芯片的容量不可能很大,往往需要通过拓展技术来将多个芯片集成在内存条上,若想扩展主存字数则需通过字扩展,当数据总线宽度 > 存储芯片字长,则需要进行位扩展。 现在的计算机MDR(主存数据寄存器)和MAR(主存地址寄存器)都是集成在CPU中 主存容量的拓展由于单个存储芯片容量优先,因此需要在字或位两方面进行扩充才能满足实际存储器的容量要求。 位拓展法CPU的数据线数与存储芯片的数据位数不一定相等,因此必须对存储芯片扩位,使其数据位数与CPU的数据线数相等。 例: 上图用8K$\times$1位的存储芯片与CPU连接$8K=2^{13}$,所以共需要13根地址总线和1根数据总线,显然CPU数据利用的不够充分,因此可以通过增...
计算机组成原理-主存储器
主存储器的基本组成基本的半导体元件及原理存储器基本是由半导体元件组成,半导体可以根据供电的大小来输出高电平或低电平。 一个存储元包括MOS管(半导体,MOS管可以理解为一种电控开关,当输入电压到达某个阈值就可以接通)和电容,根据接入的高低电平由半导体来控制,假设电容中有保存电荷导致MOS管变成1,以至于可以接通,此时外部就可以接受到高电平信号1,若电容中没有保存电荷,那么MOS管无法接通外部就会接受到低电平0。以此就可以构成一个存储元。 而若通过一条总线来连接所有存储元,就可以组成一个存储单元(也称为存储字),当总线接入一个高电平就会让所有存储元的MOS管都导通,从而电容中存储的0或1就会通过绿色的线进行导出。 存储器芯片的基本原理存储器为了实现读写,需要通过译码器来进行统一的读写操作,会有地址总线来输入要读取那一部分的存储单元,然后通过译码器来进行相应的读取,再通过控制电路来控制译码器是否工作。 将上方图各个功能进行封装则有下图: 就有存储器的基本框架,地址线来接受外界的地址信息,通过数据线来进行数据的传输,片选线来用于读取某一块特定的存储芯片(一般有多块存储芯...
计算机组成原理-存储器概述
存储器的分类存储器种类繁多,可从不同角度对存储器进行分类。 按在计算机中的作用(层次)分类 主存储器。简称主存,又称内存储器(内存),用来存放计算机运行期间所需的程序和数据,CPU可以直接随机地对其进行访问,也可以和Cache及辅存交换数据。特点是容量较小、存取速度较快,每位价格较高。 辅助存储器。简称辅存,用来存放需要永久性保存的信息。辅存的内容需要调入主存后才能被CPU访问。特点是容量大、存取速度较慢、单位成本低。 高速缓冲存储器。简称Cache,位于主存和CPU之间,用来存放CPU经常使用的指令和数据,以便CPU能高速地访问它们。Cache的存取速度可与CPU速度相匹配,但存储容量小、价格高。现代计算机通常集成在CPU中。 按存储介质分类按存储介质,存储器可分为磁表面(磁盘、磁带)、磁芯存储器、半导体存储器(MOS型存储器、双极型存储器,主存和Cache也属于这部分)和光存储器(光盘)。 按存取方式分类 随机存储器(RAM,Random Access Memory)。存储器的任何一个存储单元都可以随机存取,而且存取时间与存储单元的物理地址无关。优点是读写方便、...