ARM体系结构--第五章ARM存储系统

注:本文资料全部来源于网络或书籍,同时加上个人理解。若有侵权,告知即删。若有错误,留言商讨。

1、CP15: ARM存储管理系统的系统控制协处理器

包含:16个32位寄存器。

C1寄存器(各种控制位):

C2寄存器(页目录基地址):类似于X86中的cr3寄存器,保存进程页全局目录表的基地址

 

2、MMU:内存管理单元

MMU:

  1. 把虚拟地址映射到物理地址;
  2. 存储器访问权限的控制;【处理器一般有用户模式(User Mode)特权模式(privileged Mode)之分。操作系统可以在页表中设置每个页表访问权限,有些页表不可以访问,有些页表只能在特权模式下访问,有些页表在用户模式和特权模式下都可以访问,同时,访问权限又分为可读可写可执行三种。这样设定之后,当CPU要访问一个VA(Virtual Address)时,MMU会检查CPU当前处于用户模式还是特权模式,访问内存的目的是读数据、写数据还是取指令执行,如果与操作系统设定的权限相符,则允许访问,把VA转换成PA,否则不允许执行,产生异常(Exception)。】
  3. 设置虚拟存储空间的缓冲特性。

TLB(转换后援缓冲器):保存最近使用过的虚拟地址对应物理地址的变换条目。当CPU需要访问内存时,先在TLB中查找需要的地址变换条目,如果该条目不存在,CPU再从页表中查询,获得物理地址。并将该条目加入到TLB中。当内存中的页表内容改变,或者通过修改C2使用新的页表的时候,TLB内容 需要全部清除。

 

 

5.4 高速缓冲存储器和写缓冲区

cache的基本单位行。每行的大小通常为几个字。CPU从主存中读取一个字的时候,他将会把主存储器中和cache行相同大小的数据读取到cache中。

cache和主存中的地址映射方式:

  1. 直接映射方式:主存中的任意块只能和cache中的特定一块相关联
  2. 组相联映射方式:把主存和cache按同样大小划分为N路,主存中的每一路都与cache中的任意一路可以关联,即主存中每一行都有N行与之对应,并且存在于不同的way中。【ARM920T采用64路组相关联】
  3. 全相联映射方式:主存中的任意块可以和cache中的任意块相关联

 

快速上下文切换技术:

快速上下文切换技术(FCSE)通过修改系统中不同进程的虚拟地址,避免在进行进程间切换时造成虚拟地址到物理地址的重映射,从而提高系统性能;

通常情况下,如果两个进程占用的虚拟地址空间重叠,系统在这两个进程之间进行切换时,必须进行虚拟地址到物理地址的重映射。而虚拟地址到物理地址的重映射涉及到重建MMU中的页表,而且cache 及TLB中的内容都必须使无效(通过设置协处理器寄存器的相关位)。这些操作将带类巨大的系统开销,一方面重建MMU和使无效cache及TLB的内容需要很大的开销,另一方面重建cache和TLB内容也需要很大的开销。

如果两个进程使用了同样的虚拟地址空间,则对CPU而言,两个进程使用了同样的虚拟地址空间;快速上下文切换机构对各进程的虚拟地址进行变换,这样的系统中除了CPU之外的部分看到的是经过快速上下文切换机构变换的虚拟地址。快速上下文切换机构将各进程的虚拟地址空间变换成不同的虚拟地址空间。这样在进行进程间切换时就不需要进行虚拟地址到物理地址的重映射。
 

?【很多疑问,关于快速上下文切换,现在的Linux内核有没有使用到?帮忙解答。】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值