跳至主要內容

ComputerSystems

LincZero大约 2 分钟

ComputerSystems

目录

汇编原理

汇编原理

举例

制定一些简单指令

指令代码功能
LOAD_A0000将指定内存地址数据加载至寄存器A
LOAD_B0001将指定内存地址数据加载至寄存器B
ADD0100将指定两个寄存器数据相加
STORE_A1000将寄存器数据存储至制定内存地址

汇编代码

LOAD_A 7	0000 0111
LOAD_B 8	0001 1000
ADD A B 	0100 0001
STORE_A 15	1000 1111

内存状态

冯诺依曼架构计算机(存储程序计算机),指令和数据都放在内存中

地址内容二进制地址
0LOAD_A 70000
1LOAD_B 80001
2ADD A B0010
3STORE_A F0011
4
5
6
780111
861000
……
F(14)1111

步骤

指令流水线整体步骤:取指 -> 解码 -> 执行(循环)。有的CPU的流水线可能不止三级

分步步骤(补充:每一行指令完成后IC自动+1,下表中不再赘述这点)

IC取指令解码执行
0,CPU初始化完成后置为0控制单元到内存地址为0的位置取指令0000 0111执行加载指令,地址中的内容 (8) 到寄存器A
1LOAD_B 80001 1000执行加载指令,地址中的内容 (6) 到寄存器B
2ADD A B0100 00016和8送往ALU的两端,产生结果14后存回寄存器A
3STORE_A F1000 1111执行存储指令,将寄存器A的内容存向指定地址

指令集架构

  • 历史扩展

    • x86

      指令集架构起初都是CPU的制造厂商制定的,经典的是Intel提出的x86 Intel制定指令集、设计CPU电路、制造CPU均能自己

    • 公版ARM

      后来英国ARM公司推出ARM指令集架构 但是ARM不制造CPU,授权产商可以根据他们提供的电路执行制造CPU。

      • 定制ARM

        有能力生产CPU的产商:化为、低通、挨炮、三桑等公司 他们会根据自己的需求,改进公版的设计,集成更多模块(如5G基带、图像处理模块等),产出:麒麟、骁龙、A系列、猎户座等产品

      • SoC

        这些集成度很高的产品,称为SoC,超出了传统CPU的定义 像台积电这种产商专注于这些产品的代工 Intel、AMD等产生也在x86架构中集成GPU或IO模块,向着SoC的方向发展。CPU和SoC的界限逐渐变得模糊

    • RISC-V开源指令集 前面的都是要钱的,这个可以使用该指令集自行设计电路,不需要钱 但如果使用RISC-V官方给出的具体电路设计,这个是要钱的

历史原理

bug计算机缺陷、patch补丁 的由来

  • 逻辑电路:开关机
  • 机器语言:高低电压 + 打孔纸带
  • 汇编语言:用单词来代替一串01序列
  • 高级语言