20144303 《信息安全系统设计基础》第六周学习总结(下)

it2022-05-09  41

20144303 《信息安全系统设计基础》第六周学习总结(下)

第四章 处理器体系结构

Y86模拟器的安装:

4.3 Y86的顺序实现

1、将处理组织成阶段 取指:从存储器读取指令字节,地址为程序计数器(PC)的值。指令指示符字节两个四位部分,称为icode(指令代码)和ifun(指令功能)。vaIP(下一条指令的地址)=PC+已取出指令的长度。

译码:从寄存器文件读入最多两个操作数,得到valA和/或valB。

执行:算数逻辑单元(ALU)根据ifun的值执行指令指明的操作,计算存储器引用的有效地址,或者增加或减少栈指针。得到的值称为valE。也可根据条件码执行跳转。

访存:将数据写入存储器,或者从存储器读出数据。读出的值为valM。

写回:最多可以写两个结果到寄存器文件。

更新PC:将PC设置成下一条指令的地址。

2、SEQ硬件结构

取指:将程序计数器寄存器作为地址,指令存储器读取指令的字节。PC增加器计算valP,即增加了的程序计数器。

译码:寄存器文件有两个读端口A和B,从这两个端口同时读寄存器的值valA和valB。

执行:根据指令类型将算数/逻辑单元(ALU)用于不同的目的。条件码寄存器有三个条件码位,ALU负责计算条件码的新值,当执行跳转指令时会根据条件码和跳转类型来计算分支信号Cnd。

访存:数据存储器读出或写入一个存储器字。指令和数据存储器访问的是相同的存储器位置,但用于不同的目的。

写回:寄存器文件有两个写端口,E用来写ALU计算出来的值,M用来写从数据存储器中读出来的值。

3、SEQ时序

SEQ的实现包括组合逻辑和两种存储器设备:时钟存储器(程序计数器和条件码寄存器),随机访问存储器(寄存器文件、指令存储器和数据存储器)。

Y86指令集的计算原则:处理器从来不需要为了完成一条指令的执行而去读由该指令更新了的状态。

4、SEQ阶段的实现

取指阶段:包括指令存储器硬件单元。

译码和写回阶段:寄存器文件,支持同时进行两个读和两个写,每个端口有一个地址连接(寄存器ID)和一个数据连接(32根线路),既可以作为寄存器文件的输出字,又可以作为他的输入字。

执行阶段:算数逻辑单元(ALU),输出为valE信号。

访存阶段:读或者写程序数据,两个控制块产生存储器地址和存储器输入数据的值。另外两个块产生控制信号表明应该执行读还是写操作。当执行读操作时,数据存储器产生valM。

更新PC阶段:产生程序计数器的新值,依据指令的类型和是否要选择分支,新的PC可能是valC、valM或者valP。

例题分析和问题:

4.1:

用Y86模拟器编译:

这道题是要把指令序列转换成字节编码。做法就是先根据图4-2找出每个指令对应的字节编码,然后按照其格式和规定,参照图4-3中功能码和4-4中寄存器名字对应的数字,完成每行指令的转换。

比如:第2行的 irmovl $15,

转载请注明原文地址: https://win8.8miu.com/read-1490468.html

最新回复(0)