一个故事看懂CPU的TLB

皇冠平台出租rent.22223388.com)是皇冠(正网)接入菜宝钱包的TRC20-USDT支付系统,为皇冠代理提供专业的网上运营管理系统。系统实现注册、充值、提现、客服等全自动化功能。采用的USDT匿名支付、阅后即焚的IM客服系统,让皇冠代理的运营更轻松更安全。

Hi,我是CPU一号车间的阿Q,还记得我吗,真是良久不见了~

我所在的CPU是一个八核CPU,就有八个事情车间,那运行起来速率杠杆的~

虚拟地址翻译

一大早,我们一号车间MMU(内存治理单元)部门的小黑就来到向导办公室,正好我也在。

  

“向导,听说您赞成了阿Q他们的方案,给每个车间都划拨了缓存建设预算?”

“你这小子,新闻还挺灵通的。没错,内存那家伙着实太慢了,加了缓存后,不用每次都从内存读取数据,能让咱们的性能提升不少”,向导说到。

“那我们MMU部门也要申请一笔经费”,小黑说到。

向导眉头一紧,问道:“你们要申请经费干什么?”

“我们也要建设缓存”

“你们MMU部门做地址翻译事情,要缓存做什么,怕不是看向导给我们拨了款,眼红了吧?”,我在一旁说到。

小黑转过身来,看着我说道:“说我眼红,我倒是问你,你知道虚拟地址翻译的历程吗?”

这可难不倒我,以前就没少听他说过,“怎么不知道?以32位的虚拟地址为例,一个32位的虚拟地址分为三部门,划分是页目录索引、页表索引、页内偏移。翻译的时刻,从CR3寄存器中取出页目录地址,凭证页目录索引找到页表,再凭证页表索引找到物理内存页面,最后凭证页内偏移,完成寻址。我说的对吧?”

 

 

 

“嘿,你小子不错啊,记性挺好”,小黑有点不敢信托,随后又问到:“既然你知道,那我再问你,这读取一次数据,需要接见几回内存?”

我思索了一下,最先算了起来。从页目录表中读取一次,从页表中再读取一次,最后接见页面内数据再读取一次,总共就是三次。

“需要接见三次内存!”,我回覆到。

小黑点了颔首说道:“没错,你知道的,内存那家伙原本就慢,这每读写一个数据,都要接见内存三次,这谁顶得住啊?”

说的是啊,内存那家伙慢我是知道的,但读写一次就要折腾三回,我倒是没想过。

“就这照样32位地址的情形,我还没算64位下酿成了4级页表呢,那接见内存的次数就更多了!”

“幸亏咱们马上就要建设缓存设施了,也不用每次都从内存读取数据,要是缓存能找到,就不用读取内存了嘛!”

“可是查页目录和页表照样得要两次啊”,小黑说到。

“要是能把地址翻译的效果也缓存起来就好,就不用每次都从内存查了”,我陷入了思索。

“你看,你跟我想到一会儿去了,以是我才向向导申请,咱们MMU部门也加上缓存,这样地址翻译变快了,咱们整个车间事情效率才高嘛!”

  

这时,向导站了起来,说道:“唉~名目要打开,光你们一号车间提高不行,得发动全厂八个车间一起。小黑,经费的问题不用忧郁,这事由你牵头,把其他几个车间的MMU部门认真人召集起来开个会,把你说的方案落地下去”

“没问题!”,向导这么一说,小黑喜悦坏了。

地址翻译缓存

回去的路上,我又忍不住好奇,向小黑探问起来:“你们这翻译地址用的缓存,准备怎么个弄法?”

“我还没想的很成熟,只有个也许的方案”

“快给我透露一下”

“好吧,告诉你也无妨!我举个例子吧,假设要翻译的虚拟地址是0x12345678,这是一个32位的地址,前面的20位是0x12345000,经由两次查表后,定位到真实的物理页面0x00abc000,最后再加上页内偏移,翻译效果就是0x00abc678

 

 

 

“地址翻译完成后,将虚拟页编号0x12345和物理页编号0x00abc的映射关系纪录起来放到缓存中”

 

“在举行地址翻译的时刻,先去这个缓存里瞅一瞅,看看有没有纪录过,若是有就直接用之前纪录的,找不到再去内存页表中找。跟局部性原理类似,翻译过的地址,在接下来一段时间内再次用到的可能性很大,以是这个缓存是很有需要的!”,小黑异常自信的说到。

 

澳5官网www.a55555.net)是澳洲幸运5彩票官方网站,开放澳洲幸运5彩票会员开户、澳洲幸运5彩票代理开户、澳洲幸运5彩票线上投注、澳洲幸运5实时开奖等服务的平台。

 

 

“听上去很不错,期待早点上马啊!”

TLB

过了几天,我设计去MMU部门转转,想看看他们的缓存搞的咋样了。

一进门,只见小黑和其他几个车间的MMU部门认真人正在主要的讨论着,一旁的画板上画了不少条条框框的图。

 

 

“小黑老哥,你们这是在做什么呢?”

“我们正在研究这个翻译纪录缓存项的存储方式呢!你来的正好,我们讨论了半天也没什么好的思绪,快来帮我出出主意”

我有些好奇,问道:“什么问题把你们都难倒了?”

“就是虚拟地址翻译的效果,我们不知道怎么存了!”

“这有什么好纠结的,缓存空间就那么大,一个翻译效果就是一条纪录,一条一条的存呗”

二号车间MMU认真人连连挥手,“没你想的这么简朴,根据你这种存法,那在翻译地址的时刻,怎么查找?岂非要所有扫描一遍?”

我愣了一下,“啊这,我倒是没想这么多···不外缓存空间也不大,存不了太多翻译效果,所有扫描也还好吧?”

“那可不行,咱们CPU的目的就是要把性能优化到极致,这种方案上了,向导还不得骂死我”,小黑说到。

我想了想,“有了,给虚拟页编号取模,每个虚拟页的翻译纪录只能存在缓存中牢靠的位置,这样不用所有扫描,一次就能定位,是不是很赞?”

小黑摇了摇头:“这个方案我们适才也讨论过了,缓存空间有限,会导致大量的虚拟页取模后映射到统一个存储位置,就会经常冲突,也不是个好设施!”

“看来还真有点穷苦啊”,我也不自觉的皱起了眉头,陷入了思索之中。

“可不是嘛,以是我们才头疼啊”

空气突然平静,所有人都在低头沉思。

“哎,有了!”,一个念头在我脑中闪现。

“什么设施?快说说看”

“分组毗邻!”

“分组毗邻?”,众人问到。

“没错!把前面这两种方案连系一下。可以把缓存存储空间划分许多个组,所有遍历太慢,直接取模映射又容易冲突,那若是映射的效果不是一个牢靠的位置,而是一个分组呢?”

 

“听上去不错唉,这样既降低了冲突,遍历也只需在分组区间里举行了,事情量大大降低了,真是个好设施”

小黑和人人都一致赞成了我的想法。

“那怎么分组呢,若干项为一组呢?”,有人问到。

“嗯,这个我也说欠好,得做实验验证,2、4、8、16都可以试试,实践出真知嘛!”

“好,没问题,咱们下来测试下”

“我另有一个问题,你们的这个缓存项什么时刻更新呢?咱们在珍爱模式下,差其余历程中,统一个虚拟页翻译后对应的物理页面可是差其余,你们可不要用了错误的缓存,那可就出大乱子了!”

“嗨,这还用你说,在场的列位干这份事情时间都不短了,这一点我们比你更清晰。历程切换的时刻,会把新历程的页目录表基地址写到CR3寄存器中,那时刻我们就会把缓存中的数据所有清掉啦!”,小黑胸中有数的说到。

“也不用所有清掉吧,像有些内核页面,是所有历程共享的,就可以保留啊”

小黑点了颔首,“有原理,看来得给地址翻译纪录增添一个符号,用来符号是不是全局有用”

 

一个月后,八个车间MMU部门的缓存所有建设完成,当天便投入使用,咱们这个CPU的运行效率一下突飞猛进,这缓存的威力可真是太大了。

为了跟我们的一二级缓存相区分,小黑还给他们的地址翻译缓存取了一个响亮的名字:TLB——翻译后备缓冲区。

【完】

相关阅读

  • 主板上这家伙,要当CPU和内存的中央商!
  • 主板上来了一个新邻人,CPU慌了!
  • CPU显著8个核,网卡为啥拼命折腾一号核?

皇冠正网平台出租rent.22223388.com)是皇冠(正网)接入菜宝钱包的TRC20-USDT支付系统,为皇冠代理提供专业的网上运营管理系统。系统实现注册、充值、提现、客服等全自动化功能。采用的USDT匿名支付、阅后即焚的IM客服系统,让皇冠代理的运营更轻松更安全。

  • 评论列表:
  •  新2会员手机端(www.22223388.com)
     发布于 2021-10-27 00:00:40  回复
  • 新2网址大全(www.22223388.com)实时更新发布最新最快最有效的新2网址和新2最新网址,包括新2手机网址,新2备用网址,皇冠最新网址,新2足球网址,新2网址大全。妹妹也看,真不错

添加回复:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。