首页 > 其他分享 >什么是cache一致性?

什么是cache一致性?

时间:2023-03-10 20:13:12浏览次数:36  
标签:Cache 读取 DDR 什么 cache 程序 一致性 数据

1. 什么是cache一致性?

   1)cache的作用。

   Zynq7000系列的架构图部分内容如下图所示,它的PS侧有两个cpu arm核,分别成为0核、1核,

每个cpu核都有一个D-Cache(数据缓冲区)。由于磁盘上的数据读取比内存上的读取慢的多,因此为了

提高数据读取的速度,设计了Cache这个器件,大大提升了GPP上程序的运行速度。

    

 

              图1-1 Zynq7000系列架构图

 

 

   2)数据在程序、cache、DDR(内存)之间的关系。

    cache只是临时保存数据,当系统掉电后,它上面的数据就会清空丢失;

    DDR可以永久的保存数据,系统掉电,不会丢失数据,就像电脑上的磁盘文件一样。  

    如下图所示,程序在运行时,操作系统会在DDR的可用地址空间上分配一块内存给程序用。

程序中数据的读写就是对DDR上的数据进行读取,Cache在其中扮演的作用是:把DDR上的内容,读取

到Cache上,程序对DDR的读写就是对Cache的读写,Cache会在适当的时机把数据同步到DDR上。

       

 

                    图1-2 程序、Cache与DDR的映射关系

 

 

     3)Cache上的数据由于没有及时同步到DDR上,多核通信时会出现不一致的问题。

    如下图所示,0核和1核上的程序使用同一块DDR进行数据通信,如果某一时刻,0核上的程序把数据写入到

0核cache上的cache,并且没有同步到DDR上,而1核上的程序恰好此时读取DDR上的数据,它读取的数据就是旧的数据,

也是错误的数据,引起这个错误的问题,就是Cache一致性问题

 

    

 

                  图1-3 多核通信引起的cache一致性问题

 

标签:Cache,读取,DDR,什么,cache,程序,一致性,数据
From: https://www.cnblogs.com/blackandwhite/p/17204456.html

相关文章

  • 使用PostgreSQL而不是MySQL存储中型数据有什么好处?
    我可以明确地回答.我们之所以选择Postgres,是因为它在操作上比MySQL更可靠,而当时公司的创始人相信SQL数据库的可移植性.随着年份的发展,我们发现了这一点,我们发现基本上,Post......
  • 什么叫GLB外推?
    答案是:全称光算谷歌搜索留痕霸屏外推利用高权重平台生成的查询页面收录后达到谷歌排名霸屏展现的效果。谷歌留痕技术就是在高权网站留下查询的痕迹,然后用GPC爬虫池把这些页......
  • 什么是scrum中的“3355”
    scrum的3355是指:3个工件:产品Backlog,SprintBacklog,潜在可交付软件增量3个角色:PO,Master,团队(最适合人数为7-2到7+2之间)5个会议:产品待办梳理会,Sprint计划会,每日站会......
  • 「密码学」哈希为什么要将盐加在明文后面?
    众所周知,在做消息认证或者签名时,仅使用hash函数安全性是不高的,容易遭受字典和暴力破解(https://www.cmd5.com/)。所以通常会使用带密钥或加盐的哈希算法作为消息认证或者口......
  • ERP 和 MES 之间的联系是什么?
    从企业的管理来说,ERP(EnterpriseResourcePlanning,企业资源计划)与MES(ManufacturingExecutionSystem,即制造执行系统)系统之间的关系有点像公司总部与分厂的关系,ERP向......
  • Redis为什么这么快
    1、Redis是一款纯内存结构,避免了磁盘I/O等耗时操作。2、Redis命令处理的核心模块为单线程,减少了锁竞争,以及频繁创建线程和销毁线程的代价,减少了线程上下文切换的消耗......
  • 优思学院|零质量控制是什么概念?
    今天,优思学院希望和大家讲述一个比较少人谈论,但又是一个很好的质量管理概念,这就是零质量控制(ZeroQualityControl)。零质量控制(ZeroQualityControl)是指一个理想的系统,可以......
  • 【django-vue】celery延迟任务、定时任务 django中使用celery 秒杀功能 双写一致性
    目录上节回顾字符编码django-redis今日内容1celery执行异步任务,延迟任务,定时任务延时任务定时任务2django中使用celery2.1秒杀功能2.1.1视图2.1.2任务order_task.p......
  • Celery高级用法——接口加缓存、双写一致性
    轮播图接口加缓存为什么要加缓存网站首页被访问的频率很高,同一时间1w个人在访问,首页的轮播图接口会执行1w次,如果每一次都向后台拿数据,则效率较低想一种方式,让这1w个访......
  • celery执行异步任务延迟任务定时任务-django中使用celery-轮播图接口加缓存-双写一致
    目录celery执行异步任务延迟任务定时任务-django中使用celery-轮播图接口加缓存-双写一致性-首页轮播图定时更新-课程前端页面-课程功能表分析今日内容详细1celery执行异......