C1-计算机结构 指令 程序语言
计算机结构 指令 程序语言
冯诺依曼结构
“存储程序”(存储程序通用电子计算机方案)方式的基本思想是:必须将事先编好的程序和原始数据送入主存后才能执行程序,一旦程序被启动执行,计算机能在不需操作人员干预下自动完成逐条指令取出和执行的任务。
主要组成部分与功能
- 采用“存储程序”工作方式。
- 计算机由运算器、控制器、存储器、输人设备和输出设备5个基本部件组成。
- 存储器不仅能存放数据,也能存放指令,形式上数据和指令没有区别,但计算机应能区分它们;控制器应能自动执行指令;运算器应能进行算术运算,也能进行逻辑运算;操作人员可以通过输入/输出设备使用计算机。
- 计算机内部以二进制形式表示指令和数据;每条指令由操作码和地址码两部分组成,操作码指出操作类型,地址码指出操作数的地址;由一串指令组成程序。
- 操作码OP 地址码ADDR
存储器(主存, 内存): 用来存放指令和数据
算术逻辑部件(运算器) ALU : 控制算数与逻辑运算
控制部件(控制器) CU : 用于自动逐条取出指令并进行译码
交互设备 : 包含输入设备, 输出设备
现代计算机结构模型
CPU 中央处理器, PC(Program Counter)程序计数器
MAR(Memory Address Register)存储器地址寄存器
MDR(Memory Data Register)存储器数据寄存器
ALU(Arithmetic Logic Unit)算术逻辑部件, IR(Instruction Register)指令寄存器
PSW(Program Status Word)标志寄存器(程序状态字)
GPRs(General Purpose Gegister)通用寄存器组 :含有若干通用寄存器, 早期是累加器. 临时存放作用
标志寄存器 记录ALU运算的结果会产生标志信息,例如,结果是否为 (零标志 ZF) 、是否为负
数(符号标志 SF) 等
各个部件之间用总线连接
总线
控制总线(Control Bus): 由set line, enable line组成
数据总线(Data Bus) 地址总线(Address Bus) 组成类似, 由数条电路组成. 每一条独立电路的电位高低表示1/0.

指令与数据
指令: 一串0/1序列, 用来指示CPU完成的一个特定的原子操作(最小的任务操作)
指令分类
取数指令 load: 从主存单元中取出数据存放在通用寄存器中(指令取出存放在IR中)
存数指令 store: 将通用寄存器内容写入主存
加法指令 add: 将两个通用寄存器内容相加后送入结果寄存器
传送指令 mov: 将一个通用寄存器的内容送到另一个通用寄存器
指令处理流程
CPU向RAM中读写
读 CPU将数据地址存放至AB > 激活CB的enable line > RAM将对应地址上的全部数据存放至DB > CPU读取DB数据 > 结束本次读取
写 CPU将目标地址存放至AB > 将目标数据存放至DB > 激活CB的set line > RAM用目标数据覆写目标地址上的全部内容
CPU内部处理指令
I/O动作信号或其他信号传输至CU > CU将一条指令地址存放至DB > 激活MAR的set line > MAR将地址存放至AB > CU激活RAM的enable line > RAM将指令存放至DB > CU激活IR的set line > IR将指令放入CU开始处理 > 在CU处理本条指令同时, PC计算出下一条指令的地址, CU执行完当前指令后, PC将指令地址存放至DB, 过程重复
e.g. 比较两数大小流程
CU将指令LOAD-1的地址存放至DB > 激活MAR的set line > 激活RAM的enable line > RAM将目标数存放至DB > CU激活MDR-1的set line > CU根据PC的计算将LOAD-2的指令存放至DB > 激活MAR的set line > 激活RAM的enable line > RAM将目标数存放至DB > CU激活MDR-2的set line > CU根据PC计算将比较指令的地址存放至AB > CU激活RAM的enable line > RAM将指令存放至DB > CU激活IR的set line > CU将指令传入ALU > CU激活MDR-1和MDR-2的enable line > MDR-1和MDR-2的数据通过两组线传入ALU > ALU进行比较 > ALU将结果传至PSW > CU激活PSW的set line > PSW将结果传入CU > 根据程序要求进行下一步指令操作
指令字段与格式
指令通常被划分为若干个字段,有操作码、地址码等字段。
操作码字段指出指令的操作类型,如取数、存数、加、减、传送、跳转等;
地址码字段指出指令所处理的操作数的地址,如寄存器编号、主存单元编号等。
每个主存单元和 CPU 中的 ALU 、通用寄存器、 IR MDR 的宽度都是8位, PC MAR 的宽度都是4位;连接 CPU 和主存的总线中有4位地址线、8位数据线和若干位控制线(包括读/写命令线)。
指令分为R型和M型两种
R针对寄存器. OP为0000或0001时分别定义为mov和add
M针对存储器. OP为1110和1111时分别定义为load和store
rt rs: 通用寄存器编号. addr: 主存单元地址
R[rt] R[rs]: 编号rt rs通用寄存器中的内容. M[addr]: 地址为addr主存单元的内容

程序开发与运行
程序设计语言
分类 高级语言, 低级语言
低级语言
汇编语言和机器语言统称为机器级语言
机器语言
机器语言: 规定指令格式形成的0/1序列
APP > ISA
机器代码, 机器语言程序: 计算机能够理解和执行的程序
机器指令: 0/1组成的指令
汇编语言
第二代, APP > 汇编 > system > ISA
用简短英文符号(助记符)建立与机器语言对应关系
使用汇编器将汇编语言源程序翻译为机器语言目标程序
程序在不同结构的机器上不能运行
一条语句只能描述一个操作
汇编指令: 用助记符和标号表示的指令(与机器指令一一对应)
高级程序设计语言, 高级编程语言
第三代 过程式 APP > 语言处理系统 > system > ISA
第四代 非过程
一条语句可对应多条指令, 需要将代码翻译为机器语言程序
面向算法描述, 分为面向过程和面向对象
处理逻辑分为顺序结构, 选择结构, 循环结构
翻译程序
被翻译: 源语言, 源程序. 生成: 目标语言, 目标程序
分类与过程
汇编程序(汇编器): 汇编语言 > 机器语言目标程序
解释程序(解释器): 源程序中的语句按执行顺序逐条 > 机器指令 > 立即执行(不执行目标程序)
编译程序(编译器): 高级语言源程序 > 汇编语言或机器语言目标程序(机器级目标程序)



层次
user
最终用户 end user : 使用软件完成特定任务
system administrator : 利用操作系统、数据库管理系统等软件提供的功能对系统进行配置、管理和维护,以建立高效合理的系统环境供计算机用户使用的操作人员。
application programmer : 使用高级编程语言编制应用软件的程序员
system programmer : 设计和开发系统软件
层次结构

ISA : 指令集体系结构, 指令系统
软件通过ISA对硬件进行操作
作为一种规约, 规定了如何使用硬件, 是对硬件的抽象, 处在硬件层 软件层之间
- 可执行的指令, 格式 操作种类...
- 可接受的操作数类型
- 操作数所能存放的GPRs的结构, 含每个的名称, 编号, 长度...
- 存储空间的大小 编址方式
- 大端 or 小端存放
- 寻址方式
- 执行过程控制方式

浙公网安备 33010602011771号