Reduced IA width
这个概念的理解是,假如使用的是4KB的granule,IA(input address)的位宽是35位,根据IA bits resolved at different levels of lookup 表格,可以得出initial level为 level 1。level 1 从38:30,相当于有4-bit 的减少。这个时候意味着translation table size 被减少了2^4倍。但是又因为要覆盖所有的39-bit的地址空间范围,那么TTBR就会增加4-bit来保持这个总量即变为TTBR[47:8]。
Concatenated translation tables
串联转换表技术,允许地址翻译的初始查找级别中解析更多的输入地址(IA)位。
在ARMv8架构中,地址翻译可以是多阶段的。在第二阶段翻译中,可以通过串联(concatenating)多个转换表来增加初始查找级别可以解析的地址位数。这意味着,通过将多个转换表连接在一起,可以使得每个查找级别覆盖更大的地址范围。
- 增加IA位:每增加一个IA位的解析,就需要将转换表的数量加倍。例如,如果需要解析额外的n位,就需要2n2n个串联的转换表。
- 减少TTBR地址宽度:由于串联的转换表可以覆盖更大的地址范围,因此存储在TTBR(Translation Table Base Register)中的转换表基地址的位宽会相应减少。每增加一个IA位,TTBR中的地址宽度就减少1位。
以4KB转换粒度为例,如果使用单个转换表,第一阶段查找可以解析39位的IA,即IA[38:30]。为了扩展IA宽度到40位,并在第一阶段查找中解析IA[39:30],可以采取以下措施:
- 串联两个转换表:这将创建一个总大小为8KB的转换表。
- 调整TTBR:由于串联了两个转换表,TTBR中的地址宽度将减少1位。在这种情况下,TTBR的地址字段变为TTBR[47:13]。