




已阅读5页,还剩40页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
华北电力大学硕士学位论文 摘要 计算机技术发展至今,软件模拟是评估硬件设计、开发系统软件和研究计算机 体系结构的有力工具。本论文对l x1 1 6 4 微处理器体系结构特点、指令集、存储体 系进行了详细分析,深入研究e l f 二进制文件结构及其载入内存的过程,在比较多 种模拟技术的性能优劣的基础上,采用执行驱动模拟技术设计l x 一1 1 6 4 微处理器模 拟器l x s i m ,实现从e l f 文件中读取代码数据装载到模拟器的内存中,并周期精确 模拟指令的解释执行。模拟器l x s i m 验证l x 一11 6 4 微处理器系统的f 确性及性能, 收集统计数据对系统进行性能优化,支持硬件和系统软件的开发设计,降低开发成 本和时间。 关键词:l x 一1 1 6 4 微处理器,模拟器,执行驱动,e l f ,乱序执行 a b s t r a c t w i t ht h ed e v e l o p m e n to ft h ec o m p u t e rt e c h n o l o g i e s ,s o f t w a r es i m u l a t i o ni so n eo f t h ei m p o r t a n tt o o l sf o rp e r f o r m a n c ep r e d i c t i o na n de v a l u a t i o no fan e wa r c h i t e c t u r e ,t h e a r t i c l ea n a l y s e st h ec h a r a c t e ro fa r c h i t e t u r es t r u c t u r e ,i n s t r u c t i o ns e ta n dm e m o r ys y s t e m o fl x 一11 6 4m i c r o p r o c e s s o r ,d e s c r i b e st h es t r u c t u r eo fe l ff i l ea n dc o m p a r e st h e a d v a n t a g e sa n dd i s a d v a n t a g e so fv a r i o u ss i m u l a t i o nt e c h n i q u e s b a s e do nt h e s ew o r k , t h ea u t h o rd e s i g n sa n dr e a l i z e st h el x - 1 1 6 4m i c r o p r o c e s s o rs i m u l a t o r ,ac y c l e b y c y c l e i n t e r p r e t a t i o ns y s t e mf o ri n s t r u c t i o n s t h es i m u l a t o rl x s i mc a nv e r i f yt h ep e r f o r m a n c e a n dc o r r e c t n e s so fan e ws y s t e m ,r e d u c et h ed e v e l o p i n gc o s ta n dt i m e ,a n dc o l l e c tt h e s t a t i s t i c a ld a t at oo p t i m i z et h es y s t e mp e r f o r m a n c e g a ol i ( c o m p u t e ra p p l i c a t i o nt e c h n o l o g y ) d i r e c t e db yp r o lx i ah u n g k e yw o r d s :l x - 1 1 6 4m i c r o p r o c e s s o r s i m u l a t o r , e x e c u t i o n - d r i v e n ,e l f , e x e c u t i n g o u t 0 f - o r d e r 声明 本人郑重声明:此处所提交的硕士学位论文( l x 1 1 6 4 微处理器模拟器研究 与设计,是本人在华北电力大学攻读硕士学位期间,在导师指导下进行的研究工作和 取得的研究成果。据本人所知,除了文中特别加以标注和致谢之处外,论文中不包含其 他人已经发表或撰写过的研究成果,也不包含为获得华北电力大学或其他教育机构的学 位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均己在论文中 作了明确的说明并表示了谢意。 学位论文作者签名:登日期:逆z = i :生垒 关于学位论文使用授权的说明 本人完全了解华北电力大学有关保留、使用学位论文的规定,即:学校有权保管、 并向有关部门送交学位论文的原件与复印件;学校可以采用影印、缩印或其它复制手 段复制并保存学位论文;学校可允许学位论文被查阅或借阅;学校可以学术交流为 目的,复制赠送和交换学位论文;同意学校可以用不同方式在不同媒体上发表、传播学 位论文的全部或部分内容。 ( 涉密的学位论文在解密后遵守此规定) 作者签名:赴 日期:建翌z 三:兰笋 导师签名: 华北电力大学硕士学位论文 1 1 论文研究的背景和意义 1 1 1 课题介绍 第一章引言 随着科技的进步和社会的发展,计算机已经在我们的日常生活、工农业生产和 科学研究中取得了广泛的应用。c p u ( c e n t r a lp r o c e s s i n gu n i t ) ,中文全称中央处理 器,是计算机系统中最重要的一部分,它是整个计算机系统的控制中心。从1 9 7 1 年i n t e l 发布了全世界第一款微处理器芯片4 0 0 4 以来,它便以惊人的速度向前发展。c p u 的性能 如此高速增长,受益于集成电路技术和计算机体系结构的发展。1 9 6 4 年,美国仙童 ( f a i r c h i l d ) 公司的高登摩尔断言:“每十八个月集成电路的性能和晶体管的数量将提 高一倍,而价格将下降一半”,这就是著名的摩尔定律。c p u 的近三十年的发展史证明: i n t e l 和a m d 在其产品不断推陈出新的过程中一直向世人完美地诠释着定律的魅力。进 入8 0 年代以后,计算机体系结构产生了一次重大变革,在计算机体系结构技术发展的 促进下,集成电路技术为计算机设计提供的技术空间得到了充分的发挥,计算机系统性 能的增长达到每年5 0 以上,其中包括器件技术在内的计算机制造技术提供其中约8 , 其余约4 2 的部分主要依靠计算机体系结构发展的支持。 国外的c p u 产业正在迅猛发展,而我国的c p u 产业却处于刚刚起步,微处理器几乎 全部从国外进口。没有自己的芯片,没有自己的核心技术,我国的信息产业就会受制于 人,信息安全就无法保障。众所周知,如果我们的军事武器、重要工业、政府机关等等 重要组织的电脑里用的是国外的c p u ,那是很危险的事情。现在美国出口到国外的操作 系统和c p u 的安全级别是偏低的,这是因为受他们的国防部控制的缘故,可见小小的芯 片直接关系到国家的经济、政治、社会安全,也关系到国家综合竞争力的提高。目前, 国内生产的i c 产品只能满足国内市场的2 0 ,这将使我国的信息安全面l 临严重威胁。 北京凝思科技有限公司是以承担国家8 6 3 信息安全项目而设立的高新技术企业。公 司的目标是设计和生产出具有完全自主知识产权的处理器和操作系统的高安全服 务器系统,填补我国在信息安全关键技术领域的空白。 缓冲区是程序运行时计算机内存中的一个连续的块,它保存了给定类型的数 据。问题随着动态分配变量而出现。为了不用太多的内存,一个有动态分配变量的 程序在程序运行时才决定给他们分配多少内存。如果程序在动态分配缓冲区放入太 多的数据会有什么现象? 它溢出了,漏到了别的地方。一个缓冲区溢出应用程序使 用这个溢出的数据将汇编语言代码放到计算机的内存中,通常是产生r o o t 权限的 地方。单单的缓冲区溢出,并不会产生安全问题。只有将溢出送到能够以r o o t 权 1 华北电力大学硕士学位论文 限运行命令的区域才行。这样,一个缓冲区利用程序将能运行的指令放在了有r o o t 权限的内存中,从而一旦运行这些指令,就是以r o o t 权限控制了计算机。总结一 下上面的描述。缓冲区溢出指的是一种系统攻击的手段,通过往程序的缓冲区写超 出其长度的内容,造成缓冲区的溢出,从而破坏程序的堆栈,使程序转而执行其它 指令,以达到攻击的目的1 1 3 o 据统计,通过缓冲区溢出进行的攻击占所有系统攻击 总数的8 0 以上。造成缓冲区溢出的原因是程序中没有仔细检查用户输入的参数。 利用缓冲器溢出使处理器执行攻击者的代码能够成功的原理,首先是因为现有 的处理器都不具有隐含边界检查的硬件能力。i n t e l 的i 3 2 ( x 8 6 ) 体系结构中的 段保护机制虽然可以有边界检查的能力,但是由于它的设计缺陷,具体的说,它的 检查范围和粒度与寻址空间矛盾,阻止了的它的应用,其次,c 语言不具有自动边 界检查的语意和能力。经过多年对处理器体系结构和系统软件的研究,我们认识到, 系统安全性的最终解决只在软件上做文章是不够的,必须有自己相应的硬件支持。 设计l x 一1 1 6 4 微处理器的目的在于为用户提供一个的硬件平台,与相应的软件配合 达到真正的信息安全。 我的课题是编制软件来模拟l x - 1 1 6 4 微处理器的指令系统、内部结构功能以及 可执行程序的运行,从而形成完整的l x 1 1 6 4 模拟器。 1 1 2 课题意义 计算机技术发展至今,软件模拟是评估硬件设计、开发系统软件和研究计算机 体系结构的有力工具。当构建一个新系统时,有效地测试和验证新系统的行为和正 确性十分重要。相比于制造出实际的硬件,模拟器至少有三点优势:首先,可以在 构建系统之前就对其正确性及性能进行验证,从而大大降低开发成本和时间;其次, 模拟器还可以使得在硬件生产之前就能够进行系统软件开发,从而使软、硬件同时 面世成为可能;最后,模拟器可以收集详细的统计数据,帮助分析系统的行为,从 而进行性能优化。由于模拟器的直观性和易用性,在计算机组成和体系结构教学研 究领域也有很重要的应用。 1 1 3 模拟器的组成及功能 l x 一1 1 6 4 微处理器模拟器的组成如下: 1 、预处理模块:主要实现将l x 1 1 6 4 指令转换成模拟器使用的静态指令结构。 2 、控制模块:主要用于完成模拟器的初始化,向处理器加载程序,显示处理 器的各个部件的状态,并进行一些简单统计分析。 3 、处理器模块:主要实现对处理器的周期精确模拟。 模拟器具有以下功能: 2 华北电力大学硕士学位论文 1 、加载被执行程序到模拟器: 2 、正确模拟l x 1 1 6 4 指令系统中的每一条指令的执行; 3 、单步执行程序; 4 、设断点执行程序; 5 、显示寄存器的状态。 1 2 论文研究内容 1 、通过学习c 语言编程,掌握在l i n u x 上开发l x 1 1 6 4 模拟器方法; 2 、深入掌握l x 1 1 6 4 微处理器内部结构和l x 1 1 6 4 微处理器指令系统及寻址 方式; 3 、深入分析l x 1 1 6 4 微处理器采用的可执行文件e l f 文件的格式; 4 、编制模拟器的加载程序; 5 、编制l x 1 1 6 4 微处理器指令集解释执行系统。 1 3 论文结构 第一章简要介绍项目背景及意义、论文研究内容;第二章介绍模拟器的研究情 况,列举了三个比较成功的模拟器,并分析比较了三种模拟技术;第三章研究 l x 1 1 6 4 微处理器体系特征;第四章研究分析e l f 文件的结构;第五章详细介绍模 拟器的设计及实现;第六章总结论文工作并提出下一阶段研究目标。 3 华北电力大学硕士学位论文 第二章模拟器的研究情况 微处理器模拟器,是模拟程序代码在真正c p u 上运行的一组软件集合,是计 算机系统的软件建模。由于程序代码的执行是模拟的,而不是在真正的c p u 上,所 以我们能够在程序执行的任一状态介入,从而达到软件辅助分析的目的。 2 1 几种模拟器 下面简单介绍几种比较成功的模拟器。 2 1 1s i m d l e s c a i a r s i m p l e s c a l a r 是一个比较成功的开放模拟器,它是威斯康星大学开发的超标量 微处理器的模拟器“】。s i m p l e s c a l a r 工具集的出现为计算机系统性能及功耗分析、 处理器微体系结构建模、软硬件协同验证提供了有效的支持。s i m p l e s c a l a r 既提 供了简单的功能模拟器,也提供了模拟超标量处理器微体系结构的乱序( o u to f o r d e r ) 性能模拟器,其乱序模拟器支持动态指令调度、指令乱序执行、指令预测 执行、分支预测等现代微处理器的特性“”,而且还提供了一系列的工具,包括编译 器、b e n c h m a r k 、调试工具、流水线跟踪器等,为计算机体系结构的研究提供了全 面的支持,目前它已经支持p i s a 、a r m 、x 8 6 等指令集。由于s i m p l e s a l a r 的开放 性,许多研究项目都采用它作为研究平台并扩展其功能,比如基于s i m p l e s c a l a r 的 龙芯c p u 模拟器s i m - g o d s o n 。 2 1 2r s i m r s i m ( t h er i c es i m u l a t o rf o ri l pm u l t i p r o c e s s o r s ) 是r i c e 大学开发的指 令集并行多处理器的模拟器0 1 。与其他目前可公开获得模拟器相比,r s i m 是以一种 容易扩展和维护的模块化方式实现的,其主要的子系统有事件驱动模拟库y a c s i m “3 ,处理器乱序执行引擎,处理器存储单元,分级缓存体系。同时r s i m 具有完善的 统计功能,提供了详细地统计信息。我们可以根据需求修改相应模块,即可验证新 的指令集,存储体系。r s i m 可以配置很多系统参数,例如各运算部件个数,每周期 指令发射数目,缓存级数等等,可以设置不同的参数在模拟完成后根据所提供的统 计信息进行分析,测试各种系统指标,比如吞吐率、流水线效率、分支预测成功率、 主存和缓存命中率等等“。这将为提高处理器效率,完善处理器功能提供可靠的数 据。 4 华北电力大学硕士学位论文 s i m o s 是一种完整的机器软件模拟工具,几乎模拟了现代计算机系统中所有的 典型硬件,为系统行为模拟提供一个完整的环境;同时提供了不同粒度的模拟级别, 实现了模拟速度与精度的动态控制”】。更为重要的是,s i m o s 增加了一套数据采集 与处理机制,使用户能够看到被模拟计算机硬件的底层信息,从而帮助研发人员理 解系统的执行行为。s i m o sr e l e a s e2 是斯坦福大学对外发布的第一个版本,当前 发布的s i m o sr e l e a s e2 可以支持在基于s u n 的s p a r c 的系统上面运行如果没 有s g i 或者是s u n 的计算机,可以尝试把s i m o s 移植到相应操作系统下面来运行, 把s i m o s 移植到基于u n i x 的b i g e n d i a n 的计算机上应该不难,如果移植到基于 d e c 或者是i n t e r lx 8 6 系列的l i t t l e - - e n d i a n 计算机上可能需要比较多的工 作。s i m o s 分为三个部分:第一部分是s i m o s 的源代码和二进制文件;第二部分 是i r i x5 3 移植的s i m o s 的系统内核;第三部分是在运行于s i m o s 中的i r i x 系 统上面的一些应用例子“”。s i m o s 作为一种完整的机器模拟工具,已广泛应用于硬 件设计、操作系统开发、应用程序性能评价等领域,其功能和应用平台都将会有较 大的扩充,在计算机研究领域发挥更大的作用。 2 2 软件模拟技术 根据对软件模拟性能要求的不同,出现了多种软件模拟技术,包括:事件驱动 模拟、执行驱动模拟、踪迹驱动模拟、指令级模拟,周期驱动模拟以及解释执行模 拟等等。我们定义了各种标准来分析和比较这些模拟技术,如精确度、速度、内存 使用、复杂性和可移植性等等,以评价各种技术最适应哪种情况,以及通常情况下 各种技术的局限性。在这些标准中,我们更多地关注精确度和速度,通常它们是相 互制约的。精确度越高,程序越复杂,模拟速度必然下降;提高模拟速度也要牺牲 一定的模拟细节,降低模拟精确度。下面将具体分析前三种技术。 2 2 1 事件驱动模拟技术 一个设计活动通常由设计过程中的某个事件的产生或某个状态的改变而激发。 传统设计过程中,设计人员扮演着激发、侦听和执行事件的角色。然而,随着设计 方式的进一步发展,大量的事件产生和响应,设计人员原有的这种基于时间模式的 工作方式将不再适用于所承担的角色。事件驱动技术通过对事件的定义、捕获和广 播机制,使过程自动化,设计人员只需设计响应具体的事件所进行的操作。 事件驱动模拟是由事件列表来驱动的,模拟推进的唯一途径就是在未来某一时 刻调度一个事件。事件列表是一个按时间顺序排列的事件队列,每个事件都被分配 5 华北电力大学硕+ 学位论文 一个信号量,信号量用于各个事件间的协同。当到达某一特定时刻,系统中某元素 的值发生改变,这将可能影响到与此相关的逻辑单元,所有被影响的逻辑单元做相 应操作,这可能会在事件列表中增加新的事件。 最简单的事件模拟算法如下: w h i l e ( 模拟没有结束) 从事件列表中找到最早的事件e : 用模拟时钟给事件e 打时问戳: 执行e : 为了更好的理解事件驱动模拟,下面介绍事件列表( e v e n tl i s t ) 、事务 ( t r a n s a c t i o n ) 和事件( e v e n t ) 的概念。事件列表是一个按时间顺序排列的事件 队列,每个事件列表都被分配一个信号量,信号量用于各个事件列表间的协同。“。 事务可以表示为一个数值对( w ,t ) ,w 是信号量的值,t 是修改w 的执行时问。在 一个模拟周期,信号量的改变必须由事件列表调度。当系统中某一元素发生改变时, 该元素及其新的值被称为事件。通过将事件放入一个事件列表中实现事件的调度。 当某一特定时刻到来,元素的值发生改变,这将影响到所有以此元素作为输入的逻 辑单元。所有这些被影响的逻辑单元必须被评估,这可能会在事件列表中增加更多 的事件。系统会记录当前时间,当前时问步,会为每一个元素保存一个逻辑状态记 录。当一个元素改变逻辑状态时,无论其作为一个逻辑单元的输入还是输出,都将 产生一个事件。 在事件驱动模拟过程中系统将检查所有信号量的事件列表,这分成三个阶段: 第一个阶段( 加工) 在实际模拟之前构建网络。下一阶段( 初始化) 设置0 时刻, 为所有的变量和常量设置初始值,并为信号量生成事件列表。实际的模拟阶段( 执 行) 在增量周期( d e l t ac y c l e s ,代表一个无穷小的持续时间) 执行,当事件队列 头的事件运行时,将该事件的时间戳更新为当前模拟时间。每个增量周期已可以分 为两个连续的阶段,时间步阶段和评价阶段。在时间步阶段,在实际模拟时刻被调 度的事务从信号量的事件列表中移出并执行。在评价阶段,所有对这些事件敏感的 进程都被激活,并又有可能生成新事件,这些新事件会在下一个增量周期处理。 事件驱动模拟技术处理那些交互信息多的系统较之其他技术有更高的灵活性: 但由于每个模拟周期都要操作事件队列,如果系统过于复杂,事件列表元素数量过 大,这样会造成模拟极其缓慢。 6 华北电力大学硕十学位论文 2 2 2 执行驱动模拟技术 近年来,研究实现了很多多处理器模拟系统,这些系统大部分都使用了执行驱 动( e x e c u t i o n d r i v e n ) 模拟技术,这又被称为直接执行技术。执行驱动模拟是模 拟一个真实程序在处理器上执行的技术,直接执行就是直接使用主机( 即运行模拟 器的机器) 的指令来得出被模拟指令的结果,也就是说,并不精确模拟本地指令执 行的具体过程,通过设定周期计数来估计该指令的执行时间“”。该技术直接运行可 执行应用程序,对各项参数进行统计,是开发模拟环境时经常采用的实现方法。 执行驱动模拟技术区分两类指令:本地( 1 0 c a l ) 指令和非本地( n o n - l o c a l ) 指令“”。如果一条指令的执行仅仅影响到本地处理器,那么就是本地指令,比如寄 存器一寄存器指令;而非本地指令则可能会影响到多于一个处理器的执行行为,比 如共享内存访问以及网络通信。对于本地指令采用直接执行技术,而非本地指令则 通过陷阱,根据目标系统的特性精确模拟。 执行驱动模拟技术仅仅在处理非本地指令时精确模拟,大大减少了开销;但由 于是通过静态的设定周期计数来估计本地指令的执行时间,稍微降低了精确度。在 超标量处理器上,由于指令多发射、指令叠加和功能单元间的同步,代码执行时间 不能精确地预测,因此执行驱动模拟技术对超标量处理器的模拟有一定的欠缺。 2 2 3 踪迹驱动模拟技术 踪迹驱动模拟最常用的模拟技术之一,成功运用于存储系统和分支预测的性能 模拟评估方面。所谓踪迹就是被模拟系统的一系列信息,他们通过硬件或者软件的 方式采集,以特定的格式存储起来,然后作为模拟器指定模块的输入。 该技术包括三个主要阶段:踪迹采集、踪迹压缩和踪迹处理1 。因为采集的数 据量大,踪迹压缩过程会处理掉一些不必要的和多余的数据。在踪迹处理阶段踪迹 做为软件模拟器的输入来模拟假定的系统行为。要构成一个完整的踪迹驱动模拟系 统就必需通过踪迹界面把踪迹模拟三个独立阶段联系起来,这样踪迹数据才能从一 个阶段流向下一个阶段。 踪迹驱动模拟也已经应用于并行计算研究领域。但是,踪迹模拟应用程序在并 行系统中造成一个问题。并行计算的行为在一个新的环境下可能会发生改变,这会 使得踪迹失效o ”。些并行计算的踪迹驱动模拟被限制在由传统的消息传递方式书 写的程序( 比如,每个处理器单进程并且阻塞消息以接收请求给定标识和原处理器 的特定消息) 。在这些情况下,程序行为保持不变,尽管环境发生变化。通常,消 息传递程序可能包含会产生不确定性的非阻塞消息传递原语。加之非阻塞接收,程 序的行为可能会依赖于消息的到达顺序。例如,程序可能核对特定消息,如果消息 不在,程序可能选择不同的行为。在更简单的情况下,由于这种不确定性产,t 的问 7 华北电力大学硕十学位论文 题会出现在一些踪迹驱动模拟研究中。这些研究使用一种混合方法,结合踪迹驱动 模拟和真实执行用户代码来研究共享内存系统性能“”。由于这种方法在模拟时需要 执行一部分用户代码,所以是困难而且代价昂贵的。执行驱动模拟或者依赖于消息 到达顺序的消息传递程序的混合模拟会很困难且不切实际。 由于踪迹就是被模拟系统的确定性结果,踪迹驱动模拟有较高的可信度,模拟 过程详细精确;因此也造成较高的复杂性和较大的时间消耗。此外,采集到的踪迹 对于一个模拟模块是典型的和最优的,但对于另一个模拟模块则不尽然。如果可执 行程序是多线程的,那么很难生成典型的踪迹,用于模拟多处理器体系时候出现失 真,所以这种技术较少用于模拟并行系统h 1 。 2 3 本章小结 本章主要介绍了模拟器的研究情况,简单介绍了几个成功的模拟器,并分析几 个模拟器常用的模拟技术,比较其性能差异。 考虑到本模拟器的实现功能和执行效率,l x 一1 1 6 4 微处理器模拟器l x s i m 采用 执行驱动模拟技术。 8 华北电力大学硕士学位论文 第三章l x 一11 6 4 微处理器 3 1l x - i16 4 微处理器组织结构 l x 一1 1 6 4 微处理器,是具有安全单元的高性能6 4 位通用处理器,在体系结构上 具有以下一些主要的特征: 1 、支持字节的大小尾端; 2 、超标量实现; 3 、支持4 4 位虚地址空间和4 l 位物理地址空间; 4 、简单的指令格式:所有的指令均为3 2 位宽,内存中按3 2 位边界对齐。只 有l o a d 和s t o r e 指令存取内存以及i 0 操作; 5 、少的寻址方式:提供两种寻址方式“r e g i s t e r + r e g i s t e r ”和 “r e g is t e r + i m m e d i a t e ”: 6 、三寄存器地址:多数计算指令对两个寄存器操作数或一个寄存器操作数与 一个常量进行操作,结果放入第三个寄存器中; 7 、浮点运算:提供了i e e es t d7 5 4 - 1 9 8 5 兼容的浮点指令集,操作在独立的 寄存器堆( 浮点寄存器堆) 中。寄存器堆提供了3 2 位单精度、6 4 位双精度浮点寄 存器。 l x - 1 1 6 4 微处理器的结构如图3 - 1 所示。 图3 - 1l x 一11 6 4 微处理器结构框图 9 华北电力大学硕十学位论文 各单元的基本功能如下: 1 、指令预取和分派单元 控制指令的预取和分派,包括分支预测逻辑。 2 、存储管理单元 实现页式存储保护管理的虚拟存储。包括一个6 4 个表项的指令地址转换后行 缓冲器( i t l b ) ,和一个6 4 个表项的数据地址转换后行缓冲器( d t l b ) 。i t l b 和d t l b 均采用四路( f o u r w a y ) 组相联的高速缓存存储器,实现逻辑地址到物理地址的转 换以及存取权限的检查。存取保护采用三级权限即普通用户( u s e r ) 级和低级超级 用户( s u p e r l ) 级和高级超级用户( s u p e r _ h ) 级。页模式包括两种,8 k b 页或 4 m b 页。 3 、整数执行单元 包括两个算术和逻辑单元,可以完成8 位、1 6 位、3 2 位和6 4 位整数运算。也 可完成图象处理操作( 洲x ) 。 4 、存取单元 完成对数据的存取操作,具有独立的地址计算功能。 5 、存取缓冲区 为使流水线的吞吐量增加,在数据存取发生结构相关时缓冲数据。 6 、浮点单元 支持i e e es t d7 5 4 1 9 8 5 浮点标准中的3 2 位单精度和6 4 位双精度浮点数。可 以完成单双精度浮点数的加法、减法、比较、乘法、除法开平方运算,单双精度 浮点数之间的转换以及浮点数和整数之间的转换。 7 、寄存器堆 整数寄存器堆 6 4 3 2 位通用寄存器,为整数操作提供数据。整数寄存器为3 2 位宽,支持3 2 位整数运算;通过寄存器奇偶对可以组成6 4 位整数寄存器,以支持6 4 位整数运算。 浮点寄存器堆 6 4 3 2 位浮点寄存器,为浮点数操作提供数据。浮点寄存器为3 2 位宽,支持 3 2 位单精度浮点运算。通过浮点寄存器奇偶对可以组成6 4 位浮点寄存器,以支持 6 4 位双精度浮点运算。 3 2 指令系统 l x - 1 1 6 4 体系结构所有的指令均为3 2 位宽,内存中按3 2 位边界对齐。l x 1 1 6 4 指令的3 2 位编码分4 种格式,如图3 - 2 3 6 所示“1 。 1 0 华北电力大学硕士学位论文 3 l3 02 92 8 2 7 2 62 52 42 32 22 12 0 l ,1 8 1 7 1 6 坫1 4 1 3 1 2 1 1 987 543 21 图3 - 2l x - 1 1 6 4 指令格式i 3 i3 02 9 2 82 7 2 62 52 42 32 22 1 2 0 l ,1 8 1 7 1 6 1 5 1 4 1 3 1 2 1 1 l 987 s4 32l 图3 - 3l x 1 1 6 4 指令格式2 图3 - 4l x - 1 1 6 4 指令格式3 ( 一) 1 1 华北电力大学硕十学位论文 f o r m a t 3 ( 叩- 2 0 r 3 ) :a r i t h m e t i c , l o t j a d , m o v r , b l a , l o a d , ds t o r e 3 1 拍2 9 嚣2 7 弱驾2 42 32 22 12 0 1 9 1 8 1 7 1 6 1 5 1 4 1 3 1 2 1 1 1 0 87654 32 l0 图3 - 5l x 1 1 6 4 指令格式3 ( 二) 3 1 加凹嚣2 7 衢2 s 舶笠习加口1 8 1 7 “坫d 1 2 n ”907 543 2l 3 3 数据类型和格式 图3 6l x - 1 1 6 4 指令格式4 l x 一6 4 结构支持以下基本的数据类型: 有符号整数:8 、1 6 、3 2 、6 4 位。 无符号整数:8 、1 6 、3 2 、6 4 位。 浮点数:3 2 位单精度和6 4 位双精度。 数据类型的宽度为: 字节( b y t e ) :8 位。 双字节( d o u b l e - b y t e ) :1 6 位。 半字( h a l f - w o r d ) :3 2 位。 字( w o r d ) :6 4 位。 华北电力大学硕十学位论文 3 4 存储体系 l x 1 1 6 4 微处理器采用页式虚拟存储,存储管理单元( m m u :m e m o r ym a n a g e m e n t u n i t ) 负责完成存储的虚地址到实地址的转换o ”,同时,提供存储器的页保护功能。 存储管理单元提供4 4 位虚地址和4 1 位实地址之间的映射。在每一个处理器周 期内,m m u 提供一个指令和一个数据的地址转换“”。转换的实质是把虚地址所包含 的虚页号转换为实地址包含的实页号。页内的偏移量对于虚地址和实地址来说是一 样的,因此不需要转换。页的大小可以支持2 种方式,分别为8 k b 和4 m b 。根据页 的大小不同其虚地址格式如图3 7 所示。 f o r m a tf o ri i m y t ep a g e 4 32 22 1 f o r m a tf o r4m b y r e p a g e 图3 - 7 虚地址格式 3 5 本章小结 在论述模拟器功能模块实现之前,本章简要介绍了l x - 1 1 6 4 微处理器系统结构 基本特征,即:各功能部件、存储体系、指令系统的寻址方式和指令分类,将在后 续章节介绍各部分在模拟器中如何实现。 1 3 华北电力大学硕士学位论文 4 1 e l f 文件简介 第四章e l f 文件分析 目前在不同的平台上流行着多种不同的二进制目标文件格式。例如, u n i x l i n u x 平台下三种主要的可执行文件格式:a o u t ( a s s e m b l e ra n d1 i n ke d i t o r o u t p u t 汇编器和链接编辑器的输出) 、c o f f ( c o m m o no b j e c tf i l ef o r m a t 通用 对象文件格式) 、e l f ( e x e c u t a b l ea n dl i n k i n gf o r m a t 可执行和链接格式) m s d o s 下的纯代码文件c o m 格式( 可执行的) 和e x e 格式( 可执行的) ,1 6 位w i n d o w s 操作系统下从e x e 发展而来的n e ( n e we x e c u t a b l e ) 格式,3 2 位w i n d o w s 操作系 统根据c o f f 协议标准制定的p e ( p o r t a b l ee x e c u t a b l e ) 格式,o s 2 的l x 格式等 等,e l f 文件格式是比较常用的一种。最初,u n i x 系统实验室( u s l ) 开发和发布了 e x e c u t a b l ea n d1 i n k i n gf o r m a t ( e l f ) 这样的二进制格式。在s v r 4 和s o l a r i s2 x 上,都做为可执行文件默认的二进制格式。e l f 比a o u t 和c o f f 更强大更灵活。结 合一些适当的工具,程序员使用e l f 就可以在运行时控制程序的流程。 相对于其它文件类型,可执行文件可能是一个操作系统中最重要的文件类型, 因为它们是完成操作的真正执行者。可执行文件的大小、运行速度、资源占用情况 以及可扩展性、可移植性等与文件格式的定义和文件加载过程紧密相关。研究可执 行文件的格式对编写高性能程序和一些黑客技术的运用都是非常有意义的o ”。 不管何种可执行文件格式,一些基本的要素是必须的,显而易见的,文件中应 包含代码和数据。因为文件可能引用外部文件定义的符号( 变量和函数) ,因此重 定位信息和符号信息也是需要的。一些辅助信息是可选的,如调试信息、硬件信息 等。基本上任意一种可执行文件格式都是按区间保存上述信息,称为段( s e g m e n t ) 或节( s e c t i o n ) 。不同的文件格式中段和节的含义可能有细微区别,但根据上下 文关系可以很清楚的理解,这不是关键问题。最后,可执行文件通常都有一个文件 头部以描述本文件的总体结构。 e l f 三种主要的类型: 1 、可执行文件:包含了代码和数据,是可执行的程序。 2 、可重定位文件:包含了代码和用于本文件与其他重定位文件或共享的目标 文件链接的数据。 3 、共享目标文件( 又可叫做共享库) :包含了代码和用于在链接的时候被连 接器l d 和运行时动态连接器使用的数据) 。动态连接器可能称为l d s o ,1 ,l i b c s o 1 或者l d l i n u x s o 1 。 1 4 华北电力大学硕士学位论文 e l f 支持8 位到6 4 位的计算机系统,而l x 一1 1 6 4 是6 4 位的高速c p u ,模拟器 直接读入处理e l f 文件,下面我们对e l f 6 4 的基本框架进行研究,以实现我们的应 用。 在实际使用过程中,以上三类文件其实只用于两种目的:程序连接和程序执行。 可重定位文件和共享目标文件用于程序连接,可执行文件用于程序执行。针对这两 种目的,e l f 将三类文件简化为两种格式“1 。如图4 - 1 所示,e l f 格式的文件包含: 一个e l f 头( e l fh e a d e r ) ,若干个节( s e c t i o n ) 或段( s e g m e n t ) ,还有一个节 头表( s e c t i o nh e a d e rt a b l e ) 或程序头表( p r o g r a mh e a d e rt a b l e ) 。 l i n l m 堰 jh e a d e r s c c t i 叽h 曩d e r t a b l e s e c t i o nl s e d i o n n e x e c 山i m 甩fh e a d e r e r o 斟s m h e a d e r t a b l e g m e n t l s e 删n 图4 - 1e l f 文件的两种格式 e l f 头( e l fh e a d e r ) 位于文件的开始处,用于描述整个文件的组织和结构。 用于程序连接的文件中有节( s e c t i o n ) 和节头表( s e c t i o nh e a d e rt a b l e ) , 节中包含指令、数据、符号表、重定位信息等,节头( s e c t i o nh e a d e r ) 是节的描 述信息,节头表是节头的集合。 用于程序执行的文件中有段( s e g m e n t ) 和程序头表( p r o g r a mh e a d e rt a b l e ) , 一个段通常包含一个或多个节的内容,程序头( p r o g r a mh e a d e r ) 即段头( s e g m e n t h e a d e r ) 是段的描述信息,程序头表是程序头的集合。 4 2e l f 头 e l f 头为结构体类型, t y p e d e f s t r u c t u n s i g n e dc h a r e 1f 6 4 一h a l f e 1 f 6 4 一h a l f e l f 6 4a d d r 定义如下: ei d e n t 1 6 ; e _ t y p e ; em a c h i n e : ee n t r y ; 1 5 华北电力人学硕士学位论文 e 1f 6 4 一o f f e 1f 6 4 一o f f e 1f 6 4 一h a l f e 1 f 6 4 一h a l f e 1 f 6 4h a l f e 1 f 6 4 一h a l f e 1 f 6 4h a l f l e l f 6 4 一e h d r ; 其中e l f 6 4 一o f f 、 据类型: e _ p h o f f : e s h o f f ; e e h s i z e : e p h e n t s i z e ) e p h n u m ; e s h e n t s i z e = e s h n u m ; e l f 6 4 _ w o r d 、e l f 6 4 _ a d d r 和e l f 6 4 一h a l f 为e l f 自定义的数 t y p e d e fu n s i g n e dl o n g l o n g e l f 6 4 一a d d r t y p e d e fu n s i g n e dl o n g e l f 6 4 一h a l f t y p e d e fu n s i g n e dl o n g l o n g e l f 6 4 一o f f t y p e d e fs i g n e d l o n g l o n g e l f 6 4 一s w o r d t y p e d e fu n s i g n e dl o n g l o n ge l f 6 4 _ w o r d e i d e n t 1 6 为e l f 目标文件标识串,共1 6 个字节:e _ i d e n t 0 值为o x 7 f , e i d e n t 1 值为e ,e _ i d e n t 2 值为l ,e _ i d e n t 3 值为f ,这四个字 节是所有e l f 文件的起始字串;e i d e n t 4 用于标识c p u 位数,1 表示3 2 位系统, 2 是为6 4 位系统保留的;e i d e n t 5 用于标识大小尾端,1 表示小尾端,2 表示大 尾端;ei d e n t 1 5 值为1 6 ,用于存储标识串本身的大小;其余的字节值都为0 , 作为保留位。 e t y p e 用于标识目标文件的类型,1 为r e l o c a t a b l e 文件,2 为e x e c u t a b l e 文 件,3 为s h a r e do b j e c t 文件,4 为c o r e 文件,其余为保留值。 e _ m a c h i n e 用于说明目标机体系结构,l 为a t & tw e3 2 1 0 0 ,2 为s p a r c ,3 为 i n t e l8 0 3 8 6 ,4 为m o t o r o l a6 8 0 0 0 ,5 为m o t o r o l a8 8 0 0 0 ,6 为i n t e l8 0 8 6 0 ,7 为m i p sr s 3 0 0 0 ,其余为保留值。 ee n t r y 用于存储可执行文件执行时的入口地址,非可执行文件值为o 。 e _ p h o f f 存储程序头表在文件中的偏移地址,无程序头表时该值为0 。 e _ s h o f f 存储节头表在文件中的偏移地址,无节头表时该值为0 e _ e h s i z e 存储e l f 头本身的大小。 e _ p h e n t s i z e 存储每一个程序头表项的大小。 e _ p h n u m 存储程序头表项的个数。 e _ s h e n t s i z e 存储每一个节头表项的大小。 e s h n u m 存储节头的个数。 1 6 华北电力丈学硕士学位论文 4 3 节与节头 节包含目标文件中除e l f 头、节头表和程序头表之外的所有信息。节头是节的 描述信息。 关于节和节头,要注意以下几点:每一个节都一定有一个节头对其进行描述, 但有节头不一定有节;每个节都占据文件中连续的空间;节不能重叠,某一信息不 能属于一个以上的节。段和段头有着类似的关系。 节头是结构体类型,定义如下0 1 : t y p e d e fs t r u c t e l f 6 4w o r ds hn a m e ; e l f 6 4 _ w o r d s h t y p e ; e l f 6 4w o r d s h _ f l a g s ; e l f 6 4 一a d d r s h a d d r ; e 1 f 6 4o f f s h _ o f f s e t , e l f 6 4 _ w o r ds h s i z e ; e l f 6 4 一s h d r ; s hn a m e :节名: s h 一t y p e :节类型,描述如后。值为1 时:s h t p r o g b i t s ,与程序相关的节, 其格式和含义只由程序确定;值2 :s h t _ s 、y m t a b ,该节为符号表;值3 :s h t j ;t r t a b , 该节为字符串表;值4 :s h t r e l ,该节含重定位信息;值5 :s h th a s h ,该节含符 号哈希表;值6 :s h t d y n s y m ,该节为动态连接符号表;值7 :s h t _ n o
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工业设计安全培训课件
- 年度安全培训教育材料课件
- 年度安全再教育培训方案课件
- 娱乐行业安全培训课件
- 工业放射源安全课件
- 兴城事业单位笔试真题2025
- 2024年重庆秀山自治县教育事业单位高校招聘考试真题
- 工业安全用气知识培训课件
- 委托培训安全管理协议课件
- 委外检修安全培训课件
- 2025建设银行秋招笔试真题及答案
- 【数学】角的平分线 课件++2025-2026学年人教版(2024)八年级数学上册
- 阿迪产品知识培训内容课件
- 幼儿园副园长岗位竞聘自荐书模板
- 老旧小区健身设施增设规划方案
- T∕CEPPEA5004.5-2020核电厂常规岛施工图设计文件内容深度规定第5部分仪表与控制
- 2025年中国中煤能源集团有限公司人员招聘笔试备考题库附答案详解(完整版)
- 大模型概念、技术与应用实践 课件 第6章 智能体
- T∕CAME 27-2021 医院物流传输系统设计与施工规范
- 杜预《春秋左传集解序》翻译
- 毕业论文——Bezier和B-样条曲线的算法研究
评论
0/150
提交评论