当前位置:首页 > 芯闻号 > 充电吧
[导读]第4章 处理器体系结构·四关键词:处理器体系结构,汇编语言,指令集,硬件控制语言,寄存器和存储器 一个处理器支持的指令和指令的字节级编码成为它的ISA(instruction-set archite

第4章 处理器体系结构·四
关键词:处理器体系结构,汇编语言,指令集,硬件控制语言,寄存器和存储器 一个处理器支持的指令和指令的字节级编码成为它的ISA(instruction-set architecture,指令集体系结构)。 ISA在编译器编写者和处理器设计人员之间提供了一个概念抽象层,编译器编写者只需要知道允许哪些指令,以及它们是如何编码的;而处理器设计者必须建造出执行这些指令的处理器。 4.1 处理器设计的特点 1 从智力方面来说,处理器设计是非常有趣的。它需要完成复杂的人物,而结构又要尽可能简单。 2 理解处理器是如何工作的能帮助理解整个计算机系统是如何工作的。 3 虽然很少有人设计处理器,但是许多人设计包含处理器的硬件系统。 4 你的工作可能就是处理器设计。 4.2 Y86指令集体系结构 Y86的处理器状态类似于IA32。有八个寄存器(program register):%eax、%ecx、%edx、%ebx、%esi、%edi、%esp、%ebp。处理器每个程序寄存器储存一个字。寄存器%esp被入栈、出栈、调用和返回指令作为栈指针。而其它寄存器没有固定的含义或固定值。有三个一位的条件码(condition code):ZF、SF、OF,它们保存着最近的算术或逻辑指令造成影响的信息。程序计数器(PC)里存放着当前正在执行执行的地址。存储器从概念上来说就是一个很大的字节数组,保存着程序和数据。Y86用虚拟地址来引用存储器位置。硬件和操作系统如眼见联合起来将虚拟地址翻译成指明数据实际存在存储器中哪个地方的实际或物理地址。 1 Y86的指令细节 (1)IA32的movl指令分成了四个不同的指令:irmovl、rrmovl、mrmovl、rmmovl,分别显式地指明源和目的的格式。源可以是立即数(i)、寄存器(r)或存储器(m)。指令名字的第一个字母指明了目的的类型。两个存储器传送指令中的存储器引用方式是简单的基址加位移形式。在地址计算中,我们不支持第二变址寄存器(second index register)和任何寄存器值的伸缩(scaling)。同IA32一样,我们不允许从一个存储器地址直接传送到另一个存储器地址。另外我们也不允许将立即数传送到存储器。 (2)有四个整数操作指令,就是OPI。它们是addl、subl、andl、xorl。它们只对寄存器数据进行操作,而IA32还允许对存储数据进行这些操作。这些指令会设置三个条件ZF、SF、OF(零、符号、溢出)。 (3)七个跳转指令。是jmp、jle、jl、je、jne、jge、jg。根据转移指令的类型和条件代码的设置来选择转移。转移条件和IA32的一样。 (4)call指令返回地址入栈,然后跳到目的地址。ret指令从这样的过程中返回。 (5)pushl和popl指令实现了入栈和出栈,就像在IA32中一样。 (6)halt指令停止指令的执行。IA32中有一个与之相当的指令叫hlt。IA32的应用程序不允许使用这条指令,因为他会导致整个系统停止。在Y86程序中用halt指令来停止模拟器。 指令集的一个重要性质就是字节解释必须有唯一的解释。任意一个字节序列要么是一个唯一的指令蓄力的编码,要目就不是一个合法的字节序列。这个性质保证了处理器可以无二义性地执行目标代码程序。 2 IA32HE Y86的指令编码的比较 同IA32中的指令编码相比,Y86的编码简单的多,但是也没有那么简洁。在所有的Y86指令中,寄存器字段的位置都是固定的,而在不同的IA32指令中,它们的位置是不一样的。即使最多只有8个寄存器,我们也对寄存器采用了4位编码。IA32只用了3位编码。所以IA32能将入栈或出栈指令放在一个自接力,5位字段表明指令类型,剩下的3位是寄存器指示符。IA32可以将常数值编码成1、2或4个字节,而Y86总是将常熟之编码成4个字节。 4.3 逻辑设计和硬件控制语言HCL 要实现一个数字系统需要三个主要部分:计算位的函数的组合逻辑、存储位的存储器元素,以及控制存储器元素更新的时钟信号。 HCL:(hardware control language),硬件控制语言。 1 HCL和C语言的区别 (1)因为组合电路是由一些逻辑门组成的,它有两个属性就是输出会持续地响应输入的变化。相比之下,C表达式只会在程序执行过程中被遇到时才进行求值。 (2)C的逻辑表达式允许参数是任意整数,0表示FALSE,其它任何值都表示TRUE。而我们的逻辑门只对位值0和1进行操作。 (3)C的逻辑表达式有个属性就是它们可能只被部分求值。如果一个AND或OR操作的结果只用第一个参数求值就能确定,那么就不用对第二个参数求值了。而组合逻辑没有部分求值这条规则,逻辑门只是简单地响应它们输入的变化。 2 存储器和时钟控制 组合电路从本质上讲,不存储任何信息,相反,它们只是简单地响应输入信号,产生等于输入的某个函数输出。为了产生时序电路,也就是有状态并且在这个状态上进行计算的系统,我们必须引入按位存储信息的设备。 时钟寄存器:(简称寄存器)存储单个位或字。时钟信号控制寄存器加载输入值。 随机访问存储器:(简称存储器),存储多个字,用地址来选择该读或写哪个字。 4.4 Y86的顺序实现 处理一条指令包括很多操作。我们将他们组织成某个特殊的阶段序列,使即使指令的动作差异很大,但所有的指令都遵循统一的序列。每一步的具体处理取决于正在执行的指令。各个阶段以及各阶段内执行操作的简略描述。 取指(fetch):取指阶段从存储器读入指令,地址为程序计数器(PC)的值。 译码(decode):译码阶段从寄存器堆读入最多两个操作数。 执行(execute):在执行阶段,算术/逻辑单元(ALU)要么执行指令指明的操作,计算存储器引用的有效地址,要么增加或减少栈指针。 访存(memory)访存阶段可以将数据写入存储器,或者从存储器读出数据。 写回(write back):写回阶段最多可以写两个结果到寄存器堆。 更新PC(PC update):将PC设置成下一条指令的地址。 处理器无限制地循环执行这些阶段,只有在遇到halt指令或一些错误情况时,才会停下来。我们处理的错误情况包括非法存储器地址(程序地址或数据地址),以及非法指令。 参考文献 布赖恩特, O'Hallaron D, et al. 深入理解计算机系统[M]. 中国电力出版社, 2004.

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭