ARM体系结构与编程 阅读笔记P207

来源:互联网 发布:翻唱好听的网络女歌手 编辑:程序博客网 时间:2024/06/05 06:25

ARM中采用的是组相连的地址影响方式。如果cache块大小为,则同一块中的各地址中的位[31:L], 就是   

31---------------------------------- 0

31往右数的L

如果cache组大小是(每组包含的块数),则虚拟地址位[L+S-1:L]用于选择cache中的某个组。

 

Cache的分类:

独立cache  统一cache 

独立是 指令和数据读写时时不同一cache

 

 

写通cache和写回cache

 

写回只写入cache不入主存。

写通,cache,主存都有。

 

读操纵分配cache和写操作分配cache

 

读操作分配: 如果cache不命中,只是简单写入主存,要读取时才进行cache预取。

写操作分配:  如果cache不命中,cache预取,

 

缓冲技术:

ARM中 I/O操作经常被映射为存储器读取操作实现。Cache技术要求两次读要有同样的结果,但是I/O操作就不满足上述条件。

写缓冲技术,(buffer),如果I/O操作被缓冲了,等到一个时间再把结果写回到I/O端,就好像又中断了一样。

 

所以MMUPU 会将某些地址空间设置成非缓冲的。(uncachable,unbufferable

 

存储系统的一致性问题。

地址映射关系造成的数据不一致

比如虚拟地址到物理地址的映射关系发生变化前,虚拟地址A1所在的数据块已经预取到cache,当虚拟地址和物理地址映射关系发生变化后,CPU访问A1,再用cache中数据块将发生错误。

 

6指令cache的数据一致性问题

 

Cache内容锁定,让关键代码和数据所在的块不会被替换。

CP15中 C7用于控制cache和写缓冲区

C9cache内容锁定寄存器。

 

快速上下文切换技术 fast context switch extension , fcse. 

一般情况下,两个进程占用的虚拟地址空间有重叠,系统在这两个进程间进行切换时,必须进行虚拟地址到物理地址的重映射。这就涉及到很多东西。MMU中页表,cacheTLB

Fcse将各进程的虚拟空间切换成不同的虚拟空间。这样进行进程间切换时就不需要进行虚拟地址到物理地址的重映射。

 

 

0 0
原创粉丝点击