历史上的今天
今天是:2024年11月02日(星期六)
2021年11月02日 | ARM体系结构--第五章ARM存储系统
2021-11-02 来源:eefocus
1、CP15: ARM存储管理系统的系统控制协处理器
包含:16个32位寄存器。

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

C2寄存器(页目录基地址):类似于X86中的cr3寄存器,保存进程页全局目录表的基地址
2、MMU:内存管理单元
MMU:
把虚拟地址映射到物理地址;
存储器访问权限的控制;【处理器一般有用户模式(User Mode)和特权模式(privileged Mode)之分。操作系统可以在页表中设置每个页表访问权限,有些页表不可以访问,有些页表只能在特权模式下访问,有些页表在用户模式和特权模式下都可以访问,同时,访问权限又分为可读、可写和可执行三种。这样设定之后,当CPU要访问一个VA(Virtual Address)时,MMU会检查CPU当前处于用户模式还是特权模式,访问内存的目的是读数据、写数据还是取指令执行,如果与操作系统设定的权限相符,则允许访问,把VA转换成PA,否则不允许执行,产生异常(Exception)。】
设置虚拟存储空间的缓冲特性。
TLB(转换后援缓冲器):保存最近使用过的虚拟地址对应物理地址的变换条目。当CPU需要访问内存时,先在TLB中查找需要的地址变换条目,如果该条目不存在,CPU再从页表中查询,获得物理地址。并将该条目加入到TLB中。当内存中的页表内容改变,或者通过修改C2使用新的页表的时候,TLB内容 需要全部清除。

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

cache和主存中的地址映射方式:
直接映射方式:主存中的任意块只能和cache中的特定一块相关联
组相联映射方式:把主存和cache按同样大小划分为N路,主存中的每一路都与cache中的任意一路可以关联,即主存中每一行都有N行与之对应,并且存在于不同的way中。【ARM920T采用64路组相关联】
全相联映射方式:主存中的任意块可以和cache中的任意块相关联
快速上下文切换技术:
快速上下文切换技术(FCSE)通过修改系统中不同进程的虚拟地址,避免在进行进程间切换时造成虚拟地址到物理地址的重映射,从而提高系统性能;
通常情况下,如果两个进程占用的虚拟地址空间重叠,系统在这两个进程之间进行切换时,必须进行虚拟地址到物理地址的重映射。而虚拟地址到物理地址的重映射涉及到重建MMU中的页表,而且cache 及TLB中的内容都必须使无效(通过设置协处理器寄存器的相关位)。这些操作将带类巨大的系统开销,一方面重建MMU和使无效cache及TLB的内容需要很大的开销,另一方面重建cache和TLB内容也需要很大的开销。
如果两个进程使用了同样的虚拟地址空间,则对CPU而言,两个进程使用了同样的虚拟地址空间;快速上下文切换机构对各进程的虚拟地址进行变换,这样的系统中除了CPU之外的部分看到的是经过快速上下文切换机构变换的虚拟地址。快速上下文切换机构将各进程的虚拟地址空间变换成不同的虚拟地址空间。这样在进行进程间切换时就不需要进行虚拟地址到物理地址的重映射。
史海拾趣
|
帮一个网友问的,我也同学习之!希望大家给看看: 如图所示,相当于把电源输出端给短路,请教图中的贴片是什么器件,可以用什么元件代换,还有其他器件损坏吗? … 查看全部问答> |
|
我写的一个USB驱动, 安装后提示, 设备无法启动,代码10 ,一般是什么原因? 我写的一个USB驱动, 安装后提示, 设备无法启动,代码10 ,一般是什么原因? 具体情况是MP3,不成功, 但优盘就可以成功! 请问大家这样的问题怎末解决?… 查看全部问答> |
|
有没有办法实现在PC上安装sqlce,然后通过程序将sqlserver2000上的数据插入到ce数据里,然后再复制到设备上(因为有10W条左右的数据,在设备上执行这样的操作时间太长),请大侠们帮忙,最好有详细的方案… 查看全部问答> |
|
我用单片机做实验,想外接一个键盘和数码管,需要用到BC7281来控制,现在出现一点问题 主要涉及三个口线:DAT,KEY,CLK dat 接了一个20k上拉电阻,KEY,CLK,直接接到CPU上,这和手册是一样的 现在我DAT脚的电压为3.5v,key为1.3v,clk为0v 然后我向clk写 ...… 查看全部问答> |
|
microblaze的FPU貌似开启了,但是计算浮点的时候还是溢出 起初我以为是log函数,没有包含在math。h头文件里面,但是我果断换了一个计算平方根的函数,照样程序溢出,(13.1的ise)。 查看microblaze的属性,发现FPU选择的是 extern,basic我也试过没用,一样溢出。 求大神指点… 查看全部问答> |
|
求教一个问题,我在写彩屏液晶的程序的时候,有16为驱动的程序有8位驱动的程序。有时候都能用,但有时候会就不能用,求分析哈。 TFT彩屏IC:9320 or 9325 接口声明: #define DATAOUT(x) GPIOB->ODR=x; //数据输出 #define DATAOUTH(x) GPIOB-> ...… 查看全部问答> |
|
我是新手 用msp430 timerA想实现一个捕获功能 用一根导线将CCI0A和ACLK连接起来 想测量ACLK的频率 结果进不去中断 以下是代码 求大神帮忙 #include uint ccr[100]; void main( ) { WDTCTL = W ...… 查看全部问答> |




