- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
32位cpu的寻址方式
32位cpu的寻址方式
32位cpu 地址线扩展成了32位,这和数据线的宽度是一致的。因此,在32位机里其实并不需要采用“物理地址=段:偏移”这种地址表达方式。原来在16位机里规定的每一个段不大于64kb在32位机里也不是必要的。所以,对于32位机来讲,最简单的方法就是用一个32位数来标识一个字节的存储地址,寻址时只要给出一个32位数就可以直接找到地址。这种地址储存模型就属于“平展储存模型”。
但是,新产品一般都希望遵循“向下兼容”这个原则。所以,32位机里完整的保留了16位寻址模式。即:寻址能力为1M;分段机制;每段不超过64kb。这就是通常所说的实模式。在地址储存模型中属于“实地址储存模型”。
其次,考虑到程序通常都是功能化的模块,所以分段虽然不是必要的,但分段却能大大提高编程者管理程序的效率。故而32位机也采用了段+偏移的模式来寻址。但与实模型不同的是,由于地址线和数据线宽度一致,因而,每个段最大可以到4G,并且段基址也是32位的无需进行左移处理。在地址储存模型中这属于“段地址储存模型”。然而需要注意的是,在32位机里,虽然通用寄存器,标志寄存器等都扩展成了32位,但是段寄存器却依然是16位的(为什么不做改变??我猜可能是这样便于向下兼容)。所以在32位寻址时,段寄存器里放的不再是段基址(位数不够,放不下)而是一个选择子。这个选择子对应了一个64-bit长的描述符,64-bit的描述符里有32-bit是段基址。所以原来在16位机里通过段寄存器一步就可以找到段基址,而现在在32位机里分成了两步:先找选择子,然后通过选择子找段基址。段基址找到了,再加上偏移地址,物理地址就找到了。看样子,32位段模式寻址已经介绍清楚了。其实,这里头的故事还远没有讲完。
在上面简述的过程中,很容易发现有两个问题没有交待。(1)CPU是如何将选择子与描述符对应起来的?(2)既然是64-bit的描述符,32位用来表示基地址,那么余下的32位是干什么用的?另外,当32位机发展起来的同时,操作系统也有了长足进步,单任务模式的DOS被多任务的windows所取代。也就是说,现在驻留在内存中的往往不止是一个程序,而很可能是多个程序同时在内存中。现在又没有了段大小的限制,程序之间便很有可能相互抢地址,如果核心程序被破坏,计算机就会崩溃。这就好比在马路上走车,如果只有一辆车开,怎么开都可以,但是如果车多了不制定个交通规则,车便会抢道,道路就会瘫痪。所以,在多任务的情况下,必须给寻址也制定一个“交通规则”,这样才能保证多任务系统有序的工作。制定什么样的规则呢?首先,既然程序是在无意识的情况下抢占了别的程序的地址,那么如果在寻址时包含一个查询的过程就可以有效的避免抢地址的情况发生。也就是说,先得问一问那个地址是不是已经有程序段占用了?同时已占上地址的程序段除了告知CPU自己的基地址外还应该告诉CPU自己的长度信息。这样别的程序段才能方便地查询。第二,多任务寻址最好应该包含优先级别的内容,已备紧急情况下为核心程序让道。这好比在马路上,一般情况下车是遵守规则的,但如果是警车或救护车执行任务时,就可以优先抢占别的车的道。所以,还应该定义一个优先级。然后,由占上地址的程序段告诉CPU自己的优先级别。总的来讲,原来在16位机里很单纯的一个“段”的概念现在变得复杂了。如同人的成长过程,刚开始的时候思维总是很幼稚的,相应的也只能解决简单的问题,只有当你的思维摆脱幼稚的时候,才有能力解决更为复杂的事情。现在CPU摆脱了幼稚的16位,它在描述“段”的时候当然不应该像16位时那么肤浅。在32位机里,“段”有三个要素:基地址,长度,属性(属性里包含了优先级和其它的一些内容)。为了能一次完整的引用或者给出这三个要素,需要新定义一个数据结构。这个结构就是前面所提到的描述符,每一个描述符都占有64-bit,有足够的长度来包含段的三个要素。当然,现在内存中不止一个程序,而且程序也不止一个段,所以描述符也不会有一个,而是很多个。最简单的管理方法,就是将所有的描述符集中起来放在一块连续的存储空间里,然后给各个描述符排上序号。当要找某一个特定的描述符时,只要先找到这块连续的存储空间然后给出序号就可以了。这些集中起来的描述符形成了一张表,所以通常被叫做描述符表。所以,想找到一个段的信息,首先要找到描述符表。也就是说,找特定的描述符先要知道描述符表的基地址。在32位cpu中,有一个48位的专用寄存器用来存放全局描述符表的信息,这个寄存器叫做GDTR。其中,高32位给出了全局描述符表的基地址,低16位给出了描述符表的长度限制。所以,一张全局描述符表最长可以是64kb。那么,最多可以放64kb/8b=8k个描述符。所以如果想在其中选择任意一个描述符,用13位就可以办到了。在32位cpu中,
您可能关注的文档
最近下载
- 2025年内蒙古时事政治考试试卷带解析必考题.docx VIP
- 人教版数学三年级下册单元试卷【1-8合集,含答案】.pdf VIP
- 2025年内蒙古时事政治考试试卷带解析参考答案.docx VIP
- (答案)奥赛经典-奥林匹克数学中的几何问题---习题与讲解(第1-2章).pdf VIP
- 奥赛经典奥林匹克数学中的几何问题.pdf VIP
- 奥的斯电梯ACD4 原理图纸注释.pdf VIP
- 2025国家能源集团新疆哈密能源化工有限公司社会招聘(51人)笔试参考题库附答案解析.docx VIP
- 建设项目环境影响报告表.PDF VIP
- 呼吸科利用PDCA循环提高住院患者吸入剂使用正确率品管圈.pptx VIP
- 2024-2030年全球气动导弹弹射发射器(PMEL)行业现状、重点企业分析及项目可行性研究报告.docx
文档评论(0)