教育房产时事环球科技商业
商业财经
热点动态
科技数码
软件应用
国际环球
晨报科学
新闻时事
信息智能
汽车房产
办公手机
教育体育
生活生物

内存管理(硬件编程)

  内存管理(硬件编程)
  一、什么是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(广义)不变,组合出物理地址,发送出去。

数码知识微信免密服务在哪里关微信免密服务关闭教程如今使用IT数码设备的小伙伴们是越来越多了,那么IT数码设备当中是有很多小技巧的,这些技巧很多小伙伴一般都是不知道如何来实用的,就好比最近就有很多小伙伴们想要知道微信免密服务在哪里数码知识支付宝怎么看年度总账单年度总账单在哪里查询如今使用IT数码设备的小伙伴们是越来越多了,那么IT数码设备当中是有很多小技巧的,这些技巧很多小伙伴一般都是不知道如何来实用的,就好比最近就有很多小伙伴们想要知道支付宝怎么看年度总数码知识怎么取消哈啰出行自动续费连续包月续费怎么取消如今使用IT数码设备的小伙伴们是越来越多了,那么IT数码设备当中是有很多小技巧的,这些技巧很多小伙伴一般都是不知道如何来实用的,就好比最近就有很多小伙伴们想要知道怎么取消哈啰出行自数码知识网易云关闭自动续费怎么关闭微信关闭网易云自动续费教程如今使用IT数码设备的小伙伴们是越来越多了,那么IT数码设备当中是有很多小技巧的,这些技巧很多小伙伴一般都是不知道如何来实用的,就好比最近就有很多小伙伴们想要知道网易云关闭自动续费数码知识怎么取消拼多多每月自动续费月卡拼多多每月自动续费月卡如何取消如今使用IT数码设备的小伙伴们是越来越多了,那么IT数码设备当中是有很多小技巧的,这些技巧很多小伙伴一般都是不知道如何来实用的,就好比最近就有很多小伙伴们想要知道怎么取消拼多多每月数码知识手机钉钉草稿箱在哪里打开草稿箱教程如今使用IT数码设备的小伙伴们是越来越多了,那么IT数码设备当中是有很多小技巧的,这些技巧很多小伙伴一般都是不知道如何来实用的,就好比最近就有很多小伙伴们想要知道手机钉钉草稿箱在哪汪姐私房菜贵死了(这家私房菜到底什么来头?)汪姐私房菜贵死了(这家私房菜到底什么来头?)在上海,没尝过汪姐手艺的,可能很难以顶级老饕自居。舌尖上的中国如此评价汪姐做的菜。蔡澜每次落地上海,一般先去机场附近的阿山饭店吃顿饭,在2019贺岁片(2019年贺岁片有哪些电影)2019贺岁片(2019年贺岁片有哪些电影)人民网海南频道20190206113052这些年,春节期间去看场电影,已经成为不少人的习惯。春节观影,之所以逐渐上升为一种新年俗,是因为悲惨世界2012版电影(1958年悲惨世界在线观看)悲惨世界2012版电影(1958年悲惨世界在线观看)原创另类视频分享菌20210411125307今天为大家带来一部名著改编电影悲惨世界,悲惨世界最初是法国作家维克多雨果创作的长篇楚留香任贤齐(新楚留香免费观看全集)楚留香任贤齐(新楚留香免费观看全集)现在的偶像爆红非常快,几乎是一个选秀出来之后,直接就代言看秀影视资源堆上来。刚红的肖战合作杨紫拍余生,王一博合作赵丽颖拍有匪,李现直接晋升电影咖脚趾头痛(脚趾头皮肤表面疼是怎么回事)脚趾头痛(脚趾头皮肤表面疼是怎么回事)痛风是一种代谢性疾病,因体内蛋白质代谢过程出现故障,导致嘌呤代谢紊乱或血尿酸增高的一系列损伤。通常会引起关节炎症,反复发作可致使肾脏损害和心血
问世间情为何物直教人生死相许(你知道这首词背后的故事吗)问世间情为何物直教人生死相许(你知道这首词背后的故事吗)问世间,情为何物,直教人生死相许?天南地北双飞客,老翅几回寒暑。欢乐趣,离别苦,就中更有痴儿女。君应有语渺万里层云,千山暮雪鱼鳔的作用(原来有这么好的食补作用)鱼鳔的作用(原来有这么好的食补作用)鱼鳔鱼鳔(bio),又名鱼肚,为石首鱼科大黄鱼小黄鱼等的鱼鳔干燥而成。鱼鳔主要成分为高级胶原蛋白黏多糖和多种维生素及钙锌铁硒等多种微量元素,鱼鳔李佳琦开黄腔(李佳琦开黄腔内容)李佳琦开黄腔(李佳琦开黄腔内容)科技互联观察20210529171300每逢购物节,最忙的莫过于主播们。近日,618年中促销开始,网络上到处都是主播们摇旗呐喊招揽生意的信息。不料,痴情的诗句(让对方看到心疼的句子)痴情的诗句(让对方看到心疼的句子)唐诗宋词古诗词20180804101623李商隐一生都在牛李党争之中困顿失意,但是他心灵善感,一往情深,所作诗歌在晚唐独树一帜,无论是对仕途伤感哀舒婷经典语录(舒婷经典语录,美得让人心动!)舒婷经典语录(舒婷经典语录,美得让人心动!)1。谈恋爱,如果你太急切,太草率,随便付出自己的感情,等你理想的,你最想要的出现,你已经没有机会了。2。天生不爱倾诉苦难,并非苦难已经永远走高飞为什么这么火(和远走高飞一样火的歌)刚刚发布了新单曲的陌陌主播馨哥哥,在诠释追梦主题的音乐上似乎越来越有心得了,昨天便在直播间演唱了一首金志文和徐佳莹合唱的的大火歌曲远走高飞。不羁潇洒和坦荡是这首歌原本的主题涵义,而你妹电影网(哪些网站可以免费追剧)你妹电影网(哪些网站可以免费追剧)漯河顺成驾培201908282137现在的生活是越来越不容易了,听首歌曲都得要钱。在这个一切向钱看的时代里,像我这种穷屌丝还真的感觉到了鸭梨山大。东兔论坛(中国养兔网官方网站)东兔论坛(中国养兔网官方网站)暨草食动物养殖技术高手在民间征集活动成功举行2016年10月24日上午10点30分,由北京英美尔(北京优利保生物技术有限责任公司)冠名,东兔论坛主办,宜宾网址之家(中国十大论坛网站)宜宾网址之家(中国十大论坛网站)Hello我的大学20200706091759为了提前帮助各位考生及家长了解志愿填报的完整流程和具体需要填报哪些信息,以免在正式填报期间,因时间过短黑客病毒(简单的病毒编程代码)黑客病毒(简单的病毒编程代码)2006年底,一款超级计算机病毒开始席卷中国,它不断入侵个人电脑,感染门户网站,击溃数据系统,市面上所有的杀毒软件都对它束手无策。短短两个月时间里,给数码知识华为手机怎样恢复中文恢复中文教程如今使用IT数码设备的小伙伴们是越来越多了,那么IT数码设备当中是有很多小技巧的,这些技巧很多小伙伴一般都是不知道如何来实用的,就好比最近就有很多小伙伴们想要知道华为手机怎样恢复中