(微电子学与固体电子学专业论文)新型可支持net+il指令的处理器设计.pdf_第1页
(微电子学与固体电子学专业论文)新型可支持net+il指令的处理器设计.pdf_第2页
(微电子学与固体电子学专业论文)新型可支持net+il指令的处理器设计.pdf_第3页
(微电子学与固体电子学专业论文)新型可支持net+il指令的处理器设计.pdf_第4页
(微电子学与固体电子学专业论文)新型可支持net+il指令的处理器设计.pdf_第5页
已阅读5页,还剩62页未读 继续免费阅读

(微电子学与固体电子学专业论文)新型可支持net+il指令的处理器设计.pdf.pdf 免费下载

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

文档简介

摘要 摘要 随着时代的发展,嵌入式设备和可移动设备在我们的日常生活里扮演了越来 越多、越来越重要的角色。因此在桌面领域非常流行的j a v a 技术,也被人们广 泛地应用于在嵌入式方面。但是由于j a v a 是一个基于虚拟机的技术,在嵌入式 上应用效率低下。为此业界设计了很多j a v ac h i p 用于支持j a v a 技术,从而使j a v a 技术在嵌入式领域得到了广泛的应用。 n e t 技术是微软在2 0 0 0 年提出来的一系列技术,其核心框架也是基于虚拟 机的技术,该虚拟机的指令集叫n e ti l 指令集。n e ti l 指令集是栈式指令集, 它共有2 2 0 条指令。现在在桌面领域n e t 足以和j a v a 抗衡。但是当前业界在嵌 入式领域n e t 的普及率明显低于j a v a ,并没有一款可支持n e ti l 指令的处理器。 于是本文设了一个新型的可支持n e ti l 指令的处理器p i c o d o t n e t 来改变现状, 可使n e t 技术在嵌入式设备上的效率大大提高,从而提高n e t 技术的普及率。 本文所设计的p i c o d o t n e t 处理器采用了栈式哈佛结构、六级流水线,并用 微码方式实现指令,同时加入了指令折叠技术,这使得该处理器灵活并具有很强 扩展性,其效率不低于常见的r i s c 体系的c p u ,使其可广泛适用于嵌入式领域。 本文设计的p i c o d o t n e t 结构分为三大块:( 1 ) 外围模块。主要有指令缓存控 制单元,数据缓存控制单元,堆栈缓存管理单元。( 2 ) 核心模块。主要有指令译 码折叠单元,寄存器控制单元,指令执行单元,微码单元,浮点运算单元。( 3 ) 特殊寄存器。主要有p c 寄存器,p s r 状态寄存器等。p i c o d o t n e t 多个模块均是 可配置的,从而可以根据不同的需要来减少芯片的大小。 经应用程序测试,其性能高效,很好地支持了n e ti l 指令,达到了预期的 目标。 关键词:n e t 处理器;c l r ;i l :p i c o d o t n e t a b s t r a c t a b s t r a c t w i t ht h ed e v e l o p m e n to fe m b e d d e dd e v i c e sa n dm o b i l ed e v i c e si n0 1 1 1 d a i l yl i f em o r e a n dm o r ep l a y i n ga ni n c r e a s i n g l yi m p o r t a n tr o l e ,j a v at e c h n o l o g yw h i c hi sv e r y p o p u l a ri nt h ed e s k t o pa r e ah a sa l s ob e e nw i d e l ya p p l i e dt ot h ee m b e d d e da r e a h o w e v e r , t h ea p p l i c a t i o ni nt h ee m b e d d e d a r e ai si n e f f i c i e n tb e c a u s ej a v ai sav i r t u a l m a c h i n e - b a s e dt e c h n o l o g y m a n yc o m p a n i e sd e s i g n e dal o to fj a v ac h i pt os u p p o r t j a v ai ne m b e d d e da r e a n e ti sat e c h n o l o g ym i c r o s o f tr e l e a s e di n2 0 0 0 ,w h o s ec o r ef r a m e w o r ki sa l s ob a s e d o nv i r t u a lm a c h i n et e c h n o l o g y t h ei n s t r u c t i o ns e to f n e tv i r t u a lm a c h i n ei sn a m e da s i li n s t r u c t i o ns e tw h i c hc o n s i s t so f2 2 0i n s t r u c t i o n s h o w e v e r , n e tt e c h n o l o g y w h i c hi sc o m p e t e n tw i t hj a v ai nd e s k t o pa r e ah a sn o tb e e nw i d e l yu s e di ne m b e d d e d a r e ay e t a n dt h e r ei sn op r o c e s s o rw h i c hc a ns u p p o r t n e ti li n s t r u c t i o ns e t t o r e s o l v et h ei s s u e ,w ed e s i g n e dan e wp r o c e s s o rp i c o d o t n e tw h i c hc a l ls u p p o r t n e ti l i n s t r u c t i o n sd i r e c t l yi nh a r d w a r e t h i sp r o c e s s o ri sb a s e do ns t a c ks t r u c t u r ew i t ha6 - s t a g ep i p e l i n ea n du s e sm i c r o c o d e t oi m p l e m e n ti n s t r u c t i o n sa n di n s t r u c t i o nf o l d i n gt e c h n o l o g y , w h i c hm a k e st h e p r o c e s s o rs m a r ta n dg r e a te x t e n s i b l et ob eu s e dw i l d l yi ne m b e d d e da r e a i t s p e r f o r m a n c ei sn o tl o w e r t h a nc o m m o nr i s cp r o c e s s o r s p i c o d o t n e tc o n s i s t so f t h r e ec o m p o n e n t s :( 1 ) p e r i p h e r a lc o m p o n e n t sm a i n l y c o n s i s t i n go fi n s t r u c t i o nc a c h eu n i t ,d a t ac a c h eu n i t ,s t a c kc a c h em a n a g e m e n t u n i t ( 2 ) c o r ec o m p o n e n t sm a i n l yc o n s i s t i n go f i n s t r u c t i o nd e c o d i n ga n df o l d i n gu n i t , r e g i s t e rc o n t r o lu n i t ,i n s t r u c t i o ne x e c u t i o nu n i t ,m i c r o c o d eu n i ta n df l o a t - p o i n t u n i t ( 3 ) s p e c i a lr e g i s t e r sm a i n l yc o n s i s t i n go f p cr e g i s t e r , p s rr e g i s t e r s o m e c o m p o n e n t sa r ec o n f i g u r a b l ea c c o r d i n gw i t hr e q u i r e m e n t s w i t hf u l la p p l i c a t i o nt e s t s ,t h ef u n c t i o n a l i t ya n dt h ep e r f o r m a n c ea r ep r o v e dt o s u p p o r t n e ti li n s t r u c t i o n sv e r yw e l l k e y w o r d s :n e tp r o c e s s o r ;c l r ;i l ;p i c o d o t n e t 学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独 立进行研究所取得的研究成果。除了文中特别加以标注引用 的内容外,本论文不包含任何其他个人或集体已经发表或撰 写的成果作品。本人完全意识到本声明的法律后果由本人承 担。 作者签名:杰讳加呷年6 月年日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保障、使用学位论 文的规定,同意学校保留并向有关学位论文管理部门或机 构送交论文的复印件和电子版,允许论文被查阅和借阅。 本人授权省级优秀硕士学位论文评选机构将本学位论文 的全部或部分内容编入有关数据库进行检索,可以采用影 印、缩印或扫描等复制手段保存和汇编本学位论文。 本学位论文属于 1 、保密口,在年解密后适用本授权书。 2 、不保密d 。 ( 请在以上相应方框内打“v ”) j _ - 、 作者签名:珙辛伟易竹月午日 导师签名:6 只p b 第一章p i c o d o t n e t 的研究背景和意义 第一章p i c o d o t n e t 的研究背景和意义 本文仿照p i c o j a v a 设计了个新型的可支持n e ti l 指令的c p up i c o d o t n e t , 该c p u 可以帮助n e t 像j a v a 一样在嵌入式领域得到广泛的应用。 在此,本章首先介绍j a v a 和n e t 语言的产生历程和在业界的影响力,再由 此分析j a v a 和n e t 在嵌入式领域面临的问题,和业界的解决方案。最后介绍了 p i c o d o t n e t 设计的意义。 1 1 课题研究的背景 1 1 1 计算机语言的发展历程 随着计算机技术的不断发展和需求的不断变化,计算机编程语言也在不断地 发展着。目前,计算机语言的发展现在已经经历- f _ - 个阶斟l 】: ( 1 ) 机器语言阶段。计算机发展之初,程序员只能使用0 ,1 组成的指令序列 写程序交给计算机执行。这种语言就是机器语言。机器语言是针对特定 型号计算机而设计的语言,故而运算效率是所有语言中最高的。但是由 于每台计算机的指令系统往往各不相同,所以在一台计算机上执行的程 序,要想在另一台计算机上执行,必须另编程序,造成了重复工作,效 率低下。 ( 2 ) 汇编语言阶段。为了减轻使用机器语言编程的痛苦,人们进行了一种有 益的改进:用一些简洁的英文字母、符号串来替代一个特定的指令的二 进制串,比如,用“a d d ”代表加法,“m o v 代表数据传递等等,这 样一来,人们很容易读懂并理解程序在干什么,纠错及维护都变得方便 了,这种程序设计语言就称为汇编语言,即第二代计算机语言。然而计 算机是不认识这些符号的,这就需要一个专门的程序,专门负责将这些 符号翻译成二进制数的机器语言,这种翻译程序被称为汇编程序。汇编 语言同样十分依赖于机器硬件,移植性不好,但效率仍十分高,针对计 算机特定硬件而编制的汇编语言程序,能准确发挥计算机硬件的功能和 特长,程序精炼而质量高,所以至今仍是一种常用而强有力的软件开发 工具。 ( 3 ) 高级语言阶段。从最初与计算机交流的痛苦经历中,人们意识到,应该 设计一种这样的语言,这种语言接近于数学语言或人的自然语言,同时 第一章p i c o d o t n e t 的研究背景和意义 又不依赖于计算机硬件,编出的程序能在所有机器上通用。经过努力, 1 9 5 4 年,第一个完全脱离机器硬件的高级语言- f o r t r a n 问世了,4 0 多年来,共有几百种高级语言出现,有重要意义的有几十种,影响较大、 使用较普遍的有f o r t r a n 、a l g o l 、c o b o l 、b a s i c 、l i s p 、s n o b o l 、 p l l 、p a s c a l 、c 、p r o l o g 、a d a 、c + 十、v c 、v b 、d e l p h i 等。后来高 级语言又发展到对业界非常有影响的j a v a 、n e t 语言。 1 1 2 j a v a 语言的发展历程和特点 j a v a 语言是计算机语言发展到高级语言阶段出现的一种优秀语言,也是近年 来非常流行的一种语言,是一种简单的面象对象的分布式的解释的健壮的安全的 结构中立的可移植的性能很优异的多线程的动态的语言。j a v a 语言最是诞生于 1 9 9 1 年,起初被称为o a k 语言,是s u n 公司为一些消费性电子产品而设计的 一个通用环境。他们最初的目的只是为了开发一种独立于平台的软件技术,而且 在网络出现之前,o a k 可以说是默默无闻,甚至差点天折。但是,网络的出现 改变了o a k 的命运。 在j a v a 出现以前,i n t e m e t 上的信息内容都是一些乏味死板的h t m l 文档。 他们迫切希望能在w e n 中看到一些交互式的内容,开发人员也极希望能够在 w e b 上创建一类无需考虑软硬件平台就可以执行的应用程序,当然这些程序还 要有极大的安全保障。对于用户的这种要求,传统的编程语言显得无能为力,面 s u n 的工程师敏锐地察觉到了这一点,从1 9 9 4 年起,他们开始将o a k 技术应 用于w e b 上,并且开发出了h o t j a v a 的第一个版本。当s u n 公司1 9 9 5 年正式 以j a v a 这个名字推出的时候,j a v a 语言很快成为业界的明星。 j a v a 语言具有以下特点1 2 】: ( 1 ) 简单。 j a v a 最初是为对家用电器进行集成控制而设计的一种语言,因此它必须 简单明了。j a v a 语言的简单性主要体现在以下三个方面: a j a v a 的风格类似于c + + ,因而c h 程序员是非常熟悉的。从某种意 义上讲,j a v a 语言是c 及c + + 语言的一个变种,因此,c + + 程序员可 以很快就掌握j a v a 编程技术。 b j a v a 摒弃了c + + 中容易引发程序错误的地方,如指针和内存管理。 c j a v a 提供了丰富的类库。 ( 2 ) 面向对象。 面向对象可以说是j a v a 最重要的特性。j a v a 语言的设计完全是面向对象 2 第一章p i c o d o t n e t 的研究背景和意义 的,它不支持类似c 语言那样的面向过程的程序设计技术。j a v a 支持静 态和动态风格的代码继承及重用。单从面向对象的特性来看,j a v a 类似 于s m a l l t a l k ,但其它特性、尤其是适用于分布式计算环境的特性远远超 越了s m a l l t a 墩。 ( 3 ) 分布式。 j a v a 包括一个支持h t t p 和f t p 等基于t c p i p 协议的子库。因此,j a v a 应用程序可凭借u r l 打开并访问网络上的对象,其访问方式与访问本地 文件系统几乎完全相同。为分布环境尤其是i n t e m e t 提供动态内容无疑 是一项非常宏伟的任务,但j a v a 的语法特性却使我们很容易地实现这项 目标。 ( 4 ) 健壮。 j a v a 致力于检查程序在编译和运行时的错误。类型检查帮助检查出许多 开发早期出现的错误。j a v a 自己操纵内存减少了内存出错的可能性。j a v a 还实现了真数组,避免了覆盖数据的可能。这个功能特征大大缩短了开 发j a v a 应用程序的周期。j a v a 提供n u l l 指针检测数组边界检测异常出口 字节代码校验 ( 5 ) 结构中立。 另外,为了建立j a v a 作为网络的一个整体,j a v a 将它的程序编译成一种 结构中立的中间文件格式。只要有j a v a 运行系统的机器都能执行这种中 间代码。现在,j a v a 运行系统有s o l a r i s 2 4 ( s p a r c ) ,w i n 3 2 系统( w i n d o w s 9 5 和w i n d o w s n t ) 等j a v a 源程序被编译成一种高层次的与机器无关的 b y t e c o d e 格式语言,这种语言被设计在虚拟机上运行,由机器相关的运 行调试器实现执行。 ( 6 ) 安全。 j a v a 的安全性可从两个方面得到保证。一方面,在j a v a 语言里,象指针 和释放内存等c h 功能被删除,避免了非法内存操作。另一方面,当j a v a 用来创建浏览器时,语言功能和一个浏览器本身提供的功能结合起来, 使它更安全。j a v a 语言在你的机器上执行前,要经过很多次的测试。它 经过代码校验,检查代码段的格式,检测指针操作,对象操作是否过分 以及试图改变一个对象的类型。 ( 7 ) b y t e c o d e 校验。 如果b y t e c o d e 通过代码校验,没有返回错误,我们可知道:代码没有堆 栈上溢出和下溢出所有操作代码参数类型都是正确的没有发生非法数据 转换,如将整数转换成指针。访问对象操作是合法的 3 第一章p i c o d o t n e t 的研究背景和意义 ( 8 ) 类装载。 c l a s s l o a d e r 通过将本机类与网络资源类的名称分开,来保持安全性。因 为调入类时总要经过检查,这样避免了特洛伊木马现象的出现。从网络 上下载的类被调进一个与源相关的私有的名字域。当一个私有类访问另 一个类时,b u i l d i n ( 本机类) 首先被检查,然后检查相关的类。这样就避 免了破坏本机类情况的出现。 ( 9 ) 可移植的。 同体系结构无关的特性使得j a v a 应用程序可以在配备了j a v a 解释器和运 行环境的任何计算机系统上运行,这成为j a v a 应用软件便于移植的良好 基础。但仅仅如此还不够。如果基本数据类型设计依赖于具体实现,也 将为程序的移植带来很大不便。例如在w i n d o w s 3 1 中整数( i n t e g e r ) 为 16 b i t s ,在w m d o w s 9 5 中整数为3 2 b i t s ,在d e c a l p h a 中整数为6 4 b i t s , 在i n t e l 4 8 6 中为3 2 b r s 。通过定义独立于平台的基本数据类型及其运算, j a v a 数据得以在任何硬件平台上保持一致。j a v a 语言的基本数据类型及 其表示方式如下:b y t e 8 b i t 二进制补码s h o a l6 b i t 二进制补码i n t 3 2 b i t 二进制补码l o n 9 6 4 b i t 二进制补码f l o a t 3 2 b i t i e e e 7 5 4 浮点数 d o u b l e 3 2 b i t l e e e 7 5 4 浮点数c h a r l 6 b i t u n i c o d e 字符 在任何j a v a 解释器中,数据类型都是依据以上标准具体实现的。因为几 乎目前使用的所有c p u 都能支持以上数据类型、8 - - - 6 4 位整数格式的补 码运算和单双精度浮点运算。j a v a 编译器本身就是用j a v a 语言编写的。 j a v a 运算系统的编制依据p o s i x 方便移植的限制,用a n s i c 语言写成。 j a v a 语言规范中也没有任何”同具体实现相关”的内容。 ( 1 0 ) 解释的 j a v a 解释器( 运行系统) 能直接运行目标代码指令。链接程序通常比编译 程序所需资源少,所以程序员可以在创建源程序上花上更多的时间。 ( 1 1 ) 高性能 如果解释器速度不慢,j a v a 可以在运行时直接将目标代码翻译成机器指 令。s u n 用直接解释器一秒钟内可调用3 0 0 0 0 0 个过程。翻译目标代码的 速度与c c + + 的性能没什么区别。 ( 1 2 ) 多线程 j a v a 的多线程功能使得在一个程序里可同时执行多个小任务。线程一一 有时也称小进程一一是一个大进程里分出来的小的独立的进程。因为 j a v a 实现的多线程技术,所以比c 和c + + 更键壮。多线程带来的更大的 好处是更好的交互性能和实时控制性能。当然实时控制性能还取决于系 4 第一章p i c o d o t n e t 的研究背景和意义 统本身( c n r x ,w i n d o w s ,m a c i n t o s h 等) ,在开发难易程度和性能上都比单 线程要好。任何用过当前浏览器的人,都感觉为调一副图片而等待是一 件很烦恼的事情。在j a v a 里,你可用一个单线程来调一副图片,而你可 以访问h t m l 里的其它信息而不必等它。 ( 1 3 ) 动态 j a v a 的动态特性是其面向对象设计方法的扩展。它允许程序动态地装入 运行过程中所需要的类,这是c + + 语言进行面向对象程序设计所无法实 现的。在c h 程序设计过程中,每当在类中增加一个实例变量或一种成 员函数后,引用该类的所有子类都必须重新编译,否则将导致程序崩溃。 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 誊 2 第一章p i c o d o t n e t 的研究背景和意义 1 1 3 业界现在面临的问题 图卜l 标准j a v a 的系统结构 正是由于这些优点,使得j a v a 得到了广泛应用,并且应用领域在不断的扩 展。现在很多嵌入式领域已经广泛使用j a v a 技术,并且已经应用于智能卡、项 置盒、专用游戏机、手持电脑、w e b 电话、p d a 、交互式数字电视、网络汽车、 无线通讯、门径控制等有联网要求的消费式电子系统。目前采用j a v a 技术的消 费电子产品已被广为接受,其中手持设备就有7 8 亿台( 据o v u m ,2 0 0 6 年6 月资 料显示) ,即便如此,越来越复杂的应用对可以运行j a v a 的手持设备和其他设备 提出了更高的性能要求。但也正是j a v a 的基于虚拟机的特点反而成为制约其在 嵌入式领域大规模广泛应用的因素。这是因为嵌入式领域的c p u 计算能力相较 桌面领域比较弱,以及r a m 和r o m 的大小远不能和桌面相比,这时再由虚拟 机运行时动态将j a v a 指令集解释成为宿主机的真实指令,效率是比较低的。 业界现阶段的解决方案 针对以上问题,为了能够在嵌入式领域要想大范围使用j a v a 程序,业界通 常有以下几种解决方案: ( 1 ) 通用c p u + o s + j a v a 软件解释器,软件解释执行j a v a 指令。这是一种纯 软件的解决方案,效率低下。 ( 2 ) 通用c p u + o s + j a v aj i t ( j u s t i n t i m e ) 编译器,按块编译执行j a v a 指令。这 也是一种纯软件的解决方案,但是效率比上一种高。因为j a v aj i t 在 编译时就将j a v ab y t e c o d e 翻译成了针对本地通用c p u 的指令,就相 当于执行本地指令的普通程序。这种方案效率变高了,但是也失去 了j a v a 跨平台的特点。要想在另外一个平台使用改程序,就得使用 j a v aj i t 针对该平台重新编译一下。 ( 3 ) j a v a 加强c p u + o s + 特殊的j a v a 编译器,充分使用j a v a 加强硬件的优势。 这是一种软硬件结合的解决方案。这种解决方案使用支持j a v a 指令 的c p u 做协处理器, ( 4 ) j a v a 硬件c p u ,本地支持执行j a v a 指令,效率最高。 目前的台式j a v a 系统是基于软件虚拟机实现的,软件解析执行j a v a 指令, 如方式( 1 ) 和方式( 2 ) ;但嵌入式的硬件能力远远不如p c ,r o m 、r a m 资源非常 有限,用软件实现j a v a 虚拟机,需要软件j a v a 指令解释器,将j a v a 指令转换到 本地c p u 的指令集,由于其速度慢、实现虚拟机本身占用内存资源,因此不适 6 第一章p i c o d o t n e t 的研究背景和意义 合在资源有限的硬件中应用。 方式( 3 ) 要求c p u 硬件实现部分j a v a 指令,它需要特殊的编译器来充分发挥 j a v a 加强c p u 的功能。 方式( 4 ) 是最终的解决方法,j a v a 指令的执行不再需要先转换到宿主c p u 的 本地指令集上去,是最有效率的方法,同时,它不占用r a m 等软件资源,可以 给应用程序提供更多的资源。 目前业界针对这几种解决方案,已经有几种实际的产品: ( 1 ) j a z e l l e t 3 1 j a z e l l e 是a r m 体系结构的一种相关技术,用于在处理器指令层次对 j a v a 加速。a r m 公司推出的j a z e l l e 技术通过增加a r m 指令集使a r m 处理器为j a v a 虚拟机提供优化的执行能力。 a r m 还开发出一项技术,j a z e l l ed b x ( d i r e c tb y t e c o d ee x e c u t i o n ) ,允 许它们在某些架构的硬件上加速执行j a v ab y t e c o d e ,就如其他执行模式 般,当呼叫一些无法支援b y t e c o d e s 的特殊软件时,能提供某些b y t e c o d e s 的加速执行。它能在现存的a r m 与t h u m b 模式之间互相执行。 后来a r m 公司在2 0 0 5 年加利富尼亚州旧金山市召开的j a v a o n e 大会上 发布了其全新的j a z e l l e r c t 技术,该技术能在移动电话和消费电子产 品等众多应用终端上显著地降低j a v a 应用程序对内存的占用空间,同时 提高性能并降低功耗。a r m j a z e l l er c t ( 运行时间编译器目标,r u n t i m e c o m p i l e rt a r g e t ) 架构扩展集扩展了j a z e l l e 技术范围,使其涵盖了运行时 间和提前时间编译器技术的最优化,如即时编译( j u s ti nt i m ec o m p i l e r , j i t ) 和动态适应编译( d a c ) ,并同时支持所有领先的j a v a t m 技术和其 他执行环境。a r mj a z e l l er c t 技术使j a v a 开发商能够在实现更高的性 能的同时避免静态编译下常见的代码过盛现象。 j a z e l l er c t 技术使运行时间编译器以获取最高的性能为目标,同时将代 码密度最大化。在采用j a z e l l er c t 技术后,代码存储器的占用空间降低 了多达三倍,使得对内存的访问减少了,从而显著地提高了电池的寿命。 这一全新的架构扩展集丰富了之前世界上最普遍使用的硬件加速技术 j a z e l l ed b x ( 直接字节码执行,d i r e c tb y t e c o d ee x e c u t i o n ) 技术。同时, a r mj a z e l l e 架构扩展集在移动设备上实现了非常高速的性能表现,快速 的响应和顺畅的软件运行,从而给用户带来了全新的使用体验。 首颗具备j a z e l l e 技术的处理器是a r m 9 2 6 e j s :j a z e l l e 以一个英文字母 。j t 标示于c p u 名称中。它用来让手机制造商能够加速执行j a v am e 的游 戏和应用程式,也因此促使了这项技术不断地发展。 7 第一章p i c o d o t n e t 的研究背景和意义 ( 2 ) p i c o j a v a t 4 1 1 9 9 8 年初,s u n 公司公布p i c o j a v a 的核心规范。随后,m m 、n e c 、f u j i t s u 等公司宣布将开发符合p i c o j a v a 核心规范的j a v a 芯片用于嵌入式应用系 统。同年底,s u n 公司推出了价格低廉的用于顶置盒、工业数据采集设 备、蜂窝电话等嵌入式应用系统的m i c r o j a v a 芯片和用于台式机的 u l t r a j a v a 芯片。 s u n 公司p i c o j a v a 芯片内核,使用硬件直接执行大部分m 指令并通 过m i c r o e o d e 和s o f t w a r et r a p s 实现复杂指令,采用监视c a c h e 支持同步 和特殊指令实现对象应用的垃圾回收。该芯片包含了一个3 2 位整数a l u ( 算术逻辑单元) 、一个可选的3 2 位f p u ( 浮点单元) 、一个指令高速缓 存单元、堆栈管理器、数据高速缓存单元,每个大到1 6 k 字节的指令和 数据高速缓存及总线接口单元。在巨型单元库中,增加了边界扫描、允 许对用户p c i 总线端口进行定制等功能。它的原始内核完全采用静态设 计,采用0 2 5 1 a mc m o s 工艺,运行速度达到1 0 0 m hz 。但是,s u n 公 司现在不再生产和销售p i c o j a v a 芯片,它通过s u nc o m m u n i t ys o u r c e l i c e n s i n g ( s c s l ) 项目推广其i p 。感兴趣的合作伙伴,如芯片制造商 和软件工具设计人员可以公开存取其设计档案,必要的话可以获得授权。 富士通公司现在是唯一获得许可生产p i c o j a v a 、并公开提供芯片的公司。 现在处于样品供应阶段,该公司的产品m b 9 2 9 0 1 包括:f p u 、指令和数 据高速缓存、一个同步d r a m 接口、一个中断控制器、三个通用定时器 计数器,用于管理看门狗和产生o s ( 操作系统) 时钟定时器、i o 端口。 还有一个负责管理系统复位和时钟控制的功能块。现在,0 2 5 p r o 工艺、 工作频率6 6 m h z 的芯片,其性能等同于9 4 e m b e d d e d c a f f e i n e m a r k s m h z ,功耗为5 4 m w m h z ,下一产品系列将采用0 18 肛r n 工艺,其工作频率提高到1 0 0 m h z 以上,并且增加了边界扫描支持。 ( 3 ) j o p 5 】 j o p 是j a v ao p t i m i z e dp r o c e s s o r 的缩写。它是奥地利维也纳大学推出的 一个处理器设计,用于硬件实现j a v a 虚拟机。j o p 的速度比p i c o j a v a l i 和j a z e l l e 都慢,但是由于该处理器设计比较灵活小巧,因此可以在低成 本f p g a 例如a l t c r a ( a c e x1k 5 0 ,c y c l o n e ) a n dx i l i n x ( s p a r t a ni ia n d s p a r t a n - 3 ) 上实现。 1 3 课题研究的意义 8 第一章p i c o d o t n e t 的研究背景和意义 由上可见,j a v a 领域已经出现了j o p , p i c o j a v a 等众多处理器可直接支 持j a v a 虚拟机指令。而在n e t 方面出现的处理器却很少。随着微电子技术的发 展,硬件的性能不断提高,统一、通用、高效的应用于嵌入设备软件开发的高级 语言就自然成为一种趋势,而n e t 正是适应这种趋势的最佳语言。其次,n e t 语言本身特别适用于嵌入式设备,很多特点都使n e t 成为嵌入式应用的理想语 言。n e t 语言的可移植性、安全性、动态性等特性都非常适合嵌入设备软件的开 发。再次,n e t 在网络中已经取得的巨大成功也有利于嵌入技术。很多嵌入设备 都要联网,n e t 的优势也是显而易见的。 本文针对这种情况参照p i c o j a v a 设计了一个新型的可支持n e ti l 指令的处 理器p i c o d o t n e t 。该处理器基于栈式结构,很好的耦合了n e ti l 指令集的执行方 式。又采用微码序列和指令折叠的方式,使得处理器具有高效和优良扩展性的优 点。 9 第二章p i c o d o t n e t 指令系统和体系结构设计 第二章p i c o d o t n e t 指令系统和体系结构设计 p i c o d o t n e t 的设计用于硬件上直接支持现有的n e ti l 指令集。因此本章首先 介绍n e t 相关技术以及n e ti l 指令集的概念,然后再分析p i c o d o t n e t 的对i l 指 令集的实现方式及其采用的体系结构。 2 1 n e t 技术简介 n e t 技术是微软在2 0 0 0 年6 月发布的微软新的因特网战略,由一系列技术 组成,这些技术统称为n e tf r a m e w o r k 。n e t 起初被称为n g w s ( n e x tg e n e r a t i o n w i n d o w ss e r v i c e ) ,旨在创建一个下一代w i n d o w s 服务的基于因特网的平台。 2 1 1 n e tf r a m e w o r k 架构 n e tf r a m e w o r k 是支持生成和运行下一代应用程序和x m lw e bs e r v i c e s 的内部w i n d o w s 组件【6 】。n e tf r a m e w o r k 旨在实现下列目标: ( 1 ) 提供一个一致的面向对象的编程环境,而无论对象代码是在本地存储和 执行,还是在本地执行但在i n t e m e t 上分布,或者是在远程执行的。 ( 2 ) 提供一个将软件部署和版本控制冲突最小化的代码执行环境。 ( 3 ) 提供一个可提高代码( 包括由未知的或不完全受信任的第三方创建的代 码) 执行安全性的代码执行环境。 ( 4 ) 提供一个可消除脚本环境或解释环境的性能问题的代码执行环境。 ( 5 ) 使开发人员的经验在面对类型大不相同的应用程序( 如基于w i n d o w s 的应用程序和基于w e b 的应用程序) 时保持一致。 ( 6 ) 按照工业标准生成所有通信,以确保基于n e tf r a m e w o r k 的代码可与 任何其他代码集成。 n e tf r a m e w o r k 具有两个主要组件:公共语言运行库( c l r ) 和n e t f r a m e w o r k 类库( f c l ) 。下图就是n e tf r a m e w o r k 的架构。 1 0 豳2 - i n e tf r a m e w o r k 架构 公共语言运行库是n e t f r a m e w o r k 的基础。您可以将运行库看作一个在执 行时管理代码的代理,它提供内存管理、线程管理和远程处理等核心服务,并且 还强制实旌严格的类型安全以及可提高安全性和可靠性的其他形式的代码准确 性。事实上,代码管理的概念是运行库的基本原则。以运行库为目标的代码称为 托管代码,而不以运行库为目标的代码称为非托管代码。n e tf r a m e w o r k 的另 一个主要组件是类库,它是一个综合性的面向对象的可重用类型集合,您可以使 用它开发多种应用程序,这些应用程序包括传统的命令行或图形用户界面( g u i ) 应用程序,也包括基于a s e n e t 所提供的最新创新的应用程序( 如w e b 窗体 和x m l w e b s e r v i c e s ) 。 n e tf r a m e w o r k 可由非托管组件承载,这些组件将公共语言运行库加载到 它们的进程中并启动托管代码的执行。从而创建一个可以同时利用托管和非托管 功能的软件环境。n e tf r a m e w o r k 不但提供若干个运行库宿主,而且还支持第 三方运行库宿主的开发。 例如,a s e n e t 承载运行库以为托管代码提供可伸缩的服务器端环境。 a s p n e t 直接使用运行库以启用a s p n e t 应用程序和x m l w c bs e r v i c e s ( 本 主题稍后将对这两者进行讨论) 。 i n t e r n c t e x p l o r e r 是承载运行库( 以m i m e 类型扩展的形式) 的非托管应用 程序的一个示例。使用i n t c m e te x p l o r e r 承载运行库使您能够在h t m l 文档中 嵌入托管组件或w m d o w s 宙体控件。以这种方式承载运行库使得托管移动代码 ( 类似于m i c r o s o f t a c t i v e x 控件) 成为可能,不过它需要进行重大改进( 如 不完全受信任的执行和独立的文件存储) ,而这种改进只有托管代码才能提供。 第二章p i c o d o t n e t 指令系统和体系结构设计 下面的插图显示公共语言运行库和类库与应用程序之间以及与整个系统之 间的关系。该插图还显示托管代码如何在更大的结构内运行。 212n e tf r a m e w o r k 环境 a 图2 - 2n e tf r a m e w o r k 运行环境 下面的章节将更加详细地描述n e tf r a m e w o r k 的主要组件和功能 21 3 公共语言运行库的功能 公共语言运行库管理内存、线程执行、代码执行、代码安全验证、编译以及 其他系统服务。这些功能是在公共语言运行库上运行的托管代码所固有的。 翔藿 墨三苎j 竺! ! 堂塑全墨堑塑苎墨! 塑丝生 图2 - 3n e tc u 架构 至于安全性,取决于包括托管组件的来源( 如i n t e r a c t 、企业网络或本地计 算机) 在内的一些因素,托管组件被赋予不同程度的信任。这意味着即使用在同 一活动应用程序中,托管组件既可能能够执行文件访问操作、注册表访问操作或 其他须小心使用的功能,也可能不能够执行这些功能。 运行库强制实摘代码访问安全。例如,用户可以相信嵌入在网页中的可执行 文件能够在屏幕上播放动画或唱歌,但不能访问他们的个人数据、文件系统或网 络。这样,运行库的安全性功能就使通过i n t e m e t 部署的合法软件能够具有特 别丰富的功能。 运行库还通过实现称为通用类型系统( c t s ) 的严格类型验证和代码验证基 础结构来加强代码可靠性。c t s 确保所有托管代码都是可以自我描述的。各种 m i c r o s o i t 和第三方语言编译器生成符合c t s 的托管代码。这意味着托管代码 可在严格实施类型保真和类型安全的同时使用其他托管类型和实例。 此外,运行库的托管环境还消除了许多常见的软件问题。例如,运行库自动 处理对象布局并管理对对象的引用,在不再使用它们时将它们释放。这种自动内 存管理解决了两个最常见的应用程序错误:内存泄漏和无效内存引用。 运行库还提高了开发人员的工作效率。例如,程序员可以用他们选择的开发 语言编写应用程序,却仍能充分利用其他开发人员用其他语言编写的运行库、类 库和组件。任何选择以运行库为目标的编译器供应商都可以这样做。以n e t f r a m e w o r k 为目标的语言编译器使得用该语言编写的现有代码可以使用n e t f r a m e w o r k 的功能,这大大减轻了现有应用程序的迁移过程的工作负担。 第二章p i c o d o t n e t 指令系统和体系结构设计 尽管运行库是为未来的软件设计的,但是它也支持现在和以前的软件。托管 和非托管代码之间的互操作性使开发人员能够继续使用所需的c o m 组件和 d l l 。 运行库旨在增强性能。尽管公共语言运行库提供许多标准运行库服务,但是 它从不解释托管代码。一种称为实时( j i t ) 编译的功能使所有托管代

温馨提示

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

评论

0/150

提交评论