指令集体系结构(Instruction-Set Architecutre,ISA):一个处理器支持的指令和指令的字节级编码,称为处理器的ISA。ISA在编译器编写者和处理器设计人员之间提供一层抽象,编译器编写者只需要知道该处理器支持哪些指令,以及这些指令是如何编码的;处理器设计人员要建造出执行这些指令的处理器。
不同处理器家族,比如Intel IA32和x86-64、IBM和ARM,都有不同的ISA,意味着程序编译出来的可执行文件不能在不同处理器上运行,因为它们具有不同的ISA。而同一个处理器家族的ISA通常是可兼容的。
需要注意,现代处理器的实际工作方式可能和ISA隐含的计算模型相差很大。ISA模型隐含的是顺序执行每条指令,但是为了提高效率,处理器会同时处理多条指令的不同部分,并且采用一些特殊机制保证处理器运行结果和顺序执行相同。
本章首先定义了一个简单的指令集Y86-64,作为处理器实现的运行实例。本章可以分成以下三部分内容:
**硬件描述语言(Hardware Description Language,HDL)**可以用来描述硬件结构,是一种文本语言,类似于编程语言,包括Verilog和VHDL。**逻辑合成程序(Logic Synthesis)**可以根据HDL的描述来生成有效的电路设计。所以从手工设计电路到合成生成的转变,就好像从手写汇编到高级语言的转变。
硬件控制语言(Hardware Control Language,HCL)只表达硬件设计的控制部分,只有有限的操作集合,也没有模块化,可以参考这里。
这么课开发了将HCL翻译成Verilog的工具,然后结合基本硬件单元的Verilog代码,就能产生HDL描述,由此就能合成实际能工作的微处理器了。可以参考这里。
当前逻辑1
是由1.0伏特左右的高电压表示,逻辑0
是由0.0伏特左右的低电压表示。
实现一个数字系统主要有三个组成部分: