CN101499020A - 具有动态工作管理能力的多处理器界面及其程序载卸方法 - Google Patents
具有动态工作管理能力的多处理器界面及其程序载卸方法 Download PDFInfo
- Publication number
- CN101499020A CN101499020A CNA2008100032399A CN200810003239A CN101499020A CN 101499020 A CN101499020 A CN 101499020A CN A2008100032399 A CNA2008100032399 A CN A2008100032399A CN 200810003239 A CN200810003239 A CN 200810003239A CN 101499020 A CN101499020 A CN 101499020A
- Authority
- CN
- China
- Prior art keywords
- processor
- data
- thread
- performance element
- order
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Multi Processors (AREA)
Abstract
一种具有动态工作管理能力的多处理器界面及程序载卸方法,此方法适于利用配置于微处理器单元(Micro Processor Unit,MPU)与数字信号处理器(Digital Signal Processor,DSP)间的沟通界面,动态管理微处理器单元指派给数字信号处理器处理的工作。首先,搜寻数字信号处理器中闲置的执行单元,接着将上述工作的多个执行绪其中之一排定给此执行单元,最后则将此执行单元启动以执行执行绪。据此,可在节省硬件代价的情况下,有效提升多核心处理器的沟通效能。
Description
技术领域
本发明涉及一种具有动态工作管理能力的多处理器界面及其程序载卸方法。
背景技术
由于通信及多媒体应用蓬勃发展,市面上各项电子产品所支持的工作趋于多样化,因此也造成电子产品在处理这些工作时,其运算的复杂度大幅增加。以目前最普遍的手机为例,除了基本的通信功能外,还包括整合了数字相机、多媒体播放,甚至全球卫星定位系统(Global Positioning System,GPS)等功能。
为了能够应付这样的高运算需求,并同时保有一定的产品升级弹性,双(多)核心异质整合处理器(dual-core or multi-core heterogeneousprocessor)已被普遍接受为一个有效的解决方案。像是常见的双核心处理器,一方面利用一颗控制导向的微处理器单元(Micro Processor Unit,MPU)来处理像是使用者界面、中断处理等工作;另一方面则搭配一颗数字信号处理器(Digital Signal Processor,DSP)来负责实时、低功耗高效能、具规律运算特性的工作,像是快速傅立叶变换(FFT),矩阵乘法等等。
这种异质多处理器核心平台(heterogeneous multi-core platform)结合MPU、DSP等不同处理器优点,可提供远优于单一处理器的运算效率,并提供以软件进行产品差异化的高度设计弹性。然而,由于缺乏相关的开发工具及相对应的软件抽象化概念,早期开发异质多处理器核心平台的应用系统时均是针对各个处理器采取各自突破的方法。举例来说,设计师可能先进行DSP应用模块设计(例如开发一个以DSP为基的影音编解码器(codec)),撰写并验证DSP软件后,将此模块视作一个封闭的子系统,接着再以MPU存取外围装置(如硬件编解码器、加速器等)的方式与其相互沟通,然而处理器彼此间没有直接的互动。
此外,为了因应应用程序的日渐多任务(multi-task)及多执行绪(multithreaded)化,多个不同的工作或执行绪同时分享DSP运算资源的机会越来越高;另外,为提升运算效能、降低DSP运算的存储资源(例如高速暂存内存(scratchpad SRAM)或高速寄存(cache))需求,或降低非先占式(non-preemptive)系统的优先序倒置(priority inversion)时间,DSP系统倾向于将其运算进一步分割(task slicing)。
以上几个因素使得DSP程序开发进一步抽象化(abstraction),并加入动态工作加载/卸载(task loading/offloading)、内存管理、多任务处理及动态工作排程、中断处理(interrupt handler)等传统MPU子系统的软件抽象层次。但要将DSP程序开发进一步抽象化并不是那么容易,譬如说DSP不适合处理控制导向的工作,其环境切换(context switch)的代价极高等因素。因此,一般希望能够在MPU与DSP之间发展一种特殊沟通界面,以取代单纯地使用DSP的抽象化软件层次,同时能提供MPU完全相同的界面。
目前市面常见的相关产品多数采用信箱(mail box)抽象化的中断驱动(interrupt-driven)的处理器间通信(Inter-Processor Communications),以及μ-核心(μ-kernel)抽象化的DSP软件层级。像是德州仪器(TexasInstruments)的达文西(DaVinci)与开放式多媒体应用平台(OpenMultimedia Applications Platform,OMAP),是以DSP Gateway或DSP/BIOS连结完整包覆的IPC机制、DSP/BIOS、DSP μ-kernel及DSP算法互通性标准(eXpress DSP Algorithm Interoperability Standard,xDAIS)的应用程序界面(Application Program Interface,API)规格。
上述的软件结构大致可以目前发展中的开放软件结构表示。图1所绘示为现有的开放软件结构。请参照图1,此开放软件结构是将MPU110的软件抽象层次搬移到DSP 120,并采用中断驱动的处理器间通信,然此举将严重影响DSP子系统的效能。以德州仪器的软件framework为例,其应用手册(application notes)中所揭露的编解码器的效能数据(包括常见的H.264、MPEG-2、AAC、MP3、G.71x等)与其最佳化(hand-optimized)的版本之间仍存在不小的落差(大于50%),其原因可以归纳如下:
1.DSP结构设计已针对重复性高、可预测的运算进行最佳化,但对一般DSP的过程控制与中断处理而言,代价都不小。
2.DSP为了处理大量的数据流,置放了相对多的寄存器(registers),但其内建的数据存储器(data memory)为求执行预测性,多无快取(cache)的抽象化层次,如此的设计结构将导致其环境切换(context switch)的代价大幅提高。
3.DSP通常具有特殊用途的功能模块,例如位处理操作单元(bit-manipulation unit)、伽罗瓦域运算单元(Galois-field arithmeticunit)等,以此高成本的处理器执行μ-kernel中简单的逻辑运算相对浪费。
针对以上问题,现已发展一些初步的解决方案,例如亚德诺(AnalogDevices)公司与英特尔(Intel)公司共同研发的一种具备增强过程控制及中断处理机置的Blackfin DSP结构,即宣称在低成本系统中甚至可取代MPU成为系统唯一的处理器核心。然而,此种结构不是与MPU投资重复的硬件资源,以强化其过程控制及中断处理,就是投资重复的软件资源,例如移植原MPU的ARM/MIPS、X86MPU的系统软件、驱动程序及legacy等应用软件,均需花费不少的成本。
有一种方式是利用编译器技术分析应用程序,仅容许其执行单元在处于相对小的环境时先行抢占(preemption);另一种方式则是则采用多组描述符(descriptor),以降低DSP上环境切换的开支(overheads)。然而,上述方法的缺点为需要大量的静态分析,同时对程控的复杂度也增加不少。
菲利浦(Philips)公司的DSP提供两组指令集,一组为正常(normal)指令集,另一组为小巧(compact)指令集。小巧指令集只允许存取DSP中部份的资源,像是少数几个寄存器,当中断发生后,如果中断服务程序(interrupt service routine,ISR)只用到小巧指令集的指令,则需要做环境切换的情况将会大幅降低。然而,因为小巧指令集的指令长度短,只能存取DSP的部分资源,相对的也会影响执行的效能。
超微(AMD)公司则是保留一组寄存器用在不会被中断的程序区段(例如中断服务程序)中,如果在中断服务程序中会用到其它的寄存器时,则可把值先存到保留的寄存器中,而在处理完ISR后再将此值存回原本的寄存器,如此便可以降低环境切换的时间。然而,此种方式的缺点则是需要多花费一组寄存器的成本。
发明内容
有鉴于此,本发明提供一种具有动态工作管理能力的多处理器界面的程序载卸方法,藉由找寻数字信号处理器中闲置的执行单元,并依序分派工作供其执行,以提升处理器间的沟通效能。
本发明提供一种具有动态工作管理能力的多处理器界面,藉由独立运作的控制器动态管理分派给DSP运算处理的工作,可节省硬件资源。
为达上述或其它目的,本发明提出一种具有动态工作管理能力的多处理器界面的程序载卸方法,适于利用配置在第一处理器与第二处理器间的沟通界面,动态管理第一处理器指派给第二处理器处理的工作。此方法包括先搜寻第二处理器中闲置的执行单元,再将上述工作的多个执行绪其中之一排定给执行单元,最后则将执行单元启动以执行执行绪。
在本发明的一实施范例中,上述的程序载卸方法更包括重复上述步骤,以排定上述工作的其它执行绪给第二处理器中闲置的其它执行单元执行,直到上述工作的所有执行绪均执行完毕为止。
在本发明的一实施范例中,上述在搜寻第二处理器中闲置的执行单元的步骤之前,更包括接收第一处理器指派第二处理器处理的工作,而将此工作分解为多个执行绪,并依照这些执行绪的优先权,将这些执行绪排序并记录于工作序列。其中,此工作序列包括记录各个执行绪执行所需的工作控制数据块(Task Control Block,TCB)数据,而此工作控制数据块数据则包括记录各执行绪的种类(type)、目标(destination)、标题(head)指标、结尾(tail)指针及程序地址(program address)。
在本发明的一实施范例中,上述搜寻第二处理器中闲置的执行单元的步骤包括读取执行绪分派表(dispatch table),以查看目前第二处理器中各个执行单元的工作状态,而找出工作状态为闲置状态的执行单元。
在本发明的一实施范例中,上述的执行绪分派表包括记录第二处理器中各个执行单元的工作状态,以及各个执行单元执行执行绪所需的工作控制数据块数据的地址。
在本发明的一实施范例中,上述将执行绪排定给执行单元的步骤包括读取上述的工作序列,以找寻目前未处理且排序在前的执行绪,再将此执行绪排定给执行单元。此外,此步骤更包括将执行执行绪所需的工作控制数据块数据的地址记录于执行绪分派表。
在本发明的一实施范例中,上述启动执行单元以执行执行绪的步骤包括将对应于此执行单元的执行单元起始信号触发,而由执行单元开始依序累加一指令计数器,以开始执行执行绪。
在本发明的一实施范例中,上述执行单元执行执行绪的步骤包括由执行单元要求沟通界面提供一工作空间,然后才执行执行绪,并将执行绪运算完成的数据存放至此工作空间,最后再将存放此执行绪运算所需数据的工作空间释放。其中,若沟通界面没有空闲的工作空间,则结束执行绪的执行动作。
在本发明的一实施范例中,上述在执行单元要求沟通界面提供工作空间的步骤之后,更包括指示沟通界面更新工作序列,以指向此执行绪的下一笔待处理数据,以及在执行绪执行完成时,再度指示沟通界面更新工作序列,以指示此执行绪的目标执行绪又增加一笔可处理数据,此可处理数据即为上述执行绪处理完成的数据。
在本发明的一实施范例中,上述在执行单元要求沟通界面提供工作空间的步骤之后,更包括将执行绪解锁,以继续分配给第二处理器中闲置的执行单元执行。
本发明提出一种具有动态工作管理能力的多处理器界面,其是配置在第一处理器与第二处理器之间,而包括第一处理器控制器、第二处理器控制器及工作控制器。其中,第一处理器控制器耦接至第一处理器,用以接收第一处理器的命令,而接收第一处理器指派给第二处理器处理的工作。第二处理器控制器耦接至第一处理器控制器及第二处理器,用以接收第二处理器的命令,而搜寻第二处理器中闲置的执行单元。工作控制器则耦接至第二处理器控制器,用以接收第二处理器控制器的命令,而排定工作的多个执行绪其中之一给执行单元,并命令第二处理器控制器将执行单元启动以执行执行绪。
在本发明的一实施范例中,上述的沟通界面更包括两个输入缓冲器、两个输出缓冲器及状态寄存器。其中,输入缓冲器用于接收并存储第一处理器输入的数据,而提供给第二处理器运算。输出缓冲器用于接收并存储第二处理器运算后的数据,而提供给第一处理器。状态寄存器则用以指示上述输入缓冲器及输出缓冲器的状态。
在本发明的一实施范例中,上述的第一处理器控制器包括接收代表第一处理器已将数据搬进输入缓冲器的第一数据搬入命令,以更新状态寄存器,而指示已搬入数据的输入缓冲器的状态为满载(full),并指示第一处理器下次将数据搬进另一个输入缓冲器;此外,第一处理器控制器更包括接收代表第一处理器已将数据从输出缓冲器取出的第一数据取出命令,以更新状态寄存器,而指示已取出数据的输出缓冲器的状态为空(empty),并指示第一处理器下次从另一个输出缓冲器取出数据。
在本发明的一实施范例中,上述的第二处理器控制器包括接收代表第二处理器已将数据从输入缓冲器取出的第二数据取出命令,以及代表第二处理器已将数据搬进输出缓冲器的第二数据搬入命令,而将此第二数据取出命令及第二数据搬入命令传送给第一处理器控制器执行。
在本发明的一实施范例中,上述的第一处理器控制器包括接收第二数据取出命令,以更新状态寄存器,而指示第二处理器下次从另一个输入缓冲器取出数据,并指示已取出数据的输入缓冲器的状态为空;此外,第一处理器控制器更包括接收第二数据搬入命令,以更新状态寄存器,而指示第二处理器下次将数据搬进另一个输出缓冲器,并指示已搬入数据的输出缓冲器的状态为满载。
在本发明的一实施范例中,上述的第二处理器控制器包括接收内存取得命令,以找寻工作空间来存储执行绪运算完成的数据;以及接收内存释放命令,以释放用以存储执行绪运算所需数据的工作空间。
在本发明的一实施范例中,上述的第二处理器控制器包括接收工作解锁命令,以解锁执行绪的状态,而提供给工作控制器检查是否能够分派给第二处理器运算。
在本发明的一实施范例中,上述的第二处理器控制器包括接收执行单元终止命令,以设置第二处理器中对应的执行单元的执行单元起始信号,而停止执行单元累加指令计数器。同时亦传送执行单元闲置命令给工作控制器,以告知工作控制器有闲置的执行单元可再被排程工作。
在本发明的一实施范例中,上述的工作控制器在接收到执行单元闲置命令时,包括读取工作序列,以找寻目前未处理且排序在前的执行绪,而将此执行绪的工作控制数据块数据的地址写入执行绪分派表,其中,所述的工作序列包括记录各个执行绪执行所需的工作控制数据块数据。同时亦传送执行单元起始命令给第二处理器控制器,以触发第二处理器的执行单元起始信号,而控制第二处理器的执行单元开始累加指令计数器,以执行执行绪。
在本发明的一实施范例中,上述的工作控制器包括接收解序列命令,以更新工作序列中执行绪的工作控制数据块数据的结尾指针,以指到该执行绪的下一笔待处理数据;此外,工作控制器更包括接收制序列命令,以更新该执行绪的目标执行绪的工作控制数据块数据的标题指针,以指示目标执行绪又增加一笔可处理数据,而此可处理数据为执行绪处理完成的数据。
在本发明的一实施范例中,上述的第一处理器包括微处理器单元(MicroProcessor Unit,MPU),而第二处理器则包括数字信号处理器(DigitalSignal Processor,DSP)。
本发明采用在微处理器与数字信号处理器之间配置沟通界面的结构,藉由独立的沟通界面分派微处理器要求DSP处理的工作,并管理提供给DSP进行运算及存储数据的资源,可大幅节省DSP花费在环境切换(context switch)的时间,且可节省硬件成本。
为让本发明的上述和其它目的、特征和优点能更明显易懂,下文特举较佳实施范例,并配合附图,作详细说明如下。
附图说明
图1所绘示为现有的开放软件结构。
图2是依照本发明一实施范例所绘示的具有动态工作管理能力的多处理器界面的示意图。
图3是依照本发明一实施范例所绘示的具有动态工作管理能力的多处理器界面的程序载卸方法的流程图。
图4是依照本发明一实施范例所绘示的DSP数据存储器在MPU寻址空间的内存对应的示意图。
图5是依照本发明一实施范例所绘示的DSP执行工作的方法流程图。
图6是依照本发明一实施范例所绘示的JPEG图像压缩程序的示意图。
图7是依照本发明一实施范例所绘示的JPEG图像压缩的工作序列。
图8(a)-8(d)是依照本发明一实施范例所绘示的JPEG图像压缩的执行绪分派表。
图9是依照本发明一实施范例所绘示的具有动态工作管理能的的多处理器界面的方块图。
图10(a)-图10(c)是依照本发明一实施范例所绘示的MPU控制器631、DSP控制器632及工作控制器633的状态机示意图。
图11是依照本发明一实施范例所绘示的输出输入缓冲器的运作示意图。
图12为依照本发明一实施范例所绘示的图6沟通界面的微结构及输出输入脚位示意图。
附图符号说明
110、210、610、910:微处理器单元(MPU)
120、220、620、920:数字信号处理器(DSP)
200、630、930、1200:沟通界面
230、400:数据存储器
410:程序
420:状态寄存器
430:保留区
440:使用者页
450:系统控制变量
451:整体数据
452:TCB数据
453:工作序列
454:执行绪分派表
460、470:输入缓冲器
480、490:输出缓冲器
610:色彩空间转换
620:离散余弦变换
630:量化
640:可变长度编码
700:工作序列
810、820、830、840:执行绪分派表
931、1210:MPU控制器
932、1220:DSP控制器
933、1230:工作控制器
1110、1120、1130:状态机
S310-S330:本发明一实施范例的具有动态工作管理能力的多处理器界面的程序载卸方法的各步骤
S510-S590:本发明一实施范例的DSP执行工作的方法的各步骤。
具体实施方式
为了能够有效地帮助双(多)核心处理器间的沟通,包括数据的传递、工作的分派,且能够动态管理微处理器单元(Micro Processor Unit,MPU)分派给数字信号处理器(Digital Signal Processor,DSP)的工作,本发明提出一种特殊的沟通界面及使用此沟通界面的程序载卸方法,以求达到上述的功能。为了使本发明的内容更为明了,以下特举实施范例作为本发明确实能够据以实施的范例。
图2是依照本发明一实施范例所绘示的具有动态工作管理能力的多处理器界面的示意图。请参照图2,本实施范例的沟通界面200是配置在微处理器单元(MPU)210与数字信号处理器(DSP)220之间,利用在DSP 220的数据存储器230中配置双倍的输入缓冲器231及输出缓冲器231来增加数据传输的效率。其中,当MPU 210欲传送数据给DSP 220时,会先去查看状态寄存器233,此状态寄存器233会告诉MPU 210目前可以将数据传送到数据存储器230的哪一个输入缓冲器中,然后MPU 210就可以进行数据的搬移。相对地,一旦完成数据搬移后,MPU 210会写一个相对应的命令(command)给沟通界面200,然后沟通界面200就会设定相对应的状态寄存器233来表示已接收到数据,同时会指示下次MPU 210应该将数据传送到另外一个输入缓冲器。
当DSP 220完成工作而需要将处理完的数据传送给MPU 210时,沟通界面200就会利用一个信箱(mailbox),以中断(interrupt)的方式通知MPU210来将数据取回,而当MPU 210取完数据后,会写一个命令给沟通界面200以告知它已完成数据的搬移。换句话说,当MPU 210欲输入数据给DSP 220时,只需自己读取状态寄存器233后,即可马上进行数据的搬移,毋需等待DSP 220的响应或中断DSP 220的运算;此外,当数据完成运算后,沟通界面200也会实时的告知MPU 210,如此一来便能大幅地增加数据传输的效率,毋须浪费时间在互相等待。
另一方面,本实施范例更包括定义一组系统控制变量,以控制DSP 220执行工作,其中包括利用工作控制数据块(Task Control Block,TCB)数据来记录每个执行绪状态,并利用工作序列(Queue)来记录每个执行绪运算时的来源数据是放在数据存储器的哪个地址。
上述的TCB数据中包含了许多信息:种类(type)说明此执行绪的工作型态,可为输入、输出或一般工作;目标(destination)代表该工作的下一个工作名称,譬如说色彩空间转换(Color Space Transformation,CST)的下一个工作即为离散余弦变换(Discrete Cosine Transformation,DCT);标题(head)、结尾(tail)指标则表示目前工作序列中数据使用的情形。其中,结尾指针所指的数据即为最近需要被运算的数据,而标题指针则是指向最近由上一个工作完成所传送过来的数据。藉由标题及结尾指标就可判断有哪些数据等待被运算,而哪些数据已经运算完毕;程序地址(programaddress,ptr)则是指出执行绪的程序代码是存放在指令内存的哪个地址(起始地址)。
除了TCB数据及工作序列以外,系统控制变量还包括一个执行绪分派表(dispatch table),里面存放的信息可表示各个执行单元目前所运算的执行绪的TCB数据是存放在内存的那个地址。当执行单元开始执行各个执行绪时,就可利用执行绪分派表所记录的地址去查看相对应执行绪的TCB数据。
值得注意的是,本发明包括将MPU指派的工作依其性质分解为多个执行绪,而对于所要管理的每个执行绪,沟通界面会赋予每个执行绪一个“单一且固定”的优先权,此优先权关系就会决定之后这些工作的TCB数据存放的顺序。
当系统启动之后,沟通界面就会开始进行动态的工作管理,主要的动作有工作排程(task scheduling)及工作加载(task loading),图3是依照本发明一实施范例所绘示的具有动态工作管理能力的多处理器界面的程序载卸方法的流程图。请参照图3,本实施范例适于利用配置于第一处理器与第二处理器间的沟通界面,动态管理第一处理器指派给第二处理器处理的工作。在本实施范例中,第一处理器是以微处理器单元(MPU)为例,而第二处理器则是以数字信号处理器(DSP)为例来说明。
首先,当系统启动时,沟通界面会去监视执行绪分派表(dispatchtable),查看目前DSP中各个执行单元的工作状态,以找出闲置的执行单元(步骤S310)。此执行绪分派表除了记录DSP中各个执行单元的工作状态之外,还包括记录各个执行单元执行执行绪所需的工作控制数据块数据的地址。
如果发现任何一个空闲的执行单元时,它就会去读取工作序列,以找寻目前未处理且排序在前的执行绪,而将此执行绪排定给执行单元(步骤S320)。详细地说,沟通界面包括查看工作序列,并从最高优先权的工作开始检查,如果这些执行绪的TCB数据中的标题及结尾指标指出还有尚未处理的数据,则沟通界面就会将最高优先权的执行绪排进执行单元执行,否则就继续查看下一阶优先权的执行绪。
当沟通界面找到可以排程的执行绪后,再来就是要进行工作加载(taskloading),以启动执行单元执行此执行绪(步骤S330)。其中,沟通界面包括将对应此执行单元的执行单元起始信号触发(例如设为1),此时执行单元就会开始累加指令计数器,以开始执行执行绪,以下则再举一实施范例详细说明DSP执行执行绪的详细流程。
在介绍DSP执行工作的方法之前,先以一实施范例说明DSP的数据存储器的配置情形。图4是依照本发明一实施范例所绘示的DSP数据存储器在MPU寻址空间的内存对应的示意图。请参照图4,本实施范例的数据存储器400除了DSP的程序区410以及保留区430外,更包括一块保留给沟通界面使用的状态寄存器420。
此外,本实施范例还包括将数据存储器400切割成若干个固定大小的使用者页(user page)440(包括使用者页0-使用者页13),而由沟通界面动态分配给DSP的各个执行单元做为工作空间(working space),以存放DSP运算的来源数据或者是运算结果。
系统控制变量区450则包括记录系统的整体数据(global data)451,以及上述的TCB数据452、工作序列453及执行绪分派表454。此外,数据存储器400中还包括配置双倍的输入缓冲器460、470及输出缓冲器480、490,以增加数据传输的效率。
图5是依照本发明一实施范例所绘示的DSP执行工作的方法流程图。请参照图5,本实施范例包括利用DSP的指令内存与数据存储器,以及沟通界面的寄存器与所记录的系统控制变量,据以控制DSP执行工作。
当沟通界面将执行绪排程及加载DSP的执行单元进行运算时,首先会先执行get_free_page()API,也就是跟沟通界面要求一块使用者页当成工作空间(步骤S510),以存放运算完成的数据。此时沟通界面即会检视数据存储器中是否还有空闲的使用者页可用(步骤S520)。
如果已经没有空闲的使用者页可用的话,则执行unlock()API,以告知沟通界面此工作可以再度的被排程运算(步骤S530),然后执行terminate()API,以终止执行单元执行工作(步骤S590);反之,如果成功的要到使用者页,下一步则会执行de-queue()API,也就是通知沟通界面将TCB中的结尾指标更新,以指到下一笔待处理的数据(步骤S540)。
接着就可以执行unlock()API,也就是告知沟通界面此工作可以再度的被排程运算,而继续将下一个待处理的执行绪分配给DSP中其它闲置的执行单元执行(步骤S550),而在完成上述这些动作后就,DSP就可以开始执行真正的运算工作(步骤S560)。
在运算完成后,再执行en-queue()API,也就是告知沟通界面将此执行绪的目标执行绪的TCB数据中的标题指针作更新,以指示目标执行绪又增加一笔可处理数据(步骤S570)。
最后则执行page_release()API,也就是将刚刚存放运算数据来源(inputdata)所占用的使用者页给释放掉(步骤S580),并执行terminate()API,以终止执行单元执行工作(步骤S590)。在此需强调的是,这里所指的使用者页并不是一开始执行时用get_free_page()API所取得的使用者页,而是指一开始存放运算数据来源的使用者页,也就是说,用get_free_page()API所取得的使用者页将会成为下一个工作存放运算数据来源的使用者页。
为了让上述沟通界面与其程序载卸方法的内容更为清楚明了,以下将以多媒体应用中常见的(Joint Photographic Coding Expert Group,JPEG)图像压缩应用为例,说明本发明的沟通界面如何帮助MPU及DSP进行沟通及动态工作管理。
图6是依照本发明一实施范例所绘示的JPEG图像压缩程序的示意图。请参照图6,本实施范例是将JPEG的图像压缩程序分解成色彩空间转换610(Color Space Transformation,CST)、离散余弦变换620(Discrete CosineTransformation,DCT)、量化630(Quantization)及可变长度编码640(Variable Length Coding,VLC)四个执行绪。
图7是依照本发明一实施范例所绘示的JPEG图像压缩的工作序列。请参照图7,沟通界面在接收到MPU分派的JPEG图像压缩工作时,即会将此JPEG图像压缩工作分解为上述CST、Q、DCT及VLC等执行绪,并给予各个执行绪一个单一且固定的优先权,以作为工作排程的依据。而在JPEG图像压缩中,VLC具有最高优先权,接着是Q、DCT,最后为CST。
工作序列700是根据优先权排定各个执行绪的执行顺序,其第一列记录输出(Output)的TCB数据(TCB[0]),此工作是传送DSP运算完成数据给MPU;第二列则记录VLC工作的TCB数据(TCB[1]),而由其目标字段可知,其接收前面量化(Q)的数据,并经由程序地址&VLC所指向的内存地址,读取VLC程序以进行VLC运算。以此类推,工作序列700的其它列分别记录Q、DCT、CST及输入等工作的TCB数据。
而在执行工作序列700中的各个执行绪时,沟通界面则会去读取执行绪分派表,以找寻空闲的执行单元来分派工作序列700中的执行绪。图8是依照本发明一实施范例所绘示的JPEG图像压缩的执行绪分派表。请先参照图8(a),本实施范例假设DSP仅有4个执行单元,而由执行绪分派表810中的触发(enable)字段可知,目前仅有执行单元2正在执行运算,而由其工作(task)字段可知,执行单元2所执行的是TCB[5]的数据。再参照图7的工作序列700即可得知,执行单元2所执行的是输入(input)的运算。
值得注意的是,由工作序列700中的序列指标可知,Q的标题指标为1,但其结尾指标为0,此即代表此Q尚未执行,而等待排入执行绪分派表810中执行。此时由执行绪分派表810可知,执行单元0为闲置状态,因此可将Q分派给执行单元0执行,而执行绪分派表810也更新为图8(b)的执行绪分派表820。
同理,工作序列700中DCT的标题指标为2,但其结尾指标为1,此亦代表DCT尚未执行,而等待排入执行绪分派表820中执行。此时由执行绪分派表820可知,执行单元1为闲置状态,因此可将DCT分派给执行单元1执行,而执行绪分派表820也更新为图8(c)的执行绪分派表830。
最后,当Q及输入的运算完成后,执行单元0及执行单元2即回复到空闲状态,而执行绪分派表830也更新为图8(d)的执行绪分派表840。以此类推,本发明的沟通界面即藉由参照如上所述的工作序列及执行绪分派表,重复执行分派工作、启动执行单元进行运算等步骤,直到工作序列中的所有执行绪均运算完毕为止。
根据以上所述的沟通界面概念及其程序载卸方法,本发明亦提供其可能实现的硬件结构。图9是依照本发明一实施范例所绘示的具有动态工作管理能力的多处理器界面的方块图。请参照图9,本实施范例的沟通界面930包括利用三个可交互作用的控制器(interactive controller),即MPU控制器931、DSP控制器932及工作控制器933,来实现DSP与MPU的沟通及动态工作管理的功能。其中,这三个控制器之间是利用命令储列(command queue)来互相传递命令。
这三个控制器可分别用三个简单的状态机(state machine)来实现其功能。图10是依照本发明一实施范例所绘示的MPU控制器931、DSP控制器932及工作控制器933的状态机示意图。请先参照图10(a),其代表MPU控制器931的状态机1110,当系统开机后,MPU控制器931就处在待命(StandBy)状态,这时可能会接收来自于MPU 910的命令,或是DSP控制器932的命令。来自MPU 910的命令包含了(1)MPU已将数据搬进输入缓冲器的数据搬入命令,以及(2)MPU已将数据从输出缓冲区取出的数据取出命令;来自DSP控制器932的命令有(1)DSP已将数据从输入缓冲器取出的数据取出命令,以及(2)DSP已将要传送给MPU的数据放在输出缓冲器的数据搬入命令。
当MPU 910将数据搬进输入缓冲器时,MPU控制器931会将状态寄存器改成指示MPU 910下一次必须将数据搬进另外一个输入缓冲器,同时将刚刚填入数据的数据缓冲器状态设为满载(full)。当MPU 910已将数据从输出缓冲器取出时,则会将状态寄存器改成指示MPU 910下次从另外一个输出缓冲器取回数据,同时将刚刚搬走数据的输出缓冲器状态改为空的(empty)。
另一方面,当DSP 920已将数据从输入缓冲器取出时,MPU控制器931会将状态寄存器改为指示下次DSP 920要从另一个输入缓冲器取得数据,同时将刚刚取出数据的输入缓冲器状态改为空的。最后,当DSP 920已将要传送MPU的数据放在输出缓冲器时,会将要输出的那个输出缓冲器藉由信箱而以中断的方式传送告知MPU 610。此外,当MPU控制器931完成来自DSP控制器932的命令后,还会响应一个讯息给DSP控制器932,而DSP控制器932在收到这个响应后,才会继续的执行。
举例来说,图11是依照本发明一实施范例所绘示的输出输入缓冲器的运作示意图。其中,图11(a)及图11(b)分别表示输入缓冲器与输出缓冲器的运作情形。MPUptr代表MPU 910根据状态寄存器的指示,所指向的输入缓冲器或输出缓冲器的地址,而DSPptr则代表DSP 920根据状态寄存器的指示,所指向的输入缓冲器或输出缓冲器的地址。由图11(a)及图11(b)可知,本发明的沟通界面提供双倍的输入缓冲器或输出缓冲器给MPU 910及DSP 920交互使用,以增加数据传输的效率。
接着,图10(b)所绘示为DSP控制器932的状态机1120,当DSP控制器932处在待命状态时,可能会接收来自DSP 920的命令,或是MPU控制器931或工作控制器933的命令。其中来自DSP 920的命令有八个,包括:(1)内存释放命令、(2)内存取得命令、(3)解序列(de-queue)命令、(4)制序列(en-queue)命令、(5)工作解锁(unlock)命令、(6)执行单元终止命令、(7)DSP已将数据从输入缓冲器取出的数据取出命令,以及(8)DSP已将要传送给MPU的数据放在输出缓冲器的数据搬入命令。
其中,上述解序列及制序列命令会直接传给工作控制器933做处理,而”DSP 920已将数据从输入缓冲器取出”的数据取出命令与”DSP已将要传送给MPU的数据放在输出缓冲器”的数据搬入命令则会直接传给MPU控制器931做处理。
DSP控制器932在执行内存取得命令时,会去数据存储器找一块闲置的使用者页给DSP 920做为工作空间,同时将此使用者页的状态设成忙碌(busy);反之,在执行内存释放命令时,则会将DSP 920所要释放的使用者页设为闲置;在收到工作解锁命令时,DSP控制器932会将执行绪的状态由上锁(lock)改成解锁(unlock),代表该执行绪可以再度被工作控制器933检查是否能够分派给DSP 920的执行单元运算;此外,在收到执行单元终止命令时,DSP控制器932会将执行单元的执行单元起始信号设成0,也就是停止该执行单元的指令计数器的累加,并同时传送一个执行单元闲置命令告知工作控制器933有闲置的执行单元可再被排程工作。最后,当传送给MPU控制器931或工作控制器933的命令处理完毕后,也会有命令回来通知完成处理。
图10(c)则为工作控制器933的状态机1130,其包括接收来自DSP控制器932的三个命令,分别为(1)执行单元闲置命令,(2)解序列命令及(3)制序列命令,其中命令(2)或(3)的处理优先权则高于命令(1)。当要处理执行单元闲置命令时,工作控制器会去读取最高优先权的执行绪的TCB数据,并确认是否有尚未处理的数据。如果有的话,就将该执行绪的TCB数据写到执行绪分派表,并且发送执行单元起始命令给DSP控制器932,以触发DSP控制器932的执行单元起始信号,此时执行单元的指令计数器就会开始累加;反之,如果最高优先权的执行绪并无待处理的数据,或是为上锁(lock)状态的话,则继续找下一个优先权的执行绪,直到找到一个可排程的执行绪或是全部的执行绪都找过一次为止。
此外,在收到解序列命令时,工作控制器933会将该执行单元所运算的执行绪的TCB数据中的结尾指针更新,也就是指到执行绪的下一笔待处理数据;而在收到制序列命令时,则是将此执行绪的目标执行绪的工作控制数据块数据的标题指针更新,以指示目标执行绪多增加一笔待处理数据。
以下则藉由实验来评估本案所提出的沟通界面的效能。图12为依照本发明一实施范例所绘示的图9沟通界面的微结构(micro-architecture)及输出输入脚位示意图。请参照图12,本实施范例的实验包括连结MPU控制器1210、DSP控制器1220及工作控制器1230,以形成沟通界面1200,其括号中的数字代表信号宽度(bit-width),本实施范例的目的在于测试在双核心处理器之间加入沟通界面后,MPU及DSP两者沟通效能的提升状况,本实施范例是直接以DSP的使用率(DSP utilization)来评估各种方法的效能。
本实施范例是以安谋国际(ARM)公司的Versatile做为发展平台进行实验,利用板子上的MPU搭配一个配置了8个硬件执行单元的DSP执行工作,而这两个处理器之间则是以先进微控制器总线结构(AdvancedMicrocontroller Bus Architecture,AMBA)的总线连接。
本实施范例是以多媒体应用中常见的JPEG图像压缩应用说明本发明的沟通界面如何帮助MPU及DSP进行沟通及动态工作管理。其中,包括将JPEG图像压缩分成色彩空间转换(CST)、离散余弦变换(DCT)、量化(Q)及可变长度编码(VLC)四个执行绪。沟通界面会给予各个执行绪一个单一且固定的优先权,以作为工作排程的依据。以JPEG图像压缩为例,VLC具有最高优先权,接着是Q、DCT,最后为CST。
本实施范例包括三项实验:第一项实验是将本发明的沟通界面的功能利用MPU以软件的方式完成,也就是说所有动态工作管理都交由MPU来负责,DSP只会接收MPU的命令开始运算,并在结束后中断MPU以告知完成工作。第二项实验一样是以软件的方式实现动态工作管理,只是这次是用DSP中一个特定的执行单元来进行动态工作管理,其余7个执行单元则用于一般的运算。第三项实验则是利用额外配置的硬件来实现本发明的沟通界面。
初步的实验指出,在第一项实验中,DSP的使用率(DSP真正执行有效指令的周期(cycle)数/全部JPEG的执行周期数)大约有55.5%,第二项实验则提高到66.7%,而本发明所提出的沟通界面则可将DSP的使用率提高至93.4%。
综上所述,本发明的具有动态工作管理能力的多处理器界面除了可以协调MPU/DSP,提升沟通效能外,更具有动态工作管理的能力。加上客制化的设计,可以最少的硬件资源完成一般使用庞大厚重的操作系统搭配数字信号处理器所完成的软件抽象层次,并且提供MPU跟原本相同的界面,程序开发者无需再花费相当的努力在修改原本已开发的应用程序上。而初步的实验显示,本发明的沟通界面可以帮助双核心处理器中DSP的使用率提高将近达93.4%,而所花的硬件代价(silicon area)则只有DSP面积的1.56%。
虽然本发明已以较佳实施范例揭露如上,然其并非用以限定本发明,任何熟习此技艺者,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,因此本发明的保护范围当视本发明的申请专利范围所界定者为准。
Claims (23)
1.一种具有动态工作管理能力的多处理器界面的程序载卸方法,包含利用配置在一第一处理器与一第二处理器间的一沟通界面,用以动态管理该第一处理器指派该第二处理器处理的一工作,该方法包括下列步骤:
接收该第一处理器指派该第二处理器处理的该工作;
分解该工作为至少一个执行绪;
依照所述执行绪的一优先权排序所述执行绪,并记录于一工作序列,其中,该工作序列包括记录各所述执行绪执行所需的一工作控制数据块数据;
搜寻该第二处理器闲置的一执行单元;
排定该工作的所述执行绪其中之一给该执行单元;启动该执行单元以执行该执行绪;以及
重复上述步骤,以排定该工作的其它执行绪给该第二处理器中闲置的其它执行单元执行,直到该工作的所有执行绪均执行完毕为止。
2.如权利要求1所述的具有动态工作管理能力的多处理器界面的程序载卸方法,其中,搜寻该第二处理器中闲置的该执行单元的步骤包括:
读取一执行绪分派表,以查看目前该第二处理器中各所述执行单元的一工作状态,而找出该工作状态为闲置状态的该执行单元。
3.如权利要求2所述的具有动态工作管理能力的多处理器界面的程序载卸方法,其中,该执行绪分派表包括记录该第二处理器中各所述执行单元的该工作状态,以及各所述执行单元执行该执行绪所需的该工作控制数据块数据的地址。
4.如权利要求1所述的具有动态工作管理能力的多处理器界面的程序载卸方法,其中,排定该执行绪给该执行单元的步骤包括:
读取该工作序列,找寻目前未处理且排序在前的该执行绪,而排定该执行绪给该执行单元。
5.如权利要求4所述的具有动态工作管理能力的多处理器界面的程序载卸方法,其中,排定该执行绪给该执行单元的步骤还包括:
记录执行该执行绪所需的该工作控制数据块数据的地址于该执行绪分派表。
6.如权利要求1所述的具有动态工作管理能力的多处理器界面的程序载卸方法,其中,启动该执行单元以执行该执行绪的步骤包括:
触发对应于该执行单元的一执行单元起始信号;以及
该执行单元开始依序累加一指令计数器,以开始执行该执行绪。
7.如权利要求6所述的具有动态工作管理能力的多处理器界面的程序载卸方法,其中,该执行单元执行该执行绪的步骤包括:
该执行单元要求该沟通界面提供一工作空间;
执行该执行绪,并将该执行绪运算完成的数据存放至该工作空间;
释放存放该执行绪运算所需数据的该工作空间。
8.如权利要求7所述的具有动态工作管理能力的多处理器界面的程序载卸方法,其中,在该执行单元要求该沟通界面提供该工作空间的步骤中,若该沟通界面没有空闲的该工作空间,则结束该执行绪的执行动作。
9.如权利要求7所述的具有动态工作管理能力的多处理器界面的程序载卸方法,其中在该执行单元要求该沟通界面提供该工作空间的步骤之后,更包括:
指示该沟通界面更新该工作序列,以指向下一笔待处理的数据;以及
在该执行绪执行完成时,指示该沟通界面更新该工作序列,以指示该执行绪的一目标执行绪又增加一可处理数据,该可处理数据为该执行绪处理完成的数据。
10.如权利要求7所述的具有动态工作管理能力的多处理器界面的程序载卸方法,其中,在该执行单元要求该沟通界面提供该工作空间的步骤之后,更包括:
解锁该执行绪,以继续分配该执行绪给该第二处理器中闲置的该执行单元执行。
11.如权利要求1所述的具有动态工作管理能力的多处理器界面的程序载卸方法,其中,工作控制数据块数据包括记录各所述执行绪的种类、目标、标题指标、结尾指针及程序地址。
12.如权利要求1所述的具有动态工作管理能力的多处理器界面的程序载卸方法,其中,该第一处理器包括微处理器单元,而该第二处理器包括数字信号处理器。
13.一种具有动态工作管理能力的多处理器界面,配置在一第一处理器与一第二处理器之间,包括:
一第一处理器控制器,耦接至该第一处理器,用以接收该第一处理器的命令,而接收该第一处理器指派给该第二处理器处理的一工作;
一第二处理器控制器,耦接至该第一处理器控制器及该第二处理器,用以接收该第二处理器的命令,而搜寻该第二处理器中闲置的一执行单元;以及
一工作控制器,耦接至该第二处理器控制器,用以接收该第二处理器控制器的命令,而排定该工作的多个执行绪其中之一给该执行单元,并命令该第二处理器控制器启动该执行单元以执行该执行绪。
14.如权利要求13所述的具有动态工作管理能力的多处理器界面,还包括:
两个输入缓冲器,用以接收并存储该第一处理器输入的数据,而提供给该第二处理器运算;
两个输出缓冲器,用以接收并存储该第二处理器运算后的数据,而提供给该第一处理器;以及
一状态寄存器,用以指示所述输入缓冲器及所述输出缓冲器的状态。
15.如权利要求14所述的具有动态工作管理能力的多处理器界面,其中,该第一处理器控制器包括:
接收代表该第一处理器已将数据搬进该输入缓冲器的一第一数据搬入命令,以更新该状态寄存器,而指示已搬入数据的该输入缓冲器的状态为满载,并指示该第一处理器下次将数据搬进另一个输入缓冲器;以及
接收代表该第一处理器已将数据从该输出缓冲器取出的一第一数据取出命令,以更新该状态寄存器,而指示已取出数据的该输出缓冲器的状态为空,并指示该第一处理器下次从另一个输出缓冲器取出数据。
16.如权利要求14所述的具有动态工作管理能力的多处理器界面,其中,该第二处理器控制器包括:
接收代表该第二处理器已将数据从该输入缓冲器取出的一第二数据取出命令,以及代表该第二处理器已将数据搬进该输出缓冲器的一第二数据搬入命令;以及
传送该第二数据取出命令及该第二数据搬入命令给该第一处理器控制器执行。
17.如权利要求16所述的具有动态工作管理能力的多处理器界面,其中,该第一处理器控制器包括:
接收该第二数据取出命令,以更新该状态寄存器,而指示该第二处理器下次从另一个输入缓冲器取出数据,并指示已取出数据的该输入缓冲器的状态为空;以及
接收该第二数据搬入命令,以更新该状态寄存器,而指示该第二处理器下次将数据搬进另一个输出缓冲器,并指示已搬入数据的该输出缓冲器的状态为满载。
18.如权利要求13所述的具有动态工作管理能力的多处理器界面,其中,该第二处理器控制器包括:
接收一内存取得命令,以找寻一工作空间来存储该执行绪运算完成的数据;以及
接收一内存释放命令,以释放用以存储该执行绪运算所需数据的该工作空间。
19.如权利要求13所述的具有动态工作管理能力的多处理器界面,其中,该第二处理器控制器包括:
接收一工作解锁命令,以解锁该执行绪的状态,而提供给该工作控制器检查是否能够分派给该第二处理器运算。
20.如权利要求13所述的具有动态工作管理能力的多处理器界面,其中,该第二处理器控制器包括:
接收一执行单元终止命令,以设置该第二处理器中对应的该执行单元的一执行单元起始信号,而停止该执行单元累加一指令计数器;以及
传送一执行单元闲置命令给该工作控制器,以告知该工作控制器有闲置的该执行单元可再被排程工作。
21.如权利要求20所述的具有动态工作管理能力的多处理器界面,其中,该工作控制器在接收到该执行单元闲置命令时,包括:
读取一工作序列,以找寻目前未处理且排序在前的该执行绪,而将该执行绪的一工作控制数据块数据的地址写入一执行绪分派表,其中,该工作序列包括记录各所述执行绪执行所需的该工作控制数据块数据;以及
传送一执行单元起始命令给该第二处理器控制器,以触发该第二处理器的该执行单元起始信号,而控制该第二处理器的该执行单元开始累加该指令计数器,以执行该执行绪。
22.如权利要求21所述的具有动态工作管理能力的多处理器界面,其中,该工作控制器包括:
接收一解序列命令,以更新该工作序列中该执行绪的该工作控制数据块数据的一结尾指针,以指到该执行绪的下一笔待处理的数据;以及
接收一制序列命令,以更新该执行绪的一目标执行绪的该工作控制数据块数据的一标题指针,以指示该目标执行绪又增加一可处理数据,该可处理数据为该执行绪处理完成的数据。
23.如权利要求13所述的具有动态工作管理能力的多处理器界面,其中,该第一处理器包括微处理器单元,而该第二处理器包括数字信号处理器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100032399A CN101499020B (zh) | 2008-01-28 | 2008-01-28 | 具有动态工作管理能力的多处理器界面及其程序加载或卸载方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100032399A CN101499020B (zh) | 2008-01-28 | 2008-01-28 | 具有动态工作管理能力的多处理器界面及其程序加载或卸载方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101499020A true CN101499020A (zh) | 2009-08-05 |
CN101499020B CN101499020B (zh) | 2011-08-31 |
Family
ID=40946104
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008100032399A Active CN101499020B (zh) | 2008-01-28 | 2008-01-28 | 具有动态工作管理能力的多处理器界面及其程序加载或卸载方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101499020B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102385529A (zh) * | 2010-08-31 | 2012-03-21 | 晨星软件研发(深圳)有限公司 | 多cpu领域移动电子装置与其操作方法 |
CN103593320A (zh) * | 2012-03-30 | 2014-02-19 | 优北罗墨尔本有限公司 | 多处理器系统、装置和方法 |
WO2014131317A1 (zh) * | 2013-02-26 | 2014-09-04 | 华为技术有限公司 | 一种核资源分配方法、装置及众核系统 |
WO2015069245A1 (en) * | 2013-11-06 | 2015-05-14 | Empire Technology Development, Llc | Communication of application microarchitecture attributes between datacenters |
CN103914336B (zh) * | 2012-12-28 | 2017-04-12 | 国际商业机器公司 | Smp环境中重运行和重试冲突的推测线程的方法和装置 |
CN108139724A (zh) * | 2015-10-09 | 2018-06-08 | 费希尔-罗斯蒙特系统公司 | 用于从因果矩阵创建监控块和结果块集合的系统和方法 |
CN117155781A (zh) * | 2023-11-01 | 2023-12-01 | 深圳云豹智能有限公司 | 数据处理器的交互方法、装置、设备及数据处理器 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100583635B1 (ko) * | 2003-01-24 | 2006-05-26 | 삼성전자주식회사 | 다수의 동작 모드들을 지원하는 암호화 장치 |
-
2008
- 2008-01-28 CN CN2008100032399A patent/CN101499020B/zh active Active
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102385529B (zh) * | 2010-08-31 | 2014-07-09 | 晨星软件研发(深圳)有限公司 | 多cpu领域移动电子装置与其操作方法 |
CN102385529A (zh) * | 2010-08-31 | 2012-03-21 | 晨星软件研发(深圳)有限公司 | 多cpu领域移动电子装置与其操作方法 |
CN103593320A (zh) * | 2012-03-30 | 2014-02-19 | 优北罗墨尔本有限公司 | 多处理器系统、装置和方法 |
CN103593320B (zh) * | 2012-03-30 | 2018-03-09 | 瑞士优北罗股份有限公司 | 多处理器系统、装置和方法 |
CN103914336B (zh) * | 2012-12-28 | 2017-04-12 | 国际商业机器公司 | Smp环境中重运行和重试冲突的推测线程的方法和装置 |
WO2014131317A1 (zh) * | 2013-02-26 | 2014-09-04 | 华为技术有限公司 | 一种核资源分配方法、装置及众核系统 |
WO2015069245A1 (en) * | 2013-11-06 | 2015-05-14 | Empire Technology Development, Llc | Communication of application microarchitecture attributes between datacenters |
CN108139724A (zh) * | 2015-10-09 | 2018-06-08 | 费希尔-罗斯蒙特系统公司 | 用于从因果矩阵创建监控块和结果块集合的系统和方法 |
US11073812B2 (en) | 2015-10-09 | 2021-07-27 | Fisher-Rosemount Systems, Inc. | System and method for creating a set of monitor and effect blocks from a cause and effect matrix |
US11709472B2 (en) | 2015-10-09 | 2023-07-25 | Fisher-Rosemount Systems, Inc. | System and method for providing interlinked user interfaces corresponding to safety logic of a process control system |
US11886159B2 (en) | 2015-10-09 | 2024-01-30 | Fisher-Rosemount Systems, Inc. | System and method for creating a set of monitor and effect blocks from a cause and effect matrix |
CN117155781A (zh) * | 2023-11-01 | 2023-12-01 | 深圳云豹智能有限公司 | 数据处理器的交互方法、装置、设备及数据处理器 |
CN117155781B (zh) * | 2023-11-01 | 2024-01-26 | 深圳云豹智能有限公司 | 数据处理器的交互方法、装置、设备及数据处理器 |
Also Published As
Publication number | Publication date |
---|---|
CN101499020B (zh) | 2011-08-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8972699B2 (en) | Multicore interface with dynamic task management capability and task loading and offloading method thereof | |
CN101499020B (zh) | 具有动态工作管理能力的多处理器界面及其程序加载或卸载方法 | |
US11775810B2 (en) | Methods and apparatus for thread-based scheduling in multicore neural networks | |
CN101233489B (zh) | 自适应进程分派的方法和系统 | |
US9417935B2 (en) | Many-core process scheduling to maximize cache usage | |
JP5934094B2 (ja) | データ並列スレッドを有する処理論理の複数のプロセッサにわたるマッピング | |
CN112416546A (zh) | 多任务调度方法、电子装置和计算机存储介质 | |
US8321874B2 (en) | Intelligent context migration for user mode scheduling | |
CN109983440A (zh) | 数据处理 | |
CN100435102C (zh) | 在数字信号处理器内调换代码的方法及系统 | |
CN102934102A (zh) | 多处理器系统、执行控制方法和执行控制程序 | |
CN101833439B (zh) | 基于分合思想的并行计算硬件结构 | |
JP5256685B2 (ja) | 情報処理装置 | |
Wu et al. | GPU accelerated counterexample generation in LTL model checking | |
EP1760580A1 (en) | Processing operation information transfer control system and method | |
CN111598768B (zh) | 图像优化处理方法、装置、计算机设备及存储介质 | |
CN116670644A (zh) | 通用计算核上的交错处理的方法 | |
CN1833222A (zh) | 采用ilp和tlp的可重构处理器阵列 | |
WO2023278323A1 (en) | Providing atomicity for complex operations using near-memory computing | |
US7426582B1 (en) | Method, system, and apparatus for servicing PS/2 devices within an extensible firmware interface environment | |
Flynn | Computer organization and architecture | |
Yi et al. | Boosting DNN Cold Inference on Edge Devices | |
Yeh | Accelerating Parallel Tasks by Optimizing GPU Hardware Utilization | |
Gupta et al. | Operating system | |
Strøm | Real-Time Synchronization on Multi-Core Processors |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |