Intel cpu,指令缓存和数据缓存分开吗? 什么分离策略?

tocligg 2016-04-25 09:23:40
网上说,现代cpu都采用指令Cache和数据Cache分离的策略,来减少指令流水线的资源冲突。
那么,例如我的i7 cpu,32k一级缓存,256k二级缓存,8M三级缓存,
1.在这些缓存当中,是否有固定容量分配给指令缓存,其余的容量分配给数据缓存?
2.这个缓存分配策略是哪个软/硬件层次决定的? cpu还是OS还是别的什么?
...全文
414 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
vinter-he 2019-03-01
  • 打赏
  • 举报
回复
虽然结贴了,但是看到这个问题的时候我突然想回答一下,首先L1缓存是指令和数据分开的,就像你说的便于流水作业,因为这一级缓存是直接面向处理单元的。L2和L3是指令和数据联合在一起的,因为要提高缓存的命中率,只要有空闲,就可以存,并没有规定多少属于数据多少属于指令。至于实现方式,首先要有硬件支持,也就是要确确实实有那个缓存块,第二就是操作系统也要支持去写那个缓存块。操作系统实现了自动使用缓存,对上层使用者是透明的。
tocligg 2016-05-04
  • 打赏
  • 举报
回复
有人回答一下吗?

1,025

社区成员

发帖
与我相关
我的任务
社区描述
Linux /Unix kernel支持不同的硬件体系,X86, ARM, MIPS, 等等
社区管理员
  • CPU和硬件区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧