异质多处理惩罚器芯片中的数据流内核计划
发布日期:2011-06-02
数据流图 数据流 数据流小说 什么是数据流图 数据流图怎么画
数据流网游小说 顶层数据流图 网上书店数据流图 系统数据流图 如何画数据流图
异质多处理惩罚器体系(Heterogeneous Multiprocessor)是将两种以上差别事变性子的处理惩罚器内核整合为一的处理惩罚器体系。它通常包括了一样平常用途处理惩罚器(General Purpose Processor)和特别用途处理惩罚器(Specific Purpose Processor)。
随着片上体系SoC(System on Chip)及相干技能的成熟,已经可以将差别的处理惩罚器整合到一个芯片里,成为多处理惩罚器芯片。以多媒体应用为例,比较闻名的异质多处理惩罚芯片有德州仪器公司的TMS320DSC25、TMS320DM270和TMS320DM320。这些芯片都是由
ARM微内核和
DSP微内核构成。传统的多处理惩罚器体系架构(如Intel SMP架构)是由多个处理惩罚芯片通过外部总线汇接而成,而多处理惩罚器片上体系架构是在单一芯片上包括了多个处理惩罚器内核。它能淘汰体系的功耗并使整个体系发挥最大的运算效能。
1 硬件平台
本计划采取的硬件平台是德州仪器公司的TMS320DM270,它由两个微处理惩罚器内核
ARM7TDMI和TMS320C5409构成。采取主从式架构,前者为主动端,后者为被动端。
DMI是32位的一样平常用途处理惩罚器,认真DM270体系的团体运作和全部周边配置的控制。TMS320C5409为16位的数字信号处理惩罚器,重要认真多媒体信号处理惩罚.如音视频的编解码运算等。
ARM可以经过
DSP控制怜惜置或唤醒,还可对
DSP发出不可屏蔽式的停止(Non-Masked Interrupt)。
双处理惩罚器之间必须有精良的通讯和数据互换机制.才华使体系在多进程环境下有效相助。在DM270中,
ARM真个
DSP控制器控制数据传输,
DSP端通过HPI[3](Host Post Interface)与
ARM处理惩罚器雷同。两个微处理惩罚器利用HPIB(Host Port Interfaee Bridge)相互连接。
ARM和
DSP可向对方发出硬件停止,同时它们之间存在一段共享存储区。通过共享存储区映射机制和停止的搭配,两边可以传输信息和数据,并且可以在共享存储区存取两边共同定义的指令,使两端根据指令举行映射的举措。
为共同
DSP的事变,在
ARM端微内核(Micro Kernel)中计划了一个伺服进程,它认真
ARM与
DSP的雷同及和谐运行。该进程称为
DSP办理者(
DSP Manager),如图1所示。
DSP办理者吸取
ARM端进程的数据处理惩罚恳求。恳求信息应该包括提出恳求的
ARM端进程的ID、
DSP端办事进程的ID、数据处理惩罚办事范例的lD以及相干参数。同时
DSP办理者把这些恳求信息打包封装为
DSP端体系能辨认的内容格局,再通过共享存储区交给
DSP真个数据流内核。
DSP真个体系采取数据流内核(Dataflow Kernel)架构。传统体系内核架构中的进程切换由Timer Tick决定,但数据流内核中的进程却不受Timer Tick的影响,它们以数据驱动(Data Driven)的方法事变。
在
DSP真个内核运行着多个差别范例的数据处理惩罚办事进程,这些进程在
DSP启动时都被设为壅闭态(Sleep)。由于此时没有任意数据可以用来驱动
DSP办事进程的实行。当
ARM端开始发送数据处理惩罚恳求到
DSP端时,数据流内核会根据这些恳求找到映射的
DSP办事进程,并使其进入实行态(Busy)。
当该办事进程的数据处理惩罚任务完成后,其返回结果大概是新的数据处理惩罚恳求,该恳求同样也可以进入数据流内核。驱动其他办事进程的实行。以是整个内核的运行是根据数据流(
ARM真个数据和
DSP进程本身孕育产生的数据)的动向决定的。与基于Timer Tick的传统体系内核相比,只要某一办事进程不绝地吸取数据处理惩罚恳求,并且所需的数据不绝到达,该进程就可以不停拥有CPU的利用权,而无须举行时间片方法的进程切换,从而淘汰了体系资源的浪费,进步了
DSP的处理惩罚效能。
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个存储块上。
当32个存储块全部被利用大概数据处理惩罚恳求中所指定的
DSP进程的LDE为0时,
DSP办理者向
ARM端提出该恳求的进程壅闭,防备因不绝地提出恳求而导致体系资源的浪费。当所指定的
DSP进程数据处理惩罚结束后,
DSP真个数据流内核将该进程壅闭,并对DRQ空间和进程行列步队状态寄存器作相应调解,然后主动开释该
DSP进程利用的共享存储块,同时向
ARM端发出停止信号。
DSP办理者吸取到此停止信号后,根据进程行列步队状态寄存器果断出恳求所指定的
DSP进程已经可以开始处理惩罚数据了,让刚才在
ARM端被壅闭的进程连续运行.并把数据写入共享存储块,以便
DSP进程读取和处理惩罚。当存在闲置的存储块并且数据处理惩罚恳求所指定的
DSP进程的LDE不为0时,
DSP办理者可直接将
ARM端进程的数据写到共享存储块,以便相应的
DSP进程读取和处理惩罚。
DSP体系的调换技能对多媒体应用而言非常紧张。要是
DSP端必要播放差别格局的影片,则必须把整个
DSP端体系调换以支持差别格局的解码器。因此在体系计划中利用了热抽换技能。传统热抽换技能的定义是动态地把体系中的内核层部分调换,在不重新开机的环境下,进程还可以正常事变。
而本计划的热抽换是调换整个
DSP真个体系,同时维持
ARM端进程的正常事变。为了实现热抽换,必须在某段静态存储区存放多个版本的
DSP体系步伐。本计划中,这些步伐被存放到DM270的Flash Memory中,
ARM真个文件体系认真维护和办理这部分内容。
DSP体系的热抽换进程如下:①
DSP端要把那些由于没有举行数据处理惩罚而陷入壅闭的
DSP进程全部开释,不然当
DSP端体系更新后,这些进程会由于永久不克不及再得到相应的数据,而导致永世壅闭,形成体系资源浪费;②
ARM真个
DSP办理者会清空全部的共享存储区,同时壅闭
ARM真个全部用户进程;③
ARM真个文件体系将从Flash Memory中读取所需的
DSP体系文件并将它加载到
DSP的内存;④
DSP端体系启动,
DSP办理者唤醒
ARM端全部被壅闭的进程,为更新后的
DSP体系办事。
ARM真个体系认真整个体系的正常运行,同时将数据处理惩罚恳求和相干数据发送给
DSP,而不管这些数据怎样被
DSP利用;
DSP端只认真数据的处理惩罚,而不管数据的源头和用途。这种架构干系包管了
DSP体系的热抽换是寂静可靠的,不会粉碎体系的正常运行。
本文以DM270平台为底子,计划了
DSP真个数据流内核和
ARM真个
DSP办理者。与传统的、基于时间片的多进程体系内核相比,数据流内核的进程是靠数据驱动的方法事变的。它能有效地淘汰进程的切换.节省体系资源,使
DSP可以越发专注于多媒体数据的处理惩罚。