(计算机科学与技术专业论文)x86系统保护模式的实现与优化.pdf_第1页
(计算机科学与技术专业论文)x86系统保护模式的实现与优化.pdf_第2页
(计算机科学与技术专业论文)x86系统保护模式的实现与优化.pdf_第3页
(计算机科学与技术专业论文)x86系统保护模式的实现与优化.pdf_第4页
(计算机科学与技术专业论文)x86系统保护模式的实现与优化.pdf_第5页
已阅读5页,还剩68页未读 继续免费阅读

(计算机科学与技术专业论文)x86系统保护模式的实现与优化.pdf.pdf 免费下载

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

文档简介

摘要 b t c l 的3 2 位处理器( 简称n 。3 2 ) 体系结构中的保护模式是其独有的一套保 护策略,也是各种商业化处理器中介绍极少的部分,其实现是设计兼容x 8 6 处理 器的难点。本文来源于西北工业大学航空微电子中心菜“十五”预研项目,作者 参与完成了支持保护模式的龙腾c 2 微处理器的设计与验证工作。 本文首先详细分析了i a - 3 2 体系结构中的保护模式,确定了龙腾c 2 微处理器 中保护模式的功能,结合龙腾c 2 处理器的设计给出了保护模式的设计方案,并在 设计中予以实现,最后还对保护模式的验证策略和验证方案做了详细的设计,并 且完成了保护模式的验证。 本论文的主要工作如下: 1 深入了解【缸3 2 体系结构中保护模式的功能,包括三种工作模式、地址变换机 制、任务管理机制和异常调试机制。确定了龙腾c 2 微处理器中要实现的保护 模式的功能。 2 详细分析了4 8 6 指令集中的保护模式类指令的微操作,通过分析之后确定了通 过微指令的方式来实现保护模式类指令的功能,并得出可以在微指令级采用 r j s c 结构的流水设计的结论。 3 结合保护模式的功能,参与了龙腾c 2 微处理器总体设计和流水线的划分工作, 完成了流水线各级功能的划分,将保护模式的功能点分散在流水线的各级来实 现,参与了微指令格式的设计工作。 4 根据流水线各级的功能和微指令的格式,将保护模式类指令转换为相应的微指 令,并在转换过程中对一些指令实现的关键算法进行研究,完成了微程序的设 计并通过优化微程序来实现保护模式的优化。 5 对保护模式的测试设计了详细的测试方案,完成了保护模式测试平台的搭建, 确立了保护模式指令测试的程序设计规则及程序设计模版,对如何完成保护模 式所有功能点的禊9 试进行了研究。熟练掌握了d o s 下保护模式的编程。 本文紧密结合课题,完成了支持保护模式的3 2 位嵌入式微处理器的设计工作, 该文的研究成果对进一步研究更高级的x 8 6 系列处理器提供了方法和思路。 关键词:保护模式,虚拟存储器,x 8 6 a b s t r a c t p r 0 1 瞄t c dm o d ei sap a 币c u l 缸p r o t e c ts 仃a t e g yi nh t e l ( i a - 3 2 ) ,“sa l s oi n 仃o d u c e d b yc o r n m 础p i d c e s s o r 删y r e s 髑r c h i n ga n di m p l e m e n t i n gm ep r o t e c t e dm o d ei s o n eo f t h e 砌丘c u l d e si nc o m p 锄l em i c r 0 - p r o c e s s o rd e s i 盟n ew o r ko f t h i st l l e s i si s s u p p l o 删b yt h en 撕o m la d v 锄c e dr e s e 眦l lp r q e c t n ea u t l l o rt 0 0 kp a ni l l 他d c s i 弘 o fc n l _ b 。d d o dm i c r o - p r o c e s s o r l o n g t i 姗c 2 ” 1 1 l i sp a p 盯她a l y s e dt h e 血c t i o no fm - 3 2p r o t c c t e dm o d e ,c o n 五肋e dt l l ef i i c 6 0 n t l l a tl o n g t i 啪c 2w o u l di n l p l 锄e n t ,d e s i g n e dt l l ei m p l e m e n ts t a _ c e g yo f 曲l cp r 0 把c t e d m o d e ,i i n p l e i n c n t e dt l l el o n g t i 啪c 2 缸dc o m p l e t e dm ev e r i f i c a 廿叩o f p r o t c c t e dm o d e t h er e s e a r c hw o i l 【o f t h i sp a p c rm a i n l y 缸c l u d e s : 1 s t u d i e dt i 峙舭t i o no fl a 一3 2p r o t c c t e dm o d e ,i n c l u m n gt 1 1 1 w o r | 面gm o d c s , a d d r s s岫f - 锄m e c k i i l i 黜,t a s km 卸q g e m 衄tm e c h a i l i s m 缸de x c 印t i o n d 曲咖gm c c h 跚i s m c o m f i r n l c dm ef h c 6 0 no f l o n 亦啪c 2p r o t o c t e dm o d c 2 a n a l y s c dt h el n i c r o 叩e r a t i o no f m e4 8 6p r o t e c t c dm o d ei n s t r i l c t i o 璐,c o m 硒e dt h e p r o t o c t e dm o d ei l l 鼬m c 6 0 n 呻l e n l e n tm e l h o d 锄dp r o c e s s o r sp i p e l i n ea r c l l i t e c t l l r e 3 1 b o kp a ni n 【舢鲥啪c 2 s 鲫埘t e c t u 糟强dp i p e l i n cd e s i g n d i “d e dt l l ep f o t c c t e d m o d c 血n c t i o 璐协t o 伍ef h n c t i o m lm o d u l e s ,d e s i 印c dt l l em i c r o i 璐m l c t i o n s 如肌a t 4 b 硒i n go nt h ef h c d o no fp i p e l i n ea n dt l l ef o 肌a to fm i c r o i n s t m c t i o n ,仃a i 碍f b n n e d a n do p 血i z e dm ei i l s n l l c d o n sn l i c r o 叩枷。璐i n t ot h em i c r o i l l 蚰m c t i o n s ,锄d s t l l d i e dm ek e y 撕吼e 血o f t h ei n s 姐i c t i o n s 5 d e s i 盟e dt h et e s ts 昀t e g yf o rt e s 曲gt l l ep m t 咖dm o d e ,b u i l dt l l ep r o t e c t c dm o d e t e s tc i l v i n i l e n t 锄dp m 掣籼e rm o d e i ,s t i l d i e dh o wt oc o v 钉a g em nf h c 石s w 而t e d o st e s tp r o 伊锄瑚伪 t b ed i s s 删o nd o 鼯s 嘲er c s e a r c hd b o m3 2 - b i t 锄b c d d e dm i c r o p r o c e s s o r 删僦t i l r eg u p p o 咖gp m t e c t c dm o d e ,t h er e s e a r c hw o r ko 仃b 塔d e s i g nc o i l s i d e 枷。璐 觚dt l l r l o l o 百c a lr c s e n r e sf b fl l i g h e rp 耐b 衄锄c em i c r o p r 0 h c e s rd e s i 毋碍谢t l lx 8 6 a r h j t e c t i l r e s 。 k e yw o r d s :p m t e c t e dm o d e ,、石n l l a lm 锄o r y ,x 8 6 西北工业大学业 学位论文知识产权声明书 本人完全了解学校有关保护知识产权的规定,即:研究生在校攻读学位期间论交 忭 的知识产权单位属于西北工业人学。学校有权保留并向国家有关部门或机构送交论文的复 印件和电子版。本人允许论文被查阅和借阅。学校可以:悔本学位论文的全部或部分内容编 入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 同时本人保证,毕业后结合学位论文研究课题再撰写的文章一律注明作者单位为西北工业 大学。 保密论文待解密后适用本声明。 学位论文作者签名:月瞪 加叼年3 月7 日 指导教师签名 缳弛 伊7 年;月7 日 西北工业大学 学位论文原创性声明 秉承学校严谨的学风和优良的科学道德,本人郑重声明:所呈交的学位论文,是本 人在导师的指导下进行研究工作所取得的成果。尽我所知,除文中已经注明引用的内容 和致谢的地方外,本论文不包含任何其他个人或集体已经公开发表或撰写过的研究成 果,不包含本人或其他已申请学位或其他用途使用过的成果。对本文的研究做出重要贡 献的个人和集体,均已在文中以明确方式表明。 本人学位沦文与资料若有不实,愿意承担一切相关的法律贡任。 学位论文作者签名:癣垡始 仍叮年3月宇日 西北工业大学硕士学位论文 第一章绪论 1 1 课题的背景与意义 第一章绪论 1 9 7 1 年硫e l 公司设计出世界第一块微处理器4 0 0 4 ,揭开了微处理器发展的序 幕。在3 0 多年的发展历程中出现了许多优秀的处理器,但这些处理器的核心技术 都被国外的公司所垄断。p c 市场基本被h l t c l 和a m 两家公司的x 8 6 系列的处理 器所占领,在服务器领域,基本被m m 、h p 、s u n 等几家厂商所瓜分。 在国内,基于产业政策和信息安全的要求,国家对自主知识产权的芯片的发 展非常重视,在通讯和消费类电子产品中,经过几年的发展,已经有一些产品顺 利打入国际市场。如中星微电子的“星光”系列在国际市场上已经占有4 0 的份额 了。通用处理器方面,在刚s c 处理器领域有北大众志。中科院龙芯等系列都已经 成功流片并通过国家验收,2 0 0 6 年6 月,中科院计算所和全世界排名第五的集成 电路生产厂商意法半导体公司签订技术许可协议,该公司决定购买龙芯2 e 的生产 和全球销售权,并计划每年销售龙芯芯片l o o o 万片以上,据公布的授权合作协议, 中科院计算所在龙芯2 e 上一年可获2 0 0 0 万美元,这是中国在微处理器芯片产业 的第一大单。而在以x 8 6 为代表的c i s c 处理器这个市场最大的领域,国内的研 究却非常之少,原因在于关于x 8 6 处理器的关键技术把握在少数几家公司手中, 由于商业利益的关系,对于高端处理器的关键技术它们很少向外公布。 由于我国i c 总体水平落后于发达国家,对于高性能处理器的研发和制造还没 有成功的经验和技术,很难与已经成功商业运营多年的处理器产品竞争,但在嵌 入式和工业控制领域,x 8 6 系列处理器也应用非常广泛,并且该领域对处理器的 性能要求不高,注重处理器的低功耗和可配置性,由于种种原因主流处理器厂商 已停止生产低端处理器,这就产生一个市场的空缺,可以为我们研制的x 8 6 处理 器找到一个较大的市场。 p c i 0 4 工控机的微处理器普遍使用4 8 6 d x 和p t i 呦,目前至少有1 5 0 家以 上的制造商正在生产着数百种各具特色的p c l 0 4 产品,市场规模以每年3 5 的比 率扩大。我国工控机的研制水平与国外相比有较大的差距。目前我国的嵌入式工 控机几乎全部采用进口的微处理器和芯片组,不利于国内工控机产业提高产品竞 争力和持续研发能力,关键芯片受制于人,而且存在极大的安全隐患。自主设计、 研制具有自主知识产权的嵌入式系统级芯片成为共识,这对提高产品的性能和可 靠性,增强国产嵌入式工业控制系统的自主开发能力,具有重要意义。同时产品 1 西北工业大学硕士学位论文 第一章绪论 也有广阔的市场,实现我国自主研发芯片的产业化。 本文来源于西北工业大学航空微电子中心某”十五”预研课题。该课题完成了 4 8 6 d x 4 兼容微处理器p 核、4 8 6 芯片组、外围设备p 核的开发,建立了以4 8 6 微处理器为核心的s o c 设计平台,并完成了p c i 0 4 工控系统s o c 芯片( 龙腾s 2 ) 的研制和系统应用验证。龙腾s 2 系统芯片完全采用自顶向下的正向集成电路设计 方法,各个口具有自主知识产权。作者负责完成了龙腾s 2 中核心部件4 8 6 d x 4 兼容处理器龙腾c 2 中关键技术保护模式的设计与实现。 1 2 研究现状 处理器在支持多任务多用户时,必须要引入任务保护机制,它需要处理器、 操作系统和编译器共同支持。在l a 3 2 体系结构中,处理器提供了极其复杂的保护 模式功能,来支持多任务多用户。 在x 8 6 处理器领域有多款成功商业化的处理器产品,但其中关于保护模式的 实现方案却很少提到。国内也有几家研究x 8 6 体系结构的机构,其中以国防科技 大学的研究较成熟,其x 系列处理器在众多国内x 8 6 处理器芯片中也较成功,但 其关于保护模式介绍的细节也没有相关的论文发表。 本中心关于保护模式的研究从李树国博士开始【l 。”,设计并实现了本中心第 一款1 6 位n c s 处理器【。鼬“】,它兼容i n t e l2 8 6 指令集,支持1 6 位保护模式。随 后开始研究3 2 位保护模式的实现,参与设计实现了本中心支持3 2 位保护模式的 兼容4 8 6 d x 2 指令集的龙腾c 1 微处理器州”,龙腾c l 不是流水线结构,主频为 6 6 瑚z ,对保护模式的支持是通过设置单独的保护模式测试单元来实现的。 为了提高处理器性能,本中心的龙腾c 2 处理器采用流水线的设计结构,设计 主频为1 3 3 m h z 。这就为保护模式的实现带来一定的挑战,本人的主要工作是负者 龙腾c 2 中如何在流水线中实现保护模式的功能。 1 3 论文结构 本论文一共分为6 章,各章的具体内容如下: 第一章绪论。主要介绍本论文所做课题的背景,来源和工作的意义。并介 绍了保护模式的研究现状和论文的组织结构。 第二章龙腾c 2 保护模式的功能。总结了保护模式的功能,对保护模式的功 能进行了细分,从工作模式、地址变换机制、任务管理机制和异常调试机制四个 方面明确了龙腾c 2 处理器保护模式要实现的功能点。 第三章龙腾c 2 中保护模式的设计。详细研究了保护模式类指令执行的流程, 2 西北工业大学硕士学位论文第一章绪论 总结出了复杂指令中微操作的特点,并结合一条具体指令给出了指令分析的过程 及结果。根据得到的分析结果,划分相应的流水线及各个模块的功能。 第四章龙腾c 2 保护模式的实现。这一章着重介绍了保护模式的具体实现, 包括保护模式的关键算法、微程序控制器的设计、异常机制的实现和微指令的设 计及微程序的设计与优化。 第五章龙腾c 2 保护模式的验证。首先确立了保护模式的验证策略,搭建了 保护模式验证平台,从模块到系统级对保护模式进行了验证。并给出了整个保护 模式的验证方案和具体的验证实例。 第六章结束语。总结了本文的全部工作,归纳了本课题的主要成果,指出 现有工作中存在的问题,并对下一步的工作进行了说明,最后展望了课题的前景。 3 西北工业大学硕士学位论文第二章龙腾c 2 保护模式的功能 第二章龙腾c 2 保护模式的功能 本章主要从分析i a 3 2 体系结构中保护模式功能的基础上,明确了龙腾c 2 保 护模式要实现的功能,将保护模式的功能进行总结,根据功能将其分成四个部分, 在以后的设计中对四个部分的功能实现即可完成对保护模式功能的设计。 2 1 工作模式 龙腾c 2 保护模式同i a 3 2 体系结构【”嘲【1 ”蚓1 1 ”州i ”叼相兼容,提供了三种 工作模式:实模式、保护模式和虚拟8 0 8 6 模式。 实模式即8 0 8 6 工作方式,是为了兼容8 0 8 6 下的程序,h l t e l 以后的处理器都 支持这种模式,它是处理器的初始模式,在处理器启动的时候首先进入实模式, 通过实模式进入保护模式和虚拟8 0 8 6 模式。在实模式下的访存空间为1 m ,没有 保护机制。 保护模式是分为1 6 位保护模式和3 2 位保护模式两种。1 6 位保护模式首先是 由h l l c l2 8 6 处理器引入的,只有分段机制,没有分页机制,访存空间为1 6 m 。3 2 位保护模式是由b t e l3 8 6 处理器引入的,它能最大限度的发挥3 2 位处理器的性能, 支持段页的地址交化机蒂4 ,物理访存空间为4 g ,虚拟访存空间达到6 4 t 。提供分 级存储保护机制( 1 l i e r a r c h i c a l m e m o r y m c c h a l l i 锄) ,主要是特权级保护和访问权保 护。 表2 - l 各种模式童间的不同 实模式1 6 保护模式3 2 保护模式 虚拟8 0 8 6 模式 访存空间1 m1 6 m4 g 1 m 段机制支持支持支持 支持 页机制不支持不支持支持 支持 特权级检查不支持支持支持 支持 i o 操作检查不支持不支持支持 支持 虚拟8 0 8 6 模式是保护模式下的一种工作方式,它在保护模式环境中虚拟一个 8 0 8 6 的处理器。一个完整的虚拟8 0 8 6 方式任务是由8 0 8 6 程序和虚拟8 0 8 6 监控器 组成的。监控器是一个保护模式程序,并且当它执行时处理器处于保护模式。处 4 西北工业大学硕士学位论文第二章龙腾c 2 保护模式的功能 理器在控制传给虚拟8 0 8 6 任务时进入虚拟8 0 8 6 方式,并在监控器重新得到控制 时返回保护模式。表2 1 给出了这三种模式的区别。 2 2 地址变换机制 龙腾c 2 微处理器采用分段与分页结合的机制进行地址管理,地址变化机制完 全兼容h l t e l4 8 6 d x 4 的地址变换机制,对于它们的地址变换方式,相关资料有详 细的描述,这里不再赘述。 这里主要详细介绍地址管理的中的保护机制。 2 2 1 段保护 段选择子用来选择描述符表中的某个描述符,长1 6 位,其格式如表2 - 2 所示。 从表中可见,段选择子的高1 3 位是描述符索引( h l d c ) 【) 。所谓描述符索引是指描 述符在描述符表中的序号。段选择子的第2 位是引用描述符表指示位,标记为n ( 1 曲1 eh l d i c a 衙) ,;o 指示从全局描述符表g d t 中读取描述符;t i _ 1 指示从局 部描述符表u ) t 中读取插述符。 表2 2 段选择子格式 f 1 51 41 3 1 2 l l1 09 8 765 432lo l1 1 1 d e 】【 t ir p l 在保护模式下,编程可见的段寄存器不再存放段基址的值,而是存放段选择 子的值,处理器要使用选择子所指定的描述符中的基地址等信息。为了避免在每 次存储器访问时,都要访问描述符表而获得对应的段描述符,从8 0 2 8 6 开始每个 段寄存器都配有一个高速缓冲寄存器,称之为段描述符高速缓冲寄存器或描述符 投影寄存器。每当把一个选择子装入到某个段寄存器时,处理器自动从描述符表 中取出相应的描述符,把描述符中的信息保存到对应的高速缓冲寄存器中。此后 对该段访问时,处理器都使用对应高速缓冲寄存器中的描述符信息,而不用再从 描述符表中取描述符。 各段描述符高速缓冲寄存器之内容如表2 3 所示。其中,3 2 位段基地址直接 取自描述符,3 2 位的段界限取自描述符中2 0 位的段界限,并根据描述符属性中的 粒度位转换成以字节为单位。其它十个特性根据描述符中的属性而定,y 表示 “是”,n ”表示“否”,r ”表示必须可读,“p 表示必须可写,p ”表示必须存在, d ”表示根据描述符中属性而定。每次访存请求都要进行相应的保护检查。 5 西北工业大学硕士学位论文 第二章龙腾c 2 保护模式的功能 2 3 段描述符高速缓冲寄存器的内容 段属性 段寄段基段界 存特已 粒 扩展 可可可 堆栈一致 存器地址限 在权存 度方向 读写执 大小特权 性级取性性行 3 2 位3 2 位 c s 基地段界 p dddd dnyd 址限 3 2 位 3 2 位 s s 基地段界 pddddrwnd 址限 3 2 位3 2 位 d s 基地段界p d ddd ddn 址限 3 2 位 3 2 位 e s 基地段界 pddddddn 址限 3 2 位 3 2 位 f s 基地段界 pddddddn 址 限 3 2 位3 2 位 g s 基地段界pddddddn 址限 2 2 2 页保护 在线性地址到物理地址进行页变化时,第一级称为页目录表,页目录表共有 l k 个表项,每个表项为4 字节长,包含对应第二级表所在物理地址空间页的页码, 存储在一个4 k 字节的物理页中。页转换表的第二级称为页表,每张页表也都有 l k 个表项,每个表项为4 字节长,安排在一个4 k 字节的页中。每张页表包含对 应物理地址空间页的页码。 页目录表和页表中的表项都采用如表2 4 所示的格式。 表2 4 页目录页表格式 3 l 一1 21 11 09876543210 医:雾薹瑟嚣颀地址二:二i 溺,a i l ood aoou ,s咖p 6 西北工业大学硕士学位论文第二章龙腾c 2 保护模式的功能 从表2 4 中可见,最高2 0 位( 位1 2 位3 1 ) 包含物理地址空间页的页码,也 就是物理地址的高2 0 位,低1 2 位包含页的属性。 p 表示该表项是否有效。p = 1 表项有效;p 踟表项无效,在异常检测中p 位 具有最高的优先级,只有它为1 时,处理器才会去判断其它项。在通过页目录 表和页表进行的线性地址到物理地址的转换过程中,无论在页目录表还是在页 表中遇到无效表项,都会引起页故障。 m ) i ,指定页目录表和页表的读写属性。 i i ,s指定页目录表和页表的优先级属性。分页机制只区分两种特权级,特权 级o 、1 和2 合在一起组成系统特权级,特权级3 称为用户特权级。 在具体实施保护时,检查页目录项和页表项的属性位p ,看对应的页是否存在; 通过两级表的组合属性和c r d 控制寄存器中的w p 位对页的特权级和访问类型进 行保护。在w p = o 时,页保护如表2 - 5 所示;在w 舡l 对,系统段如果对只读也进 行写操作时也会产生异常。 表2 - 5w p = 啦时页级保护属性 u s州 用户访闯权限系统访问权限 oo|读写执行 01 ,读写执行 l0 读,执行键材写 执行 l 1 读倡,执行读写执行 页的保护属性用页目录项及页级属性的组合进行计算。页表项中的u s 及r w 位应用于该页表项映射的一个页。页目录项中u s 及矾r 位则应用于由该页目录 项映射的所有l k 页。经组合的属性是通过对两个级的属性,执行“与操作来形成 的。因此,组合属性有相对于两个级别更加严格的控制。 2 2 3 i o 保护 龙腾c 2 对地址空间的保护采取了和内存地址不同的方式,使用i ,0 特权 级和许可位图的概念来完成加i 地址的保护。 优先级的保护 i o p l ( i o 优先级) 由e f i a g e 中的i o p l 字段决定,它规定了任务可以执行 所有与加i 相关的指令和访问空间中所有地址的最外层特权级。在保护模式下, 每个任务都有相应的优先级,当任务需要访问i o 地址时,就必须与e f i a g e 中的 1 0 p l 进行比较,如果当前优先级大于i o p l 的值,则表示本次1 0 操作不被允许, 7 西北工业大学硕士学位论文第二章龙腾c 2 保护模式的功能 产生1 0 保护异常;如果当前优先级小于或等于i o p l 的值,则表示本次i o 操作合 法,访问被允许。操作系统可以通过设置i o p l 的值来控制外设的访问等级。 i ,0 许可位图 在多任务的环境中,只使用1 0 p l 来限制对1 0 设备的使用不能满足多任务中 对设备使用的灵活性。因为这样做会使得在特权级3 执行的应用程序要么可访 问所有i ,0 地址,要么不可访问所有地址。因此,在i o p l 的基础上又采用了 i ,o 许可位图。许可位图定义了地址空间中那些地址可以由在任何特权级 执行的程序访问。 龙腾c 2 支持的地址空间大小是6 4 k ,因此在t s s 中存储了一个6 4 k 位的 位串,i 0 许可位图由二进制位串组成。位串中的每一位依次对应一个加地址, 如果位串中的第n 位为o ,那么对应的地址n 可以由在任何特权级执行的程序 访问;否则对应的地址n 只能由在i o p l 特权级或更内层特权级执行的程序访 问。如果在加l 外层特权级执行的程序访问位串中位值为1 的位所对应的地址, 那么将引起通用保护异常。 的地址空间按字节编址。一条瑚 指令最多可涉及四个粥i 地址。在需要根 据i ,0 位图决定是否可访问i ,o 地址的情况下,当一条i 0 指令涉及多个i ,o 地址 时,只有这多个比i 地址所对应的许可位图中的位都为o 时,该哟指令才能 被正常执行,如果对应位中任一位为1 ,就会引起通用保护异常。 当前任务使用的许可位图存储在当前任务t s s 中低端的6 4 k 字节内。加i 许可位图总以字节为单位存储,所以位串所含的位数总被认为是8 的倍数。从前 文中所述的t s s 格式可见,t s s 内偏移6 6 h 的字确定的许可位图的开始偏移。 由于许可位图最长可达8 k 字节,所以开始偏移应小于5 6 k ,但必须大于等于 1 0 4 ,因为t s s 中前1 0 4 字节为t s s 的固定格式,用于保存任务的状态。 2 3 任务管理机制 2 3 1 控制寄存器 龙腾c 2 共设置了四个3 2 位的控制寄存器,分别命名为c r o 、c r 2 、c r 3 和 c r 4 。这里只介绍它们与保护模式有关位的功能。 c r 0 第l 位标志处理器的运行模式是保护模式还是实模式,第3 2 位为分页 使能位,用来启用和禁止分页管理机制。 c i 匕在发生页异常的时候,用来存放发生异常时的段选择子。由处理器自动 写入。 8 西北工业大学硕士学位论文 第二章龙腾c 2 保护模式的功能 c r 3 高2 0 位用来存放页目录首地址。 2 3 2 系统地址寄存器 为了支持保护模式的任务管理机制,龙腾c 2 设置了四个任务相关寄存器,全 局描述符表寄存器( g 咖t ) 、局部描述符表寄存器( u ) t r ) 、中断描述符表寄存 器( d t r ) 和任务寄存器( t r ) 。它们包含了所有为段机制所用的重要表格,我 们把这些特殊的寄存器称为系统地址寄存器。 表2 _ 6 全局中断描述符标寄存器 b m 7 - b i t l 6b n 1 孓b n o 全局描述符表寄存器g 姗t基地址界限 中断描述符表寄存器m t r基地址界限 表2 7 局部任务状态段寄存器 b r r l 5 - b n o 局部描述符表寄存器l d t r选择子 任务状态段寄存器n t 选择子 b 兀3 l 名兀 ob i t 3 l b n 0b r r l l b 肿 基地址界限属性 基地址界限属性 全局描述符表寄存器指向整个系统的描述符,高3 2 位为基地址,低1 6 位 为界限,如表2 6 所示。必须在处理器进入保护模式之前设置好g d t r ,它是 进入保护模式必须访问的一个寄存器。由l g d t 指令加载。 局部描述符表寄存器 指向当前任务使用的局部描述符表,类似于段寄存器, 由程序员可见的1 6 位的寄存器和程序员不可见的高速缓冲寄存器组成,如表 2 - 7 所示。在初始化或任务切换过程中,把描述符对应任务l d t 的描述符的选 择子装入u ) t r ,处理器根据装入u ) t r 可见部分的选择子,从g d t 中取出 对应的描述符,并把u ) t 的基地址、界限和属性等信息保存到u ) t r 的不可 见的高速缓冲寄存器中。 中断描述符表寄存器 指向中断描述符表。与全局描述符格式相同,高3 2 位 为基地址,低1 6 位为界限,如表2 - 6 所示。由于4 8 6 d ) c 4 只支持2 5 6 个中断 异常,所以指向中断描述符表最大长度是2 k ,以字节为单位的段界限为7 f f h 。 m t r 指示d t 的方式与g d t r 指示g d t 的方式相同。 任务状态段寄存器 指向当前任务的任务状态段,格式与局部描述符表相 同,其中选择子部分存放当前任务的任务状态段的描述符选择子,t r 也有程 序员可见和不可见两部分,如表2 7 所示。当把任务状态段的选择子装入到 o 西北工业大学硕士学位论文第二章龙腾c 2 保护模式的功能 t r 可见部分时,处理器自动把选择子所索引的描述符中的段基地址等信息保 存到不可见的高速缓冲寄存器中。在此之后,对当前任务状态段的访问可快速 方便地进行。装入到t r 的选择子不能为空,必须索引位于全局描述符表中的 描述符,且描述符的类型必须是任务状态段( t s s ) 。 2 3 3 段描述符 在保护模式下,处理器为各种类型的段设置了相应的描述符。系统段描述符 的一般格式如表2 8 所示,属性位格式如表2 9 所示。 表2 - 8 段描述符 7 ( 6 - 5 ) ( 舢2 ) ( 1 - o ) b e ( 3 1 - 2 4 ) a t b 曲m e s b a s e ( 2 3 - 0 )l i l i l i “1 5 奶 表2 - 9 段属性 l l s 1 41 31 2( 1 1 8 )7 ( 6 - 5 ) 4 ( 3 o ) ig xoa v l l i l i l i t ( 1 9 - 1 6 ) pd p ld t ot y p e 段基址规定线性地址空间中段的开始地址,基地址时线性地址对应于段内偏 移为o 的虚拟地址。 段界限表示在虚拟地址中,段内可以使用的最大偏移量,界线定义段的容量。 p存在位。p = l 表示描述符所描述的段存在,即在内存中,描述符对地 址转换是有效的;p = o 表示描述符对地址转换无效,即该段不存在。使用该描 述符进行内存访问时会引起异常。 d p l描述符特权级,共2 位。它规定了所描述段的特权级,用于特权检查, 以决定对该段能否访问。 d t用来区分描述符是存储段描述符还是系统段描述符,d t = 1 表示存储 段,d t = 电表示系统段描述符和门描述符。 g段界限粒度g 瑚u l 抓t y 位。g = o 表示界限粒度为字节;g = 1 表示界限 粒度为4 k 字节。界限粒度只对段界限有效,对段基地址无效,段基地址总是 以字节为单位。 d它是一个很特殊的位,在描述可执行段、向下扩展数据段或由s s 寄存 器寻址的段( 通常是堆栈段) 的三种描述符中的意义各不相同。 在描述可执行段的描述符中,d 位决定了指令使用的地址及操作数所默认的 大小。d = l 表示默认情况下指令使用3 2 位地址及3 2 位或8 位操作数,这样的代 1 0 西北工业大学硕士学位论文第二章龙腾c 2 保护模式的功能 码段也称为3 2 位代码段;d = o 表示默认情况下,使用1 6 位地址及1 6 位或8 位操 作数,这样的代码段也称为1 6 位代码段,它与8 0 2 8 6 兼容。可以使用地址大小前 缀和操作数大小前缀分别改变默认的地址或操作数的大小。 在向下扩展数据段的描述符中,d 位决定段的上部边界。d = 1 表示段的上部 界限为4 g ;d = o 表示段的上部界限为6 4 k ,这是为了与8 0 2 8 6 兼容。 表2 1 0 描述符类型字段定义 编码存储段系统段 0 0 0 0 只读未定义 0 0 0 1 只读、已访问可用2 8 6 t s s o o l 0数据 读写l d t 0 0 1 1 段描 读写、已访问 忙的2 8 6 t s s 0 1 0 0 述符 只读、向下扩展 2 8 6 调用门 o 1 0 1 只读、向下扩展、已访问任务门 0 1 1 0 读写、向下扩展 2 8 6 中断门 0 1 l l 读泻、向下扩展、已访问2 8 6 陷阱门 1 0 0 0 只执行未定义 1 0 0 1 只执行、已访问可用3 8 6 1 r s s l o l o代码 执行读未定义 1 0 l l段描 执行牍、已访闯忙的3 8 6 t s s 1 1 0 0 述符 只执行、一致码段3 8 6 调用门 1 1 0 1 只执行、一致码段,已访问未定义 1 1 1 0 执行读、一致码段 3 8 6 中断门 1 l l l 执行读。一致码段、已访问3 8 6 陷阱门 在描述由s s 寄存器寻址的段描述符中,d 位决定隐式的堆栈访问指令( 如 p u s h 和p o p 指令) 使用何种堆栈指针寄存器。d = l 表示使用3 2 位堆栈指针寄存 器e s p ;d :o 表示使用1 6 位堆栈指针寄存器s p ,这与8 0 2 8 6 兼容。 a 。位是软件可利用位。8 0 3 8 6 对该位的使用未作规定,i n t e l 公司也保证今 后开发生产的处理器只要与8 0 3 8 6 兼容,就不会对该位的使用做任何定义或规 定。 t y p e 对于存储段描述符和系统段描述符r 开e 的解释不同。 属性中的g 位、a v l 位、p 位和d p l 字段的作用也完全相同。存储段描述符 属性中的d 位在系统段描述符中不使用,现用符号x 表示。系统段描述符的类型 1 1 西北工业大学硕士学位论文第二章龙腾c 2 保护模式的功能 字段t y p e 仍是4 位,其编码及表示的类型列于表2 - 8 ,其含义与存储段描述符的 类型却完全不同。 任务状态段描述符和门描述符是为任务切换和任务保护而专门设置的描述类 型,它们的结构和用法有别于普通的段描述符。这里重点介绍一下它们的结构及 功能。 任务状态段描述符 任务状态段( t s s ) 用于保存任务的各种状态信息,为了向下兼容4 8 6 d x 4 支 持3 8 6 t s s 和2 8 6 t s s 两种任务状态段。任务状态段描述符规定了任务状态段的基 地址和任务状态段的大小等信息。t s s 描述符也相应的分为2 8 6 t s s 和3 8 6 t s s 两 类。t s s 描述符的属性中有“忙”和“可用”之分,描述符所指的任务是当前正执行的 任务,或者是用t s s 中的链接字段沿挂起任务链接到当前任务上的任务,则该任 务为“忙”,否则为“可用”。 在装载任务状态段寄存器1 r 时,描述符中的段基地址和段界限等信息被装入 到t r 的高速缓冲寄存器中。在任务切换或执行l 1 取指令时,要装载1 r 寄存器。 门描述符 门用来控制目标代码段内入口点的访问,它是控制转移的源和目标之间的一 个间接级。插入该间接级是处理器能自动执行保护检查,它还允许系统设计人员 控制操作系统的入口点。门描述符中存放的数据与其它描述符不同,其一般格式 如表2 9 所示,其中属性字段如表2 1 0 所示。 表2 9 门描述符 7 石 ( 5 - 4 ) ( 3 - 2 ) ( 1 呦 o f r s e t ( 3 1 1 6 ) a n r i b u t e ss e l e c t o ro 1 5 o ) 表2 - l o 门描述符属性 l 5 1 4 - 1 3 1 21 1 87 54 _ d i p d p ld t ot y p e0 0 0 d w o r dc o 蚰t 在门描述符中新增了d w o r d c o u n t 字段,它只有在调用门中才有效,在通过调 用门调用另一个过程时,通常要传递一些参数到被调用的过程,这些参数一般放 在堆栈内。如果由于门的使用引起优先级的转换及堆栈的改变,则需要将一个堆 栈的参数复制到另一个堆栈。d w o r dc o u m 字段给出要复制的双字参数的数量。 西北工业大学硕士学位论文第二章龙腾c 2 保护模式的功能 调用门 调用门描述某个子程序的入口。调用门内的选择子必须指向代码段描述符, 调用门内的偏移是对应代码段内的偏移。利用段间调用指令c a i 上,通过调用门可 实现任务内从外层特权级变换到内层特权级。 任务门 任务门指示任务。任务门内的选择子必须指示g d t 中的任务状态段t s s 描述 符,门中的偏移无意义。任务的入口点保存在t s s 中。利用段问转移指令n 口和 段间调用指令c a u ,通过任务门可实现任务切换。 中断门和陷阱门 中断门和陷阱门描述中断异常处理程序的入口点。中断门和陷阱门内的选择 子必须指向代码段描述符,门内的偏移就是对应代码段的入口点的偏移。中断门 和陷阱门只有在中断描述符表d t 中才有效。 2 。3 4 任务状态段 任务状态段( t a s ks t a t es c g m e n t ) 是保存一个任务重要信息的特殊段。每个任务 有一个任务状态段t s s ,用于保存任务的有关信息,在任务内变换特权级和任务 切换时,要用到这些信息。任务寄存器t r 的可见部分含有当前任务的任务状态段 描述符的选择子,t r 的不可见的高速缓冲寄存器部分含有当前任务状态段的段基 地址和段界限等信息。 t s s 在任务切换过程中起着重要作用,通过它实现任务的挂起和恢复。所谓 任务切换是指,挂起当前正在执行的任务,恢复或启动另一任务的执行。在任务 切换过程中,首先,处理器中各寄存器的当前值被自动保存到1 r 所指定的t s s 中;然后,下一任务的t s s 选择子被装入t r 最后,从t r 所指定的t s s 中取出 各寄存器的值送到处理器的各寄存器中。由此可见,通过在t s s 中保存任务现场 各寄存器状态的完整映象,实现任务的切换。 3 8 6 任务状态段t s s 的基本格式如图2 1 所示。 1 3 西北工业大学硕士学位论文 第二章龙腾c 2 保护模式的功能 图2 13 8 6 任务状态段 从图2 1 中可见,t s s 的基本格式由1 0 4 个字节组成。这1 0 4 字节的基本格式 是不可改变的,但在此之外系统软件还可定义若干附加信息。基本的1 0 4 字节可 分为寄存器保存区域、内层堆栈指针区域、地址映射寄存器区域、链接字段区域 和其它字段等五个区域。 寄存器保存区域 1 4 西北工业大学硕士学位论文第二章龙腾c 2 保护模式的功能 寄存器保存区域位于t s s 内偏移2 0 h 至5 f h 处,用于保存通用寄存器、段寄 存器、指令指针和标志寄存器。当t s s 对应的任务正在执行时,保存区域是未定 义的;在当前任务被切换出时,这些寄存器的当前值就保存在该区域。当下次切 换回原任务时,再从保存区域恢复出这些寄存器的值,从而,使处理器恢复成该 任务换出前的状态,最终使任务能够恢复执行。 从图2 1 可见,各通用寄存器对应一个3 2 位的双字,指令指针和标志寄存器 各对应一个3 2 位的双字,各段寄存器也对应一个3 2 位的双字。段寄存器中的选 择子只有1 6 位,安排在双字的低1 6 位,高1 6 位未用,一般应填为0 。 内层堆栈指针区域 为了有效地实现保护,同一个任务在不同的特权级下使用不同的堆栈。例如, 当从外层特权级3 交换到内层特权级0 时,任务使用的堆栈也同时从3 级变换到o 级堆栈;当从内层特权级o 变换到外层特权级3 时,任务使用的堆栈也同时从o 级堆栈变换到3 级堆栈。所以,一个任务可能具有四个堆栈,对应四个特权级。 四个堆栈需要四个堆栈指针。 一t s s 的内层堆栈指针区域中有三个堆栈指针,它们都是4 8 位的全指针( 1 6 位 的选择子和3 2 位的偏移) ,分别指向o 级、1 级和2 级堆栈的栈顶,依次存放在 t s s 中偏移为4 、1 2 及2 0 开始的位置。当发生向内层转移时,把适当的堆栈指针 装入s s 及e s p 寄存器以变换到内层堆栈。外层堆栈的指针保存在内层堆栈中。没 有指向3 级堆栈的指针,因为3 级是最外层,所以任何一个向内层的转移都不可 能转移到3 级。但是,当特权级由内层向外层变换时,并不把内层堆栈的指针保 存到t s s 的内层堆栈指针区域。实际上,处理器从不向该区域进行写入,除非程 序设计者认为需要改变该区域的值。这表明向内层转移时,总是把内层堆栈认为 是一个空栈。因此,不允许发生同级内层转移的递归,一旦发生向某级内层的转 移,那么返回到外层的正常途径是相匹配的向外层返回。 地址映射寄存器区域 从虚拟地址空间到线性地址空间的映射由g d t 和u ) t 确定,与特定任务相 关的部分由l d t 确定,而l d t 又由u ) t r 确定。如果采用分页机制,那么由线 性地址空间到物理地址空间的映射由包含页目录表起始物理地址的控制寄存器 c r 3 确定。所以,与特定任务相关的虚拟地址空间到物理地址空间的映射由u ) t r 和c r 3 确定。显然,随着任务的切换,地址映射关系也要切换。 t s s 的地址映射寄存器区域由位于偏移1 c h 处的双字字段( c r 3 ) 和位于偏移 6 0 h 处的字段( u ) t r ) 组成。在任务切换时,处理器自动从要执行任务的t s s 中取 1 s 西北工业大学硕士学位论文第二章龙腾c 2 保护模式的功能 出这两个字段,分别装入到寄存器c r 3 和u ) t r ,这样就改变了虚拟地址空间到 物理地址空间的映射。 但是在任务切换时,处理器并不把换出任务的寄存器c r 3 和u ) 1 r 的内容保 存到t s s 中的地址映射寄存器区域。事实上,处理器也从来不向该区域自动写入。 因此,如果程序改变了u ) t r 或c r 3 ,那么必须把新值人为地保存到t s s 中的地 址映射寄存器区域相应字段中。可以通过别名技术实

温馨提示

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

评论

0/150

提交评论