下冰雹 · 2023年04月07日 · 北京市

Arm中的TLB

TLB的全称是translation lookaside buffer,它是一种cache,用于存储 虚拟地址(VA)物理地址(PA) 的最新转换。它用于减少访问内存位置所花费的时间。它可以称为地址转换缓存。它是芯片内存管理单元(MMU) 的一部分。

看各种Arm CPU的TRM,通常会实现两层TLB:L1 TLB和L2 TLB。其中L1 TLB通常是全相连的结构,使用register结构来完成。L2 TLB比较大点,通常采用组相联的方式,使用RAM结构来完成。因为1次translation table walk(TTW)占用的时间很长,为了缩短,在TTW的不同转换中,一般会设计中间级cache来存放一些中间的translation结果。具体如下:

  • L2TLB:这个是通常的TLB功能,直接存放的就是VA到PA的映射了。
  • Walk cache: 在Arm architecture中,TTW得到PA是在level 3的page descriptor或level 2的block descriptor。walk cache ram是用于存放VA到指向level 3或level 2的address,也就是说,如果只有1级stage的话,从walk cache映射的address去取得的descriptor内容就是指向VA到PA。所以这层次也叫做last level TLB。
  • 如果walk cache ram存放的VA和指向level 3 page descriptor的address的对应关系,在做TLB lookup的时候,hit到这种entries的话,用这个address再去做最后level 3 table walk取得level 3 page descriptor。从level 3 page descriptor中可以提取出VA要映射的PA了。
  • 如果walk cache ram存放的VA和指向level 2 block descriptor的address的对应关系,在做TLB lookup的时候,hit到这种entries的话,用这个address再去做最后level 2 table walk取得level 2 block descriptor。从level 2 blockdescriptor中可以提取出VA要映射的PA了。
  • (总结:walker cache里存放的是Stage1的level 2或者level3的descriptor的地址,也就是它的内容需要最后一次TTW下就可以得到PA了)
  • IPA cache: 之所以存在IPA cache,是因为Arm里支持Virtualization Host Extensions(VHE) feature,简单说就是MMU TTW会有两个stage的转换。stage1将VA转换为IPA,stage2将IPA转换为PA。因此IPA cache的作用就是存放IPA到PA的映射,减少stage2的TTW了。
作者:谷公子
文章来源:https://blog.csdn.net/W1Z1Q/article/details/129962930?spm=1001.2014.3001.5502

推荐阅读

更多IC设计技术干货请关注IC设计技术专栏。
迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。
推荐阅读
关注数
11502
内容数
1227
主要交流IC以及SoC设计流程相关的技术和知识
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息