计算机组成 原理蒋本珊
学习指南 本课程的性质 是计算机科学与技术专业本科生的核心课程之一, 是必修的专业基础课
学习指南 本课程的地位 本课程在计算机学科中处于承上启下的地位, 要求先修的课程有 : 计算机科学导论数字电路
学习指南 本课程的任务 讨论单机系统范围内计算机各部件和系统的组成以及内部工作机制 通过学习, 掌握计算机各大部件的组成原理 逻辑实现 设计方法及其互连构成整机系统的技术, 并为后继课程的学习打好基础
学习指南 本课程的重点 : 五大基本部件的原理及实现 本课程的难点 : 各部件互连构成整机系统, 即整机概念的建立 本课程的深广度 : 主要讨论计算机组成中具有共性的问题, 要处理好抽象概念与具体实例的关系
学习指南 参考书唐朔飞, ( 第 2 版 ) 高等教育出版社, 北京, 2008 蒋本珊, 学习指导与习题解析, 北京, 清华大学出版社,2005
第 1 章 概论
第 1 章 在本章中我们将从存储程序的概念入手, 讨论计算机的基本组成与工作原理, 使大家对于计算机系统先有一个简单的整体概念, 为今后深入讨论各个部件打下基础
1.1 电子计算机与存储程序控制 电子计算机是一种不需要人工直接干预, 能够自动 高速 准确的对各种信息进行处理和存储的电子设备 可以有非电子计算机 ( 如 : 光计算机 量子计算机 超导计算机等 ) 可以有非数字计算机 ( 如 : 模拟计算机 )
1.1 电子计算机与存储程序控制 1.1.1 电子计算机的发展 世界上第一台电子数字计算机是 1946 年 2 月问世的 ENIAC ENIAC 的设计开始于 1943 年, 该机一直使用到 1955 年
1.1 电子计算机与存储程序控制 ENIAC 的特点 : 采用十进制 20 个 10 位的累加器用开关手动编程 18,000 个电子管重 30 吨占地 170 平方米耗电 170 KW 5,000 次 / 秒加法运算
1.1 电子计算机与存储程序控制 1.1.2 存储程序概念 美籍匈牙利数学家冯 诺依曼等人在 1946 年 6 月提出存储程序概念
1.1 电子计算机与存储程序控制 存储程序概念 : ⑴ 计算机 ( 指硬件 ) 应由运算器 存储器 控制器 输入设备和输出设备五大基本部件组成 ; ⑵ 计算机内部采用二进制来表示指令和数据 ; ⑶ 将编好的程序和原始数据事先存入存储器中, 然后再启动计算机工作, 这就是存储程序的基本含义
1.1 电子计算机与存储程序控制 EDVAC 冯 诺依曼设计的存储程序计算机 1951 年诞生 EDSAC 事实上的第一台存储程序计算机 1949 年诞生 目前绝大多数计算机仍建立在存储程序概念的基础上, 称冯 诺依曼型计算机 也出现了一些突破冯 诺依曼结构的计算机, 统称非冯结构计算机, 如 : 数据驱动的数据流计算机 需求驱动的归约计算机和模式匹配驱动的智能计算机等
1.2 计算机的硬件组成 中央处理器 (CPU) CPU = 运算器 + 控制器 主机 主机 = 中央处理器 + 主存储器 注意 外部设备 除去主机以外的硬件装置 ( 如输入设备 输出设备 辅助存储器等 )
1.2 计算机的硬件组成 外设存储器 输入设备 辅助存储器 输出设备 主存储器 运算器 CPU 主机 控制器 控制数据地址或指令
1.2 计算机的硬件组成 1.2.1 计算机的主要部件 1. 输入设备输入设备的任务是把人们编好的程序和原始数据送到计算机中去, 并且将它们转换成计算机内部所能识别和接受的信息方式 常用的有键盘 鼠标 扫描仪等 2. 输出设备输出设备的任务是将计算机的处理结果以人或其他设备所能接受的形式送出计算机 常用的有显示器 打印机 绘图仪等
1.2 计算机的硬件组成 3. 存储器 存储器是用来存放程序和数据的部件, 它是一个记忆装置, 也是计算机能够实现 存储程序控制 的基础
1.2 计算机的硬件组成 三级存储系统 Cache 速度快 主存储器 辅助存储器 慢
1.2 计算机的硬件组成 三级存储系统 Cache 容量小 主存储器 辅助存储器 大
1.2 计算机的硬件组成 三级存储系统 Cache 价格 / 位贵 主存储器 辅助存储器 贱
1.2 计算机的硬件组成 主存储器 可由 CPU 直接访问, 用来存放当前正在执行的程序和数据 Cache 主存储器 辅助存储器
1.2 计算机的硬件组成 辅助存储器 Cache 设置在主机外部,CPU 不能直接访问, 用来存放暂时不参与运行的程序和数据, 需要时再传送到主存 主存储器 辅助存储器
1.2 计算机的硬件组成 高速缓冲存储器 (Cache) CPU 可以直接访问, 用来存放当前正在执行的程序中的活跃部分 ( 副本 ), 以便快速地向 CPU 提供指令和数据 Cache 主存储器 辅助存储器
1.2 计算机的硬件组成 4. 运算器运算器是对信息进行处理和运算的部件, 经常进行的运算是算术运算和逻辑运算, 因此运算器的核心是算术逻辑运算部件 ALU 运算器中有若干个寄存器 ( 如累加寄存器 暂存器等 ) 5. 控制器控制器是整个计算机的指挥中心 控制器中主要包括时序控制信号形成部件和一些专用的寄存器
1.2 计算机的硬件组成 1.2.2 计算机的总线结构 ( 小 微型机典型结构 ) 将各大基本部件, 按某种方式连接起来就构成了计算机的硬件系统 目前许多计算机 ( 主要指小 微型计算机 ) 的各大基本部件之间是用总线 (Bus) 连接起来的 总线是一组能为多个部件服务的公共信息传送线路, 它能分时地发送与接收各部件的信息
1.2 计算机的硬件组成 总线特点 : 共享 分时小型 微型机的设计目标是以较小的硬件代价组成具有较强功能的系统, 而总线结构正好能满足这一要求
1.2 计算机的硬件组成 1. 单总线结构 系统总线 CPU 主存储器 接口 外设 接口 外设
1.2 计算机的硬件组成 单总线并不是指只有一根信号线 系统总线按传送信息的不同又可以细分为 : 地址总线 数据总线和控制总线 地址总线 (Address Bus) 由单方向的多根信号线组成, 用于 CPU 向主存 外设传输地址信息 ; 数据总线 (Data Bus) 由双方向的多根信号线组成,CPU 可以沿这些线从主存或外设读入数据, 也可以沿这些线向主存或外设送出数据 ; 控制总线 (Control Bus) 上传输的是控制信息, 包括 CPU 送出的控制命令和主存 / 外设反馈给 CPU 的状态信号
1.2 计算机的硬件组成 2. 总线电路 (1) 三态门 具有三种逻辑状态的门电路 这三种状态是 : 0 状态 1 状态 浮空状态 D 1 EN 注意 Q 输入 输出 G D Q 0 0 1 0 1 0 1 Z G
1.2 计算机的硬件组成 D 1 EN Q D 1 EN Q D 1 EN Q D 1 EN Q G G G G (a) (b) (c) (d)
1.2 计算机的硬件组成 (2) 单向和双向总线 单向总线上的信息只能向一个方向传送, 如地址总线 双向总线上的信息可以向两个方向上传送, 如数据总线
1.2 计算机的硬件组成 1.2.3 大 中型机的典型结构大 中型计算机系统的设计目标更着重于系统功能的扩大与效率的提高 通道是承担 I/O 操作管理的主要部件, 主机可以连接多个通道, 每个通道可以接一台或几台设备控制器, 每个设备控制器又可接一台或几台外部设备, 这样整个系统就可以连接很多的外部设备
1.2 计算机的硬件组成 第一级主机 CPU 主存 第二级通道 通道 第三级设备控制器 设备控制器 设备控制器 设备控制器 外设外设外设外设 第四级 外设外设外设外设
1.2 计算机的硬件组成 1.2.4 不同对象观察到的计算机硬件系统 一般用户观察到的计算机硬件系统
1.2 计算机的硬件组成 专业用户观察到的计算机硬件系统
1.2 计算机的硬件组成 计算机 计算机 设计者观察 控制器 ALU 存储器 外设 系统级 到的计算机硬件系统 寄存器 1 寄存器 2... 寄存器 N 寄存器级 门 1 门 2... 门 K 门级 晶体管 1 晶体管 2... 晶体管 T 晶体管级 MOS TTL... 物理级
1.2 计算机的硬件组成 1.2.5 冯 诺依曼结构和哈佛结构的存储器设计思想 1. 冯 诺伊曼结构冯 诺依曼结构也称普林斯顿结构, 是一种将程序指令存储器和数据存储器合并在一起的存储器结构 指令存储地址和数据存储地址指向同一个存储器的不同物理位置 使用冯 诺伊曼结构的中央处理器有很多 如 Intel 公司的 80X86 ARM 公司的 ARM7 MIPS 公司的 MIPS 等都采用了冯 诺伊曼结构
1.2 计算机的硬件组成 冯 诺依曼结构的存储器设计 存储器 地址总线 数据总线 CPU
1.2 计算机的硬件组成 2. 哈佛结构 哈佛结构是一种将程序指令存储和数据存储分开的存储器结构 CPU 首先到指令存储器中读取指令内容, 译码后得到数据地址, 再到相应的数据存储器中读取数据, 并进行下一步的操作 ( 通常是执行 ) 哈佛结构的处理器通常具有较高的执行效率 其指令和数据分开组织和存储的, 执行时可以预先读取下一条指令 目前使用哈佛结构的中央处理器也有很多, 如 MOTOROLA 公司的 MC68 系列 Zilog 公司的 Z8 系列和 ARM 公司的 ARM9 ARM10 和 ARM11 等
1.2 计算机的硬件组成 哈佛结构的存储器设计 程序存储器 PM 地址总线 PM 数据总线 CPU DM 地址总线 DM 数据总线 数据存储器
1.3 计算机系统 注意 计算机系统 = 硬件系统 + 软件系统 硬件通常是指一切看得见, 摸得到的设备实体 ; 软件通常是泛指各类程序和文件, 它们实际上是由一些算法以及其在计算机中的表示所构成的
1.3 计算机系统 1.3.1 硬件与软件的关系硬件是计算机系统的物质基础, 软件是计算机系统的灵魂 硬件和软件是相辅相成的, 不可分割的整体 当前计算机的硬件和软件正朝着互相渗透, 互相融合的方向发展, 在计算机系统中没有一条明确的硬件与软件的分界线 硬件和软件之间的界面是浮动的, 对于程序设计人员来说, 硬件和软件在逻辑上是等价的
1.3 计算机系统 硬件软化 : 原来由硬件实现的操作改由软件来实现 它可以增强系统的功能和适应性 软件硬化 : 原来由软件实现的操作改由硬件来实现 它可以显著降低软件在时间上的开销
1.3 计算机系统 固件是指那些存储在能永久保存信息的器件 ( 如 ROM) 中的程序, 是具有软件功能的硬件 固件的性能指标介于硬件与软件之间, 吸收了软 硬件各自的优点, 其执行速度快于软件, 灵活性优于硬件, 是软 硬件结合的产物, 计算机功能的固件化将成为计算机发展中的一个趋势
1.3 计算机系统 1.3.2 系列机和软件兼容系列机是指一个厂家生产的, 具有相同的系统结构, 但具有不同组成和实现的一系列不同型号的机器 系列机应在指令系统 数据格式 字符编码 中断系统 控制方式 输入 / 输出操作方式等方面保持统一, 从而保证软件的兼容性 软件兼容 : 向上兼容 向下兼容向前兼容向后兼容
1.3 计算机系统 机器档次 向上兼容向下兼容 当前机器 向前兼容 向后兼容 时间
1.3 计算机系统 1.3.3 计算机系统的多层次结构现代计算机系统是一个硬件与软件组成的综合体, 我们可以把它看成是按功能划分的多级层 第 6 级 第 5 级 第 4 级 第 3 级 第 2 级 应用语言级 ( 虚拟机器 ) 高级语言级 ( 虚拟机器 ) 汇编语言级 ( 虚拟机器 ) 操作系统级 ( 虚拟机器 ) 机器语言级 ( 实际机器 ) 次结构 第 1 级微程序级 ( 实际机器 ) 第 0 级 应用程序 编译程序 汇编程序 操作系统 微程序 硬联逻辑 硬操作时序硬联逻辑 ( 实际机器 )
1.3 计算机系统 1.3.4 实际机器和虚拟机器对每一个机器级的用户来说, 都可以将此机器级看成是一台独立的使用自己特有的 机器语言 的机器 在计算机系统的多层次结构中, 除第 0 1 2 级外, 上面四级均为虚拟机 虚拟计算机是指这个计算机只对该级的观察者存在 对某一层次的观察者来说, 他只能是通过该层次的语言来了解和使用计算机, 至于下层是如何工作和实现的就不必关心了 简而言之, 虚拟计算机是指以软件或以软件为主实现的机器
1.4 计算机的工作过程和主要性能指标 1.4.1 计算机的工作过程 将编制好的程序放在主存中, 由控制器控制逐条取出指令执行, 以计算 a+b-c=? 为例加以说明 设 a b c 为已知的 3 个数, 分别存放在主存的 5~7 号单元中, 结果将存放在主存的 8 号单元
1.4 计算机的工作过程和主要性能指标 000 001 002 003 004 005 006 007 008 主存 LOAD 005 ADD 006 SUB 007 STORE 008 HALT a b c 数据总线 累加器 ALU 存储器数据寄存器
1.4 计算机的工作过程和主要性能指标 000 001 002 003 004 005 006 007 008 取数指令主存数据总线 LOAD 005 ADD 006 SUB 007 STORE 008 HALT a b c a 存储器数据寄存器 累加器 a ALU
1.4 计算机的工作过程和主要性能指标 000 001 002 003 004 005 006 007 008 主存加法指令数据总线 LOAD 005 ADD 006 SUB 007 STORE 008 HALT a b c ab 存储器数据寄存器 ALU 累加器 a+b a
1.4 计算机的工作过程和主要性能指标 000 001 002 003 004 005 006 007 008 主存数据总线 LOAD 005减法指令 ADD 006 SUB 007 STORE 008 HALT a b c cb 存储器数据寄存器 ALU 累加器 a+b-c
1.4 计算机的工作过程和主要性能指标 000 001 002 003 004 005 006 007 008 主存数据总线 LOAD 005 ADD 006存数指令 SUB 007 STORE 008 HALT a b c a+b-c a+b-c cb 存储器数据寄存器 ALU 累加器 a+b-c
1.4 计算机的工作过程和主要性能指标 000 001 002 003 004 005 006 007 008 主存数据总线 LOAD 005 ADD 006 SUB 007停机指令 STORE 008 HALT a b c a+b-c a+b-c c 存储器数据寄存器 ALU 累加器 a+b-c
1.4 计算机的工作过程和主要性能指标 1.4.2 计算机的主要性能指标 1. 机器字长机器字长是指参与运算的数的基本位数, 它是由加法器 寄存器 数据总线的位数决定的 在计算机中为了更灵活地表达和处理信息, 许多计算机又以字节 (Byte) 为基本单位, 一个字节等于 8 位二进制位 (bit) 不同的计算机, 字 (Word) 可以不相同, 但对于系列机来说, 在同一系列中, 字却是固定的, 如 80X86 系列中, 一个字等于 16 位 ;IBM303X 系列中, 一个字等于 32 位
1.4 计算机的工作过程和主要性能指标 2. 数据通路宽度数据总线一次所能并行传送信息的位数, 称为数据通路宽度 它影响到信息的传送能力, 从而影响计算机的有效处理速度 这里所说的数据通路宽度是指外部数据总线的宽度, 它与 CPU 内部的数据总线宽度 ( 内部寄存器的大小 ) 有可能不同 内 外数据通路宽度相等的 CPU 有 : Intel 8086 80286 80486 等 ; 外部 < 内部的 CPU 有 :8088 80386SX 等 ; 外部 > 内部的 CPU 有 :Pentium 等
1.4 计算机的工作过程和主要性能指标 3. 主存容量 一个主存储器所能存储的全部信息量称为主存容量 衡量主存容量单位有两种 : 1 字节数 这类计算机称为字节编址的计算机 每 1024 个字节称为 1K 字节 (2 10 =1K), 每 1024K 字节称为 1M 字节 (2 20 =1M), 每 1024M 字节称为 1G 字节 (2 30 =1G) 2 字数 字长 这类计算机称为字编址的计算机 如 :4096 16 表示存储器有 4096 个存储单元, 每个存储单元字长为 16 位
1.4 计算机的工作过程和主要性能指标 4. 运算速度 以 MIPS 和 MFLOPS 作为计量单位来衡量运算速度 MIPS 表示每秒百万条指令 MFLOPS 每秒表示百万次浮点运算 MIPS= MFLOPS= 指令条数 6 执行时间 10 浮点操作次数 6 执行时间 10
第 1 章小结 1.1 电子计算机与存储程序控制存储程序概念主机 1.2 计算机系统的硬件组成计算机的五大基本部件总线三态门大 中型机的典型结构冯 诺依曼结构和哈佛结构
第 1 章小结 1.3 计算机系统计算机系统硬件和软件的关系系列机概念软件兼容固件的概念虚拟机概念 1.4 计算机的工作过程和主要性能指标主要性能指标机器字长 数据通路宽度 主存容量