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

本文介绍了计算机的基本组成,包括冯诺伊曼结构、CPU、主存储器和指令执行流程。讲解了CPU中的控制器和运算器,以及指令的取指、译码和执行过程。还探讨了简单的加法器和乘法器实现,以及流水线处理器的工作原理。此外,提到了MIPS和X86指令系统的特点和指令分类。最后,讨论了存储管理、中断和异常处理,以及I/O设备的控制方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 概论:分类应用,概念,基本组成,层次结构

  • 计算机组成基本结构

    • 冯 诺伊曼结构

      • 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 余数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值