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
推荐阅读
- CPU多层caches的allocation方式
- PCIE,USB,SATA ,Ethernet 都在用的SerDes到底是个啥?
- 搞芯片,不懂逻辑综合是啥?
- IC各细分领域公司简介以及薪资调研(GPU篇)
- 会写VIP,会提取testplan,GPT进化的太快了!!!
更多IC设计技术干货请关注IC设计技术专栏。
迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。