请选择 进入手机版 | 继续访问电脑版

计算机组成原理 - 速记版(为coursera.org上pku课程总结)

[复制链接]
丶禁飞 发表于 2021-1-1 10:31:59 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

  • 概论:分类应用,概念,根本组成,层次结构
  • 盘算机组成根本结构

    • 冯 诺伊曼结构

      • CPU

        • 控制器:CC,ALU
        • 运算器:CU(主要是控制电路,指令译码):IR,PC

      • 主存

        • 主存储器:MDR,MAR


    • 盘算机执行指令的过程

      • 取指:PC, MAR, M, MDR, IR
      • 译码:OP(IR),CU
      • 执行:ADD(IR), MAR, M, MDR, ACC
      • 回写:回写到目的地点

    • 根本的简朴模子

      • CPU
      • 北桥:一般是用于一些高速设备和CPU之间的毗连,如显卡。
      • 南桥:主要是用作非运算类的设备,如IO
      • 系统芯片SoC(System on a clip):将盘算机的所有电子系统集成到单一的芯片上面
      • Moore’s Law


  • 总线系统
  • 中央处置处罚器(ALU)(运算器和控制器)

    • 逻辑运算

      • R型:and/or/nor
      • i型:andi/ori(高16位全为0,不是对于低位的复制

    • 算术运算

      • R型:add/addu,sub/subu
      • i型:addi/addiu
      • 加法和减法的实现

        • 半加法器half adder

          • 将两个二进制相加,使用异或门实现
          • 改进:正常位实现异或门实现,举行使用与门实现

        • 全加器full adder:由两个半加器构成,而且增加一个举行线路

          • 溢出:仅仅针对有符号的数举行相加
          • 判断标记:Cin和Cout不想等,就溢出

            • 门电路:异或门相连,值差别时就为真,就溢出
            • 为什么可以作为标记位?

              • 当Cin为0时,Cout为1体现最高位两个1相加,溢出
              • 当Cin为1时,Cout为0体现,进入的是两个0相加,即这一位不存在



        • 减法:在最低位使用一个异或门
        • MIPS:addu和addiu是两条不处置处罚溢出的指令
        • X86: 把opcode看作是有符号的,多了一个标记位OF

      • 加法的逻辑优化·

        • 行波进位加法器(RCA,Ripple Carry Adder)

          • 结构:低位全加器的Cout毗连至高一位全加器Cin,因此,第二位要先品级一位盘算完成后再盘算
          • 优点:电路简朴,设计方便
          • 缺点:高位必须期待低位举行
          • 淹灭时间(以4位累加器件):T+2T*4= 9T

        • 超前进位加法器(CLA)

          • 本质上是将电路进位盘算,这也意味着电路会复杂表
          • 32位的CLA;常见方法:使用4个CLA举行桥接
          • C1 = G0+P0C0
          • C2 = G1+P1C1
          • C3 = G2+ P2C2
          • 淹灭时间:4T



    • 乘法器:

      • 无多位暂存寄存器,举行到哪一位就对哪一位举行直接的相加
      • 根本硬件:

        • 乘数寄存器Multiplier 带右移
        • 被乘数寄存器Multiplicand 带左移
        • 乘积寄存器Product
        • ALU(8位加法器:乘积最大数)
        • 控制电路

      • 根本过程:

        • 1.查抄“乘数寄存器”最低位
        • 2.值为1执行:乘积值和被乘数相加;大概不举行
        • 3.1将被乘数寄存器向左移动一位;
        • 3.2 将乘数寄存器向右移动一位
        • \4. 是否已经到第N次相关的循环

      • 优化:

        • 软件:

          • 因为寄存器的值被改变后,需要比及下一个clock改变才会生效,所以,2,3.1,3.2可并行举行;

        • 硬件

          • 将被“乘数寄存器”使用最小值,并去掉移位功能
          • 将“乘积寄存器”的高位用来存储相关,低4位用于存储乘数,并举行相应的右移动
          • 乘数寄存器不要
          • alu改为最少位数的



    • 除法器:

      • 根本硬件

        • 除数寄存器 Divisor:带向右移动
        • 商 Quotient:带向左移动
        • 余数(被除数寄存器) Remainder
        • ALU:(加法和减法两种)

      • 根本过程

        • 1 余数 = 余数- 除数
        • 2 查抄余数
        • 2.1 大于便是0 ,商左移1位,新的设为1
        • 2.2 小于0,回退(加回原来的值),新的最右位设为0
        • 3 除数右移1位
        • 4 查抄值是否已经循环完毕大概余数准确值

      • 优化:

        • 软件:因为查抄后的值会导致执行差别,因此,无法并行执行
        • 硬件:

          • 除数寄存器,与上面类似
          • 商寄存器取消
          • alu类似
          • 余数寄存器

            • 与乘法类似,高32位为记载相应的值,低32位存相应的商
            • 支持左移和右移,执行加法时左移,执行减法时右移动




    • 门电路根本原理:

      • 非门
      • 与门
      • 或门
      • 异或门:两值不相同时,则取真值

    • 寄存器的根本原理:

      • D触发器:output的值随着clock周期举行相关的变化


  • 指令系统(x86,MIPS ISA)

    • RISC和CISC:精简指令集和复杂指令集
    • X86体系结构

      • X8086

        • 以IP作为PC
        • 具备16位地点,所以寻址本事是2^16
        • 为了扩展寻址本事到2^20, 增加了4个段寄存器:CS代码段, DS数据段, ES附加段, SS堆栈段
        • 逻辑地点->物理地点

          • 16位段基值:16位偏移量->段基值左移4位形成实际20位段基值:16位偏移量-> 2^物理地点(20位)+偏移量


      • X80386

        • 在8086的底子上新增加FS,GS两个段寄存器,以及10个通用寄存器,形成总共的32位

      • X86-64

        • 新增8个64位的寄存器
        • 地点不是统一长度,需要实现变址


    • X86指令简介

      • 指令的分类:

        • 运算类指令:ADD/ADC(带进位)/INC
        • 传送类指令:MOV EBX,40
        • 转移类指令:JNZ
        • 控制类指令:LOOP


    • X86复杂指令例子

      • 串操纵指令

        • 作用

          • 对存储器中的每一个数据举行每次一个元素的操纵
          • 根本单位是字节或字
          • 串长度可达64KB

        • 分类

          • 共5条串操纵指令
          • 尚有3种重复前缀,与串操纵指令共同使用

        • 例子:MOVSB

          • MOV AX,DS
          • MOV ES,AX
          • MOV SI,2040H
          • MOV DI,2060H
          • CLD
          • MOV CX,3(界说执行三次)
          • REP MOVSB



    • MIPS体系结构(MIPS相关的部门需要重看)

      • 由MIPS公司发展而来,现在仍然广泛运用于数字电视,机顶盒等嵌入式设备
      • MIPS指令特点

        • 固定指令长度
        • 简朴寻址模式
        • 指令数量少,功能简朴
        • 只支持Load和Store这两种对存储器的访问

          • load和store的区别(方向完全相反):由寄存器写入暂时寄存器($8),由暂时寄存器($8)写入寄存器
          • lw $8,12($9)/sw $8,40($19)



    • MIPS体系指令

      • 举例MIPS实现A[10]=h + A[3]

        • lw $8,12($9)
        • add $8,$18,$8; $8 = $8+$18
        • sw $8,40($19)

      • 分类:

        • 符号的根本寄义

          • opcode操纵寄存器
          • rs源操纵寄存器
          • rt第二个源操纵寄存器
          • rd目的操纵寄存器
          • shamt移位寄存器
          • funct盘算

        • R型:寄存器 32

          • 根本结构:opcode: rs: rt: rd: shamt: funct = 6bit: 5bit: 5bit: 5bit: 5bit: 6bit

        • I型:立刻执行

          • 根本结构:opcode: rs: rt: immediate = 6bit: 5bit: 5bit: 16bit
          • PC+2^15 bytes

        • J型:转移类

          • 分支指令:控制相关的分支系统

            • 条件分支 beq rs, rt, true

              • 如何充实发挥16bit作用?

                • 以当前pc为准16bit 2^15
                • MIPS固定为32位
                • 16位位移量的底子上 加4位 2^15 = 2^17

              • 分支不建立:pc=pc+4
              • 分支建立:pc =(pc+4)+ immediate*4

            • 非条件分支

              • opcode占用6位
              • pc= (pc的高4位)+地点量:地点范围就变为2^(32-4)
              • 如何调用更远的目的地点?

                • 2次调用j指令
                • 使用jr指令:jr,js







  • 周期处置处罚器

    • 单周期处置处罚器

      • 处置处罚器的设计步调

        • 1.分析指令系统,得出对数据通路的需求。
        • 2.为数据通路选择符合的组件。
        • 3.毗连组件建立数据通路。
        • 4.分析每条指令的实现,以确定控制信号。
        • 5.集成控制信号,形成完整的控制逻辑。

      • 需求:
      • 数据通路:
      • 指令

        • 运算指令:
        • 访存指令:

          • 只有访存指令才需要访存时间
          • lw负责从源寄存器取值,写会寄存器
          • sw负责将值写回rd,缺少回写

        • 分支指令:

          • 只负责判断,不会写入寄存器值


      • 控制信号:

        • 控制信号的逻辑表达式:
        • 控制器的逻辑表达式:opcode(6bit)和func(6bit)构成


    • 流水线处置处罚器

      • 指令执行处置处罚过程

        • 取指Fetch
        • 译码Decode
        • 执行Execute
        • 访存Memory
        • 回写Write back

      • 流水线的优化

        • 简朴优化

          • 流水线的平衡

            • 不平衡的流水线会对性能造成影响,主要是期待耗时

          • 时钟周期

            • 将大的操纵举行再切分小的。形成超等流水线技能(Super pipeling)
            • 实际操纵:提升时钟的相关的频率
            • 缺点:单条指令的延迟读取比例会增加,进而影响性能

          • 汗青处置处罚器的发展:

            • 频率就是流水线深度的体现(时钟周期)
            • Intel:

              • 1986 R200/R3000 5级
              • 1993 Pentinum 5级
              • 1995 Pentinum Pro 12级(实验引入RISC创造流水线)
              • 2004 Pentinum 4(Presoft)31级

            • ARM:

              • 1997 ARM9/ARM11 5级
              • 2013 CoreX-A57 15 级别(现在根本主流芯片根本维持的深度)



        • 超标量流水线SuperScalar

          • 原理:拓宽流水线(通常具有2条以上的并行工作的流水线的结构)
          • 采用超标量的芯片:1964 CDC600(第一台)->Cortex-A9
          • 与标量之间的区别:

            • 单周期->标量流水线:时间并行性的优化
            • 标量流水线->超标量流水线:空间并行性的优化

          • 多核CPU

            • 在一个CPU芯片中集成了多个超标量处置处罚器的处置处罚器核



      • 流水线的冒险

        • 通用解决方案:

          • 流水线停顿(stall),产生空泡,通俗地说就是期待;

        • 结构冒险

          • 产生原因:同一个指令被同时执行读和写的操纵(本质是硬件资源的不敷)
          • 问题:指令和数据放在同一存储,不能同时读存储器?

            • 指令和数据在存储器而不是寄存器时,举行单独的存储。

          • 问题:读和写同时发生?

            • 前半个时钟读,后半个时钟写,而且设置独立的读写口。


        • 数据冒险

          • 产生原因:一条指令需要使用之前的指令效果,但效果没有写回。
          • 问题:需要使用到先前的指令?

            • 软件:使用nop来占用更多时间周期,到达时钟平衡
            • 数据前递(Forwading):省略相关的执行步调(如读写寄存器),硬件实现叫旁路(即增加多的硬件实现相应的功能)

          • 问题:一条指令需要使之前指令的访存效果?

            • 单数据无法解决,因此只能使用硬件上前递解决


        • 控制冒险

          • 产生原因:无法确定下一条指令出现的冒险
          • Branch Frequency:

            • i7:4 * 16
            • ARM Cortex-A15: 3*15

          • 转移指令占流水线的比例大概在15%~25%
          • 延迟转移技能:将不需要到场前者运算的指令放进需要期待的周期中,从而节约一个周期。


      • 主要思想:分析相关的停顿和寄存器,从而举行相关的优化。


  • 存储管理:与操纵习题存储器管理类似

    • 根本功能:

      • 非易失性(断电仍然生存,主要是bios和芯片)
      • 可读可写
      • 随机访问(与位置有关)
      • 访问时间

    • 层次结构(从第一项到最后一项为过程方向)

      • CPU
      • SRAM(cache)
      • DRAM(内存)
      • DISK

    • DRAM

      • 根本结构:通过行地点/列地点举行定位访问数据
      • 根本过程

        • 行选 -> tRCD -> 列选 -> CL ->数据-> 预充电->tRP -> 行地点->tRCD
        • 行选和列选的过程主要是对单位举行刷新(refresh),使得原来体现“1”的电荷有效,体现为“0”的保持无电荷状态

      • 发展

        • SDRAM 同步Sync的过程是通过提升时钟来提升相关的频率
        • SDR SDRAM单通道 同步动态存储

          • 只在时钟clock上升时传送数据

        • DDR SDRAM双通道 同步动态存储

          • 时钟clock上升和下降都传送数据


      • 优点:

        • 集成度高
        • 功耗低
        • 代价较低

      • 缺点:

        • 速度较慢
        • 定时刷新


    • SRAM(cache)

      • 相同的一个DRAM单位,SRAM需要6个mos晶体管
      • 根本结构

        • 地点线
        • 片线:是否有读写功能
        • 数据线
        • 读/写线:决定是否举行读/写

      • 优化条件:

        • 空间局部性:以数据块(block)为单位。
        • 时间局部性:提高访问数据的频率

      • 策略

        • 掷中时策略

          • 写穿透Write Through:数据同时写入cache和主存
          • 写返回Write Back:数据只写入cache,仅当被替换时再写入cache

        • 失效时策略

          • 写不分配Write allocate:直接写入主存
          • 写分配Write Non-allocate:将该数据的块写入cache后,再将数据写入cache


      • 访问时间

        • 盘算公式:
        • 失效原因:

          • 义务失效 compulsory miss: 完全访问不到
          • 容量失效capacity miss:不能存下更多的块
          • 辩论失效conflict miss:替换算法

        • 组合方式:(解决容量失效)

          • 直接相联
          • 全相联

        • 替换算法(解决辩论失效,详细的可在操纵系统中检察)

          • 随机
          • 轮转
          • 最少使用



    • 单位:

      • 总结:除高速缓存和内存外,都采用国际单位制的10进制,2进制的单位缩写需要在国际单位后面加i
      • 1 Byte = 8 bits(看清楚缩写,bit才为一个二进制)


  • 中断和异常

    • 泉源和汗青

      • 第一台带有中断的呆板UNIVAC
      • 中断工作的最初原理是:专向地点为0的执行修复大概停机

    • 表结构

      • 内存分区

        • 中断专用区:一般用于初始化代码
        • 通用区
        • 中断专用区:主要用于中断向量表

      • 根本

        • 中断向量:
        • 根本体现方法:IP:CS(实模式)
        • 物理地点盘算:CS左移4位(2^4)+偏移量IP

      • 内容和地点的区别:

        • 内容:中断指令*相应的位数
        • 地点:根据IP:CS从低到高举行取出

      • 扩展:

        • 掩护模式:EIP(16->32):CS
        • 掩护模式下:段基址不在CS中而在内存中
        • GTD 全局形貌符表
        • GTDR 全局形貌符表的地点寄存器
        • 中断形貌符表:

          • 专用中断:0~4

            • 类型2:非屏蔽中断,不属于内部中断

          • 生存中断:5~31
          • 用户自界说:32~255



    • 处置处罚过程

      • \1. 关中断
      • \2. 生存中断点
      • 3.识别中断源
      • 4.掩护现场
      • 5.执行中断步伐

        • 主要是为了响应高优先级
        • 通过中断标记位举行判断IF(1时允许响应)
        • 相关指令

          • STI: 1
          • CLI:0


      • 6.规复现场并返回

    • 内部中断的分类

      • 类型0:除法错中断

        • 与OF位有关
        • 一般由步伐员自界说

      • 类型4:溢出中断

        • 规复现场并返回

      • 类型1:单步中断 :

        • 与TF位有关
        • 除了单步中断外,所有内部中断都不可以通过软件方法屏蔽

      • 类型3:断点中断
      • 常用方法:通过类型3确定出现问题的大要方向,通过类型1举行内部详细筛查
      • 特点:

        • 中断类型号
        • 屏蔽方式
        • 优先级

      • 功能调用:

        • INT指令
        • ROM BIOS中断

          • 例子

            • MOV AH,1
            • MOV CX,0
            • MOV DX,0
            • INT 1AH

          • 10H

            • 0 设置显示位置
            • 2 设置光标位置

          • 1AH

            • 0读时钟
            • 1置时钟


        • DOS中断

          • INT 21H
          • 比BIOS更完善和易于操纵
          • 06H 直接控制IO
          • 09H 显示字符串
          • 2CH 取时间
          • 2DH 设置时间




  • 输入和输出设备 (I/O相关设备)

    • I/O的根本功能

      • 数据缓冲:解决CPU与外设之间的速度差距
      • 提供联结信息:协调与同步数据互换过程
      • 信号与信息格式的转换:模/数,数/模,串/并,并/串转换,电平转换
      • 设备选择
      • 中断管理
      • 可编程

    • I/O指令说明:

      • IN AC,PORT
      • OUT PORT,AC

        • OUT中存在M/IO来决定读取memory照旧IO

      • 取指方式

        • 直接取址
        • 间接取址


    • I/O设备的体例方式

      • 分开和统一是指I/O设备和存储器的结合方式
      • 统一编址

        • 优点

          • 可以用访问存储器的指令来访问I/O端口,访问存储器的指令功能比力齐备,可以实现直接对I/O端口内的数据举行处置处罚
          • 可以将CPU中的I/O操纵与访问存储器操纵统一设计为一套控制逻辑,

        • 缺点

          • 由于I/O端口占用了一部门存储器地点空间,因而使存储地点空间减小
          • 由于利用访问存储器的指令来举行I/O操纵,指令的长度通常比单独I/O指令要长,因而指令的执行时间也比力长


      • 分开编址

        • 优点

          • I/O端口不占用存储器地点,不会淘汰用户的存储器地点空间
          • I/O指令编码短,执行速度快
          • I/O指令的地点码较短,地点译码方便
          • 采用单独的I/O指令,使步伐中I/O操纵和其他操纵层次清晰,便于理解

        • 缺点


    • I/O的控制方式

      • 寄义:

        • CPU控制外设的数据传送类

      • 方式:

        • 软件方式

          • 步伐控制方式(无条件传送,步伐查询方式)

            • 无条件传送: 不查抄状态之直接传送,容易造成数据辩论
            • 步伐查询方式:通过CPU循环查找I/O设备是否有请求

          • 中断控制方式

            • 中断查抄相应的状态,不消CPU循环。设备可以向CPU发送相关的信息。
            • NMI 非屏蔽中断
            • INTR 可屏蔽中断

              • PIC中断控制器
              • APIC硬件外部中断



        • 硬件方式

          • 直接存储方式(DMA):通过硬件实现相应的中断

            • DMAC芯片

              • 拥有两个模块:M:内存模块和S:从模块接口
              • 作为CPU的一部门







来源:https://blog.csdn.net/sinat_20744625/article/details/111992206
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

发布主题

专注素材教程免费分享
全国免费热线电话

18768367769

周一至周日9:00-23:00

反馈建议

27428564@qq.com 在线QQ咨询

扫描二维码关注我们

Powered by Discuz! X3.4© 2001-2013 Comsenz Inc.( 蜀ICP备2021001884号-1 )