CPU和MMU

作者: 如果听见下雨的声音 | 来源:发表于2020-04-21 13:46 被阅读0次

版权声明:本文为CSDN博主「IT_10-」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/IT_10/article/details/89818738


我们知道,程序文件一般放在硬盘上,当把程序运行起来产生进程是,程序被放入内存中,通过内存放入cache,通过cache进入cpu,进入cpu的是程序的一条条指令,即01组合,下图中预取器就是负责从cache取出指令,然后由译码器译码,译码的作用就是要知道需要哪些寄存器配合完成指令,如该指令是一个加法运算,则译码器译码后发现需要使用到add,eax和ebx寄存器,然后交给ALU算数逻辑单元进行算数运算,结果放回寄存器,再放入cache,再放入内存,之后交给IO总线,再交给物理设备显示到屏幕上。

å�¨è¿�é��æ��å ¥å�¾ç��æ��è¿°

下图是一个0到4G的虚拟地址空间,.text存放代码,.data存放数据,heap是堆区,stack是栈区,这0到3G是用户区,3到4G是内核区,当程序运行的时候便会产生这样一个虚拟地址空间,程序运行时所需的所有资源都放到虚拟内存中。虚拟内存不是真实存在的,图中所示的4G大小的虚拟内存是指程序运行可用的地址空间有4G,程序运行的资源最终还是要放到物理内存中。那虚拟地址和物理地址如何对应?就是使用MMU。MMU:内存管理单元,用于完成虚拟内存和物理内存的映射,位于CPU内部;MMU将虚拟内存映射到物理内存,以及设置修改CPU的访问级别,如printf函数,要调用系统函数write,要进入内核空间,此时CPU的访问级别由3级用户空间转换到0级内核空间。

å�¨è¿�é��æ��å ¥å�¾ç��æ��è¿°

下图所示为在同一个机器上运行两份可执行程序a.out,产生两个虚拟地址空间,其中,两个进程的用户态虚拟地址被MMU映射到物理内存的不同地址,但是内核态映射到同一个地址(针对单核来讲),而PCB虽然位于内核中,两个进程的PCB是不一样的,只是位于同一个物理地址处。

å�¨è¿�é��æ��å ¥å�¾ç��æ��è¿°

综上,程序运行的时候产生虚拟地址空间,预取器取处指令后需要MMU的配合,将虚拟地址和物理地址做映射才能正确取出数据。
现在,进一步分析,如下图所示,进程a.out的PCB中有一个指针,指向页目录,页目录中有一个个的指针,其中一个指向页表,页表中也有一个个的指针,其中一个指向物理页面,物理页面中是一个个的内存单元,然后才通过MMU完成虚拟地址和物理地址的映射。

å�¨è¿�é��æ��å ¥å�¾ç��æ��è¿°

相关文章

  • CPU和MMU

    版权声明:本文为CSDN博主「IT_10-」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出...

  • CPU/MMU/PCB

    逻辑地址,就是指机器语言指令中用来指定一个操作数或一条指令的地址,由一个段(segment)和偏移量(offset...

  • Linux学习-内存管理篇(二)-MMU介绍

    开篇从内存管理入手,先了解MMU最基本原理,分析下CPU是如何访问到内存的。 一、MMU介绍 MMU(Memory...

  • 浅尝辄止75-MMU

    CPU如何访问内存? MMU(Memory Managemant Unit) 很容易想象,CPU可以用物理地址对内...

  • CPU控制整个计算机的运作,取指令、执行指令CPU-cache存储器-总线-外部存储器CPU MMU 取址:CPU...

  • 操作系统支持

    存储管理 CPU-MMU-MemoryCPU把虚拟地址发给MMU,转换成物理地址到内存中寻找内容 虚拟内存管理的作...

  • MMU和TLB

    1. MMU是硬件。 2. TLB:Translate lookside buffer, 是MMU的一部分,也是硬...

  • Linux c++ 内存管理知识索引

    背景知识 虚拟内存和物理内存之间依靠mmu进行映射 一.虚拟内存管理 在32为的cpu 上, 有4G的虚拟内存空间...

  • uboot-step5 关闭MMU与cache

    uboot-step5 关闭MMU与cache MMU是什么 MMU 的概念参考百度百科的内容:MMU是Memor...

  • PowerPC E500 MMU详解

    1. 什么是MMU? MMU是Memory Management Unit的缩写,中文名称为内存管理单元。MMU是...

网友评论

      本文标题:CPU和MMU

      本文链接:https://www.haomeiwen.com/subject/wesuihtx.html