您好,  [请登录] [QQ登录]  [支付宝登录[免费注册]

商品分类

分享到: 百度搜藏 搜狐微博 新浪微博 腾讯微博 QQ收藏 人人网 Facebook Twitter

异质多处理惩罚器芯片中的数据流内核计划

发布日期: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构成。采取主从式架构,前者为主动端,后者为被动端。
 
        ARM7T 
        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)相互连接。ARMDSP可向对方发出硬件停止,同时它们之间存在一段共享存储区。通过共享存储区映射机制和停止的搭配,两边可以传输信息和数据,并且可以在共享存储区存取两边共同定义的指令,使两端根据指令举行映射的举措。
  
        2 ARM真个DSP办理者
 
        为共同DSP的事变,在ARM端微内核(Micro Kernel)中计划了一个伺服进程,它认真ARMDSP的雷同及和谐运行。该进程称为DSP办理者(DSP Manager),如图1所示。

        ARM真个进程并不知道DSP处理惩罚器的存在,只知道DSP办理者在运行。当ARM真个进程必要利用DSP进程所提供的数据处理惩罚办事时,只需向DSP办理者提出恳求。DSP真个进程也不知道ARM处理惩罚器的存在,DSP办理者把ARM真个恳求存放在共享存储区,由DSP的数据流内核读取这些恳求,并交给相应的DSP进程。当恳求被DSP进程吸取后,DSP办理者还要认真把提出恳求的ARM端进程的数据存放在共享存储区,以便DSP端进程的读取和处理惩罚。因此
ARMDSP雷同的效能取决于DSP办理者的实行效能。
 
        DSP办理者吸取ARM端进程的数据处理惩罚恳求。恳求信息应该包括提出恳求的ARM端进程的ID、DSP端办事进程的ID、数据处理惩罚办事范例的lD以及相干参数。同时DSP办理者把这些恳求信息打包封装为DSP端体系能辨认的内容格局,再通过共享存储区交给DSP真个数据流内核。
 
        由于真正维持体系运作的是ARM端体系,DSP只是从属的处理惩罚体系,以是ARM真个DSP办理者可以在体系正常事变的环境下调换DSP体系,以支持差别的DSP应用。
  
        3 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大小的存储区作为ARMDSP的共享存储区。该存储区由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进程读取和处理惩罚。
  
        5 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可以越发专注于多媒体数据的处理惩罚。