




已阅读5页,还剩79页未读, 继续免费阅读
(电路与系统专业论文)java处理器的vlsi实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
浙江大学硕士毕业论文 摘要 j a v a 语言由于其独特的“一次编译,随处运行”的特点已经成为目前因特 网上非常流行的编程语言。平台无关性、面向对象、多线程、可靠安全这些特性 使得j a v a 非常适用于一些面积较小的低功耗嵌入式消费性电了产品。j a v a 为实 现平台无关性采用的虚拟机技术造成j a v a 程序在一些通用处理器上运行速度缓 慢,而常规的软件设计方法不免存在速度慢,耗内存资源等问题。设计专用的 j a v a 处理器恰好弥补了软件设训的不足之处。 本文设计了一个具有四段流水线的j a v a 硬件加速器,执行了部分常用的j a v a 虚拟机规范,主要作为单独处理单元运行于嵌入式实时系统或者f p g a 。硬件加 速的实质,是将j a v a 虚拟机中的j a v a 字节码指令翻译器由加速芯片来代替,使 得j a v a 字节码的执行在速率、功耗、成本之问有一个较好的平衡。硬件加速器 对操作系统是透明的,不需要提高系统时钟频率,不要求额外的内存,不要求添 加新的工具。j a v a 硬件加速器支持通用的u a r t 和s h b o n e 总线接口,可与 任何一种基带处理器、系统芯片( s o c ) 或嵌入式微处理器连接工作。 本文总体上分为三个部分,第一部分介绍了j a v a 虚拟机( j v m ) 规范,第二 部分为j a v a 硬件加速器设计,第三部分是仿真和综合结果。最后做出总结,并 提出后续工作内容。指令集的设计主要根据不同指令的实用频率和硬件复杂度采 用不同的实现方式,并对原有的j v m 指令进行扩充使其具备硬件操作能力,大 部分算术逻辑指令都可以在一个或几个时钟周期内完成。堆栈结构也做了分析和 优化,采用了两级流水线堆栈结构。j a v a 堆栈存储器使用了双端口r a m ,这样 设计可以移植到低成本的f p g a 中,存储器资源耗用少。此外,本设计使用硬件 描述语言l 对处理器各部件进行建模并通过功能性仿真验证,几种综合工 具的综合结果表明了本设计占用硬件资源少、面积小、速度快。 关键词:j a v a 、j v m 、硬件加速器、v h d l 、综合 浙江大学硕士毕业论文 a b s t r a c t t h ep r o p e r t y “w n t eo n c e ,c o m p i l ea n y w h e r e ”l e t sj a v ab e c o m eav e r yp o p u l a r p r o g r a m m i n gl a n g u a g e o ni n t e r n e t j a v ai s p l a t f o r m - i n d 。p e n d e n t ,o b j e c t - o r i e n t e d , m u l t i t h r e a ds u p p o r t e da n ds a f e ,s oi ti sa p p l i e dt os o m es m a l l ,i o w p o w e re m b e d d e d c 。n s u m e re l e c t r o n i c s j a v ah a st ou s ev i r t u a l - r n a c h i n e t e c h n j q u e s t ob e “p l a t f o r m i n d e p e n d e n t ”, w h i c hc a u s e s p r o c e s s o rt h es o n w a r ed e s i g nm e t h o d m e m o r y ,h o w e v e r ,i m p l e m e n t i n gj a v a s o f t w a r ed e s i g j l t h es l o wr u n n i n g s p e e d o ns o m eu n i v e r s a i ss l o wa n do c c u p i e sm u c hr e s o u r c eo fi n t e m a l i nh a r d w a r ec a nm a k eu pt h ed r a w b a c k so f t h i st h e s i sd e s i g n saf o u r _ s t a g ep i p e l i n e dj a v ah a r d w a r ea c c e l e r a t o r i tc a ne x e c u t e m o s to ft h ej a v av i r t u a lm a c h i n e ( j v m ) ,i tc a n r u na sa s i n g l ep r o c e s s i n gu n i ti n a n e m b e d d e ds y s t e mo rf p g a t h ee s s e n c eo ft h ea c c e l e r a t o ri st os u b s t j t u t et h ej a v a b y t e c o d et r a n s l a t o rf o ra c c e l e r a t i n g c h i pa tt h es a m et j m e ,t h e r ei sag o o db a l a n c e b e t w e e ns p e e d ,a r e aa n dp o w e r t h ea c c e l e r a t o ri s t r a n s p a r e n tt oa n yo p e r a t i o ns y s t e m t h e r ei sn on e e dt oi n c r e a s et h es y s t e mf r e q u e n c y ,t oa d da d d i t i o n a lm e m o r ya n dt o o j s i t s u p p o r t su a r ti n t e r f a c ea n dw i s h b o n eb u ss ot h a ti tc a nc o m m u n i c a t ew i t ha n y b a s e b a n dp r o c e s s o r ,s o co re m b e d d e dm i c r o p r o c e s s o r t h i st h e s i si sd e v i d e di n t ot h r e ep a r t s t h ef i r s tp a r ti n t r o d u c e st h ej v m ,t h es e c o n d p a ne x p l a i n st h ed e t a l lh a r d w a r ed e s i g no ft h ej a v aa c c e l e r a t o r ,t h et h j r dp a r tg j v e st h e s i m u l a t j o na n ds y n t h e s i sr e s u l ta tl a s tw ed i s c u s st h es u b s e q u e n tw o r k ,t h ed e s i g no ft h e i n s t r u c t i o ns e td e p e n d so nd i f 如r e n tu s a g ef r e q u e n c ya n dd i f 如r e n tr e a l i z a t i o nc o m p l e x i t y m o s to f t h es i m p l ej v ma “t h m e t j c l o g i ci n s t r u c t i o n sc a nn n i s hi no n eo rs e v e r a l h a r d w a r e c l o c kp e r i o d t h ee x t e n s i o no fo r j g 佃a li n s t r u c t i o ns e te n v o k e st h ec o m m u n i c a t i o nw “h e x t e m a lm e m o r ya n di n t e r n a is y s t e mr e g i s t e r s w ea l s oi m p r o v et h es t a c ka r c h i t e c t u r ea n d u s et w o - s t 8 9 ep i p e l l n es t a c k t h i sm i c r o p r o c e s s o ru s e s d u a l 一p o r tr a m a sj a v as t a c k m e m o r y ,w h j c hr e d u c e st h ec o n s u m p t i o no fm e m o r yr e s o u r c e t h u si tc a nb et r a n s pj a n t e d t o1 0 w c o s tf p g ad e v i c e s f u r t h e r m o r e ,w eusev h d lt om o d e la n ds i m u i a t e 口r o c e s s o r c o r ea n dt h ec o r eh a sp a s s e df u n c “o n a l t e s t t h er e s u l to fs y n m e s i st o o i si n d i c a t e st h a tt h e p r o c e s s o rc o r eo c c u p i e sl e s sh a r d w a r er e s o u r c e sa n da r e a ,a n dt h ef r e q u e n c yi sh j g h e r k e y w o r d s :j a v a ,j v m ,h a r d w a f ea c c e l e r a t o r ,v h d l s y n t h e s i s i i 浙江大学硕士毕业论文 图表 图2 1j a v a 平台结构图 图2 2j a v a 体系结构 图3 1处理器架构 图3 _ 2从j a v a 程序计数器到j a v a 处理器微码的数据流 图3 3d u p 指令对j a v a 栈操作数 图3 4流水线框图 图3 5j a v a 字节码获取模块框图 图3 6微码指令获取模块框图一 图3 7译码和地址发生器模块框图一 图3 8指令执行写回模块框图 图3 9 j a v a 栈结构一 图3 1 0 由寄存器构成的堆栈结构框图一 图3 1 1用三端口r a m 构成的堆栈结构框图 图3 1 2 两级堆栈缓冲的结构框图一 图4 1j a c c 的层次结构框图 图4 - 2j a c c 的r t l 项层结构视图 图4 3仿真模拟系统结构 图4 4部分仿真波形 图4 5 逻辑综合流程一 图4 6 综合的全过程以及各个步骤所使用的命令一 图4 7时序报告 部件利用率和加速比关系2 4 指令系统中常用的操作2 7 微码指令集3 3 j a v a 虚拟集扩展指令集3 5 系统寄存器地址编码列表3 6 由寄存器构成的堆栈耗用的门数4 3 用三端口r a m 构成的堆栈耗用的门数4 3 两级堆栈缓冲耗用的门数4 5 不同方法执行i m u l 的资源耗用和执行时间比较4 9 支持文件类型5 3 v 玎) l 仿真文件5 4 q u 积u si i 综合结果一5 8 x i l i n x 综合结果5 9 各模块综合面积结果6 3 不同处理器的门数比较6 4 不同处理器的功耗比较6 5 j a v a 处理器指令集列表7 2 j a v a 字节码指令类型、平均执行时间及动态分布7 7 综合时序报告7 8 v ”绉凹”粥扣们毗眈躬甜虻如 1 2 3 4 5 6 7 8 9 l 2 3 4 5 6 7 ,i ( :粥”拍”粥舵私舭拍们种籼氟表表表表表表表表表表表表表表表表附附附 浙江大学硕士毕业论文 1 1研究背景 第一章引言 随着计算机硬件、软件技术和因特网的迅猛发展,计算机的应用领域的重 心已经从原来的主机转向网络。通过因特网完成诸如信息查询、电子购物、甚 至家用电器控制等功能已经不再是遥远的梦想。由于传统的p c 体积大、价格 高、操作复杂,难以满足更多人对因特网随时随地访问的要求,各种各样能够 访问因特网的非p c 类信息设备应运而生,典型产品包括网络计算机、信息家电、 智能电话、机顶盒等。 j a v a 语言由于其独特的平台无关性得以普及和流行,并且适用于许多分布 式计算环境。因此能支持j a v a 程序的运行已经成为非p c 类网络访问设备的必 然要求。当然j a v a 提供的这些特性通常需要运行实时操作系统( r e a lt i m e o p e r a t i n gs y s t e m ) 才+ 能获得。 1 1 1 j a v a 语言简介 j a v a 是一种多用途的、并发的、面向对象的程序设计语言。j a v a 语言的前 身是o a k ,它是s u n 公司一个为家用消费类电子产品开发的类似c + + 的编程语 言,但它很快被用作常规的编程语言。它的语法和c 与c + + 相似,但是省略了 许多c 和c 抖复杂的、易混淆的和不安全的特性。j a v a 最初是为处理编制联网 消费设备软件巾的问题而开发的。它被设计成支持多主机体系结构并允许软 件组件的安全发送。为了达到这些要求,编译后的j a v a 代码必须可以在网络问 移植,在任何客户机上操作,并对客户保证其运行是安全的。随着因特网的流 行,j a v a 的这些属性吸引了更多的软硬件开发者。因为有了j a v a ,不论使_ h j m a c 、p c 还是u n i x 机器,不论连接在高速网络上还是使用缓慢的调制解调器, 我们看到的和昕到的基本上是一样的。 j a v a 拥有的众多优点使其成为对嵌入式系统设计者有吸引力且可行的技 术。这里列出一些主要特点如下: 1 、面向对象 所有面向对象编程语言都支持三个概念:封装、多态性和继承,j a v a 也不 例外。所谓封装,就是用一个自主式框架把对象的数据和方法联在一起形成一 个整体。可以说,对象是支持封装的手段,是封装的基本单位。j a v a 语言的封 浙江大学硕士毕业论文 装性较强,因为j a v a 无全程变量,无主函数,在j a v a 中绝大部分成员是对象, 只有简单的数字类型、字符类型和布尔类型除外。而对于这些类型,j a v a 也提 供了相应的刘象类型以便与其他对象交互操作。 多态性就是多种表现形式,具体来说,可以用“一个对外接口,多个内在 实现方法”表示。举一个例子,计算机中的堆栈可以存储各种格式的数据,包 括整型,浮点或字符。不管存储的是何种数据,堆栈的算法实现是一样的。针 对不同的数据类型,编程人员不必手工选择,只需使用统一接口名,系统可自 动选择。运算符重载( o p e r a t o ro v e r l o a d ) 一直被认为是种优秀的多态机制体 现,但南于考虑到它会使程序变得难以理解,所以j a v a 最后还是把它取消了。 继承是指一个对象直接使用另一对象的属性和方法。事实上,我们遇到的 很多实体都有继承的含义。例如,若把汽车看成一个实体,它可以分成多个子 实体,如:卡车、公共汽车等。这些子实体都具有汽车的特性,因此,汽车是 它们的“父亲”,而这些子实体则是汽车的“孩子”。j a v a 提供给用户一系 列类( c l a s s ) ,j a v a 的类有层次结构,子类可以继承父类的属性和方法。与另外 一些面向对象编程语言不同,j a v a 只支持单一继承。 2 、平台无关性 j a v a 是平台无关的语言是指用j a v a 写的应用程序不用修改就可在不同的软 硬件平台上运行。平台无关有两种:源代码级和目标代码级。c 和c + + 具有一 定程度的源代码级平台无关,表明用c 或c + + 写的应用程序不用修改只需重新 编译就可以在不同平台上运行。 j a v a 主要靠j a v a 虚拟机( j v i ) 在目标码级实现平台无关性。j v m 是一种 抽象机器,它附着在具体操作系统之上,本身具有一套虚机器指令,并有自己 的栈、寄存器组等。但以往j v m 通常是在软件上而不是在硬件上实现。( 目前, s u n 系统公司已经设计实现了j a v a 芯片,在后续章节中将提到,主要使用在网 络计算机n c 上。另外,j a v a 芯片的出现也会使j a v a 更容易嵌入到家用电器中。) j v m 是j a v a 平台无关的基础,在j 上,有一个j a v a 解释器用来解释j a v a 编译器编译后的程序。j a v a 编程人员在编写完软件后,通过j a v a 编译器将j a v a 源程序编译为j v m 的字节代码。任何。台机器只要配备了j a v a 解释器,就可 以运行这个程序,而不管这种字节码是在何种平台上生成的。另外,j a v a 采用 的是基于i e e e 标准的数据类型。通过m 保证数据类型的一致性,也确保了 j a v a 的平台无关性。 j a v a 的平台无关性具有深远意义。 情( 开发一次软件在任意平台上运行) 首先,它使得编程人员所梦寐以求的事 变成事实,这将大大加快和促进软件产 浙江大学硕士毕业论文 品的开发。其次j a v a 的平台无关性正好迎合了“网络计算机”思想。如果大量 常用的应用软件( 如字处理软件等) 都用j “a 重新编写,并且放在某个i n t e m e t 服务器上,那么具有n c 的用户将不需要占用大量空间安装软件,他们只需要 一个j a v a 解释器,每当需要使用某种应用软件时,下载该软件的字节代码即可, 运行结果也可以发回服务器。 3 、分布式 分布式包括数据分布和操作分布。数据分布是指数据可以分散在网络的不同 主机上,操作分布是指把一个计算分散在不同主机上处理。 j a v a 支持w w w 客户机朋务器计算模式,因此,它支持这两种分布性。对 于前者,j a v a 提供了个叫作u r l 的对象,利用这个对象,你可以打开并访问 具有相同i j i u 地址上的对象,访问方式与访问本地文件系统相同。对于后者, j a v a 的a p p l e t 小程序可以从服务器下载到客户端,即部分计算在客户端进行, 提高系统执行效率。 j a v a 提供了。整套网络类库,开发人员可以利用类库进行网络程序设计,方 便得实现j a v a 的分布式特性。 4 、可靠性和安全性 j a v a 最初设计目的是应用于电子类消费产品,因此要求较高的可靠性。j a v a 虽然源于c + + ,但它消除了许多c + + 不可靠因素,可以防止许多编程错误。首 先,j a v a 是强类型的语言,要求显式的方法声明,这保证了编译器可以发现方 法调用错误,保证程序更加可靠;其次,j a v a 不支持指针,这杜绝了内存的非 法访问;第三,j a v a 的自动单元收集防止了内存丢失等动态内存分配导致的问 题;第四,j a v a 解释器的运行时( r u n - t i m e ) 检查,可以发现数组和字符串访问 的越界,最后,j a v a 提供了异常处理机制,程序员可以把一组错误代码放在一 个地方,这样可以简化错误处理任务便于恢复。 由于j a v a 主要用于网络应用程序开发,因此对安全性有较高的要求。如果 没有安全保证,用户从网络下载程序执行就非常危险。j a v a 通过自己的安全机 制防止了病毒程序的产生和下载程序对本地系统的威胁破坏。当j a v a 字节码进 入解释器时,首先必须经过字节码校验器的检查,然后,j a v a 解释器将决定程 序中类的内存布局,随后,类装载器负责把来自网络的类装载到单独的内存区 域,避免应用程序之间相互干扰破坏。最后,客户端用户还可以限制从网络上 装载的类只能访问某些文件系统。上述几种机制结合起来,使得j a v a 成为安全 的编程语言。 浙江大学硕士毕业论文 5 、多线程 线程是操作系统的一种新概念,它又被称作轻量进程,是比传统进程更小的 可并发执行的单位。c 和c 十+ 采用单线程体系结构,而j a v a 却提供了多线程支 持。 j a v a 在两方面支持多线程。方面,j a v a 环境本身就是多线程的。若干个系 统线程运行负责必要的无用单元回收,系统维护等系统级操作:另一方面,j a v a 语言内置多线程控制,可以大大简化多线程应用程序开发。j a v a 提供了一个线 程类,由它负责启动运行,终止线程,并可检查线程状态。j a v a 的线程还包括 一组同步原语。这些原语负责对线程实行并发控制。利用j a v a 的多线程编程接 口,开发人员可以方便得写出支持多线程的应用程序,提高程序执行效率。必 须注意地是,j a v a 的多线程支持在一定程度上受运行时支持平台的限制。例如, 如果操作系统本身不支持多线程,j a v a 的多线程特性可能就表现不出来。 1 1 2j a v a 语言的应用与发展 j a v a 所具有的通用特性,意味着s u n 最初的技术规范很少能适合紧凑的嵌 入式应用,导致第三方厂家开发相应的替代方案,j a v a 语言的解释特性产生很 差的性能,致使一些厂家为了提高运行速度,开发的编译工具虽然可以把j a v a 语言转化成特定机器的机器码,但它却牺牲了平台的独立性。并且,利用嵌入 式系统作为独立任务运行任何j a v a 线索来实现严格的实时使用是不可能的,同 样也不能运行用c c + + 或汇编语言编写的时序严格的程序。为了解决这些问题, 现在s u n 公司把j a v a 分成三个版本: j a v a 2 标准版( j a v a 2s t a n d a r d e d i t i o n :j 2 s e ) ,用于常见的、并且已经确 定其地位的桌面计算机市场。这也是我们最常见的j a v a 版本。 j a v a 2 企业版( j a v a2e n t e r p r i s ee d i t i o n :j 2 e e ) ,用于服务器解决方案。 使企业和公众组织能够创建可靠、完整和可扩展的互联网服务。 j a v a2 微型版( j a v a2m i c r oe d i t i o n ,j 2 m e ) ,适用于诸如移动电话等小型 设备或嵌入式装置。 j a v a 平台j 2 m e 具有以下特点【6 1 : ( 1 ) 、可移植性。 由于j a v a 技术基于被虚拟机( v m ) 翻译的j a v a 字节码,所以由j a v a 写的应 用程序可以在各种系统设备上运行,包括服务器,桌上电脑,移动装置,与所 采用的微处理器和操作系统无关。例如,运行e p o c 的n o k i a 通信,运行 4 浙江大学硕士毕业论文 p o c k e t p c 的c o m p a qi 队q ,运行l i n u x 的p d a 等。不同品牌型号的手机采_ ; j 各种不同的处理器和操作系统,这就更具有意义。这就是移动通信装置寻求 w a p 和j 2 m e 平台的重要原因。 f 2 、网络传输的安全性。 在虚拟机执行任何应用前,字节码验证测试码的完整性。一旦开始运行 应用时,很难接入系统资源,以此防止病毒侵入。所谓可阻在信任的平台上运 行并非信任的软件。 ( 3 、丰富的图形用户接口。 事实上第一个j a v a 应用在网页的动画上。移动装置从丰富的g u i ( g r a p h i cu s e r i n t e r f a c e ) 和a p i ( a p p l i c a t i o np r o g 眦l m i n gi n t e r f a c e ) 获益。 这 样,也就允许有众多的应用开发和不同类别增值的服务项目。 面向网络意识。可从网上动态地p 载应用程序,并且在下载后可以在非联 机状态下使用。例如玩游戏,数据录入操作等。用户在上网时与服务进行交互 活动,而又可以脱机模式来运行,自然不必担心以分钟计费的顾虑。运行时环 境可执行交互性应用程序,而并不需要很高的网络带宽。j a v a 应用适合与任何 网络协议结合,例如t c p ,i p ,w a p ,i - m o d e ,以及不同的网络,例如 g s m g p r s c d m a ,或者t d m a c d p d ,m o b i t e x 等。 ( 4 ) 、众多的应用资源。 运营商可利用各制造商的产品来运行同样的内容。当今约有2 5 0 万开发 者在开发应用,主要在服务器端,当他们熟悉新平台的a p i 后,很容易将这些 应用转移到无线网络的客户端。 j 2 m e ( j a v a2m i c r oe d i t i o n ) 即用于嵌入式系统的j a v a 被s u n 引入无线领域。 它适用于移动电话,p d a ,便携式嵌入式装置这类资源有限的运行设备,或者 消费类产品,如智能卡、机顶盒等。j 2 m e 在手机上能提供丰富、动态、安全 的使用,并能与w a p 和s m s 完全相支持。经过编译的j a v a 软件很紧凑,并 可在任何用j a v a 技术的设备上运行。通用性和紧凑性使j a v 8 适合于通过有线 和无线分布于因特网。它简化了软件开发流程,简化了集成难度,从而使j 2 m e 成为移动装置的理想平台。随着j 2 m e 的应用,它为移动互联引入一种新的模 型,即允许手机从互联网上下载各种应用程序,并在手机创造可执行环境用以 离线运行这些程序。由于专门用于多样化的嵌入设备和消费电子设备,j 2 m e 针对屏幕电能和闪存等资源有限的移动设备进行了优化和定义,其结构与传统 的程序语言和规范有很大的不同,它是由配置( c o n f i g u r a t i o n ) 设备简表( p r o f i l e ) 浙江大学硕士毕业论文 和可选包( o p t i o n a lp a c k a g e ) 三要素构成。j 2 m e 技术由j a v a 虚拟机和一组应用 编程接口( a p i ) 组成。同时,s u n 公司推出旨在应用于智能卡领域的开放的j a v a 书规范在得到了s c h l u m b e 略c r ,g e m p l u s 和v i s a 等智能p 公司的支持后,也迅 速推动了j a v a 语言在智能卡领域推广应用的热潮。 为了运行j a v a 软件( 如游戏) ,手机卜应有运行时环境j r e ( j a v ar u n t i m e e n v i r o n m c n t ) 和虚拟机。j r e 主要由两部分组成:j a v a 虚拟机( j v i ) 和一组配 置及类库( c l a s sl 洒r ”i e s ) 。 业虐型塑l ( ! 巡1 ,是在微处理器中执行指令集( 或机器码) ,通常称字节代 码佃v t e c o d e ) 的执行引擎。另外,j v i 包括安全和内存管理。j 是软件, 它必须移植到设备平台e 。j a v a 软件被编译为字节码。从而,任何装有j r e 和运行j v m 程序的设备即可执行j a v a 软件。 耋崖塑盟庄,包括开发者常用的功能。一些特定的功能,例如i o 接口, 联网,g i j i 等被组合在标准的类库中。a p i 是程序员访问类库和对象的行为和 状态方式的技术规范,以适应于各种设备接口,如机顶盒,屏幕电话,无线耳 机,数字助理等。配置文件是一组基本a p i 的集合。 配置由虚拟机和最低限度核心库组成。c l d c ( c o n n e c t e dl i m i c e dd e v i c e c o n f i g u r a t i o n ) 是连接有限装置的配置,使用较小内存的配置。m i d p ( m 0 b i l e i n f o n n “o nd e v i c ep r o f l l e ) 是在上面一层的移动信息装置协议,典型用于移动手 机和双向寻呼机。m i d p 与c l d c 结合,提供装置完整的应用环境【6 j 。 s l l l l 公司董事会主席兼首席执行官s c o t tm c n e a l y 在2 0 0 5 年j a v a 的10 周年 纪念上说:“没有人会预料到j a v a 技术能像现在这样无处不在,j a v a 技术已经 应用在2 5 亿部设备之中,包括1 0 亿智能 、7 0 8 亿多移动电话、7 亿多个人 电脑以及全球各地大型公司与组织机构的数据中心。”j a v a 的发展速度越来越 快,并且已经进入一些我们刚刚涉足的领域一一实时应用场合、r f i d ( 射频识 别) 和网格计算( c o m p u t i i l gg r i d ) 。随着全球网络的b 速发展,开发人员也在不 断地将j a v a 推向各个崭新领域。“我们期待着j a v a 经济能够继续保持辉煌一一 创造更多的市场机遇并且不断推陈出新。因为我们已经进入一个近乎于全球信 息互连的网络时代,所以我认为过去的1 0 年仅仅是j a v a 发展道路上的一个预 热而己,让我们对它的更大发展试目以待。”【3 7 j 浙江大学硕士毕业论文 1 2嵌入式j a v a 处理器 由于j a v a 语言是解释型语言,在一般的通用处理器上其运行速度比起编译 型语言要慢很多。s u n 公司为了进一步推广j a v a 的应用,推出了j a v a 芯片。这 些芯片可以说是j a v a 虚拟机的硬件实现。与通用芯片和解释器构成的虚拟机不 同,j a v a 芯片可以直接执行字节码,也就是说,字节码就是j a v a 芯片的指令集。 这种用硬件实现的虚拟机当然要比软件模拟的虚拟机的速度要快得多。 j a v a 处理器主要用于嵌入式系统,所有的编程源码和操作系统相关代码( 如 设备驱动) 都使用j a v a 。可以说j a v a 处理器就是一种集合了j a v a 虚拟机( j a v a r t u a lm a c h i n e ,简称j ) 字节码的扩展堆栈结构。 目前市场上存在的j a v a 处理器主要分为三类,一类是协同处理器 ( c o p r o c e s s o r ) ,需要搭配一颗主处理器来运作,平常运行于主处理器模式下, 需要执行j a v a 程序时,通过协同处理器介面将j a v a 协同处理器唤醒,本身可以 直接进行j a v a 字节码的解释,i n s i l j c o n 的j v x t r e m e 属于此类:第二类是独立 式处理器( s t a n d a l o n ep r o c e s s o r ) ,可独立运行而不需要搭配另一颗处理器,s u n 的p i c o j a v a 【8 j 及a j i l e 的a j 8 0 和a j 1 0 0 属于此类;第三类是嵌入式解释器 ( e m b e d d e d 订a n s l a t o r ) ,内嵌于主处理器之内,在主处理器要从存储器获取j a v a 字节码时,就即时将j a v a 字节码翻译成主处理器的机器码,a r m 的j a z e l j e 和 n a z o m i 的j s l a r 属于此类。 p i c o j a v a i i ”】是s u n 公司改进的p i c o j a v a 系列。微处理器采用了六级砌s c 流 水线,由六个基本单元模块组成:整数单元、浮点单元、指令c a c h e 、数据c a c h e 、 堆栈管理单元和总线接口单元。使用了指令折叠技术,具有指令合并功能。此外 p i c o j a v a i i 具有多线程同步、多种垃圾回收方法、方法调用和本地变量隐含调用 的优点。但是p i c o j a v a i i 使用扩展指令系统还存在以下缺点:1 ) 引入了不符合j v f 规范的指令,破坏了j a v a 操作系统的可移植性;2 ) 需要实用j 甜a 语言和其他语言 混合开发操作系统,增加了设计的复杂性;3 ) 用户难以根据自己的要求改进已 有的操作系统;4 ) 需要特殊编泽器将操作系统的底层程序编译成包含扩展指令 的可执行代码。 j a z e l l e 1 仅仅是在原有的面向寄存器的r j s c 结构处理器基础上进行补充以 支持j a v a 字节码,只能利用片上的寄存器模拟堆栈顶部的四个单元,其余部分需 要溢出到存储器,在运行j a v a 程序时需要频繁访问存储器,因此运行效率不高。 a j i l c 【”1 是a j i l e 公司面向嵌入式系统的低功耗微控制器产品。它采用r 另外一 种完全不同的j a v a 处理器实现方法,a j i l e 通过可再编程的微码控制器实现了所有 浙江大学硕士毕业论文 的j a v a 字节码,可由开发者根据应用要求增加新的定制指令。“i l e 集成了多线程 支持硬件,并且扩展了j a v a 字节码所缺少的i 幻接口能力。 1 3研究目的和意义 如何对执行j a v a 加速,成为关键。加速处理数据和图形,这对手机上互 联网和多媒体的应用具有重要意义。要克服这些问题,提高j a v a 软件性能,可 能的方法有四种 3 8 】: ( 1 ) 提高微处理器速率。然而j a v a 软件性能与时钟频率并不成线性关系, 微处理器运行一般比内存存取时间高2 一l o 倍,增加时钟频率只会增加等待周 期。 ( 2 ) 对j v m 软件进行优化。这可能涉及到要_ e j 汇编语言对字节码翻译环路 进行编程,而这会导致j r e 变得与微处理器类别有关。而与可移植相抵触。 ( 3 ) 编译。将软件直接编译到微处理器的自然机器语言。但是这会增加内 存的开销,也不节省能量的消耗。 ( 4 ) 采用基于硬件的加速器。这可以做到提高性能,保障能量和成本的有 效性。 硬件加速器是一种协处理器。硬件加速的实质,是将j v m 中的j a v a 字节 码指令翻译器由加速芯片来代替。具体说,2 0 1 条j a v a 指令中约4 7 条常用指令 由硬件执行,用微码指令方式实现9 9 条,余下较为复杂的仍由软件执行。j v m 仍然保持执行其它功能不变。对微处理器和内存之间的接口是透明的,对操作 系统无影响。所以,它不要求操作系统作任何改动,也不要求将驱动程序集成 到操作系统中。所有现有的软件仍可照用不误,不受影响。 硬件加速器使得在j a v a 执行速率、功耗、成本之间有一个较好的平衡。从 标准工业测试程序的测试结果来看,结果大为改观。它使j a v a 执行速率提高可 达1 5 - 2 0 0 倍,同时可大幅节省额外的功耗。硬件加速适用于移动无线通信领域, 可用于2 ( 2 。5 g ,3 g 电话手机,包括g s m g p r s c d m a 。它不仅使j “a 加速。 而且延长电池使用寿命。 目前工业界独特唯一的通用型j a v a 加速器芯片,是用硬件方式的加速器。 它对操作系统是透明的,可以很容易地集成到已有设计中。对原有的设计仅作 很少的适配性改动,不需重新设计。这一方法的优势是,不需要提高系统时钟 频率,不要求额外的内存,不要求添加新的工具。j a v a 加速器的接口就象标准 浙江大学硕士毕业论文 的s r a m 芯片一样,可直接连接到内存总线上。它可与任何一种基带处理器, 系统芯片( s o c ) ,或嵌入式微处理器连接工作。 即与使用哪一种微处理器,哪 种操作系统,哪种j a v a 虚拟机( v m ) 软件均无关。 j a v a 嵌入的困难始于存储要求。传统上,编程人员编写j a v a 代码,编译器 把它翻译成独立于机器的j a v a 字节码。在运行时,目标装置中的校验器,分析 这些字节代码以确保代码的安全执行。在目标装置中,内置一个j v m ,位于j a v a 应用和系统平台的中间层,该j a v a 虚拟机使用一个解释器或一个即时编译器 ( j i t :j u s ti nt i m ec o m d i l e r ) ,它用来把字节代码翻译成目标处理器能够识别的 机器语言。j a v a 虚拟机也能够提供类似操作系统一样的服务,例如,控制多线 程执行、分配内存、内存使用完之后,释放它( 即无用信息收集) 。j a v a 虚拟机 的存储器容量能够大到几兆字节,它适合台式p c ,但是能使低端便携式装置陷 于瘫痪。软件j v m 解释器可能占用1 6 k 字节内存,它非常便宜,适合在智能 卡一类的装置中使用。采用j i t 编译器运行速度可能比采用解释器运行快五倍, 但是,它需要使用超过1 0 0 k 字节的存储器,所以它不太适合在低成本或低功 率装置中使用。很显然,放弃软件翻译,采用硬件实现j v m 将会大幅度地提高 系统运行效率,这正是目前出现的一种j a v a 处理器系列,有许多途径可以实现 它。现在,可以在嵌入式系统中使用j a v a ,甚至可以代替独立的r 1 0 s ( 实时 操作系统) 。 1 4设计内容和设计目标 j a v a 处理器的设计目标是在硬件中实现j 订,可以本地执行大部分常用的 j v i 指令,即可以在处理器上直接运行由标准j a v a 编译器生成的j a v a 字节码程 序。该处理器主要面向嵌入式系统应用,可提供标准j v m 特性。设计的主要内 容包括: 1 ) 学习j v m 规范,分析j v m 的体系结构: 2 ) 比较分析目前市场上已经存在得j a v a 处理器方案; 3 ) 选择合适的j a v a 处理器硬件实现结构并进行设计: 4 ) 选择j v m 指令集实现方式,根据指令的复杂度分别采用硬件直接实现、 微码序列实现或留给软件实现,并在原有指令集基础上扩充了对底层硬件和存 储器操作的指令; 5 ) 比较并选择合适的堆栈结构: 浙江丈学硕士毕业论文 6 1 使用l 硬件描述语言对处理器进行建模仿真和功能验证 7 1 对处理器的r t l 代码做综合,并进行性能分析。 1 5论文结构 本文总体上分为三个部分,第一部分介绍了j a v a 虚拟机( j v m ) 规范,第二部 分为j a v a 硬件加速器设训,第三部分是仿真和综合结果。最后做出总结,并提 出后续工作内容。指令集的设计主要根据不同指令的实用频率和硬件复杂度采用 不同的实现方式,并对原有的j 指令进行扩充使其具备硬件操作能力,大部 分算术逻辑指令都町以在一个或几个时钟周期内完成。堆栈结构也做了分析和优 化,采用了两级堆栈缓冲结构。j a v a 堆栈存储器使用了双端口r a m ,这样设计 可以移植到低成本的f p g a 中,存储器资源耗用少。此外,本设计使用硬件描述 语言v 玎) l 对处理器各部件进行建模并通过功能性仿真验证,几种综合工具的 综合结果表明了本设计占用硬件资源少、面积小、速度快。 浙江大学硕士毕业论文 第二章设计规范一j a v a 虚拟机 2 1j a v a 虚拟机简介 j a v a 虚拟机口1 是一个想象中的机器在实际的计算机上通过软件模拟来实 现。j a v a 虚拟机有自己想象中的硬件,如处理器、堆栈、寄存器等,还具有相应 的指令系统。 j a v a 语言的一个非常重要的特点就是与平台的无关性。而使用j a v a 虚拟机 是实现这一特点的关键。一般的高级语言如果要在不同的_ 甲台上运行,至少需 要编译成不同的目标代码。而引入j a v a 语言虚拟机后,j a v a 语言在不同j f 台上 运行时不需要重新编译。j a v a 虚拟机屏蔽了与具体平台相关的信息,使得j “a 语言编译程序只需生成在j a v a 虚拟机上运行的目标代码( 字节码) ,就可以在多 种平台上不加修改地运行。j a v a 虚拟机在执行字节码时,把宁节码解释成具体平 台上的机器指令执行。 j a v a 虚拟机是j a v a 语言底层实现的基础,对j a v a 语言感兴趣的人都应对 j a v a 虚拟机有个大概的了解。这有助于理解j a v a 语言的一些性质,也有助于使 用j a v a 语言。对于要在特定平台上实现j a v a 虚拟机的软件人员,j a v a 语言的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 邮储银行2025威海市秋招笔试性格测试题专练及答案
- 工商银行2025三沙市数据分析师笔试题及答案
- 2025年3D打印技术的材料
- 工商银行2025忻州市信息科技岗笔试题及答案
- 交通银行2025沈阳市数据分析师笔试题及答案
- 交通银行2025四平市笔试行测高频题及答案
- 2025行业全球市场发展策略
- 2025数字乡村建设与行业发展报告
- 中国银行2025七台河市秋招笔试英语题专练及答案
- 建设银行2025太原市小语种岗笔试题及答案
- IInterlib区域图书馆集群管理系统-用户手册
- EnglishDrama英语戏剧写作及表演技巧课件
- DB11T 827-2019 废旧爆炸物品销毁处置安全管理规程
- 社会组织管理概论全套ppt课件(完整版)
- 轧机设备安装施工方案
- DB31∕T 926-2015 城镇供水管道水力冲洗技术规范
- (完整版)IATF16949新版过程乌龟图的编制与详解课件
- 制药企业仓库温湿度分布的验证
- 满堂脚手架工程施工方案
- LY∕T 2705-2016 樟脑磺酸
- GB∕T 3099.4-2021 紧固件术语 控制、检查、交付、接收和质量
评论
0/150
提交评论