博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
核间通信机制分析
阅读量:6842 次
发布时间:2019-06-26

本文共 818 字,大约阅读时间需要 2 分钟。

核间通信的主要目标是:充分利用硬件提供的机制,实现高效的CORE间通信;给需要CORE间通信的应用程序提供简洁高效的编程接口。

根据所使用的硬件特性,核间通信可能的实现机制有:

1)        Mailbox中断;

2)        基于共享内存的消息队列;

3)        POW + Group;

4)        FAU;支持原子的读,写,fetch and add操作。

 

每个core有一个相应的32bit的mailbox寄存器,每一位可被单独地设置或清零。这对于core间的中断非常有用,任意core可直接通过其它core 的mailbox对其它core发出中断。当mailbox被置位时,相应core的中断寄存器也同时被置位,软件可实现其中断处理。

Bootloader支持Octeon_phy_mem_named_block_alloc( ),分配以名字命名的物理内存空间,不管是Service Executive应用程序还是linux kernel都可以通过Octeon_phy_mem_named_block_find( )找到这部分内存,实现core之间的共享数据。

Linux kernel也提供了共享内存的机制。主要有mmap(),系统V,Posix共享内存模型等。系统调用mmap()通过映射一个普通文件实现共享内存。普通文件被映射到进程地址空间后,进程可以向访问普通内存一样对文件进行访问。系统V共享内存指的是把所有共享数据放在共享内存区域(IPC shared memory region),任何想要访问该数据的进程都必须在本进程的地址空间新增一块内存区域,用来映射存放共享数据的物理内存页面。posix共享内存区首先指定一个名字参数调用shm_open,以创建一个新的共享内存区对象或打开一个以存在的共享内存区对象。然后调用mmap把这个共享内存区映射到调用进程的地址空间。传递给shm_open的名字参数随后由希望共享该内存区的任何其他进程使用。

转载地址:http://ldzul.baihongyu.com/

你可能感兴趣的文章
无线网络安全相关
查看>>
安装 CentOS 时找不到硬盘的解决办法
查看>>
mybatis动态调用表名和字段名
查看>>
重置outlook2010账户
查看>>
SQL Server 2016新特性:Query Store 使用Query Store监控性能
查看>>
http与www服务基础概念详解
查看>>
Outlook 2013中 IMAP配置
查看>>
Kerberos简介
查看>>
Navicat报错-ORA-28547:connection to server failed,probable Oracle Net admin error
查看>>
Linux下RPM软件包的安装、卸载和tar.gz 安装方法
查看>>
js鼠标提示
查看>>
Node.js 初识 HTTP 模块
查看>>
Linux命令(1):cd命令
查看>>
结婚礼服时装秀 机器人新娘上阵
查看>>
vim+python打造自己的IDE插件推荐
查看>>
Netty In Action中文版 - 第十二章:SPDY
查看>>
tcp/ip 11种状态
查看>>
base虚拟机的安装 和 varnish(rhel6.5)
查看>>
zoom与scale的异同点
查看>>
Mysql建表遇到121和150的解决办法
查看>>