




已阅读5页,还剩64页未读, 继续免费阅读
(计算机系统结构专业论文)汽车导航系统设计与实现——基于xscale的嵌入式系统设计.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 嵌入式系统在迅速发展,被应用于生活中的各个方面。要构建一个嵌入式系 统,需要进行硬件选择、软件选择,然后根据功能进行模块设计、模块实现等等。 汽车电子就是嵌入式系统一个很主要的方向。而汽车导航系统是现在汽车电 子的一个热门话题。它应该能够实现电子地图,随着功能的不断强大,还可以和 用户进行交互,给用户提供娱乐功能。 在本文中,介绍如何选择硬件,比较a r m 、m i p s 等嵌入式芯片的功能, 结合本系统所要实现的功能,选择芯片,并选择相应的外部设备; 介绍如何选择软件,比较w i n d o w s 和l i n u x 系统,考虑到后期开发、产品 生成、产品成本等因素,选择嵌入式操作系统,和相应的开发软件; 介绍如何进行模块设计和模块实现,充分考虑到嵌入式系统开发的特殊性, 尽可能让系统精简、可移植等。 关键字:嵌入式系统,汽车导航系统,x s c a l e ,w i n d o w sc e 中图分类号:t p 3 计算技术、计算机技术 a b s t r a c t e m b e d d e ds y s t e mi sd e v e l o p i n gr a p i d l y , a n di th a sb e e nu s e di nm o r ea n dm o r e a r e ai no u rl i v e s w h e nw ec o n s t r u c ta ne m b e d d e ds y s t e m i ti so u rw o r kt os e l e c t i n g h a r d w a r ea n ds o f t w a r e ,a n dt od e s i g n i n ga n di m p l e m e n t i n gt h em o d u l e sa c c o r d i n gt o t h ef u n e t i o u so f t h es y s t e m a u t o m o b i l ee l e c t r o ni so n ei m p o r t a n td i r e c t i o no fe m b e d d e ds y s t e m ,w h i l e v e h i c l en a v i g a t i o ns y s t e mi so n eh o tt o p i cn o w av e h i c l en a v i g a t i o ns y s t e mw i l lh a v e ad i g i t a lm a p ,b ea b l et oc o m m u n i c a t ew i t hu s e r s ,a n dp r o v i d ee n t e r t a i n m e n t st ou s e r s - i nt h i sa r t i c l e ,w ei n t r o d u c eh o wt os e l e c th a r d w a r e ,c o m p a r i n ga r m a n dm i p s a r c h i t e c t u r e s ,d e s i d et ou s ew h i c ho n ea c c o r d i n gt oo u rs y s t e m sf u n c t i o n s ,a n dc h o o s e t h er e l e v a n td e v i c e s w ei n t r o d u c eh o wt os e l e c ts o f t w a r e ,c o m p a r i n gw i n d o w sa n dl i n u x ,t h i n k i n g a b o u tt h el a t e rd e v e l o p i n g p r o d u c t sc o n s t r u c t i o n ,a n dp r o d u c t sc o s t ,c h o o s et h er i g h t e m b e d d e do sa n dr e l e v a n td e v e l o p e n a n dw ei n t r o d u c eh o wt od e s i g na n di m p l e m e n tt h em o d u l e s ,i nt h es p e c i a l e n v i r o n m e n t e m b e d d e ds y s t e m k e yw o r d s :e m b e d d e ds y s t e m ,v e h i c l en a v i g a t i o ns y s t e m ,x s c a l e ,w i n d o w s 3 4w i n d o w s 2 2 3 5 操作系统选择2 3 3 6 其它开发软件2 4 3 6 1p l a t f o r mb u i l d e r 2 4 3 6 2a d s ( a r md e v e l o p e rs u i t ) 2 5 3 6 3e s h e l l ,2 6 3 6 4j f l a s h 2 6 第4 章模块设计2 7 4 1 硬件框架2 7 4 2 软件模块设计2 7 4 2 1 板级支持包2 8 4 2 2s d k :;7 4 2 3 应用程序3 8 第5 章模块实现3 9 5 1 准备工作3 9 5 2 启动下载器4 0 5 3o a l 4 6 5 4 生成w i n d o w sc e 4 7 5 5 设备驱动5 2 5 5 1 串口驱动5 3 5 5 2 网络控制器驱动5 3 5 5 3s d 卡驱动5 4 5 5 4 触摸屏驱动5 7 5 6s d k 生j 或5 8 5 7 应用程序6 1 第6 章总结6 2 参考文献6 3 后记6 4 图表目录 表一;a r m 革新历史记录 表二:a r m 的处理模式和寄存器 i 5 表三:a r m 的异常处理6 表四:c a c h e 性能7 表五:a r m 的协处理器8 表六:m i p s 的地址空间分配1 2 表七:w i n d o w sc e 和嵌入式l i n u x 比较2 4 图1 :x s c a l e 流水线示意图 图2 :j t a g 调试接口示意图 图3 :汽车导航系统的硬件架构框图 图4 :汽车导航系统软件开发流程图+ 表八:b s p 的组成部件 图5 :b s p 包含模块图 图6 :显示驱动与其它模块的关系 图7 :p l a t f o r mb u i l d e r 、s d k 和开发软件关系图 图8 :p l a t f o r mb u i l d e r 起始界面 图9 :新建p l a t f o v i t i 向导 图1 0 :选择b s p 图1 l :p l a t f o r m 配置 图1 2 :完成p l a t f o r m 配置 图l3 :打开新p l a t f o r m 图1 4 :新p l a t f o r m 特性 图1 5 :新p l a t f o i t l l 的配置文件目录 图1 6 :选择生成p l a t f o r m 图1 7 :选择配置远程连接 图1 8 :配置s d k 图1 9 :输出s d k 向导 图2 0 :产品信息输入一 图2 1 :配置s d k 属性 图2 2 :s d k 输出配置结束 图2 3 :s d k 生成 石p勰毋四如拍”铝铝的的如”钉铉轮船钞”瑚埘 |,三,一|;| 刖青 现在p c 机已被广泛应用到世界各个地方,大部分人都知道了什么是p c , 使用它来进行研究、开发、娱乐等等。而p c 并不是停止于桌面上的黑盒子,而 是如世界上万事万物一样,在不断发展当中,进入了后p c 时代。其中一个前进 方向就是嵌入式系统。 嵌入式系统融合了计算机软硬件技术、通信技术和半导体微电子技术,根据 应用要求,把相应的计算机直接嵌入到应用系统中。大有遍布世界各个角落的趋 势。 虽然嵌入式系统和嵌入式微处理器应用得更广泛,但现在很多人可能并不是 很了解。其中一个原因就是它的嵌入性,使它能够藏匿以别的物体之中,使人们 看不到它的真面目:同时还因为它的多样性,不像p c 有统一的架构。它以各种 各样的形式出现,使人一下子摸不着方向。但随着嵌入式处理器的不断发展,它 们能实现更强大的功能,也就逐渐以独立的身份显现在人们面前。它现在正逐渐 被广泛应用于军事、航空航天、工业控制、仪器仪表、汽车电子、通信和家用消 费类等领域。 万物皆有其存在的理由,汽车电子也一样。随着人们的活动范围越来越大, 汽车在人的生活中扮演越来越重要的角色。如果把嵌入式系统应用到汽车上,可 以给用户带来很多帮助。通过把汽车电子安装在汽车上,增强汽车和外界的通讯 能力,不仅方便用户在开车时,确定自己的位置,了解当前交通情况,避免进入 交通阻塞道路;而且还让汽车与服务站、汽车与汽车之间,形成了通讯网络,便 于人们对交通系统进行宏观调控,保持交通系统的顺畅流通;可以实现对车辆的 跟踪、引导、调度,防盗报警等。比如,本文将介绍的汽车导航系统就是一个很 好的例子。 本文共分六章。 第一章:汽车导航系统介绍,简单介绍汽车导航系统的应用需求、架构等; 第二章:硬件选择,介绍在构建一个汽车导航系统时,如何选择处理器芯片, 选择怎样的外部设备等; 第三章:软件选择,在进行系统开发前,选择怎么样的软件进行开发; 第四章:模块设计,介绍在构建系统时,从启动模块到操作系统,最后到应 用程序的设计; 第五章:模块实现,介绍开发系统时,各个模块实现的主要工作; 第六章:总结,目的在于总结构建汽车导航系统过程中各种问题经验。 第1 章汽车导航系统介绍 近年来,汽车数量在国内各地增加极快,开车的人越来越多,同时,对道路 不熟悉的驾驶员将越来越多。汽车的使用量增加,跟随着生活的改善,人们的出 行习惯也在发生改变,到哪儿都希望能自由地自己开车,这样,跨城区用车情况 会越来越多。更使得对道路不熟悉的驾车人数增加。现在人们用车,不仅是为了 上班办事时在城里使用,而且也是为了在周末和节假日出游等等。在这些驾车人 中,虽然有可能经常出行,但可能是不同的目的地,因此能确切知道行车路线的 人并不多。这就产生了一个较大的新的需求汽车导航,即通过行车路线引导, 将驾车人带到其不知道行车路线的目的地。在国际、国内市场上,汽车导航产品 正在或即将成为汽车上的重要装景。汽车导航产品将成为智能交通系统( i t s ) 这 一新兴基础产业的关键部分。 利用全球卫星定位系统( g p s ) 信号进行汽车导航的技术,可以在市区道路、 郊外公路,甚至在人迹罕见的沙漠、戈壁、草原等区域也能为汽车导航,消除司 机对道路状况不熟悉带来的麻烦。 与其他产品不一样,国内g p s 汽车导航器产品不可能从国外直接进口,因 为g p s 导航技术需要准确的当地地图,由于涉及国家主权,国外厂家不可能得 到详细的这类资料,只有我们中国人自己来开发自己国土上的g p s 汽车导航器 产品。 鉴于在校期间以研究为主要目的,充分利用实验室资源,尽可能掌握嵌入式 系统知识;同时,在上海大唐一兰生通信导航技术有限公司的倡导下,我们实验 室决定与其合作开发一个汽车导航系统。 我们初步规划的汽车导航系统主要有以下几个特点: 夺车载分体式结构; 夺外接显示屏: 夺内置汽车智能导航系统; 夺支持车载d v d 等影音设备: 夺不占用车载音响位置; 夺可方便升级; 夺安装方便、适应众多车型。 第2 章硬件选择 与p c 制造者不同,由于嵌入式系统目的要配合应用,采用最适合的方案, 所以嵌入式系统的工程师不得不自己设计自己特定的系统。与全球p c 市场不同, 没有一种微处理器和微处理器公司可以主导整个嵌入式系统世界,因为不一样的 系统,就需要不一样的处理器来支持。现在市面上就至少有1 0 0 种以上3 2 位嵌 入式微处理器。那么,在设计设计汽车导航系统时,应如何选择嵌入式微处理器 呢? 首先,汽车导航系统的设计方案可以有多种,那就是选择是多样化的。因为 嵌入式系统设计的差异性极大,这就是有多种微处理器能够同时存在的原因。 其次,同一方案,使用不同微处理器可以达到不同性能水平。在某种情况下, 性能极为重要,而在另一种情况下,低功耗变成重点。另外,有时候还会考虑到 支持软件、代码的大小以及多种渠道的资源和过去的经验。那么,哪些因索是最 值得关心的? 在后面的章节中将通过观察多种微处理器的特点,并结合汽车导航系统的要 求,分析如何选择微处理器,选择什么处理器。 2 1 嵌入式微处理器的主要类型 现今应用在嵌入式系统中的处理芯片主要有两大类:r i s c 和c i s c 。在8 0 年代中叶,在计算机制造商中有很多倾向于制造可识别更多指令的复杂处理器 c i s c ( c o m p l e xi n s t r u c t i o ns e tc o m p u t e r ) 。与此同时,有一部分制造商则看好相 反方向,制造仅识别有限数量指令的处理器r i s c ( r e d u c e di n s t r u c t i o ns e t c o m p u t e r ) 。简约指令集的一个优点就是因为它们的指令比较简单,它们的指令 执行起来非常快。另外,应该算是更重要的一个优点,就是r i s c 需要的晶体管 比c i s c 少,因此使它们在设计和生产方面更便宜。 自从两大类推出以来,专家们就经常为其争议,比如,r i s c 体系结构的价 值问题。其支持者认为r i s c 机器又便宜又快,必将是未来机器的主导。相反, 怀疑者则认为为了让硬件更简单,r i s c 给软件增加了很大的负担。而因为传统 微处理器将变得更快和更便宜,所以这将不再是c i s c 的弱点。 而从一个宏观上来看,这种争论正在变得越来越缓和,因为c i s c 和r i s c 的实现正变得越来越相似。现在很多r i s c 芯片支持了指令跟以前c i s c 芯片所 支持的不相上下了。而现在的c i s c 芯片里则使用了许多跟r i s c 相类似的技术。 后面将介绍下现在被使用得比较多的两款r t s c 微处理器。 2 2 a r m 体系结构 a r m 公司自1 9 9 0 年正式成立以来,在3 2 位r i s c ( r e d u c e d i n s t r u c t i o ns e t c o m p u t e rc p u 开发领域不断取得突破,其结构已经从v 1 发展到v 7 。由于a r m 公司自成立以来,一直仅以i p ( i n t e l l i g e n c ep r o p e r t y ) 提供者的身份向半导体制造 商出售知识产权,而自己从不介入芯片的生产销售。因此使其能更加专注于设计, 其设计的内核具有功耗低、成本低等显著优点,所获得的回报就是众多的半导体 厂家和整机厂商的大力支持,在3 2 位嵌入式应用领域获得了巨大的成功,曾经 度占有7 5 以上的3 2 位r i s c 嵌入式产品市场。在低功耗、低成本的嵌入式 应用领域确立了市场领导地位。现在设计、生产a r m 芯片的国际大公司已经超 过5 0 多家,还有不断增长的势头。国内中兴通讯和华为通讯等公司也已经购买 a r m 公司的内核用于通讯专用芯片的设计。目前非常流行的a r m 处理器内核 有a r m 7 t d m i 、a r m 9 t d m i 及a r m l 0 t d m i 等。自v 5 以后,a r m 公司提供 p i c c o l od s p 的内核给芯片设计者,用于设计a r m + d s p 的s o c ( s y s t e mo nc h i p ) 结构的芯片。目前流行的a r m 处理器核有a r m 7 1 0 t 7 2 0 t 7 4 0 t 、 a r m 9 2 0 t 9 2 2 t 9 4 0 t 、a r m 9 2 6 e 9 6 6 e 及a r m l 0 2 0 e 等。后缀“e ”表示具有 d s p 的功能。a r m 不仅得到半导体厂商的大力支持,还获得了许多实时操作系 统( r e a lt i m eo p e r a t i n gs y s t e m ) 供应商的支持,比较知名的有:w i n d o w sc e 、 l i n u x 、p s o s 、v x w o r k sn u c l e u s 、e p o c 、u c o s 、b e o s 等。 2 2 1a r m 处理器结构 a r m 是一种r i s c 型处理器。跟c i s c 的处理器相比,它减少复杂功能的指 令,减少指令条件,选用使用频度最高的指令,简化处理器的结构,减少处理器 的集成度;并使每一条指令都在一个机器周期内完成,提高处理器的速度。 由于3 2 位r i s c 型处理器的指令代码利用率较低,a r m 为了弥补此不足, 在新型a r m 架构( v 4 t 版以上) 定义了1 6 位的t h u m b 指令集。t h u m b 指令集 比通常的8 位和1 6 位c i s c 肛u s c 处理器具有更好的代码密度,而芯片面积只增 加6 。可以使程序存储器更加小。 下表是a r m 体系结构不断革新的一个很好的描述 表一:a r m 革新历史记录 年份 型号主要新增功能 【1 9 9 5 a r m v 4 t :t h u m bi s a 增强的代码密度减少系统成本 1 9 9 8a r m v 5 t e :d s pi n s t r u c t i o n s增强的媒体和数字处理提高了系统性能 2 0 0 0 a t n v 5 t e j :j a z e l l e 增强的j a v a 性能满足市场的要求 2 0 0 2 a r m y 6 :s i n dm e d i ai s a增强的媒体和数字处理提高系统性能 【2 0 0 3 a r m v 6 t 2 :t h u m b 一2i s a 增强的代码密度减少系统成本 2 0 0 3a r m y 6 :t r u s t z o n e t m i e 黔 为下一代的移动设备提供增强的功耗利用率和安 全特性:在设备的核心提供增强的安全性 2 0 0 4 a r m v 7 :n e o n增强的媒体和数字处理提高了系统性能 a r mc o r t e x t mf a m i l y 2 2 2 多种工作模式 a r m 体系结构提供多种工作模式,由一个当前程序状态寄存器c p s r ( c u r r e n tp r o g r a ms t a t u sr e g i s t e r ) 控制。该寄存器包括了条件码标识、中断禁止 位、当前处理器的模式和其他状态控制信息: 3 1 3 02 92 82 72 687654 3 210 1 、条件码标识 n :负数标识 z :结果为零标识 c :进位位标识 v :溢出标识 e :d s p 的溢出饱和( 选用) 2 、控制位 hi r q 中断禁止位 f :f l q 快中断禁止位 t :t h u m b 位 m o d e :处理器工作模式 另外,还有一个保护程序状态寄存器s p s r ( s a v e dp r o g r a ms t a t u sr e g i s t e r ) 是处理器系统模式下保存当前程序状态寄存器c p s r 的内容。 它提供了7 种工作模式:用户、系统、管理、中止、未定义、中断、快中断。 在不同的模式下,所能用的寄存器不一样,如下表所示: 表二:a r m 的处理模式和寄存器 模式 r o r 7r 8 r 1 2r 1 3 一r 1 4 p c c p s r s p s r 用户 系统 琵 管理 s v cs v c 中止 a b ta b t 未定义u n du n d 中断 i r qm q 快中断 f i qf i qf i q t h u m b同上无 同上同上同上向上 除了用户模式,其它的都是特权模式。而在几种特权模式中,除了系统模式, 其它的又可叫作异常模式。 异常( e x c e p t i o n ) 是由内部或外部产生,以引起处理器处理一个事件,在处 理异常之前,处理器状态必须保留:以便在异常处理程序完成后,原来的程序能 够重新执行。一共有7 种类型的异常,如下表描述: 表三:a r m 的异常处理 异常类型处理器模式异常向量地址 优先级 复位 管理0 x 0 0 0 0 0 0 0 01 ( 最高) 未定义指令未定义 o x 0 0 0 0 0 0 0 4 6 软件中断( s w i )管理o x 0 0 0 0 0 0 0 8 6 预取中止( 取指令存储器中止) 中止o x 0 0 0 0 0 0 0 c 5 数据中止( 数据访问存储器中止) 中止o x 0 0 0 0 0 0 1 02 中断i r q中断i r q 0 x 0 0 0 0 0 0 1 8 4 快中断f i q快中断f i q 0 x 0 0 0 0 0 0 1 c3 2 2 3a r m 的流水线结构 a r m 7 架构采用了三级流水线, 取指:从存储器中取出指令( f e t c h ) 译码:指令译码( d e c ) 执行:包括取数据、运算、写回等操作。 上述的三级流水线阻塞主要产生在存储器访问和数据通路的占用上。因此 a r m 9 及s t r o n g a r m 架构都采用了五级流水线:取指、指令译码、执行、数据 缓存和写回。 在x s c a l e 中,则采用了7 8 级超级流水线: 图1 :x s c a l e 流水线示意图 主流水线由f 1 f 2 、i d 、r f 、x 1 、x 2 和x w b ,7 级流水线构成: f 1 f 2 :2 级指令预取; i d :指令译码; r f :寄存器臊作集移位; x 1 :a l u 执行操作; x 2 :状态修改操作: x w b :写回。 存储器流水线上在跟主流水线在后阶段分叉开了, d 1 :用来计算存取的地址: d 2 :数据c a c h e 及小型数据c a c h e 给出数据; d w b :进行填入缓冲器和写出缓冲器的操作。 乘累加m a c 流水线,实际上不算是一条真正流水线,因为该流水线的线数 随着操作数的类型和操作类型而变化。它只允许出现一条指令,不允许同时出现 两条指令。当一条指令在m 1 或m 2 操作时,同时还会占用相应的x 1 和x 2 级 流水线。 2 2 4a r m 存储器结构 a r m 架构的处理器的存储器寻址空间有4 g 字节,该存储空间可以分为可 快存可缓冲( c a c h e a b l e b u f f e r a b l e ) 区域和不可快存不可缓冲区域。 a r m 架构的处理器,有的带有指令快存( i c a c h e ) 和数据快存( d c a c h e ) ; 但是,片内都不带有片内r a m 和片内r o m 。系统所需的r a m 和r o m ( 包括 闪存f l a s h ) 都通过总线外接;由于系统的地址范围较大( 2 3 2 = 4 g 字节) ,故 有的片内还带有存储器管理单元m m u ( m e m o r ym a n a g e m e n tu n i t ) 。a r m 架构 处理器还允许外接p c m c n 。 常用的c a c h e 有指令和数据统一的c a c h e 和指令和数据分离的i - c a c h e 与 d c a c h e 。新型的a r m 架构处理器较多采用了i - c a c h e 与d c a c h e 的独立快存结 构。下表列出各种c a c h e 结构的性能: 表四:c a c h e 性能 c a c h e 结构性能 无c a c h e 1 i - c a c h e ( o n l y ) 1 9 5 d - c a c h e ( o n l y ) 1 _ 1 3 i c a c h e 和d c a c h e2 5 a r m 存储器管理单元m m u 对于3 2 位地址4 g 字节寻址的架构a r m 处理器一般都采用页式寻址的方 式。由于目录项和页表都存放在主存中,从逻辑地址变换成真正物理地址需要访 问两次主存。因此,在逻辑地址与物理地址之间插入了一个地址变换后备缓冲器 t l b ( t r a n s l a t i o nl o o k a s i d eb u f i e r ) 。在t l b 中仅保存最近使用过的页表项,采 用和c a c h e 相类似的方法来提高访问数据的速度a a r m 的存储器管理通过系统控制协处理器c p l 5 来实现。 2 2 5a r m 协处理器接口 a r m 为了便于片上系统s o c 的设计,a r m 处理器内核尽可能精简,要增 加系统的功能,可以通过协处理器来实现。在逻辑上,a r m 可以扩展1 6 个协处 理器,每个协处理器可有1 6 个寄存器。如下表所示,c p l 5 协处理器已经被用来 进行m m u 和保护单元的系统控制:而c p l 4 协处理器在j 1 a g 调试中使用,即 调试通信通道d c c ( d e b u gc o m m u n i c a t i o nc h a n n e l ) 。 表五:a r m 的协处理器 协处理器号功能 1 5系统控制 1 4调试控制器 1 3 - 8保留 7 4用户 3 - 0保留 协处理器也采用l o a d s t o r e 结构,用指令来执行寄存器的内部操作,取 数据从存储器至寄存器或把寄存器中的数据保护至存储器中,以及实现与a r m 处理器内核中寄存器之间的数据传送。而这些指令都由协处理器指令来实现。 2 2 6a r m a m b a 接口 a r m 处理器内核除了可通过内部总线选用c a c h e 等部件,或通过协处理器 接口扩充各种协处理器:也可以通过先进微控制器总线架构a m b a ( a d v a n c e d m i c r o c o n t r o l l e rb u sa r c h i t e c t u r e ) 来扩展不同体系架构的宏单元及1 1 0 部件。 a m b a 事实上已成为片上总线o c b ( o n c h i pb u s ) 标准。 a m b a 有先进系统总线a s b ( a d v a n c e ds y s t e mb u s ) 、先进外围总线a p b ( a d v a n c e dp e r i p h e r a lb u s ) 和先进高性能总线a h b ( a d v a n c e dh i g h - p e r f o r m a n c e b u s ) 等三类总线。 a s b 是目前a r m 常用的系统总线,用来连接高性能系统模块,它支持突发 ( b u r s t ) 方式数据传送。a s b 是可支持多主机的系统总线。 先进外围总线a p b 为外围宏单元提供了简单的接口。也可以把a p s 看作为 先进系统总线a s b 的余部,为外围宏单元提供了最简易的接口。 先进高性能总线a h b 不但支持突发方式的数据传送:而且,还支持分离式 总线事务处理,以进一步提高总线的利用效率。a h b 有逐步取代a s b 的趋势, 特别在高性能的a r m 架构系统,如a r m l 0 2 0 e 处理器核。 2 2 7 a r mj t a g 调试接口 j t a g 调试接口的结构如图2 所示。它由测试访问端口t a p ( t e s t a c c e s sp o r t ) 控制器、旁路( b y p a s s ) 寄存器、指令寄存器和数据寄存器,以及与j t a g 接口 兼容的a r m 架构处理器;处理器的每个引脚都有一个移位寄存单元,称为边界 扫描单元b s c ( b o u n d a r ys c a nc e l l ) ,它将j t a g 电路与处理器核逻辑电路联系 起来,同时,隔离了处理器核逻辑电路与芯片引脚;把所有的边界扫描单元构成 了边界扫描寄存器b s r ,该寄存器电路仅在进行j t a g 测试时有效,在处理器核 正常工作时无效。 t nt 2 3m i p s 体系结构 图2 :j t a g 调试接口示意图 m i p s ( m i c r o c o m p u t e 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 es t a g e ) ,无内锁流水段微型 计算机,同时也是”每秒百万条指令数”的双关语。m i p s 体系结构主要由以下几 部组成: m i p si n s t r u c t i o ns e ta r c h i t e c t u r e ( i s a ) m i p s 3 2 和m i p s 6 4i s a 定义m i p s 3 2 和m i p s 6 4 体系结构框架下的3 2 位和 6 4 位兼容指令。i s a 中包含了所有程序员操作处理器的指令,既有特权指令, 也有非特权指令。在m i p s 6 4i s a 中的指令向前兼容了m i p s 3 2i s a 中的指令。 许多指令都是3 个操作数符( o p e r a n d ) 。目标寄存器在左侧( 注意,这一点 与i n t e lx 8 6 正相反) 。 m i p sp r i v i l e g e dr e s o u r e ea r c h i t e c t u r e ( p g a ) m i p s 3 2 和m i p s 6 4p r a 定义了在i s a 上操作的环境和兼容性。有些p r a 成分能对非特权程序起到影响,比如,虚拟内存设计。但许多都是只是对特权程 序和操作系统才可见的。p r a 提供了一些必要机制用于管理处理器的资源:虚 拟内存、c a c h e 、异常、用户上下文等。 m i p sa p p l i c a t i o ns p e c i f i ce x t e n s i o n s ( a s e s ) m i p s 3 2 和m i p s 6 4 体系结构提供了对可选a s e 的支持。a s e 结合i s a 和 p r a 一起实现一个或一类特定的应用。因为a s e 是基于体系结构的,所以并不 要求a s e 实现那些在实际市场上不需要的功能或指令。 m i p su s e rd e f i n e di n s t r u c t i o n s ( u d i s ) 为了支持a s e ,m i p s 3 2 和m i p s 6 4 提供u d i 用于定义特定指令以配合实现 各个功能。 m i p s 体系结构家族包含如下几代。每一代之间都有一些区别。 m i p s1 :3 2 位处理器使用的指令集。仍然被广泛使用着。 m i p si i :为r 6 0 0 0 机器所定义的,包含了一些细微的改进。后来实现在1 9 9 5 年的3 2 位m i p s 实现中。 m i p si l l :r 4 x x x 的6 4 位指令集。 m i p ci v :m i p si i i 的一个细微的升级。定义在r 1 0 0 0 0 和r 5 0 0 0 中。 2 3 1m i p s 工作模式 一个m i p sc p u 可以运行在两种优先级别上,用户态和核心态。m i p sc p u 从核心态到用户态的变化并不是c p u 工作不一样,而是对于有些操作认为是非 法的。在用户态,任何一个程序地址的首位是1 的话,这个地址是非法的,对其 存取将会导致异常处理。另外,在用户态下,一些特殊的指令将会导致c p u 进 入异常状态。 2 3 2c p u 寄存器 3 2 个3 2 位的通用寄存器,r d 和r 3 1 比较特别。r o 的值总是为零,它可以 作指令写的目标寄存器,但操作就是把结果抛掉。它也可以作指令读的源寄存器, 其值总是零。而对r 3 1 ,当在指令j a l 、b l t z a l 、b l t z a l l 、b g e z a l 和 b g e z a l l 中没有明确指定寄存器时,就把r 3 1 当作目标寄存器。否则,在其它 情况下,r 3 1 就和其它一般的寄存器一样工作。 程序计数器( p c ) ; 一对特殊寄存器( h i 和l o ) h i 和l o 用于保存整数乘、除、乘加运算等结 果。 实际上,对于m i p si 和m i p si i 的机器,只有1 6 个偶数号的寄存器可以用 来做数学计算。奇数号的寄存器只用来作为寄存器与f p a 之间的数据传送。 早期的m i p s 乘法运算器不是特别快。它的基本功能是将两个寄存器大小的 值做一个乘法并将两个寄存器大小的结果存放在乘法部件里。m f h i ,m f l o 指令用 来将结果的两部分分别放入指定的通用寄存器里。 与整数运算结果不一样的是,乘法结果寄存器是互锁的( i n t e r - l o c k e d ) 。试图 在乘法结束之前对结果寄存器的读操作将被暂停直到乘法运算结束。 f p u 寄存器: 3 2 个浮点寄存器。这些寄存器在3 2 位f p u 中为3 2 位,而在6 4 位f p u 中 则为6 4 位。 5 个f p u 控制寄存器( f i r 、f c c r 、f e x r 、f e n r 、f c s r ) ,用于识别和 控制f p u : 8 个浮点状态码,是f c s r 的一部分。 2 3 3m i p s 流水线 可提供两种类型的流水线:超级流水线和超标量流水线。在i s a 中并不定 义流水线或指令多发,具体采用什么样的流水线有具体实现而定。 一般流水线分成四级: f e t c h :预取指令; a r i t h m e t i co p e r a t i o n :计算操作; m e m o i ya c c e s s :访问内存; w m eb a c k :写回。 2 3 4m i p s 存储结构 在m i p sc p u 里,你的程序中的地址不一定是芯片真正访问的物理地址。 在3 2 位下,程序地址空间划分为4 个大区域。每个区域有一个传统的名字。 对于在这些区域的地址,各自有不同的属性: k u s e g :0 x 0 0 00 0 0 0 0 x 7 f f f f f f f ( 低端2 g ) :这些地址是用户态可用的地址。 在有m m u 的机器里,这些地址将一概被m m u 作转换。除非m m u 的设置被建 立好,这2 g 地址是不可用的。对于没有m m u 的机器,存取这2 g 地址的方法 和具体机器相关。 k s e g o :o x 8 0 0 00 0 0 0 0 x 9 f f ff f f f ( 5 1 2 m ) :这些地址映射到物理地址简单 的通过把最高位清零,然后把它们映射到物理地址低段5 1 2 u ( o x 0 0 0 00 0 0 0 0 x l f f ff f f f ) 。因为这种映射是很简单的,通常称之为“非转换的”地址区域。 l 乎全部的对这段地址的存取都会通过快速缓存( c a c l l e ) 。因此在c a c h e 设置好之 前,不能随便使用这段地址。通常一个没有m m u 的系统会使用这段地址作为其 绝大多数程序和数据的存放位置。对于有m m u 的系统,操作系统核心会存放在 这个区域。 k s e g l :0 x a 0 0 00 0 0 0 0 x b f f ff f f f ( 5 1 2 m ) :这些地址通过把最高3 位清零 的方法来映射到相应的物理地址上,与k s e 9 0 映射的物理地址一样。但k s e 9 1 是 非c a c h e 存取的。k s e 9 1 是唯一的在系统重启时能正常工作的地址空间。这也是 为什么重新启动时的入1 2 1 向量是0 x b f c 00 0 0 0 。这个向量相应的物理地址是 0 x l f c 00 0 0 0 。你将使用这段地址空间去存取你的初始化r o m 。大多数人在这段 空间使用i o 寄存器。 k s e 9 2 :0 x c 0 0 00 0 0 0 - 0 x f f f ff f f f ( 1 g ) :这段地址空间只能在核心态下使 用并且要经过m m u 的转换。在m m u 设置好之前,不能存取这段区域。除非你 在写一个真正的操作系统,一般来说你不需要使用这段地址空间。 表六:m i p s 的地址空间分配 k s e 9 2 0 x c 0 0 00 0 0 0 一o x f f f ff f f f ( 1 g ) 核心态下使用删u 转换 k s e g l o x a 0 0 00 0 0 0 一o x b f f ff f f f ( 5 1 2 m ) 非c a c h e 存取,唯一的在系统重启时能正 常工作的地址空间 k s e 9 0 0 x s 0 0 00 0 0 0 一o x 9 f f ff f f f ( 5 1 2 m ) 通过c a c h e 存取 k u s e g 0 x 0 0 00 0 0 0 一o x t f f ff f f f ( 低端2 g ) 用户态m l u 转换 虽然如果把操作系统运行在核心态下,平常的代码运行在用户态下是一种不 错的选择。但如果反之也不为过。 一个3 2 位程序存取的是6 4 位程序空间的最低和最高的2 g 。换句话说,6 4 位c p u 的地址空间的最低和最高区域是和3 2 位情况下一样的,6 4 位扩展的地 址部分在这两者之间。 2 3 5 内存访问类型 u n c a c h e d :每次读写都从物理内存中取得,不对c a c h e 进行测试和修改。 c a c h e d :物理内存和所有c a c h e ( 保存某些物理内存块备份) 一起用于解决 访问处理。 在处理器和内存之间有t l b ,可配置为使用或不使用它。一个m a p p e d 地址 是指通过t l b 或其它地址翻译单元翻译的地址。一个u n m a p p e d 地址是还没被 t l b 翻译的地址,它被映像到物理地址o x o 开始,并有相同大小的一块上。因 为所有的u n m a p p e d 块都映像到那里所以会有多块同时映像到0 x 0 处。 2 3 6 异常处理 对于m i p s 体系结构,几乎所有的异常都是精确异常。 为了达到这个目的,当发现有异常情况一直要等到确认有异常情况的指令的 前面的所有指令都不产生异常时才产生异常。在发现异常情况时,该情况只是被 记下来沿着流水线传递下去直到某一级。如果在这个过程中以前的指令产生的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025江苏无锡市锡山经济技术开发市政工程有限公司招聘1人笔试历年参考题库附带答案详解
- 2025年南昌县小蓝经开区某单位招聘派遣制工作人员7人笔试历年参考题库附带答案详解
- 2025内蒙古巴彦淖尔市能源(集团)有限公司招聘笔试历年参考题库附带答案详解
- 2025赤峰市委党校竞争性比选事业编制工作人员模拟试卷含答案详解
- 2025贵州茅台酒股份有限公司高层次人才(博士研究生)引进14人考前自测高频考点模拟试题带答案详解
- 2025年河北廊坊大厂县中医医院公开招聘医师10人考前自测高频考点模拟试题有完整答案详解
- 2025年临沂市体育局部分事业单位公开招聘教师(4名)模拟试卷及答案详解(新)
- 2025安徽淮安市毛集实验区招聘区属国有企业副职岗位3人模拟试卷完整参考答案详解
- 2025国家税务总局税务干部学院招聘事业单位工作人员36人模拟试卷及1套参考答案详解
- 2025年度青岛市园林和林业局所属事业单位青岛市园林和林业综合服务中心公开模拟试卷及答案详解(名师系列)
- 考务资格审核培训
- 2025四川成都蒲江县国有资产监督管理局县属国有企业招聘管理人员7人考试参考题库及答案解析
- 井下安全用电培训课件
- 校企合作教材开发协议书
- 2025年医院麻醉科服务优化计划
- 校车安全管理操作规范
- Unit2WheredoanimalslivePeriod4课件-四年级上册《英语》(沪教版)
- 2025年秋期人教版3年级上册数学核心素养教案(第4单元)(教学反思有内容+二次备课版)
- 掼蛋教学课件
- 2025年北京市高考卷语文(纯答案版)
- 珠宝销售的培训课件
评论
0/150
提交评论