




已阅读5页,还剩57页未读, 继续免费阅读
(计算机应用技术专业论文)arm平台下linux内核移植技术的分析研究与应用.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
昆明理工大学学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下( 戏 我个人) 进行研究王作骈取得的成果。除文中已经注明葶l 用的内 容外,本论文不合任何其他个人或集体已经发表或撰写过的研究成 果。对本文的研究做出重要贾献旃个人和集体,均已在论文中作了碉 确的说明并表示了谢意。本声明的法律结果由本人承担。 学位论文作者签名:孑袭鼻争 掰辅:? 舻铲年多问6 留 关于论文使用授权的说明 本人完金了解昆明理工大学有关保舞、使用学位论文的规定,即: 学校有权保留、送交论文的复印件,允许论文被查阗,学校可淡公布 论文的金部或部分内容,可以采月影印或其他复剁手段保存论文。 ( 保密论文在解密后应遵守) 导师签名:二墨上娶二骣论文作者签名: 效 日 期:笔竺! 兰垒垂魍丝照 昆明理工大学研究生院 摘要 硕士学位论文 嵌入式l i n u x 是将普通l i n u x 操作系统进行裁剪、修改,使之 能在嵌入式计算机系统上运行的一种操作系统。由于兼有l i n u x 和 嵌入式系统的优点,嵌入式l i n u x 系统有着巨大的市场前景和商业 机会。由于嵌入式系统涉及到种类繁多的嵌入式处理器,所以目前 嵌入式l i n u x 的应用的一个热点就是将l i n u x 内核移植到一些典型 的微控制器和微处理器上。 a r m 平台是目前使用广泛的主流的嵌入式处理器体系结构。因 此也是l i n u x 内核移植的一个重点j 本文详细论述了作者在硕士学 位论文工作期间在嵌入式l i n u x 操作系统开发工作领域里所做的研 究和实践。主要围绕着l i n u x 内核向a r m 平台移植中几个核心技术 展开讨论。首先对a r m 体系结构的特点进行了详细的归纳,总结 和分析,然后针对l i n u x 内核中所提供的和a r m 平台移植相关的代 码如内存管理,中断控制,启动过程等部分进行了深入的分析研究, 并阐述了在移植中比较重要的b o o t l o a d e r 的实现原理和移植方法。 最后,在本人对这些知识的总结和几个典型的移植实例的理解基础 上,提出了一个假想的移植模型,以作为移植工作展开的参考。 关键词:嵌入式系统,a r m 体系结构,内核移植,嵌入式处理器, 昆明理工大学研究生院 a b s t r a c t 硕士学位论文 e m b e d d e dl i n u xi sa no p e r a t i o ns y s t e mw h i c hi sc u to f ra n dm o d i f i e df r o m c o m m o nl i n u x a n dw h i c hc a r lr u no ne m b e d d e dc o m p u t e rs y s t e m s i n c ei th a st h e a d v a n t a g e sf r o mb o t hl i n u xa n de m b e d d e ds y s t e m ,e m b e d d e dl i n u xh a sl a r g e m a r k e tp r o s p e c ta n dc o m m e r c i a l o p p o r t u n i t y a tp r e s e n t , o n e o ft h ef o c u s a p p l i c a t i o n s f o rt h ee m b e d d e dl i n u xi s p o r t i n g t h el i n u xk e r n e lt o r 1 d _ a m i c r o c o n t r o l l e ro rm i c r o p r o c e s s o r n o wd a y st h e a r m ( a d v a n c e d r i s c m a c h i n e ) i s am a i n s t r e a mc p u a r c h i t e c t u r ef o re m b e d d e ds y s t e ma n dh a v eb e e nu s e d b r o a d l y t h e r e f o r et h e d e v e l o p e r sp l a y as p e c i a le m p h a s e sa tp o r t i n gl i n u xk e r n e lt oa r m c p u t h i st h e s i s p r e s e n t s t h ea u t h o r sw o r ki n d e v e l o p m e n to fm ee m b e d d e dl i n u xo p e r a t i n g s y s t e mf o rh i sg r a d u a t ed e g r e e m o s to f t h et h e s i sf o c u s 也ei m p o r t a n t t e c h n i q u e s 砒 t h e p o r t i n gt h el i n u x k e r n e lt oa r m p l a t f o r m f i r s tt h et h e s i sg i v eai n t r o d u c t i o nt o t h ef e a t u r e so ft h ea r ma r c h i t e c t u r ea n dh a r d w a r eo r g a n i z a t i o n a f l e r w a r dt h e t l l e s i sm a k ead e t a i l e da n a l y s i sa tt h el i n u xk e r n e ls o u l eg o d ea n d t e c h n i q u e sf o r p r o t i n gl i n u x t oa r m c p u ,s u c h a sm e m o r y m a n a g e m e n t ,i n t e r r u p th a n d l e ,k e r e e l s s t a r t u pp r o c e d u r ea n db o o t l o a d e r a “a s t ,b a s i n gt h e s ed i s c u s s i o na n da n a l y s i s ,t h e t h e s i sp r e s e n tat i e r i t i o u s1 1 1 0 d e la sar e f e r e n e ef o rt h e d e v e l o p e r sw h ow a n tt o p o r t i n gl i n u xk e r n e lt oaa r mp l a f f o r m k e y w o r d s :e m b e d d e ds y s t e m ,a r ma r c h i t e c t u r e ,l i n u xk e r n e lp o r t i n g , e m b e d d e d p r o c e s s o r 2 昆明理工大学研究生院 第一章绪论 硕士学位论文 1 1 a r m 在嵌入式系统中的应用 1 1 1嵌入式系统的概念 嵌入式系统是以应用为中心,以计算机技术为基础、软硬件可裁剪、适应应用系统对 功能、可靠性、成本、体积、功耗严格要求的专用计算机系统i l j 。嵌入式系统是将先进的 计算机技术、半导体技术和电子技术等各个行业的具体应用相结合后的产物,这一点就决 定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。 嵌入式系统在应用数量上远远超过了各种通用计算机系统。一台通用计算机的外部设 备中就包含了5 1 0 个嵌入式微处理器,键盘、鼠标、软驱、硬盘、显示卡、显示器、网卡、 m o d e m 、声卡、打印机、扫描仪、数字相机、u s b 集线器等均是由嵌入式处理器控制的。 在制造工业、过程控制、通讯、仪器、仪表、汽车、船舶、航空、航天、军事装备、消费 类产品等方面更是嵌入式计算机的应用领域的重点。 嵌入式系统是一个分散的工业,充满了竞争、机遇与创新,没有哪一个系列的处理器 和操作系统能够垄断全部市场。即便在体系结构上存在着主流,但各不相同的应用领域决 定了不可能由少数公司、少数产品垄断全部市场。因此嵌入式系统领域的产品和技术,必 然是高度分散的。另外,社会上的各个应用领域是在不断向前发展的,要求其中的嵌入式 处理器核心也同步发展,这也构成了推动嵌入式工业发展的强大动力。 1 1 2a r m 的历史“。 a r m ( a d v a n c e dr i s cm a c h i n e s ) 是种用于微控制器,微处理器领域的r i s c 处理器 系统结构,纵观a r m 的发展史,不能不说是计算机体系结构发展上的一个奇迹。 1 9 8 5 年,a c o r n 公司负责技术的小组开发了世界上第一个商用单片r i s c 微处理器。 1 9 9 0 年1 1 月a r m 公司在英国成立。全称是“a d v a n c e dr i s cm a c h i n e sl t d ”。由苹果电 脑、a c o r n c o m p u t e r g r o u p 和v l s i t e c h n o l o g y 联合建立。苹果电脑和v l s i t e c h n o l o g y 出 资,a c o r n 提供技术和1 2 名工程师。 a r m 在市场上很快就因他们的“低价位”的定位和竞争对手区分了开来,而其他公 司的定位亍”高性能”的微处理器架构则主要用于了高端工作站方面的应用。1 9 9 1 年a r m 推 出首个嵌入式r i s c 核心a r m 6 t u 系列处理器。其后不久,v l s i 率先获得授权。一年 后夏普和g e cp l e s s e y 也成为授权用户。1 9 9 3 年德州仪器和c i r r u sl o g i c 也签署了授权协 议。此后a r m 的知识产权产品和授权用户都急剧扩大。1 9 9 3 年n i p p o ni n v e s t m e n ta n d f i n a n c e ( n i f ) 成为a r m 股东后,a r m 开始向全球拓展。分别在亚洲。美国和欧洲设立了 办事处。1 9 9 8 年4 月a r m 在伦敦证券交易所和美国纳斯达克交易所上市。 a r m 现已发展成为一家全球性大公司,在3 大洲8 个国家设有分支机构。雇员超过 7 2 0 人。公司在英国,法国以及美国都设有研发中心,并在法国,德国,日本,韩国,中 国台湾,以色列,英国和美国建立了销售行政和技术支持办事处a r m 中国安谋咨询上海 有限公司己在2 0 0 2 年7 月在中国上海成立。 1 1 3a r m 的应用 和i n t e l 那样的芯片生产厂商不太一样的是,a r m 公司的产品并不是芯片,而主要是 i p ( i n t e l l e c t u a lp r o p e r t y ) ,即一整套的设计成果。包括处理器体系结构规范,具体的电路 图,布线图,分层掩膜图等。可供芯片生产厂商来生产面向特定应用的微处理器微控制器 昆明理l j 大学研究生院 硕士学位论文 芯片。 i p ( i n t e l l e c t u a l p r o p e r t y ) 是当前最热门和最令人觊觎的新经济产品。s e m i c o n d u c t o r l n d u s t r ya s s o c i a t i o n 报告2 0 0 1 年全球i p 的市场在需求的驱动下已经达到了$ 1 3 9 b i l l i o n 。i p 的革命使得数字电子设备产生了新的一代。而微处理器的i p 更是现代s o e ( s y s t e m o n c h i p ) 架构的基石。事实上,很多r i s c 架构的处理器目前的主要商业模式都是i p 设计,例如 m i p s ,v l i w 等。由于r i s c 架构具有指令集简洁,芯片占用面积小等特点,因此在s o c 设计领域获得了广泛的应用。其中的a r m 架构就是一个非常成功的典型。 根据工业分析专家a n d r e wa l l i s o n 的报告,2 0 0 1 年r i s c 微处理器的销售量超过 5 3 8 ,0 0 0 。0 0 0 个。其中7 4 6 是基于a r m 的微处理器核。根据d a t a q u e s t 的报告,a r m 控 股上市公司目前是世界第一的i p 提供商。当a r m 在二十世纪九十年代提出了采用开放的, 可授权许可的i p 来支持以微处理器为核心的s o c 芯片的概念后,就使整个工业界改变了面 貌。 目前在全球已经有将近2 0 0 多个半导体公司购买了a r m 的i p 核生产自己的微处理器 ,微控制器芯片。8 0 以上的g s m 手机,9 9 的c d m a 手机,以及将来的w c d m a , t d s c d m a 手机都将采用基于a r m 核的处理器。u t 斯达康公司也将采用基于a r m 核 的处理器生产小灵通手机。因为众多的手机处理器,如摩托罗拉龙珠,i m x 。德州仪器的 o m a p , i n t e l 的x s e a l e 等都采用了基于a r m 核的芯片,所以主流的手机和p d a 操作系统 如p o e k e t p c ,s y m b i a n ,p a l m o s 等都支持a r m 处理器。在a r m 平台下的各种应用环境如 操作系统,应用程序,开发工具,支持,设计服务都相当丰富和成熟。所以a r m 也成为 开发和集成商在开发产品时的首选平台。 1 2 将l i n u x 应用于嵌入式系统 近年来,随着计算机技术、通信技术的飞速发展。特别是互联网的迅速普及和3 c ( 计 算机、通信、消费电子) 台一的加速,微型化和专业化成为发展的新趋势,嵌入式产品成 为信息产业的主流。l i n u x 从1 9 9 1 年问世到现在,短短的十几年时间已经发展成为功能强 大、设计完善的操作系统之一。可运行在x 8 6 、a r m 、a l p h a 、s p a r e 、m i p s 、p p c 等多种 硬件平台上,而且其开放源代码,可以定制,与各种传统的商业操作系统相比毫不逊色。 目前,越来越多的企业和研发机构都转向嵌入式l i n u x 的开发和研究上,这也使l i n u x 在 新兴的嵌入式操作系统领域内获得了飞速发展。 相对于桌面系统,要将l i n u x 应用到嵌入式系统中,必须要根据目标嵌入式系统的需 求对l i n u x 内核进行适当的裁减,修改和补充。目前主要集中在以下几个方面对l i n u x 进 行改造: 将l i n u x 内核移植到一些典型的微控制器或s o e 芯片上。目前在标准l i n u x 内核 源码树的a r c h 目录下已经有很多针对不同的处理器的实现,通过在主机上进行交 叉编译就可以构成适用于各种处理器的可执行映像。但是,目标硬件上可能有一 些独特的资源和性质是标准l i n u x 没有加以充分利用的。所以需要补充。对于a r m 平台而言,从c p u 级主要是对于各种不同的a r m 核的优化处理以及对内置的协 处理器的支持,例如对m m u 的控制操作的优化,对内置的协处理器的支持。从 s o c 芯片和开发板级,则主要是针对各种硬件平台的特性和新硬件进行支持。 针对一些常用的外部设备进行选择,修该和开发。一般讲,在l i n u x 内核源码树 的d r i v e r 目录中具有丰富的设备驱动程序。各个厂商所生产的同种外设在很大程 度上都很相似。因此,对这些设备驱动一般都是加以修改甚至是直接拿来就用, 6 昆明理工大学研究生院硕士学位论文 很少从头来写一个设备驱动。由于基于a r m 处理器核和c p u 核所构成的s o c 芯 片开发的嵌入式系统上的外设有片上y b 设和板上外设的区别,所以开发的主要难 点还在于对外设i 0 的映射和g p i o 的分配。 对标准l i n u x 内核进行实时扩展。实时性对于某些嵌入式系统的重要性是毋庸置 疑的,目前大多数嵌入式操作系统都将其是否具有实时性作为一个重要的指标。 针对l i n u x 内核所进行的实时性改造主要有以下的一些: ( 1 )优先级调度。l i n u x 内核已经按p o s i x 4 的规定对“实时进程”提供按优 先级调度的机制。但是,相比之下l i n u x 的进程调度还是显的过于复杂, 可以针对特定的应用加以简化和改进,以进一步提高效率。 ( 2 ) 提高时钟精度。我们知道,时钟中断对于操作系统而言就象人的心跳一样, 在某种程度上是系统得以运行的保障。系统中进程的调度,睡眠等运行模 式都要通过时钟中断来驱动。l i n u x 内核中有一个宏定义h z ,它决定着 时钟中断的频率。而对于a r m 平台下的各类s o e 芯片所构成的特定机型 ( a r c h 囊? 凸涝目录一f ) ,这个宏的值不尽相同。在基于l i n u x 进行实时性 扩展时,通常需要适当的修改这个值。 ( 3 )实现可强占性调度。可强占性调度是每个号称具有实时性的操作系统所必 须具备的一项重要性能指标。相对而言,采用微内核体系结构的操作系统 在实现可强占性方面具有天然的优势,而对于象l i n u x 这样典型的宏内核 结构的操作系统,要实现可强占性相对困难。目前对于l i n u x 的实时性改 造已经做了很多工作,比较有影响的有k u r t ,r t a i ,r t l i n u x ,t i m e s y s l i n u x 等【3 】。同时,在2 6 内核中还引入了一个可强占性选项,是由r o b e r t l o v e 所引入的。 1 3l i n u x 内核移植的国内外发展情况 由于l i n u x 开源的特点,多年来很多优秀的软件开发人员出于不同的需要在标准l i n u x 内核的基础上进行了很多修改,扩充和移植,从而形成了各种不同的l i n u x 内核版本。这 些版本代表着对l i n u x 内核横向的扩充,有些修改经过一段时间的考验后就被吸收到了标 准l i n u x 内核中。这些对l i n u x 内核的扩充,通常以相对于标准l i n u x 内核p a t c h 或d i f f 文 件的形式提供。针对不同版本的l i n u x 内核所进行的扩充,就会有不同的p a t c h 或d i f f 文件, 从而形成相应的一个扩充系列。 对于l i n u x 向别的平台上的移植技术方面的研究,在国内外无论是工程界还是学术界 都进行了很多。是l i n u x 在嵌入式领域中的应用的一个热点。目前在网络上有很多针对不 同c p u 体系结构的l i n u x 内核移植项目。比较有影响有如下的一些口q : a r ml i n u xp r o j e e t ( h t t p :w w w a r m 1 i n u x o r g u k ) 。该项目针对a r m 系列中带 m m u 的c p u 核所构成的s o c 芯片和硬件系统进行内核移植。包括a r m6 1 0 , a r m 7 1 0 ,a r m 7 2 0 ,a r m 9 2 0 ,s t r o n g a r m ,x s c a l e 。其主要被维护的版本被称 为a r m l i n u x ,得到了广泛的采用和认同。a r m l i n u x 的版本中有两个人的工作 得到了广泛的认同。其中一个是由r u s s e l lk i n g 维护的面向a r m 系列c p u 核的 版本。另一个是由n i c op i t r e 主持,在r u s s e l lk i n g 版本的基础上所进行面向 s t r o n g , a r m 的修改和扩充。本论文就是在他们所做的工作的基础上进行的。 u c l i n u xp r o j e e t ( h t t p :w w w u c l i n u x o r g ) 。该项目针对不带m m u 的c p u 核所构 成的嵌入式微控制器,s o e 芯片和硬件系统进行内核移植。昂主要是用在m o t o r o l a 的m 6 8 k 系列的c p u 上。此外,也提供对象$ 3 c 4 4 0 b ,a l m e l 那样由不带m m u 昆明理工大学研究生院 硕士学位论文 的a r m 核所构成的芯片。 g n u l i n b xf o rp o w e r p c ( h t t p :p e n g u i n p p c o r g ) 。该项目将l i n u x 内核移植到3 2 位的p o w e r p c 上。 p a r i s c ( h t t p :p a r i s c 1 i n u x o r g ) 。将l i n u x 内核移植到惠普公司的p a r i s c 处理 器上。 l i n u xv rp r o j e c t ( h t t p :w w w 1 i n u x - v r o r g ) 。该项目主要将l i n u x 内核移植到n e c 的v r 系列处理器上,该系列c p u 是基于m i p s 指令集的。 此外,很多嵌入式硬件生产商在采用了a r m 核生产出自己的s o e 芯片或板卡后t 都 把l i n u x 移植到自己的板卡上做为首要目标。如i n t e l 在自己的网络处理器的开发包的s d k 上就提供了一个l i n u x 的参考移植系统。别的公司象s a m s u n g 也在自己的基于$ 3 c 2 4 1 0 和$ 3 c 4 5 1 0 的板子上提供了l i n u x 和相应b o o t l o a d e r 的参考移植。 目前在国内对l i n u x 向特定的硬件平台的移植工作所做的也非常多。由于l i n u x 在嵌 入式系统的强大的生命力和利用价值使越来越多的企业和高校表现出对它极大的研发热 情。目前中国的著名l i n u x 业界公司如中科红旗、共创软件联盟、中标软件、蓝点软件公 司、冲浪平台、博利思公司等都在l i n u x 向硬件平台移植的不同层面做了很多工作。国产 的c p u 如方舟( a r e a ) ,龙芯,北大众志等都已经将l i n u x 移植到了自己的处理器平台上。 1 4 论文的主要工作 基于目前国内外在a r m 平台的l i n u x 内核移植技术方面所取得的成果, 以下的一些工作: ( i ) 对a r m 体系结构的特点进行了详细的归纳,总结和分析。 ( 2 ) 对l i n u x 内核中所提供的和a r m 平台移植相关的代码如内存管理 启动过程等部分进行了深入的分析研究。并给出了详细的分析报告。 论文完成了 中断控制 ( 3 ) 对面向a r m l i n u x 内核的b o o t l o a d e r 实现原理和移植方法进行了深入的分析研 究。并给出了详细的分析报告。 ( 4 ) 在对这些内核移植代码的和几个典型的移植实例的理解基础上,提出了一个假想 的移植模型,以作为移植工作展开的参考。 ( 5 ) 针对a r m 公司开发的在软硬件原型开发方面非常有特色的i n t c g r a o r 板给出了 详细的移植报告。 论文的组织围绕以上工作展开。 第一章介绍a r m 在嵌入式系统中的应用。将l i n u x 应用于嵌入式系统的问题以及 l i n u x 内核移植技术的国内外发展情况。 第二章讨论a r m 的体系结构。 第三章分析和a r m 平台移植相关的l i n u x 内核代码,重点侧重于对内存管理和异常 中断处理的分析。 第四章分析面向a r m l h m x 的b o o t l o a d e r 的实现原理和移植方法 第五章排于第四章之后,主要分析a r m l i n u x 内核的启动过程,这是l i n u x 内核移植 和开发中非常重要的一个部分。 第六章介绍一个假想的基于a r m 平台的移植模型 最后给出论文的总结与展望。 此外,文中的附录1 给出了各系列a r m c p u 核的性能指标:附录2 ,3 ,4 针对i n t e g r a t o r 板的内核配置文件,物理内存的布局和移植结构进行了详细的分析和说明 8 昆明理工大学研究生院 硕士学位论文 第二章a r m 的组织和体系结构 2 1 计算机组织和体系结构的概念 毫无疑问,现代计算机的比起5 0 多年前的计算机是有着巨大的进步的。但这种进步并 不仅仅只是体现在集成电路设计工艺的进步上。换句话说,即使采用现在的集成电路设计 方法去实现5 0 年前的计算机,也不能说这台计算机是现代意义上的计算机。事实上,真正 体现现代计算机先进性的是在5 0 多年的计算机发展史上在计算机体系结构( c o m p u i c r a r c h l t e c t u r e ) 和计算机组织结构( c o m p u t e ro r g a n i z a t i o n ) 方面所取得的成果。 计算机的体系结构和组织是计算机在不同层面的两个概念【4 j 。体系结构在某种程度上更 象一个规范。它描述了从汇编语言程序员的角度所看到的计算机。包括处理器指令集,可 见的处理器寄存器,系统协处理器,用于内存管理的页表项,页目录表项的描述和处理器 的异常处理模式。 而计算机组织所描述的则是对汇编语言程序员透明但对硬件设计人员可见的处理器实 现架构。包括处理器的流水线组织,c a c h e 和b u f f e r 缓冲的设计,t l b 的设计等都属于计 算机组织的概念。 对于a r m 平台的移植来说,通常所考虑的层面主要是计算机体系结构方面的。但在一 些情况下也要求要理解计算机组织方面的一些基本概念。本节首先介绍a r m 处理器的体 系结构方面的相关内容下一节介绍其组织结构。 2 2 a r m 体系结构 a r m 的体系结构总的设计思路是在不牺牲性能的同时尽量简化处理器。同时从体系 结构的层面上支持灵活的处理器扩展。这种简化和开放的思路使a r m 处理器采用了很简 单的结构来进行实现。a r m 是精简指令集计算机( r i s c ) 架构的一种实现,从而包含了 r i s c 架构的一些典型特征州: 包含一个很大的可见寄存器集。这样的结构设计使编译器能够对函数参数传递和 局部变量的分配进行很大程度的优化。但a r m 的实现并没有采用类似于s p a r c 那样的寄存器窗口,这也是它的简化思想的一个体现。 采用l o a d s t o r e 结构。和大寄存器集的配合可以尽量使数据处理操作集中在寄存 器中,而不直接的存取内存,从而达到提高程序执行性能的目的。 简化的寻址模式。l o a d s t o r e 指令使用的地址只由寄存器或指令本身提供,从而 去除了计算指令地址所需要的运算器,达到简化硬件的目的。 定长指令集的设计。这样的设计简化了指令译码部件的设计,同时也使指令流水 线的设计得以简化。 内存和外设统一编址。 在对结构进行简化的同时,a r m 体系结构也采用了一些很特别的方式来提高指令执行 性能。这些实现都很有特色”j : 将算术和移位操作相结合的指令实现。使一条数据处理指令可以实现将算术和移 位操作相结合如指令:a d dr 0 ,r l ,r 2 ,l s l # 3 将r 2 的内容逻辑左移3 位后与r 1 相加, 结果存放到r 0 中。这种结构的实现可以使处理器中的a l u 和移位器得到最大程 度的使用率。 指令寻址时可实现地址自加。这种指令对高级语言程序的循环结构的优化是非常 9 昆明理工大学研究生院 硕士学位论文 有利的。 多元l o a d s t o r e 指令。可以在一条指令中实现装入存储多项数据,从而提高数 据吞吐量。如指令s t m f ds p , r 0 一r 2 ,l r ) 将寄存器r o 到r 1 2 以及i r ( r 1 4 ) 的内容装 入堆栈,也就是从s p 所指的内存单元中。这类指令在中断处理程序或子程序中对 现场的保存和恢复中用的很多。也可以实现对数据拷贝操作的优化。 指令的条件执行。a r m 的每条指令的执行都可以是有条件的,这对高级语言程 序中的一些条件分支可以得到很大的优化。 从上面这些特点可以看到a r m 的设计思想可以算得上是非常精巧的,在最大限度 的简化了处理器内部的组件后,再对现有的硬件进行最大程度的利用。实际上a r m 体 系结构的简化设计思想不仅体现在了指令集的设计上,在其体系结构的其它方面象内存管 理,中断异常处理的模式也体现了出来。 2 2 1a r m 体系结构的可见寄存器集1 4 i a r m 有3 7 个3 2 位的寄存器,其中有3 1 个通用寄存器。a r m 有6 种运行模式,在任何模式 下,都只有r o 到r 1 5 这1 6 个通用寄存器和一个状态寄存器c p s r 是可见的。当发生模式切换的 时候,可见寄存器r 1 3 和r 1 4 以及c p s r 就会变为被切换模式下对应寄存器( f i p 快中断模式是r 8 到r 1 4 以及c p s r ) 。这种实现有点类似与s p a r c 中的寄存器窗口,目的是加快异常和中断的 处理速度。a r m 的可见寄存器集如图2 1 所示: u w n m 钿盅蕊凝瓶“掣 图2 1a r m 体系结构的可见寄存器 在a r m 的每个模式下的可见寄存器中,r 1 4 用做链接寄存器( l i n kr e g i s t e r ) ,用于保 存子程序调用指令b l 的下一条指令的地址,相当于予程序调用的返回地址。r 1 5 被用做程 序计数器( p r o g r a mc o u n t e r ) ,实际就是通常的指令指针寄存器。不过要注意它所保存的是 当前正在被执行的指令的两条指令后的指令的地址。其它的指令并没有作为特殊的硬件用 途,但一般来说,软件会默认将r 1 3 作为堆栈指针1 2 2j 。 2 2 2 a r m 体系结构的内存管理i 6 l 一般来说,处理器的内存管理是由其内部的m m u 单元来实现的。m m u 的功能就是 1 0 昆明理工大学研究生院硕士学位论文 实现虚址到物理地址的转换( m m u 功能) 和对内存访问权限控制( m p u 功能) 。在a r m 体系结构中,从程序员的角度来说,内存管理部件是作为一个特殊的协处理器c p l 5 加以实 现的。也就是说,内存管理部件在a r m 体系结构的实现中是一个可选件。在a r m 处理 器核的选择中,有无内存管理单元( r m u ) 和内存保护单元( m p u ) 是一项很重要的指标。 从程序员的角度,也就是从体系结构的角度来看,协处理器c p l 5 提供了对系统的内存 管理部件进行操控的手段。实际上,c p l 5 又被称为系统控制协处理器( s y s t e mc o n t r o l c o p r o c e s s o r ) ,它共有1 6 个寄存器,其中的寄存器中除了对m m u 的管理以外还有对c a c h e 和w r i t eb u f f e r 单元进行操控的处理器,此外,还留出了第1 5 号寄存器作为实现定义,以 便系统进行扩展。图2 2 是c p l 5 协处理器中和m m u 操作相关的寄存器 ,图2 _ _ 2 c p l 5 协处理器中和m m u 操作相关的寄存器 其各个寄存器的定义如表2 1 所示: 表2 一lc p l 5 协处理器中和m m u 操作相关的寄存器定义 寄存器名说明 m :m m u 使能,c :c h a c h e 使能。w :b u f f e r 使能s :系统保护 位,r r o m 保护位。初始化的时候可以将m 置0 将t o m b 禁止。 m m u 控制寄存器同时也将c 、w 位置0 ,否则可能产生不可预知的结果。在m 置 1 之前必须在内存中将页表,- 页目录表建好。并设置正确的页目 录表地址到转换表基址寄存器 转换表基址寄存器保存变换表( t t ) 的基址( t t b ,t r a n s l a t i o nt a b l eb a s e ) ,也就是 操作系统中的页目录表基地址 域寄存器a r m 将内存共分成1 6 个域,每两位控制对一个域的访问。访问类 型分两种:c l i e n t s 和m a n a g e r s ,主要用于内存的保护 错误状态寄存器f s r读取数据或指令产生异常后,c p u 根据发生错误的原因填该寄存 器。以便异常处理程序加以处理 错误地址寄存器f a r读取数据或指令产生异常后,c p u 根据错误发生的位置将其地址 写入寄存器,以便异常处理程序加以处理。 2 2 3a r m 体系结构的异常处理模式 中断和异常可能是每种处理器体系结构都必须提供的机制。它们提供了处理器对外部 和内部事件的感知和处理的手段和机制。从而也是现代处理器设计中首要考虑的内容。从 操作系统实现者的角度来说。中断和异常是系统体系结构所提供的规范和机制,具体的实 现要由操作系统来完成。 昆明理工大学研究生院 硕士学位论文 a r m 的参考手册嗍中将中断,系统调用,存取违规都称之为异常( e x c e p t i o n ) ,并 没有象i 3 8 6 分的那么细【7 】。所以在这里也按a r m 文献中的惯例,统一称之为异常。a i l m 支持7 种类型的异常【6 | 口下表列出了这7 种类型的异常和它们执行时对应的模式和初始执 行地址。当异常,外中断,或系统调用发生的时候,程序将转向这些初始地址去执行。这 些初始地址被称之为异常矢量( e x c e p t i o n v e c t o r ) 。 表2 2a r m 体系结构的7 种异常类型 异常或中断类型所进入的模式正常的初始地址高矢量初始地址 重启( r e s e t ) s u p e r v i s o r o x 0 0 0 0 0 0 0 00 x f f f f 0 0 0 0 指令未定义( u n d e f i n e di n s t r u c t i o n ) u n d e f i n e d0 x 0 0 0 0 0 0 0 40 x f f f f 0 0 0 4 软中断( s o f t w a r ei n t e r r u p t )s u p e r v i s o r o ) 【0 0 0 0 0 0 0 8o ) f f f f 0 0 0 8 指令预取违规( p r e f e t c ha b o r t ) a b o no x 0 0 0 0 0 0 0 c 0 x f f f f 0 0 0 c 数据访问违规( d a t a a b o r t ) a b o r t0 x 0 0 0 0 0 0 1 0 0 x f f f f o o l 0 外中断请求( i n t e r r u p t )m q 0 x 0 0 0 0 0 0 1 80 x f f f f 0 0 1 8 快中断请求( f a s ti n t e r r u p t )f l q o 】加0 0 0 0 0 l co x f f f f 0 0 l c 2 3a r m 组织结构一a r m 处理器核和c p u 核 2 3 1 删处理器核 a r m 的组织结构中。对a r m 处理器核( p r o c e s s o rc o r e ) 和c p u 核( c p uc o r e ) 进行了明 确的区分。处理器核指的是由运算器,寄存器堆。指令译码和控制等部件所组成的指令处 理单元。而对于a r m 处理器核来说,除了包括这样的处理器核之外还包括了象j t a g 控 制器和e m b e d d e di c e 这样的调试部件。a r m 7 t d m l 2 就是a r m 处理器核。它是一个典型 的使用三级流水线的整数运算核,支持a r m 体系结构的4 t 版本,包肯了对t h u m b 指令 集的支持,也包括了对e m b e d d e d l c e 模块和j t a g 控制单元以提供对嵌入式系统开发和硬 件调试的支持”j 。圈2 - _ 3 给出了一个典型的a r m 7 t d m i 处理器核的组织结构。 还有其它的一些典型的a r m 处理器核象a r m 9 t d m i 和a r m i o t d m i 。需要指出的是, 这些处理器核都不包括对m m u ,c h e ,b u f f e r 和浮点运算单元的支持,这些部件是在a r m c p u 核中加入的。这些处理器核包括了基本的处理单元,在没有m m u 等单元的情况下仍 然可以用于构成嵌入式s o c 芯片。三星的$ 3 c 4 5 1 0 b 芯片就是使用a r m 7 t d m i 的一个典 型的例子,不过该芯片虽然没有m m u ,但出于性能的考虑,加入了c a c h e 和b u f f e r 单元。 尽管a r m 处理器核可以单独的作为一个处理器来构成s o c 芯片,但对于一些应用则需 要更复杂的处理器组织结构。因此基于a r m 的这些处理器核,又形成了一系列的a r m c p u 核,这些c p u 核的设计侧重点各有不同,有些提供了m m u 的地址转换和内存保护, 而有些则只有内存保护,还有的加入了对浮点数或d s p 处理甚至j a v a 字节码的支持。针 对不同的应用面,可以选择不同的c p u 核来构筑s o c 芯片。目前常见的c p u 核主要有7 系列的a r m 7 1 0 t ,7 2 0 ta n d7 4 0 t ,9 系列的a r m 9 2 0 t 9 4 0 t 以及最新的s t r o n g a r m , 高矢量初始地址( h i g l lv e c t o r ) 是a r m 体系结构规范中的一个特性,即可以将异常矢量由3 2 地址空间 的低端( 0 x 0 0 0 0 0 0 0 0 ) 移动到地址空问的高端( ( 0 x f f f f 0 0 0 0 ) ) 。这毒a r m 规范中被称为实现定义 ( i m p l e m e m t a t i o nd e f i n e d ) ,也就是说,是否支持这个特性是由具体的a r m 处理器来加以实现的。a r m 标准指奇集中并没有指令可以赢接的对这个特性进行操控这是由系统控制协处理器( c p l 5 ) 中的寄存 器1 的第1 3 位来进行控制的【6 j 。 2 a r m 处理器核一般会在其版本号后面加入修正字母,以代表对处理器的某些扩展: 卜表示支持t h u m b 指令模式 e 表示支持作为协处理器存在的“数字信号处理器( d s p ) ” d _ 表示提供调试支持 m 一表示支持扩充的能产生“位结果的乘法指令 卜表示芯片上带有内置的i c e ,从而支持程序内的断点和数据空间的“观察点”设置 1 2 昆明理王大学研巍生院 硕士学位论文 x s c a l e ,a r m l 0 2 0 e 等,下蹴分别针对这些不同的c p u 核加以介绍。 图2 3a r m 7 t d m i 处理器校的组织结构 2 。3 。2 a r m 7 系猢瓣c p u 棱 a r m 7 系列的a r m 7 1 0 t 。a r m 7 2 0 t 1 9 1 和a r m 7 4 0 t 州是基于a r m 7 t d m i 处理器拨的 c p u 接。其中毽括了一个8 k 靛指令秘数据熬嘏合e 虹,一个w r i t eb u f f e r 靼m m u 。扩 饿内存和盼上谗蠢可l i _ 通遘a m b a 总绫控制单元加以连接。c p l 5 是一个协处理嚣,实际 上是一个控制单元。它对m m u ,指令和数据c a c h e ,写i 隧冲( w r i t eb u f f e r ) 进行控制,也记 录了一些系统嫠塞。鲡c p u 翡蛰号等。在器寒串霹菝漾蓬辩楚瑗器撵令絮瓣其内辩熬毒 存器进行读写,以遮到对m m u 等c p u 部件进杼操控的醺的。a r m 7 1 0 t 和a r m 7 2 0 t 在 组织结构上是相当相似的,如图2 _ _ 4 所示。 a r m 7 2 0 t 和a r m 7 1 0 1 霄嚣煮鑫体系结穗静实褒土瓣嚣剐l ( 1 )a r m 7 2 0 r r 支持将虚拟地舭空间中的最低3 2 m 爨新定位到由c p l 5 的第1 3 号 毒存嚣巾所撸定豹毯董上。这是封a r m 体繁缝糖浆藏孛熬抉滚上下文甥换扩 展机制( f a s tc o n t e x ts w i t c he x t e n s i o n , f c s e ) 的支持纠州。 ( 2 )异常矢麓表的位麓可以被定位到0 x f f f f 0 0 0 0 上,即踅持高矢擞地址。高矢量 逸蟪是a r m 蒋篆结褥援藏孛一令褥褴,辩渡将募鬻矢量麸琢来在3 2 遮蛙 空间的低端( 0 x 0 0 0 0 0 0 0 0 ) 移动到地址空间的高端( ( o x f f f f 0 0 0 0 ) ) 9 1 。 a r m 7 4 0 t 和a r m 7 1 0 1 ,a r m 7 2 0 t 的不闽在于它对于m m u 韵楚化。它只实理了 m m u 中对内存保护鞠c a c h e 的控糊,褥荠没卷箍
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 成都中医药大学《工程测量综合实训》2024-2025学年第一学期期末试卷
- 西藏民族大学《数据库原理及应用-Access》2024-2025学年第一学期期末试卷
- 楚雄医药高等专科学校《计算机视觉技术》2024-2025学年第一学期期末试卷
- 赤峰学院《高等代数与解析几何Ⅱ》2024-2025学年第一学期期末试卷
- 鹤壁汽车工程职业学院《物联网应用3》2024-2025学年第一学期期末试卷
- 2025年注册会计师考试审计备考策略
- 2025年产品经理面试指南及经典模拟题答案
- (2025)电焊工考试题库及参考答案
- 2025年特岗教师招聘面试初中历史模拟题及答案详解
- 西京学院《柔力球》2024-2025学年第一学期期末试卷
- 2025河北唐山某国有企业单位招聘劳务派遣工作人员44人笔试参考题库附带答案详解(10套)
- 班主任与家长沟通课件
- 2025年安庆怀宁县事业单位招聘考试试题【答案】
- 预防残疾知识讲座课件
- 浪漫七夕领证活动方案
- 大型活动策划组织与执行合同
- 培训机构教师如何做续费转介绍
- 基底节区出血护理查房
- EPP发泡聚丙烯项目可行性研究报告参考范文
- CVC的护理及常见并发症
- WMT8-2022二手乘用车出口质量要求
评论
0/150
提交评论