2022年CPU体系架构 2.pdf
《2022年CPU体系架构 2.pdf》由会员分享,可在线阅读,更多相关《2022年CPU体系架构 2.pdf(18页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、CPU 体系架构在现在的工作项目中虽然没有使用到MMU 功能,但MMU 是较复杂的嵌入式操作系统运行的基础。例如Linux就不能够运行在没有MMU 的 ARM7 处理器上,ucLinux 就是为了适应没有MMU 的处理器而对Linux 进行的裁剪和修改。了解 MMU 基础知识,对理解编译链接,OS 多进程,嵌入式系统架构等有很好的帮助。由于该部分内容涉及到MMU 硬件、CPU 架构、编译链接、OS 等知识,学习难度较大。关键字MMU、TLB、多任务 OS、地址空间、虚拟内存、虚拟地址/物理地址学习顺序问题的引出、虚拟地址和物理地址、虚拟内存、OS 进程和 MMU,MMU 运行引子早期的计算机P
2、C,或者现在使用8 位/16 位 MCU(单片机)名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 18 页 -的嵌入式设备,程序是直接运行在物理内存上的(SDRAM或者 NOR Flash)。所谓直接运行在物理内存上,是指程序在运行时所访问的地址都是物理地址。例如,程序计数器PC中的值就是预取指令所在的物理内存的地址值。这种程序直接运行在物理内存上的方式简单,但是并不适应于复杂的系统,尤其是拥有多任务的OS。我们首先看看原来的方式有哪些不足和缺陷。物理内存不足。例如,某个程序运行需要64K 的内存,而机器上只有32K 的物理内存。程序运行的地址不确定。同一个程序,每次被装载到内存
3、的地址可能不一样。内存使用率低。需要运行某个程序,就需要将整个程序装入内存才能够运行。对于多任务OS,存在进程间地址空间不隔离的问题。这样一个任务失败了,可能会导致整个系统宕机。于是人们就引入了虚拟内存管理(Virtual Memory 名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 18 页 -Management)技术。有关虚拟内存管理(Virtual Memory Management)技术在下面会有详细的介绍。需要说明的是,上面的几点缺陷除了第一点之外,其它都是针对有OS 的系统而言的。虚拟内存管理技术的出现和操作系统的发展有本质的联系。本节可以参考程序员的自我修养-链接
4、、装载与库第1 章 1.5 内存不够怎么办。虚拟内存管理技术随着计算机的发展,应用程序的规模逐渐增大,一个难题出现在程序员的面前,那就是应用程序太大以至于内存容纳不下该程序,通常解决的办法是把程序分割成许多称为覆盖块(overlay)的片段。覆盖块0 首先运行,结束时他将调用另一个覆盖块。虽然覆盖块的交换是由OS 完成的,但是必须先由程序员把程序先进行分割,这是一个费时费力的工作,而且相当枯燥。人们必须找到更好的办法从根本上解决这个问题。人们找到了另外一个办法,这就是虚拟内存管理(Virtual Memory Management)技术。虚拟内存管理技术的基本思想是程序,数据,堆栈的总的大小可
5、以超过物理存储器的大小,名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 18 页 -操作系统把当前使用的部分保留在内存中,而把其他未被使用的部分保存在磁盘上。比如对一个16MB 的程序和一个内存只有 4MB 的机器,OS 通过选择,可以决定各个时刻将哪4M 的内容保留在内存中,并在需要时在内存和磁盘间交换程序片段,这样就可以把这个16M 的程序运行在一个只具有4M 内存机器上了。而这个16M 的程序在运行前不必由程序员进行分割。需要说明的一点,操作系统的内核是常驻内存的。围绕着虚拟内存管理(Virtual Memory Management)技术,就产生了分页技术,虚拟地址,地址
6、空间,TLB,MMU 等概念。分页技术虚拟内存管理技术中最常见的是分页(paging)技术,MMU就是该技术的硬件实现。虚拟地址空间划分成称为页(page)的单位,而相应的物理地址空间也被进行划分,单位是页框(frame),页和页框的大小必须相同。接下来配合图片以一个例子说明页与页框之间在MMU 的调度下是如何进行映射。在这个例子中我们有一台可以生成16 位地址的机器,它的名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 18 页 -虚拟地址范围从0 x00000 xFFFF(64K),而这台机器只有32K的物理内存。它可以运行64K 的程序,但该程序不能一次性调入内存运行。这台机
7、器必须有一个达到可以存放64K 程序的外部存储器(例如磁盘或是FLASH),以保证程序片段在需要时可以被调用。在这个例子中,页的大小为4K,页框大小与页相同(这点是必须保证的,内存和外围存储器之间的传输总是以页为单位的),对应 64K 的虚拟地址和32K 的物理内存,他们分别包含了16 个页和 8 个页框。我们先根据上图解释一下分页后要用到的几个术语,在上面我们已经接触了页和页框,上图中绿色部分是物理空间,其中每一格表示一个页框。橘黄色部分是虚拟空间,每一格表示一个页,它由两部分组成,分别是Frame Index(页框索引)和位 p(present 存在位),Frame Index 的意义很明
8、显,它指出本页是往哪个物理页框进行映射的,位p 的意义则是指出本页的映射是否有效,如上图,当某个页并没有被映射时(或称“映射无效”,Frame Index 部分为 X),该位为 0,映射有效则该位为1。我们执行下面这些指令(本例子的指令不针对任何特定机名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 18 页 -型,都是伪指令)例 1:MOVE REG,0/将地址 0 x0000 的值传递进寄存器REG.虚拟地址 0 将被送往 MMU,MMU 看到该虚地址落在页0范围内(页0 范围是 0 到 4095),从上图我们看到页0 所映射的页框为2(页框 2 的地址范围是8192 到 12
9、287),因此MMU 将该虚拟地址转化为物理地址8192,并把地址8192送到地址总线上。内存对MMU 的映射一无所知,它只看到一个对地址8192 的读请求并执行它。MMU 从而把 0 到 4096的虚拟地址映射到8192 到 12287 的物理地址。例 2:MOVE REG,20500 虚拟地址 20500 在虚页 5(虚拟地址范围是20480 到 24575)距开头 20 个字节处,虚页 5 映射到页框3(页框 3 的地址范围是 12288 到 16383),于是被映射到物理地址12288+20=12308。名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 18 页 -通过适当
10、的设置MMU,可以把 16 个页隐射到8 个页框中的任何一个,这可以解决上面提到的第二个问题程序运行的地址不确定,但是这个方法并没有有效的解决虚拟地址空间比物理地址空间大的问题。从上图中我们可以看到,我们只有8 个页框(物理地址),但我们有 16 个页(虚拟地址),所以我们只能把16 个页中的 8 个进行有效的映射。我们看看下面发生什么情况。例 3:MOV REG,32780 虚拟地址 32780 落在页 8 的范围内,从上图中我们看到页8没有被有效的进行映射(该页被打上X),这是又会发生什么?MMU 注意到这个页没有被映射,于是通知CPU 发生一个 缺页故障(page fault)。这种情况
11、下操作系统必须处理这个页故障,它必须从8 个物理页框中找到1 个当前很少被使用的页框并把该页框的内容写入外围存储器(这个动作被称为 page copy),把对应虚拟地址处的程序从外围存储器拷贝到刚才腾空的页框中,随后把需要引用的页(页8)映射名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 18 页 -到刚才释放的页框中(这个动作称为修改映射关系),然后从新执行产生故障的指令(MOV REG,32780)。假设操作系统决定释放页框1,那么它将把页8 装入物理地址的4-8K,并做两处修改:首先把标记页1 未被映射(原来虚页1 是被影射到页框1 的),以使以后任何对虚拟地址4K 到 8
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年CPU体系架构 2022 CPU 体系 架构
限制150内