什么是G-LINK
这是一种新的点对点链路层传输协议.主要用于SOC中各个IP核之间通信。例如APSS(app arm核)与CDSP/ADSP模块之间通信。
总结来说:
G-link Generic Link, 是高通自己开发的一套核间通信框架,目的是为了解决之前核间通信出现的兼容性、扩展性问题,同时进一步提升了性能.但是G-link并不会完全替代原有的核间通信底层接口.
他有什么特点
-
多路复用逻辑通道:
- G-Link能够在一个或多个物理传输通道上复用逻辑通道,使其能够同时处理多个通道。
-
支持不同物理传输方式:
- G-Link可以与共享内存、基于复制的(例如UART等)、以及基于DMA的物理传输方式一起工作,而不影响客户端API。
-
对称性:
- G-Link是对称的,没有主/从关系,意味着在通信中各个节点是对等的,没有主控和从属的区分。
他的优点是什么?
现存的核间通信方式存在以下问题:
1,传输接口方式繁多如SMD、SMUX、BAM demux、SMSM、SMP2P、SMEM,不统一
2,现行接口缺乏灵活性:除了SMP2P之外,现有传输机制不支持版本和功能协商,这使得在当前分支和发布流程中几乎不可能进行向后兼容的更改。
3,缺乏可扩展性:所有现有传输机制都设计用于处理一个用例,难以轻松地适应新的用例
而G-LINK的优点能够很好解决上面提到的这些问题:
1,统一所有传输用例:
将所有现有传输用例统一到一个共同的核心实现和共同的客户端API中。
添加物理传输抽象层:
2,添加物理传输抽象层,以处理未来的传输,而无需重写核心或更改客户端API。
添加版本和功能协商:
3,添加版本和功能协商,以允许系统的分阶段升级。
适应资源受限系统:
4,允许设计在资源受限系统(如RPM)中进行缩减,通过禁用某些功能。
可扩展的性能:
5,允许性能可扩展,以处理不同的延迟和吞吐量要求。
多物理传输共存:
6,允许多个物理传输共存,以便进行迁移或提高性能。
解决常见用法问题:
7,更好的性能优化:
允许更好地优化性能、延迟或内存使用。
还不明白?
看下下面这张图
1,灰色方框表示不同的IP核,比如apss就是我们常说的那8个arm核
2,G-LINK这套框架是适用于几乎所有的高通平台(也包括很多高通的手机芯片),在每个平台上G-LINK后端连接的方式各不相同,比如在8155上用的是SMEM的方式
3,上图左边每一个方块表示一个服务,比如diag_service,cdsp_service等等
4,关联的服务进程可以通过启动时候的配置参数,决定连接哪些硬件核,比如diag_service配置了三个core:adsp,cdsp,mdsp
5, 其他功能性模块service,一般来说只会连接自己对应的硬件,例如cdsp_service一般只会配置cdsp连接参数
6,特殊模块,例如diag_service,因为负责诊断相关,会连接所有ip core,diag_service前端通过G-LINK与IP core连接,后端通过ip地址与上位机PC连接。上位机可以通过这个服务对IP core进行诊断或者日志读取。
7,现代的很多SOC平台,由于集成了很多不同的IP core,所以核间通信(IPC)是一个必要存在的机制,IPC的框架以及他的成熟度,与整个芯片的整体性能直接相关。
参考:
Generic Link (G-Link) 80-P2598-1 Rev. C
培训视频:VD80-39193-1