计组 | 【Cache】主存映射cache容量及cache写策略
映射 策略 cache 容量 计组
2023-09-11 14:19:29 时间
预备知识
1.cache的产生背景
在多体并行存储器中讲过,外部设备的优先级最高,这样就会导致CPU等待外部设备访存的现象,致使CPU空等一段时间,甚至可能等待几个主存周期,从而降低了CPU的工作效率。
为了避免CPU与I/O设备争抢访存,可在 CPU与主存之间加一个Cache。
这样一来,如果外部设备正在和主存交换信息,CPU就可以不用等待,直接从Cache中取所需信息。当然,考生会提出质疑,Cache那么小,每次访问 CPU的数据都有吗?解释:
2.局部性原理
通过大量典型程序的分析,发现 CPU从主存取指令或取数据,在一定时间内,只是对主存局部地址区域的访问(如循环程序、一些常数)。
于是人们就想到一个办法,将CPU近期需要的程序提前存放到Cache中。
这样CPU只需访问Cache就可以得到所需要的数据了。
一般Cache采用高速的SRAM制作(主存一般使用DRAM),其价格比主存高,容量远比主存小。
补充:局部性原理一般有两种,即时间局部性原理和空间局部性原理。
- 1) 时间局部性原理。如果某个数据或指令被使用,那么不久将可能再被使用。
- 2)空间局部性原理。如果某个数据或指令被使用,那么附近数据也可能被使用。
3.主存与Cache的编址
前提:如果主存要和Cach
相关文章
- [Android Pro] AndroidX重构和映射
- intellij 编译 springmvc+hibernate+spring+maven 找不到hbm.xml映射文件
- hibernate5(5)实体映射注解配置[2]主键生成策略
- 使用cloudreve搭建个人网盘,映射到本地盘符
- 最全三大框架整合(使用映射)——Emp.java
- java实现遍历树形菜单方法——映射文件VoteTree.hbm.xml
- JPA实体关系映射:@ManyToMany多对多关系、@OneToMany@ManyToOne一对多多对一关系和@OneToOne的深度实例解析
- Java实现 LeetCode 706 设计哈希映射(数组+链表)
- 第三百六十四节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)的mapping映射管理
- qtwebengine注册js后,怎样自动映射
- 【Linux 内核 内存管理】分区伙伴分配器 ② ( free_area 空闲区域结构体源码 | 分配标志位 | GFP_ZONE_TABLE 标志位区域类型映射表 |分配标志位对应的内存区域类型 )
- Win10 提示账户名与安全标识间无任何映射完成
- Hibernate通过one-to-one元素的一对一映射
- docker修改容器的端口、容器名、映射地址......