新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > ARM核920T性能优化之MMU

ARM核920T性能优化之MMU

作者: 时间:2016-12-02 来源:网络 收藏


任务切换需要以下步骤:

1)保存活跃任务的上下文,并将该任务置于睡眠态;

2)清除cache,如果使用回写策略,则需要清理D-cache;

3)清除TLB,从而移除原任务的转换数据;

4)配置MMU,以使用新的页表,把虚拟运行空间转换为被唤醒任务在物理存储器中的位置;

5)恢复被唤醒任务的上下文

6)继续执行恢复的任务

二.页表

ARM MMU硬件采用2级页表结构:一级页表(L1)和二级页表(L2)。一级页表只有一个L1主页表(L1 master page table)。L1主页表包含两种类型的页表项:保存指向二级页表起始地址指针的页表项和保存用于转换1MB段的页表项。L1主页表也称为段页表(section page table)。L1主页表将4GB的地址空间划分为多个1MB的段(section),因此L1页表包含4096个页表项,L1主页表是一个混合表,可作为L2页表的页目录,也可作为用于转换1MB虚拟空间的L2粗(coarse)页表或L2细(fine)页表的指针;当L1页表用于转换一个1MB的段时,其页表项(PTE)包含的是物理存储器中1MB页帧(page frame)的首地址。目录页表项和1MB的段页表项可以共存于L1主页表。


一级页表项:

一级页表支持4种类型的页表项:

1)1MB段转换项

2)指向L2细页表的目录项

3)指向L2粗页表的目录项

4)产生中止异常的错误项


二级页表项:

L2页表有4种可能的页表项:

1)定义64KB页帧属性的大(large)页表项;

2)定义4KB页帧的小(small)页表项;

3)定义1KB页帧的微(tiny)页表项;

4)访问时产生页错误中止异常的错误页表项;



L1转换表基址

CP15:c2寄存器保存转换表基地址TTB(Translation Table Base address)-指向L1主页表在虚存中的位置。CP15:c2寄存器的格式如图:


三.转换旁路缓冲器(TLB)

单步页表搜索:

如果MMU搜索的是1MB大小的段页,则硬件能用单步搜索找到所要的页表项,因为1MB的页表项是存放在L1主页表里的。


评论


技术专区

关闭