组成原理知识点整理

在印象笔记里发现组成原理当时整理的笔记, 这里整理一篇blog, 方便查找. 当时主要应用是在考试方面, 内容比较基础, 可是应付期末考试之类的应该仍是能够的. 不废话了, 记念当年的组成原理ヾ(≧O≦)〃嗷~.程序员


 

 第一章--概述编程

1.基本概念
      (1)指令:人让机器所作的操做的命令.(都是0,1代码)
                 由操做码与地址码组成,操做码是指要作什么操做,地址码是存放操做数地址.
                 操做码有n位,则操做种类有2n位.
                 指令越多,功能越强.
      (2)程序:指令的有序组合.
      (3)指令系统:一台机器拥有的所有指令.
 
2.冯诺依曼存储原理:
      (1)由存储器/运算器/控制器/输入设备/输出设备组成.
      (2)指令和数据都是二进制形式,顺序存放于存储器中.(指令与数据都是二进制,没法进行区分)->二进制原理
      (3)机器自动顺序取出每条指令,分析/执行规定操做.->程序控制原理
 
3.总线
      多个功能部件间进行信息传输的公共通道.
      三种总线结构须要分析. 
 
4.接口的做用
      为何外设必须加接口才能加到总线上,翻课本查一下
 
5.字节:就是8位二进制,规定必须。
   字:本身规定位数,与字节区别。其中字长为字的二进制位数。
   机器字长决定了寄存器/运算器/数据总线的位数
 
6.计算机的核心:操做系统
   硬件系统的核心:控制器
   运算器的核心:加法器

 
 第二章--计算机中数据信息表示法
1.基数与权的概念
      基数:数制中所用到的代码的个数.
             十进制为0~9,二进制为0~1
      权:好比十进制的为,个位表明0/十位表明10等
 
2.为何用二进制:
     (1)便于物理器件实现
     (2)运算规则简单
     (3)便于实现逻辑运算
 
3.最好的数据为e进制(2.71828)
      为何不用三进制:现实世界三个状态的物理器件比较少,不便于物理器件实现
 
4.机器数:数据在机器中的表示
   特色:
      (1)数的符号数值化(0-正,1-负)     [机器中数的符号数值化,0为正,1为负(错误的,由于移码是相反的)]
      (2)表示范围受字长限制,超出范围--溢出
      (3)小数点的位置须要约束           [机器中小数点是约定的,分为定点数/浮点数]
 
5.小数点的位置[经过位置进行肯定]n+1为机器字长
      ****.(定点整数)
          表示范围:1<=|X|<=2n-1
      *.***(定点小数)
          表示范围:2-n<=|X|<=1-2-n(不包括0,0为特殊的数)
      浮点表示:(小数点位置不固定)-----用了浮点数因此计算机的精度高
           基本格式:
阶符 阶值  尾符

尾数值缓存

       Js                            J1J2...Jm                         Ss                             S1S2...Sn
  尾数部分用定点小数表示
       阶码部分用定点整数表示->用移码表示, 尾数n位,阶码m位.保证浮点数足够大的数值范围,并要求精度,合理选择m,n
       ****浮点数的规格化:->只要求尾数
       原码表示:要求S1位必须为1
       补码表示:正数,尾数最高位为1,即Ss.S1=0.1   
                    负数,尾数最高位为0,即Ss.S1=1.0
                    为何这种设计方式: 直接使用异或门就能够实现,硬件设计简单
       表示范围:
               |X|max:Js=0,J1...Jm所有为1,S1...Sn为1
               |X|min:Js=1,J1...Jm所有为1,Sn为1,其余为0
               2-n*2-(2^m-1)<=|X|<=(1-2-n)*2(2^m-1)
               尾数为0,不论阶码为什么值机器都为0 
  定点数与浮点数的比较:
        (1)定点表示简单,省硬件.浮点表示麻烦,价格贵.
        (2)浮点表示比定点表示范围大
 
6.定点机器数
      正数:原反补码相同
      负数:原反补码不一样
      [X]原反补:此处必须符合4的特色, 此数必须有符号位/必须约定小数点
 
7.原码(注意补齐位数)->0的原码表示不为一必须有一位为符号位
      小数原码[X]的表示:
            正数     [X]=X
            负数     [X]=1-X=1+|X|
      整数原码[X]的表示:
            正数:     [X]=X
            负数:     [X]=2n+X
      机器字长的符号位加入字长中.
      此处为一个例题:+8用原码表示,且机器字长为4位,表示不下,发生溢出。
      原码表示的优势
          (1)直观易懂。
          (2)机器数和真值间的转换容易
          (3)实现乘除运算简单
      原码表示的缺点
           加减运算规则复杂
 
8.补码[作加减运算的时候使用]
      为何用补码作加减:
     (1)克服原码在加减运算中的复杂的缺点
     (2)符号位参与运算
     (3)使减法变成加法,简化机器运算电路[以时钟为例子解释,11-5=11+7时钟]
      目的为(2)(3)
      模的求解:
         小数补码的模:2
         整数补码的模:2n+1 n+1为机器字长
 
9.移码(都为正数域中)
        与补码的符号位相反,其它位相同
      性质:
         (1)0为负数,1为正数
         (2)移码全零,真值最小
         (3)0的移码表示惟一
         (4)与补码的符号位相反,其它位相同
         (5)移码表示把真值映射到正数域,可按照无符号数比较大小.
 
10.表示范围
       原码:
          整数:0,1111~1,1111今后处进行计算范围->-2n<X<2n
          小数:0.1111~1.1111注意这是小数,应该为1-2n[此处n为负数]->-1<X<1
        反码:
           与原码表示同样
      补码:
           整数:0<=X<2n && -2n<=X<0[n为机器字长减一]->-2n<=X<2n
           小数:0<=X<1 && -1<=X<0->-1<=X<1
      补码比原码多出一位,例子:
       机器字长4位,表示多出的一位都为1,000
 
11.原反补码的表示
       正数的原反补码一致,负数不一样,特别重要
 
12.非数值数据编码表示
       (1)BCD码->4位二进制表示
           有权码/无权码区别:是否每一位是否有权
           有权码
                 ->8421码:将0~9用4位二进制表示
                 ->2421码:每一位分别表示2/4/2/1,不容许0101~1010的出现
       (2)检错纠错码
            1)奇偶校验码--用于并行数据传送--只能选择其中一种,只能检错,不能纠错. 就是在k位数据码以外增长1位校验码,使k+1位码取值为1的位数总保持为偶数(偶校验)或奇数(奇校验)
            2)海明码与循环冗余码用于纠错
       (3)字符编码
           1)ASCII码
               ASCII-7:
                   8位:7位,区别不一样字符,128个; 1位,奇偶检验
               ASCII-8,扩展ASCII码,256个
           2)汉字
               计算机中两个字节表示一个汉字,每一个字节只使用7位,最高的一位为1----目的:将汉字与ASCII码进行区别
           3)字符串表示
               一串连续的字符,计算机中表示为占据主存中连续的多个字节,每一个字节存放一个字符. 能够从低位到高位,也能够从高位到低位
               取字符串的方法:首先给首地址,而后给字符串的字符长度
           4)逻辑数据的表示
               1表示真,0表示



第三章--运算方法和运算器
1.移位运算
      逻辑移位:寄存器中数据左移右移,出现空位都补0.
      (1)算数移位:     左移x=2*x     右移x=1/2*x     左加右减     移位后,符号位保持不变
             正数移位:不管原反补码都用空位补0
             负数移位:原码左移右移空位都补0
                           反码左移右移空位都补1
                           补码左移空位补0     右移空位补1
           是否2[X]=[2X]?是否1/2[X]=[1/2X]?
           答:当X>=0时,成立->条件:不溢出
               当X<0时,左移成立;当X>0时,右移不成立->左移成立条件:不溢出
      (2)舍入操做
          1)恒舍:多余的部分所有去掉
          2)冯诺依曼舍入法:末位恒置1
          3)0舍1入发->0就舍,1就+1,进位
          4)ROM舍入法->查表
 
2.定点加减法(乘除->不作要求)
      (1)原码加减法->不用     反码加减法->不用
      (2)补码加减法->为便于判断溢出,常采用模4的补码形式,就是符号位改成2位->以模4作习题,第一个符号位始终指示正确的符号
          [X+Y]=[X]+[Y]
          [X-Y]=[X]+[-Y]
          [Y]与[-Y]的转换:符号位,数值位所有变反,最后+1
          [Y]变[Y],除符号位,将数值位变反,+1
      (3)溢出判断
          符号位为00,表示正数;符号位为11,表示负数
          符号位为01,表示正溢;符号位为10,表示负溢
          符号位为100的时候为何不溢出:由于采用的是模4进行表示,因此不会溢出,仅仅丢掉的是模.
 
3.基本加减法运算器设计
      要求:
         1)速度快,门的级数少
         2)逻辑设计与实现完整性(尽可能使用相同的器件)
         3)除提供的功能,最好提供其余功能
      (1)串行加法器
      (2)并行加法器->进位仍为串行
          1)串行加法器的进位链
              C2->C1,C3->C2(须要之前的进位依赖),所用的时间为n位*2ty
          2)并行加法器的进位链
             进位的C=AiBi+(Ai+Bi)Ci-1=Gi+PiCA和B表示须要运算的两位,C表示进位;G表示AB的与,P表示A+B的AB或。
                当A和B都为1的时候,必定产生进位即G为1.只要A或B有一个1,进位C才能产生进位。
          3)看课本P     看C2/C3/C4等如何所有推到C0,就是将前一步求的值,在这一步中展开就能够显示C0->仅需2ty就行
              虽然上面是2ty,可是现实中不存在这样的元器件.受到扇入系数的影响
          4)设计思想
             将串行与并行结合起来设计.好比16位,分红4组,每组4个,组内为并行,组间用串行的.
 
4.十进制加减法/定点乘法/定点除法->不要求
 
 
5.逻辑运算->按位进行,不存在进位与借位现象
      (1)逻辑非
      (2)逻辑加->逻辑或
      (3)逻辑乘->逻辑与
      (4)逻辑异
 
6.定点运算器设计->运算器的核心为ALU
      寄存器A即存运算数又存最后的结果/寄存器B有X和X非,若为加则选择X,若为减则选择X非.
      寄存器A称为:累加器
      ALU中为何存在+1这一项?
        由于寄存器B中存的数都为反码,经过ALU的+1则能够变成补码进行运算,设计方便.还能够用于PC+1
 
7.规格化浮点运算->对阶与规格化都须要移位
      (1)对阶--小阶向大阶看齐->阶码相同
           移动尾数部分的数值,改变阶码的值.
      (2)尾数求和
      (3)规格化
           补码正数:00.1的形式
           补码负数:11.0的形式
           左规:尾数左移一位,阶码减一
           右规:尾数右移一位,阶码加一
           01.000和10.000:在定点数表示溢出,在浮点数中容许.这种状况用右移使其规格化便可
       (4)舍入
       (5)溢出处理

 
第四章--指令系统
1.指令系统概述
      指令:就是OP(操做码)与D(地址码)组成
      指令字长:一个指令字中包含二进制的位数
      机器字长:计算机能直接处理的二进制数据的位数,决定了计算机的运算精度
      存储字长:内存单元二进制的位数
      单字长指令:指令字长=机器字长
      半字长指令:指令字长=1/2机器字长
      双字长指令:指令字长=2倍机器字长
      指令字长与机器字长的关系?
            无固定关系
      肯定指令字长的原则:
           1)指令字长尽量短;节省内存空间,提升执行速度
           2)等于字节的整数倍->避免存贮空间的浪费
 
2.指令的分类->讨论机器指令
      从计算机组成的层次结构分:
           微指令
           机器指令->介于微指令与宏指令之间,简称指令
           宏指令->许多机器指令组成的软件
 
3.机器语言是机器可以直接识别的,汇编语言不能识别.
   高级语言与计算机的硬件结构及指令系统无关
 
4.指令格式
      操做码m位,地址码n位->操做数种类2m,操做数的范围为2n
      m和n的位数通常是固定的,不能随时变化
 
5.操做码
      操做码:主操做码(基本操做)和辅操做码(有移位等)
      组织形式:
          (1)定长的操做码
               若操做码为4位,须要用译码器译成16位
          (2)变长的操做码
               优势:用较少的位数表示更多的指令格式,同时知足操做数地址的需求
               缺点:计算机硬件设计复杂,指令译码和执行速度慢
          (3)操做码与操做数地址有所交叉->基本不用
 
6.地址码->指出参与操做的数据地址
      (1)CPU内部的通用寄存器-最快
      (2)内存的单元--次之
      (3)外设接口中的寄存器--最慢
      指令中的地址码:
          1)四地址指令--op|A1( 第一个操做数 ) |A2( 第二个操做数 )|A3 (结果) |A4(下一条指令地址) ->访问内存:5次/取指令别忘记
          2)三地址指令--op|A1( 第一个操做数 ) |A2( 第二个操做数 ) |A3( 结果) ->访问内存:4次,下一条指令地址在PC中
          3)二地址指令--op|A1( 第一个操做数 和结果) |A2( 第二个操做数 )->访问内存:4次,下一条指令地址在PC中->多数机器采用
          4)一地址指令--op|A1(操做数)->累加器中存放一个操做数,最后的结果存放于累加器中->访问内存:2次->微型机应用普遍
          5)零地址指令--op-><1>无需操做数,NOP(空转),<2>所需的操做数由堆栈提供
          6)寄存型地址格式指令->操做数所有放在寄存器中也有单地址/二地址/三地址之分--访问内存:1次,操做数存放在寄存器中,只有取指令的时候访内
 
7.堆栈->先进后出
      硬堆栈->寄存器堆     软堆栈->内存中的指定区域
      堆栈两端:
          固定:栈底
          活动:栈顶,SP指针指示
      自底向上的堆栈:
          压栈:先修改SP,后存数据
          出栈:先取出数据,后修改SP
 
8.寻址方式(地址:形式地址和有效地址,形式地址->指令给出的地址;有效地址->操做数真正的地址,又称物理地址)
      指令寻址:如何找指令(PC)
      操做数寻址:寻找操做数
      区分:指令地址与指令中的地址
             指令地址:存放指令的地址,即OP|D的地址
             指令中的地址:操做数的形式地址
      寻址方式:->一台机器,可能只用其中几种寻址方式/机器不一样,寻址方式相同,表达方式和含义也可不一样(页面寻址:拼接的内容可能不一样,参考页面寻址)
     (1)当即寻址->OP|D其中D就是操做数(访存1次)
          特色:执行指令时不访问内存,速度快/当即数的位数受字长的限制
     (2)直接寻址->OP|D其中D为操做数的地址(假设为n位,则寻址范围为2n)(访存2次)
          特色:直观/寻址空间受限
     (3)间接寻址->OP|D其中D为操做数地址的地址
          寻址空间受内存储器的位数限制,存储字的位数S位,寻址范围2S
          一次间址:形式地址是操做数地址的地址.
          屡次间址:指令中设间址特征位,此位为1,继续间址,直至此位为0.
     (4)隐含寻址->OP|D--操做数地址
          ACC OP(D)->ACC--操做数隐含在累加器ACC中
     (5)变址寻址->OP|Ri(获得变址寄存器的位置)|变址偏移量
          (IR)+D=有效地址EA
     (6)基址寻址->OP|Ri(获得基址寄存器的位置)|变址偏移量
          (BR)+D=有效地址EA
          变址寻址与基址寻址的异同:
               相同:有效地址的造成方式不一样,都能扩大寻址空间(变址/基址寄存器为n位,寻址空间为2n)
               不一样:1)变址寻址中,变址寄存器提供变址量,形式地址提供基准量,这个基准量位数较长 
                            基址寻址中,基址寄存器BX提供基准量,形式地址提供偏移量,这个偏移量位数短
                            变址:变址量(小)+形式地址(大)=有效地址
                            基址:基址值(大)+形式地址(小)=有效地址
                       2)变址寄存器的值由用户肯定,且随意改变
                          基址寄存器的值由操做系统肯定
      (7)复合寻址
          先变址后间址: ((IX)+D)--有效地址
          先间址后变址:(D)+(IX)--有效地址
     (8)相对寻址
          有效地址EA=(PC)+D
          与变址寻址的区别:
               变址寄存器能够是多个寄存器中的一个,而相对寻址中的寄存器已肯定为PC,无须在指令中肯定.
     (9)页面寻址(扩充寻址)
          扩充地址寄存器内容做高位,形式地址为低位--页内地址,两者联合--有效地址
          扩充地址寄存器+指令中的形式地址,即D的地址,能够变成一个更长的地址
     (10)寄存器寻址
          形式地址就是寄存器的编号
     (11)堆栈寻址
          入栈操做:指令 PUSH A
                         操做:SP-1->SP
          出栈操做:指令 POP A
                         操做:SP+1->S
 
9.指令的种类
     (1)算逻运算类    
     (2)数据传送类    
   (3)指令控制类    
   (4)I/O类    
     (5)其余:停机->全部机器都包含此指令
 
10.指令系统的要求
     (1)完备性     (2)有效性     (3)规整性     (4)兼容性
 
11.系列机
     基本指令系统相同,基本结构相同的一系列计算机->可能因为时间不一样,结构方面可能有所不一样,可是必须知足软件向上兼容.
     要求:
          (1)各机种有相同的指令集
          (2)新机种的指令系统必定包含旧机种的全部指令系统.
 
12.CISC/RISC
     CISC:复杂指令集计算机.功能强,指令条数多,研制周期长,系统效率低
     RISC:精简指令集计算机.指令系统尽量简单.->优势更好
 
13.设计机器时,通常追求指令格式可变:指令长度可变,操做码长度可变,地址码可变的优劣
     指令字长固定:控制简单,浪费存贮空间.
     指令字长可变:节约存贮空间,提升机器效率,控制复杂,成本高.
 
14.视频4-5有例题
     (1)存贮器的页面:64K/28,每一个页面的单元数28.这里的8为地址码位数,64K为内存空间
     (2)寄存器16位,访问1M的存储空间,这里左移4位是什么意思?
 
15.MAR(存储器地址寄存器):指令地址从PC经过总线放入MAR,而后译码找到存储单元->取指令
     MDR(存储器数据寄存器):将取出的指令放入MDR中

 
第五章--存储器
 
1.基本概念
      计算机中最小的存储单位:二进制位->用一个触发器存储或者记忆单元(存储一个二进制位)存储.
      8个二进制位称为一个字节,位用b,字节用B表示.
      当一个二进制数称为一个总体进行操做时,就称为一个字.一个字中的二进制位数叫字长.
      多位二进制用多个记忆单元存储,多个单元称为存贮单元.->能够存放一个字,多个存贮单元组成一个存贮体-存贮器的核心.
 
2.存储器的主要技术指标
      (1)存储容量:
          字节编制:以字节数来表示容量->B
          字编制:以字数*字长来表示容量
          例题:某计算机容量为64K*16(这里16表示有16个二进制位数),表示有64K个字,每一个字的字长为16位;用字节数表示,则能够记为128K字节.
      (2)存取速度(存取周期/存取时间)
          存取时间:从启动一次存储器操做到完成该操做所经历的时间
          存取周期:从接受读/写命令信号开始,将信息读出或写入后,到接到下一个读/写命令为止所需的时间.
          存取周期>存取时间
      (3)可靠性->以平均无端障时间(两次故障之间的平均间隔)来衡量
      (4)性能/价格比
      (5)功耗->耗电不是主要问题,主要问题是温度,发热会使器件击穿.
 
3.存储器分类->存储器的矛盾:速度与容量
      (1)功能
          寄存器:位于CPU内,速度与CPU匹配
          主存:主机内,直接与CPU交换信息,速度快
          辅存:主机外,不能与CPU交换信息,速度慢
          高速缓存:CPU与内存之间,容量小,速度与CPU匹配/CPU内部也有高速缓存(如今CPU内部有运算器/控制器/Cache)
      (2)读写方式
          RAM:随机存取存储器->静态MOS(Cache)/动态MOS(内存)
          ROM:只读存储器
      注意:一个时刻只能对一个单元进行读和写
      (3)读写顺序
          SAM:顺序存取->磁带
          RAM:随机存取
          DAM:直接存取->磁盘
      (4)存储介质
          磁芯:永久存储(使用寿命内),速度慢
          半导体:易逝性(断电易逝),速度高
      (5)寻址方式
          地址寻址
          内容寻址:以关键字来找所需信息
 
4.半导体随机读写存储器
      基本结构:
         存储体:采用矩阵的形式进行存储,课本P
         数据线->双向(RAM双向/ROM单向)     地址线->单向     地址选择线(译码器译出的线)
         地址译码器:单译码/双译码(不能节省地址线的数目,可是能够节省地址选择线的数目,现通常都采用此结构)->用图体会
         视频5-2-1中12:00时介绍.
         读/写电路:选中存储单元的读/写
         控制电路:片选线CS->先选片/读写控制线WE(CS与WE都是低电平有效)
 
5.高速缓冲器Cache->速度比内存快,与CPU一个级别.存储空间比内存小不少.->Cache的速度,内存的容量
      目的:提升内存速度,解决内存与CPU速度不匹配的问题.
             CPU<->Cache<->内存
           CPU<->内存
      理论基础:
         (1)时间上的局部性->某一地址空间的程序被访问,则近期可能还会被访问.
         (2)空间上的局部性->某一地址空间的程序被访问,则附近空间的程序可能还会被访问.
      CPU与Cache能够直接链接,同时防止Cache中若未有程序而在内存中,因此CPU也能够与内存进行链接.
      容量与命中率问题:
         (1)容量
                   太大:影响CPU效率,且硬件线路复杂,可是与Cache交换的信息量大
                   过小:命中率低
         (2)命中率
                   h=Nc/(Nc+Nm)
                   Nc/Nm为在Cache,主存中命中的次数
      地址映射->主存中的块如何在Cache中定位
      地址变换->主存地址如何变换成Cache地址
      全相联映射/直接映射/组相连映射->不要求
      为提升速度,Cache须要所有用硬件实现,Cache所有由静态RAM组成.
      用了Cache后,以Cache的速度,之内存的容量与CPU相关联.
 
6.动态MOS存储器的刷新
      (1)刷新的时间间隔->必须在2ms内刷新
      (2)要求
          1)两次刷新的时间间隔不能超过容许时间2ms
          2)刷新优先于访存,但不能打断访存周期
          3)刷新期间内,不许访存
      (3)刷新方式
          1)集中式:在2ms内,集中安排刷新时间
                      存取/刷新周期=500ns,须要刷新32行,2ms/500ns=4000,刷新时间32*500ns
                      特色:存取周期不受刷新影响,速度快存在死区,刷新期间不能读/写
          2)分散式:把系统周期分红读/写和刷新两个部分,其中读/写+刷新的时间为系统周期
                      系统周期=500ns+500ns=1us,刷新时间为32us
                      特色:刷新时间间隔短,就用系统周期*须要刷新的行数,无死区.系统存取周期长,下降了整机速度,不适用于Cache.
         3)异步式:将上面两种方法结合
                      2ms/32=62.5us,其中读/写=60us,刷新=0.5us
                      特色:异步刷新方式仍是采起不按期刷新方式,能够在主机不访存的时间内刷新,这种方式取消了死区,但刷新控制线路复杂.
      (4)注意:
           1)刷新对CPU是透明的,CPU不知道刷新存在,可是它真实存在
           2)刷新按行进行,不须要列地址
           3)刷新与读出操做类似可是又不一样
              读出时,要对C1或C2充电,刷新时也要对其充电,可是刷新只是补充电荷,不涉及信息输出.
           4)刷新和重写(再生)是两个彻底不一样的概念
              重写是随机的,某个存储单元只有被破坏性读出后才须要重写./重写是按照存储单元进行的.
              刷新是定时的,即便许多记忆单元未长期访问,也要及时补充电荷/刷新以存储体的一行进行的.
 
7.存储器芯片与CPU的链接->地址译码采用双译码->节省地址选择线的数目
      RAM芯片:地址线/数据线/片选线/读写控制线/电源/地线
           (1)存储器组织
                字长扩展(将片选链接起来,平行扩展)/字数扩展(垂直扩展)
           (2) 与CPU连接
               存储器--CPU/地址线--地址线(方向为单向)/数据线--数据线(方向为双向)/CS--MREQ(方向为双向) /WE--WR(方向为双向) /
               地址范围:就是0000000000-1111111111,即0000H-03FFH->看的是多少K
                              1K(210)*4组成8K(213)*8的地址范围:->必须为16进制
                                        0,1片:000 0000000000~000 1111111111
                                        2,3片:001 0000000000~001 1111111111
                                        4,5片:010 0000000000~010 1111111111
               看视频5-3的11:30->特别重要
               1K(210)*4组成8K(213)*8的CPU连线:其中多的3位用来进行译码,A10A11A12经过译码与CS0-7相连,MREQ与A10A11A12 译码器相连
 
8.只读存储器ROM
      (1)特色:只能读不能写,即存储的内容不能改写,而且关机不会丢失.
          ROM(掩膜只读存储器)->PROM(可编程ROM,只容许写一次)->EPROM(可擦除可编程ROM,紫外线擦除)->EEPROM(电擦除)
 
9.提升存储器性能的技术
      (1)双端口存储器->为存储体配置两套设备->当A读/写的时候,B也能够读/写
          地址A          地址B
              |                  |
           译码            译码
                         |
                    存储体
               |                 |
           数据A         数据B
      (2)主存多体交叉存取方式
          把内存分红多个容量相同的个体,每一个个体相互独立,都有一套本身的外围线路,CPU能够分时访问每一个个体.
          存在->相关问题->后面的程序须要前面的结果/指令的相关和数据的相关
 
10.虚拟存储器->解决容量的问题
     (1)问题的提出
         因为成本,工艺,速度的缘由,内存的容量受到限制,用户但愿内存容量增大.
         解决办法:
         把外存当内存用,所需的程序和数据及时自动地从外存调入内存
     (2)虚拟存储器->对系统程序员不透明,对应用程序员透明
         由主存和辅存组成,速度至关于主存,容量至关于存储系统.
     (3)理论依据
         一个程序运行时,在一小段时间内,只会用到程序和数据的很小一部分,仅把这部分程序和数据装入主存储器中.
     (4)相关概念
         1)地址(虚拟地址)->能够很大
              程序员编程以及CPU经过指令访问内存,所用的程序地址,寻址空间彻底由指令中地址码成度决定,地址码32位,寻址空间可超过4G
         2)物理地址(真实地址)
              内存实际提供的地址,寻址空间大小彻底由内存容量决定.
         3)辅存地址(磁盘地址)
         区分:形式地址,有效地址,指令的地址,指令中的地址
     (5)地址映像与地址变换
         与Cache中的相同
         地址变换通常由OS(操做系统)自动变换
     (6)实现
         软硬件共同实现
 
11.存储器系统的层次结构
     CPU<->Cache<->内存<->外存
     CPU<->内存<->外存
     (1)Cache<->内存
         速度接近与Cache,容量接近内存,价格接近主存,解决了高速度和低成本之间的矛盾.
     (2)内存<->外存
         速度接近内存,容量接近外存,CPU不能直接访问辅存,辅存只与内存交换信息.
     (3)三级Cache
         主板上的Cache
         CPU内部
         CPU两边分离
         原则上任何外设均可以有Cache

 
 第六章--中央处理器--控制器
1.控制器是硬件系统的核心
  操做系统是计算机系统的核心
  加法器是运算器的核心
  控制器/运算器/Cache组成CPU
 
2.取指令:(如下都为微操做)
     1)PC-(AR)->MAR
     2)发出读信号
     3)M[MAR]->MDR
     4)MDR-(DR)->IR
     5)PC+1->PC
  分析指令:(从IR中分析指令)
     (1)操做码通过译码器进行译码
     (2)分析操做数
  执行指令:
 
3.微操做信号发生器
     用于发出微操做信号
 
4.控制器的基本组成
     (1)组成原理图,课本P
     (2)基本组成
         1)指令部件
            程序计数器PC,指令寄存器IR,指令译码器ID
            PC:功能->存放后继指令(下一条指令)的地址
            注意:取指刚开始时,PC中包含的是现行指令的地址.取指完成后,PC中包含的是后继指令,PC的位数应该与MAR(存储器地址寄存器)的位数相同,单向
            IR:功能->存放现行指令
            注意:IR的位数等于指令字长,指令字长等于存储字长的整数倍
            ID:功能->分析指令所表明的操做,产生相应的控制信号
         2)时序电路
              功能->产生计算机各功能部件所需的各类时序信号
         3)微操做序列造成部件(核心)
              功能->综合指令部件提供的操做信号,时序部件产生的时序信号部件的反馈信号,造成不一样机器指令所需的不一样微操做指令.
         4)中断机构:处理异常,特殊功能
         5)其余
              地址造成部件:造成操做数的有效地址
              控制台:实现用户对机器的干预
              总线及控制逻辑:对总线进行管理
 
5.控制器的功能
     (1)MAR是单向的,MDR是双向的,IR是单向的
     (2)取指令            
         1)PC-(AR)->MAR
         2)发出读信号
         3)M[MAR]->MDR
         4)MDR-(DR)->IR
          5)PC+1->PC
     (2)分析指令
         指令在IR中进行分析:对操做码部分译码,送至微操做序列造成部件,造成指令所对应的一系列微操做,地址码部分送至地址造成部件(取决于所采用的寻址方式),造成操做数的有效地址.
     (3)执行指令
         从有效地址中取出操做数,并按照操做性质完成指令表明的各类操做.
     (4)控制主机与I/O设备交换信息
     (5)中断控制
 
6.控制器分类
     微操做控制信号发生器是控制器的核心,根据微操做信号的产生方式不一样,能够把控制器分红:组合逻辑控制器和微程序控制器两大类.
     (1)组合逻辑控制器->纯硬件实现
         特色:设计,测试,维修困难,难于实现设计自动化/速度快
     (2)微程序控制器
         程序存储思想:
              使一条机器指令对应一个微程序序列,执行微程序序列,至关于执行指令对应的微操做序列,从而实现指令规定的操做.
         特色:调试,修改方便,但速度不及组合逻辑控制器
     注意:这两种控制器的设计方法不一样,可是完成的功能同样,所产生的微操做命令序列同样.
 
7.控制方式与时序系统
     (1)控制器的控制方式
         控制器如何在时序上对指令的执行过程实施控制.
         1)同步控制->全部指令的时间必须同样,以最长的时间为标准.
              在任何状况下,已定的指令在执行时所需的机器周期数和时钟周期都固定不变,都由CPU统一的时序信号控制(与主频同步)
              特色:控制简单,设计方便,实现容易,费时,效率低
              如今微,小型机中,都用改进的同步控制方式
                   中央控制:指令执行时间接近,相同的指令,由中央控制器的主时钟实现同步
                   局部控制:少数执行时间差异大的指令,由局部控制器发出的节拍控制,可是局部控制器的时钟也要与中央时钟同步.
         2)异步控制(分散控制)
                 机器没有统一的时钟,各部件分设本身的时钟,按照微操做实际所需,由应答线路控制.
                 机器执行指令,须要多少时间就分配多少时间.
                 特色:省时,效率高,可是控制复杂.
         3)联合控制
                 同步与异步结合使用
                 执行时间差很少的指令用同步,执行时间差别大的,用异步.
                 通常:功能部件内,用同步;功能部件间,用异步的方式
                 特色:较折中
 
8.时序系统->产生各类定时信号,以协调各部件工做
     (1)有关概念
         1)指令周期->从取指开始,到执行完该指令所需的所有时间.
            不一样指令,指令周期长短不一,乘法比加法费时,间接寻址比直接寻址费时.指令执行时间越长,指令周期越长.
         2)机器周期->CPU执行一个基本操做(以CPU在内存中读取一个指令字的最短期规定CPU周期,例如:取指令,分析指令等都为一个机器周期)所需的时间
              一个指令周期包含2~n个机器周期
              若某个机器周期被CPU用来
                   取指--CPU取指周期
                   执行--CPU执行周期
                   间址--CPU间址周期
                   处理中断--CPU中断周期
                   为标志CPU工做在哪一个周期,每一个周期设置一个周期状态触发器,CPU进入此周期,触发器为1,不然为0.
                   存储器中存储的指令和数据,如何区分指令和数据?
                        从CPU取指周期取出的必定为指令,其余的可能为数据.
         3)时钟周期->微机主频的倒数->一个机器周期包含多个节拍
              计算机中最基本的时间单位->不能在分的时间单位(与节拍区分开)
              一个时钟周期,一个时钟周期能够完成一个,两个,多个微操做
              每一个时间段对应一个电位信号,称为节拍电位信号->微机系统中就是一个时钟周期
             取指令->如下为微操做
             1)PC-(AR)->MAR
             2)发出读信号
             3)M[MAR]->MDR
             4)MDR-(DR)->IR
             5)PC+1->PC
     (2)机器主频16M,平均每条指令执行时间为2个机器周期,每一个机器周期由2个时钟周期组成,机器速度.    
              机器速度=1s/(2*2/16M)=4MIPS
     (3)两种常见时序系统
         1)机器周期-电位-脉冲制
             一个机器周期划分红多若干个相等的时间段,每一个时间段对应一个电位信号(就是节拍)
             一个节拍完成一个或者几个微操做,为实现较强的控制,在一个节拍内设一个或几个脉冲,做为触发信号
             如:寄存器在一个节拍内接受数据->微操做有:清0,打开数据传送通路,接受->一个节拍,三个脉冲(节拍作准备,脉冲来工做)       
             注意:脉冲是一种触发信号,并不是最小的时间单位
         2)时钟周期时序系统
              在一些微型机中,只设机器周期和时钟周期,不设脉冲.时钟周期就是电位信号,也就是至关于上面的脉冲.
     (4)影响时序系统的因素
         1)指令系统->指令种类直接影响控制方式的肯定,指令所需的时间差很少采用同步,差距很大采用异步
         2)指令格式及寻址方式
 
9.CPU中寄存器设置
     (1)通用寄存器
         运算器:ACC,R组(几~上百个)->寄存器组
     (2)专用寄存器
         指令寄存器(IR)     程序计数器(PC)     存储器地址寄存器(MAR)     存储器数据寄存器(MDR) 状态标志寄存器(PSW)->程序状态字
     (3)CPU中的6个主要寄存器
         IR--MAR--PC--MDR--ACC--PSW
 
10.加法指令ADD R1,@R0
     取指令:(PC)->MAR,read
                M[MAR]->MDR
                MDR->IR
                (PC)+1->PC
     分析指令:OP(IR)->ID
     执行指令:(R0)->MAR,read
                   M[MAR]->MDR
                   (MDR)->Y
                   (R1)->ALUr
                   +,(Z)->R1
     上面的顺序不可以改变,以上为一个微操做序列.执行微操做序列,执行完毕后就是执行完指令
     另外一种加法指令:ADD @R1,R0
     取指令:(PC)->MAR,read
                M[MAR]->MDR
                MDR->IR
                (PC)+1->PC
     分析指令:OP(IR)->ID
     执行指令:(R1)->MAR,read
                    M[MAR]->MDR
                    MDR->LB
                    (R0)->LA
                    +,ALU->MDR
                    Write      
 
11.组合逻辑控制器的设计
     (1)设计步骤
          1)根据用途肯定指令系统(寻址方式等)
          2)根据指令系统肯定整体结构->指令系统肯定,字长和格式都肯定,肯定数据通路等,设置的寄存器都须要肯定
          3)根据指令系统和整体结构安排时序->一个指令周期分红几个机器周期,一个机器周期分红几个节拍,一个节拍分红几个脉冲
          4)根据整体结构和时序系统肯定每条指令的微操做序列
          5)根据微操做序列,列出微操做时间表,设计控制逻辑
 
12.微程序控制器设计
     (1)以软件方法进行微操做信号,以存储逻辑控制来取代组合逻辑控制,以方便克服组合逻辑控制器设计,调试,维修,困难等缺点.
     (2)主要思想:存储逻辑->代替组合逻辑
          将全部的微操做指令所有合成一个大的集合,取指令/执行指令的时候,若里面包含其中的微操做则显示为1,没有则显示为0,造成一个新的微程序.
          _ _ _ _ _ _ _ _ _ _/1000011000,其中_ 为全部的微操做集合,1/0分别表示有仍是没有,有1的时候执行,0则表示不执行.
          机器指令与微指令的区别:
               不一样的机器指令,对应不一样的微程序,将这些微程序存储于控制存储器中.执行机器指令时,只须要执行对应的微程序.
               机器指令          有序的集合->程序          存储位置->存储器
               微程序             有序的集合->微程序       存储位置->控制存储器(只读)
               一条机器指令:取指,执行两个阶段
               取指                         执行
               取指微程序段           执行微程序段
     (3)相关概念:
          微命令:控制器控制部件经过控制线向执行部件发出的各类控制命令.
          微操做:执行部件接受所执行的操做.
          注意:一个微命令对应一个微操做
          微指令:在机器的一个CPU周期(机器周期),一组实现必定操做功能的微命令的组合
                    机器指令->操做码|地址码
                    微指令->微操做码|微地址码--微地址码部分:给出下一条微指令的地址
          微程序:微指令序列
          控制存储器:存放微程序的存储器,通常为ROM
          微地址:控制存储器的单元地址
          微周期:取出并执行一条微指令所需的时间->一个节拍?
          指令周期:取出并执行一条指令所需的时间
 
13.组成部件->没有uMDR
     uCM:控制存储器,存微程序->至关于存储器
     uMAR:控存地址寄存器->至关于MAR->首址放于uCAM
     uIR:微指令寄存器,存微指令->至关于IR->由微操做码和微地址码(下一条微指令地址,自动+1)组成
 
14.工做过程
     (1)工做前:
          微程序->uCM
          机器指令首地址->PC
          对应微程序首址->uMAR
     (2)机器指令:取指周期,执行周期     取指周期->取指微程序(对不一样的机器指令,所有相同)     执行->执行微程序
     (3)一条机器指令执行过程:
           1)取指周期(公操做->所有相同)
                微首址     
                    |
                uMAR-(微指令)->uIR->uOP:微操做命令/uD:下一条微操做的地址
          2)执行周期
               OP     |     D----->注意:执行的微操做是从指令的操做码中得出的
                 |
                 ---------->uMAR------>同上
     (4)微指令地址造成方式
          机器指令的OP直接给出->仅负责给出"执行"阶段所对应的微程序的首地址,除首地址外,其他首地址都是从微地址中给出
          微指令的微地址码字段给出
 
15.CPU中流水线结构
     对指令的控制:
           时序:同步,异步,联合方式->前面内容见7
           指令执行:顺序,重叠和流水    
     (1)指令的顺序控制
          就是指令顺序的执行一遍
          取指:内存,IR,总线忙,运算器空闲
          执行:运算器忙,其余空闲
     (2)重叠技术->取指和指令重叠,CPU工做周期没延长,使用一套分析部件和一套执行部件->不能两个同时分析/执行
          就是一条指令尚未执行完毕就开始执行下一条指令
          取指     分析     执行
                                  取指     分析     执行
     或
          取指     分析     执行
                      取指     分析     执行
                                  取指     分析     执行
          注意:
               1)重叠不能加快一条指令的实现,只能加快相邻的两条或一段程序的实现.
               2)不能增长功能部件为前提
               3)实现重叠,控制困难
     (3)流水技术->由重叠发展而来->高程度的重叠
          1)思路:将一个复杂过程分红多个需时相等的子过程,每一个子过程由一个独立的功能部件完成
               入->取指->译码->取数->执行->出(就是将重叠进行进一步的细化)
          2)须要的总时间:n*t+(n-1)*t
          3)注意:->浮点数的加减法运用流水的方式实现
               流水线只能使用一套功能部件
               要保证流水的效率,必须使流水线不断流
               流水控制要解决许多控制上的问题

 
  第七章--总线系统
1.总线概念
     总线:计算机多个功能部件间进行信息传送的公共通路 。
    
2.总线基本特征:
     (1)共享性:多个部件连接在同一个总线上,各部件相互交换信息都经过这组总线传送.
     (2)分时性:同一时刻只能在一对部件之间传送信息,系统多个部件不能同时传送信息.
 
3.总线特性
     (1)物理特性:连接方式
     (2)功能特性:总线是地址线仍是数据线,仍是控制总线
     (3)电气特性:传递方向是单向仍是双向
     (4)时间特性:什么时间有效
 
4.总线性能指标
     (1)总线宽度->传输的二进制位数
     (2)标准传输率->总线上每秒传输的最大字节量
               总线宽度32位,时钟频率33MHz,最大数据传输速率=132MB/s(过程:32*33/8=132)
     (3)总线带宽->总线能达到的最高传输率
 
5.总线传送方式
     (1)串行传送->按照位进行传输
     (2)并行传送->有多少二进制位,就有多少条传输线
     (3)分时传送
 
6.单总线结构:
     优势:设备扩充,增减方便,灵活
     缺点:分时使用总线
   双总线结构:
     面向CPU:
          优势:简单,对总线传输速率要求低
          缺点:I/O设备与内存交换信息需经CPU,CPU效率低
     面向存储器:
          优势:存取速度高,减轻系统总线负担
          缺点:硬件成本高,控制逻辑复杂
   三总线结构:->系统总线,存储总线,I/O总线
 
10.总线控制(考题:为何设置总线判优控制?常见的集中式总线控制几种方法?各有特色?那种速度最快?那种最敏感?)
     为何设置总线判优控制?->解决多部件同时申请总线的使用权分配问题
     (1)总线仲裁->当多个部件同时申请时,决定哪一个部件使用总线
               1)说明:
                       a)连接到总线的功能模块有主动和被动,CPU能够为主方也能够为从方,存储器必定为从方,总线操做只能有一个主方占用总线.
                       b)必须有总线仲裁部件决定
                       c)采用优先级和公平策略仲裁
               2)按照总线仲裁电路的设置不一样,仲裁方式分为集中式仲裁和分布式仲裁两类。
                    集中式 ->总线仲裁控制逻辑集中在一处
                         a)链式查询方式 ->BR-总线请求信号;BG-总线受权信号;BS-总线忙
                              链式查询的过程:
                                   总线仲裁器接到总线请求后,若BS=0,则总线受权信号串行地从一个I/O接口传送到下一个I/O接口;
                                   假如BG到达的接口无总线请求,则继续往下查询;
                                   假如BG到达的接口有总线请求,BG信号便再也不往下查询,该I/O接口就得到了总线控制权,使BS=1。
                              特色:
                                   判优方法简单,扩充设备容易;
                                   总线请求优先级较低的设备容易被忽略;
                                   总线受权信号串行传送,因设备的差错,容易形成堵塞。
                              优势:只用不多几根线就能按必定优先次序实现总线仲裁。
                              缺点:对询问链的电路故障很敏感。
                         b)计数器定时查询方式->多了一组设备地址线,少了一根总线容许线BG
                              计数器定时查询过程:
  各设备经BR发出请求;
  总线仲裁电路判断:当BS=0时,开始计数;
  计数值经地址线送各设备:计数值=某设备地址,该设备获总线受权;
  当计数从0开始时,谁的地址号越小越优先,当计数值从终止点开始,全部设备优先级相同。
                              优势:比较灵活。
                              缺点:线数比较多。
                         c)独立请求方式->每一个设备有独立的BR和BG。 当有总线请求时,有总线总裁内部进行判优裁决。
                              优势:判优及相应的速度快;优先次序控制灵活。
                              缺点:设备、电路复杂。
                    分布式->不须要中央仲裁器,以优先级总裁策略为基础.
 
11.总线的定时
     (1)总线一次信息传送过程:请求总线->总线仲裁->寻址->信息传送->状态返回
          同步定时->按照统一的时钟进行同步
          异步定时
 
12.接口的功能
     1.设置数据的寄存、缓冲逻辑,以适应CPU与外设之间的速度差别;
     2.可以进行数据类型、格式等方面的转换;
     3.可以协调CPU和外设二者在信息的类型和电平方面的差别;
     4.协调时序差别;
     5.地址译码和设备选择功能;
     6.设置中断和DMA控制逻辑,以保证在中断和DMA容许的状况下产生中断和DMA请求信号,并在接收到中断和DMA应答以后完成中断处理和DMA传输。
 
 
 
第八章--输入输出系统
1.中断系统->程序安排一条指令启动外设,外设准备,CPU继续执行源程序,准备好后发出中断请求->一次中断只传送一个单位数据,一个字或一个字节
     (1)中断与转子的区别
          1)转子是程序安排好的,事先安排的,中断可能是一些特殊状况,随机的
          2)转子程序之间有联系,而中断程序没有联系
          3)中断过程复杂,中断多有硬件实现.
     (2)中断类型
     自愿中断:人为设置
     强迫中断
          处理方式:
               程序中断/简单中断(DMA)
          中断源:
               可屏蔽中断/不可屏蔽中断
     (3)中断过程
          1)中断请求
               CPU在现行指令周期结束后才查询有无中断请求.
               每一个中断源必须设置中断请求触发器IQ,保存请求信号.
               中断屏蔽触发器IM,反应主机是否容许I/O设备提出中断请求.IM=1说明屏蔽,请求不送CPU
          2)排队判优
               可由硬件或者软件实现
          3)中断响应
               条件:
                    a)一条指令执行完毕
                    b)IQ=1,IM=0
                    c)开中断
               关中断->保护旧现场(使用堆栈)->创建新现场
               为何关中断?
                    要保护旧现场.
               关中断后外来更高级的中断怎么办?
                    中断处理时在使用
          4)中断处理
               开中断->运行中断程序->关中断->恢复旧现场
          5)中断返回
     (4)多重中断
          1)条件:
               a)CPU响应中断后,开中断,响应更高级别中断
               b)优先级高的中断源才能中断优先级低的中断源
          2)中断处理顺序
               1->2->3->4,屏蔽字设置?->1的优先级最高,4的最低
                1     2     3     4
            1  1     1     1     1
            2  0     1     1     1
            3  0     0     1     1
            4  0     0     0     1
     (5)中断特色
          1)能响应外设的随机请求
          2)CPU与外设并行工做(必定程度)
          3)对于高速外设,频繁中断会使其效率降低,CPU不及时响应请求会形成信息丢失
 
2.直接存储器存储方式DMA->内存与外设之间设置DMA
     (1)DMA产生的缘由:对于高速外设,频繁中断会使其效率降低,CPU不及时响应请求会形成信息丢失.
     (2)高速外设采用DMA,高速外设不采用中断的方式.
     (3)概念:->内存与外设之间直接传送数据的通路
          彻底由硬件实现的I/O实现方式.在I/O设备与主存之间创建传送数据的通路,在DMAC的控制下进行数据交换,不须要CPU干预.
     (4)基本操做
          1)外围设备发出DMA请求
          2)CPU响应请求,DMAC接管总线控制
          3)DMAC对内存寻址
          4)向CPU报告DMA操做结束
     (5)DMA与内存交换信息时,此时CPU一直工做,要是CPU请求访内,该如何处理?
          1)CPU停机法:DMA优先拥有总线使用权,直至数据传送完毕,CPU才执行访内.->DMA不优先致使信息丢失
                  特色:控制简单,适用于数据传输率极高的设备.
               CPU与内存效率低
2)周期窃取法:DMA优先,窃取1~2个周期,交换1~2个单位的数据,CPU访内
       为何DMA优先?
          I/O操做有时间要求,前一个I/O数据必须在下一个I/O数据访内请求到来以前完成,不然形成数据丢失
       特色:
          实现I/O传送,发挥了CPU与内存的效率,经常使用
3)交替访存法:系统周期分红两部分:一个给DMA,一个给CPU
       特色:不中止源程序的执行,保证DMA完成,一个高效方式,硬件成本高
     (6)DMA特色
          1)I/O与内存交换信息,不占用CPU,CPU效率高.
          2)DMA交换一批数据开始前和开始后,仍要以中断方式进行处理.
          3)DMA与中断方式,有区别可是又互相配合.

 
第九章--外部设备
1.内存->半导体->速度快,容量小
   外存->磁性->容量大,速度慢
 
2.磁盘:最上面的一层和最下面的一层不记录数据.->正反均可以存数据
     有效记录面:m-2(m为多少面)
 
3.磁盘的磁道->最外面为0,最里面的为n->都是同心圆
     每个磁道上有扇区->每一个扇区存储512B->最里面的密度最大,最外面的密度最小
 
4.存取方式:
     磁头移动的位置为随机的,磁道顺序存放信息.
 
5.存储容量
     C=n*k*s(n:面数,k:道数/面,s:位数/道)
     容量(B)=柱面量*磁头数*扇区数*512
     格式化容量:容量(B)/1024
     出厂容量:容量(B)/1000

转载请注明出处, O(∩_∩)O谢谢
相关文章
相关标签/搜索