story · 2022年06月15日

使用VIVT、VIPT还是PIPT cache?

早期的ARM处理器使用虚拟地址(virtual addresses)来提供cache index和cache tag。

VIVT优点

这样做的好处是处理器内核可以使用虚拟地址进行cache look up,而无需进行虚拟地址到物理地址的转换。

VIVT缺点

缺点是当修改系统中虚拟地址到物理地址的映射时必须要clean和invalidate cache,这会对性能产生重大影响。

VIPT

后续的处理器使用不同的cache tag方案,index依然来自虚拟地址,但是tag来自物理地址(VIPT)。

使用物理地址作为tag的方案的优点是虚拟地址到物理地址映射关系的更改不需要再clean和invalidate cache。

这对于那些需要频繁修改页表映射的多任务系统具有显著优势。

使用虚拟地址作为index也有一些硬件优势,这意味着cache硬件在进行cache look up时不需要进行虚拟地址到物理地址的转换,从而提高cache look up的性能。这种cache tag方案称为Virtually Indexed, Physically Tagged (VIPT)。

VIPT缺点

VIPT 方案有一个缺点,对于4 way组相联 32KB cache(cacheline为1Byte),需要地址的比特[12:0]作为index。如果在 MMU 中使用4KB页,则虚拟地址的比特[12]可能不等于物理地址的比特[12]。

因此,如果多个虚拟地址映射指向同一个物理地址,则存在潜在的cache一致性问题。

可以通过对页表相关的操作系统软件增加某些约束来解决这个问题 。

PIPT

通过使用Physically Indexed, Physically Tagged (PIPT) cache可以避免这个问题,但是代价就是cache look up的性能比较低。

作者:验证哥布林
来源:芯片验证工程师

推荐阅读

更多数字IC设计技术干货等请关注数字芯片实验室专栏。添加极术小姐姐(微信:aijishu20)微信可申请加入IC设计交流群。
推荐阅读
关注数
12273
内容数
198
前瞻性的眼光,和持之以恒的学习~
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息