深入理解DM8168中的线程通信
来源:互联网 发布:金山卫士 源码 编辑:程序博客网 时间:2024/06/13 22:10
多核异构的硬件基础:共享存储区和寄存器和中断的设计。
寄存器和中断用来实现各个核中进程间的事件的通信,共享存储区用来实现各个核之间的数据的传递与共享。
1+《基于T264的编码器在多核异构处理器上的设计与实现_王娇》这篇文章讲的非常详细
包括本地通信流程,异地通信流程。
在存储器 DDR3 中开辟多核之间可以共享的缓冲区,每个通道所映射缓冲区地址独立,以供多核之间进行数据传递
link 在视频数据流中是最基本的单元模块,每个
link 中包含了一个基于 BIOS6/Linux 的任务、线程、
消息盒(使用操作系统的信号量实现)。由于每个 link
运行一个独立的线程, 因此各个 link 之间可以并行
运行。 消息盒是关联用户指定的 link,让link 之间有
个互相对话的机制,用来传递信令。而对于视频流数
据、 原始图像数据的传递 link 实现了专门的接口来
实现,只传递指针,而不是数据。基于 link 结构,视频
处理的流程中, 所有工作量就可以均衡到每个处理
器内核上去执行
link 中包含了一个基于 BIOS6/Linux 的任务、线程、
消息盒(使用操作系统的信号量实现)。由于每个 link
运行一个独立的线程, 因此各个 link 之间可以并行
运行。 消息盒是关联用户指定的 link,让link 之间有
个互相对话的机制,用来传递信令。而对于视频流数
据、 原始图像数据的传递 link 实现了专门的接口来
实现,只传递指针,而不是数据。基于 link 结构,视频
处理的流程中, 所有工作量就可以均衡到每个处理
器内核上去执行
Mailbox 为处理器提供了通过写寄存器向其他处理器发送中断的机制
DM8168 通过自旋锁(Spinlock)实现了系统共享资源的互斥
根据这 linkId 判断这个消息是发给本地的link 还是远端处理器的 link;如果是本地的直接调用 BIOS/LINUX API 函数,否则就通过Syslink 模块的 MessageQ 发送这
个消息到指定的处理器,让其调用对应的函数处理
link 之间使用缓冲队列进行帧交换 ,没有理解FULL队列和EMPTY队列
getFullFrames:该 link 从设备驱动获取视频数据;
putEmptyFrames:归还该link 的帧 buffer
putEmptyFrames:归还该link 的帧 buffer
当一个 link采集完或处理完一帧数据后会发送一
个消息“ SYSTEM_CMD_NEW_DATA”给后向的link,通知它有数据可取; 后向link 收到该
消 息 后 可 调 用 System_getLinksFullFrames() 函 数 来 获 取 帧 数 据 , 处 理 完 后 再 调 用
System_putLinksEmptyFrames()函数来归还给前向link 继续使用 为什么要归还
个消息“ SYSTEM_CMD_NEW_DATA”给后向的link,通知它有数据可取; 后向link 收到该
消 息 后 可 调 用 System_getLinksFullFrames() 函 数 来 获 取 帧 数 据 , 处 理 完 后 再 调 用
System_putLinksEmptyFrames()函数来归还给前向link 继续使用 为什么要归还
读取上一个Link的数据信息
如果需要处理帧,则分配空buffer
将处理之后的buffer指针传递给输出队列,并且通知下一个Link
0 0
- 深入理解DM8168中的线程通信
- 深入理解Android中的线程及线程间通信
- 深入理解Java中的线程
- Dm8168 多核通信
- Dm8168 多核通信
- Dm8168 多核通信
- Dm8168 多核通信
- DM8168多核通信
- Java语言中的线程安全--《深入理解Java虚拟机》笔记
- 线程池深入理解
- 深入理解线程池
- 深入理解线程池
- Android线程间通信机制——深入理解 Looper、Handler、Message
- iosGCD线程中的通信
- java中的线程通信
- java中的线程通信
- java中的线程通信
- Android中的线程通信
- 【寻找最佳小程序】02期:腾讯旅游首款小工具“旅行小账本”——创意及研发过程大起底
- 一个简单的时间插件
- 编写简单shell
- logback日志系统---logback.xml文件手动配置
- CUDA系列学习(二)CUDA memory & variables
- 深入理解DM8168中的线程通信
- 分析支付宝客户端的插件机制
- 关于内存泄漏的一些小常识
- 游戏跨服架构进化之路
- tensorflow 分类问题
- PgSQL · 特性分析 · PostgreSQL Aurora方案与DEMO
- recycleview多item布局的实现(简单聊天界面)
- 最精简的XML格式与数组的互相转换
- 设备和模块的分类