CN102521042A - 基于哈佛结构dsp的快速正文切换方法 - Google Patents

基于哈佛结构dsp的快速正文切换方法 Download PDF

Info

Publication number
CN102521042A
CN102521042A CN2011104226107A CN201110422610A CN102521042A CN 102521042 A CN102521042 A CN 102521042A CN 2011104226107 A CN2011104226107 A CN 2011104226107A CN 201110422610 A CN201110422610 A CN 201110422610A CN 102521042 A CN102521042 A CN 102521042A
Authority
CN
China
Prior art keywords
task
stack
registers group
register
text
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.)
Pending
Application number
CN2011104226107A
Other languages
English (en)
Inventor
舒红霞
王继红
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CSIC (WUHAN) LINCOM ELECTRONICS Co Ltd
Original Assignee
CSIC (WUHAN) LINCOM ELECTRONICS Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by CSIC (WUHAN) LINCOM ELECTRONICS Co Ltd filed Critical CSIC (WUHAN) LINCOM ELECTRONICS Co Ltd
Priority to CN2011104226107A priority Critical patent/CN102521042A/zh
Publication of CN102521042A publication Critical patent/CN102521042A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

本发明提供了一种基于哈佛结构DSP的快速正文切换方法,包括:S1)将程序代码和任务栈存放在DSP不同的内部存储块;S2)根据运行任务正文保护的种类,选择不同的寄存器组进行保护,并将寄存器组存放在相应的任务栈中;S3)当即将被调度运行的任务进行正文恢复时,根据该任务上次被调度出去时正文保护的种类,从相应的任务栈出栈,恢复曾保护的寄存器组的内容。本发明原理简单,易于实现,充分利用了DSP芯片的总线结构及处理特性,最高地发挥DSP性能,大大降低嵌入式实时操作系统任务切换的时间,提高嵌入式实时操作系统的实时性能。

Description

基于哈佛结构DSP的快速正文切换方法
技术领域
本发明涉及嵌入式实时操作系统中的任务调度领域,尤其是涉及一种具有哈佛结构的DSP(数字信号处理器)上的实时操作系统快速正文切换方法。
背景技术
高性能嵌入式并行数字信号处理机广泛应用于声纳信号处理、雷达信号处理、仿真训练、雷达成像等一切需要高速运算处理的领域。目前,针对并行数字信号处理系统,应用方式主要是前后台系统,没有操作系统支持。与传统的前后台系统应用方式相比,使用嵌入式实时操作系统开发并行数字信号处理应用的优点主要有:
第一,传统的前后台系统应用方式对并行数字信号处理应用开发人员的要求极高,开发人员不仅需要掌握数字信号处理的核心算法,还需要对数字信号处理系统的底层结构十分清楚。操作系统提供了与硬件系统无关的抽象层,屏蔽了硬件环境的相关细节,开发人员可以不必关注底层硬件系统,把精力放在应用算法上,这样能大大地提高应用开发速度。
第二,早期的并行数字信号处理应用很简单,软件的编程也较为简单。随着系统越来越复杂庞大,并行数字信号处理应用也越来越复杂,应用程序需要划分成多个重要性不同的任务,并且,在各任务间优化地分配CPU时间和系统资源的同时,还需要保证实时性。并行数字信号处理应用开发人员使用操作系统进行开发,可以按处理流程自然地划分,而不会像传统的前后台系统那样生硬地将算法分割映射。
第三,当数字信号处理器芯片升级,数字信号处理系统更换时,使用传统的前后台系统方式开发的应用需要根据新的数字信号处理芯片及数字信号处理系统特点重新开发,导致了同一个应用的重复开发,浪费了大量时间。而操作系统封装了与硬件相关的代码,硬件系统对于开发人员透明,因此,使用操作系统开发的并行数字信号处理应用具有相当好的移植性。
第四,当并行数字信号处理系统中I/O(输入/输出)频繁,需要响应的实时事件过多,传统的前后台系统的实时性将会变得很差,而操作系统可以对I/O进行有效地管理,使得I/O不再成为系统瓶颈。
第五,针对并行数字信号处理系统,传统的前后台系统应用方式下不同处理器节点之间的通讯相当复杂,编程十分困难,而操作系统提供的消息传递功能,屏蔽了硬件系统互联及消息的物理传输细节,应用开发人员只需要关注消息的发送任务和接收任务,至于消息传递过程中涉及的发送节点、转发节点和目的节点之间的物理链路完全不必关心,这种编程方式十分简单,移植起来也相当方便。
综上所述,针对并行数字信号处理系统,设计并实现一个高性能嵌入式实时操作系统成为一种必然需求。任务调度是操作系统的核心和灵魂,决定了操作系统的实时性能。当操作系统内核调度运行其它任务时,需要将当前正在运行任务的正文保存,同时恢复即将调度的任务正文,任务正文的保存和恢复时间决定了任务正文切换时间,将直接影响调度时间。DSP芯片中大多采用哈佛结构,即一种将程序指令存储器和数据存储器分开的存储器结构,它采用独立的地址总线和数据总线完成程序和数据的访问。因此,充分利用DSP芯片这一特性,设计并实现一个快速的正文切换方法十分必要。
到目前为止,还没有相关研究涉及到利用DSP哈佛结构这一特性,对嵌入式实时操作系统实现快速正文切换的方法。
发明内容
本发明目的在于提供一种具有哈佛结构的DSP上的实时操作系统快速正文切换方法。本发明尽可能地利用DSP的哈佛结构及多条内部总线连接不同的存储块这一特点,通过在同一周期内,访问不同的存储块,以及多条指令并行执行,实现任务正文的快速保存和恢复。
本发明采用的技术方案如下:基于哈佛结构DSP的快速正文切换方法,包括以下步骤:
S1)将程序代码和任务栈存放在DSP不同的内部存储块;
S2)根据运行任务正文保护的种类,选择不同的寄存器组进行保护,并将寄存器组存放在相应的任务栈中;
S3)当即将被调度运行的任务进行正文恢复时,根据该任务上次被调度出去时正文保护的种类,从相应的任务栈出栈,恢复曾保护的寄存器组的内容。
所述的方法,所述DSP芯片,具有3个或3个以上内部存储块,任务栈包括任务J栈和任务K栈;或者,具有2个或2个以上内部存储块及一个任务栈。
所述的方法,步骤S2将寄存器组存放在相应的任务栈的方法包括:
a)设需要保存的寄存器总数为M,一个周期内的访问字长为P;
b)M除以P得到整数部分为X,余数为Y;
c)X除以2得到整数部分为W,余数为Z;
d)将M个寄存器中的(W+Z)*P个寄存器存放于任务J栈,剩余W*P+Y个寄存器存放于任务K栈。
所述的方法,步骤S1中,将程序代码、任务J栈、任务K栈存放在任意三个不相同的存储块中。
所述的方法,步骤S2选择需要保护的寄存器组的方法为:当运行任务主动放弃CPU使用权时,需保护系统保留寄存器组;当有更高优先级的任务到来而迫使运行任务被动放弃CPU使用权时,需要保护系统保留寄存器组和应用可访问寄存器组。
所述的方法,系统保留寄存器组包括:程序调用时系统保留的寄存器、堆栈指针寄存器以及指令跳转地址寄存器;应用可访问寄存器组包括程序调用时临时使用的寄存器。
所述的方法,如果即将被调度运行任务上次主动放弃CPU使用权,那么按照先进后出的顺序依次从任务J栈和任务K栈上恢复系统保留寄存器组的内容;如果即将被调度运行任务上次被动放弃CPU使用权,那么按照先进后出的顺序依次从任务J栈和任务K栈上恢复系统保留寄存器组和应用可访问寄存器组的内容。
所述的方法,所述DSP采用ADSP-TS201S型号,
所述的方法,步骤S1中,将程序代码、任务J栈、任务K栈分别存放在M0、M2、M4、M6、M8、M10中任意三个不相同的存储块中。
所述的方法,系统保留寄存器组包括j16~j27,k16~k27,xr24~xr31,yr24~yr31,cjmp和reti;应用可访问寄存器组包含xr0~xr23,yr0~yr23,j0~j15,k0~k15,j28~j31,k28~k31,jb0~jb3,kb0~kb3,jl0~jl3,kl0~kl3,xtr0~xtr31,ytr0~ytr31,xthr0~xthr3,ythr0~ythr3,xmr0~xmr4,ymr0~ymr4,xpr0~xpr1,ypr0~ypr1,xBFOTMP0~xBFOTMP1,yBFOTMP0~yBFOTMP1,xdab,ydab,xstat,ystat,lc0,lc1,sfreg;步骤S2将寄存器组存放在相应的任务栈的方法为:当运行任务主动放弃CPU使用权时,保存至任务J栈的寄存器包括:j16~j27,xr24~xr31,保存至任务K栈的寄存器主要包括:k16~k27,yr24~yr31,cjmp和reti,当运行任务被动放弃CPU使用权时,保存至任务J栈的寄存器主要包括:xr0~xr31,j0~j31,jb0~jb3,jl0~jl3,xtr0~xtr31,xthr0~xthr3,xdab,xpr0~xpr1,xBFOTMP0~xBFOTMP1,xmr0~xmr4,xstat,lc0,sfreg,保存至任务K栈的寄存器包括:yr0~yr31,k0~k31,kb0~kb3,kl0~kl3,ytr0~ytr31,ythr0~ythr3,ydab,ypr0~ypr1,yBFOTMP0~yBFOTMP1,ymr0~ymr4,ystat,lc1,cjmp,reti。
本发明具有的有益效果是:原理简单,易于实现,充分利用了DSP芯片的总线结构及处理特性,最高地发挥DSP性能,大大降低嵌入式实时操作系统任务切换的时间,提高嵌入式实时操作系统的实时性能。本发明特别适合应用于一种具有哈佛结构的DSP上的实时操作系统任务调度领域。
附图说明
图1是本发明单栈结构存储块划分示意图。
图2是本发明双栈结构存储块划分示意图。
图3是本发明任务正文分类示意图。
图4是本发明单栈结构任务正文保护示意图。
图5是本发明双栈结构任务正文保护示意图。
图6是本发明的整个流程框图。
具体实施方式
下面阐述本发明的技术内容和工作原理。
(1)内部存储块划分
对于采用单一堆栈结构的DSP芯片,将程序代码和任务栈存放在不同的内部存储块中,如图1所示。
对于采用双堆栈结构(称其中一个堆栈为任务J栈,另一个堆栈为任务K栈)的DSP芯片,将程序代码、任务J栈和任务K栈存放于不同的内部存储块,如图2所示。
(2)任务正文分类
任务正文实际是指CPU寄存器内容。当操作系统内核决定运行其它任务时,需要将当前正在运行任务的正文保存至正文保护区中,正文保护区位于任务的运行栈。当完成当前任务的正文保护后,立即恢复即将调度的任务正文,即重新载入CPU寄存器,同时运行该任务。
任务正文的保存和恢复增加了任务切换的时间,CPU寄存器越多,所花费的时间越长。也就是说,被保护CPU寄存器的数目决定了任务切换的时间。并不是每次任务切换都需要保护所有的CPU寄存器。当运行任务主动放弃CPU使用权时,只需要保护系统保留寄存器组,当有更高优先级的任务到来而迫使运行任务被动放弃CPU使用权时,需要保护系统保留寄存器组和应用可访问寄存器组,如图3所示。
(3)任务正文保存/恢复
如果DSP芯片采用单一堆栈结构,那么保存/恢复任务正文时,寄存器组入栈/出栈操作在同一个任务栈中进行,如图4所示。并且,充分利用DSP芯片的一个周期内可同时执行多条指令,以及支持双字、四字访问等特性,实现多个寄存器的同时保存/恢复,以达到最快速的任务正文保存/恢复。
如果DSP芯片采用双堆栈结构,那么保存/恢复任务正文时,寄存器组入栈/出栈操作在任务J栈和任务K栈中同时进行,如图5所示。这时,可以将寄存器组分成两部分,按照一定的顺序,将其中一部分存入任务J栈,另一部分存入任务K栈;出栈时,从任务J栈和任务K栈上,按照先进后出的顺序依次载入CPU寄存器组。并且,充分利用DSP芯片的一个周期内可同时执行多条指令,支持双字、四字访问,以及可同时访问不同的存储块等特性,实现任务J栈和任务K栈上的寄存器组的同时保存/恢复,以达到最快速的任务正文保存/恢复。
下面结合附图进一步详述本发明。本实施方式是本发明的方法在一个并行DSP系统中的实施。这种并行DSP系统采用的DSP芯片具有如下特点:
(1)具有3个或3个以上内部存储块,将这些存储块分别标记为:存储块1、存储块2、…、存储块n(n≥3)。
(2)具有双堆栈结构,称其中一个堆栈为任务J栈,另一个堆栈为任务K栈。
(3)具有3条总线,其中,1条为指令传输总线,1条为J数据传输总线,1条为K数据传输总线。
(4)同一个周期内,可访问4条32位指令、8个32位数据字。
(5)同一个周期内,支持四字的数据、指令及I/O访问。
下面详细说明本实施方式的具体实现:
(1)内部存储块划分
将程序代码、任务J栈、任务K栈存放于存储块0、存储块1、…、存储块n中任意三个存储块,并且,这三个存储块互不相同。例如:如图3所示,将程序代码存放于存储块i,任务J栈存放于存储块j,任务K栈存放于存储块k,其中i、j、k必须满足下列条件:1≤i,j,k≤n,且i≠j≠k。
这样,在同一个周期内,DSP处理器可以并行访问i、j、k这3个存储块,实现1次取指令、2次访问数据操作,完成任务正文的高速存取。
(2)任务正文分类
将本实施方式中采用的DSP芯片的寄存器分成下列4类:
a)程序调用时系统保留的寄存器(reserved类型寄存器),如果在调用的子程序中使用了这类寄存器,那么当子程序返回时必须恢复其值。
b)程序调用时临时使用的寄存器(scratch类型寄存器),如果在调用的子程序中使用了这类寄存器,那么当子程序返回时不需要恢复其值。
c)堆栈指针寄存器,即存放堆栈内存储单元偏移量的寄存器。
d)指令跳转地址寄存器,即跳转指令存放跳转地址的寄存器。
将上述四类寄存器分成系统保留寄存器组和应用可访问寄存器组。其中,系统保留寄存器组是由程序调用时系统保留的寄存器(reserved类型的寄存器)、堆栈指针寄存器以及指令跳转地址寄存器组成的集合。应用可访问寄存器组是由程序调用时临时使用的寄存器(scratch类型的寄存器)组成的集合。
当运行任务主动放弃CPU使用权时,只需保护系统保留寄存器组,那么,任务正文由系统保留寄存器组构成。
当有更高优先级的任务到来而迫使运行任务被动放弃CPU使用权时,需要保护系统保留寄存器组和应用可访问寄存器组,那么,任务正文由系统保留寄存器组和应用可访问寄存器组构成。
(3)任务正文保存/恢复
本实施方式采用的DSP芯片具有双堆栈结构及四字传输的特性,那么,当保存任务正文时,将需要保存的所有寄存器按照下列方法进行划分:
a)设需要保存的寄存器总数为M。
b)M除以4得到整数部分为X,余数为Y。
c)X除以2得到整数部分为W,余数为Z。
d)将M个寄存器中的(W+Z)*4个寄存器存放于任务J栈,剩余W*4+Y个寄存器存放于任务K栈。
当运行任务主动放弃CPU使用权时,只需要保护系统保留寄存器组,按照上述划分方法,将系统保留寄存器组中的所有寄存器依次保存至任务J栈和任务K栈。
当运行任务被动放弃CPU使用权时,需要保护系统保留寄存器组和应用可访问寄存器组,按照上述划分方法,将系统保留寄存器组和应用可访问寄存器组中的所有寄存器依次保存至任务J栈和任务K栈。
当运行任务正文保存完成,需要恢复即将调度任务的正文。这时,根据即将调度任务上次被调度出去时的方式进行恢复,如果上次是主动放弃CPU使用权,那么仅按照先进后出的顺序依次从任务J栈和任务K栈上恢复系统保留寄存器组的内容;如果上次是被动放弃CPU使用权,那么按照先进后出的顺序依次从任务J栈和任务K栈上恢复系统保留寄存器组和应用可访问寄存器组的内容。
当保存/恢复寄存器组内容时,在同一个周期内,采用四字寄存器内容同时存取,以及并行执行访问任务J栈和任务K栈的指令,实现快速的正文保存/恢复。具体实现如下:
保存恢复寄存器组内容,可以采用如下宏定义:
#define PUSH(sp,reg)Q[sp+=-0x4]=reg//表示四字寄存器内容同时存储
#define POP(sp,reg)reg=Q[sp+=0x4]//表示四字寄存器内容同时恢复
保存寄存器组内容,可以采用下列伪代码:
PUSH(jsp,reg),PUSH(ksp,reg);//表示两条入栈指令并行执行
恢复寄存器组内容,可以采用下列伪代码:
POP(jsp,reg),POP(ksp,reg);//表示两条出栈指令并行执行
上述宏定义及伪代码中,sp表示栈顶指针,reg表示四字寄存器,PUSH为入栈,POP为出栈,Q为四字访问,jsp表示任务J栈栈顶指针,ksp表示任务K栈栈顶指针。
这种任务正文保存/恢复方式,充分利用了本实施方式采用的DSP芯片在一个周期内可访问4条32位指令和8个32位数据字,同时支持四字的数据、指令及I/O访问等特性,实现任务J栈和任务K栈上的寄存器的同时保存/恢复,以达到最快速的任务正文保存/恢复。
实施例:
本实施例是本发明的方法在一个并行DSP系统中实施的实例。该并行DSP系统采用ADSP-TS201S处理器(简称TS201)。本实施例涉及的TS201处理器采用双堆栈结构,且具有M0、M2、M4、M6、M8和M10六个存储块,在同一个周期内,可进行四字的数据、指令及I/O访问。
下面详细说明本实施例的具体实现:
(1)内部存储块划分
将程序代码、任务J栈、任务K栈分别存放在M0、M2、M4、M6、M8、M10中任意三个不相同的存储块中,例如:将程序代码存放于存储块M0,将任务J栈存放于存储块M6,将任务K栈存放于存储块M8。这样,在同一个周期内,TS201处理器可并行访问这3个存储块,实现1次取指令、2次访问数据操作,完成任务正文的高速存取。
(2)任务正文划分
对于TS201处理器,系统保留寄存器组主要包括:j16~j27,k16~k27,xr24~xr31,yr24~yr31,cjmp和reti。应用可访问寄存器组主要包括:xr0~xr23,yr0~yr23,j0~j15,k0~k15,j28~j31,k28~k31,jb0~jb3,kb0~kb3,jl0~jl3,kl0~kl3,xtr0~xtr31,ytr0~ytr31,xthr0~xthr3,ythr0~ythr3,xmr0~xmr4,ymr0~ymr4,xpr0~xpr1,ypr0~ypr1,xBFOTMP0~xBFOTMP1,yBFOTMP0~yBFOTMP1,xdab,ydab,xstat,ystat,lc0,lc1,sfreg。
当运行任务主动放弃CPU使用权时,只需保护系统保留寄存器组,当有更高优先级的任务到来而迫使运行任务放弃CPU使用权时,需要保护系统保留寄存器组和应用可访问寄存器组。
(3)任务正文保存/恢复
当运行任务主动放弃CPU使用权时,只需要保护系统保留寄存器组。TS201处理器采用双堆栈结构,那么保存任务正文时,保存至任务J栈的寄存器包括:j16~j27,xr24~xr31,保存至任务K栈的寄存器主要包括:k16~k27,yr24~yr31,cjmp和reti。
当运行任务被动放弃CPU使用权时,需要保护系统保留寄存器组和应用可访问寄存器组,保存至任务J栈的寄存器主要包括:xr0~xr31,j0~j31,jb0~jb3,jl0~jl3,xtr0~xtr31,xthr0~xthr3,xdab,xpr0~xpr1,xBFOTMP0~xBFOTMP1,xmr0~xmr4,xstat,lc0,sfreg。保存至任务K栈上的寄存器包括:yr0~yr31,k0~k31,kb0~kb3,kl0~kl3,ytr0~ytr31,ythr0~ythr3,ydab,ypr0~ypr1,yBFOTMP0~yBFOTMP1,ymr0~ymr4,ystat,lc1,cjmp,reti。
当运行任务正文保存完成,需要恢复即将调度的任务正文。这时根据即将调度任务上次被调度出去时的方式,即如果上次是主动放弃CPU使用权,那么仅按照先进后出的顺序依次从任务J栈和任务K栈上恢复系统保留寄存器组的内容;如果上次是被动放弃CPU使用权,那么按照先进后出的顺序依次从任务J栈和任务K栈上恢复系统保留寄存器组和应用可访问寄存器组的内容。
实测性能指标:
在处理器时钟为600MHZ的ADSP-TS201S上,采用本实施例后,嵌入式实时操作系统任务切换时间为442ns,中断延迟时间为140ns。因此,本发明可以获得很短的嵌入式实时操作系统任务切换时间,大大提高嵌入式实时操作系统的实时性能。

Claims (10)

1.基于哈佛结构DSP的快速正文切换方法,其特征在于,包括以下步骤:
S1)将程序代码和任务栈存放在DSP不同的内部存储块;
S2)根据运行任务正文保护的种类,选择不同的寄存器组进行保护,并将寄存器组存放在相应的任务栈中;
S3)当即将被调度运行的任务进行正文恢复时,根据该任务上次被调度出去时正文保护的种类,从相应的任务栈出栈,恢复曾保护的寄存器组的内容。
2.根据权利要求1所述的方法,其特征在于:所述DSP芯片,具有3个或3个以上内部存储块,任务栈包括任务J栈和任务K栈;或者,具有2个或2个以上内部存储块及一个任务栈。
3.根据权利要求2所述的方法,其特征在于,步骤S2将寄存器组存放在相应的任务栈的方法包括:
a)设需要保存的寄存器总数为M,一个周期内的访问字长为P;
b)M除以P得到整数部分为X,余数为Y;
c)X除以2得到整数部分为W,余数为Z;
d)将M个寄存器中的(W+Z)*P个寄存器存放于任务J栈,剩余W*P+Y个寄存器存放于任务K栈。
4.根据权利要求2所述的方法,其特征在于:步骤S1中,将程序代码、任务J栈、任务K栈存放在任意三个不相同的存储块中。
5.根据权利要求4所述的方法,其特征在于,步骤S2选择需要保护的寄存器组的方法为:当运行任务主动放弃CPU使用权时,需保护系统保留寄存器组;当有更高优先级的任务到来而迫使运行任务被动放弃CPU使用权时,需要保护系统保留寄存器组和应用可访问寄存器组。
6.根据权利要求5所述的方法,其特征在于,系统保留寄存器组包括:程序调用时系统保留的寄存器、堆栈指针寄存器以及指令跳转地址寄存器;应用可访问寄存器组包括程序调用时临时使用的寄存器。
7.根据权利要求5所述的方法,其特征在于:如果即将被调度运行任务上次主动放弃CPU使用权,那么按照先进后出的顺序依次从任务J栈和任务K栈上恢复系统保留寄存器组的内容;如果即将被调度运行任务上次被动放弃CPU使用权,那么按照先进后出的顺序依次从任务J栈和任务K栈上恢复系统保留寄存器组和应用可访问寄存器组的内容。
8.根据权利要求5所述的方法,其特征在于,所述DSP采用ADSP-TS201S型号。
9.根据权利要求8所述的方法,其特征在于:步骤S1中,将程序代码、任务J栈、任务K栈分别存放在M0、M2、M4、M6、M8、M10中任意三个不相同的存储块中。
10.根据权利要求8所述的方法,其特征在于:系统保留寄存器组包括j16~j27,k16~k27,xr24~xr31,yr24~yr31,cjmp和reti;应用可访问寄存器组包含xr0~xr23,yr0~yr23,j0~j15,k0~k15,j28~j31,k28~k31,jb0~jb3,kb0~kb3,jl0~jl3,kl0~kl3,xtr0~xtr31,ytr0~ytr31,xthr0~xthr3,ythr0~ythr3,xmr0~xmr4,ymr0~ymr4,xpr0~xpr1,ypr0~ypr1,xBFOTMP0~xBFOTMP1,yBFOTMP0~yBFOTMP1,xdab,ydab,xstat,ystat,lc0,lc1,sfreg;步骤S2将寄存器组存放在相应的任务栈的方法为:当运行任务主动放弃CPU使用权时,保存至任务J栈的寄存器包括:j16~j27,xr24~xr31,保存至任务K栈的寄存器主要包括:k16~k27,yr24~yr31,cjmp和reti,当运行任务被动放弃CPU使用权时,保存至任务J栈的寄存器主要包括:xr0~xr31,j0~j31,jb0~jb3,jl0~jl3,xtr0~xtr31,xthr0~xthr3,xdab,xpr0~xpr1,xBFOTMP0~xBFOTMP1,xmr0~xmr4,xstat,lc0,sfreg,保存至任务K栈的寄存器包括:yr0~yr31,k0~k31,kb0~kb3,kl0~kl3,ytr0~ytr31,ythr0~ythr3,ydab,ypr0~ypr1,yBFOTMP0~yBFOTMP1,ymr0~ymr4,ystat,lc1,cjmp,reti。
CN2011104226107A 2011-12-16 2011-12-16 基于哈佛结构dsp的快速正文切换方法 Pending CN102521042A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2011104226107A CN102521042A (zh) 2011-12-16 2011-12-16 基于哈佛结构dsp的快速正文切换方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2011104226107A CN102521042A (zh) 2011-12-16 2011-12-16 基于哈佛结构dsp的快速正文切换方法

Publications (1)

Publication Number Publication Date
CN102521042A true CN102521042A (zh) 2012-06-27

Family

ID=46291977

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011104226107A Pending CN102521042A (zh) 2011-12-16 2011-12-16 基于哈佛结构dsp的快速正文切换方法

Country Status (1)

Country Link
CN (1) CN102521042A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105868003A (zh) * 2016-03-25 2016-08-17 浙江大学 一种基于tms320c6747的任务上下文切换优化方法
WO2019056263A1 (zh) * 2017-09-21 2019-03-28 深圳市汇顶科技股份有限公司 计算机存储介质、嵌入式调度方法及系统
CN110620698A (zh) * 2018-06-19 2019-12-27 杭州海康威视数字技术股份有限公司 一种软件异常诊断方法、装置、设备及系统
CN111782269A (zh) * 2020-06-04 2020-10-16 珠海格力电器股份有限公司 一种中断处理方法及中断处理设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1822594A (zh) * 2006-03-31 2006-08-23 凯明信息科技股份有限公司 基于数字基带处理器的多媒体应用处理方法及装置
CN101290590A (zh) * 2008-06-03 2008-10-22 北京中星微电子有限公司 一种嵌入式操作系统中切换任务的方法和单元
CN101470622A (zh) * 2007-12-27 2009-07-01 东芝解决方案株式会社 虚拟化程序、模拟装置以及虚拟化方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1822594A (zh) * 2006-03-31 2006-08-23 凯明信息科技股份有限公司 基于数字基带处理器的多媒体应用处理方法及装置
CN101470622A (zh) * 2007-12-27 2009-07-01 东芝解决方案株式会社 虚拟化程序、模拟装置以及虚拟化方法
CN101290590A (zh) * 2008-06-03 2008-10-22 北京中星微电子有限公司 一种嵌入式操作系统中切换任务的方法和单元

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
舒红霞,王继红: "分布式DSP实时操作系统的设计与实现", 《小型微型计算机系统》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105868003A (zh) * 2016-03-25 2016-08-17 浙江大学 一种基于tms320c6747的任务上下文切换优化方法
CN105868003B (zh) * 2016-03-25 2019-08-13 浙江大学 一种基于tms320c6747的任务上下文切换优化方法
WO2019056263A1 (zh) * 2017-09-21 2019-03-28 深圳市汇顶科技股份有限公司 计算机存储介质、嵌入式调度方法及系统
CN110620698A (zh) * 2018-06-19 2019-12-27 杭州海康威视数字技术股份有限公司 一种软件异常诊断方法、装置、设备及系统
CN111782269A (zh) * 2020-06-04 2020-10-16 珠海格力电器股份有限公司 一种中断处理方法及中断处理设备
CN111782269B (zh) * 2020-06-04 2023-12-12 珠海格力电器股份有限公司 一种中断处理方法及中断处理设备

Similar Documents

Publication Publication Date Title
CN103999051B (zh) 用于着色器核心中着色器资源分配的策略
US8230144B1 (en) High speed multi-threaded reduced instruction set computer (RISC) processor
CN107301455B (zh) 用于卷积神经网络的混合立方体存储系统及加速计算方法
US9787612B2 (en) Packet processing in a parallel processing environment
CN1127687C (zh) 带外部协处理器可访问的上下文切换寄存器组的risc处理器
CN100440151C (zh) 用于并行多线程处理的方法和装置
CN102882810B (zh) 一种报文快速转发方法及装置
CN101221541B (zh) 用于soc的可编程通信控制器
EP0947926A2 (en) System and method for multi-tasking, resource sharing, and execution of computer instructions
US20130054939A1 (en) Integrated circuit having a hard core and a soft core
MY122682A (en) System and method for performing context switching and rescheduling of a processor
KR20170141205A (ko) Dsp 엔진 및 향상된 컨텍스트 스위치 기능부를 구비한 중앙 처리 유닛
US8959319B2 (en) Executing first instructions for smaller set of SIMD threads diverging upon conditional branch instruction
CN105183698A (zh) 一种基于多核dsp的控制处理系统和方法
CN101847096B (zh) 包含栈变量函数的优化方法
CN102521042A (zh) 基于哈佛结构dsp的快速正文切换方法
US20140181467A1 (en) High level software execution mask override
WO2017054541A1 (zh) 一种处理器及其处理任务的方法、存储介质
JP2006039815A (ja) マルチスレッドプロセッサおよびレジスタ制御方法
CN108762810B (zh) 一种基于并行微引擎的网络报文头处理器
CN112306669A (zh) 一种基于多核系统的任务处理方法及装置
CN100573500C (zh) 基于Avalon总线的流处理器IP核
CN104111817B (zh) 算术处理装置
CN103309734A (zh) 基于优先级分组的嵌入式任务调度方法
CN101639791B (zh) 一种改善嵌入式实时操作系统中断延迟的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20120627