EEJournal

专题文章
现在就订阅

多核消息显示

多芯实现MCAPI

几周前,我们看了看新MCAPI标准提供低级,低开销多核和紧耦合的多处理器系统的消息传递功能。当然,标准不好,除非有人来实现,所以我们看看第一个商业化的实现MCAPI标准,由多芯。MCAPI委员会主席,多芯的斯文莱梅尔已经具备良好的条件和动机带来市场的实现标准的工作。

标准本身只是一个API,它指定任何实现细节。MCAPI服务将包括库和运行时服务,实现API的语义。这是体现在多芯的保利通产品的最新版本。但由于作为一个应用程序程序员你只接触API,,通过设计,你这样与它是如何工作的细节,有坦率地说不多说,除了对MCAPI说什么。

除了一个细节:如何传递发生取决于系统的拓扑结构。事实上,实际上有两个拓扑:有一个逻辑通信拓扑结构和物理拓扑。最终他们在一起必须解决,但允许你创建一个逻辑设计的区别,有些独立于底层的物理实现,减少了工作要求港口周围的事物。事实上,这允许一个完整的信息系统实现单核桌面开发机器上的目的多核平台的可用性。

让我们打破这个分为两个步骤:首先,逻辑拓扑的规范,然后拓扑到特定平台的实现。第一步是通过一个单独的工具,称为聚生成器。这个工具生成的数据结构,常数,初始化例程,联系司机等等,保利信使将需要在实际执行API的授权系统。这些都是通过自动生成的C头文件和代码文件(即. h和C文件),然后可以编译成整体的代码。该系统是完全在编译时配置。事实上,即使MCAPI标准允许实时路由发现通道初始化时,多芯的实现假设静态拓扑在编译时确定最佳路径,简化和加快保利信使的运行时行为。

保利生成器和保利信使MCAPI google . cn,所以有遗留的概念映射到MCAPI概念。在以下描述,我试图澄清这些关系。在某些情况下,精确的语义可能稍微不同的由于之前版本的工具,但这样的差异是解决赞成当MCAPI MCAPI语义实现的创建,以确保完全遵守。

逻辑视图

在最高水平,逻辑拓扑结构由一组相互连接的节点。在保利发电机节点对应节点MCAPI和本质上是位点计算。他们可能发送、接收,或者只是传递信息。不同种类的节点可以关联链接。拓扑可能包括子网;如果子网之间需要传播的消息,“网关”节点是推断,由保利生成器。

一种区别作出非常明确的是,一个节点是不一样的一个核心。一个节点是逻辑拓扑的一部分;一个核心是物理拓扑的一部分。映射节点核心,但事实上,节点可以“虚拟”,你可以几个节点映射到一个单一的核心。但更晚。现在,你只需创建系统的关键节点,让保利生成器创建任何额外的网关节点。

还有另一个类似的概念,“库”;这大约相当于MCAPI端点的概念。当收到消息的存储库是存储。人们很容易把一个节点等同于一个存储库,但某些节点可能只通过消息没有实际端点,因此不会存储库。每个存储库命名;这个符号名称然后访问当使用MCAPI api建立消息目的地。

每个节点都有一组属性,可以定义。一个适用于所有节点的全局属性是预先分配缓冲区的大小用来存储信息。这并不意味着所有的消息大小,但它建立的最大。更大的缓冲区允许更大的载荷,但也浪费内存较小的这些消息有效负载。决定有效载荷的大小本身涉及到权衡。当大量数据传输时,完整的数据块被分解成多个消息。因为每个消息都有一个标题,这是开销,数据可以分配给每个消息越多,开销的比例越小。然而,消息可以优先。高优先级消息不会进入一个持续的低优先级消息传输,但会成为下一个进入接收节点。所以有效载荷越大,高优先级消息需要等待的时间越长获得通过。 Thus the largest payload that makes sense will vary by system and application and, once chosen, will set the buffer size.

很有帮助,在查看节点属性之前,看看发生了什么发送和接收消息时使用多芯设置。第一个应用程序组装一些数据需要被转移到另一个存储库中。应用程序负责整理数据,并将通过收购内存堆和构建消息。完成后,可以将消息发送(分解为多个消息如果必要),这是完成(在一般情况下)分配一个固定数量的有效载荷预分配的缓冲区;消息有效负载是复制到缓冲区,然后头和一个指向缓冲区的指针放置在发送队列。您可以指定多个发送队列,安排的优先级。

如果使用阻塞发送调用,那么应用程序将等待消息发送之前;如果使用非阻塞调用,那么应用程序继续快乐一旦消息排队方式。

保利信使然后发送消息的优先级顺序,较高优先级队列清空第一,尽管如前所述,高优先级消息不会进入任何低优先级消息已经在进步。在接收端,一个缓冲区分配对传入消息的有效负载,然后头载荷缓冲区指针放置在传入队列。

注意,如果内存包含两个通信节点之间的信息共享,很浪费复制消息;更有效的如果你能发送消息“引用”,也就是说,只有指针传达的消息。这也被称为“零拷贝”操作,虽然MCAPI标准还没有正式的支持零拷贝通信,你可以简单地通过指针作为负载。“有效载荷”仍然是复制,而是因为它只是一个小的指针,它可以复制更快。因为没有API支持,有些物流,你必须确保应用程序本身负责,例如确保发送端不垃圾消息接收方之前完成它。

鉴于这是如何工作的,这意味着您需要指定,为每个节点,发送队列的深度优先;接收队列的深度(隐式地存储在收到消息优先级);为有效载荷数据缓冲区的数量;存储库和相关的名称。此外,每个节点都有一组其他节点的连接的链接,直接或通过一个子网。每个声明这些链接,链接的特征。

这似乎是一个领域的物理和逻辑拓扑结构在某种程度上相交。链接可能被定义为一个TCP / IP连接与一个IP地址,如果节点的连接在一个不同的计算机。另外,两个核心在不同芯片在同一板通过串行RapidIO可能是相互联系的。两个核心在同一芯片可能与一些可以机制。共享内存是另一个的链接。这个链接类型指定为逻辑拓扑结构的一部分,以确保正确的司机提供,所以改变物理拓扑可能需要逻辑变化如果链接类型改变。

所有这些定义的拓扑是使用XML来完成的。虽然可能会有很多复杂的XML设计,大部分是相似的,所以剪切和粘贴主导着编辑的工作。此外,还有文件定义调度程序的细节和司机联系。现成的司机目前用于TCP / IP,共享内存,和Windows管道(后者通常用于演示)。对其他司机,c提供了模板,您可以自定义运行保利发电机使用这些文件作为输入创建两个文件(. h文件和. c文件),以及必要的调度程序和链接驱动代码,为每个节点。

分配为核心

现在的点可以分配给核心节点。在许多嵌入式应用程序常用的静态配置,程序编译成核和呆在那里;没有实时调度的应用程序。一个大型应用程序可能分成多个子程序,每一个都将执行一个核心。一旦应用程序划分为其组成子程序,每个子程序的编译和链接的核心。这个过程用于将节点分配给核心:这些文件与任何特定核心节点注定都包含在构建的核心。随着聚信使库,允许解决MCAPI调用嵌入到应用程序中。

当然,这样的系统可以更复杂可能被这个简单的图片,如果建议例如,您有一个异构系统涉及到多个操作系统在多个盒子。这将带来其他实际问题,但是,从概念上讲,简单的模型仍然适用。

有几个可能的用例生成通信拓扑。作家在一个特设的方法,应用程序将创建一个多边形发电机定义为他或她的应用程序,该应用程序使用它一次。另外,系统工程师可以创建一个消息传递配置,可以广泛地用于应用程序作者仅仅是编译成他们的应用程序。

给定一个MCAPI API的实现,现在是艰难的一部分——看收养。转向多核缓慢由于无数的障碍,真正的和感知。转型加速,然而,低开销的消息传递系统的可用性解除收养的一个障碍。

留下一个回复

有特色的博客
2023年6月9日
在这个知识辅助的博客,让我们谈谈基于开关电容电路的仿真和capacitance-to-voltage(式C2V)转换器使用各种可用分析下拍摄使用幽灵射频牛顿法。这个博客是描述的视频……
2023年6月8日
学习我们的EDA工具加速5 g SoC设计客户Viettel 5 g基站芯片设计和驱动5 g推出在越南。后客户关注的焦点:Viettel加速其前5 g SoC设计Synopsys对此ASIP设计第一次出现在新H……
2023年6月2日
我刚听到的东西真的给了我一定的思考时间,死亡的事实,每个人都经历两种形式(如果让我选择,我宁愿没有经验甚至)....

有特色的视频

RTL Synopsys对此解决方案审核权力分析

Synopsys对此

Synopsys对此的行业领先的能力分析解决方案建立在PrimePower技术,使RTL勘探早期,低功率实现和权力验收节能soc的设计。

了解更多关于Synopsys对此“节能soc的解决方案

了纸

EC解决技术简单

节奏设计系统

的节奏®摄氏™EC解决支持电子系统设计师最具挑战性的热管理/电子冷却问题迅速和准确。利用强大的计算引擎和网格技术,设计者可以模型和分析流体流动和传热的即使是最复杂的电子系统,确保电子冷却系统是可靠的。

点击阅读更多

以注入式教学法亚博里的电子竞技

dsPIC33CH DSCs:两个dsPIC33Cs在单个芯片上
在这节课中粉笔的谈话,Vijay Ba亚博里的电子竞技pu微芯片和阿米莉亚道尔顿探索双核心数字信号控制器的好处。他们讨论的关键规格时需要记住的单核和双核DSCs以及如何减少开发时间,节省空间和成本和保持所需的性能和隔离与微芯片dsPIC33CH DSCs。
2023年1月24日,
18367的浏览量
Baidu