目前想利用IPC例程,实现核0中的数据运算完之后传给核1,然后在核1中继续一些操作,操作完之后再传给核0 。请问该怎么在IPC程序上改动?尝试好久都没有实现。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
目前想利用IPC例程,实现核0中的数据运算完之后传给核1,然后在核1中继续一些操作,操作完之后再传给核0 。请问该怎么在IPC程序上改动?尝试好久都没有实现。
在keystone中进行核间数据交换的方式很多,可以参考附件的文档。
Adam你好,
我看了这个文件中关于核间数据的交换方式,但是编程的细节还是不清楚。请问有利用这些方式实现数据交换的例程或者实现数据交换这一部分的代码吗?
谢谢。
这篇文章描述的是进行核间数据交换的基本思想,你理解了之后可以以此为模型进行编程。
具体的例子现在还没有。
谢谢你的回答,Adam
1、我现在想把一个程序分为两部分,一部分在核0运行,另一部分在核1运行。为了保证程序的并行处理,我在IPC例程上做了如下修改
if (1 == coreID)
{
IssueInterruptToNextCore();
........ //运行代码
}
if (2 == coreID)
{
IssueInterruptToNextCore();
........ //运行代码
请问这样可以做到核0与核1的程序并行处理吗?
2、如果核0运行完数据传给核2,这是的核间数据交换可以怎么做?
1. 可以的,但是coreId应该选择0和1
2. 有多种方式,最简单的是开一块共享缓存区,两个核都能访问到的空间。
hi Adam,
1、不好意思,代码没有及时修改,就是按照你说的写的。那这样的话,核0是首先把一个消息告诉核1然后在执行自己的代码,然后核1收到消息后再传送一些消息给 下一个核接着执行自己部分的代码,从而保证核0与核1程序运行的并行性吗?
2、Adam可不可以用代码的形式说明一下 开缓冲区然后各个核访问的 事情。这块不是很明白。
谢谢你的答复。