中断/软件控制的线程处理的制作方法

文档序号:6418917阅读:210来源:国知局
专利名称:中断/软件控制的线程处理的制作方法
技术领域
本发明涉及本发明涉及面向线程的处理,特别是,涉及使用环境的多线程处理。
2.相关技术说明在多线程处理中,一个处理器可以成功的运行多个不同的进程(通常指“线程”)。在特别事件发生时,象经过一个预定时间后或收到一个特定指令时,处理器挂起一个线程的运行,储存描述被挂起线程的状态的环境,并开始运行由另一个环境描述的另一个线程。每一个“环境”含有处理器初始一个新线程的运行或继续执行一个被挂起线程需要的信息。通常这个信息包括存储器地址,状态信息和数据。
为了实现对存储的线程环境的直接和快速的存取,有些处理器含有多个本地环境寄存器区(bank)。然而,这是一个将运行线程数量限制为固定数量的不灵活的装置。当线程数量小于已有的寄存器区的数量时这种处理器的效率非常低。
或者,多个环境可被储存在分离的存储器中。此种方法的各种实例在美国专利5349680中有所描述。这些实例的其中一个中,在该专利中作为已有的信息处理设置,一个主处理机包括用于连续执行不同应用程序进程的操作的应用程序支持单元和用于扩展信息处理装置的系统支持单元两者。这种装置的效率被描述为较差,因为应用程序支持单元和系统支持单元从不同时操作。美国专利5349680提出了利用多个存储环境的不同装置,但是每一装置都要使用两个分开的处理器。这种提高效率的方法太昂贵了。
发明概述本发明的目的是通过一个不受使用固定数量的本地环境寄存器的不可改变性妨碍的单一处理器来实现的快速而有效的多线程处理。
这个和其他目的可通过环境寄存器组和存储器之间的环境交换来实现。这使仅用少数硬件的快速多线程处理成为可能。依据本发明,使用的方法包括
将多个中断的每一个与相应的存储器位置相关联;在存储器位置内储存多个分别的线程环境指针,每个指针识别包含全面描述所述线程之一的运行状态的线程环境的存储器位置;响应任何中断的出现,从与中断关联的相应的存储位置中读指针;从由读入环境到环境寄存器组中的线程环境指针标识的存储器位置读出线程环境;运行读出的线程环境描述的线程。
通过在与各个中断关联的存储器位置存储环境的指针而不是环境本身,这些中断是从特定环境中去引用的。这在决定中断响应中提供了高度的灵活性。它还能通过在只在一个存储位置中存储的多个中断共用的环境并在这些中断的每个指针中包括此共用环境的地址而节省存储器。而后,通过在由指针识别的存储位置中直接储存环境本身,快速使处理器从一个线程转变到另一个线程就成为可能了。
注意单词“存储器”,在此旨在笼统的译作与其使用和包括的相符的方式,但不限于各种类型的易失的和非易失的装置,例如寄存器,RAM,DRAM,ROM,和这些设置的组合。还有,“读”指的是从一个存储器中检索信息并把它写入另一个存储器中。
在本发明的一个特别有益的实施方案中,程序流(即形成程序的指令序列)中的某些由处理器执行的指令直接影响处理器中的环境改变。这使得可以快速改变由线程本身开启的环境。
附图简述

图1是依据本发明的一个实施方案说明多线程处理系统操作的框图。
图2是带有存储在存储器中特定的一组指针和线程环境的图1的多线程处理系统操作的框图。
图3是带有优先级线程的图1的多线程处理系统操作的图表。
图4是带有第一和第二优先级的图1的多线程处理系统操作的框图。
优选实施方案的描述图1的多线程处理系统包括一个单一处理器10和一个存储器20。示范处理器10是一个利用时钟脉冲定序由程序计数寄存器识别的指令的硬件加速单元。一般的,程序计数寄存器含有要被读出并通过处理器执行的下一个指令的存储位置。
处理器包括中断处理单元12,环境寄存器组14,指令解码器16和运算逻辑单元18。存储器20,在这个示范方案中,包括一个RAM,它有多个存储位置用来储存多线程环境指针PtrTC1,PtrTC2,PtrTC3,…PtrTCn,和多线程环境等。
处理器10和存储器20连接到一个共用的总线30上来彼此通信并同连在总线上的其他硬件通信。总线包括用来传送信息如地址,中断,读出选通,写入选通和设备选择选通的各条线路。优选的,这是一个至少部分生成在用处理器和存储器基底的共用硅上的高速总线。
处理器10的操作完全受控于中断和程序流中的指令。这些中断要么是从总线30那收到的外部中断要么是在处理器自身内产生的比如,从处理器中的计时器产生的内部中断。每个外部中断与储存着线程指针PtrTC1,PtrTC2PtrTC3,…PtrTCn之一的存储器20的预定位置相关联。每个指针与连接在总线30上的硬件使用的线程环境中的一个相关联并识别储存特定环境的存储位置。注意不止一个指针(如PtrTC1和PtrTC3)可与同一个线程环境关联,然后识别同一个存储位置。如果不止一个装置连接在总线30上,如一个接收FIFO和一个传递FIFO,利用同一个环境,这是很有用的。每个内部中断与储存着由处理器利用的线程环境的存储器20中的一个预定的位置相关。
如果一个环境是共用的,处理时间会长些,因为中断服务线程必须决定中断的来源。但是,需要较少的存储器。相反的,如果一个中断独立的使用一个环境,中断服务线程能够固有的识别中断的来源而且处理响应时间也短了。这给系统结构提供了灵活性。
所有的中断都由中断处理单元12处理,它包括一个线程环境定位器120,一个指针寄存器122和,可选的一个高速缓存管理器124。线程环境定位器120产生与内部和外部中断关联的存储位置识别的地址。作为对任何中断的响应,线程环境定位器产生识别储存着相关的一个线程环境指针PtrTC1,PtrTC2,PtrTC3,…PtrTCn的存储器20中的预定位置的地址。处理器然后从这个存储单元中读线程环境位置到指针寄存器122中。外部中断的例子包括FIFO发送完成,FIFO数据接收,DMA传输完成,FIFO发送完成,等等。内部中断的例子包括内部计时器等。
优选的线程环境定位器包括一个用来产生地址的专用的优先级-敏感的硬件部件,如一个可编程查找表或一个编码器,这些在本领域中都是显为人知的。它们即扩大了寻址速度还能使高优先级中断在低优先级中断前处理。
环境寄存器组14包括多个用来包含当前由处理器10运行的线程的环境的寄存器。在优先的实施方案中,寄存器组14包括·一个用来储存当前由处理器运行的线程的环境的存储器地址的寄存器PTR TC;·一个用来储存以前由处理器运行的线程的环境的存储器地址的寄存器PREV PTR TC;·一个用来识别可能不被存在存储器20中的线程环境指针识别的线程环境的位置的寄存器P0;·一个程序计数寄存器PC,不断的更新从而识别存储器20中要被存取的下一个指令的地址;·一个或多个通用寄存器(未示出);和·一个或多个用来包含从存储器20中读出的或由运算器18产生的数据的数据寄存器(未示出)。
指令解码器16是个传统的硬件部件,如定序器或微定序器,用来转换从存储器20读出的指令到由运算器18执行的低级操作编码。运算逻辑单元也是个传统的硬件部件。
图2说明的是处理器10在多个顺序发生的环境改变的示范指令和中断的控制下的操作。图框40代表这些中断和环境改变发生对处理器中的事件的顺序。示出的示范环境-改变指令(恢复PREV TC,切换至P0 TC,恢复FM P0 TC,切换至PREV TC和S/W中断)影响环境寄存器组14中的改变,下文将会详述。
图框20’代表存储器20中的位置,含有特定指针,由这些指针定位的线程环境,由在序列40中出现的环境-改变指令“切换至P0 TC”和“恢复FM P0 TC”定位的线程环境。在这一特定示例中,存储单元20’分别包括·响应中断INT 1由处理器读出的指针Ptr TC INT1,它包含一个相关的线程环境“线程环境F”的存储位置;·响应中断EXT 1由处理器读出的指针Ptr TC EXT 1,它包含一个相关的线程环境“线程环境A”的存储位置;
·响应中断EXT 2由处理器读出的指针Ptr TC EXT 2,它包含一个相关的线程环境“线程环境B”的存储位置;·响应中断EXT 3由处理器读出的指针Ptr TC EXT 3,它包含一个相关的线程环境“线程环境C”的存储位置;·线程环境“线程环境A”;·线程环境“线程环境B”;·线程环境“线程环境C”;·线程环境“线程环境D”;·线程环境“线程环境E”;·线程环境“线程环境F”。
在这个实施方案中,指令“恢复PREV TC”,“切换至P0 TC”,“恢复FM P0 TC”,“切换PREV TC”和“S/W中断”包含在存储器20中并在当它们的存储位置由程序计数寄存器PC识别时被读入指令解码器16。
图2所示序列在时刻t0开始,即当处理器10正在运行由包含在环境寄存器组中的“线程环境A”代表的线程A时。为简便起见,每个中断都将被假设成允许操作的并在其出现时立即被执行。
在时刻t1处理器10在总线30中的一个中断线路上接收到外部中断EXT 2。响应该中断,处理器·读当前包含在环境寄存器组14中的线程环境,即线程A的环境(“线程环境A”),并读入由包含在环境寄存器组14中PTR TC寄存器中的当前线程环境地址识别的存储位置;·将当前包含在寄存器PTR TC中地址读入寄存器PREV PTR TC;·使线程环境定位器120产生识别与外部中断EXT 2相关的存储位置的地址,即存储着指针Ptr TC EXT 2的存储位置;·将识别“线程环境B”的存储位置的指针Ptr TC EXT 2读入指针寄存器122中;·把这个线程环境读入环境寄存器组14并开始运行线程B。
在时刻t2,处理器10遇到,作为线程B中的最后的指令,指令“恢复PREV TC”。执行此指令时处理器·从PREV PTR TC寄存器中读地址到指针寄存器122中;·选择性地从PRT TC寄存器中读地址到寄存器PREV PTR TC中;
·从由收指针寄存器122识别的存储单元20’读线程环境A到环境寄存器组14和重新建立线程A的运行。
在时刻t3,当运行线程A时,处理器在由程序计数寄存器PC识别的存储器20’中的相应位置读出指令“切换至P0 TC”。这个指令用来开启一个从不能被存储器20’中任何预先储存的线程环境指针Ptr TCEXT 1,Ptr TC EXT 2或Ptr TC EXT 3识别的一个线程到另一个线程的转换。为实现这个转换,在切换至P0 TC指令之前的指令之一将在P0寄存器中预先储存,在环境寄存器组中,为要转换到的线程识别环境位置的地址。在这个例子中,这个转换是从当前的线程A到位于存储器20’中某个位置的线程D。该指令执行时处理器·读“线程环境A”到由包含在环境寄存器组14中的寄存器PREVPTR TC中的当前线程环境地址识别的存储位置;·读当前包含在寄存器PTR TC中的地址到寄存器PREV PTR TC;·从寄存器P0中读地址到指针寄存器122;·从由指针寄存器122识别的存储器20’中的位置读线程环境(“线程环境D”)到环境寄存器组14;·开始运行线程D。
在时刻t4,作为对从线程D的运行中的存储器20’读出的指令的响应,处理器10通过从存储器20’中相应的位置读来执行指令“恢复FM P0 TC”。指令“恢复FM P0 TC”与指令“切换至P0 TC”相似,但读线程的环境时并没有储存当前在环境寄存器组14中的环境。要完成这一指令,在“恢复FM P0 TC”指令之前的指令之一将在P0寄存器中预先储存识别要被恢复的线程的环境位置的地址。在这一示例中,处理器要恢复线程E通过·从寄存器P0中读“线程环境E”地址到指针寄存器;·选择性的从寄存器PTR TC中读地址到寄存器PREV PTR TC中;·从存储器20’中读“线程环境E”到环境寄存器组。
在时刻t5,在线程E的运行中,处理器在由程序计数寄存器PC识别的存储器20’中的相应位置读出指令“切换至PREV TC”。这个指令用来使能一个从当前运行的线程到早先运行的线程的转换。在这一示例中,这个转换是从当前的线程E到线程D。执行这个指令时,处理器·读“线程环境E”到由包含在环境寄存器组14中的寄存器PREVPTR TC中的当前线程环境地址识别的存储器20’中的存储位置;·从寄存器PREV PTR TC中读地址到指针寄存器122;·读当前包含在寄存器PTR TC中的地址到寄存器PREV PTR TC;·从由指针寄存器122识别的存储器20’中的位置读线程环境F到环境寄存器组14并重建立线程D的运行。
在时刻t6,运行线程D时,处理器从由程序计数寄存器PC识别的存储器20’中的相应位置读出指令“S/W中断”。这个指令用来开启硬件中断的一种软件仿真。在此示例中,这个指令会仿真中断INT 1。响应该指令,处理器将象收到硬件中断INT 1一样响应。也就是,处理器·从环境寄存器组14中读当前运行的“线程环境D”到由包含在寄存器PTR TC中的地址识别的存储位置;·读当前包含在寄存器PTR TC中的地址到寄存器PREV PTR TC;·使线程环境定位器120产生识别与内部中断INT 1关联的存储位置的地址,即存储指针Ptr TCINT1的存储位置;·读识别“线程环境F”的存储位置的指针Ptr TC INT 1到指针寄存器122中;·把这个线程环境读入环境寄存器组14并开始运行线程F。
如上所述,处理器具有快速改变包含在单一环境寄存器组14中的环境的能力。优选的,然而,要加快环境改变速度处理器有多个环境寄存器组。在这种情形中,选择性的环境高速缓存管理器124将被包括在处理器中。
要达到最大的速度,在高速缓存存储器中环境寄存器组的个数和处理器运行的不同线程的个数一样多。这是对高速缓存存储器空间的低效率使用,但是,不是每个线程都需要这种高速度。依据本发明的另一个特征,最佳效率要通过环境寄存器组少于线程来实现,通过使每个高优先级线程有多于给低优先级线程的可用寄存器组来实现。图3和图4说明这两种优先级。
图3代表配置为通过利用位于高速缓存存储器中受控于高速缓存管理器124的4个环境寄存器组(Ⅰ,Ⅱ,Ⅲ,Ⅳ)来运行8个线程(线程A,B,…H)的系统中的线程处理。每个环境寄存器组都与图1所示的相似,但更进一步的包括了储存包含在各个8个线程的环境中的优先级代码P的寄存器。在此示例中
·一个单一位被用于指示高优先级(p=1)或低优先级(p=0)线程;·线程A,B,C被指定为高优先级线程;·线程D,E,F,G,H被指定为低优先级线程;在图3的示例中,在时刻t0处理器10没有运行任何线程而且环境寄存器组Ⅰ,Ⅱ,Ⅲ,Ⅳ处于一种没有寄存器组含有线程环境的复位状态。处理器处于空载直到被中断如下·在时刻t1,中断EXT 2通过总线30接收。处理器(通过线程环境定位器120)读Ptr TC EXT2指针到指针寄存器122然后从由此指针识别的存储位置中读“线程环境B”。高速缓存管理器124决定这个线程环境包括高优先级代码p=1,全部4个环境寄存器组都是空闲的(即不含任何环境),并发送“线程环境B”到环境寄存器组Ⅰ。(在这个例子中高速缓存管理器总是按数字选出第一个空闲的寄存器组,但可以按照任何序列完成,包括随机的。)环境寄存器组Ⅰ现在成为活动的并在处理器运行线程B时不断的被更新。
·在时刻t2,中断INT 1从处理器中的计时器接收到。处理器读Ptr TC INT 1指针到指针寄存器122然后从由此指针识别的存储位置中读“线程环境F”。高速缓存管理器决定这个线程环境包括低优先级代码p=0,没有环境寄存器组包含任何低优先级环境,环境寄存器组Ⅱ,Ⅲ,Ⅳ是空闲的,并发送“线程环境F”到环境寄存器组Ⅱ。(或者,一个特别的环境寄存器组可被保留给低优先级线程环境。这会消除决定没有环境寄存器组含有任何低优先级线程环境的步骤。)环境寄存器组Ⅱ成为活动的而且处理器开始运行线程F。
·在时刻t3,中断EXT 1通过总线30接收。处理器读Ptr TC EXT1指针到指针寄存器122然后从由此指针识别的存储位置读“线程环境A”。高速缓存管理器124确定这个线程环境包括高优先级代码p=1,环境寄存器组Ⅲ和Ⅳ都是空闲的,并发送“线程环境A”到环境寄存器组Ⅲ。该环境寄存器组成为活动的而且处理器开始运行线程A。
·在时刻t4,运行线程A时,处理器从由当前在环境寄存器组Ⅲ中的程序计数寄存器PC识别的存储器20’中的相应位置读出指令“切换至P0 TC”。(在这个例子中,“线程环境G”的存储位置地址将被预先-储存在环境寄存器组Ⅲ的P0寄存器中。另外包含在线程G中的优先级代码p=0,使高速缓存管理器确定这个线程环境应被读进环境寄存器组Ⅱ。)在执行这个指令时,象只有一个单一环境寄存器组存在时的情形一样处理器·读“线程环境F”到由包含在环境寄存器组Ⅱ中的寄存器PTRTC中的当前线程环境地址识别的存储位置;读入当前包含在环境寄存器组Ⅲ的寄存器PTR TC的地址到寄存器PREV PTR TC中;·从环境寄存器组的寄存器P0中读“线程环境G”地址到指针寄存器122;·读“线程环境G”到环境寄存器组Ⅱ。寄存器组Ⅱ现在成为活动的而且处理器开始运行线程G。
·在时刻t5,中断EXT 3通过总线30接收。处理器读Ptr TC EXT3指针到指针寄存器122然后从由此指针识别的存储位置读“线程环境C”。高速缓存管理器124确定这个线程环境包括高优先级代码p=1,唯一的环境寄存器组Ⅳ是空闲的,并发送“线程环境C”到环境寄存器组Ⅳ。这个环境寄存器组成为活动的而且处理器开始运行线程C。
此后,每个线程环境A,B,C将保持在各个环境寄存器组Ⅲ,Ⅰ,Ⅳ中并且每个线程可通过使各个寄存器组成为活动的而运行。任何线程D,E,F,G,H的运行需要调入相应的线程环境到环境寄存器组Ⅱ。
那么在一个配置为操作指定的高优先级环境寄存器组至少与高优先级线程(既由图3代表的)数量一致的系统中,只要这些寄存器组调入了各个环境就没有必要在它们和存储器20之间再传输环境。反之,如果只有一个环境寄存器组提供给低优先级线程,这些线程的环境必须在每次处理器改变成它们中间的不同的一个时被传输到单一的寄存器组。
图4说明的是操作两个优先级的另一种系统配置中的线程处理示例。在第一等级中,如图3所示,给高优先级线程的每个线程的寄存器组比给低优先级线程的多。在第二优先级,每个有多个指定环境寄存器组的线程“优先级代码p”使用一个溢出优先级算法,但此处这些寄存器的数量小于有相应优先编码p的线程的数量。在此示例中·一个单一位被用于指示高优先级(p=1)或低优先级(p=0)线程;但此处·线程A,B,C和D被指定为高优先级线程(p=1);·一个由处理器作为对中断EXT 4的响应并包含“线程环境D”的存储位置的附加的指针Ptr TC EXT 4被储存在存储器20’中;·线程E,F,G,H被指定为低优先级线程(p=0);图4的示例中,从时刻t0到时刻t5,操作与图3所示的相同。那之后,因为第二等级中的高优先级环境寄存器组少于高优先级线程,一个第二级优先级算法开始作用。例如,如果高优先级线程之间的优先级不同,二级优先级算法可以基于这种相对优先级。或者,如果它们都是同等的优先级可使用不同算法。以下算法基于高优先级线程利用处理器的以往历史·在时刻t6,中断EXT 4通过总线30接收。处理器读Ptr TC EXT4指针到指针寄存器122然后从由此指针识别的存储位置中读“线程环境D”。高速缓存管理器确定这个线程环境包括高优先级p=1,但没有环境寄存器组是空闲的。高速缓存管理器有跟踪每个线程要求使用高速缓存存储器的历史的能力。在一个优先的实施方案中,它通过给每个线程提供一个单独的计数器来实现,最初复位所有的计数器到零,然后,每次请求生成时·只复位与所请求的线程相关的计数器到零;·增加其他线程的计数器。
从这些计数器储存的历史中,高速缓存管理器确定最近请求的是线程B(是收到中断EXT 2并且“线程环境B”被读入到环境寄存器组Ⅰ时的时刻t1)。根据这个历史,处理器读“线程环境B”到存储器20’然后从存储器20’中读“线程环境D”到环境寄存器组Ⅰ。这个寄存器组此时成为活动的并且处理器开始运行线程D。
注意提供多个环境寄存器组使处理器不必存取存储器20就能顺序地处理多个线程。每个线程改变所需的时间由时钟周期测量,而不是即便使用最快的总线时仍需要的更多的时间来存取存储器。
权利要求
1.一种响应将各个线程环境读入环境寄存器组(14)而操作单一处理器(10)来选择性的运行多个不同线程中的一个线程的方法,所述方法包括a.将多个中断的每一个与相应的存储器(20)位置相关联;b.在存储器位置内储存多个分别的线程环境指针,每个所述指针识别包含全面描述所述线程之一的运行状态的线程环境的存储器位置;c.响应任何中断的出现,从与所述中断关联的相应的存储位置中读指针;d.从由读入环境到环境寄存器组(14)中的线程环境指针标识的存储器位置读出线程环境;e.运行读出的线程环境描述的线程。
2.按照权利要求1的方法,每个线程环境指针识别一个不同的存储位置。
3.按照权利要求1的方法,不止一个线程环境指针识别同一个存储位置。
4.按照权利要求1的方法,响应中断之一或由处理器执行的程序流中的多个线程改变指令之一,处理器改变正在运行的线程。
5.按照权利要求4的方法,线程改变指令包括一个用来保存当前运行线程的环境和改变当前被运行线程为一个不同的线程的切换指令。
6.按照权利要求5的方法,处理器储存早先运行的线程的环境的地址并且所述线程改变指令包括一个用来改变被运行线程为早先运行的线程的第一个切换指令。
7.按照权利要求5的方法,包括了一个改变被运行线程成一个其环境包含在由第二个切换指令识别的存储位置的环境的第二个切换指令。
8.按照权利要求7的方法,第二个切换指令隐式的识别所述环境的存储位置。
9.按照权利要求7的方法,第二个切换指令明确的识别所述环境的存储位置。
10.按照权利要求9的方法,第二个切换指令包含一个识别所述环境的存储位置的指针。
11.按照权利要求9的方法第二个切换指令识别包含一个识别所述环境的存储位置的指针的存储位置。
12.按照权利要求4的方法,线程改变指令包括一个不需要保存当前运行着的线程环境的用来运行不同的线程的恢复指令。
13.按照权利要求12的方法,处理器储存早先运行线程的环境的地址并且所述线程改变指令包括一个用来改变被运行线程为早先运行的线程的第一个恢复指令。
14.按照权利要求12的方法,包括了一个改变被运行环境成一个其环境包含在由第二个恢复指令识别的存储位置的环境的第二个恢复指令。
15.按照权利要求14的方法第二个恢复指令隐式的识别所述环境的存储位置。
16.按照权利要求14的方法,第二个恢复指令明确的识别所述环境的存储位置。
17.按照权利要求16的方法,第二个恢复指令包含一个识别所述环境的存储位置的指针。
18.按照权利要求16的方法,第二个恢复指令识别包含一个识别所述环境的存储位置的指针的存储位置。
19.按照权利要求4的方法,线程改变指令包括一个用来模拟中断的S/W中断指令。
20.按照权利要求4的方法,提供多个环境寄存器组,所述单一处理器运行包含在所述环境寄存器组预定的一个的线程。
21.按照权利要求1的方法,环境寄存器组包括a.一个用来给当前处理器运行的线程储存环境的储存器地址的寄存器;b.用来识别不由线程环境指针识别的线程环境的位置的寄存器。
22.按照权利要求1的方法,环境寄存器组包括一个用来给早先由处理器运行的线程储存环境的储存器地址的寄存器。
23.按照权利要求1的方法,处理器包括多个环境寄存器组。
24.按照权利要求23的方法,环境寄存器组的数量小于处理器运行的线程的数量。
25.按照权利要求24的方法,一个基于优先级的算法被用来选择线程环境要读入哪个环境寄存器组。
26.按照权利要求24的方法,线程包括高优先级线程和低优先级线程并且高优先级线程比低优先级线程可使用大比例的环境寄存器组。
27.按照权利要求26的方法,至少一个线程的优先级在处理器的操作中是可改变的。
28.按照权利要求26的方法,在给更高级或更低优先级级线程读线程环境的时刻,当所有的环境寄存器组提供给已经包含线程的相应的优先级而不是被读的环境的优先级时,采用了一组选择算法。
29.按照权利要求28的方法,所述算法影响读所述线程环境到含有最近被储存的线程环境的可用环境寄存器组。
30.一个操作处理器网络的方法,每个所述的处理器(10)响应将各个线程环境读入环境寄存器组(14),选择性的运行多个不同的线程中的任一个,所述方法包括a.将多个中断的每一个与相应的一个存储器(20)位置相关联;b.在存储位置内储存多个相应的线程环境指针,每个指针识别一个包含一个全面描述所述线程的操作状态的线程环境的存储器位置;c.响应任何中断的出现,从与所述中断相关的相应的存储位置中读指针;d.从由读环境寄存器组(14)的线程环境指针识别的存储器位置读入线程环境;e.运行由读的线程环境描述的的线程。
31.按照权利要求30的方法,至少有一个线程是可被多于一个处理器运行的共用线程。
全文摘要
通过在存储器和环境寄存器组之间传递完全线程环境而实现的快速线程处理。每个线程环境响应指定的指定或指令从相应的存储器网站读出。
文档编号G06F9/48GK1316074SQ99805314
公开日2001年10月3日 申请日期1999年12月16日 优先权日1998年12月22日
发明者W·L·萨维勒, K·罗斯 申请人:皇家菲利浦电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1