(电路与系统专业论文)可重配置的时钟精确嵌入式处理器仿真平台的研究[电路与系统专业优秀论文].pdf_第1页
(电路与系统专业论文)可重配置的时钟精确嵌入式处理器仿真平台的研究[电路与系统专业优秀论文].pdf_第2页
(电路与系统专业论文)可重配置的时钟精确嵌入式处理器仿真平台的研究[电路与系统专业优秀论文].pdf_第3页
(电路与系统专业论文)可重配置的时钟精确嵌入式处理器仿真平台的研究[电路与系统专业优秀论文].pdf_第4页
(电路与系统专业论文)可重配置的时钟精确嵌入式处理器仿真平台的研究[电路与系统专业优秀论文].pdf_第5页
已阅读5页,还剩69页未读 继续免费阅读

(电路与系统专业论文)可重配置的时钟精确嵌入式处理器仿真平台的研究[电路与系统专业优秀论文].pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

辩江夫学磺学经豫文 可重配置的时钟精确嵌入式处理器仿真平台的研究 摘要 猩过去的几十年内,指令集仿真器成为了嵌入式处理器设计过稷中必不可少 的部分。它在已有的计算机系统上为开发中的处理器构造一个模拟平台,验证 处理器的正确性和有效性,支持基标程序的运行鞠调试。硬件设计嚣薅仿真器来 浮佶嚣标楚瑾嚣魏洼能,修羧俸系结擒中豹藏颈。系统开发者鬟傍囊器来开发编 译器和揉作系统,开发和测试他们的应用程序,察现软硬件协同开发 本文研究了软件仿真器的设计方法和软硬件协同仿真的实现方法,针对自主 研发的嵌入式处理器c k 5 l o ,用c c + + 开发了一旗可配置的时钟糟确的软件仿真 平台,这令平台墨趣摇辩镑精确懿获待嫠真嚣,醚b aa 迅总线凌憩模型,激 及实礴协同仿真的p l i 接髓。仿真器采用的怒赫于解释的仿真策螭,执行驱动的 实现方式,完整的建模了c p u 的流水线结构、中断处理器机制。 本文所设计的软件仿真平台最大的特点在于有很强的可配置性,不仅软件仿 真嚣懿模犁可熬配置,嚣量傍真鲍环境逸可以擞摄霾要配置。仿真乎螽可娃运行 在c + + 翡模型下,撮据傍真的嚣菸选择是否甏鼹总线功能模型 魄可以运行在 v e r i l o g 的环境下,通过p l i 接口实现协同仿真。灵活的仿真环境耐满足不同用 户的需求。 关键词:嵌入式处理器,指令集仿真器,软件仿赢平台,软硬件协冈仿真,p l i 瓣江大学硬士学链论文 图袭目录 圈1 1 基于c k c o r e 仿真平台1 1 图1 2 论文的内容安排1 2 强2 + l 、基于舞释瓣待奏麓酶1 5 翻2 2 莲予编译静仿真策略1 6 图2 3 各类仿真器豹比较1 7 圈3 1 c k c o r e 结构2 0 豳3 2 c k c o r e 流水线结构2 2 图3 3 c k 5 1 0 编程模型2 4 图3 a s p a r ke + + 模姣一2 8 潮3 5 s p a 磁( 蛰嚣筷粪壤戏2 9 潮3 6 s p a r k 模块。2 9 图3 7 s 队r k 流水线结构3 0 图3 ,8 分支预测31 图3 9 相关检查表3 1 豳3 。1 0 指令发射流程3 2 圈3 。l l 。e x 糖令调度3 3 翻3 ,1 2 r 撼e f 缓狰嚣漉箨3 4 圈3 。1 3 d f 流水级流程3 5 图3 1 4 d s 流水级流程3 6 圈3 1 5 s p a r k 结构互邋3 7 测3 1 6 ,s b a r k 的实现模型3 8 圈3 。1 7 。直接访问内存4 0 黧3 。l s 。总线功姥模墼毅诞强壤+ 4 1 翻3 ,1 9 数据模型圈4 3 圈3 2 0 p l i 实现框图4 7 圈4 1 软件仿真平台的设计和验证流程4 9 图4 ,2 s p a r k 的验证环境5 l 圈4 + 3 。s e e d 验证环境5 2 隧4 。4 v e 蛀l 。g 仿真模型救验谣环境5 3 潮4 + 5 傍真器在v e f i 如嘻邵壤中豹努都接强5 4 潮4 6 仿真器的输出结莱一5 6 豳4 7 基准测试程序备类指令比例5 8 翻4 8 三种环境下时钟数的比较5 9 豳4 9 m 真环境与i _ l 环境时钟数比较6 0 豳4 1 0 c a c h e 有效时程序时钟数的误差6 1 强4 1 1 c a 豳e 玉效孵豹赡键数砬 豳4 i 2 。e 4 在c a 曲e 露效和无效条俘下静辩铎数辩毙一钙 图4 1 3 c a c h e 有效时程侉时钟数的误差6 3 圈4 1 4 各程序的仿真效举6 5 圈4 1 5 各平台的平均执行效率6 6 圈4 1 6 d s m 与r t l 环境的比较6 6 5 一 霹藁糕罄豹畸静壤确褒a 式娩联器傍龚平台熬研究 1 强入式处理器 第一章绪论 计算机应用可以分为桌面计算、服务器和嵌入式计算机三大类7 1 。桌面计算 强调定点和浮点数据类型的程序性能,不注熬程序大小和处理器的功耗。服务器 主磐楚穗秘学秘工疆诗黪、数握痒、个人文黪激务秘网络应鼹懿多攒户簸务系统。 与它们不同,嵌入式计辣机是指嵌入在其镌酌设备中不直接可嬲的计算辊,这些 设备可以是日常生活中的电子设备,如打印机、网络交换机,也可能是手持电子 设备,视频游戏等。嵌入式计算机除了要有很强的功能,其功耗、体积、成本、 可靠谯、实时性、速度、处瑗畿力等方嚣堙建至l 应用要求敬终柬。 剃溺嵌久式楚毽嚣翻一些专廷静电路u 开发嵌入式系统蹩现在嵌入式设计 的一个重要趋势。嵌入式处理器是各类面向用户、面向产品、筒向应用的嵌入式 系统的核心部件。 髓前,嵌入式处理器主要有a r m 、m i p s 、p o w e rp c 、m o t 0 l a6 8 0 0 0 系列 等。在3 2 瞧嵌入式凳蘧瓣泰场主要煮涵妁辩l 鑫越t m ,l s ,鬏,壬薹甄逡等 公司,有些生产通用徽处瑷器的公司,像i n t e l 、s l m 和i b m 等,也:生产嵌入式的 微处理器。国内也有很多厂商开发了自主知识产权的嵌入式处理器,但大部分都 还没谢进入商用阶段。 。2 。软件彷真平台瓣意义 在嵌入式处理器设计过程中,特别是在体系结构设计的初期阶段,需要对这 个体系结构和指令集的性熊做评估,设计思想挪必需经过实际建模和分柝;其次 在体系缝穆积c p u 摈令装绞确定之匿裁希望阕步开发编译器秘掇终系统,达至l 软硬件开发酌并行,缭短开发瘸期;再次,谯嫒释开发完成之蓊,应用程序开发 者需鼹一个硬件模型来评估程序的性能;最后,在c p u 开发完成谶入使用阶段, 用户往往会先评估一下c p u 的性能是否满魑自己使用的需求,而在这个评估的 过穰中,开发者希望最大程度约保护鸯己的知识产权。以上闯题:翔俺灵活地验 浙江大学硕士学位论文 证c p u 的体系结构,证明指令执行的正确性,查看c p u 软件的执行结果和效率, 如何支持编译器的同步开发,如何方便用户做性能评估,都是设计者所要解决的 一个重要的课题。 嵌入式处理器软件仿真器是为了解决上述问题而开发的软件工具。在过去的 几十年中,仿真器成为了处理器开发的一个重要组成部分【2 】。它在已有的计算机 系统上为开发中的目标硬件构造一个模拟平台,一方面验证目标处理器体系结构 的正确性和有效性,另一方面支持软硬件的协同开发,包括在硅片出来之前开发 目标机的编译器和操作系统,以及目标机程序的运行和调试。仿真平台具有很高 的灵活性和可扩展性,可以根据处理器设计的修改而更新仿真内容,还可以根据 处理器开发的需要增加新的功能,因此,大多处理器的开发过程中都要使用仿真 平台进行体系结构的验证,性能调整等工作,达到系统硬、软件开发并行的目的。 软件仿真平台成为辅助硬件开发的有效工具,仿真平台的开发也成为处理器开发 过程的重要环节。 嵌入式处理器仿真平台的仿真目标是多种多样的,从较低的层次上讲,可能 仿真单个晶体管的电气特性;从较高的层次上讲,可能仿真网络应用程序问的通 信。基于时钟的c p u 指令集仿真器处于中间层次,在软件与硬件的接口层面仿 真计算机系统。用以验证目标机体系结构和指令系统的正确性,还可以测试在其 上运行的操作系统和应用程序的正确性。 软件仿真平台一般不与实际应用硬件环境联系,因而很难准确反映处理器的 实时运行情况,特别是依赖于外部环境的实时运行情况,如中断、外设i 0 等操 作。软件仿真平台主要用于验证处理器的内部运行程序。如算术运算、逻辑运算 等。软件仿真平台是用软件的手段对运行嵌入式应用程序所需的特定硬件环境 ( 包括c p u 芯片、内存及其它外围硬件设备) 及其活动进行描述。进而可以在没有 真实硬件环境的情况下,实现程序的仿真运行。软件仿真平台的引入,具有以下 的优点: ( 1 ) 能仿真目标机( 嵌入式计算机) 环境的软、硬件特性,支持嵌入式应用 程序的开发。完全脱离具体的硬件限制,提高了系统的开发效率。 ( 2 ) 可以对整个嵌入式系统的正确性进行验证,辅助硬件、软件系统设计验 证工作的完成。 可重配置的时钟精确嵌入式处理器仿真平台的研究 s i m d e v 。s i m d e v 仿真器是用面向对象的设计原理来实现一个基于时钟的c c o r c 处理器模型。该仿真器主要用于基于c c o f e 应用程序的调试跟踪以及应用程序 的仿真,同时它利用c + + 面向对象的特性提供了多种对象类,从而用户可以方便 地进行维护,扩展,和开发i p 模块。 通过s i m d e v 可以在芯片设计初期对应用程序进行仿真,评估c c o r e 的性能, 判断c c o r e 是否满足性能要求,作出正确的评估,进行系统软硬件的功能划分。 s i i l l d e v 的主要特征包括: 仿真c 2 l o 或c 3 1 0c p u 核,可以进行指令集仿真。 并可仿真片内、片外存储器和总线、周边i p 模块。 用户可以将其应用程序在该仿真器中进行软件仿真调试,同时可以方便用户 在芯片设计前期定义芯片框架结构及性能分析。 该仿真器的仿真速度高于电路仿真速度上千倍。 综上所述,基于时钟的处理器仿真平台,无论是在处理器开发的微体系定义 早期阶段,还是在i l 开发的验证过程,还是在处理器推广商用的阶段,都起 着非常关键的作用,因此成为开发处理器所必不可少的部分。 1 4 研究目标和内容 本次课题研究的目标是开发一个基于c k 5 1 0 处理器的可配置的时钟精确的 软件仿真平台,如图1 1 中虚线框内。开发该平台主要目的是: l ,给基于c k 5 1 0 的系统开发者提供一个仿真模型,评估c k 5 1 0 的性能是否满 足开发者的特殊应用目的,可以合理的做软硬件的划分。 2 ,给软件开发者提供虚拟的硬件平台,可以利用这个平台来开发编译器和操作 系统,也可以测试应用软件的性能和特点。 3 ,给c k c o r e 处理器的设计者提供体系结构评估的模型,分析体系结构的瓶 颈,提供如何改进和升级c k c o r e 结构的重要依据。 1 0 可重配置的时钟精确嵌入式处理器仿真平台的研究 1 5 本文的主要研究工作和内容安排 图1 2 论文的内容安排 第二章,先介绍了指令集仿真器的概念和分类,研究了当前指令集仿真器主 流的设计方法和仿真策略,并对不同的仿真策略的优缺点做了对比,确定了我们 软件仿真平台所采取的仿真策略和实现方式。 第三章,针对c k 5 1 0 的体系结构,详细的介绍了可配置的时钟精确的软件 仿真平台的实现过程和设计流程。介绍了仿真平台的组成和结构。 第四章,介绍了软件仿真平台的验证环境,验证思路和验证方案。分析软件 仿真平台给出的程序跟踪统计结果。分析了仿真器的时钟精确程度和执行效率。 本文出现的术语解释如下表: c k 5 1 0 自主开发的嵌入式处理器,c k c o r e 系列的第一代产品 s r 似 时钟精确的c k 5 1 0 的指令集仿真器,不包含总线功能模型 s e e d 在s p a r k 的基础上,增加了总线功能模型的仿真器环境 p u 1 0 9 提供的编程语言接口,提供与其他语言进程通信 v p i p l i 的第二代库函数,被称为p u2 0 v e m o g d s m设计仿真模型,软件仿真器通过p l i 与v 酣l o g 协同仿真的环境 浙江大学硕士学位论文 比较低,特别是目标处理器非常复杂的时候。 2 3 。指令集仿囊器实瑗策略 目蘸满行的指令集仿真嚣实现的策隧主要有掰秽:基子孵释的指令集仿真策 略和基于编译的指令集仿真策略 6 j 。这两种实现策略各有优劣,后来出现一种混 合型的指令集仿真策略,称为混合指令檠仿真策咚。 2 3 1 基于解释的仿真策略 传统的基于解释的指令鬃仿真策咯怒到目前为止应用最为广泛的一种指令 絮仿真器实现技术。它在内存中建立一个数据结构来代表目标处理器的状态,然 蕊如图2 1 所示,它避入一个循环,循环体包括取指,解码,发射和执行西部操 作。其中取指是从内存中取出一个指令字,解码是分析取出的指令字并从中提取 鼯搽律鹳耧搡律鼗,发射是裰撵操话码寨决定正确滟撬行擎元,菰 亍翔是通过指 令的语义来更新处理器的状态( 即更新前面提到的那个数据结构) 。 图2 。1 基于解释的仿真策略 盘予这撵熬谤囊襞隆麓攀露显灵活羧鲟,露量麓度离,足乎濒有静囊篷讫稳 指令集仿真器都是采用这一策略实现的。但是这种仿真策略的缺陷也是显而易见 戆,速度数劣势使褥蕤于这穆袋赂的镑爨器效率较低。 2 0 2 基于编译的仿真策略 基于编译的指令集仿真技术是在程序执行之前,首先对稷序进行编译处理, 撼每一条嚣拣援摆令转译藏一筑窑主规戆援令,在实际懿运行瓣妻接袋搦箨一缝 一1 s 一 可重配置的时钟精确嵌入式处理器仿真平台的研究 宿主机的指令代替那一条目标机的指令来完成处理器状态的修改。如图2 2 所示。 这样基于编译的仿真策略由于把解码的开销转移到了编译时,所以可以获得 比基于解释的仿真策略更快的速度。但是这种策略基于这样一个假设,即所有的 程序代码在仿真之前都是可知的,在运行时是静态运行的。由于这个假设,很多 的应用领域被排除在基于编译的仿真器的应用范围之外。嵌入式系统使用的是外 部程序存储器因此其程序代码在运行前是无法预知的,所以我们的仿真平台不 图2 _ 2 基于编译的仿真策略 能使用编译型仿真器。同样,编译型仿真器也不能应用于内含多指令集处理器的 嵌人式系统因为这些处理器在运行环节会自动切换指令集模式。此外,类似于 操作系统这样的软件设计,也属于动态程序代码的应用范畴所以编译型仿真器 也不适用于这种情况。 2 3 3 混合指令集仿真策略 解释执行的仿真策略虽然实现简单且灵活,但是速度太慢,而先编译后执行 的仿真策略虽然提高了速度,但是不够灵活,实现的难度也较大。针对这两种策 略的优劣,有人提出来一些折衷的策略以期同时获得这两种策略的优点。具有代 表性的有j i t - c c s 【2 j 和i s c s p l 技术。其中j i t - c c s 的全称是i u s t i n t i m ec a c h e c o m p i l e ds i m u l a t i o n 。它的基本思想是将目标机编译器集成到仿真器中来,指令 的译码在执行前完成,所以称为j u s t 抽t i m e 。然后将执行后的指令的译码信息存 放在缓存中来给下次可能的这条代码的重复执行提供重用,从而大大减少了译码 1 6 辫涯大学硬圭学位论文 静潜润窝浚数,掰蔽它熬簇了辩释鍪豹灵活赣帮编译登豹离效率。雨l s c s 漪 全称是i i l s 谨u c t i o ns e tc o m p i l e ds i m u l a t i o n 。它的主要策略还是使用了编译执行豹 技术,不过i s c s 会在实际执行之前会检查要运行的指令是否在前面的运行中 被修液了,弼采禳修改静话调麓模块采重新解码修浚看静指令,阻诧来增翔编译 执行的灵活性。这两种仿真策略在保诞仿真灵涯性的同时,舰快了仿真的执行速 度,因此已经逐步应用到了现在商业成用的指令集仿真器中。 2 4 各类仿真器的对比 软l 牛仿真器最重要的指标鸯三个:性能,灵活黢耱详纲程度。对这三个指标 的权衡决定了采用哪种方式来设计仿真器。在考虑w 供仿舆的资源的前提下,根 据铸= 舞器需瑟运行的工作量来确定需要一个什么样榷能静仿真器;灵活性表示了 当需援仿真不冠的设计时,修改铸真嚣靛容易程度,越灵溪戆搂蘩,骖浚起寒越 方便。详细程度决定了实现仿真器时所腰模拟的抽象程度,如果要得到非常全面 静仿真结采,赠必须建立非常详细的仿真模黧。在实际中,要同时兼顾三个指标 时j # 攀困难的,因此必缀摄据实际的臻真霸娶寿赝投鹰取会。 图2 3 。冬类仿真器的比较 圈2 3 鼹示了三种仿真策略的仿真器各自的优缺点,基于编译的仿真策略可 淡使髂真器这至l 较麓翡毪辘,毽楚壶予箕必籁要求捂令集楚静态麴,西藏灵活链 比较茇。而纂于解释型的仿真器可以做到很灵活,很凇确,但是以牺牲性能为代 价。 - 1 7 * 可重配置的时钟精确嵌入式处理器仿真平台的研究 2 。5 对我们设计的借鉴意义 仿真器的基本概念对于确定仿真器的实现方法是十分重要的,不同类型的仿 真器意味着不同的仿真对象和实现方法,工作量也有很大差别。仿真器的实际开 发的设计阶段必须首先确定仿真器的类型。 我们设计的仿真器首先是给系统开发者做性能评估的和软硬件协同开发,因 此首要目的是要做到功能准确和时钟精确;其次,给c k c o r e 后续处理器开发 做体系结构的评估,因此要有很好的灵活性和可扩展性。根据指令集仿真器的概 念,在我们的课题中,采用基于解释的指令集仿真策略,采取执行驱动的实现方 法,完整的模拟处理器的流水线结构。仿真器不但包含目标指令的执行过程,还 要包括一些扩展的工具,这些工具是程序执行信息收集工具和调试器。程序执行 信息收集工具用于记录程序的运行流程及以时钟为单位的处理器状态。调试器用 于跟踪目标程序的流程,定位和排除目标程序的错误。 针对解释型指令仿真器的缺陷,如何提高仿真效率将是我们实现过程中一个 很大的挑战。 2 6 协同仿真的实现 随着集成电路的规模越来越大,用高级语言( c 或c + 十) 来建立功能模型作 性能分析,越来越成为设计师们预评估的重要手段,而这必然面临着软硬件协同 仿真的挑战。p l i 作为当前最流行的硬件描述语言v e r i l o g 的一部分,提供了 v e r i l o g 和c ,c + + 高级语言之间的一个接口,使得软硬件协同仿真变得更加的简 单,大大提高了仿真速度,运用高级语言强大的系统建模功能,很好的解决了软 硬件协同仿真的难题。 p l i 是编程语言接口( p r o 铲咖i n gl a n g u a g ei n t e r f a c e ) 的简称,自1 9 8 5 年 起就成为了v e m o g 语言的一个部分,为v e r i l o g 的成功作出重大的贡献。p u 有 两个版本,由包括t f 和a c c 库的p u l o ,v p i 库的p l l 2 o 组成。 t f 库是最早的v e r i l o gp l i 库,是为了读写系统任务的参数而设计的。因此, t f 库无法访问v e m o g 仿真器内部的数据结构,而只能访问由系统任务传递的那 些参数。也正因为这样,v e d l o g 仿真器,比如v c s ,可以在编译的时候准确的 浙江大学硕士学位论文 预测p l i 应用程序要访问哪些信息,这样v e r i l o g 仿真器可以对仿真的数据结构 做高度的优化。 a c c 库作为p l i 的第二代库,是为了补充和扩展t f 而设计的。a c c 主要是 为了满足a s i c 设计者对延时计算,功耗分析等需求而扩充的。a c c 可以访问 v 甜l o g 仿真器内部的数据结构,但是仅限于结构级设计( 网表) ,而不能访问r t l 级的模块、内存阵列等其他很多的结构类型。同时,a c c 缺乏一个指导性的设 计规范来保证那些库函数语法和语义的一致性,代码的结构非常的凌乱,充斥着 不一致和冗余的代码,甚至在不同v e m o g 仿真器里有不同的行为。 o p c nv c r i l o gi m e m a t i o n a l ( o v i ) 为了解决t f 和a c c 的冗余和局限,于是 推出了全新的v p i 库,v p i 用2 5 个函数代替了t f 和a c c 中所有的2 0 0 多个函 数,其语法简单、一致,基本上克服了t f 和a c c 所有的局限。v p i 可以访问 r t l 代码和结构级代码的数据结构,并且其访问的方式是经过结构化设计的,有 着很好的设计规范。 p l i 使v e m o g 可以通过调用系统函数的方式来调用相应的c 函数进行仿真, 同时也提供c c + + 对硬件内部对象进行交换数据。在我们的项目中,用c + + 设 计了一个时钟精确的带a m b a 总线功能模型的c p u 核,而利用基于v p i 库的 p l i ,我们在a m b a 总线模型的外部加上一个w r a p p e r ,很好的解决了c p u 核 与用v e m o g 编写的其他外围设备的协同仿真的问题。 2 7 本章小结 本章讨论了指令集仿真器的概念和分类,指令集仿真器目前流行的设计方 法,并结合我们的实际应用和目的,选择基于解释的执行驱动指令集仿真策略, 并采用v e r i l o g 标准的v p i 库来实现p l i 接口。为下面的设计实现确定了指导思 路。 1 9 可重配置的时钟精确嵌入式处理器仿真平台的研究 第三章仿真平台的设计 前面章节针对可配置的时钟精确的软件仿真平台,描述了软件仿真器的各种 实现方法和优劣,本章针对c k 5 1 0 的软件仿真平台,采用基于解释的仿真策略 实现仿真器,采用v p i 库实现p l i 接口,探讨如何实现可配置的时钟精确的软件 仿真平台。 3 1 c k 副0 体系结构 c k c 0 r e 是自主研发的一款基于m c o i 也指令集,面向嵌入式应用的高性 能、低功耗的处理器。c k 5 1 0 具有可扩展指令,可配置硬件资源,可重新综合, 易于集成等优点。c k 5 1 0 c k 5 2 0 是第一代c k c o r e 处理器。其结构如图3 1 , 图3 1 c k c o r e 结构 c k 5 1 0 作为高性能的精简指令集计算机结构( r j s c ) 的处理器,具有1 6 位 的指令长度,7 级流水线;支持b i ge n d i a n 和l i t t l ee n d i a n ;拥有高性能的片上 - 2 0 - 可重配置的时钟精确嵌入式处理器仿真平台的研究 可用于累加两个3 2 位的寄存器内容;交换指令是用于基于o m e g a - n i p 网络的6 4 位交换中,这很大的提高了加密解密算法的性能。指令集详见附录。 3 1 - 2 c k c o r e 流水线结构 c k 5 1 0 的7 级流水线结构由i f ,i s ,r f ,e x ,l f ,l s ,w b 组成。如图 3 2 所示。 指令提取单元( i f u ) ,由i f 和i s 两级流水级组成,配备8 k b 高速缓存, 采用关键指令先取和发射以及添加指令暂存器等手段来增加指令的发射效率,利 用先进二级指令跳转预测,全局和局部结合的记录来减少因为转移指令造成的流 水线空闲。 图3 2 c k c o r e 流水线结构 存储单元( l s u ) ,由d f 和d s 两级流水级组成,支持不问断流水线,开辟 了八个写缓冲区,具有内部b y p a s s 机制,利用快速退休加快指令的执行速度。 存取指令可以操作字节、半字和字,并可以在字节和字操作时自动扩展o 。这些 存取指令可以流水执行,使得数据吞吐量达到一个周期存取一个数据。 指令执行单元( i u ) ,由r f ,e x 和w b 三级流水级组成,利用指令依赖表 格和操作数前馈来有效地处理数据竞争,实现高性能的指令发射。高性能的指令 退休通过4 个退休缓存器组的非序回收,并行回收,按序退休,快速退休来实现。 支持a t o m i c 操作。自动分解l d m s t m 指令。 2 2 滤强大学硕士学位论文 算术遗冀单元包括3 2 位的算术逻辑单元( a l u ) ,一个桶型移位器和乘法器。 绝大部分的算术逻辑运算指令可以在一个周期内完成。 1 6 个邋用寄存嚣用于提供瀛操作数和存放指令执行结果。寄存器r 1 5 月l 乍 链按寄存器存放子糨序的返回地址。寄存器r 0 通常用作当前堆栈指针。 乘法嚣除了支持3 2 3 2 整数乘法钤,还支持酾位d s p 及多媒体黍鸯g 掺令 m a c 。除法器的设计采用了快速算法,当除数与被除数大小比较相j 琏时能够大大 减少运算掰霈麴辩锑数( 3 3 3 个) 。 一个祭件进位位( c ) 用于条件测试和多于3 2 位的算术逻辑运算。一般的, c 彼只在懿式的测试,比较运算中被改变,雨不是潮为正常指令运氟的副 乍用。 但是在某些特定的把条件设置和运算结合的指令中可能例夕 。 中断响应快,1 6 个备用通用寄存器组用于减少在中断异常处理时花费的时 闼。支持矢爨和自动矢量中颓。 内存管理单元可以让超级用户自由定义4 个地址空间的访问权限。权限划分 秀:不霹读写,只读捌+ 读写。4 令建聚窆凌可熏叠,扶露冒形擒鑫释谤阉控 x 嚣麓瓣誊熊时静疆确嵌入式箍瓣舔贽囊平台懿琴 究 c k 5 1 0 支持5 1 2 个字节的向量表包含1 2 8 个异常向量( 见袭3 2 ) 。开始的 3 1 个向爨是用作在处理器内部识别的向量。第3 2 个向量是留给软件的,用作指 向系绞撞述符的指针。茭余瓣9 6 个向量是露给乡 部设备的。外郝设餐通过7 位 稳孛鞭淘量帮中叛蘧求键蹩淫器凌瘟中鞭羰务。凳瑾器嫡应中叛潺求对铰存这个 中断向量。对那些不能提供中断向量的设备,处理器为一般中断和快速中断提供 了自动向量。 3 。2 ,可配置的时钟精确的薅真平台缩梅 本次课题的目标,开发一个基于c k 5 1 0 可配置的时钟精确的软件仿真平台, 在这个平台里,包括一个用c + + 实现的时钟精确的c k 5 1 0 软件仿真器,我们 命名为s p a r k ,一个a m b a 的总线功能模型,一个用v p 】实现的p l i 接口,提 貘e + 与涮l 。g 耱溺铰囊戆接翟。 3 2 1 两种仿真模式 我们的仿真平台脊两种仿真模式,一种怒c + + 单机模式,如图3 4 ,这种 图34 s f l a r kc 十十模式 模式下,包括s p a r k ,浅存系统,以及总线,都是在e + + 环 x 浙旺大学硕士学证论文 3 2 2 。s 董i 蛾暇功能结构 图3 5 s p a r k 协同仿真模式 s p a r k 为基于时钟的结构仿真器,对c k 5 l o 的结构进行完全描述,不但仿 真了c k 5 1 0 的指令集和寄存器、存储器和中断她瑷机制等硬件装置,述仿真了 c k 5 1 0 的流水级,因此在设计的时候,s p a r k 保持了和硬件基本一致的模块划 分,热图3 6 ,这样更容易徽裂辩铮精确,同时巍藏鬻准确豹评嵇硬 孛缝枣鼋豹蛙 髓,为露缀静处理器开发骰结构合理往的分析。 阕3 6 s p a r k 模块 上图所承,用c 语言编写的代码,经过c k c o r e 的工具链编译镳擒之后, 得到s r 。c 格式的二迸制文件,在将程序装载到内存之后,s p a r k 即可以开始 可重配置的时钟精确嵌入式处理器仿强平台的研究 鬻3 2 。r e o 燃豁缓摔送滚疆 中等待。由于指令在用c + + 仿真的执行单元运行都是立即得到结果的,于是我 假设计了一个计数器,来模拟农硬 半中一条撵令季譬列结果嚣臻匏真实攒令数。魄 如乘法指令,在硬件中,得到结果需要2 个时钟周期;在s p a r k 中,当乘法指 令得到结果时,把计数器的值设为l ,下个周期再自减,等减到o 时,褒示该指 令执行完成,可戳等待退休了,如果计数器的值不是o ,那么即使到达r e o f d e r 缓冲区的顶部时,也不能退休。指令退休时,同时执行的结果将写回到寄存器, 籀令撬行绻柬,蘩圈3 + i 2 辑示。 负责鸳回的w b 流水级已经包含在了e x 内部。 一3 4 可重配置的时钟精确嵌入式处理器傍真平台的研究 最为广泛的一萃申指令集仿真器实现技术。我们建立各流水级粒寄存器的数攒结构 来代表处理器豹状态。然后茹图3 1 6 所示,碍循环来模叛时钟的概念,循环体驹 圈3 1 8 s 泓r k 静实臻模型 每一次越代,所有的流水线都执行一次,代表一个时钟周期里处理器的所脊执行 单元都触发一次。循环体包括i f ,i s ,r f ,e x ,d f ,d s 和w b 七级流水。由 于硬锌黧器缀滚水绫怒_ 并行魏嚣豹,两e + 是警行鹃语言,嚣j 毙为了避免审行孰 行的程序中,先执行的功能单元的结果影响后执行的功能单元的执行,我们采取 了两种策略:图3 1 6 所示,越深的流水级越早执行,因为指令从i f 流向w b , 绝大帮分豹控隶l 信号巍帮是疑瑾滚向w b ,在黼一次迭筏中,较深兹流水缀先 执行就不会受到前面流水级的执行结果的影响,而是到下一次迭代,即下一个周 期才去处理前面流水缴的执行结鬃,这样很好的模拟了流水缀之间并行的行为: 勇努,凑予各个流承级在藐季亍静避簇中可雏会邋过c p 0 对鲶溅器的获态寄存器 做修改,假如先执行的流水级,比如e x ,对状悫寄存器做了修改而改变了处理 可重辩置的时钟精确巍人式处理器糖冀乎台的研究 3 2 5 剐隐瓣总线的功能模越 前面已经介绍过,c k c o r e 基于a m b a a h bv 2 0 总线的的嵌入式处理器。 在我们的傍粪平台中,s 必须通过a h b 的功勰模型才能和外围的设备通信。 我囊将暴鸯a 燃b a 慈线套麓袋鍪静仿寞器环境鑫名麓s e e d 。a 壬 器憨线供模型 接收来自s p a r k 的b i u 模块的请求,产生相应的a h b 总线命令向内存模块发 起请求,同时处理来自内存的响应,并把结果和数据返回给s p a r k 。 在设计的过程中,我们先设计了不带a h b 总绒的c p u 模型和内存模型,如 强3 。1 7 。在这令缝揍中,e p u 豹读写蘧求妻接逶遘转辩戆丞数囊读霉逡存中嚣 指令帮数攒,读写的过程都是在个时钟周羯内完成的,并没有模拟总线的行为。 黧3 。 7 直接访惩内存 在充分验诞了这个模型之鼹,再设诗a 王 b 蕊线的功能模型,弼圈3 1 8 。在 s p a r k 遮端,b i u 的读写将通过a h bm a s t e r 的接口向总线发起请求。同时为 了验证m a 8 t e r 接口,在内存的外围实现了一个觚bs l 科e 的接口,同时还实现 了a m b a 憩线的 孛裁器和译碣器。 采取分步设嚣秘愚籍存缀多好楚;善先,在设诗懿第一除段,蠢予s 淞鬏k 本身的设计棚当复杂,不但簧做别功能上的正确,逐豢做到时钟精确,如果这时 候直接把s p a r k 和a h b 功能模型一起设计的话,将给设计和验证带米很大的 难度,分步的设计思路可以让我们比较集中的解决s 淞r k 中的问题,有利于设 一霸 浙江大学硕士学位论文 计出性能高,效率好的精确模型;其次,有利于设计出扩展性好的总线功能模型, 分步的设计思路,有利于我们把a h b 的总线功能模型做的更加的规范化,标准 图3 ,1 8 总线功能模型验证环境 化,特别是m a s t e r 具有很好的通用性,这样一旦系统设计人员有其他的i p 模块 ( 在这个环境中,必须是c c + + 代码) 要和s e e d 一起仿真,则只需要使用我们 提供的m a s t e r 的接口,即可连接到a h b 的总线上来。 3 2 6 阿库实现p u 接口 v p i 是p l i 的第二代库,它向其他的语言提供了访问v c r i l o g 的r t l 描述和 行为级描述的接口,并且扩展了许多t f 和a c c 所不能做到的全新的访问方式。 与p l l l 0 的两个库相比,v p i 有许多优点。 首先,v p i 的文档十分完整,在v e r i l o g 的i e e e l 3 6 4 的标准中,非常清楚的 表述了v p i 是如何访问目标对象和获取信息的,而t f 和a c c 是在v 酬l o g 标准 制定之前就开始慢慢的成长,因此有很多模糊、不一致的设计,而且可移植性相 对比较差。选择v p i ,v e r i l o g 仿真器设计公司可以明确他们的设计,这样可以保 证所有基于v p i 的p u 应用能够在所有与i e e e 标准兼容的v e m o g 仿真器上正 确的运行。 其次,v p i 是经过高度的结构化设计的,鼓励应用程序开发者写出能够更有 4 1 可重配置的时钟精确嵌 式处理器仿其平台的研究 效的使用内存的代码,因为这样的代码能够高效的执行,丽t f 和a c c 则提倡 的是一种 结构化的、低效的编程风格。因此用v p i 开发的p l l 应用程序将会运 行的更快,并且占阁相对较少的内存资源。 同时v e r 订。簖0 0 l 标准支持v p i 库,v p i 将是p u 发展的方向。所以在本次 的课题中,我餐选择v p 来实现e 怒+ + 与v c r i l o g 的接口。 3 。2 。s 。i 。、,戮原理 v p i 提供的函数主要应用在两个领域:通过v p i 的回调机制( c a l l b a c k ) 使 褥c 裾+ + 函数胃敦_ 秘f i l o g 穗互透信;提供给c 您+ + 谤弱涮l 。g 内部酶对象秘 信息。 蜃诣豹强谴撬剩就是,躅户在v e 癌l o g 里注瓣瓣一个琴绞委数。邋遘这个溺 数,用户_ 珂以检测v c r i l o g 仿真器内部的某个事件,当这个事件发嫩的时候, v e r i l o g 傍囊器憋裁据鼹户的娶求去调照一个鼹户囊己定义驰应用程廖。因此, 用户若想鼹调用自己定义的函数,必颈遮择某一事件来作为触发的条件,以下的 一些事件都可以作为触发的条件; 仿真事件,翔,某线网的德发生交化,或者菜条行为谮旬的执行。 仿真时间,如,莱段时间序列结束,或者经过一段特定长度的时间。 仿真嚣豹行为,鲡,编译缡束,镑粪结束或者迸久交互模式。 系统函数或任务的调用。 在爱怒霹溪之耱,登矮臻v 辑提貘豹v p i 羚g i 哪酶 x 濒江夫学硬学位论文 本身的属性,如v p i n a m e ,v p i t 0 p m o d u l e ,v p i c e l l i l l s t a l l c e 等。 v p i 定义了一个c 类型的数据指针v p i h a n d l e ,所有的对象都是通过这个类 型盼撰针来操作的。最襁,我们只要得到一个顶层模块的指针,陇如: 弹i 珏a n d l et 嘴j a n d l e ; t o p j a n d l e v p i - h a n d l eb yn 黼e c x _ b t 娜x 直5 1 虻d s m ”,n u l l ) ; 这两匈代码得到了一个指向s p a r k t o p 模块的指针。函数调用中籍二个参数 图3 1 9 数据模黻强 n u l l 表示从设计的t o p 层去搜索我们需要的模块指针。而通过这个t o p h a l l d l e , 就可以得到所有和t o p 模块有映射关系的其他对象,比如模块中的p o r ,r e g ,n e t 以及其毪变量,也可以得到l o p 模块本身的麟瞧,搬模块的名字麓。 v 掇供了2 7 令瘁函数,这些丞数按嚣主簧豹功戆可敬分蔻9 类。 仿真相关的回调函数 系统任务函数相关的阐调函数 遍历v e r i l o gh d l 体系结构的函数 获淑对象震注戆丞数 掇据属性得努对象指针的函数 做时延处理的函数 她瑷逻辑电平变化的函数 鲶爨仿真时阕的函数 箕德霜途豹函数 在我们的p l i 设计中,只露到了部分的几个黧骤函数,下面分别麓重的介绍。 1 v p j 翼g i s t e r c b ( c k d a 蚨小) 在v c d l o g 仿真器内部注艇一个和仿真糖哭的回调函数,邋避这个函数,燎 可重配置的时钟耩确嵌入式处理器仿真平台的研究 仿真过程中的某些事件和用户自定义的函数建立一个连接,一旦该潦件发生,将 触发v e f i l o g 仿真器强调自定义函数。参数c b _ d a t a j 是一个指向s h 奠b - d a t a 结构 体的指针,两这个结梅体已经在r i l o g 传真器供艘方提供的头文传里定义了, 比如v c s 中的v p i s e l h 。 矍成一令羰定义露数,恻懿e b 诺戳c 硫g e ,e b a t s t a 姻攥趣 瓿e ,西嚣醢。瓮p i l e 等。而sc bda _ f a 结构体中的c br m 就是指向用户自定义函数的指针,当回调的 憋菠条舞液立霹,涵数被键霜。o b j 是莹冀器益褥酌对象,在浚毽变纯作为舷发 条件的情况下,当o b i 的值发生变化时,既触发回调。 2 v p i j 矗n d l eb yn a i n e ( n a m e ,s c o p e ) 我们嘲这个函数来得到某些特定信号对象的指针,适用于所考具有铷l n 戤n e 属性的对象。参数中的s c o p e 指定函数从v e r i l o g 设计的体系结构中的那一个层 次秀始援索n 蹦e ,船: v p i _ _ h a n d l e _ b y j 跚e ( x _ b z _ t o p x _ c k 5 1 0 _ d s m ,n u l l ) ; 这个语訇铁v c f i l o g 设诗静颈层开始整素名舞墨e 泌1 0 s m 模块,著返回该对象 的指针。 3 ,v p i - g e t v a l u e ( o b j ,v a l u ) 从v p i 对象得到仿真的值。得到鲍值放在用户预先分配鲍v p i - v 越雠结梅 体对象中。由该结构体中的f o 咖a t 来决定得到的数据是阻什么形式存储的。 游江大学礤士学往论文 4 v p l - p u t _ v a l u e ( o b j ,v a l u u ,t i m 9 _ p ,f l a g s ) 绘v 秘对象设艇特定静逻辑值。v a l u 9 _ p 楚预先分配豹t p i v a l u e 的结构体 对象,在这个对象中保存了要赋绘。巧魄值。t i m 屯p 是s - 豫o i m e 熬结枣蟹体,袭 示将僚赋给o b j 之前所需骚的延迟。而f l a g s 则定义了该函数采用哪种越迟的模 式,农我嚣j 静竣诗中,尧f l a g s 设为n t 汜l ,圈为在我 f j 的仿真中,不需要考虑 延迟。 - 4 5 可重配置的时钟精确嵌入式处理器仿真平台的研究 3 2 6 2 p l i 实现 在s e e d 设计究成之后,我们开始考虑用v p i 实现p u 接口,通过这个接口, 可以把c + + 实现的仿真器和v e r i l o g 实现的外围设器连接成一个仿真的平台,实 现同步铸褰。我们怒经过p l 外包的待真器称为设计仿真模缀( d e s i g 矬s i m t d 撕o n m o d e l ,d s m ) 。 在s 弧r k 或豢s e e d 豹e + + 终擒中,爝一个大翡涮l o 循环来模菝辩镑 的概念。循环的一次遮代表示一次时钟的上跳沿,所有的流水级都依次执行一次。 露在我嚣j 翔灭p i 之茬,变成了e + 与v e f i l o g 穆目穆粪瓣嚣壤。羧靛完全可 以用v e r i l o g 来产生个系统时钟,因此我们的指导思想就憝当系统时钟上升沿 震的时候,藏通过p l l 戆强调搬创,调惩一次s 懿r k ,朝安瑷了每令时镑的 上升沿,c p u 内部的功能单元执行一次。 首先。必须建立三个回调函数:s p 酬k _ i n i t ( ) ,s p a f k - r e s e t ( ) 和s p a 嫩n l n ( ) 。在 所有代码编译完成之后,需要对s p 觚戳做一些鞠始化,因此s p 础o x 可重配置的时钟精确嵌入式处理器仿真平台的研究 3 3 本章小结 本章在详细的介绍了目标处理器c k 5 1 0 的体系结构之后,包括指令集,流 水线结构,编程环境和异常中断机制,提出了针对c k 5 1 0 的仿真平台的设计思 路和实现方案

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论