计算机组成原理(详细)

  • 计算机系统概述

    • 计算机发展历程

      • 硬件

        • 1946-1957 第一代 电子管

          • 面向机器的语言

        • 1958-1964 第二代 晶体管

          • 面向过程的语音

          • 有了操作系统的雏形

        • 1964-1971 第三代 中小规模集成电路

          • 高级语言迅速发展

          • 有了分时操作系统

        • 1972-现在 第四代 大规模、超大规模集成电路

          • 微处理器

          • 并行 流水线 高速缓存 虚拟存储器

        • 微型 处理器的发展是以微处理器技术为标志

        • 机器字长

          • 计算机一次整数运算所能处理的二进制位数

        • 摩尔定律

          • 揭示了信息技术进步的速度

          • 集成电路上可容纳的晶体管数目约每隔18个月会增长一倍,整体性能也将提升一倍

      • 软件

        • 机器语言 汇编语言

        • FORTRAN

        • PASCAL

        • C++

        • Java

    • 计算机的分类与发展方向

      • 电子计算机

        • 电子模拟计算机

        • 电子数字计算机

          • 专用计算机

          • 通用计算机

            • 巨型机

            • 大型机

            • 中型机

            • 小型机

            • 微型机

            • 单片机

      • 指令和数据流

        • 单指令流&单数据流

          • 冯诺依曼体系结构

        • 单指令流&多数据流

        • 多指令流&单数据流

          • 没有意义,不存在

        • 多指令流&多数据流

    • 计算机系统的组成

      • 原始数据——输入设备(人与机器沟通的桥梁)——运算器(处理数据)——输出设备——计算结果

      • 控制器:协调各个部件相关的问题

      • 存储器:存放程序 数据

      • CPU=运算器+控制器

        • 运算器

          • MQ

          • ACC

          • 核心ALU(算术逻辑单元)

          • X(其他的)

          • PSW

        • 控制器

          • CU 分析指令 给出控制信号

          • IR

          • PC

      • 主机=CPU+主存储器

      • I/O设备=输入设备+输出设备

      • 外设=辅助存储器+I/O设备

    • 计算机工作过程

      • CPU及工作过程

        • 取数指令

          (PC)指的是PC里的数据 例如(PC)+1——>PC 前面括号不能省略,表示地址+1 为下条指令做准备

          • M(MAR)取存储单元中的数据

          • (ACC)取相应寄存器中的数据

          • 指令:操作码+地址码

          • OP(IR)取操作码

          • Ad(IR)取地址码

          • 取数指令步骤

            • 取指令

              • (PC)——>MAR

                把PC的内容放到MAR当中

              • M(MAR)——>MDR

                把MAR数据取出来放到MDR当中

              • (MDR)——>IR

                ​MDR内容放到指令寄存器

            • 分析指令

              • OP(IR)——>CU

                将操作码放入CU当中

            • 执行指令

              • Ad(IR)——>MAR

                将地址传到MAR当中

              • M(MAR)——>MDR

                把MAR数据取出来放到MDR当中

              • (MDR)——>ACC

                将取出来的数据放到ACC中

    • 计算机软件系统

      • 系统软件

        • 管理整个计算机系统使系统资源得到合理调度

        • DBMS 属于系统软件,DBMS而非DB

      • 应用软件

        • 完成用户特定任务使用系统软件提供的资源接口

    • 计算机编程语言

      • 机器语言

        • 二进制代码

      • 汇编语言

        • 助记符

      • 高级语言

        • 整块编译

          • 编译程序(C)

        • 一步一步编译

          • 解释程序(Python)

      • 编译

        • 由高级语言转换成低级语言

      • 汇编

        • 由汇编语言转换成机器语言

    • 计算机系统的层次结构

      • 高级语言机器

        虚拟机器M4

        • 用编译程序翻译成汇编语言程序

        • C=A+B

      • 汇编语言机器

        虚拟机器M3

        • 用汇编程序翻译成机器语言程序

        • LOAD A,16

      • 操作系统机器

        虚拟机器M2

        • 用机器语言解释操作系统

        • 防止内存冲突啊等等

      • 以上是软件层,以下是硬件层(不严格的界限)

      • 用机器语言的机器

        虚拟机器M1

        • 用微指令解释机器指令

      • 微指令系统

        虚拟机器M0

        • 由硬件直接执行微指令

    • 冯诺依曼计算机

      • 早期冯诺依曼机以运算器为中心

      • 最核心的是“存储程序”

        • 将指令以代码形式事先输入到计算机主存储器中

        • 然后按其在存储器中的首地址执行程序的第一条指令

        • 以后就按照该程序的规定顺序执行其他指令

        • 直至程序执行结束

    • 存储器

      • 主存、内存

        • 存储体

          • 译码器很重要!

          • 一行是一个存储单元(1byte)

          • 一个存储单元有8个存储字长(8bit)

          • 右边是只能单通一个1

          • 左边是自由二进制

        • MA(Address)R

        • MD(Data)R

        • 虽然MDR MAR 在逻辑上属于主存 但是物理实现的时候是放在CPU里的

      • 辅存、外存

    • 计算机性能指标

      • 容量

        • 总容量=存储单元个数*存储字长bit

        • 最大支持的容量=2^n*存储字长

        • 译码器左边地址增加一位,右边存储单元增加2倍

      • 速度

        • 机器字长

          • 计算机进行一次整数运算所能处理的二进制数据位数

        • CPU时钟周期

        • CPU时钟频率(主频)=1/CPU时钟周期

        • CPI 执行一条指令所需要的时钟周期数

          • 该指令耗时=CPI*CPU时钟周期

        • 整个程序的耗时=

          • 指令1耗时+指令2耗时+指令3耗时+……+指令8耗时

          • (指令1的CPI+指令2的CPI+……+指令8的CPI)*CPU时钟周期

        • IPS

          • =1/CPI*CPU时间周期

          • =主频/CPI

        • MIPS

          ​每秒执行多少百万指令

          • MIPS=指令条数/(执行时间*10^6)=主频/CPI

        • MFLOPS

        • GFLOPS

        • TFLOPS

        • 数据通路带宽

          • 数据总线一次所能并行传送信息的位数

        • 吞吐量

          • 指系统在单位时间内处理请求的数量

        • 响应时间

          • 指从用户向计算机发送一个请求到系统对该请求做出响应并获得它所需要的结果的等待时间

  • 数据的表示和运算

    • 进制

      • 进位计数法

        • 一进制

        • 二进制

        • 四进制

        • 八进制

        • 十进制

        • 十六进制

      • 进制转换

        • 原理

        • 方式

        • 方法(整数)

        • 方法(小数)

        • 再通过二进制转换到4/8/16进制

          • n位一组,分组转换成对应进制的符号

        • 真值——>机器数

    • 编码

      • BCD码(Binary-Coded Decimal)

        用二进制编码,十进制进行运算和处理

        • 8421码

          • 遇到进位+6修正

        • 余三码

        • 2421码(最高位权值为2不为8)

      • ASCII码

        • 可印刷字符32~126

        • 每个存储单元存放的内容为字节的整数倍,即8的整数倍,所以高位不够要补0

      • 字符串

        • 大端模式,存储单元内先存储高位字节、后存储低位字节的顺序

        • 小端模式,存储单元内先存储低位字节、后存储高位字节的顺序

      • G B2312-80

        • 汉字+各种符号共7445个

        • 区位码

          • 94个区

          • 每个区94个位置

          • +20H(避免国际码冲突)

          • +80H(避免ASCII码冲突)

          • 得到机内码

    • 校验原理

      • 码距

      • 奇偶校验码

        • 奇校验

          • 保证一段数据(整个校验码=有效信息位+校验位)中出现奇数个1

        • 偶校验

          • 保证一段数据(整个校验码=有效信息位+校验位)中出现偶数个1

      • 海明校验码

        • 设计思路

        • 位数

          • 2^k>=n(信息位)+k(校验位)+1

        • 校验位放置在2^n位(1、2、4、8)上,n取正整数()

        • 求校验位的值(书上更简单)

        • 纠错

      • 循环冗余校验码(CRC)

        • 方法

        • 模2除法

          • 看最高位来决定上商,最高位为1 商 1

          • 相同填0不同填1

        • 检错和纠错

    • 定点数的表示和运算

      • 表示

        • 无符号数

          • 整个机器字长的全部二进制均为数值位,没有符号位,相当于数的绝对值

          • 0000 0000~1111 1111 = 1 0000 0000 - 1(减1是因为0要占位)

          • 0 ~ 255 = 2^8 - 1(减1是因为0要占位)

          • 0~2^n-1

        • 有符号数

          • + = 0 ;- = 1

          • 小数点:隐含存储(定点数:事先约定;浮点数:按规则浮动)

            • 定点小数

            • 定点整数

          • 原码

            • 符号,绝对值

            • 符号位、数值分开处理

            • 缺点 运算困难

          • 补码

            • 原理

            • 简化加减运算

            • 正数

              • 与原码相同

            • 负数

              • 符号位与源码相同,数值位由原码取反加1得到

            • 原补码的相反数

              • 连同符号位一起取反

            • 补码比原码多表示一位,因为

            • 补码等于反码+1

          • 反码

            • 原、补码转换的中间过渡

            • 正数与原码相同

            • 负数符号位不变 数值按位取反

          • 移码

            • 按大小排序

            • 真值X上加上一个常数(偏置值),通常这个常数取2^n(注意n是数值位数,字长-1)

            • 易于比较大小

          • 总结

      • 运算

        • 移位运算

          • 数字右移: / r^n

          • 数字左移: * r^n

          • 算术移位:机器采用有符号数

            • 符号位不参与移位

            • 丢1会产生问题

            • 方式

        • 加减

          • 补码直接相加

        • 溢出判断

          • 上溢 正溢出

          • 下溢 负溢出

          • 方法一

            • 意思就是

          • 方法二

            • 正溢出

              • 符号位的进位为0 最高数位的进位为1

            • 负溢出

              • 符号位的进位为1 最高数位的进位为0

          • 方法三

            • 采用双符号位 正数符号位为00 负数符号位为11

            • 双符号位不同的时候 为溢出

        • 乘除

          • 乘法

            • 原码一位乘法

              • 符号位与数值位分开处理

            • 补码一位乘法(Booth算法)

              • 算法

          • 除法

            • 原码加减交替

            • 补码加减交替

        • 强制类型转换

          • C语言中,所有的整型数据实际存储的都是补码

          • 无符号数与有符号数

            • 不改变数据内容

            • 改变解释方式

          • 长整数变短整数

            • 高位截断

            • 保留低位

          • 短整数变长整数

            • 符号扩展

    • 浮点数

      • 浮点数的表示

        • N=r^E(阶码)*M(尾数)

      • 浮点数的规格化

        • 最高数位必须是一个有效值

        • 左规

          • 阶码-1

        • 右规

          • 阶码+1

      • IEEE 754 标准

        • 格式

        • 规定

    • 浮点数的运算

      • 加减运算

        • 0 转换格式

        • 1 对阶

        • 2 尾数相减

        • 3 规格化

        • 4 舍入(了解两个方法的变化而不是方法本身)

        • 5 判溢出

          • 阶码上溢 需要中断

          • 阶码下溢 按0处理

      • 强制类型转换

        • 类型

        • 范围精度从小到大,转换没有损失

        • 特殊的存储方式不同的

          • int 和 float

    • 算术逻辑单元

      • ALU

        • 逻辑符号1

        • 与门的天然逻辑

          • 屏蔽

        • 逻辑符号2

        • 异或 用其他的表达

        • 逻辑符号3

      • 加法器

        • 一位全加器

          • 上图合起来变成下图

          • 考虑上一级传递的进位的话

        • 串行加法器

        • 并行加法器1

        • 并行进位的并行加法器

        • 4位CLA加法器

        • 多级先进位方式

  • 存储系统

    • 半导体随机存储器

      • ROM(Read-Only Memory)

        • MROM掩膜式只读存储器

          • 由厂商直接写入 无法修改

        • PROM一次可编程只读存储器

          • 只能一次性写入

        • EPROM可擦除可编程只读存储器

          • 紫外线擦除UVEPROM

          • 电擦除EEPROM

        • Flash Memory 闪存存储器

        • Solid State Drives 固态硬盘

      • 存储器与CPU的协同工作

      • 半导体存储器

        • 存储矩阵

          • 由大量相同的位存储单元阵列构成

        • 译码驱动

          • 将来自地址总线的地址信号翻译成对应存储单元的选通信号

          • 该信号再读写电路的配合下完成对被选中单元的读/写操作

        • 读写电路

          • 包括读出放大器和写入电路,用来完成读/写操作

        • 读写控制线

          • 决定芯片进行读/写操作

        • 片选线

          • 确定哪个存储芯片被选中。可用于容量扩充

        • 地址线

          • 是单向输入的,其位数与存储的字的个数有关

        • 数据线

          • 是双向的,其位数与读出或写入的数据位数有关

        • 数据线书和地址线数共同反映存储芯片容量的大小

        • SRAM与DRAM的异同

        • DRAM

          • 刷新周期:2ms

          • 每次刷新一行存储单元

          • 模型结构

          • 如何刷新

            • 有硬件支持,读出后重新写入

          • 在什么时候刷新

      • 基本概念

        • 主存储器

          • 存储体

          • MDR

          • MAR

        • 大端方式

          • 高位字节为字地址(地址开头)

        • 小端方式

          • 低位字节为字地址(地址开头)

      • 存储器分类

        • 材料

          • 磁表面存储器

          • 磁芯存储器

          • 半导体存储器

          • 光存储器

        • 信息的可保存性

          • 断电是否存储信息

          • 读出是否破坏信息

        • 作用

          • 主存储器

          • 高速缓存存储器

          • 辅助存储器

        • 存取方式

          • 随机存取

          • 串行访问

      • 存储器性能指标

        • 存储容量

        • 单位成本

        • 存储速度

        • 存取时间

          • 启动一次存储器操作到完成该操作,分为读出时间和写入时间

        • 存取周期

          • 存储器进行一次完整的读写所需全部时间

        • 主存带宽

          • 每秒从主存进出信息的最大数量

    • 存储芯片的基本结构

      • 主存容量扩展

        • 位扩展

        • 字扩展

          • 扩展的两种方法

        • 字位同时扩展

    • 主存与CPU的链接(!!!)

    • 双口RAM多模块存储器

      • 置“忙”信号 理解为主

    • 多模块存储器

      • 单体多字存储器

      • 多体并行存储器

        • 高位交叉编址

        • 低位交叉编址(!!!)

          • 连续读写效率高

          • 流水线

            • 微观计算

            • 宏观概念

    • 高速缓存存储器

      • 局部性

        • 空间局部性

        • 时间局部性

      • 性能分析

        • 命中率和失效率

        • cache 主存体系的平均访问时间

    • Cache的基本工作原理

      • Cache行

        • 即Cahe块,是Cache与主存之间传送数据的基本单位

      • 主存中的块放到Cahe中哪个位置?

        • 空位随意放:全相联映射

        • 对号入座:直接映射

        • 按号分组,组内随意放置:组相联映射

        • 标记项:有效位、标记位

      • 替换算法

        • 随机算法

        • 先进先出

        • 近期最少用

        • 最不经常使用算法

      • 写策略

        • 命中

          • 写回法

            • 需要Cache设置脏位

          • 全写法

            • 需要 写缓冲(可能溢出)

        • 未命中

          • 写分配法

            • 调入Cache再用写回法

          • 非写分配法

            • 需要全写

        • 多级Cache策略

    • Cache容量计算

      • 标记项

        • 地址映射:有效位、标记位

        • 替换算法:替换算法控制位

        • 写策略:一致性维护位

      • 数据项

    • 虚拟存储器

      • 看操作系统吧

  • 指令系统

    • 指令格式

      • 计算机运行得最小功能单位

      • 一台计算机所有指令得集合=指令集

      • 操作码

        • 用户要干什么

        • 扩展操作码!!!

      • 地址码

        • 对谁进行操作

        • 格式

        • 四地址指令

          • 需要有下址

          • 完成一条指令需要访存四次

        • 三地址指令

          • 无需下址

          • 完成一条指令仍需要访存四次

        • 二地址指令

          • 无需结果,直接存A1

          • 完成一条指令仍需要访存四次

        • 一地址指令

          • 对本身数据操作

            • 需要访存3次

          • 隐含约定目的地址

            • 需要访存2次

        • 零地址指令

          • 不需要操作数

            • 关机、停机、关中断

            • 堆栈计算机

    • 数据存放

      • 按字地址寻址

      • 按字节编址

      • 按字节地址寻址

      • 机器字长

      • 指令字长

      • 存储字长

      • 边界对齐存储

    • 指令寻址

      • 指令寻址

        • 下一条欲执行指令的指令地址(有程序计数器PC给出)

        • 顺序寻址

        • 跳跃寻址

      • 数据寻址

        • 确定本条指令的操作数地址

          • 立即寻址

          • 直接

          • 间接寻址

          • 寄存器寻址

          • 寄存器间接寻址

          • 隐含寻址

      • 偏移寻址

        • 基址寻址

        • 变址寻址

        • 相对寻址

          • 广泛应用于转移指令

      • 对比

      • 堆栈寻址

    • CISC( Complex Instruction Set Computer)&RISC(Reduced Instruction Set Computer)

      • CISC

        • 一条指令完成一个复杂的基本功能

        • X86架构(笔记本……)

      • RISC

        • 一条指令完成一个基本“动作”

        • 多条指令组合完成一个复杂基本功能

        • ARM架构(手机……)

      • 区别

  • 中央处理器

    • CPU功能和结构

      • 五种功能

        • 指令控制

        • 操作控制

        • 时间控制

        • 数据加工

        • 中断处理

      • 结构

        • 运算器

          • 算术逻辑单元

          • 通用寄存器

          • 暂存寄存器

          • 累加寄存器

          • 程序状态字寄存器

          • 移位器

          • 计数器

        • 控制器

          • 程序计数器PC

          • 指令寄存器

          • 指令译码器

          • 微操作信号发生器

          • 时序系统

          • 存储器地址寄存器

          • 主存储器数据寄存器

    • 指令执行过程

      • 指令周期的概念

        • 一个指令周期又由若干机器周期来表示,机器周期又叫CPU周期

          • 一个机器周期又包含若干时钟周期

      • 数据流

        • 取指周期

        • 间址周期

        • 执行周期

        • 中断周期

      • 指令执行方案

        • 单指令周期

        • 多指令周期

        • 流水线方案

    • 数据通路的功能和基本结构

      • CPU内部单总线

      • CPU内部多总线

      • 专用数据通路方式

    • 控制器的功能和工作原理

      • 控制器如何指挥整个系统工作?

        • 控制器是计算机系统的指挥中心,控制器的主要功能有

          • 从主存中取出一条指令,并指出下一条指令在主存中的位置

          • 对指令进行译码或测试,产生相应的操作控制信号,以便启动规定的动作

          • 指挥并控制CPU、主存、输入和输出设备直接的数据流动方向

        • 安排微操作时序

          • 原则1:微操作的先后顺序不得随意更改

          • 原则2:被控对象不同的微操作尽量安排在一个节拍内完成

          • 原则3:占用时间较短的微操作尽量安排在一个节拍内完成并有先后顺序

      • 控制器的设计

        • 硬布线

        • 微程序

          • 思想

            • 相容性微命令

            • 互斥性微命令

        • 类比

    • 指令流水线

      • 方式

        • 顺序执行方式

        • 一次重叠执行方式

        • 二次重叠方式

      • 性能指标

        • 吞吐率

        • 加速比

        • 效率

      • 影响流水线的因素

        • 结构相关(资源冲突)

        • 数据相关(数据冲突)

          • RAW

          • WAR(乱序)

          • WAW

        • 控制相关(控制冲突)

          • 遇到转移指令和其他改变PC值得指令时发生

  • 总线

    • 概念

      • 是一组能为多个部件 分时 共享 的公共信息传送线路

      • 串行总线/并行总线

      • 片内总线/系统总线/通信总线

      • 同步总线/异步总线

    • 性能指标

      • 总线的传输周期

      • 总线的时钟周期

      • 总线的工作频率

      • 总线的时钟频率

      • 总线宽度

      • 总线带宽

      • 总线复用

      • 信号线数

    • 总线仲裁

      • 集中式

        • 链式查询方式

        • 计数器定时查询方式

        • 独立请求方式

      • 分布式

        • 同步通信

        • 异步通信

        • 半同步通信

        • 分离式通信

    • 总线标准

      • ISA

      • EISA

      • PCI

      • AGP

      • PCI-E

        • 串行

      • VESA

        • 局部总线

      • USB

        • 设备总线、串行

  • 输入/输出系统

    • 基本概念

      • 演变过程

        • 分散链接,串行工作

        • 接口模块和DMA阶段

        • I/O通道

        • I/O处理机

      • I/O系统组成

      • I/O控制方式简介

    • 外部设备

      • 输入设备

      • 输出设备

      • 外存储器

    • I/O接口

    • I/O方式

      • 程序查询方式

        • CPU“踏步”等待。CPU与I/O串行工作

      • 程序中断方式

        • 中断系统

          • 中断的基本概念

          • 工作流程

            • 中断请求

              • 中断源向CPU发送中断请求信号

              • 内中断(异常,例外,陷入)

                • 自愿中断

                • 强迫中断

              • 外中断(狭义中断)

                • 可分为 非屏蔽中断/可屏蔽中断

                • 外设请求

                • 人工干预

            • 中断响应

              • 响应中断的条件

              • 中断评优:多个中断源同时提出请求时判断优逻辑响应一个中断源

            • 中断处理

              • 中断隐指令

                • 关中断

                • 保存断点

                • 引出中断服务程序

              • 中断服务程序

          • 单重中断与多重中断

        • 程序中断方式

          • 工作流程

          • CPU占用情况

      • DMA方式

        • DMA控制器

        • 传送过程

        • 传送方式

        • 特点

        • 与中断方式的区别

        • CPU占用情况

      • DMA与中断的异同

  • 7
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
计算机组成原理是研究计算机硬件和软件之间相互关系的学科。它涉及到计算机的各个组成部分,包括中央处理器(CPU)、存储器、输入输出设备等。计算机组成原理的实际应用非常广泛,以下是一些实际应用的例子: 1. CPU设计:计算机组成原理的研究可以帮助设计和优化CPU的结构和功能。通过了解CPU的工作原理,可以提高CPU的性能和效率。 2. 存储器管理:计算机组成原理的研究可以帮助设计和管理计算机的存储器系统。了解存储器的层次结构和访问方式可以提高存储器的速度和容量。 3. 输入输出设备:计算机组成原理的研究可以帮助设计和开发各种输入输出设备。了解输入输出设备的工作原理可以提高设备的性能和可靠性。 4. 操作系统:计算机组成原理的研究可以帮助理解操作系统的工作原理。了解操作系统如何管理和调度计算机的资源可以提高系统的性能和稳定性。 5. 网络通信:计算机组成原理的研究可以帮助理解计算机网络的工作原理。了解网络通信的协议和技术可以提高网络的性能和安全性。 6. 并行计算:计算机组成原理的研究可以帮助设计和开发并行计算系统。了解并行计算的原理和技术可以提高计算的速度和效率。 以上是计算机组成原理的一些实际应用。通过深入研究计算机组成原理,可以更好地理解计算机系统的工作原理,并应用于实际的计算机系统设计和开发中。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值