首页 > 其他分享 >DMA cache一致性二

DMA cache一致性二

时间:2024-04-01 09:11:23浏览次数:10  
标签:DMA alloc hit dma 缓冲 cache coherent 一致性

参考资料: 宋宝华:那些年你误会的Linux DMA(关于Linux DMA ZONE和API最透彻的一篇)-CSDN博客 https://blog.csdn.net/waterhawk/article/details/50723677 https://www.linuxidc.com/Linux/2012-09/69591p2.htm 注:本节有一些个人理解,如有误请谅解   dma_alloc_coherent与dma_alloc_writecombine的区别(无保证cache一致性情况下): dma_alloc_coherent 在 arm 平台上会禁止页表项中的 C (Cacheable) 域以及 B (Bufferable)域。而 dma_alloc_writecombine 只禁止 C (Cacheable) 域. C 代表是否使用高速缓冲存储器, 而 B 代表是否使用写缓冲区。 这样,dma_alloc_writecombine 分配出来的内存不使用缓存,但是会使用写缓冲区。而 dma_alloc_coherent 则二者都不使用。 C B 位的具体含义: 0 0 无cache,无写缓冲;任何对memory的读写都反映到总线上。对 memory 的操作过程中CPU需要等待。 0 1 无cache,有写缓冲;读操作直接反映到总线上;写操作,CPU将数据写入到写缓冲后继续运行,由写缓冲进行写回操作。 1 0 有cache,写通模式;读操作首先考虑cache hit;写操作时直接将数据写入写缓冲,如果同时出现cache hit,那么也更新cache。 1 1 有cache,写回模式;读操作首先考虑cache hit;写操作也首先考虑cache hit。   后面加了一条无保证cache一致性的情况下,原因在于假设使用dma_alloc_coherent使用了cache,就得进行不断地invalidate cache和TLB,并且还无法保证百分百不出问题,所以直接不使用cache缓存和缓冲 但是如果有硬件可以确保cache一致性的话,如CMN,那么dma_alloc_coherent就不一定不使用cache了,并且dma_alloc_coherent申请的物理内存也不一定是连续的,这跟芯片原厂实现方式强相关。具体可见参考资料的博客                      

标签:DMA,alloc,hit,dma,缓冲,cache,coherent,一致性
From: https://www.cnblogs.com/lethe1203/p/18107722

相关文章

  • Postfix + Dovecot IMAP 服务器的终极指南,完整支持 SPF、DKIM 和 DMARC,以及多域名设
    邮件服务器配置指南本指南将带您完成Postfix+DovecotIMAP服务器的设置,支持SPF、DKIM和DMARC,还将提供多域名配置的额外指导。在本指南中,domain.com将作为您的根域名,mail.domain.com将作为您邮件服务器的主机名。0x01添加DNS记录在您的域名下添加如下DNS记录:mailI......
  • 一致性模型
    一致性模型模型Store:一个黑盒用以提供数据可用性,以及数据持久性A/B/C:三个相互独立的Process,对Store有读写操作一致性强一致性当A写入到Store后,之后的A,B,C的读操作都将返回最新值弱一致性当A写入到Store后,Store不能保证A,B,C的读操作都将返回最新值.最终一致......
  • 【Redis】Redis 生产问题。如何确保缓存和数据库数据的一致性? 常见的缓存更新策略?
    目录缓存穿透缓存穿透解决办法缓存击穿击穿解决办法?缓存穿透和缓存击穿的区别?缓存雪崩雪崩解决办法?如何确保缓存和数据库数据的一致性?常见的缓存更新策略?缓存穿透定义:缓存穿透说简单点就是大量请求的key是不合理的,根本不存在于缓存中,也不存在于数据库中。这......
  • GPTCache使用
    1.概述传统应用开发中,为了提升系统的查询性能,往往会在系统架构设计中加入缓存机制。在AI大模型领域,虽然功能非常强大,但是使用成本也是非常昂贵的,比如OpenAI的GPT-4按照token的个数来计算费用。那么,在这种情况下是否有一种方案来解决呢?既能降低使用LLMAPI的成本,也能同时提升调用L......
  • 存储系统-cache-磁盘
    计算机采用分级存储体系的主要目的是为了解决存储容量、成本和速度之间的矛盾问题。两级存储:Cache-主存、主存-辅存(虚拟存储体系)。局部性原理:总的来说,在CPU运行时,所访问的数据会趋向于一个较小的局部空间地址内,包括下面两个方面:时间局部性原理:如果一个数据项正在被访问......
  • 每个程序员都应该了解的内存知识(二): CPU Cache
    CPUCache架构每个程序员都应该了解的内存知识.pdf-p22-每个程序员都应该了解的内存知识-P22-20240328112647​​每个程序员都应该了解的内存知识.pdf-p23-每个程序员都应该了解的内存知识-P23-20240328112807​​每个程序员都应该了解的内存知识.pdf-p23-每个......
  • Windows 安装 Podman Desktop
    简介: Podman(PODMANager)是一个用于管理容器和映像、挂载到这些容器中的卷以及由容器组组成的pod的工具。Podman在Linux上运行容器,但也可以使用Podman管理的虚拟机在Mac和Windows系统上使用。Podman基于libpod,libpod是一个用于容器生命周期管理的库,也包含在此存储......
  • podman 入门实战
     一入编程深似海,从此节操是路人。最近使用podman,就想着写一篇总结性的笔记,以备后续参考。就如同写代码,不写注释,过了一段时间可能会想这是我写的吗?不会吧,还要理一下逻辑才能读懂,不利于后期维护。感觉整体体验下来,镜像获取、容器创建、容器监控、容器移除,和docker差不多,感觉可......
  • STM32 串口 DMA 接收不定长数据的一种方法
    1.前言使用串口接收不定长数据时,可以有多种方法,比如最常见的有额外使能一个定时器,在超过定时范围未收到后续的字节时,认为此帧结束;或者利用IDLE中断,当数据空闲时,自动产生中断;亦或每接收到一个字节后都通过应用程序进行一次处理。这次我们介绍另外一种方法,在DMA方式下利......
  • stm32f103c8t6学习笔记(学习B站up江科大自化协)-DMA
    DMA简介    ·DMA主要用于协助CPU完成数据转运的工作    ·DMA,英文全称DirectMemoryAccess,DMA这个外设是可以直接访问STM32内部存储器的,包括运行内存SRAM,程序存储器flash和寄存器等等,DMA都有权限访问,所以DMA能完成数据转运的工作    ·第二行的外......