计算机组成原理
计算机概论
计算机软硬件概念
1.软硬件概念:计算机系统由软件和硬件俩大部分组成,如下;
- 硬件:是计算机的实体部分;
- 软件:由各类特殊功能的程序组成,通常存放在计算机的主存或者辅存中,通常分为系统软件和应用软件;
计算机的基本组成
1.冯·诺依曼计算机:1945年提出“存储程序”概念设计的计算机,是对图灵机(图灵机)概念模型的实现和升级,冯·诺依曼计算机是以运算器为中心的,现代的计算机已经转化为以存储器为中心,如下图;
2.计算机组成:以下五部分组成
- 输入设备:将程序和数据以机器所能识别和接受的信息形式输入到计算机内(键盘、鼠标、扫描仪、语音输入设备、手写笔、触摸屏、数码摄像设备等);
- 输出设备:将计算机处理的结果以人们所能接受的信息形式或其它系统所要求的信息形式输出(显示器、打印机、绘图仪 、音箱);
- 存储器:用于存放程序和数据。存储器是计算机存储信息的核心,一般分为如下主存和外存。
- 主存储器(主存,内存):CPU能直接访问,主存分为若干个存储单元,每个单元都有唯一的地址编码,通常是按字节或字节的整数倍编码。存储器总是按地址访问的;
- 辅助存储器(外存,辅存):CPU不能直接访问,辅存中的信息必须调入主存后,才能为CPU所使用,辅存速度较慢,但容量大,用于存放CPU暂时不用的程序和数据(软盘、硬盘、光盘、磁带机);
- 运算器:用于完成算术和逻辑运算,核心是算术逻辑部件(ALU),是CPU的核心部件,还有若干寄存器,用于存放操作数、中间结果或最终结果;
- 控制器:控制器是整个计算机的指挥中心,通过实现编好的程序用于控制整个计算机系统中的各部件有条不紊地进行工作,其控制部件(CU)是CPU的核心部件,运作如下。
- 程序计数器PC(Program Counter):存放将要执行的指令的地址(指向存储单元),具有自增功能;
- 指令寄存器IR( Instruction Register): 存放当前正在执行的指令;
- 指令译码器ID(Instruction Decoder):分析指令;
- 时序部件(Sequencer):分析指令时序;
- 控制信号发生器:运作;
3.计算机硬件技术指标:
- 机器字长:数据的位数,一般和CPU寄存器有关;
- 存储容量:存储器的容量;
- 运算速度:计算机运行速度;
计算计信息和运算
机器数的表示
机器数和真值
1.机器数:如下分类
- 定义:计算机中的数据通常存放在寄存器中,通常称寄存器的位数为机器字长,而存储的数据叫机器数;
- 格式:符号和数值均二进制化,小数点隐含在某一固定位置上,不占存储空间,位数受机器字长的限制。超过机器字长的数值位要舍去;
- 分类:俩种情况
- 无符号数:机器字长的所有二进制均表示数值部分;
- 带符号数:第1个二进制位为符号位,其余为数值部分 ;
2.真值:机器数所表示的实际数值,例:8位机器数为11011011分以下情况
- 若为无符号整数,其真值为 219;
- 若为带符号整数,且采用原码表示,则最高位为符号, 1 1011011 表示二进制整数 -1011011,其真值为 -91;
原码表示法
1.原码的定义:符号位0表示正数,1表示负数,数值位即真值的绝对值,约定符号位用逗号隔开,小数位用小数点隔开,如下整数和小数的定义式;
- 整数原码定义式:其中x为真值,n为整数位位数,
- $ {[x]}_{原} $ = 0,x 当$ 2^n $>x>=0时 (就是等于真值,正数前面加上符号0)
- $ {[x]}_{原} $ = $2^n$-x 当0>=x>$-2^n$时(就是等于真值,负数前面加上符号1)
- 小数原码定义式:其中x为真值
- $ {[x]}_{原} $ = x 当1>x>=0时(就是等于真值,正数前面加上符号0)
- $ {[x]}_{原} $ = 1-x 当0>=x>-1时(就是等于真值,负数前面加上符号1)
- 0的表示:
- 纯小数 :[+0]原=0.00…0,[-0]原=1.00…0
- 纯整数:[+0]原=00…0,[-0]原=10…0
2.原码的优缺点:
- 优点:
- 表示简单;
- 和真值转换容易;
- 缺点:
- 0有俩种表示,给使用带来不便;
- 原码表示加减法运算很复杂;
补码表示法
1.补数的说明:能找到一个模,让一个数对于模的补数就是正数本身(例如mod10中 -4=6),如下结论
- 让它的负数可用它的正补数来代替,这个正补数可以用模加上负数本身求得;
- 一个正数和一个负数互为补数时,它们的绝对相加即为模数;
- 正数的补数即为正数本身;
2.补码的定义:如下整数和小数的定义式
- 整数补码定义式:其中x为真值,n为整数位位数
- $ {[x]}_{补} $ = 0,x 当$ 2^n $>x>=0时 (正数就是等于原码)
- $ {[x]}_{补} $ = $2^n+1$+x 当0>=x>$-2^n$时 (根据x的原码,每位取反,末位加一)
小数补码定义式:其中x为真值 - $ {[x]}_{补} $ = x 当1>x>=0时 (正数就是等于原码)
- $ {[x]}_{补} $ = 2+x 当0>=x>-1时 (根据x的原码,每位取反,末位加一)
- 0的表示:
- 纯小数 :[+0]补=[-0]补=0.00…0
- 纯整数:[+0]补=[-0]补=0,00…0
3.补码的优缺点:
- 优点:
- 可以只设加法器,将减法转成加法的形式;
- 只表示一个0 ;
- 缺点:
- 比原码多表示一个-1;
反码表示法
1.反码说明:反码通常用来作为原码和反码互转的中间过渡;
2.反码定义:如下整数和小数的定义式
- 整数补码定义式:其中x为真值,n为整数位位数
- $ {[x]}_{反} $ = 0,x 当$ 2^n $>x>=0时 (正数就是等于原码)
- $ {[x]}_{反} $ = ($2^n+1$-1)+x 当0>=x>$ -2^n $时 (根据x的原码,每位取反)
- 小数补码定义式:其中x为真值
- $ {[x]}_{反} $ = x 当1>x>=0时 (正数就是等于原码)
- $ {[x]}_{反} $ = (2-$2^-n$)+x 当0>=x>-1时 (根据x的原码,每位取反)
- 0的表示:
- 纯小数 :[+0]反=0.00…0,[-0]反=1.00…0
- 纯整数:[+0]反=00…0,[-0]反=10…0
移码表示法
1.移码定义:移码表示把真值x在数轴上正向平移1(纯小数)或2n(纯整数),所以移码也称为增码、余码,如下定义式,其中x为真值,n为整数位位数
- 移码定义式:${[x]}_{移}$ = $ 2^n $+x 当$2^n$>x>=$-2^n$时 (和[x]补互转,符号位取反,数值位不变);
四种机器数总结
1.最高位都表示符号位。原码、反码和补码的符号位均是0表示+,1表示-,移码相反。
2.移码、补码和反码的符号位可和数值位一起参加运算;原码的符号位必须分开进行处理。
3.对于正数,除移码外,其他码值都等于真值本身,而对于负数各有不同的表示。
4.对于真值0,原码和反码各有两种不同的表示形式,而补码和移码只有唯一的一种表示形式。
5.原码、反码表示的范围是一样的;补码、移码表示的范围是一样的,且比前二者能多表示一个最负的数:$-2^n$(纯整数)或-1(纯小数)。
数的定点表示和浮点表示
科学计数法
1.前置知识-科学计数法说明:任何一个数都可以表示为$ {(N)}_R=M\times R^e $,详细如下
- M:尾数。代表数N的有效数字。计算机中一般表示为纯小数;
- R:尾数基值。计算机中常用的R可取2、8、16等;
- e:阶码。代表数N的小数点的实际位置。一般表示为纯整数;
- 根据小数点的位置是否固定,计算机中的数据格式又分为两种:定点表示和浮点表示。
定点表示
1.定点表示说明:约定计算机中所有数据的小数点位置是固定不变的,即阶码e的取值固定不变;
2.定点数说明:采用定点表示的数据,机器数确定后,e也就确定了,不能更改,整数和小数不能共存,当运算结果超出机器数所能表示的数据范围时,会出现溢出;
- 定点整数:小数点位于数值位后面,表示范围-(1-$2^-n$)~(1-$2^-n$);
- 定点小数:小数点位于数符和第一数值位之间,表示范围-($2^n$-1)~($2^n$-1);
3.定点数缺点:
- 比例因子难以选择,容易溢出或影响精度
- 表示的数值范围比较小
- 存储单元利用率低,当存储特别大或者特别小的数时,可能大部分尾数都是0被浪费掉了;
浮点表示
1.浮点表示说明:指小数点位置可变的数据表示形式,即e值是可变的;
2.浮点数说明:典型的浮点数格式由阶码e和尾数M组成,一般被表示成$ {(N)}_R=M\times R^e $;
- 基数R:用隐含方法表示,数学中一般由数位权决定,二进制通常取R=2;
- 阶码e:阶码的二进制数值位决定了表示数的小数点实际位置,也就是数的大小,可用补码或移码表示;
- 尾数M:表示数的有效数字,符号代表浮点数的正负,其位数反映了浮点数的精度,可用补码或原码表示;
3.浮点数的规格化:尾数最高位为1的数为规格化数,为了提高浮点数的精度,其尾数必须是规格化数;
- 左规:尾数每左移一位,阶码减一;
- 右规:同上相反;
4.浮点数的表示范围:阶码用移码,尾数用补码
5.IEEE754浮点数标准:每个浮点数由三部分组成数符S,指数E,尾数M,有以下四种格式
- 单精度格式(32位):E=8位,M=23位;
- 扩展单精度格式:E>=11位,M=31位;
- 双精度格式(64位):E=11位,M=52位;
- 扩展双精度格式:E>=15位,M>=63位;
定点数和浮点数的比较
1.定点数和浮点数的比较:如下几点
- 当浮点机和定点机中数的数位相同时,浮点数表示的范围比定点数大得多;
- 浮点数为规格化数时,其相对精度远比定点数高;
- 浮点数运算分阶码和尾数部分,而且运算结果都要求规格化,故浮点运算比定点运算步骤多,运算速度比定点运算的低,运算线路比定点运算复杂;
- 在溢出判断上,浮点数是对规格化数的阶码进行判断,而定点数是对数值本身进行判断;
定点运算
移位运算
1.移位运算的说明:计算机中小数点的位置是事先约定的,二进制表示数在相对于小数点作n位左移或者右移时,其本质就是乘以或者除以2^n,这种移位操作可以配合加法相结合,就可以简单的实现乘除运算;
2.算数移位规则:考虑正数负数俩种情况
- 正数:原码,反码,补码等于真值,故移位后的空位均添加0;
- 负数:负数时,三种机器数表现形式均不同,所以分开考虑
- 原码 :添加代码0;
- 补码:左移添加0,右移添加1;
- 反码:添加1;
3.算数移位和逻辑移位的区别:
- 算数移位:有符号的移位是算数移位,算数位移左右移时,符号位会位移保留,避免移丢;
- 逻辑位移:无符号的是逻辑移位,逻辑位移左右移时,移往的位置会移丢,反过来添0;
加减法运算
1.原码加减法运算规则:符号位不能和数据一起参与运算,符号位和加减法指令共同作为运算的依据,加法采用同号求和,异号求差,减法采用异号求和,同号求差,如下解释:
- 求和:俩操作数的数值位相加得到和的数值位,数值最高位产生进位,则结果溢出,和的符号位采用第一操作数的(被加数/被减数)的符号;
- 求差:第一操作数的数值位加上第二操作数(加数/减数)的数值位的补码,分俩种情况考虑;
- 最高数值位有进位,表明加法结果为正,所得数值位正确,结果的符号位采用第一操作数的符号;
- 最高数值位无进位,表明加法结果为负(补码形式),应对于求其补,还原为绝对值形式的数值位,结果的符号位位第一操作数的符号变反;
2.补码加减法运算规则:
- 参与运算的各个操作数均以补码表示,运算结果仍以补码表示;
- 符号位和数值一起参与运算;
- 若求和,则将俩补码直接相加,得到俩数之和的补码;
- 若求差,则将减数变补,然后和被减数相加,得到俩数之差的补码。
- 补码总是对确定的模而言的,当运算结果超过模,则模自动丢掉;
溢出判断
1.一位符号位判断溢出:如下说明
- 对于加法,只有正正相加或者负负相加才会溢出;
- 对于减法,只有正减负,或者负减正才会溢出;
- 减法运算在机器一般都采用加法器实现,故只要实际操作的数符号相同,但又和原操作结果数符号不同,即为溢出;
2.俩位符号位判断溢出(没懂):
- 俩位符号位的补码是以4为模的,即变形补码;
- 变形补码判断的原则是俩位符号位不同时,表示溢出,否则不溢出
- 不论是否发生溢出,第一位符号位永远代表真正符号;
乘法运算
1.补码一位乘法运算规则(没懂):如下五步
- a:参与运算的数均以补码表示,结果仍以补码表示;
- b:增设yn+1,且初始化为0,部分积初始化为0;
- c:部分积与被乘数采用双符号位,且符号位参加运算;
- d:判别ynyn+1,并采取相应的操作。其中,右移指将部分积连同乘数( 包括yn+1 )一起算术右移;
- e:重复d,共做n+1次操作,最后一次不移位;
存储器
存储器概述
1.存储器分类:以下三种分类
- 按存储介质分类:
- 半导体存储器:体积小、功耗低、存取时间短、近年来信息易失的弊端也慢慢被克服,是目前主流的存储器;
- 磁表面存储器:主要是非易失性,现在计算机已经很少采用了;
- 磁芯存储器:体积过大,目前已经逐渐被半导体存储器所取代了;
- 光盘存储器记录密度高、耐用性好、可靠性高,越来越被用于计算机系统;
- 按存取方式:
- 随机存储器(RAM):存储器任何一个存储单元的内容都可以随机读取或者写入,且存取时间和存储单元物理位置无关,主要用于组成主存;
- 只读存储器(ROM):只能随机读出而不能随机写入和修改,可作为主存的一部分,通常用来存放固定不变的程序,而且还能作为其他固定存储器,如存放微程序的控制存储器、存放字符点阵图案的字符发生器等;
- 顺序存取存储器(SAM):存储器所存的信息是按顺序进行的,没有唯一的对于地址,并且存取时间与存储器的物理位置有关,常用的如磁带存储器;
- 直接存取储存器(DAM):介于SAM和RAM之间,也称为半顺序存储器,当进行信息存取时,先进行寻道,属于随机方式,然后在磁道中寻找扇区,属于顺序方式;
- 按计算机中的作用分类:
- 主存储器:CPU能直接访问的存储器;
- 辅助存储器:CPU不能直接访问的存储器;
- 高速缓冲存储器: 是一种介于主存和CPU之间用于解决CPU和主存速度匹配问题的高速小容量的存储器,Cache用于存放CPU立即要运行或刚使用过的程序和数据;
2.存储器层次结构关系:寄存器>缓存>主存>磁盘>磁带,从右到左,速度越快,价位越高,容量越小(反映了时间空间的矛盾关系);
主存储器
主存的组成和操作
1.主存储器组成:以下由小到大:
- 存储元:能存储一位二进制信息的物理器件,存储元是存储器中最小的存储单位,以下是存储元的必要条件:
- 由俩个稳定状态,对应二进制的0和1;
- 在外界的刺激下,能写入0和1;
- 能够识别器件当前的状态,即可读出所存的0和1;
- 存储单元:由一组存储元件组成,可以同时进行读写;
- 存储体:把大量存储单元电路按一定形式排列起来,即构成存储体,存储体一般排列成阵列形式,所以又叫存储阵列;
2.存储器的地址:存储体中每个存储单元被赋予一个唯一的编号,该编号就是存储单元的地址,当访问某存储单元时,必须给出存储单元的地址;
3.存储单元的编址:
- 按字节编址:相邻的俩个单元就是俩个字节;
- 按字编制:相邻的俩个单元就是俩个字;
4.主存读写过程:
- CPU通过地址总线把地址送到主存地址寄存器MAR;
- CPU通过数据总线向主存数据寄存器MDR发送和写入数据或从主存的MDR接收读出数据;
- CPU通过控制总线把地址吗向主存发送读写控制信号;
存储器的主要性能指标
1.主要性能指标:
- 存储容量:存储容量是指主存能存放的二进制代码的总位数,存储容量=存储单元个数*存储字节;
- 在以字节为编址单位的机器中,常用字节表示存储容量,例如4MB表示主存可容纳4兆个字节信息;
- 对于存储器芯片,用存储单元数×每个单元的位数表示,例如512k×16位,表示主存有512k个单元,每个单元为16位;
- 存储速度:存储速度是由存取时间和存取周期来表示的;
2.存储容量的主要计量单位和存储器地址线关系:
- 1K=2^10=1024:需要10根地址线;
- 1M=2^20=1048576:需要20根地址线;
- 1G=2^30=1073741824:需要30根地址线;
半导体随机存取存储器
1.SRAM(静态随机存取存储器):
- 集成度较低(6管)、单片容量较小;
- 不需要刷新;
- 速度快,曾在Pentium主板上用作二级高速缓存;
- 通常是字选方式;
2.DRAM(动态随机存取存储器):
- 集成度高(单管),单片容量较大;
- 需要定时刷新;
- 速度较慢,多用作主存储器;
- 通常是位选方式
半导体只读存储器
1.只读存储器类型:对于半导体ROM而言,基本器件为俩种,MOS型和TTL型
- 掩模ROM;
- PROM;
- EPROM;
存储器提升和优化
1.存储器扩充:单片存储芯片的容量总是有限的,一个存储器由一定数量的存储芯片构成,芯片总片数=(存储器总单元数×位数)/(每片芯片单元数×位数),但是很难满足实际需求,所以将若干存储芯片连接在一起才能组成足够容量的存储器,称为存储容量的扩展,如下几种方式
- 位扩展:指存储字节的扩展;
- 字扩展:指增加存储器字的数量;
- 字、位扩展:以上俩种;
2.存储器和CPU连接:存储芯片和CPU芯片相连时,特别要注意片和片之间的地址线、数据线和控制线的连接;
- 地址线的连接:存储芯片的容量不同,其地址线数也不同,CPU的地址线往往比存储芯片的地址线多很多,通常是将CPU地址线的地位和存储芯片的地址线相连,而CPU的高位或在存储芯片扩充时用,或做其他途径,如片选信号;
- 数据线的连接:CPu数据线数与存储芯片的数据线数也不一定相等,也需要对存储芯片扩位,使其数据位数相等;
- 读写命令线的连接:CPU读写命令线一般可直接与存储芯片读写控制端相连,通常高点平为读,低电平为写;
- 片选线的连接:存储器的哪一片存储芯片被选中完全取决于该存储芯片的片选控制端CS是否能接受到来自CPU的片选有效信号;
- 合理选择存储芯片:通常使用ROM存放系统程序、标准子程序和各类常数等,而RAM则是为用户编程而设置的;
3.存储器校验:采用汉明码进行纠正错误;
4.提高访存速度的措施:
- 单体多字系统:同一个存储周期,从同一个地址取出4条指令,然后再逐条送至CPU执行,即每隔1/4存取周期,主存向CPU发送一条指令,显然增大了单体存储器的带宽;
- 多体并行系统:采用多体模块组成的存储器,每个模块有相同的容量和存取速度,即同时访问N个模块,同时启动,同时读写,完全并行工作,而主存和哪个部件交换信息由存储器控制部件承担,如下是它的的组成体;
- 排队器:访问是随机的,为了防止发生俩个以上的请求源同时占用一个存储体,必须设立一个排队器来确定请求的优先级;
- 存控标记触发器C_M:用来接受排队器的输出的排队信号;
- 节拍发生器:用来产生固定节拍,与机器主脉冲同步,使控制线路按一定时序发出信号;
- 控制线路:向存储器的部件发出请求和响应回复;
- 高性能存储芯片:DRAM如今发展速度很快,几乎每隔三年存储芯片的容量就翻俩番,同时还出现了许多基于DRAM的增强功能,例如SDRAM、RDRAM、CDRAM;
高速缓冲存储器
1.高速缓冲存储器说明(Cache):Cache的提出有以下俩个主要原因;
- 避免CPU空等现象:在多体并行存储系统中,由于I/O设备向主存请求的级别高于CPU,所以会出现等待I/O设备访存的现象,使CPU空等一段时间;
- CPU和主存(DRAM)的速度差异:CPU速度平均每年改进百分之60,而组成主存的动态RAM速度每年只改进百分之7,主存的速度始终跟不上CPU的发展;
Cache性能指标
1.命中率:设$N_c$为访问Cache的总命中次数,$N_m$为访问主存的总次数,则 Cache 命中率为 $h;=;\frac{N_c}{N_c+N_m}$
2.平均访问时间:设 $t_c$ 为命中时的Cache访问时间,$t_m$ 为未命中时的主存访问时间,则Cache – 主存系统的 平均访问时间为$t_a=ht_c+(1-h)t_m$(平均访问时间 ta 与 命中率 有关);
3.访问效率:访问效率 e 与 命中率 有关,$e=\frac{\mathrm{访问}Cache\mathrm{的时间}}{\mathrm{平均访问时间}}\times100%$,设 Cache 命中率 为 h,访问 Cache 的时间为 $t_c$ ,访问 主存 的时间为 $t_m$,$e=\frac{t_c}{h\times t_c+(1-h)\times t_m}\times100%$;
Cache命中问题
1.缓存命中说明:
- Cache命中:CPU欲访问的数据已经在Cache中;
- Cache不命中:CPU欲访问的数据不在Cache内;
- 命中率:CPU欲访问的信息在Cache中的比率;
Cache基本结构
1.Cache基本组成:
- Cache存储体:存储体以快为单元和主存交换信息,且主存大多采用多体结构,且Cache访存的优先级最高;
- 地址映射机构:是将CPU送来的主存地址转换为Cache地址,有如下几种替换策略
- 直接映射:固定的映射关系,容易实现,但是不够灵活,降低缓存命中率;
- 全相联映射:灵活的映射关系,命中率高,但是逻辑电路甚多,成本较高;
- 组相联映射:上面方案的折中实现;
- 替换机构:当Cache的内容已满时,无法接受来自主存块的信息时,就有Cache内的替换机构按照一定的替换算法来进行替换,替换的算法如下:
- 先进先出算法(FIFO):选择最早进入Cache的字块进行替换,不需要记录各字块的使用情况,比较容易实现,但是没有根据访存的局部性原理,故不能提高Cache的命中率;
- 近期最少使用算法(LRU):利用访存的局部性原理,替换出近期用得最少的字块,平均命中率比FIFO高,但是需要记录各字块的使用情况,一般作简化,只记录每个块最近一次使用的时间;
- 随机法: 随机进行替换,比较简单;
###Cache读写操作
1.读操作:如图
2.写操作:
- 如果Cache命中,那么就需要保持Cache和主存内容一致的问题,如下俩种解决方案:
- 写直达法:同时写入主存和高速存储器,容易实现,但是增加访问次数;
- 写回法:只写入高速存储器,但是标记该组被修改过;
- 如果Cache不命中 :
- 按写分配法:写入主存,同时装入该块到Cache;
- 不按写分配法:直接写入主存,不进行装入;
Cache改进(多级缓存)
1.Cache改进方式:主要有俩种改进方式
- 单一缓存和两级缓存:单一缓存指CPU和主存之间只设一个缓存,且随着集成电路的开发,这个缓存直接和CPU制作在同一个芯片上,故称片内缓存(一级缓存),片内缓存速度很快,但是容量往往比较小,所以在主存和片内缓存之间又加了一级缓存,称片外缓存(二级缓存);
- 统一缓存和分立缓存:统一缓存指指令和数据都存放在同一个缓存内的Cache中;而分立缓存指指令和数据分别存放在俩个缓存中,一个称为指令缓存,一个称为数据缓存;
辅助存储器
1.辅助存储器说明:辅存属于外部存储器,相对于主存而言具有容量大、速度慢、价格低且非易失性的存储器,目前主要使用的辅盘有硬磁盘、软磁盘、磁带和光盘,前三者都属于磁表面存储器;
2.磁表面存储器主要计数指标
- 记录密度;
- 存储容量;
- 平均寻址时间;
- 数据传输率;
- 误码率;
指令系统
指令的概念
1.指令(机器指令):控制计算机执行某种操作的命令;
2.指令字(指令码):表示一条指令的二进制代码;
3.机器语言:用机器指令设计的编程语言,是计算机硬件实体直接表示控制信息的语言;
4.机器语言程序,用机器语言编制的程序,任何用其他语言编制的程序,都必须经过”翻译“,翻译为机器语言程序,才能在机器中正确的运行;
5.指令系统(指令集):一台计算机所能执行的全部指令的集合;
指令的特征和格式
1.指令特征:
- 完备性:指令功能齐全、足够使用;
- 高效性:所编写的程序占存储空间小、执行速度快;
- 规整性:所有的寄存器和存储单元都可同等对待,所有指令都可使用各种寻址方式;
- 匀齐性:可以支持各种数据类型,指令的格式和数据格式的一致性;
- 兼容性:系列机各种机型具有相同的基本结构和共同的基本指令集;
2.指令的格式:操作码+地址码
- 操作码:指定指令所要完成的操作;
- 地址码:操作数的来源,结果去向,下一条指令的地址;
中断机制
控制器和中央处理器
控制器和中央处理器的概念
1.概念说明:控制器是计算机的指挥和控制中心,其主要功能就是根据事先编好并存放在存储器中的解题程序,按所执行指令的具体要求,适时地产生并发出各种控制命令,控制计算机各部件自动、连续、协调地进行工作,直到完成程序的全部功能为止。所以控制器的基本功能就是运行程序;
控制器的工作过程
1.工作过程说明:
- 取指令:根据PC(程序计数器)提供的指令地址,从存储器中取出所要执行的指令放入IR(指令寄存器);
- 分析指令:对取出的指令进行译码分析,确定指令应完成的操作,产生相应操作的控制电位,去参与形成该指令功能所需要的全部控制命令(微操作控制信号);根据寻址方式,形成操作数的有效地址,并按此地址取出操作数据(运算型指令)或形成转移地址(转移类指令),以实现程序转移;
- 执行指令:根据指令所规定的操作,并根据需要,保存操作结果,一条指令执行结束,若没有异常情况和特殊请求,则按程序顺序,再去取出并执行下一条指令;
输入输出系统
输入输出系统概念
1.概念:
- 输入设备:将外部可读数据转换称计算机内部的数字编码设备;
- 输出设别:将计算机内部的数字编码转换成外部可读的字符,图形或声音的设备;
系统总线
系统总线概念
1.基本概念:一组可为多个功能部件共享的公共信息传送线路;
2.总线上系统传输的特点:某一时刻只允许一个部件向总线发送信息,而多个部件和同时从总线接收信息;
补充附录
数据效验码
奇偶效验码
1.奇偶校验码定义:在n位的有效信息位AnAn-1…A1中,加一位校验位P,构成n+1位的奇偶校验码AnAn-1…A1P或者PAnAn-1…A1,若P使n+1位的校验码中“1”的个数为奇数或者偶数。则称为奇校验码或者偶校验码,校验位P又记作Peven(Podd);
海明效验码
常用进位计数制
1.定义:用进位的原则进行计数称为进位计数制,简称进制;
2.有关的概念:
- 数码:一组用来表示某种数制的符号,eg:二进制的0和1;
- 基数:数制所使用的数码个数,常用R表示,称为R进制;
- 位权:数码在不同位置的权值 eg:十进制的位权就是10的几次方;
十进制
1.定义:
- 数码:1,2,3,4,5,6,7,8,9;
- 基数:10;
- 位权:10为底的幂;
- 写法规则:2022 D (D是DEC,可以省略);
2.转二进制:转换规则:用2整除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为小于1时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来,如下图: 180(十进制)转换二进制为:10110100
3.转八进制:按照8除十进制整数取余,直到商为0为止;
4.转十六进制:转换规则:用16整除十进制整数,可以得到一个商和余数;再用16去除商,又会得到一个商和余数,如此进行;
二进制
1.定义:
- 数码:0,1;
- 基数: R= 2;
- 位权:2为底的幂;
- 写法规则:0B 10010101 B (0B是c#中s使用二进制的前缀,D是BIN,可以省略);
2.转十进制:把二进制按权展开,相加即得十进制数
3.转八进制:3位二进制数按权展开相加得到1位八进制数。(注意事项,3位二进制转成八进制是从右到左开始转换,不足时补0)。
4.转十六进制:与二进制转八进制方法近似,八进制是取三合一,十六进制是取四合一。(注意事项,4位二进制转成十六进制是从右到左开始转换,不足时补0)。
八进制
1.定义:
- 数码:0,1,2,3,4,5,6,7;
- 基数:8;
- 位权:8为底的幂;
- 写法规则:0 720 O (0是c#中使用八进制的前缀,O是OCT,可以省略);
2.转十进制:把八进制数按权展开、相加即得十进制数。
3.转二进制:八进制通过除二取余,得到二进制数,对每个八进制为3个二进制,不足在最左边补零;
4.转十六进制:八进制与十六进制之间的转换有两种方法第一种:他们之间的转换可以先转成二进制然后再相互转换。第二种:他们之间的转换可以先转成十进制然后再相互转换;
十六进制
1.定义:
- 数码:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F;
- 基数:16;
- 位权:16为底的幂;
- 写法规则:0X 1AF H (0X是c#中使用十六进制的前缀,D是HEX,可以省略);
2.转十进制:把十六进制数按权展开、相加即得十进制数。
3.转二进制:十六进制数通过除2取余法,得到二进制数,对每个十六进制为4个二进制,不足时在最左边补零。
4.转八进制:八进制与十六进制之间的转换有两种方法第一种:他们之间的转换可以先转成二进制然后再相互转换。第二种:他们之间的转换可以先转成十进制然后再相互转换
CPU类型
复杂指令:X86(CISC)
精简指令:ARM(RISC)
ASCII码(美国信息交换标准代码)
1.ASCII 码说明:ASCII 码使用指定的7 位或8 位二进制数组合来表示128 或256 种可能的字符。标准ASCII 码也叫基础ASCII码,使用7 位二进制数(剩下的1位二进制为0)来表示所有的大写和小写字母,数字0 到9、标点符号,以及在美式英语中使用的特殊控制字符。其中:
- 0~31及127(共33个)是控制字符或通信专用字符(其余为可显示字符),如控制符:LF(换行)、CR(回车)、FF(换页)、DEL(删除)、BS(退格)、BEL(响铃)等;通信专用字符:SOH(文头)、EOT(文尾)、ACK(确认)等;ASCII值为8、9、10 和13 分别转换为退格、制表、换行和回车字符。它们并没有特定的图形显示,但会依不同的应用程序,而对文本显示有不同的影响 。
- 32~126(共95个)是字符(32是空格),其中48~57为0到9十个阿拉伯数字。
- 65~90为26个大写英文字母,97~122号为26个小写英文字母,其余为一些标点符号、运算符号等。
- 同时还要注意,在标准ASCII中,其最高位(b7)用作奇偶校验位。所谓奇偶校验,是指在代码传送过程中用来检验是否出现错误的一种方法,一般分奇校验和偶校验两种。奇校验规定:正确的代码一个字节中1的个数必须是奇数,若非奇数,则在最高位b7添1;偶校验规定:正确的代码一个字节中1的个数必须是偶数,若非偶数,则在最高位b7添1 [1] 。
- 后128个称为扩展ASCII码。许多基于x86的系统都支持使用扩展(或“高”)ASCII。扩展ASCII 码允许将每个字符的第8 位用于确定附加的128 个特殊符号字符、外来语字母和图形符号 [1] 。
2.ASCII码表具体如下所示 :
Bin(二进制) | Oct(八进制) | Dec(十进制) | Hex(十六进制) | 缩写/字符 | 解释 |
---|---|---|---|---|---|
0000 0000 | 00 | 0 | 0x00 | NUL(null) | 空字符 |
0000 0001 | 01 | 1 | 0x01 | SOH(start of headline) | 标题开始 |
0000 0010 | 02 | 2 | 0x02 | STX (start of text) | 正文开始 |
0000 0011 | 03 | 3 | 0x03 | ETX (end of text) | 正文结束 |
0000 0100 | 04 | 4 | 0x04 | EOT (end of transmission) | 传输结束 |
0000 0101 | 05 | 5 | 0x05 | ENQ (enquiry) | 请求 |
0000 0110 | 06 | 6 | 0x06 | ACK (acknowledge) | 收到通知 |
0000 0111 | 07 | 7 | 0x07 | BEL (bell) | 响铃 |
0000 1000 | 010 | 8 | 0x08 | BS (backspace) | 退格 |
0000 1001 | 011 | 9 | 0x09 | HT (horizontal tab) | 水平制表符 |
0000 1010 | 012 | 10 | 0x0A | LF (NL line feed, new line) | 换行键 |
0000 1011 | 013 | 11 | 0x0B | VT (vertical tab) | 垂直制表符 |
0000 1100 | 014 | 12 | 0x0C | FF (NP form feed, new page) | 换页键 |
0000 1101 | 015 | 13 | 0x0D | CR (carriage return) | 回车键 |
0000 1110 | 016 | 14 | 0x0E | SO (shift out) | 不用切换 |
0000 1111 | 017 | 15 | 0x0F | SI (shift in) | 启用切换 |
0001 0000 | 020 | 16 | 0x10 | DLE (data link escape) | 数据链路转义 |
0001 0001 | 021 | 17 | 0x11 | DC1 (device control 1) | 设备控制1 |
0001 0010 | 022 | 18 | 0x12 | DC2 (device control 2) | 设备控制2 |
0001 0011 | 023 | 19 | 0x13 | DC3 (device control 3) | 设备控制3 |
0001 0100 | 024 | 20 | 0x14 | DC4 (device control 4) | 设备控制4 |
0001 0101 | 025 | 21 | 0x15 | NAK (negative acknowledge) | 拒绝接收 |
0001 0110 | 026 | 22 | 0x16 | SYN (synchronous idle) | 同步空闲 |
0001 0111 | 027 | 23 | 0x17 | ETB (end of trans. block) | 结束传输块 |
0001 1000 | 030 | 24 | 0x18 | CAN (cancel) | 取消 |
0001 1001 | 031 | 25 | 0x19 | EM (end of medium) | 媒介结束 |
0001 1010 | 032 | 26 | 0x1A | SUB (substitute) | 代替 |
0001 1011 | 033 | 27 | 0x1B | ESC (escape) | 换码(溢出) |
0001 1100 | 034 | 28 | 0x1C | FS (file separator) | 文件分隔符 |
0001 1101 | 035 | 29 | 0x1D | GS (group separator) | 分组符 |
0001 1110 | 036 | 30 | 0x1E | RS (record separator) | 记录分隔符 |
0001 1111 | 037 | 31 | 0x1F | US (unit separator) | 单元分隔符 |
0010 0000 | 040 | 32 | 0x20 | (space) | 空格 |
0010 0001 | 041 | 33 | 0x21 | ! | 叹号 |
0010 0010 | 042 | 34 | 0x22 | “ | 双引号 |
0010 0011 | 043 | 35 | 0x23 | # | 井号 |
0010 0100 | 044 | 36 | 0x24 | $ | 美元符 |
0010 0101 | 045 | 37 | 0x25 | % | 百分号 |
0010 0110 | 046 | 38 | 0x26 | & | 和号 |
0010 0111 | 047 | 39 | 0x27 | ‘ | 闭单引号 |
0010 1000 | 050 | 40 | 0x28 | ( | 开括号 |
0010 1001 | 051 | 41 | 0x29 | ) | 闭括号 |
0010 1010 | 052 | 42 | 0x2A | * | 星号 |
0010 1011 | 053 | 43 | 0x2B | + | 加号 |
0010 1100 | 054 | 44 | 0x2C | , | 逗号 |
0010 1101 | 055 | 45 | 0x2D | - | 减号/破折号 |
0010 1110 | 056 | 46 | 0x2E | . | 句号 |
0010 1111 | 057 | 47 | 0x2F | / | 斜杠 |
0011 0000 | 060 | 48 | 0x30 | 0 | 字符0 |
0011 0001 | 061 | 49 | 0x31 | 1 | 字符1 |
0011 0010 | 062 | 50 | 0x32 | 2 | 字符2 |
0011 0011 | 063 | 51 | 0x33 | 3 | 字符3 |
0011 0100 | 064 | 52 | 0x34 | 4 | 字符4 |
0011 0101 | 065 | 53 | 0x35 | 5 | 字符5 |
0011 0110 | 066 | 54 | 0x36 | 6 | 字符6 |
0011 0111 | 067 | 55 | 0x37 | 7 | 字符7 |
0011 1000 | 070 | 56 | 0x38 | 8 | 字符8 |
0011 1001 | 071 | 57 | 0x39 | 9 | 字符9 |
0011 1010 | 072 | 58 | 0x3A | : | 冒号 |
0011 1011 | 073 | 59 | 0x3B | ; | 分号 |
0011 1100 | 074 | 60 | 0x3C | < | 小于 |
0011 1101 | 075 | 61 | 0x3D | = | 等号 |
0011 1110 | 076 | 62 | 0x3E | > | 大于 |
0011 1111 | 077 | 63 | 0x3F | ? | 问号 |
0100 0000 | 0100 | 64 | 0x40 | @ | 电子邮件符号 |
0100 0001 | 0101 | 65 | 0x41 | A | 大写字母A |
0100 0010 | 0102 | 66 | 0x42 | B | 大写字母B |
0100 0011 | 0103 | 67 | 0x43 | C | 大写字母C |
0100 0100 | 0104 | 68 | 0x44 | D | 大写字母D |
0100 0101 | 0105 | 69 | 0x45 | E | 大写字母E |
0100 0110 | 0106 | 70 | 0x46 | F | 大写字母F |
0100 0111 | 0107 | 71 | 0x47 | G | 大写字母G |
0100 1000 | 0110 | 72 | 0x48 | H | 大写字母H |
0100 1001 | 0111 | 73 | 0x49 | I | 大写字母I |
01001010 | 0112 | 74 | 0x4A | J | 大写字母J |
0100 1011 | 0113 | 75 | 0x4B | K | 大写字母K |
0100 1100 | 0114 | 76 | 0x4C | L | 大写字母L |
0100 1101 | 0115 | 77 | 0x4D | M | 大写字母M |
0100 1110 | 0116 | 78 | 0x4E | N | 大写字母N |
0100 1111 | 0117 | 79 | 0x4F | O | 大写字母O |
0101 0000 | 0120 | 80 | 0x50 | P | 大写字母P |
0101 0001 | 0121 | 81 | 0x51 | Q | 大写字母Q |
0101 0010 | 0122 | 82 | 0x52 | R | 大写字母R |
0101 0011 | 0123 | 83 | 0x53 | S | 大写字母S |
0101 0100 | 0124 | 84 | 0x54 | T | 大写字母T |
0101 0101 | 0125 | 85 | 0x55 | U | 大写字母U |
0101 0110 | 0126 | 86 | 0x56 | V | 大写字母V |
0101 0111 | 0127 | 87 | 0x57 | W | 大写字母W |
0101 1000 | 0130 | 88 | 0x58 | X | 大写字母X |
0101 1001 | 0131 | 89 | 0x59 | Y | 大写字母Y |
0101 1010 | 0132 | 90 | 0x5A | Z | 大写字母Z |
0101 1011 | 0133 | 91 | 0x5B | [ | 开方括号 |
0101 1100 | 0134 | 92 | 0x5C | \ | 反斜杠 |
0101 1101 | 0135 | 93 | 0x5D | ] | 闭方括号 |
0101 1110 | 0136 | 94 | 0x5E | ^ | 脱字符 |
0101 1111 | 0137 | 95 | 0x5F | _ | 下划线 |
0110 0000 | 0140 | 96 | 0x60 | ` | 开单引号 |
0110 0001 | 0141 | 97 | 0x61 | a | 小写字母a |
0110 0010 | 0142 | 98 | 0x62 | b | 小写字母b |
0110 0011 | 0143 | 99 | 0x63 | c | 小写字母c |
0110 0100 | 0144 | 100 | 0x64 | d | 小写字母d |
0110 0101 | 0145 | 101 | 0x65 | e | 小写字母e |
0110 0110 | 0146 | 102 | 0x66 | f | 小写字母f |
0110 0111 | 0147 | 103 | 0x67 | g | 小写字母g |
0110 1000 | 0150 | 104 | 0x68 | h | 小写字母h |
0110 1001 | 0151 | 105 | 0x69 | i | 小写字母i |
0110 1010 | 0152 | 106 | 0x6A | j | 小写字母j |
0110 1011 | 0153 | 107 | 0x6B | k | 小写字母k |
0110 1100 | 0154 | 108 | 0x6C | l | 小写字母l |
0110 1101 | 0155 | 109 | 0x6D | m | 小写字母m |
0110 1110 | 0156 | 110 | 0x6E | n | 小写字母n |
0110 1111 | 0157 | 111 | 0x6F | o | 小写字母o |
0111 0000 | 0160 | 112 | 0x70 | p | 小写字母p |
0111 0001 | 0161 | 113 | 0x71 | q | 小写字母q |
0111 0010 | 0162 | 114 | 0x72 | r | 小写字母r |
0111 0011 | 0163 | 115 | 0x73 | s | 小写字母s |
0111 0100 | 0164 | 116 | 0x74 | t | 小写字母t |
0111 0101 | 0165 | 117 | 0x75 | u | 小写字母u |
0111 0110 | 0166 | 118 | 0x76 | v | 小写字母v |
0111 0111 | 0167 | 119 | 0x77 | w | 小写字母w |
0111 1000 | 0170 | 120 | 0x78 | x | 小写字母x |
0111 1001 | 0171 | 121 | 0x79 | y | 小写字母y |
0111 1010 | 0172 | 122 | 0x7A | z | 小写字母z |
0111 1011 | 0173 | 123 | 0x7B | { | 开花括号 |
0111 1100 | 0174 | 124 | 0x7C | | | 垂线 |
0111 1101 | 0175 | 125 | 0x7D | } | 闭花括号 |
0111 1110 | 0176 | 126 | 0x7E | ~ | 波浪号 |
0111 1111 | 0177 | 127 | 0x7F | DEL (delete) | 删除 |