第一章 计算机系统概述
第一节 计算机硬件的发展
- 微型计算机的发展以微处理器技术为标志
第二节 计算机系统层次结构
「计算机系统」组成
- 计算机系统 = 软件 + 硬件
- 硬件,有型的物理设备
- 软件,硬件上运行的程序和相关的数据及文档
「计算机系统」 冯 · 诺依曼机的特点
存储程序
的工作方式- 计算机硬件系统的组成
- 运算器
- 存储器
- 控制器
- 输入设备
- 输出设备
- 指令和数据以同等地位存储在存储器中
- 形式上没有区别,但计算机应能区分它们
- 指令和数据均用二进制代码表示
- 指令 = 操作码(操作的类型) + 地址码(操作数的地址)
「计算机系统」存储程序基本思想
- 将事先编制好的程序和原始数据送入主存后才能执行
- 一旦程序被启动执行
- 就无须操作人员的干预
- 计算机会自动逐条执行指令
- 直至程序执行结束
「功能部件」主存储器(内存储器)
主存储器(内存储器)
- 主存的特点
- CPU 可直接访问
- 按地址存取方式:按存储单元的地址进行存取
- 主存最基本构成
辅助存储器(外存储器)
- 外存:帮助主存储器记录更多信息,数据必须调入主存后,才能为CPU所访问
「功能部件」存储相关概念
- 存储体、存储元件、存储单元的关系
- 存储体 存放二进制信息。
- 存储字 存储单元存储的一串二进制代码,该代码的位数为存储字长
- 存储字长 可以是1B(8bit) 或是字节的偶数倍。
- MAR 用于寻址,位数对应存储单元的个数。
- MDR 位数与存储字长相等,一般为字节的2次幂的整数倍。
TIP
- MAR 和 MDR 虽然是存储器一部分,在现代计算机中却是存在于CPU中的
- 高速缓存(Cache) 也存在于CPU中
「功能部件」运算器
- 计算机的执行部件
- 进行算术运算(加减乘除)和逻辑运算(与、或、非、异或等)
- 运算器核心为算术逻辑单元 ALU(Arithmetic and Logical Unit)
- 运算器包含部件
- 通用寄存器,用于暂存操作数和中间结果
- 必备的三个寄存器
- 累加器 (ACC)
- 乘商寄存器 (MQ)
- 操作数寄存器 (X)
- 变址寄存器 (IX)
- 基址寄存器 (BR)
- 必备的三个寄存器
- 程序状态寄存器(PSW)
- 也称标志寄存器
- 用于存放ALU 运算得到的一些标志信息或处理机的状态信息
- 如结果是否溢出、有无产生进位或借位、结果是否为负等
- 通用寄存器,用于暂存操作数和中间结果
「功能部件」控制器
- 计算机的指挥中心
- 控制器的组成
- 程序计数器(PC)
- 指令寄存器(IR)
- 控制单元(CU)
程序计数器(PC)
- 存放当前欲执行指令的地址
- 具有自动加1的功能(这里的 “1” 指一条指令的长度)
- 即可自动形成下一条指令的地址
- 与主存的 MAR之间有一条直接通路
指令寄存器(IR)
- 存放当前的指令
- 内容来自主存的MDR
- 操作码 OP(IR) 送至 CU,用以分析指令并发出各种微操作命令序列;
- 地址码 Ad(IR) 送往 MAR,用以取操作数。
CPU(中央处理器)
CPU 包含的部件
- 运算器(ALU)
- 算术单元(Arithmetic Unit)
- 负责执行算术运算,如加法、减法、乘法、除法等。
- 逻辑单元(Logic Unit)
- 负责执行逻辑运算,如与、或、非等。
- 数据寄存器(Data Register)
- 存储 ALU 中正在进行计算的数据。
- 控制单元(Control Unit)
- 控制 ALU 的操作模式和执行流程,根据指令中的操作码确定执行何种操作。
- 状态寄存器(Status Register)
- 存储 ALU 的状态信息,如零标志、进位标志等。
- 选择器(Multiplexer)
- 用于选择操作数,根据指令的需求选择相应的输入数据。
- 运算结果寄存器(Result Register)
- 存储 ALU 计算得到的结果。
- 算术单元(Arithmetic Unit)
- 控制器(CU)
- 指令寄存器(Instruction Register,IR)
- 存储当前正在执行的指令。
- 指令译码器(Instruction Decoder)
- 对指令进行解码,确定指令的操作类型以及操作数的来源。
- 时序逻辑单元(Timing and Control Logic)
- 负责产生各种时序信号,控制CPU内部各个部件的工作时序。
- 地址生成器(Address Generator)
- 生成内存地址,用于从内存中读取指令和数据。
- 状态寄存器(Status Register)
- 存储CPU的状态信息,如条件码、中断使能状态等。
- 程序计数器(Program Counter,PC)
- 存储下一条要执行的指令的地址,用于指示CPU应该执行哪条指令。
- 分支单元(Branch Unit)
- 负责处理分支指令,确定分支条件并更新程序计数器。
- 指令寄存器(Instruction Register,IR)
- 运算器(ALU)
CPU中控制器发出的控制信号,可以控制
- 如何修改 PC 以得到下一条指令的地址
- ALU 执行什么运算
- 主存是进行读操作还是写操作(读/写控制信号)
CPU和主存之间的联系
- CPU 和主存之间通过一组总线相连
- 总线包含什么?
- 地址线
- MAR 中的地址信息会直接送到地址线上
- 用于指向读/写操作的主存存储单元
- 控制线
- 根据读/写信号线,指出
- 数据是从 CPU 写入主存,还是从主存读出到 CPU
- 控制数据流向
- MDR 数据直接送到数据线上
- 或数据线数据接收到 MDR
- 根据读/写信号线,指出
- 数据线
- 地址线
第三节 计算机软件
「计算机软件」系统软件
- 操作系统(OS)
- 数据库管理系统(DBMS)
- 语言处理程序
- 分布式软件系统
- 网络软件系统
- 标准库程序
- 服务性程序
「计算机软件」三个级别的语言
- 机器语言
- 汇编语言
- 高级语言
- 计算机无法直接理解高级语言,用翻译程序转化为机器语言
- 汇编程序(汇编器):汇编成机器语言。
- 解释程序(解释器):将源程序中的语句按执行顺序逐条翻译成机器指令并立即执行。
- 编译程序(编译器):将高级语言程序翻译成汇编语言或机器语言程序。
「计算机软件」软硬件逻辑功能等价性
- 硬件实现的性能要优于软件实现的性能。
「计算机软件」计算机系统层次结构
层次之间的关系紧密
下层是上层的基础
上层是下层的扩展
软件和硬件之间的界面就是指令集体系结构(ISA)
什么是 ISA?
- 定义了一台计算机可以执行的所有指令的集合
- 每条指令规定了计算机执行什么操作
- 以及所处理的
- 操作数存放的地址空间
- 操作数类型
第四节 计算机系统的工作原理
「计算机系统」“存储程序”工作方式
- 程序执行前
- 需要将程序所含的指令和数据,送入主存
- 一旦程序被启动执行
- 就无须操作人员的干预
- 自动逐条完成指令的取出和执行任务
「计算机系统」“存储程序”执行步骤
- 程序执行前
- 程序第一条指令的地址存放到PC
- 取指令时,将PC的内容作为地址访问主存
- 每条指令执行过程中
- 都需要计算下条将执行指令的地址,并送至 PC
- 若当前指令为
- 顺序型指令
- 则下条指令地址为PC的内容加上当前指令的长度
- 转跳型指令
- 则下条指令地址为指令中指定的目标地址
- 顺序型指令
- 当前指令执行完后
- 根据PC的值到主存中取出的是下条将要执行的指令
- 因而计算机能周而复始地自动取出并执行一条一条的指令。
- 根据PC的值到主存中取出的是下条将要执行的指令
「计算机系统」从源程序到可执行文件
- UNIX 系统中的GCC编译器程序
- 将源程序文件
hello.c
-> 可执行目标文件hello
- 将源程序文件
- 处理过程的四个阶段
- 预处理阶段
- 编辑阶段
- 汇编阶段
- 链接阶段
「计算机系统」程序执行过程的描述
「计算机系统」指令执行过程的描述
- 可执行文件代码段
- 由一条一条机器指令构成的
- 指令是用 0 和 1 表示的一串 0/1 序列
- 用来指示 CPU 完成一个特定的原子操作
- 机器指令的举例
- 取数指令:从存储单元中取出一个数据送到CPU的寄存器中
- 存数指令:将CPU 寄存器的内容写入一个存储单元
- ALU 指令:将两个寄存器的内容进行某种算术或逻辑运算后送到一个 CPU 寄存器中
「指令过程描述」取数指令信息流程
- 取数指令取出的操作数送至运算器的ACC 中的信息流程
- 取指令:
- 根据 PC 取指令到 IR
- PC 的内容送 MAR
- MAR 中的内容直接送地址线,同时控制器将读信号送读/写信号线
- 主存根据地址线上的地址和读信号,从指定存储单元读出指令,送到数据线上
- MDR 从数据线接收指令信息,并传送到 IR 中
- 根据 PC 取指令到 IR
- 分析指令:
- 指令译码并送出控制信号
- 控制器根据 IR 中指令的操作码,生成相应的控制信号,送到不同的执行部件
- 在本例中,IR 中是取数指令,因此读控制信号被送到总线的控制线上
- 指令译码并送出控制信号
- 执行指令:
- 取数操作
- 将 IR 中指令的地址码送 MAR,MAR 中的内容送地址线
- 同时控制器将读信号送读/写信号线,从主存中读出操作数
- 操作数通过数据线送至 MDR, 再传送到 ACC 中
- 取数操作
- 每取完一条指令,还须为取下条指令做准备,计算下条指令的地址
「指令过程描述」数据通路与运算时的括号问题?
- 注意
- (PC)指程序计数器 PC 中存放的内容
- 数据通路时括号可省略
- 因为只是表示数据流经的途径,而不强调数据本身的流动
相当于 - 即程序计数器中的值经过数据通路送到 MAR
- 运算时括号不能省略
- 即
不能写为
- 即
- 当题目中
的括号未省略时,最好也不要省略