TMS320C6678多核程序的实现,执行与同步

3 篇文章 1 订阅
3 篇文章 1 订阅

TMS320C6678多核程序的实现,执行与同步

实现

在多核处理器上处理应用程序的第一步就是识别任务并行性,然后选择合适的处理模型.

设备模型

主/从模型

原理

主从模型主要在多核中定义了一个主核的概念,由一个主核和7个从核组成(以6678为例)。由主核调度各种执行线程,分配给其他的从核,还将线程所需的资源传给从核

适用程序
1.程序由许多独立线程组成
2.包含大量的控制代码,并经常以随机顺序访问内存
3.通常在linux等高级os上运行,并且定义了多个执行线程,os是主核

数据流模型

原理

数据流模型,每个内核既是控制又是处理,然后将结果传给另一个内核进一步处理,需要程序将一个任务或多个任务映射到每个内核,使用核间通信实现执行的同步

适用程序

1.大型且计算复杂的组件,组件之间依赖性强
2.实时性操作系统

OpenMP 模型

OpenMP 是一种应用程序编程接口 (API),主要由编译器指令、库例程和可用于并行化程序的环境变量组成。
编译器指令提供可编程的跨内核分配工作
库例程允许调用(监视线程和处理器,并行环境)
环境变量可以查询状态或更改应用程序的执行特性

识别并行任务执行

四步过程

1.分区

定义任务,识别程序中的并行任务只能自己进行划分

2.通信

不同内核的模块必须通过核间通信同步执行

3.组合

将事件组合成更少的任务量

4.映射

子系统分配给各个系统的过程

同步

内核通信

数据的传输方式

1.共享消息缓冲区

发送方和接收方都可以访问的内存,发送者将消息发送到共享缓冲区并通知接收者。 接收方通过将内容从源缓冲区复制到目标缓冲区来检索消息,并通知发送方缓冲区空闲

2.专用存储器

内核使用共享内存的专用区域,数据移动可以通过内核之间的直接通信或与 KeyStone 系列设备中的多核导航器进行直接通信来完成.

3.内存缓冲区

发送方和接收方使用相同的物理内存,仅仅是所有权被转移,也就是说通过指针来调用

多核导航器的数据传输方式

队列管理器子系统 (QMSS) 是多核导航器的核心部分,它控制硬件队列的行为并启用描述符的路由,不同内核的线程之间移动数据,当一个内核想要将数据移动到另一个内核时,它会将数据放入与描述符关联的缓冲区中,并将描述符推送到队列中。所有的路由和监控都在 QMSS 内部完成。描述符被推送到属于接收核心的队列中。

通知和同步

多核模型需要能够同步内核并在内核之间发送通知。 一个典型的同步用例是单个核心完成所有系统初始化,所有其他核心必须等到初始化完成才能继续执行。 并行处理中的分叉点和联合点需要核心之间的同步。 可以使用多核导航器或 CPU 执行来实现同步和通知。 从一个核心到另一个核心的传输数据需要通知。

通知方法
1.Non-blocking Polling

接收器检查是否有一个描述符在接收队列中等待它。如果没有描述符,则接收方继续执行。

2.Blocking Polling

接收者阻塞了它的执行,直到接收队列中有一个描述符,然后它继续处理描述符

3.Interrupt-based Notification

当一个新的描述符被放入它的接收队列时,接收器就会得到一个中断。该方法保证对传入描述符的快速响应。当一个新的描述符到达时,接收器执行上下文切换并开始处理新的描述符。

4.Delayed (Staggered) Interrupt Notification

当传入描述符的频率很高时,导航器只能在队列中的新描述符的数量到达一定值时,或者在队列中第一个描述符的到达后一定时间 才能配置中断。该方法降低了接收机的上下文切换负载。 只有当队列中的新描述符数量达到a时才会中断

5.QoS-based Notification

QOS,以优先考虑外围模块的数据流流量;该机制评估每个数据流,以根据预定义的服务质量参数来延迟或加速数据流。同样的机制也可以用来传输核心之间不同重要性的消息

=================================

非导航器数据传输,

在发送方准备好通信消息数据以使用共享、专用或过渡存储器传送给接收方后,需要通知接收方消息即可。 这可以通过直接或间接信号(IPC)或间接信号来完成。(EDMA)

IPC

图1
在这里插入图片描述

EDMA

图2
在这里插入图片描述

附1

共享资源管理

Global Flags(一般不建议在多核中使用)
OS Semaphores
Hardware Semaphores
Direct Signaling
  • 1
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
冃录 11录 ...............................................................3 C6678多核运行Dem o详解.......................................... 7 1 ・ intc_b「oadcast_ 1 ...................................................................................................... 7 I」功能描述........................................................7 1.2变最定义及使用空间分配.........................................7 1.3实现流程........................................................7 1.4注意事项........................................................9 2. D D R 3......................................................................................................................10 2 .1 功能描述....................................................... 10 2.2变量定义及使用空间分配........................................ 10 2.3实现流程....................................................... 10 2.4注意事项....................................................... 11 3. ipc一 navigator.......................................................................................................... 12 3」功能描述....................................................... 12 3.2变最定义及使用空间分配........................................ 12 V 3 .3 实现流程....................................................... 12 3.4注意事项....................................................... 14 4. emif_nandflash....................................................................................................... 14 4 J 功能描述....................................................... 14 4.2变量定义及使用空间分配........................................ 14 4 .3 实现流程....................................................... 14 4.4注意事项....................................................... 15 5. emif_norflash......................................................................................................... 16 5」功能描述....................................................... 16 5.2变最定义及使用空间分配........................................ 16 5.3实现流程....................................................... 16 5.4注意事项....................................................... 17 6. hyperlink................................................................................................................ 17 6」功能描述....................................................17 6.2变量定义及使用空间分配......................................17 6 .3 实现流程....................................................17 6.4注意事项.................................................... 18 7. i2c_eeprom............................................................................................................. 19 7」功能描述.....................................................19 7.2变最定义及使用空间分配......................................19 7.3实现流程.................................................... 19 7.4注意事项....................................................20 8. i2c_srioswitch........................................................................................................20 & 1功能描述....................................................20 8.2变量定义及使用空间分配......................................20 8.3实现流税.........:............................. =21 8.4注意事项....................................................21 9. sem 2....................................................................................................................... 21 9」功能描述.................................................... 21 9.2变虽定义及使用空间分配......................................22 9.3实现流程....................................................22 9.4注意事项....................................................23 1(). srio...........................................................................................................................24 10」功能描述...................................................24 10.2变暈定义及使用空间分配.....................................24 10.3实现流程...................................................24 10.4注意事项...................................................27 11. tim er....................................................................................................................... 28 11」功能描述...................................................28 11.2变最定义及使用空间分配.....................................28 11.3实现流程...................................................2911.4注意爭项......................................................30 12. SPI_FPGA.............................................................................................................. 30 12」功能描述......................................................30 12.2变量定义及使用空间分配.......................................30 12.3实现流程......................................................30 12.4注意爭项......................................................31 13. SPI_nortlash...........................................................................................................31 13」功能描述......................................................31 13.2变量定义及使用空间分配.......................................31 13.3实现流程......................................................31 13.4注意爭项......................................
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值