处理器体系架构(Y86系统)

注:以下内容均来自开源学习组织DataWhale

处理器体系架构

1 指令系统结构

根据“x86-64”指令集,定义了一个简化版“Y86-64”指令集。以下内容均基于“Y86-64”指令系统:

  • 15个寄存器:

    %rax %rsp %r8 %r12 %rcx %rbp %r9 %r13 %rdx %rsi %r10 %r14 %rbx %rdi %r11

    其中%rsp被定义为栈指针,其他14个无固定含义

  • 条件码:

    零标识(ZF)、负号标志(SF)、溢出标志(OF)

  • 程序计数器PC保存当前正在执行的指令的地址,状态码Stat表示程序执行的状态。

  • movq指令:其中r为寄存器,i为立即数,m为内存

    在这里插入图片描述

    例如:rrmovq rA, rB表示操作数rA是寄存器,操作数rB也是寄存器。

    上图中每条指令的第一个字节表明指令的类型,这个字节分两部分,每部分占4个bits,高四位表示指令代码,第四位表示指令功能。

  • 寄存器编号

    在这里插入图片描述

    其中F代表无寄存器,例如指令irmovq中源操作数为一个立即数,不是寄存器,所以在后面指令第二个字节的高四位为F

  • 整数操作指令

    在这里插入图片描述

  • 跳转操作指令

    在这里插入图片描述

  • 数据传送指令

    在这里插入图片描述

  • 其他指令

    在这里插入图片描述

    其中halt表示停止指令,执行后处理器停止,并将状态码设为HLT;nop表示一个空操作;call和ret表示函数的调用和返回;push和pop为压栈和弹栈操作。

可以根据上述的指令编码,翻译一段Y86的汇编代码。

例如:rmmovq %rsp, 0x123456789abcd(%rdx)

上面这段汇编代码对应二进制表示为:

40 42 cd ab 89 67 45 23 01 00

40:rmmovq

42:4为%rsp编号,2为%rdx编号

cd ab 89 67 45 23 01 00:为23456789abcd补齐8个字节后的小端法存储形式

  • Y86-64中状态码

    在这里插入图片描述

2 阶段

Y86-64处理器执行命令时分为如下6个阶段:

  1. 取址:处理器执行所有的指令都需要取址。在 Y86-64 指令系统中,指令的长度 不是固定的,因此取址阶段需要根据指令代码判断指令是否含有寄存器指示符、 是否含有常数来计算当前的指令长度。
  2. 译码:在译码阶段中,处理器从寄存器文件中读取数据。寄存器文件有两个读 端口,可以支持同时进行两个读操作。
  3. 执行:指令被正式执行的阶段。在该阶段中,算术逻辑单元(ALU)主要执行 三类操作:执行算术逻辑运算、计算内存引用的有效地址、针对 push 和 pop 指令的运算。
  4. 访存:对内存进行读写操作的阶段
  5. 写回:将执行结果写回到寄存器文件中
  6. 更新:将PC更新为下一条指令的地址
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值