linux内存管理 (二) 6.1 硬件 CACHE/WRITE BUFFER/TCM

  • cache
	1.物理组成
		缓存线个数/缓存集  叫做 缓存的集合关联性
	2.cache 的管理
		加载到cache
			缓存是自动管理更新的。每当处理器想要访问可缓存位置时,都会检查缓存。
			当在cache 未命中时,将分配一个位置并从内存加载缓存线.
		管理cache
		清除出cache
	3.cache 信息 访问
		3.1 hit
			如何匹配
				way/set ???
		3.2 miss
	4.cache 的 拓扑(有多少级cache) 及 访问策略(不同cache间是否进行缓存)
		1. 拓扑
			不同的缓存拓扑是可能的
			所有缓存拓扑都必须符合内存一致性模型。
		2. 访问策略
			不同的访问策略是可能的
			所有访问策略都必须符合内存一致性模型。
	5. 其他
		•缓存是否独立
		•缓存命中时,写回内存的方法
		•缓存未命中时,加载数据到cache 的方法
		•缓存未命中时,替换cache line 的方法
  • write buffer
写缓冲区是一块高速存储器,其目的是优化对主存储器的存储
 	1. 存储的过程
		当存储一个数据发生时,
		1.store指令将信息写到写缓冲区,信息包括
			数据
			地址
			其他详细信息(例如数据大小

		2.写入缓冲区以主存速度完成存储。
			2.1 什么时候 完成存储
			2.2 会不会做一些重新排序
 	2. write buffer 的实际作用
		写入主存通常比ARM处理器的速度慢得多.
		但是 write buffer 可以代理 这个过程 . 
		在该 store 指令执行之后(此时其实还没写入主存),ARM处理器可以继续以全速执行下一个指令

  • TCM
TCM 为什么出现
	
	缓存的问题
		缓存可以提供低延迟内存,但是 它 不可预测性
	缓存的升级 : TCM
		提供低延迟内存
		可预测性

TCM 用途
	作用
		提供可预测性的 低延迟 内存

	一般用来保存什么
		关键的例程 // 在其中,缓存的不确定性是非常不可取的。
			中断处理例程
			实时任务
		草稿行数据
		局部性属性不太适合缓存的数据类型
		中断堆栈之类的关键数据结构

你可能感兴趣的:(Linux内存管理)