范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

内存管理(硬件编程)

  内存管理(硬件编程)
  一、什么是MMU
  早期的CPU(比如8086),或者现在使用的MCU(单片机),程序是直接运行在物理内存上的(SDRAM或者NOR Flash)。程序在运行过程中通过总线访问的数据,读写的地址都是物理地址。例如,程序计数器PC中的值就是预取指令所在的物理内存的地址值。
  冯-诺依曼计算机模型
  这种方式比较容易实现硬件电路的设计,程序的处理逻辑也比较简单,但是并不适应于复杂的系统,尤其是拥有多任务的OS。我们首先看看原来的方式有哪些不足和缺陷。
  物理内存不足。例如,某个程序运行需要64K的内存,而机器上只有32K的物理内存。
  程序运行的地址不确定。同一个程序,每次被装载到内存的地址可能不一样。
  内存使用率低。需要运行某个程序,就需要将整个程序装入内存才能够运行。
  无法支持多任务。存在进程间地址空间不隔离的问题,或者一个任务失败了,可能会导致整个系统宕机。
  然而随着计算机科学技术的发展,所需解决的问题越来越复杂,单任务批处理已不能满足需求了。而且应用程序需要的内存量也越来越大。而且伴随着多任务同时处理的需求,这种技术架构已然不能满足需求了。在这样的背景下,MMU 应运而生,也由此可见,任何一项技术的发展壮大,都必然是需求驱动的。MMU(Memory Management Unit)主要用来管理虚拟存储器、物理存储器的控制线路,同时也负责虚拟地址映射为物理地址,以及提供硬件机制的内存访问授权、多任务多进程操作系统。
  如果处理器启用了MMU,CPU执行单元发出的内存地址将被MMU截获,从CPU到MMU的地址称为虚拟地址(Virtual Address,以下简称VA),而MMU将这个地址翻译成另一个地址发到CPU芯片的外部地址引脚上,也就是将VA映射成PA,如下图:
  MMU硬件电路的作用
  二、MMU的具体功能
  1、页表的映射转换
  MMU的主要功能是虚拟地址到物理地址的转换。但凡"映射"都要解决两个问题:映射的最小单位(粒度)和映射的规则。
  a、虚拟地址空间划分成称为页(page)的单位,而相应的物理地址空间也被进行划分,单位是页框(frame),页和页框的大小必须相同。映射的最低粒度是单个虚拟页到物理页,页大小通常是4K,即一次最少要把4K大小的VA页块整体映射到4K的PA页块(从0开始4K对齐划分页块),页内偏移不变。
  比如:VA的一页0x30004000~0x30004fff被映射到PA的一页 0x00008000~0x00008fff,当CPU执行单元访问虚拟地址0x30004008,实际访问的物理地址是0x00008008(0x30004008和0x00008008分别位于虚实两套地址空间,互不相干,不存在重叠和冲突)。以页为最小单位,就是不能把VA中某一页划分成几小块分别映射到不同PA,也不能把VA中属于不同页的碎块映射到PA某一页的不同部分,必须页对页整体映射。
  b、MMU软件配置的核心是页表(Page Table),它描述MMU的映射规则,即虚拟内存哪(几)个页映射到物理内存哪(几)个页帧。页表由一条条代表映射规则的记录组成,每一条称为一个页表条目(Page Table Entry,即PTE),整个页表保存在片外内存,MMU通过查找页表确定一个VA应该映射到什么PA,以及是否有权限映射。
  c、如果MMU每次地址转换都到位于外部内存的页表上查找PTE,转换速度就会大大降低,于是出现了TLB。TLB (Translation Lookaside Buffers)即转换快表,又简称快表,可以理解为MMU内部专用的存放页表的cache,保存着最近使用的PTE乃至全部页表。MMU接收到虚拟地址后,首先在TLB中查找,如果找到该VA对应的PTE就直接转换,找不到再去外存页表查找,并置换进TLB。TLB属于片上SRAM,访问速度快,通过TLB缓存PTE可以节省MMU访问外存页表的时间,从而加速虚实地址转换。TLB和CPU cache的工作原理一样,只是TLB专用于为MMU缓存页表。
  地址转换的整个过程
  2、MMU的内存保护功能
  既然所有发往内存的地址信号都要经过MMU处理,那让它只单单做地址转换,岂不是浪费了这个特意安插的转换层?显然它有能力对虚地址访问做更多的限定(就像路由器转发网络包的同时还能过滤各种非法访问),比如内存保护。可以在PTE条目中预留出几个比特,用于设置访问权限的属性,如禁止访问、可读、可写和可执行等。设好后,CPU访问一个VA时,MMU找到页表中对应PTE,把指令的权限需求与该PTE中的限定条件做比对,若符合要求就把VA转换成PA,否则不允许访问,并产生异常。
  三、操作系统对MMU的管理
  实际上MMU是为满足操作系统越来越复杂的内存管理而产生的。OS和MMU的关系简单说:
  1、系统初始化代码会在内存中生成页表,然后把页表地址设置给MMU对应寄存器,使MMU知道页表在物理内存中的什么位置,以便在需要时进行查找。之后通过专用指令启动MMU,以此为分界,之后程序中所有内存地址都变成虚地址,MMU硬件开始自动完成查表和虚实地址转换。
  2、OS初始化后期,创建第一个用户进程,这个过程中也需要创建页表,把其地址赋给进程结构体中某指针成员变量。即每个进程都要有独立的页表。
  3、用户创建新进程时,子进程拷贝一份父进程的页表,之后随着程序运行,页表内容逐渐更新变化。
  4、系统处理内存寻址, 这个过程由操作系统进行管理和维护,保证流程的正常进行。
  内存寻址总览图
  上图是一个内存管理的硬件结构,处理流程:
  a、cpu发起一个寻址的请求,由MMU接受处理;
  b、如果MMU在TLB缓冲中找到,则直接用映射后的物理地址,去主内存读取;如果没有找到,则需要从当前进程的页表中查询,如果找到则返回更新TLB;
  c、如果页表中没有,发现虚拟地址还没有分配物理地址空间的时候,会触发缺页中断,此时会去查看这段虚拟地址对应的磁盘文件内容,将其加载到内存中,在页表中建立起映射关系,程序就可以继续执行了。
  总结
  了解了地址转换的流程,VA到PA的映射过程就一目了然:MMU得到VA后先在TLB内查找,若没找到匹配的PTE条目就到外部页表查询,并置换进TLB;根据PTE条目中对访问权限的限定检查该条VA指令是否符合,若不符合则不继续,并抛出exception异常;符合后根据VA的地址分段查询页表,保持offset(广义)不变,组合出物理地址,发送出去。

怎么查和朋友有多少条微信聊天记录(怎么查他和别人的聊天记录)怎么查和朋友有多少条微信聊天记录(怎么查他和别人的聊天记录)微信现已成为我们最常用的谈天东西,因为微信的运用率十分高,我们也常常会收拾一下微信谈天记载和其他软件的缓存文件来腾出手机怎么查男朋友的微信聊天记录(怎么查询微信的聊天记录)怎么查男朋友的微信聊天记录(怎么查询微信的聊天记录)微信现已成为我们最常用的谈天东西,因为微信的运用率十分高,我们也常常会收拾一下微信谈天记载和其他软件的缓存文件来腾出手机空间。但电脑能查微信聊天记录(如何能查看别人微信聊天记录)电脑能查微信聊天记录(如何能查看别人微信聊天记录)微信现已成为我们最常用的谈天东西,因为微信的运用率十分高,我们也常常会收拾一下微信谈天记载和其他软件的缓存文件来腾出手机空间。但有怎么查微信联系人删除聊天记录(如何能查看别人微信聊天记录)怎么查微信联系人删除聊天记录(如何能查看别人微信聊天记录)微信现已成为咱们最常用的谈天东西,由于微信的运用率非常高,咱们也经常会拾掇一下微信谈天记载和其他软件的缓存文件来腾出手机空好友误删聊天记录怎么恢复(免费恢复微信聊天记录的内容)好友误删聊天记录怎么恢复(免费恢复微信聊天记录的内容)微信现已成为我们最常用的谈天东西,因为微信的运用率十分高,我们也常常会收拾一下微信谈天记载和其他软件的缓存文件来腾出手机空间。查别人微信聊天记录(怎么查他和别人的聊天记录)查别人微信聊天记录(怎么查他和别人的聊天记录)微信现已成为咱们最常用的谈天东西,由于微信的运用率非常高,咱们也常常会拾掇一下微信谈天记载和其他软件的缓存文件来腾出手机空间。但有时分怎么查微信联系人和别人的聊天记录(怎么查询微信的聊天记录)怎么查微信联系人和别人的聊天记录(怎么查询微信的聊天记录)微信现已成为咱们最常用的谈天东西,由于微信的运用率非常高,咱们也时常会整理一下微信谈天记载和其他软件的缓存文件来腾出手机空有没有手机查别人微信聊天记录软件下载(怎样查看别人的聊天记录)有没有手机查别人微信聊天记录软件下载(怎样查看别人的聊天记录)微信现已成为我们最常用的谈天东西,因为微信的运用率十分高,我们也常常会收拾一下微信谈天记载和其他软件的缓存文件来腾出手微信聊天记录别人能查出来吗(怎么查老公的微信聊天记录)微信聊天记录别人能查出来吗(怎么查老公的微信聊天记录)微信聊天记录被删除已经是很常见的事情了,很多人在不经意间就会将微信聊天记录给删除掉了。但是,当我们将微信聊天记录给删除之后,我查微信好友聊天记录(可以查别人的微信聊天记录吗)查微信好友聊天记录(可以查别人的微信聊天记录吗)微信现已成为咱们最常用的谈天东西,由于微信的运用率非常高,咱们也常常会拾掇一下微信谈天记载和其他软件的缓存文件来腾出手机空间。但有时怎么查和一个人的微信聊天记录吗(怎样可以查看别人的微信聊天记录)怎么查和一个人的微信聊天记录吗(怎样可以查看别人的微信聊天记录)微信现已成为咱们最常用的谈天东西,由于微信的运用率非常高,咱们也常常会拾掇一下微信谈天记载和其他软件的缓存文件来腾出
龙年1元纪念币(一元生肖纪念币)龙年1元纪念币(一元生肖纪念币)前两篇文章介绍了2011年之前发行的所有纪念币,这篇文章介绍的是2011年至今所发行的所有纪念币,会在文章最后总结一下全部纪念币的价格。一轮兔年生肖电信转联通(中国联通靓号申请)电信转联通(中国联通靓号申请)我是一只小小小小鸟丶20200916170744最近携号转网完成了,说一下自己的携号转网的过程。在这里,不得不说,深圳的电信宽带是真的贵,城中村,13怎么查四年前的微信聊天记录图片恩爱(怎么样查找微信删除的聊天记录)怎么查四年前的微信聊天记录图片恩爱(怎么样查找微信删除的聊天记录)微信现已成为我们最常用的谈天东西,因为微信的运用率十分高,我们也常常会收拾一下微信谈天记载和其他软件的缓存文件来腾微信删除的人还能恢复聊天记录吗(老公删了微信聊天记录怎么查)微信删除的人还能恢复聊天记录吗(老公删了微信聊天记录怎么查)微信现已成为咱们最常用的谈天东西,由于微信的运用率非常高,咱们也常常会拾掇一下微信谈天记载和其他软件的缓存文件来腾出手机笔记本i7处理器(笔记本i5是什么意思)笔记本i7处理器(笔记本i5是什么意思)泡泡网20210523150046机械师新一代H45游戏本已大量上市,不少酷睿i711800H处理器搭配RTX3050笔记本电脑GPU的机型九阳真经(九阴真经和九阳真经同是武学宝典)九阳真经(九阴真经和九阳真经同是武学宝典)九阴真经和九阳真经作为射雕三部曲武林中,至高无上的两部武学宝典,为何境遇和结局都大不相同?这个问题其实很简单。因为九阴真经一直是出现在江湖扫描仪使用方法(教您扫描仪的使用方法)扫描仪使用方法(教您扫描仪的使用方法)看官们好!今天给大家分享扫描仪的实用方法!之前有粉丝给我留言让我分享下,扫描仪的实用方法,响应要求今天我将方法分享出来。操作流程打开扫描仪的上电信iphone5合约机(iphone电信合约机)电信iphone5合约机(iphone电信合约机)知,苹果CEO库克认为5G产业链还不够成熟,所以苹果并没有给最新的iPhone11系列手机加入5G支持,更不用说今年之前发布的iP上海钦赐仰殿(上海浦东钦赐仰殿电话)上海钦赐仰殿(上海浦东钦赐仰殿电话)浦东新区源深路,有一座钦赐仰殿,是上海地区现存规模最大的道观,也是全国重点道观,2002年被确定为文物保护单位。钦赐仰殿,又名东岳行宫,相传三国怎么放高利贷(怎么放高利贷赚钱)怎么放高利贷(怎么放高利贷赚钱)中国最早的金融业,就是僧侣以寺院的典铺形式开创的。在1500年前的南北朝,寺庙里的和尚就搞起了房地产,放起了高利贷!在那个时代,也不算违反当时的法律数码知识微信收支明细怎么查看收支明细在哪里查询如今使用IT数码设备的小伙伴们是越来越多了,那么IT数码设备当中是有很多小技巧的,这些技巧很多小伙伴一般都是不知道如何来实用的,就好比最近就有很多小伙伴们想要知道微信收支明细怎么查