4章 处理器体系结构

来源:互联网 发布:java中service的作用 编辑:程序博客网 时间:2024/06/05 02:16

简介

1、指令被编码为由一个或多个字节序列组成的二进制格式。一个处理器支持的指令和指令的字节级编码称为它的指令集体系结构(Instruction-Set Architecture, ISA)。ISA在编译器编写者和处理器设计人员之间提供了一个概念抽象层,编译器编写者只需要知道允许哪些指令,以及它们是如何编码的;而处理器设计者必须建造出执行这些指令的处理器。

Y86指令体系结构

1、Y86指令集体系结构:定义一个指令集体系结构,例如Y86,包括定义各种状态元素、指令集和它们的编码、一组编程规范和异常事件处理。

2、程序员可见的状态:Y86 程序中的每条指令都会读取或修改处理器状态的某些部分,这里的”程序员”既可以是用汇编代码写程序的人,也可以是产生机器级代码的编译器。Y86的处理器状态类似于IA32。有8个程序寄存器,处理器的每个程序寄存器一个字。

3、Y86指令,一个指令汇编代码,肯定对应着一个指令字节编码。每条指令需要1-6个字节不等,这取决于需要哪些字段。每条指令的第一个字节表明指令的类型,分为代码部分占4bit,功能部分占4bit。指令集的一个重要性质就是宇节编码必须有唯一的解释。任意一个字节序列要么是一个唯一的指令序列的编码,要么就不是一个合法的字节序列。因为每条指令的第一个字节有唯一的代码和功能组合,给定这个字节,我们就可以决定所有其他附加字节的长度和含义。这个性质保证了处理器可以无二义性地执行目标代码程序。所以需要解析指令,那么就找出指令对应的指令字节编码即可。这样就可以反汇编工作了。相当复杂,一条指令一条指令进行。

4、RISC精简指令集与CISC复杂指令集。
CISC指令:数量众多,指令集里面规定了可以进行的很多操作,但是缺点就是指令集硬件实现起来复杂,并且对机器级程序来说实现细节是不可见的,不受程序员所控制,看起来使程序员操作更加方便,但是限制了程序员自己的修正使用。
RISC指令:指令数量较少,可以为更简单的指令集形式产生高效的代码,简单的指令集可以用很少的硬件实现,能以高效的流水线结构组织起来。缺点就是实现一些复杂的操作,没有现成的指令使用,需要程序员自己用已有的指令组织起来,虽然复杂点,但是提供了更大的灵活性。在给定硬件数量的情况下,通过结合简约式指令集设计、高级编译器技术和流水线化的处理器实现,他们能够得到更强的计算能力。

5、Y86异常:程序员可见的状态,包括状态码Stat,它描述程序执行的总体状态。这个代码可能的值表示程序执行正常,或者出现某种不允许的错误(异常),处理器遇到异常,通常会调用异常处理程序,这个过程被用来指定遇到某种异常。

6、指令执行包括几个阶段:取址、译码、执行、访存、写回、更新PC。因为简单的分成了这几个部分,所以在硬件设计过程中使用了流水线原理,增加了指令的吞吐量。一个指令在执行的过程,可能另外一个指令以及在取址缓冲了,将一个大的过程细分花。和工程流水线类似。

7、本章其他部分几乎都讲解了逻辑电路的设计和FPGA有关。这里可以不用考虑直接跳过去。

原创粉丝点击