(电路与系统专业论文)针对嵌入式系统的java虚拟机的硬件实现.pdf_第1页
(电路与系统专业论文)针对嵌入式系统的java虚拟机的硬件实现.pdf_第2页
(电路与系统专业论文)针对嵌入式系统的java虚拟机的硬件实现.pdf_第3页
(电路与系统专业论文)针对嵌入式系统的java虚拟机的硬件实现.pdf_第4页
(电路与系统专业论文)针对嵌入式系统的java虚拟机的硬件实现.pdf_第5页
已阅读5页,还剩81页未读 继续免费阅读

(电路与系统专业论文)针对嵌入式系统的java虚拟机的硬件实现.pdf.pdf 免费下载

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

文档简介

丫6 5 2 3 7 0 针对嵌入式系统的j a v a 虚拟机的埂件实现摘要 摘要 随着集成电 路技术的 发展, 嵌入式系统正在被 越来越广泛地使用。 从网 络、系统控制等高 性能设备到个人数字助手 ( p d a ) 和手机, 都可以 见到它的身影。 而随着互联网 应用市场的高 速发展,人们对j a v a 的使用投入了 极大的兴趣。仅管j a v a 语言最初因网络发展的需要而产生 但其指令短小、 安全、 平台 无关的 特点使得它开始 在嵌入式系统中被大量使用, 特别是对于那 些便携式设备, j a v a 的 那些特点 似乎生来就是为 它们而准备的。嵌入式系统中的 关键部 分是 微 处理器,它基本决定了整个嵌入式系统的性能。 我们工 作的目 标是设计一个针对嵌入式系统的 微处理器, 它执行j a v a 语言有较好性能, 并 且兼容一种r i s c 指令集 选用a r m或者mi p s 指令集) 。 在2 0 世纪8 0 年代提出的r i s c结构 的处理器相当 适合嵌 入式系统的 使用。由 高级r i s c机器公司 提供的a r n 。 处理器和由m i p s 技术公司提供的m i p s 处理器是现在世界上最著名和使用最广泛的嵌入式通用微处理器。 文中我们将讨论 基于嵌入式系统r i s c微处理器的j a v a 平台,它的儿种实现方式的特点 和 异同,并提出能以 低成本实现基于r i s c设计的硬件直接执行j a v a 的字节码。本文中,我们需 要设计两个3 2 位嵌入式r i s c处理器分别兼容a r m ? 和m i p s 2 0 0 0 。 它们是一种新的3 2 位微处 理器结构和有一种附 加加 速j c v m的 硬件。 在这两个处理器中, 不仅能执行本地指令集而且 支 持j a v a 卡虚拟机指令集。 这些处理器的特点是有两个程序执行状态: j a v a 状态和本地状态。 我们在两个处理器中 分 别采用了不同的硬件加速技术来提高j a v a 的执行效率。 这些技术包括堆栈寄存器堆、 快速本地 变量、指令折叠、 堆栈指示等。它们能在两个状态间无缝切换, 这使得用户能方便地使用j a v a 应用程序和原始的r i s c程序而不需要增加额外的处理器。而提高j a v a 执行能力仅仅需要在原 初的r i s c芯片中增加很小的面积。 最后,我们使用t s mc的0 . 1 8 u m c m o s工艺库, 完成这些芯片的设计,并使用x i l 。 的 f p g a板作为我们的硬件验证平台, 它能为其它 类似的嵌 入式微处理器和j a v a 硬 件i p 的设计 提 供一个系统环境。 关键词:嵌入式系统, 流水线, 精简指令集处理器, 高级精简指令集处理器 机器,无互 锁流水 级微处理器, j a v a . j a v a 卡虚拟机,堆栈,寄存器堆,本地变量,缓存,指令折叠 勿全 文 公布 导师同霖 t h e h a r d w a r e i m p l e m e n t a t i o n o f j a v a v i rt u a l m a c h i n e f o r e m b e d d e d s y s t e m s abs tract abs tract wi t h t h e d e v e l o p m e n t o f i c t e c h n o l o g y , t h e e m b e d d e d s y s t e m s a r e m o r e a n d m o r e w i d e l y u s e d . i t h a s a w i d e r a n g e o f a p p l i c a t i o n s f r o m h i g h p e r f o r m a n c e d e v i c e s t h a t s u p p l y n e t w o r k i n g , s y s t e m c o n t r o l l i n g t o p e r s o n a l d i g i t a l a s s i s t a n t a n d c e l l p h o n e s . wi t h t h e r a p i d l y d e v e l o p i n g i n t e rn e t a p p l i a n c e m a r k e t , t h e u s e o f j a v a i s s p a r k i n g s i gni f i c a n t i n t e r e s t . t h e j a v a l a n g u a g e , a l t h o u g h o r i g i n a ll y d e v e l o p e d f o r n e t w o r k , w h i c h i s s e a m l e s s , s e c u r e , n e t w o r k e d p l a t f o r m f o r y o u r b u s i n e s s , i s b e i n g u s e d i n t h e e m b e d d e d s y s t e m . e s p e c i a l l y i n t h e p o r t a b l e d e v i c e s , j a v a l o o k s l i k e b o rn f o r t h e m . t h e m i c r o p r o c e s s o r i s t h e k e y p a r t o f a n e m b e d d e d s y s t e m , w h i c h c a n c r u c i a l l y d e t e r m i n e t h e p e r f o r m a n c e o f t h e w h o l e e m b e d d e d s y s t e m . t h e t a r g e t o f o u r d e s i gn i s t h e m i c r o p r o c e s s o r o f e m b e d d e d s y s t e m w i t h t h e g o o d p e r f o r m a n c e i n e x e c u t i o n o f j a v a l a n g u a g e a n d c o m p a t i b l e w i t h a k i n d o f r i s c i n s t r u c t i o n s e t ( a r m o r mi p s ) . t h e r i s c p r e s e n t e d i n 1 9 8 0 s i s a d a p t a b l e t o t h e e m b e d d e d s y s t e m . a n d t h e a r m s p r o c e s s o r p r o v i d e d b y a d v a n c e r i s c m a c h i n e s l t d a n d m i p s o p r o c e s s o r p r o v i d e d 妙 m i p s t e c h n o l o g i e s i n c a r e t h e c u r r e n t m o s t f a m o u s a n d w i d e l y - u s e d e m b e d d e d m i c r o p r o c e s s o r s i n t h e w o r l d . i n t h e p a p e r , w e w i l l d i s c u s s t h e c h a r a c t e r i s t i c a n d d i ff e r e n c e i n s o me c u r r e n t i m p l e me n t s o f j a v a p l a t f o r m s b a s e d o n t h e r i s c m i c r o p r o c e s s o r o f e m b e d d e d s y s t e m . t h e n t h e e x t e n s i o n o f d i r e c t e x e c u t i o n o f j a v a b y t e c o d e i s p r e s e n t e d b a s e d o n t h e r i s c d e s i gn w i t h t h e l o w c o s t . we d e s i gne d t w o 3 2 b i t e m b e d d e d r i s c p r o c e s s o r s c o m p a t i b l e w i t h c o m m e r c i a l a r m 7 a n d mi p s 2 0 0 0 . t h e y a r e a k i n d o f n o v e l 3 2 b i t m i cr o p r o c e s s o r a r c h i t e c t u r e a n d a k i n d o f a d d i t i o n a l h a r d w a r e a c c e l e r a t i n g j c v m. i n t h e s e p r o c e s s o r s , n o t o n l y t h e n a t i v e i n s t r u c t i o n s e t b u t a l s o t h e j a v a c a r d v i r t u a l ma c h i n e i n s t r u c t i o n s e t i s c a p a b l e o f e x e c u t i o n . t h e p r o c e s s o r s f e a t u r e t w o m o d e o f p r o g r a m : a j a v a m o d e a n d a n a t i v e m o d e . i n t w o p r o c e s s o r s , w e r e s p e c t i v e l y a d o p t e d a s e ri a l o f h a r d w a r e a c c e l e r a t i n g t e c h n o l o g y t o e n h a n c e t h e e x e c u t i o n e f f i c i e n c y o f j a v a , i n c l u d i n g s t a c k r e g i s t e r f i l e , q u i c k l o c a l v a r i a b l e , i n s t r u c t i o n f o l d i n g , s t a c k i n d i c a t o r a n d s o o n . a n d t h e y c a n s w i t c h b e t w e e n t h e m s e a m l e s s l y , w h i c h m a k e s t h e p r o c e s s o r c u s t o m s e x p e d i e n t l y u s e j a v a a p p l i c a t i o n a n d o ri g i n a l r i s c p r o g r a m s , w i t h o u t a d d i t i o n a l p r o c e s s o r . t h e h i g h p e r f o r m a n c e o f e x e c u t i n g j a v a s a b i l i t y o n l y c o s t a s m a ll s i z e i n c r e a s e o f p u r e r i s c c h i p . f i n a l l y , w e i m p l e m e n t t h e c h i p s o n t s mc 0 . 1 8 u m c m o s p r o c e s s . a n d t h e x i l i n x f p g a b o a r d i s u s e d f o r h a r d w a r e v e r i f i c a t i o n . i t c a n p u t f o r w a r d a s y s t e m c i r c u m s t a n c e f o r t h e s i m i l a r e m b e d d e d m i c r o p r o c e s s o r a n d j a v a h a r d w a r e i p d e s i gns . k e y w o r d s : e m b e d d e d s y s t e m , p i p e l i n e , r i s c , a r m , m i p s , j a v a , j a v a c a r d v i r t u a l m a c h i n e , s t a c k , r e g i s t e r f i l e , l o c a l v a r i a b l e , c a c h e , i n s t ru c t i o n f o l d i n g 第一章 嵌入式系统溉要 第一章 嵌入式系统概要 1 . 1 嵌入式系统简介 嵌入式系统是计算机的一种应用形式, 就是把计算机直接嵌入到应用系统之中, 它融合了计算机软/ 硬件技术、 通信技术和半导体微电子技术, 是信息技术的最终产 口 口p。 计算机应用的普及、互联网技术的实用以 及纳米微电子技术的突破,正有力推 动着2 1 世纪工业生产、 商业活动、 科学实验和家庭生活等领域自 动化和信息化进程。 各种自 动化应用、大范围的电子商务活动、现代家庭起居等等一系列的应用维嵌入 式系统的产品造就了崭新而极其广泛的应用商机。 与嵌入式计算机系统相对应的一个概念是通用计算机系统。通用计算机具有计 算机的标准形态,通过装配不同的应用软件,以类同面目出现并应用在社会的各个 方面。 在现代社会中, 通用计算机的典型产品就是p c .嵌入式计算机系统与通用计 算机系统最大的不同在于,该类计算机总是以嵌入式系统的形式隐藏在各种装置、 产品和系统中。 嵌入式系统早期主要应用于军事及航空航天等领域,以后逐步广泛的应用于工 业控制、仪表仪器、汽车电子、通信和家用消费类等领域。以信息家电为代表的互 联网时代嵌入式产品,不仅为嵌入式市场展现了美好前景, 注入了新的生命:同时 也对嵌入式系统技术提出新的挑战。日 趋增长的功能密度、灵活的网络联接、轻便 的移动应用和多媒体的信息处理,以及更加激烈的市场竞争对嵌入式系统提出了更 高的要求。 高性能、应用方便、低功耗、低成本等成为对嵌入式系统的主要要求,p c 领域 已 经成熟、 广泛使用的c i s c 体系的处理器无法满足嵌入式系统的特殊要求, 高性能 的r i s c 体系的处理器更能适合嵌入式的应用。 而灵活的网络、 移动应用以及对应用 程式的跨平台应用也对软件提出了更高要求, 这使得s u n 公司提出的j a v a 语言在嵌 入式系统中得到了新的、更有活力的生命。 1 . 2 嵌入式处理器的发展和历史 1 . 2 . 1 嵌入式系统处理器 嵌入式系统的核心部件是各种类型的嵌入式处理器,一般分以 下几种。 嵌入式微处理器( e m b e d d e d m i c r o p r o c e s s o r u n i t , e m p u ) ,由 通用计算机中的 c p u发展而来。为了满足嵌入式应用的特殊要求,在工作温度、抗电磁干扰、可靠 第一章 嵌入式系统概要 性等方面一般都做了 各种增强。入式处理器目 前主要有产品由 3 8 6 e x , p o w e r p c , 6 8 0 0 0 , m i p s , a r m 系列等。 嵌入式微控制器( m i c r o c o n t r o l l e r u n i t , m c u ) 又称单片机,就是将整个简单的 计算机系统集成到一块芯片中。嵌入式微控制器以某一种微处理器内核为核心, 内 部集成r o m , r a m 、总线、 i / 0 、串行口、 f l a s h 等各种外设。 微控制器最大特点是单 片化,系统体积小,使功耗和成本下降、可靠性提高。微控制器是目 前嵌入式系统 工业的主流。嵌入式微控制器目 前的品种和数量最多,比较有代表性的通用系列包 括 8 0 5 1 , p 5 1 x a , m c s - 2 5 1 , m c s - 9 6 / 1 9 6 / 2 9 6 , c 1 6 6 / 1 6 7 , m c 6 8 h c 0 5 / 1 1 / 1 2 / 1 6 , 6 8 3 0 0 等。目 前m c u占嵌入式系统约7 0 %的市场份额。 d s p 处理器对系统结构和指令进行了特殊设计, 使其适合于执行d s p 算法。 在数 字滤波、 f f t , 频谱分析等方面d s p 正在大量进入嵌入式领域, 正从在通用单片机中 以 普通指令实 现d s p 功能, 过渡到 采用 嵌 入式d s p 处理 器( e m b e d d e d d i g i t a l s i g n a l p r o c e s s o r , e d s p ) 。有代表性的产品是t i 的 t m s 3 2 0 系列和m o t o r o l a 的d s p 5 6 0 0 0 系列。 随着v l s i 设计的普及化, 及半导体工艺的迅速发展, 在单片硅片上实现一个更 为复杂的系统的时 代已来临 这就是 s y s t e m o n c h i p ( s o c。 用户只需定义出其整 个应用系统,验证通过后就可以 将设计图交给半导体工厂制作样品。这样除个别无 法集成的器件以外,整个嵌入式系统大部分均可集成到一块或几块芯片中去。 1 .2 . 2 r i s c发展历史 从 1 9 7 5 年开始, j o h n c o c k e 在 i b m 公司开始了一个称为8 0 1 的计划, 他们的最 初研究目 标是:如何设计比 现有机器性能价格比更好、支持高级语言的机器。在他 们的工作中充分借鉴了像c d c 6 6 0 0 中采用的硬连线控制这样的设计简单化原则。 虽 然8 0 1 只是一个实验性的计划, 但是他们为r i s c 技术的发展做出了许多基础性的贡 献。 1 9 8 0 年, p a t t e r s o n 和d i t z e l 在 他 们 合 写 的 一 篇 论 文中 , ” 提出 一 个 这 样的 观 点, 既单片处理器的优化结构不必像芯片处理器的优化结构一样, 提出了r i s c 的概念。 , 随后加州大学b e r k e l e y 分校的d a v i d p a t t e r s o n 开始设计具有r i s c 思想的机器。 他们先后实现了试验样机r 工 s c 工 和r 工 s c 工 i 。这些比当时的c i s c 处理器简单得多, 开发中 投入的设计力量也少很多, 但仍然达到了相似得性能。 r i s c i , r 工 s c i i成 为后来得到广泛应用的s p a r c ( s c a l a b l e p r o c e s s o r a r c h i t e c t u r e ) 结构的稚型。此 后, 在 1 9 8 1 年s t a n f o r d 大学也提出了r i s c 结构的m i p s 机器, 开始加入r i s c 研究 行列。 八十年代中期, r i s c 思想和技术开始普遍被工业界接受。 r i s c 技术本身也得到 了迅速完善和发展。1 9 8 6年,出现了一些商品化的 r 工 s c芯片,如整数处理器 m i p s 2 0 0 0 ; 1 9 8 7 年,s u n 公司开始提供采用s p a r c 结构的机器。 2 第一章 嵌入式系统概要 关于 r i s c的具体特点我会在后面的章节中提到,这里说一下 p a t t e r s o n和 d i t z e l 认为的r i s c 所具有的3 个基本优点: 1 管芯的面积小 简单的处理器需要的晶体管少,需要的硅片面积也小。因此整个 c p u在工艺发 展早期就可以容纳在一个芯片内。而此后更可以省下更多的面积用于实现如高速缓 冲 ( c a c h e ) 、存储管理器 ( m m u ) ,浮点 ( f l o a t i n g - p o i n t )协处理器等提高性能的 硬件。 2 .开发时间短 简单的处理器会占用比较少的设计力量,设计费用低,开发周期短,能更好的 适应市场和工艺。 3 ,性能高。 虽然高性能总要通过不断增加复杂度来实现, 但是换个角度看的话, 简单的 处 理器能具有较高的自 然频率,而增加的高级功能虽然会使得某些高级功能更有效, 但也会降低所有指令所用的频率, 这个需要我们衡量那个更有价值。因此,辨证得 看我们可以说它具有更高得性能。 现在流行的精简指令集计算机有a r m , m 工 p s , p o w e r p c , s p a r c等,现在应用最 广泛的则是a r m 和m 工 p s . 1 . 2 . 2 . 1 mi p s m i p s 处 理 器是 八 十 年 代中 期r 工 s c c p u 设 计的 一 大 热点1. 21 0 m 工 p s 是 卖的 最 好的 r i s c c p u ,可以从任何地方,如s o n y , n i n t e n d o 的游戏机,c i s c o 的路由器和s g i 超级计算机,看见m i p s 产品在销售。 1 9 8 1年,s t a n f o r d大学的 j o h n h e n n e s s y和他的同事们设计、实现了 m i p s ( m i c r o p r o c e s s o r w i t h o u t i n t e r l o c k e d p i p e l i n e s t a g e s ) 机器。 m i p s 原始设 计的两个最重要的特色是高效的指令流水线和编译辅助的流水线调度策略,为后来 商品化的r 2 0 0 0 , r 3 0 0 0 等奠定7基础。 1 9 8 4 年, m 工 p s 计算机公司成立, 成为一家设计制造高性能、 高档次及嵌入式3 2 位和6 4 位处理器的厂商。在r i s c 处理器方面占 有重要地位。1 9 9 2 年,s g i 收购了 m i p s 计算机公司。1 9 9 8 年, m i p s 脱离s g i , 成为m i p s 技术公司。 1 9 8 6 年推出r 2 0 0 0 处理器,1 9 8 8 年推出8 3 0 0 0 处理器,1 9 9 1 年推出第一款6 4 位商用微处理器8 4 0 0 0 。之后,又陆续推出8 8 0 0 0( 于 1 9 9 4 年) 、8 1 0 0 0 0( 于1 9 9 6 年)和8 1 2 0 0 0( 于1 9 9 7 年)等型号。之后,m i p s 公司的战略发生变化,把重点放 在嵌入式系统。1 9 9 9 年, m i p s 公司发布m i p s 3 2 和m i p s 6 4 架构标准,为未来m i p s 处理器的开发奠定了基础。 新的架构集成了 所有原来m 工 p s 指令集, 并且增加了许多 更强大的功能。 m 工 p s公司陆续开发了高性能、低功耗的 3 2 位处理器内核 c o r e ) m i p s 3 2 4 k c 与高性能6 4 位处理器内核m i p s 6 4 ac . 2 0 0 0 年, m i p s 公司发布了针 一- - - . . . . . . 目 . 3 第一章 嵌入式系统概要 对m i p s 3 2 4 k c 的新版本以 及未来6 4 位m i p s 6 4 2 0 k c 处理器内 核。 1 . 2 . 2 . 2 arm 在1 9 8 5 年4 月, 第一个a r m 原型 在英国 剑桥的a c o r 。 计算机有限公司 诞生n . 3 在a r m 公司 ( a d v a n c e d r i s c m a c h i n e l i m i t e d ,简称为a r m l i m i t e d )正式成立的 1 9 9 0 年之前, a r m 代表的是a c o r n r i s c m a c h i n e . 1 9 8 7 年推出第一款低功耗r 工 s c 产品。它是第一个实际应用v l s i 技术的公司。 在 1 9 9 1 年推出全世界第一款3 2 位嵌入式r 工 s c 核a r m 6 , 并在随后的1 9 9 3 年推出了 至今仍然很受欢迎的a r m 7 处理器核。 1 9 9 7 年推出了a m r 9 家族, 在9 8 年和0 2 年又 先后推出了a r m 1 0 和a r m 1 1 处理器核,此外还设计了一系列辅助芯片. 在上世纪9 0 年代, a r m 处理器是低功耗、性能的代表,但是随着性能的提高也 不可避免的使得a r m 在纯能耗的排名落入中游了。但多年的优势,使得目 前a r m 架 构处理器仍然在高性能、 低功耗、低成本的嵌入式应用领域占 据领先地位,是全球 最大的i p 供应商。 _一-一碑, 4 第二章 l a v a 语言和虚拟机介绍 第二章 j a v a 语言和虚拟机介绍 1 9 9 1 年s u n m ic r o s y s t e m s in c .的 绿 色计 划( g r e e n p r o j e c t ) 2 , 原 本 使 用c , c + + 来开发消费电子产品。但是后来发现这些语言的功能与效果无法达到程序设计师的 理想目 标,加上网络当时开始方兴未艾,于是s u n 就在原先的基础上针对网络的特 点, 开始着手设计一套完全面向 对象、 而且不受平台限 制的语言。 1 9 9 5 年s u n 正式 推出的j a v a 技术并在网络上大获成功后, 随后逐渐进入原本的设计目 标, 开始在网 络家电、智能卡等嵌入式系统的应用领域中。 2 . 1 j a v a语言的特点 对于j a v a 最大的 特点 我们可以 套用s u n总 裁s c o tt lv i c in e a rym l -a i r y : w ri t e o n c e , r u n a n y w h e r e o n a n y th i n g s a f e l y 。 我 们 从技 术 角 度出 发, 可以 归 纳出 如 下 几 个 特点: a )平台无关:j a v a语言 最吸引人的 特点 之一就是平台 无关性质。它可以 跨平 台运行,只要在j a v a 虚拟机 ( j a v a vir t u a l ma c h i n e ) 支持的平台上,都可以 将j a v a 虚拟机一直上去, 不管是x 8 6 的d o s , w i n d o w s , 还是a p p l e 的m a e , 让j a v a 应用程序在其上运行。 b )指令精简: j a v a 语言一开始就是为了 网 络上不同 平台间的 流通性。 j a v a 语 言编译出的b y t e c o d e 的 特性就是短小的 指令格式。 可以 说其精简的 指令很 合适在网络中快速传播下载,因此也十分合适资源有限的嵌入式系统中。 c )安全性: j a v a具有多 个层次的 安 全防 护措施, 可以 阻挡病毒和其他的 入侵 行为,可以避免造成 j a v a 系统内的不稳定.其安全性主要是:一,j a v a 编 译其内 建b y t e c o d e 验证器, 在j a v a 源码 编译成b y te c o d e 时 会做安全性检测; 二, c l a s s l o a d e r 在加载类的 时候会指定 其安 全属性; 最后在网 络应用中, l a v a采取安全管理器和沙箱模型,针对一些脚本和应用的可能的危险做出 认证要求。 d )易编写: j a v a 语言是完全面向 对象的语言, 又和 c + 十 语言很相象。 基本上 熟悉c + + 员的程序设计员能很快上手编写j a v a 应用程序,而不用花费大量 时间来学习j a v a 语言和了解j a v a 内部的实现机制。 一 一 - - - - 一 一 5 第三章 嵌入式系统中实现j a v a 虚拟机 第三章 嵌入式系统中实现j a v a 虚拟机 j a v a在很多方面都令人关注, 其中的多数都与市场有关。 我们知道 s u n 公司提 出的j a v a 语言规范 1 3 .1 里要求使用虚拟机来具体运行j a v a 应用程序, 而且s u n 公司 并没有强制规定虚拟机的实现方式,而是采用开放式的结构,方便在各个系统中实 现。因而,对于在嵌入式系统中,我们可以采用多种完全不同的方案来实现同样的 功能。 在这一章中,我将提出一些j a v a 虚拟机的常见实现方式进行初步比较,并正对 嵌入式系统中常用的r i s c体系的处理器进行进一步分析。 3 . 1 典型的指令集结构 处理器内 部数据存储类型是各个指令集结构的最大不同 13 .2 1 。 主要类型有堆栈 ( s t a c k ) ,累加器 ( a c c u m u l a t o r ) 或一组寄存器 ( r e g i s t e r ) 。 操作数来源类型可以 把指令集结构分为4 大类: 堆栈、 累加器、 寄存器一内存、 寄存器一寄存器, 图3 . 1 , a ) 堆栈b ) 累加器。 ) 寄存器一内存d ) 寄存器一寄存器 图3 . 1四种不同类型操作数来源的指令集结构 表3 . 1 中显示各个结构中对于c = a + b的不同指令代码。 还有保存所有操作数 在内存中的内存一内存类型。 . 一一一 钾,碑 ,一,.,. ,.目.目.目目.目. 1 0 第三章 嵌入式系统中实现j a v a 虚拟机 a堆栈b累加器 p u s h a p u s hb ad d p o p c lo a d a ad d b s t o r e c c寄存器 ( 寄存器一内存) l o a d r i , a a d d r 3 , r i , b s t o r e r 3 , c d寄存器( 寄存器一寄 存器/ l o a d - s t o r e ) l o a d r 1 , a l o a d r 2 , b a d d r 3 , r i , r 2 s t o r e r 3 , c 表3 . 1四种不同 类型指令集的c = a + b的 指令代码序列 在早期的计算机中很多都使用堆栈或者累加器类型的结构, 但8 0 年代以 来基本 都使用寄存器结构的计算机 ( 如图3 . 1 和3 .2 中的c 和d 的结构) 。主要原因在于通 用寄存器 ( g p r , g e n e r a l - p u r p o s e r e g i s t e r )的出 现, 使得寄 存器比内 存更快; 而且 与其它结构的内部数据存储结构相比,编译器能更有效的使用寄存器。重要地,由 于寄存器能被用来保存变量,使得寄存器结构的处理器能大大减少内存数据流量, 很有效地提高处理器的运行速度( 寄存器读写速度比内存高很多) , 并且能减少指令 密度 ( 寄存器比内 存少,使用自己内部更短的编址) 。 现在在嵌 入式系统较多 使用r i s c ( r e d u c e d in s t r u c t i o n s e t c o m p u t e r ) 体系结 构, 它是一种寄存器一寄存器 ( 或者叫l o a d / s t o r e )结构。 r i s c指令一般会包括三大类: 跳转、数据处理、读取和存储指令。各种不同系统各有不同、有所变动。比如有些 处理器还会有访问状态寄存器、软中断和未定义指令;而如a r m系统指令集还加 入了条件代码域, 每条指令都需要条件执行。当然总体上r i s c指令集还是有相当 多的相同点。 设计数据处理的指令需要的操作数来源都来自 寄存器组内的数据 ( 除了指令中 携带的立即数外) 。 只允许访存类指令 ( l o a d / s t o r e )访问内存,其他类型指令都能不能设计内存操 作。 指令格式简单, r i s c的指令绝大多数可以 在一个周期执行完成, 少数指令会占 用两个以上的时钟周期 ( 既多周期指令) ; 指令的长度固定 ( 本文讨论的基本针对的 3 2位 r i s c处理器,故指令采用 3 2 比特长) ; r 工 s c 指令的这种简单的特点使得处理器的流水设计相当简单,有简单的指令生 成模型, 整个处理器设计简单有效。 r 工 s c 处理器的大量数据操作都只涉及寄存器而 不涉及内存,降低了读写内存的数据量,提高效率,降低功耗。 3 . 2 j a v a 解决方案t r 较 通过第二章的介绍, 我们现在己 经知道有许多种在各个平台上执行j a v a 的 方法。 i t 第二章 嵌入式系统中实现j a v a 虚拟机 在嵌入式系统中以 前一般都是使用软件的方式来实现虚拟机3 . 3 ( 一般为 k v m或者 j c v m ) 。 在对运行效率要求不断提高之后又出 现了不少硬件解决方案和软件优化的方 案。 3 . 2 . 1 软件实现方法 最易理解和常用的执行方式就是解释执行, 是以软件方式的j a v a 虚拟机来解释 执行, 与传统汇编语言编写程序相比执行速度低。 一条简单的j a v a 算术指令可 能需要将它拆分为读指令操作码、 执行子程序或者跳转到处理程序、读后续指 令操作数、读执行操作数、执行、计算写回地址、写回、计算新的指令地址等 多条指令, 效率相当 低。 不过解释执行虚拟机程序简单, 容易实现, 依然是 一 种常见的方法。 即时编译会扫描j a v a 类文件, 将其中频繁使用字节码( b y t e c o d e ) 批量编译成处 理机的机器码存储在内存中,对大部分指令不需要边解释边执行,而能直接调 用执行,只有少量使用很少的程序需要调用解释器。但是在提高速度同时也增 加了内存的资源消耗, 大量占 用了本身就不富裕的嵌入式系统片内的内 存资源。 交互编译是如同c , c + 、 一样直接将j a v a 原程序编译成本地机器码, 在保持少量 j a v a 语言特性后它也失去了j a v a 的最显著的平台无关的特点。 只能在本地平台 上执行,但是在系统资源紧张的情况下也不失为一种解决的方案。 3 .2 . 2 硬件实现方案 j a v a语言从来就没有意味必须直接在硬件上运行, 现在也表明了这一点。 但是 j v m ( j a v a虚拟机)的废物收集, 线程, 面向 栈,以及目 标管理等特性几乎要占 用 1 m字节左右,并且其代码即使在今天最快的微处理器都只能勉强执行。单纯依 靠软件优化来提升效率有限,而且由于嵌入式系统有限的资源也限制了软件虚拟机 的进一步发展。 在这种情况下,自 然想到了使用j a v a 硬件实现来加速的方案。 硬件 完全实现虚拟机或者至少实现虚拟机中负担最重的解释器部分,由硬件直接执行 j a v a 字节码。因此执行速度能更快,内存消耗量也更少,很合适嵌入式系统的应用 要求。 不过将它在硬件上完全实施是非同一般的困难。已经有很多公司都尝试过生产 一种 “ 全j a v a”的微处理器,包括s u n公司自己,但最终都在某一阶段失败了。 可能这一趋势还会继续。 计算机科学经过了几十年的发展, 并且全世界范围的高校和公司都进行了 研究, 然而对于开发j a v a 、 机器仍然一事无成,这并非偶然。今天, j a v a“ 加速” 芯片从 n a z o m i , z u c o tt o , i n s i l i c o n , o c t e r a以及很多其它公司可以 获得,其中大多数都可 以在硬件上执行3 0 %-7 0 %的j a v a字节码。剩下的代码都在软件上操作,原因很 简单,不这样不行。依照标准的8 0 / 2 0准则, 这些芯片加速了最常用的j a v a指令 的执行, 并对j a v a整体性能有明显的提升。 不过离1 0 0 %的j a v a硬件执行的大话 一- - . . . . . . . . 1 2 第三章 嵌入式系统中实现 l a v a 虚拟机 还差得远。经过最近几年快速发展, j a v a芯片己经稳定在6 0 %-7 0 %的水平上。 而s u n自己已经退出了它j a m 、 芯片的研究。 这里介绍一些目前主要的实现方式: 专用j a v a 处理器:s u n在1 9 9 8 年就推出了j a v a 处理器结构 ( p i c o j a v a ) . 随 后, 其他一些公司 也 推出 过一些专用j a v a 处理器( 如k o m o d o t 3 .a 1 ) 。 这类处理 器 是为了处理j a v a 字节码而设计的, 它们能单独执行j a v a 语言的b y t e c o d e 无需 翻译成别的机器码。 但由于作为一种高级语言, “ 全 a v a ” 处理器实现难度极大。 也缺少成熟的j a v a 操作系统支持,又没有现在的主流操作系统能支持,对用户 现有的大量非j a v a 应用程序也无法兼容执行。 j a v a 协处理器:兼顾了兼容性和效率,现在较多采用的是j a v a 协处理器类型, 相当 多 的 协 处 理 器 采 用 直 接 翻 译 方 式 来 执 行j a v 。 程 序( 比 如j s m a r t i s i j s t a r s ) , 它可以 将j a v a 指令翻译成本地r i s c 指令, 但由 于j a v a 和r 工 s c 是 基于不同体系结构的指令 ( j a v a 为基于堆栈, r 工 s c 为基于寄存器, 执行指令所 需要的操作数需要先若千周期写入内存再读入到寄存器)导致不希望的执行效 率损失。而且,由于与主处理器采用松祸合的连接方式,大大限制了处理器性 能的提高。 处理器的j a v a 扩展:通过在通用处理器内 部增加一套指令,扩展充分利用了原 处理器内的所有硬件资源, 使之可以直接执行j a v a c a r d 指令集。 在硬件成本增 加相当少的情况下得到更高的性能和更好的兼容性,方便的在r 工 s c 和j a v a 之 间无缝切换使用。客户能够在现有应用程序和操作系统上,利用合理的编程, 以最大限度利用两种不同指令集的效率。 j a v a 和嵌入式系统处理器指令集的特点 j a v a 卡系统介绍 .33.l 久甘3. j a v a系统需要根据不同的应用环境采用了不同的规范来定义不同版本的虚拟 机。本文主要针对嵌入式系统的应用,为了实现低功耗、面积小的特性,故而选用 了j 卡系统。 j a v a 卡系统是由几 个部件组成的, 包括j a v a 卡虚拟 机 ( j a v a c a r d v i r t u a l m a c h i n e (3 .7 ) r j a v a 卡 转 换 器 , 终 端 转 载 器以及一个在卡上运行的转载程 序。 参见图3 . 2 , ( j a v a

温馨提示

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

评论

0/150

提交评论