CN103049325A - 基于tc1767平台的csa节点管理器的实现方法 - Google Patents

基于tc1767平台的csa节点管理器的实现方法 Download PDF

Info

Publication number
CN103049325A
CN103049325A CN2013100074142A CN201310007414A CN103049325A CN 103049325 A CN103049325 A CN 103049325A CN 2013100074142 A CN2013100074142 A CN 2013100074142A CN 201310007414 A CN201310007414 A CN 201310007414A CN 103049325 A CN103049325 A CN 103049325A
Authority
CN
China
Prior art keywords
csa
task
node
chained list
fcl
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
CN2013100074142A
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.)
Zhejiang University ZJU
Original Assignee
Zhejiang University ZJU
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 Zhejiang University ZJU filed Critical Zhejiang University ZJU
Priority to CN2013100074142A priority Critical patent/CN103049325A/zh
Publication of CN103049325A publication Critical patent/CN103049325A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及微控制器的操作***,公开了一种基于TC1767平台的CSA节点管理器的实现方法,包括以下具体步骤:为每个任务分别建立CSA链表,所述任务与所述CSA链表之间一一对应,所述CSA链表包括FCL和PCL;切换所述CSA链表为当前CSA链表以实现任务切换。本发明的优点在于,通过建立和引入CSA节点管理器,在TC1767芯片上实现了多任务切换和处理,任务切换迅速,具有较高的应用价值。

Description

基于TC1767平台的CSA节点管理器的实现方法
技术领域
本发明涉及微控制器的操作***,特别涉及一种基于TC1767平台的CSA节点管理器的实现方法。
背景技术
TC1767型芯片为英飞凌公司开发的一款基于TriCore架构的汽车用32位微控制器(MCU),TC1767可作为汽车的核心CPU使用。TriCore架构使用链表结构的CSA(Context Save Area,上下文保存区域)作为保存上下文的区域,以实现中断、陷阱以及函数调用时产生的上下文切换。由于芯片本身的限制,现有的运行于TC1767 芯片上的操作***,还无法实现任务的切换,以及多任务的处理。
发明内容
本发明针对现有基于TC1767芯片的操作***无法进行任务切换和多任务处理的缺点,提供了一种通过在现有操作***中建立和引入一个全新的CSA节点管理器的方法来实现任务切换功能的基于TC1767平台的CSA节点管理器的实现方法。
为实现上述目的,本发明可采取下述技术方案:
基于TC1767平台的CSA节点管理器的实现方法,包括以下具体步骤:为每个任务分别建立CSA链表,所述任务与所述CSA链表之间一一对应,所述CSA链表包括FCL和PCL;切换所述CSA链表为当前CSA链表以实现任务切换。
作为优选,所述为每个任务分别建立CSA链表的步骤在TC1767上电后,第一个任务启动之前立即执行。
作为优选,在所述建立CSA链表的过程中,保留一定数目的节点,所述保留的节点数目由SYS_START_USED确定。
作为优选,还包括,在所述任务第一次执行前对所述CSA链表进行初始化,具体步骤为:1)将所述任务的PCL的所有节点***所述任务的FCL中;2)从FCL中取出两个节点分别为第一节点和第二节点,所述第一节点作为上部上下文储存区域,将所述任务的堆栈指针的值写入所述第一节点的SP子域,所述第二节点作为下部上下文储存区域,将所述任务的入口地址写入所述第二节点的RA子域;3)将所述第一节点以头插法***所述PCL;4)将所述第二节点以头插法***所述PCL。
作为优选,所述CSA链表的节点数目为预设值。
作为优选,还包括,在所述任务的FCL耗尽后,增加所述CSA链表的节点数目。
作为优选,所述任务包括IDLE任务。
作为优选,所述任务的TCB包括以下成员变量:TPcxCur、TFcxCur、TPcxOrig、TFcxOrig、TLcxOrig,所述成员变量用于保存所述CSA链表的句柄,其中,TPcxCur用于保存当前PCL的首节点地址,TFcxCur用于保存当前FCL的首节点地址,TPcxOrig用于保存初始PCL的首节点地址,TFcxOrig用于保存初始FCL的首节点地址,TLcxOrig用于保存初始FCL的尾节点地址。
本发明由于采用了以上技术方案,具有显著的技术效果:
引入了一个新的CSA节点管理器,该CSA节点管理器是由每一个任务的CSA链表以及对这些CSA链表的切换或者其他处理步骤所组成的,由于CSA节点管理器的引入,在基于TC1767平台的操作***上实现了任务切换。任务切换的功能是通过切换与任务相对应的CSA链表所实现的,而切换CSA链表只需要修改TC1767芯片中的上下文寄存器即可实现,因此切换过程所消耗的CPU周期较少,CSA链表切换十分迅速。
附图说明
图1为所述CSA链表的结构示意图。
具体实施方式
下面结合实施例对本发明作进一步的详细描述。
实施例1
基于TC1767平台的CSA节点管理器的实现方法,使用基于TriCore架构的TC1767芯片,TriCore架构使用链表结构的CSA节点。每个CSA节点都是16字的内存区域,16字对齐。每个CSA节点刚好可以保存一个上部或者下部上下文。CSA节点通过一个链接字首尾链接形成CSA链表。链接字有2个域:4位的段索引和16位的偏移量,可以通过这两个域来生成下一个CSA的EA。每个段可以用作CSA的区域是4MB,所以可有216个CSA节点。CSA链表的结构如图1所示,此外,TC1767芯片还包括3个上下文管理寄存器,分别为FCX、PCX和LCX,其中,FCX寄存器指向可用的空闲上下文链表(FCL:Free Context List),即保存FCL首节点的地址,PCX寄存器指向已使用的非空闲上下文链表(PCL:Previous Context List),即保存PCL的首节点的地址,LCX寄存器保存FCL尾节点的地址。
所述的CSA节点管理器通过以下具体步骤实现:为每个任务分别建立CSA链表,更进一步的,所述任务也包括IDLE任务,即***的空闲任务,所述任务与所述CSA链表之间一一对应,所述CSA链表包括FCL和PCL;切换所述CSA链表为当前CSA链表以实现任务切换。
为每个任务分别建立CSA链表的代码实现如下,函数initAllTaskCSAs()负责为包括IDLE任务在内的所有任务建立CSA链表,以下代码也可以在TC1767启动后,第一个任务之前立即执行。此时,在执行时,需要保留一部分的CSA节点,这部分保留的CSA节点即可以用于FCL的节点耗尽后,增加FCL的节点数目,同时,由于在第一个任务被执行之前,也会随机执行代码,需要为这些代码保留一部分的CSA节点。保留的CSA节点的数目由SYS_START_USED确定,SYS_START_USED的值可以在源代码中设定或者在操作***启动时从相应的配置文件中读取:
boolean initAllTaskCSAs()
{
      int csaIdx, taskIdx;
      TaskType curTask;
      unsignedint cfcx, clcx;
      unsignedint tCsaCnt;
      cfcx = __mfcr(FCX); /*获得CPU的FCX句柄*/
      clcx = __mfcr(LCX);/*获得CPU的LCX句柄*/
      /*预留一些CSA节点,用于当前代码到第一个任务启动的过程*/
      for(csaIdx = 0; csaIdx< SYS_START_USED ; csaIdx++)/*SYS_START_USED为当前代码到第一个任务启动过程中所需要的CSA节点的数目*/
      {
           if(EquelUint32(cfcx, clcx))/*这里会发生Trap,不会执行到*/
           {
                 return FALSE;
           }
           cfcx = getCsaLink( getEffectiveAddress( cfcx ) );/*获得下一个CSA节点的有效地址RA,作为当前FCL的句柄*/
      }
      curTask = OSTCBTbl;/*获得任务TCB数组的句柄*/
      for(taskIdx = 0; taskIdx< TASK_NUM; taskIdx++)/*为TCB数组中的每个TCB循环执行以下代码,TASK_NUM为TCB的数目*/
      {
           tCsaCnt = curTask->CsaCnt; /*从任务TCB中获得当前任务配置的CSA节点的数目*/
           curTask->TFcxOrig = cfcx; /*初始化这个任务的FCL的句柄*/
           curTask->TPcxOrig = 0; /*初始化这个任务的PCL的句柄*/
           /*为这个任务分配CSA节点*/
           for(csaIdx = 0; csaIdx<tCsaCnt ; csaIdx++)/*此处进行循环以生成CSA链表*/
           {
                 if(EquelUint32(cfcx, clcx))/*当返回值为true,表示FCL中的节点已经用尽,将引发trap,因此,条件体事实上不会被执行*/
                 {
                      return FALSE;
                 }
                 cfcx = getCsaLink( getEffectiveAddress( cfcx ) );/*获得下一个节点的有效地址RA*/
           }
           curTask->TLcxOrig = cfcx;/*初始化这个任务的TLcxOrig */
           curTask ++; /*处理下一个任务*/
      }
      return TRUE;/*成功执行,返回TRUE*/
}。
为了实现CSA链表的切换,需要在任务的TCB中添加下列的成员变量:TPcxCur、TFcxCur、TPcxOrig、TFcxOrig、TLcxOrig,所述成员变量用于保存所述CSA链表的句柄,其中,TPcxCur用于保存当前PCL的首节点地址,TFcxCur用于保存当前FCL的首节点地址,TPcxOrig用于保存初始PCL的首节点地址,TFcxOrig用于保存初始FCL的首节点地址,TLcxOrig用于保存初始FCL的尾节点地址。这里的初始PCL和初始FCL是指对CSA链表进行增删操作之前的FCL和PCL的句柄。
在所述任务第一次执行前需要对该任务的CSA链表进行初始化,具体步骤为:1)将所述任务的PCL的所有节点***所述任务的FCL中;2)从FCL中取出两个节点分别为第一节点和第二节点,所述第一节点作为上部上下文储存区域,将所述任务的堆栈指针的值写入所述第一节点的SP子域,所述第二节点作为下部上下文储存区域,将所述任务的入口地址写入所述第二节点的RA子域;3)将所述第一节点以头插法***所述PCL;4)将所述第二节点以头插法***所述PCL,伪代码如下:
void TCsaInit(TaskType PTCB)
{
把PCL中未释放的CSA节点释放,即把TPcxCur上的所有节点头删法删掉,然后头插法***到TFcxCur中,这样之后也就保证了TPcxCur == TPcxOrig,TFcxCur == TFcxOrig;
从TFcxOrig取出一个节点,作为上部上下文存储区域,初始化这个区域,并指定区域中SP子域(Stack Pointer,栈指针)的值为任务的栈指针值,头插法***到TPcxCur中;
从TFcxOrig再次取出一个节点,作为下部上下文存储区域,初始化这个区域,并指定区域中RA子域(Return Address,返回地址)的值为任务的入口地址,头插法***到TPcxCur中;
}。
上述TCsaInit()的可以由以下代码实现:
voidTCsaInit(TaskType Task)
{
      unsignedintupCsaEa, loCsaEa;/*upCsaEa,loCsaEa分别为上部上下文和下部上下文的有效地址*/
      unsignedintcfcx, cpcx;/*cfcx,cpcx为FCL的句柄或者PCL的句柄*/
      cfcx = Task->TFcxOrig;/*get task's fcx*//*获得任务的FCL句柄*/
      cpcx = Task->TPcxOrig;/*get task's pcx*//*获得任务的PCL句柄*/
      /*以下代码实现清除PCL的节点并将这些节点***FCL中*/
      clearTaskUsedCsa(Task); /*把当前任务PCL中所有的节点***FCL中*/
      upCsaEa = delCsaNode(&cfcx);/*从任务的FCL中取出一个节点,并删除,返回的是节点的有效地址*/
      ((unsignedint *)upCsaEa)[2] = (uint32)Task->OSTCBStkCur;/*初始化上部上下文中的SP子域*/
      ((unsignedint *)upCsaEa)[3] = (uint32)Task->PTask;/*初始化上部上下文中的A11*/
      ((unsignedint *)upCsaEa)[1] = (uint32)0x00000980;/*初始化上部上下文中的PSW程序状态字*/
      addCsaNode(&cpcx, upCsaEa);/*把这个节点***到任务的PCL表头*/
      loCsaEa = delCsaNode( &cfcx );/*从任务的FCL中取出一个节点,并删除,返回的是节点的有效地址*/
      ((unsignedint *)loCsaEa)[1] = (uint32)Task->PTask;/*初始化下部上下文中的A11*/
      addCsaNode(&cpcx, loCsaEa);/*把这个节点***到任务的PCL表头*/
      Task->TFcxCur = cfcx;/*写回到任务的FCL句柄*/
      Task->TPcxCur = cpcx;/*写回到任务的PCL句柄*/
      return ;
}。
voidclearTaskUsedCsa(TaskType Task)
{
      unsignedintcfcx, cpcx;
      unsignedinttmpNode;
      cfcx = Task->TFcxCur;
      cpcx = Task->TPcxCur;
      while(cpcx != 0)/*任务的PCL不为空*/
      {
           tmpNode = delCsaNode( &cpcx );/*从PCL中删除一个节点*/
           addCsaNode(&cfcx, tmpNode);/*将上述从PCL中删除的***FCL中*/
      }
      Task->TFcxCur = cfcx;/*写回*/
      Task->TPcxCur = cpcx;/*写回*/
      return ;
}。
这里,clearTaskUsedCsa()用于把当前任务PCL中所有的节点***FCL中。
切换任务即切换CSA链表包括以下步骤:
保存任务save:保存任务时的任务保存上下文就是保存当前PCX、FCX到被调度出去的任务的TPcxCur,TFcxCur中。
恢复任务load:恢复任务时的任务恢复上下文就装载被调度进来的任务的TPcxCur,TFcxCur,TLcxOrig到CPU的PCX,FCX,LCX。
执行任务Run:先执行TCsaInit(),然后再执行恢复任务load。
实现上述步骤需要以下4个任务切换函数:TaskRun ()、TaskSaveRun()、TaskLoadRun()、TaskSaveLoadRun(),伪代码如下:
TaskRun()
{
      TCsaInit(),执行恢复任务load;
}。
TaskSaveRun(PreTCB, CurTCB)
{
TCsaInit();TaskSaveLoadRun();
}。
TaskLoadRun(CurTCB) 
{
执行恢复任务load;
rslcx();
}。
TaskSaveLoadRun(PreTCB,CurTCB) 
{
svlcx();/*保存下部上下文*/
保存当前CPU的PCX,FCX到PreTCB的TPcxCur,TFcxCur;
保存CPU的SP到PreTCB的SP;
从CurTCB加载出TPcxCur,TFcxCur,TLcxOrig到CPU的PCX,FCX,LCX;
rslcx();
}。
上述四个任务切换函数可以由以下代码实现,
inline void TaskSaveLoadRun(TaskType PSavedTcb, TaskType PLoadTcb)
{
      __asm("svlcx");/*保存下部上下文*/
      OSTCBOld->TFcxCur = __mfcr(FCX);/*保存前一个任务的FCL句柄*/
      OSTCBOld->TPcxCur = __mfcr(PCX);/*保存前一个任务的PCL句柄*/
      __mtcr(FCX, OSTCBCur->TFcxCur);/*装载当前任务的FCL句柄到CPU*/
      __mtcr(PCX, OSTCBCur->TPcxCur);/*装载当前任务的PCL句柄到CPU*/
      __mtcr(LCX, OSTCBCur->TLcxOrig);/*装载当前任务的LCX链表句柄到CPU*/
      __mtcr(PCXI, __mfcr(PCXI) & (~(uint32)(1 << 22)));/*设置PCXI.UL = 0,表示当前CSA节点为下部上下文节点,PCXI.UL是TC1767芯片的PCXI寄存器的一个域,用于标示当前CSA节点为上部上下文节点还是下部上下文节点*/
      __asm("rslcx");/*恢复下部上下文*/
      __mtcr(PCXI, __mfcr(PCXI) | (uint32)(3 << 22));/*设置PCXI.UL = 1,表示当前CSA节点为上部上下文节点;设置PCXI.PIE = 1,使得RFE之后能够使能***中断,PCXI.PIE是PCXI寄存器的一个域,作用是标示中断任务的中断使能位*/
}。
inline void TaskSaveRun(TaskType PSavedTcb, TaskType PLoadTcb)
{
      __asm("svlcx");/*保存下部上下文*/
      OSTCBOld->TFcxCur = __mfcr(FCX);/*保存前一个任务的FCL句柄*/
      OSTCBOld->TPcxCur = __mfcr(PCX);/*保存前一个任务的PCL句柄*/
      __mtcr(FCX, OSTCBCur->TFcxCur);/*装载当前任务的FCL句柄到CPU*/
      __mtcr(PCX, OSTCBCur->TPcxCur);/*装载当前任务的PCL句柄到CPU*/
      __mtcr(LCX, OSTCBCur->TLcxOrig);/*装载当前任务的LCX链表句柄到CPU*/
      __mtcr(PCXI, __mfcr(PCXI) & (~(uint32)(1 << 22)));/*设置PCXI.UL = 0,表示当前CSA节点为下部上下文节点*/
      __asm("rslcx");/*恢复下部上下文*/
      __mtcr(PCXI, __mfcr(PCXI) | (uint32)(3 << 22));/*设置PCXI.UL = 1,表示当前CSA节点为上部上下文节点;设置PCXI.PIE = 1,使得RFE之后能够使能***中断*/
}。
inline void TaskLoadRun(TaskType PRunTcb)
{
      __asm("svlcx");/*保存下部上下文*/
      __mtcr(FCX, OSTCBCur->TFcxCur);/*装载当前任务的FCL句柄到CPU*/
      __mtcr(PCX, OSTCBCur->TPcxCur);/*装载当前任务的PCL句柄到CPU*/
      __mtcr(LCX, OSTCBCur->TLcxOrig);/*装载当前任务的LCX链表句柄到CPU*/
      __mtcr(PCXI, __mfcr(PCXI) & (~(uint32)(1 << 22)));/*设置PCXI.UL = 0,表示当前CSA节点为下部上下文节点*/
      __asm("rslcx");/*恢复下部上下文*/
      __mtcr(PCXI, __mfcr(PCXI) | (uint32)(3 << 22));/*设置PCXI.UI = 1,表示当前CSA节点为上部上下文节点;设置PCXI.PIE = 1,使得RFE之后能够使能***中断*/
}。
inline void TaskRun(TaskType PRunTcb)
{
      __asm("svlcx");/*保存下部上下文*/
      __mtcr(FCX, OSTCBCur->TFcxCur);/*装载当前任务的FCL句柄到FCX寄存器*/
      __mtcr(PCX, OSTCBCur->TPcxCur);/*装载当前任务的PCL句柄到PCX寄存器*/
      __mtcr(LCX, OSTCBCur->TLcxOrig);/*装载当前任务的LCX链表句柄到LCX寄存器*/
      __mtcr(PCXI, __mfcr(PCXI) & (~(uint32)(1 << 22)));/*设置PCXI.UL = 0,表示当前CSA节点为下部上下文节点*/
      __asm("rslcx");/*恢复下部上下文*/
      __mtcr(PCXI, __mfcr(PCXI) | (uint32)(3 << 22));/*设置PCXI.UL = 1,表示当前CSA节点为上部上下文节点;设置PCXI.PIE = 1,使得RFE之后能够使能***中断*/
}。
所述CSA链表的节点数目为预设值。
其中,非IDLE任务的CSA链表的数目从TCBCfg中读出,并写入相应任务的TCB中,其代码如下:
SET_TASK_CSA_CNT(Tcb, TcbCfg->osCsaCnt);
此外,由于IDLE任务也需要为其建立CSA链表,IDLE 任务的CSA链表的节点数目直接在源代码中进行定义,其代码如下:
uint8OsIdleCsaCnt = 10;
在所述任务的FCL耗尽后,增加所述CSA链表的节点数目,这里增加的CSA节点从保留的CSA节点中选取。
总之,以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所作的均等变化与修饰,皆应属本发明专利的涵盖范围。

Claims (8)

1.一种基于TC1767平台的CSA节点管理器的实现方法,其特征在于,包括以下具体步骤:为每个任务分别建立CSA链表,所述任务与所述CSA链表之间一一对应,所述CSA链表包括FCL和PCL;切换所述CSA链表为当前CSA链表以实现任务切换。
2.根据权利要求1所述的基于TC1767平台的CSA节点管理器的实现方法,其特征在于,所述为每个任务分别建立CSA链表的步骤在TC1767上电后,第一个任务启动之前立即执行。
3.根据权利要求2所述的基于TC1767平台的CSA节点管理器的实现方法,其特征在于,在所述建立CSA链表的过程中,保留一定数目的节点,所述保留的节点数目由SYS_START_USED确定。
4.根据权利要求1所述的基于TC1767平台的CSA节点管理器的实现方法,其特征在于,还包括,在所述任务第一次执行前对所述CSA链表进行初始化,具体步骤为:1)将所述任务的PCL的所有节点***所述任务的FCL中;2)从FCL中取出两个节点分别为第一节点和第二节点,所述第一节点作为上部上下文储存区域,将所述任务的堆栈指针的值写入所述第一节点的SP子域,所述第二节点作为下部上下文储存区域,将所述任务的入口地址写入所述第二节点的RA子域;3)将所述第一节点以头插法***所述PCL;4)将所述第二节点以头插法***所述PCL。
5.根据权利要求1所述的基于TC1767平台的CSA节点管理器的实现方法,其特征在于,所述CSA链表的节点数目为预设值。
6.根据权利要求1所述的基于TC1767平台的CSA节点管理器的实现方法,其特征在于,还包括,在所述任务的FCL耗尽后,增加所述CSA链表的节点数目。
7.根据权利要求1-6任一所述的基于TC1767平台的CSA节点管理器的实现方法,其特征在于,所述任务包括IDLE任务。
8.根据权利要求1-6任一所述的基于TC1767平台的CSA节点管理器的实现方法,其特征在于,所述任务的TCB包括以下成员变量:TPcxCur、TFcxCur、TPcxOrig、TFcxOrig、TLcxOrig,所述成员变量用于保存所述CSA链表的句柄,其中,TPcxCur用于保存当前PCL的首节点地址,TFcxCur用于保存当前FCL的首节点地址,TPcxOrig用于保存初始PCL的首节点地址,TFcxOrig用于保存初始FCL的首节点地址,TLcxOrig用于保存初始FCL的尾节点地址。
CN2013100074142A 2013-01-09 2013-01-09 基于tc1767平台的csa节点管理器的实现方法 Pending CN103049325A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2013100074142A CN103049325A (zh) 2013-01-09 2013-01-09 基于tc1767平台的csa节点管理器的实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2013100074142A CN103049325A (zh) 2013-01-09 2013-01-09 基于tc1767平台的csa节点管理器的实现方法

Publications (1)

Publication Number Publication Date
CN103049325A true CN103049325A (zh) 2013-04-17

Family

ID=48061975

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2013100074142A Pending CN103049325A (zh) 2013-01-09 2013-01-09 基于tc1767平台的csa节点管理器的实现方法

Country Status (1)

Country Link
CN (1) CN103049325A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110147247A (zh) * 2019-05-27 2019-08-20 北京智芯微电子科技有限公司 基于c语言实现管理软件多任务的方法
CN111124624A (zh) * 2019-12-24 2020-05-08 浙江大学 一种基于TriCore架构处理器的操作***任务上下文管理方法
WO2023020069A1 (zh) * 2021-08-18 2023-02-23 华为技术有限公司 虚拟机管理方法及相关***、存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007120075A1 (fr) * 2006-04-18 2007-10-25 Limited Liability Company (Llc) 'unicorne Microsystems' Procédé de commutation
CN101908002A (zh) * 2010-08-17 2010-12-08 中兴通讯股份有限公司 一种任务路径切换方法及装置
CN102591703A (zh) * 2011-01-10 2012-07-18 中兴通讯股份有限公司 操作***的任务调度方法、装置及计算机

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007120075A1 (fr) * 2006-04-18 2007-10-25 Limited Liability Company (Llc) 'unicorne Microsystems' Procédé de commutation
CN101908002A (zh) * 2010-08-17 2010-12-08 中兴通讯股份有限公司 一种任务路径切换方法及装置
CN102591703A (zh) * 2011-01-10 2012-07-18 中兴通讯股份有限公司 操作***的任务调度方法、装置及计算机

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
黄鑫: "Reworks上下文切换在Tricore上的实现", 《计算机工程》, vol. 37, 31 December 2011 (2011-12-31), pages 368 - 370 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110147247A (zh) * 2019-05-27 2019-08-20 北京智芯微电子科技有限公司 基于c语言实现管理软件多任务的方法
CN110147247B (zh) * 2019-05-27 2023-01-24 北京智芯微电子科技有限公司 基于c语言实现管理软件多任务的方法
CN111124624A (zh) * 2019-12-24 2020-05-08 浙江大学 一种基于TriCore架构处理器的操作***任务上下文管理方法
CN111124624B (zh) * 2019-12-24 2023-05-02 浙江大学 一种基于TriCore架构处理器的操作***任务上下文管理方法
WO2023020069A1 (zh) * 2021-08-18 2023-02-23 华为技术有限公司 虚拟机管理方法及相关***、存储介质

Similar Documents

Publication Publication Date Title
EP3404587B1 (en) Cnn processing method and device
CN105159776B (zh) 进程处理方法及装置
CN103761182A (zh) 一种死锁检测方法及装置
JP2018534675A (ja) 再マッピング同期によるタスクサブグラフの加速化
CN105122228A (zh) 具有混合的散射-聚集功能性的直接存储器存取控制器
CN108021449B (zh) 一种协程实现方法、终端设备及存储介质
CN110516789A (zh) 卷积网络加速器中指令集的处理方法、装置及相关设备
CN105487987B (zh) 一种处理并发顺序读io的方法及装置
CN104932933A (zh) 一种获取自旋锁的方法及装置
CN111400016B (zh) 一种调用应用程序接口函数的方法和设备
CN106528065B (zh) 一种线程获取方法及设备
CN103488536A (zh) 任务调度方法、装置及操作***
CN103049325A (zh) 基于tc1767平台的csa节点管理器的实现方法
CN111813515A (zh) 基于多进程的任务调度方法、装置、计算机设备及介质
CN205507633U (zh) 一种基于FPGA的高性能运算PCI-e加速卡
CN104731614A (zh) 一种在开机过程中快速加载数据的方法及装置
CN105469173A (zh) 一种静态内存进行优化管理的方法
CN110502337B (zh) 针对Hadoop MapReduce中混洗阶段的优化***
CN116841739A (zh) 用于异构计算平台的数据包重用***
CN104036141A (zh) 一种基于OpenCL的红黑树加速算法
CN109240815A (zh) 一种共享堆栈的多任务运行方法、装置及设备
CN104598278A (zh) 一种数据处理方法及电子设备
CN104699513A (zh) 一种文件处理方法及装置
CN112506813B (zh) 一种内存管理方法和***
CN105095197B (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: 20130417