计算机组成原理-指令系统
指令的基本格式一条指令就是机器语言的一个语句,是一组有意义的二进制代码。一条指令通常包括操作码字段和地址码字段两部分: 零地址指令只给出操作码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)。存储器的任何一个存储单元都可以随机存取,而且存取时间与存储单元的物理地址无关。优点是读写方便、...
电路-电路定理
叠加定理在线性电路中,任一支路的电流(或电压)可以看成是电路中每一个独立电源单独作用于电路时,在该支路产生的电流(或电压)的代数和。 结点电压和支路电流均为各电源的一次函数,均可看成各独立电源单独作用时,产生的响应之叠加。 使用叠加定理注意事项: 叠加定理只适用于线性电路。 一个电源作用,其余电源为零。电压源为零——短路,电流源为零——开路。 功率不能叠加。 u ,i 叠加时要注意各分量的参考方向。 含受控源(线性)电路亦可用叠加,但受控源应始终保留。 例:求电压源的电流及功率 将上方电路进行拆分,拆分成两个简单电路的单独作用: 显然左边的图为电桥平衡状态,此时$I(1)=0$,右图在4Ω和2Ω间的结点列写KCL得$I(2)=70/14+70/7=15A$。所以原电路$I=I(1)+I(2)=15A,P_发=15\times 70=1050W$ 齐性原理线性电路中,所有激励(独立源)都增大(或减少)同样的倍数,则电路中响应(电压或电流)也增大(或减小)同样的倍数。 注: ...
计算机组成原理-浮点数的表示与运算
浮点数的表示由于定点数可表示的数字范围有限,而又不能无限制的增加数据的长度,就得考虑在位数不变的情况下增加数据的表示范围,以此拓展了浮点数。例,用定点数表示电子的质量($9 \times 10^{-28}g$)。 浮点数的表示格式通常,浮点数表示为$$N=(-1)^S\times M \times R^E$$其中,S取值0或1,用来决定浮点数的符号;M是一个二进制定点小数,称为尾数,一般用定点原码小数表示,称为阶码或指数,用移码表示。R是基数(隐含),可以约定为2、4、16,基本为2等。 尾数的位数反映浮点数的精度。 例:阶码、尾数均用补码表示,求a、b的真值 $a=0,01;1.1001$,$b=0,10;0.01001$(阶码,前为符号位,尾数.前为符号位) a: 阶码0,01 对应真值 +1 尾数 1.1001 对应原码 1.0111,对应真值为 -0.0111,所以a的真值$=2^1\times (-0.0111)=-0.111$ b: 阶码0,10 对应真值 +2 尾数 0.01001 对应真值 +0.0...
电路-电阻电路的一般分析
网孔电流法网孔电流法是以沿网孔连续流动的假想电流为未知量列写电路方程分析电路的方法。仅适用于平面电路。 基本思想:为减少未知量的个数,假想每个回路种有一个回路电流。各支路电流可用回路电流的线性组合表示,来求得电路的解。 列写的方程:网孔电流在网孔中是闭合的,对每个相关节点均流进一次,流出一次,所以KCL自动满足。因此网孔电流法的方程个数即为网孔数。网孔方程是根据KVL进行列写。 例: 假想图1-1两个回路$l_1,l_2$的电流分别为$i_{l1},i_{l2}$,支路电流可表示为:$$i_1=i_{l1}\qquad i_3=i_{l2}\i_2=i_{l2} - i_{l1}$$ 方程可列写为:$$\begin{cases}\ l_1:R_1i_{l1}+R_2(i_{l1}-i_{l2})+u_{S2}-u_{S1}=0\\ l_2:R_2(i_{l2}-i_{l1})+R_3i_{l2}-u_{S2}=0\ \end{cases}$$整理得:$$\begin{cases}\ l_1:(R_1+R_2)i_{l1}...
计算机组成原理-数据的表示与运算
数制与编码进位计数制及其相互转换总所周知,计算机系统内部只能使用二进制进行编码,所以进制间的转换尤为重要。 进位计数法常用的进位计数法由十进制、二进制、八进制、十六进制等。 二进制:二进制只有0和1两种数字符号,计数“逢二进一”,它的任意数位权位$2^i$,i位所在位数。 八进制:八进制有0~7八种数字符号,计数“逢八进一”,它的任意数位权位$8^i$,i位所在位数,二进制的3位数码编为一组解释一位八进制数码。 八进制:八进制有0~9、A、B、C、D、E、F十六种符号,计数“逢十六进一”,它的任意数位权位$16^i$,i位所在位数,二进制的4位数码编为一组解释一位十六进制数码。 各种进制的常见书写方式: 二进制: $(1010)_2=1010B$ 八进制:$(1652)_8$ 十六进制:$(1652)_{16}=1652H=0x1652$ 十进制:$(1652)_{10}=1652D$ 不同进制数间的相互转换 二进制转换八进制数和十六进制数 在进行转换时,应以小数点为界。3位(4位)二进制转为1位八进制(十六进制),若整数不足...
