Linux的completion线程同步机制

Linux的completion线程同步机制 当Linux一个线程需要对某个硬件设备进行读写访问或者控制操作时,该线程通过系统调用执行的内核读写访问或控制操作函数如果要确保上次操作完成后再进行下一步操作,即等待硬件设备返回上一次操作完成信息(通过中断来获取上次操作完成信息)。注意:我们不能假定中断为该线程的上下文,很大可能性中断和读写/控制操作函数属于不同的线程上下文。 驱动初始化 读写/控制操作函数 中断处理函数 1 定义和初始化completion变量...
分类: 其他 发布时间: 11-20 09:30 阅读次数: 0

DW_axi_dmac控制器(概述)

DW_axi_dmac控制器(概述) DW_axi_dmac遵循AMBA2.0标准和AMBA AXI协议2.0标准。DW_axi_dmac逻辑的外部信号主要包括:AHB信号(我的理解:主要是作为从设备接口部分,供AHB总线上的其他主设备来访问自身控制寄存器) 主设备接口信号(我的理解:DMA作为AHB总线主设备,访问内存和其他AHB总线上的从设备) 硬件握手信号(我的理解:带外信号部分,用于和QSPI的DMA接口逻辑进行流控) 中断信号 调试信号 时钟和复位信号基本特...
分类: 其他 发布时间: 11-20 09:29 阅读次数: 0

DW_axi_dmac控制器(术语)

Source peripheral 源设备。DMA通过AXI总线读取该设备的数据,并将数据保存到通道FIFO中。Destination peripheral 目的设备。DMA将通道FIFO的数据写入该设备。数据是先前从Source peripheral读取的。Memory 内存设备。用于DMA传输的一类源/目的设备,但是DMA不需要通过握手接口和这类设备进行交互。(我理解这类设备为系统内存)Channel 通道。在源设备和目...
分类: 其他 发布时间: 11-20 09:29 阅读次数: 0

飞腾CPU体系结构之高速缓存概念

Cache类型寄存器CTR_EL0 描述处理器cache结构信息的寄存器。 DIC,bit[29], 在虚拟内存范围内的指令缓存块失效。 IDC,bit[28],在虚拟内存范围内的数据缓存块和L2缓存块全部清零。 CWG,bit[27:24],回写缓存块长度。 ERG,bit[23:20],用于独占型读写操作的缓存块长度。 DminLine,bit[19:16],数据缓存块和L2缓存块长度。...
分类: 其他 发布时间: 11-20 09:29 阅读次数: 0

PCIe原子操作

#include linux/module.hstruct module *find_module(const char *name);
分类: 其他 发布时间: 11-20 09:29 阅读次数: 0

从计算到设备/内存的高速互连协议

CXL:Compute Express Link, 一种基于PCIe 5的、新型的从计算到设备/内存的高速互连协议。1)提供与计算端互连的三种可选应用接口HLS(HaL Stream interface),基于CXS的流总线接口 AXI4总线接口,可以提供DMA可选特性。 CLS,基于CXS的CXL流总线接口2)提供与Serdes设备端互连的、遵顼PIPE(PHY Interface for the PCI Express Architecture)规范的接口。3)可以实现EP和RP两种功能模
分类: 其他 发布时间: 11-20 09:28 阅读次数: 0

AXI从设备接口

AXI从设备接口,可以实现EP应用,即作为PCIe总线主设备通过PCIe总线向主机发起PCIe事务。实现RP应用时,AXI从设备接口可以用于发起I/O、配置CFG和延迟内存写DMWr请求。 实现EP应用时,该接口连接的客户逻辑(外设)必须具有PCIe总线主设备能力。 在RP和EP应用中,该接口都能向PCIe总线发送消息。AXI从设备接口向PCIe总线发送一次事务请求。AXI读写访问,通过区间或边带描述符两种方式,被转换成无确认或有确认的读写请求的TLP。无确认的逻辑产生的内存写和消息请求,映射
分类: 其他 发布时间: 11-20 09:28 阅读次数: 0

显示的图像存储方式

1. linear 和 tiled小块,是指在内存上地址按照32字节对齐的32字节连续的数据,起始地址的低5位为零。如果一个像素点占32位,那么一个小块描述了8个像素点信息,这8个像素点有两种方式:linear和tiled。linear:描述一行连续的8个像素点* * * * * * * *tiled:描述上下相邻两行的4个像素点 *...
分类: 其他 发布时间: 11-20 09:28 阅读次数: 0

显示的命令处理器CP

1. 概述GPU上的可编程处理器,作为一种获取和解析PROMO4命令流的专用计算引擎,主要有以下作用:从主机端GPU驱动程序接收命令流。命令流可以存放在系统主存或GPU显存中。R5xx系列有三个流:一个环缓冲和两个间接缓冲。 分析和解析命令流。将解析后的数据写入GPU内部其他模块,例如3D图形处理器,2D图形处理器,视频处理器或视频解码器。 提供两个通用DMA引擎,一个用于GUI相关任务,一个用于视频任务。DMA引擎要求源和目的地址满足字节对齐。2. GPU和CPU之间的通信...
分类: 其他 发布时间: 11-20 09:28 阅读次数: 0

千兆以太网链路GEM

1. GEM概述主要包括:介质访问控制层MAC,主要控制发送、接收、地址检测和回路。 配置寄存器,提供控制状态寄存器、统计寄存器和同步逻辑。 物理编码子层PCS,提供8B/10B编解码,PCS发送,PCS接收和PCS自协商。(该模块也是可选项) 直接内存访问DMA,控制DMA发送,DMA接收和AHB/AXI仲裁逻辑。(某些应用场景,GEM可以不用DMA,需要在GEM和CPU之间实现一个外部FIFO缓冲接口) 时间戳TSU,计算定时器的数值,提供实时时钟。2. MAC...
分类: 其他 发布时间: 11-20 09:27 阅读次数: 0

2021-07-09

高考完的暑假里,在朋友的介绍下注册了CSDN,到今天来CSDN已经一年了,常常看大神的博客,遇到的问题也常常在这里得到解决,大一 一年来也学习了不少东西,也总结了不少东西,总自己藏着掖着也不好,便想着趁着这个暑假把东西拿出来分享分享,也当做个记录。在接下来的几天里,我会陆续把总结的东西分享出来。(HTML、CSS、JS笔记、C++笔记、Java学习笔记、算法刷题记录…),经过不断试错后,目前还是觉得学习算法比较靠谱。...
分类: 其他 发布时间: 11-20 09:27 阅读次数: 0

Java基础问题总结

文章目录前言一、Java基本语法元素:二、Java基本控制结构:三、Java面向对象程序设计(重点):四、数组和字符串:五、异常处理:六、Java IO流:七、图形用户界面 GUI:八、Java多线程:小结:前言临近期末考试了,Java考试是机考,为了全面复习Java基础,总结了一份问题,分为八个部分。答案整理出来将在明天发表。提示:以下是本篇文章正文内容,下面案例可供参考一、Java基本语法元素:1.什么是标识符?怎样就是合法的标识(zhi)符?2.Java语言关键字及用途.3.J.
分类: 其他 发布时间: 11-20 09:27 阅读次数: 0

JAVA基础----简答

注:对应问题见上篇博客。文章目录一、Java基本语法元素:二、Java基本控制结构:三、Java面向对象程序设计:四、数组和字符串:五、异常处理:六、Java IO流:七、图形用户界面 GUI:八、Java多线程:一、Java基本语法元素:标识符是由字母、下划线(_)、美元符号($)和数字组成的字符串,首字母不能是数字。关键字不能作为标识符;布尔常量true和false不能作为标识符;null不能作为标识符。Java语言关键字Java语言的注释:(1)单行注释 “//”(
分类: 其他 发布时间: 11-20 09:27 阅读次数: 0

Codeforces刷题

文章目录前言一、Codeforces:1.A. Find The Array2.B. Maximum Cost Deletion3.C. Manhattan Subarrays4.B. AquaMoon and Stolen String5.A. AquaMoon and Two Arrays6. AquaMoon and Strange Sort总结:前言刷题结合知识点学习——数论,字符串处理,搜索,DP,计算几何,规律题。各种错误(堆栈溢出,段错误…)7.18早上,刷不下去了,整理一下。刷题刷
分类: 其他 发布时间: 11-20 09:26 阅读次数: 0

牛客刷题总结

文章目录前言一、博弈论:Alice And Bob二、几何.三、鸽巢原理四、象棋(规律水题)五、皇城PK六、字符串处理(找出两个字符串的不同处)总结:前言这几天牛客网的刷题记录。一、博弈论:Alice And Bob题记: 一般的Nim游戏,只要满足:先手必败状态:a1 ^ a2 ^ a3 ^ … ^an = 0先手必胜状态:a1 ^ a2 ^ a3 ^ … ^an ≠ 0*具体来说:先手必败状态:SG1 ^ SG2 ^ SG3 ^ … ^SGn = 0先手必胜状态:SG1 ^ SG
分类: 其他 发布时间: 11-20 09:26 阅读次数: 0

牛客2021-9

牛客题目链接/*裴蜀定理(或贝祖定理)得名于法国数学家艾蒂安·裴蜀,说明了对任何整数a、b和它们的最大公约数d,关于未知数x和y的线性不定方程(称为裴蜀等式):若a,b是整数,且gcd(a,b)=d,那么对于任意的整数x,y,ax+by都一定是d的倍数,特别地,一定存在整数x,y,使ax+by=d成立。*/#include <iostream>#include <algorithm>using namespace std;typedef long lon
分类: 其他 发布时间: 11-20 09:26 阅读次数: 0

树状数组简单讲解

树状数组:1.树状数组可以做什么?一句话,树状数组有其特定的作用,其用途较窄,它能做的线段树都能做!2.树状数组是什么?tree[1] = a1tree[2] = tree[1] + a2;tree[3] = a3;tree[4] = tree[3] + tree[2] + a4 = a1 + a2 + a3 + a4;tree[5] = a5;tree[6] = tree[5] + a6 = a5 + a6;e…3. 求区间查询和单点更新lowbit : 用于取出最低位的
分类: 其他 发布时间: 11-20 09:25 阅读次数: 0

山峰和分段

思路:先处理出山峰的数目,然后据此枚举要分的段数时间复杂度可以将为O(N)int sum[N],a[N];bool book[N];void solve(){ int n; scanf("%d",&n); for(int i=1;i<=n;i++){ scanf("%d",&a[i]); } // 枚举可能存在的每段点数. // 每段最少为 3个点,才可能存在山峰 int ans = 0; for(int i=n;i>=3;i--)..
分类: 其他 发布时间: 11-20 09:25 阅读次数: 0

c++优先队列小节(常常弄混)

C++优先队列(大根堆小根堆)常见四种形式:priority_queue<int> p1;priority_queue<PII> p2;priority_queue<PII,vector<PII>,greater<PII> > p3;priority_queue<PII,vector<PII>,less<PII> > p4;priority_queue<int> p1;
分类: 其他 发布时间: 11-20 09:25 阅读次数: 0

非零段划分(CSP202109-2)

非零段划分题目链接题目描述:
分类: 其他 发布时间: 11-20 09:25 阅读次数: 0