异质多处理器芯片中的数据流核心设计

[09-12 17:57:25]   来源:http://www.88dzw.com  单片机学习   阅读:8654

文章摘要:DSP端的进程有执行和阻塞两种状态。进程的状态转移如图2所示。当CPU使用权切换给某个进程时,该进程的状态将被核心设定为Busy并开始处理数据。当数据处理完后,数据流核心从数据请求队列DRQ(Data Request Queue)中取出下一个请求。如果请求信息中指定的DSP服务进程与目前进程相同,则该进程的状态依旧为Busy.否则核心便将目前进程的状态设定为Sleep,同时开始进程切换,将请求信息中所指定的服务进程设定为Busy。 点击看原图3.1 进程队列状态寄存器ARM端系统和DSP端系统在共享存储区共同定义了16位的进程队列状态寄存器(Process Oueue Status Regi

异质多处理器芯片中的数据流核心设计,标签:单片机开发,单片机原理,单片机教程,http://www.88dzw.com

DSP端的进程有执行和阻塞两种状态。进程的状态转移如图2所示。当CPU使用权切换给某个进程时,该进程的状态将被核心设定为Busy并开始处理数据。当数据处理完后,数据流核心从数据请求队列DRQ(Data Request Queue)中取出下一个请求。如果请求信息中指定的DSP服务进程与目前进程相同,则该进程的状态依旧为Busy.否则核心便将目前进程的状态设定为Sleep,同时开始进程切换,将请求信息中所指定的服务进程设定为Busy。

进程的状态转移图

点击看原图

  3.1 进程队列状态寄存器

  ARM端系统和DSP端系统在共享存储区共同定义了16位的进程队列状态寄存器(Process Oueue Status Register),每一位代表DSP端一个进程的状态,所以DSP端最多有16个数据处理服务进程。若DSP端的数据流核心将寄存器的某一位设为O,则表示与该位对应的DSP进程有能力处理新的数据处理请求;若设为1,则表示与该位对应的DSP进程没有能力处理新的请求。

  DSP管理者通过查看该寄存器,可以知道DSP端的某些进程已不能接收新的数据处理请求,它就会使ARM端的相关进程停止向这些DSP进程发出请求。这样可以充

 
分利用DSP的资源,降低DSP端的系统负担。

  3.2 数据流核心的进程调度策略

  核心中的进程调度策略是根据数据流架构上进程运行状态变化的规律设计的。其工作方式是将ARM端对DSP端的数据处理请求利用环行队列(Circular Queue)的架构以FIFO的方式排序,并存入DRQ中。该策略的特点是DSP端的每一个进程都预先指定最多可以拥有DRQ空间的数目,等级越高的进程拥有DRQ使用空间就越多,证明其可以处理更多的数据请求。该策略将传统系统核心中进程优先级(Priority)的概念转化为进程可以处理数据请求的多少。进程等级越高,能处理的数据请求也越多,同时占用CPU的执行时间也较长。LDE(Local Data Element)是DSP端每一个进程都有的参数,它表示DSP进程在执行过程中还可以接收多少个数据处理请求。LDE的初始值由系统定义。整个DRQ空问的大小由所有DSP进程的LDE预设最大值的总和决定。

  当DSP端的数据流核心取得ARM端的数据处理请求时,根据请求我到指定的DSP端进程,把该进程的LDE减1,然后进行相应的数据处理。如果LDE被减至0,则DSP端数据流核心把该DSP进程在进程队列状态寄存器中所对应的状态位设为1.以通知DSP管理者该进程不能再接收新的请求,分配给该进程的所有DRQ空间都已被使用。此后,随着DRQ中的数据请求逐渐被处理,使得该进程的DRQ空问再出现剩余时,数据流核心会把进程队列状态寄存器中所对应的状态位设为0,通知DSP管理者可以再次向该DSP进程发送数据处理请求。

  如图3所示,DRQ是环行队列结构,存储所有的请求信息。DRQ有两个指针:Tail指向DRQ没有被使用的空间;Head指向DRQ中将被处理的请求。LDE有三个元素EA、EB、EC,代表DSP的进程A、B、C分别可使用的DRQ个数。数据流核心接收请求RB后,调度算法将EB减1,并且通过Tail指针将请求RB加入DRQ中。当系统需要处理请求时,调度算法由Head指针取出请求并交由适当的DSP进程处理。

进程调度策略架构

点击看原图

  4 共享存储区管理

  本设计将DM270系统平台中的一段32KB大小的存储区作为ARM和DSP的共享存储区。该存储区由DSP管理者负责管理。由于TMS320C5409的存储单位是字节,所以规定它所访问的共享存储区地址为OxS000~0xBFFF;而ARM7TDMI的存储单位是字,所以规定它能访问的共享存储区地址为0x50000~0x57FFF,共享存储区分配如图4所示。共享存储区分为32个存储块,每块大小为1024B。前两个字节为共享存储块的状态标志位,其值为0代表此存储块闲置,1代表此存储块已被使用。存储块中剩下的1022B用来存放数据。DSP管理者将所有ARM端需要DSP处理的数据都存储到这32个存储块上。

上一页  [1] [2] [3]  下一页


Tag:单片机学习单片机开发,单片机原理,单片机教程单片机学习

《异质多处理器芯片中的数据流核心设计》相关文章

分类导航
最新更新
热门排行