CN1719375A - 微处理器 - Google Patents
微处理器 Download PDFInfo
- Publication number
- CN1719375A CN1719375A CNA2005100832579A CN200510083257A CN1719375A CN 1719375 A CN1719375 A CN 1719375A CN A2005100832579 A CNA2005100832579 A CN A2005100832579A CN 200510083257 A CN200510083257 A CN 200510083257A CN 1719375 A CN1719375 A CN 1719375A
- Authority
- CN
- China
- Prior art keywords
- task
- register
- identification information
- unit
- information
- 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
- 238000012545 processing Methods 0.000 claims description 59
- 238000000034 method Methods 0.000 claims description 38
- 230000008569 process Effects 0.000 claims description 20
- 239000003550 marker Substances 0.000 claims description 12
- 230000008520 organization Effects 0.000 claims description 7
- 238000004321 preservation Methods 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 18
- 238000011084 recovery Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 10
- 230000005055 memory storage Effects 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 7
- 238000003860 storage Methods 0.000 description 5
- 230000007613 environmental effect Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 230000014759 maintenance of location Effects 0.000 description 2
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/3009—Thread control instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30123—Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Storage Device Security (AREA)
- Advance Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Executing Machine-Instructions (AREA)
Abstract
本申请涉及微处理器。具体地,是在流水线结构中执行程序的微处理器。其包括:任务寄存器管理单元,如果在多个单元执行第一任务时发出了切换到第二任务的切换指令,则在完成第一任务的执行之后将任务寄存器的值切换到执行第二任务时使用的第二寄存器信息;以及任务管理器,在所述值被切换到第二寄存器信息之后,将任务标识信息寄存器的值切换到第二任务标识信息,并允许所述多个单元中的每一个执行所述第二任务。
Description
对相关申请的引用
本申请基于2004年7月7日递交的在先日本专利申请No.2004-200366并要求其优先权。该申请的全部内容通过引用结合在本申请中。
技术领域
本发明涉及在流水线结构中执行程序任务的微处理器。
背景技术
最近,在通常使用的开放系统中,公开了构成针对普通用户的计算机比如个人计算机(PC)的硬件部件或者操作系统(OS)的源代码。因此,最终用户能够使用这些公开的内容修改OS。
同时,在大多数在开放系统上运行的应用程序中,要求保障有关应用程序的信息的版权,或者应用程序本身的版权。为此,需要有一种保全应用程序的秘密的结构,也就是防止攻击应用程序的结构。尽管OS被设计为保护应用程序不受攻击,但是不可能在OS被修改了的情况下防止对应用程序的攻击。有鉴于此,需要有一种硬件能够保全应用程序的秘密。一般而言,与修改OS相比,第三方侵入者更难以修改硬件。
作为一种具有上述特性的硬件,尤其是微处理器,例如在JP-A-2001-230770中提出了一种抗篡改的处理器。这种防篡改的处理器具有对多任务环境中的程序以及程序中使用的信息加密的功能。这能够防止程序或者信息泄漏到第三方,或者防止程序等被修改。
另外,最近公开了这样一种技术:为了有效地利用微处理器的指令执行功能,当存在存储器访问的等待时间时,指令切换到另外的线程,然后被执行,从而消除空闲时间,提高处理能力。作为该技术的一个例子,例如,Deborah T.Marr et a1.,architecture and microarchitecture of hyper threading technique,Intel Technology Journal(February,2002)公开了一种超线程技术(hyper threadingtechniques),其中,一个物理处理器被当作两个虚拟处理器。
在这些技术中,在两个虚拟处理器之间共享指令执行功能,但是在每一个处理器中提供必要的资源,比如寄存器或者翻译后援缓冲存储器(Translation Look-aside Buffer(TLB))。另外,当线程被切换时,选择足够的资源。另外,在存储器访问的等待时间(空闲时间、待机时间),不是必须等待的线程的线程仍然运行。在其它时间,各线程交替执行。
为了执行上述过程,该技术包括一种寄存器重命名功能,用于将被写入指令文件的寄存器号转换为物理寄存器号。另外,每一个虚拟处理器具有用于对寄存器重命名的寄存器别名表(Register Alias Table(RAT))。
为了实现对任务的加密保护,需要禁止其它任务非法访问受保护的任务的资源,比如寄存器或者存储器。例如,攻击者可能可以访问使用OS受到保护的任务。
因此,如果发出中断/任务恢复指令,则一个指令执行单元控制处理器硬件,在中断/恢复之前保存任务内容,并在中断/恢复之后返回任务的内容。同时,指令执行单元更新任务ID寄存器的值。这可以防止其它任务访问受保护的任务或者存储器信息的寄存器组的内容。
但是,大多数高性能的处理器具有流水线结构,在这种流水线结构中,并行地处理和执行多个指令。在流水线中,存在这样的期间:在中断/恢复之前和之后属于各任务的指令被混合起来了。
如果在指令混合期间有对寄存器的访问或者有重写,则不可能以安全和正确的方式控制受保护任务的寄存器的内容。例如,如果在产生中断之后立即执行寄存器的切换,则会出现这样一种情况:应当在产生中断之前处理的任务被中断,并在产生中断之后被写入任务的寄存器。
另外,如果在产生中断之后立即更新任务ID寄存器的值,则会出现这样一种情况:中断之前的任务使用中断之后的任务ID寄存器的值执行高速缓存访问或者存储器访问。另外,通过具有使用其它任务ID对高速缓存或者存储器的访问权,根据用不同于任务所对应的密钥的密钥所加密/解密的值,执行读写操作。
另外,作为执行对应于任务的寄存器组的切换的方法,有这样一种方法:使用在超线程技术等中用来有效地利用指令执行功能的寄存器重命名功能,在每一个任务中维护RAT。
即使使用这种技术,由于任务ID寄存器只是一个,会出现这样一种情况:当中断/恢复之前的任务和中断/恢复之后的任务共存时,任务ID寄存器的值与中断/恢复之前或者中断/恢复之后的任务ID寄存器的值不匹配。因此,存在一个问题:不可能使用其它任务ID寄存器防止高速缓存访问或者存储器访问。
发明内容
根据本发明的某些实施例,一种微处理器包括:具有多个单元、被配置来处理任务的流水线;被配置为保存当前任务标识信息的任务标识寄存器;被配置为保存在所述多个单元处理一个任务时使用的寄存器信息的任务寄存器;任务完成检测器,被配置为:如果在流水线的所述多个单元中的一个执行单元执行第一任务时发出了切换到第二任务的切换指令,则检测所述流水线是否完成了已经进入了所述执行单元的第一任务的处理;任务寄存器管理器,被配置为:如果所述任务完成检测器检测到所述流水线完成了第一任务的处理,则将任务寄存器的值切换到在执行第二任务时使用的第二寄存器信息;以及任务管理器,被配置为:如果所述任务寄存器管理器切换到第二寄存器信息,则将任务标识信息寄存器的值切换到标识第二任务的第二任务标识信息,并允许每一个所述单元执行所述第二任务。
根据本发明的某些实施例,一种被配置为在流水线结构中执行程序的微处理器包括:多个被配置来执行任务的单元;被配置为保存任务标识信息的任务标识信息寄存器,所述任务标识信息标识由每一个所述单元执行的任务,保存的格式是对应的单元能够被标识的格式;任务标识信息指定设备,被配置为:如果从所述单元接收到预定的处理请求,则指定用于所述单元的任务标识信息寄存器中保存的任务标识信息;以及控制器,被配置为:基于所述任务标识信息指定设备指定的任务标识信息,控制根据所述处理请求的处理过程。
根据本发明的某些实施例,一种被配置为在流水线结构中执行程序的微处理器包括:多个被配置来执行任务的单元;被配置为保存寄存器信息标识信息的寄存器信息寄存器,所述寄存器信息标识信息标识由每一个所述单元使用的寄存器组,保存的格式是对应的单元能够被标识的格式;寄存器信息标识指定设备,被配置为:如果从所述单元接收到预定的处理请求,则指定用于所述单元的寄存器信息标识寄存器中保存的寄存器信息标识信息;以及控制器,被配置为:基于所述寄存器信息标识指定设备指定的寄存器信息标识信息,控制根据存储器访问处理请求的处理过程。
根据本发明的某些实施例,一种方法包括:在具有多个单元的流水线中处理任务;在任务标识寄存器中保存当前任务标识信息;在任务寄存器中保存寄存器信息;如果在流水线的所述多个单元中的一个执行单元执行第一任务时发出了切换到第二任务的切换指令,则检测所述流水线是否完成了已经进入了所述执行单元的第一任务的处理;将任务寄存器的值切换到在执行第二任务时使用的第二寄存器信息;以及,将任务标识信息寄存器的值切换到标识第二任务的第二任务标识信息,并允许每一个所述单元执行所述第二任务。
根据本发明的某些实施例,一种方法包括:在多个单元中执行任务;在任务标识信息寄存器中保存任务标识信息,所述任务标识信息标识由每一个所述单元执行的任务,保存的格式是对应的单元能够被标识的格式;如果从所述单元接收到预定的处理请求,则在任务标识信息指定设备中指定用于所述单元的任务标识信息寄存器中保存的任务标识信息;以及,基于所述任务标识信息指定设备指定的任务标识信息,在控制器中控制根据所述处理请求的处理过程。
根据本发明的某些实施例,一种方法包括:在多个单元中执行任务;在寄存器信息标识寄存器中保存寄存器信息标识信息,所述寄存器信息标识信息标识由每一个所述单元使用的寄存器组,保存的格式是对应的单元能够被标识的格式;如果从所述单元接收到预定的处理请求,则指定用于所述单元的寄存器信息标识寄存器中保存的寄存器信息标识信息;以及,基于所述寄存器信息标识指定设备指定的寄存器信息标识信息,在控制器中控制根据存储器访问处理请求的处理过程。
附图说明
图1是表示根据某些实施例的微处理器的总体结构的框图;
图2是密钥表142的数据结构的示意图;
图3是指令高速缓存122的数据结构的示意图;
图4是同步设备116的状态转换示意图;
图5是一个五站流水线112执行第一受保护任务的状态的示意图;
图6是在产生了一个中断时所述五站流水线112执行第一任务的状态的示意图;
图7是所述五站流水线112、所述同步设备116、所述安全环境切换单元131以及高速缓存控制器121中的每一个在产生中断时的处理的流程图;
图8是根据某些实施例的处理器内核511的结构的框图;
图9是处理器内核511执行第一受保护任务的状态的示意图;
图10是在产生了中断时处理器内核511执行任务时的示意图;
图11是在解码单元5122请求寄存器访问控制功能516在图10的步骤S6252中读寄存器的情况下的处理的流程图;
图12是在寄存器写入单元5125请求寄存器访问控制功能516在图10的在时刻t13的步骤S6245中写寄存器的情况下的处理的流程图;
图13是在指令取出单元5121在图10的时刻t13的步骤S6241中执行指令取出的情况下的处理的流程图;
图14是存储器访问单元5124在图10的时刻t13的步骤S6244中执行存储器访问的情况下的处理的流程图。
具体实施方式
图1是根据某些实施例的微处理器101的总体结构的框图。处理器101包括处理器内核111、高速缓存控制器121、安全环境转换器131、总线接口单元(BIU)141以及任务管理器161。
BIU 141包括密钥表142和加密设备143。BIU 141从高速缓存控制器121获取任务ID和访问类型。在这种情况下,任务ID指的是标识将要由处理器内核111执行的任务的标识信息。另外,访问类型指的是标识要访问的信息是程序还是数据的标识信息。
图2是示意图图示了密钥表142的数据结构。密钥表142包括程序密钥、数据密钥以及环境(上下文)密钥,作为分别用于对程序、数据和环境(上下文)加密/解密的密钥,以及对应的任务ID。
BIU 141用来使用密钥表142基于从高速缓存控制器121获得的任务ID和访问类型选择密钥。BIU 141还使用所选择的密钥对相应的程序或者数据加密或者解密,并将解密的指令或者数据输出到高速缓存控制器121。
高速缓存控制器121包括指令高速缓存122和数据高速缓存123。高速缓存控制器121根据来自处理器内核111的指令通过BIU 141获取指令或者数据。
指令高速缓存122接收从BIU 141获取的明文的指令。图3的示意图图示了指令高速缓存122的数据结构。指令高速缓存122存储任务ID标记和对应于指令的地址标记。任务ID标记指的是取决于对应的指令的解密的任务的标识信息。在这种情况下,地址标记指的是指示存储对应的指令的地址的信息。指令高速缓存122还基于地址或者任务ID控制对每一个指令的访问。
数据高速缓存123存储对应于从BIU 141获取的明文的数据的任务ID。数据高速缓存123的数据结构与上面参照图3描述的指令高速缓存122的数据结构相同。数据高速缓存123也基于地址或者任务ID控制对每一个指令的访问。
现在回头看图1.处理器内核111包括五站流水线112、同步设备116、当前任务ID寄存器114以及寄存器组115。
当前任务ID寄存器114存储正在五站流水线112中执行的任务的标识信息。寄存器组115具有要由正在五站流水线112中执行的任务使用的信息。
五站流水线112包括程序计数器(program counter(PC))1120、指令取出单元(instruction fetch unit(IFU))1121、解码单元(decodeunit(DEC))1122、执行单元(execution unit(EXU))1123、存储器访问单元(memory access unit(MEM))1124以及寄存器写入单元(register write unit(WBU))1125。五站流水线112还包括EXU切换标记寄存器1133、MEM切换标记寄存器1134以及WBU切换标记寄存器1135。该五站流水线112从高速缓存控制器121获取指令,并执行所获取的指令。
程序计数器1120具有指令取出(取指令)目的地的地址。指令取出单元1121取出程序计数器1120中存储的地址所指的指令。解码单元1122对取出的指令解码。执行单元1123执行被解码单元1122解码的指令。存储器访问单元1124能够基于执行单元1123的执行结果访问高速缓存控制器121,并从之载入数据。寄存器写入单元1125将数据写入寄存器组115。
在EXU切换标记寄存器1133、MEM切换标记寄存器1134和WBU切换标记寄存器1135中设置分别对应于流水线的EXU 1123、MEM 1124和WBU 1125的单元处理的任务的切换标记。切换标记具有两个值:0和1。切换标记“1”表示在切换任务的情况下,在切换之前的最后一条指令。
例如,在中断和任务恢复时,EXU切换标记寄存器1133可以被设置为切换标记“1”。另外,设置在EXU切换标记寄存器1133中的切换标记的内容与流水线连锁地移动到MEM切换标记寄存器1134和WBU切换标记寄存器1135。也就是,取决于WBU切换标记寄存器1135的切换标记是“1”还是“0 ”,可以判断中断之前的任务是否已完成。
图4图示了同步设备116的状态转换示意图。同步设备116可以在“空闲”状态411、“等待1”状态412和“等待2”状态413之间转换。同步设备116采用每一个状态下每一个所述单元的同步。
如果产生一个中断,或者发出一个任务恢复指令,则同步设备116从“空闲”,状态411转换为“等待1”状态412。此时,同步设备116请求指令取出单元1121中止指令取出。也就是,取决于中断或者任务恢复指令,同步设备116禁止指令取出单元1121读出任务。
另外,如果接收到任务执行完成通知,则同步设备116从“等待1”状态412转换到“等待2”状态413。此时,同步设备116向安全环境切换单元131输出切换寄存器组115的值的寄存器切换请求。
另外,如果接收到任务切换完成通知,则同步设备116从“等待2”状态413转换到“空闲”状态411。此时,同步设备116停止请求指令取出单元1121中止指令取出。任务管理器161也设置当前任务ID寄存器114中的切换之后的任务的任务ID。
安全环境切换单元131包括用于缓冲存储环境(上下文)的环境缓冲存储器132,以及在寄存器组115之间执行控制的环境控制器133。环境控制器133根据同步设备116作出的寄存器切换请求,读取处理器内核111的寄存器组115,并控制要存储在环境缓冲存储器132中的读出的内容。环境控制器133还将中断/返回后对应于任务的环境从环境缓冲存储器132返回到处理器内核111的寄存器组115。
任务管理器161管理由处理器内核111执行的任务。任务管理器161还在寄存器的内容被完全切换的情况下在当前任务ID寄存器114中设置任务ID。
下面描述在下述情况下处理器101的处理:当受保护任务1正在五站流水线112中执行时,产生了一个中断处理。
图5的示意图图解了五站流水线112执行受保护任务1的状态。在图5中,在左侧图示了每一个时刻程序计数器1120的值、当前任务ID寄存器114的值以及同步设备116的状态。
首先,在初始化处理中,处理器内核111使同步设备116的状态成为“空闲”状态411。如果开始执行受保护任务1,则任务管理器161在当前任务ID寄存器114中设置“1”,并在程序计数器1120中设置开始地址。这里,任务ID“1”是标识受保护任务1的任务ID。
在图5所示的时刻t1,程序计数器1120是地址E,当前任务ID寄存器114的值是1。通过访问程序计数器1120的值和当前任务ID寄存器114,指令取出单元1121向高速缓存控制器121发送一个读受保护任务1的存在于地址E的指令的读请求,并取出该指令(步骤S2111)。
然后,解码单元1122对地址D的受保护任务1的指令(在时刻t1之前的时刻取出)解码(步骤S2112)。接下来,执行单元1123执行受保护任务1的对应于地址C、在时刻t1之前的时刻解码的指令(步骤S2113)。然后,存储器访问单元1124基于受保护任务1的对应于地址B的指令(在时刻t1之前的时刻执行)的执行结果,访问存储器,从存储器读出信息(步骤S2114)。
寄存器写入单元1125基于受保护任务1的对应于地址A的指令在时刻t1之前一个时刻的执行结果,向寄存器组115中写入读出的信息。这样,如果作为流水线最后一个单元的寄存器写入单元1125的处理完成了,则受保护任务1的对应于地址A的执行完成了(步骤S2115)。
在时刻t2,程序计数器1120改变到地址F。然后,指令取出单元1121读出受保护任务的存在于地址F的指令(步骤S2121)。然后,解码单元1122、执行单元1123和存储器访问单元1124执行相应的处理,每一个指令移动到流水线的下一站(步骤S2122到步骤S2124)。寄存器写入单元1125完成受保护任务1的对应于地址B的指令的执行(步骤S2125)。类似地,在时刻t3之后,每一个单元根据程序计数器中设置的值执行任务。
图6的示意图图示了五站流水线112在下述情况下执行任务的状态:在结合图5描述的在时刻t3的处理开始之前,无论因为什么原因产生了中断。在这种情况下,假设在中断之前正在被执行的受保护任务1被称为在前任务,与所产生的中断相关的任务称为在后任务。
在这种情况下,在时刻t3,所述五站流水线112在程序计数器1120中设置OS的中断处理程序的首部地址X。另外,处理器内核111使指令取出单元1121和解码单元1122中设置的指令无效(步骤S2231、步骤S2232)。
另外,五站流水线112在对应于执行单元1123的EXU切换标记寄存器1133中设置“1”(步骤S2233)。切换标记“1”指示在前任务中的最后一条指令。另外,切换标记“1”与流水线连锁地转移到存储器访问单元1124和寄存器写入单元1125。
下面描述当产生中断时,五站流水线112、同步设备116、安全环境切换单元131和高速缓存控制器121中的每一个的处理。图7的流程图图示了当产生中断时,五站流水线112、同步设备116、安全环境切换单元131和高速缓存控制器121中的每一个的处理。
如果产生了中断,五站流水线112向同步设备116通知已经产生了中断的事实(步骤S300)。同步设备116根据图4的状态转换图从“空闲”状态411转换到“等待1”状态412(步骤S302)。同步设备116然后请求指令取出单元1121中止指令取出(步骤S304)。一直执行中止指令取出的请求,直到状态返回“空闲”状态411。
另外,当被通知了中断的产生时,任务管理器161同时更新程序计数器1120。指令取出单元1121试图执行对在后任务的指令取出请求。但是,由于同步设备116已经在步骤S304获取了中止指令取出的请求,五站流水线112等待指令取出。
由于指令取出单元1121因中止指令取出的请求而不能对在后任务执行指令取出,其用空指令填充流水线而不操作程序计数器1120,然后,在图6的时刻t3执行留在流水线中的在前任务的指令(步骤S2231、步骤S2241、步骤S2251)。在这种情况下,空指令是即使被执行也不对寄存器或者存储器产生影响的指令。
在图7中,如果留在五站流水线112中的在前任务是数据存储指令,则五站流水线112指定一个任务ID“1”,向高速缓存控制器121发出一个对数据D1的存储器写入请求(步骤S310)。高速缓存控制器121在将数据完全写入数据高速缓存123之后向处理器内核111返回确认信息(ACK)(步骤S312)。
在图6的时刻t5,对应于切换标记“1”的指令到达寄存器写入单元1125。这使得在前任务的执行被完成,从而允许寄存器组115被切换(步骤S2251到步骤S2255)。
此时,在图7中,五站流水线112向同步设备116发送一个在前任务执行完成通知(步骤S320)。同步设备116然后根据图4的状态转换图从“等待1”状态412转换到“等待2”状态413(步骤S322)。然后,同步设备116向安全环境切换单元131发送一个寄存器切换请求(步骤S324)。
安全环境切换单元131从寄存器组115读出一个值,在环境缓冲存储器132中保存一个寄存器。或者,安全环境切换单元131对所述值加密,并在外部存储器102中保存所述寄存器。安全环境切换单元131进一步向寄存器组115返回从外部存储器102读出,然后被解密的环境,或者从环境缓冲存储器132读出的环境(步骤S326)。
如果完成了寄存器的值的切换,则安全环境切换单元131向同步设备116发出一个寄存器切换完成通知(步骤S328)。同步设备116然后根据图4的状态转换图从“等待2”状态413转换到“空闲”状态411(步骤S330)。同步设备116然后请求指令取出单元1121停止对指令取出的中止(步骤S332)。此时,任务管理器161在当前任务ID寄存器114中设置“0 ”。在这种情况下,任务ID “0 ”是与中断有关的任务也就是在后任务的任务ID。
如图6中时刻t6所示,只要还有中止指令取出的请求,则指令取出单元1121继续设置空指令(步骤S2261到S2265)。另外,如果发出了切换完成通知,并且中止指令取出的请求消失了,则指令取出单元1121指定当前任务ID“0”,并向同步设备116发出对应于地址X的指令读取请求,如图6中的时刻t7所示(步骤S2271到S2275)。
如果指令取出单元1121输出对地址X的指令读出请求,则同步设备116从五站流水线112接收中止指令取出的请求(步骤S340),向高速缓存控制器121发出指令读出请求(步骤S342),如图7所示。如果高速缓存内地址X中的指令消失,则高速缓存控制器121通过BIU141从外部存储器102读取明文的指令,并将读出的指令写入到高速缓存。高速缓存控制器121然后将从高速缓存读出的指令发送到处理器内核111处的五站流水线112(步骤S344)。这样就完成了中断处理。
这样,根据某些实施例的处理器内核111将在后任务的指令取出控制在等待(standby)状态,直到在中断之前已经寄存在五站流水线112中的在前任务的执行已完成,并且在前任务的寄存器信息和在后任务的寄存器信息已切换。这可以防止其它任务试图进行寄存器访问。
另外,当寄存器信息的切换完成时,同时切换当前任务ID。这样,由于可以根据任务所对应的任务ID执行高速缓存控制,可以由高速缓存控制器121有效地执行访问控制。
这样,就可以保护受到保护的任务的寄存器信息,或者OS或任务的存储区。
另外,由于所有处理,比如针对中断请求切换寄存器的值或者切换当前任务ID,都可以由硬件执行,可以防止第三方通过OS读取寄存器信息、存储器信息等。
上面结合图6和图7描述了在产生中断的情况下的处理。在产生中断之后发出了任务的恢复指令的情况下的返回处理与前面结合图6所描述的处理相同。
另外,上面在某些实施例中,已经描述了流水线112具有五站的情况。但是,应当理解,流水线的站数不限于此,而可以大于或者小于5。
另外,上面在实施例中已经描述了处理器内核111具有一个寄存器组115。但是应当注意到,处理器内核111可以有多个寄存器组115。在处理器内核111具有多个寄存器组115的情况下,切换之后的在后任务的寄存器值可以被预先返回到一个附加寄存器组,该寄存器组可以在完全执行了在切换之前正在执行的在前任务之后被切换。这使得不需要在任务正在被切换时保存或者返回寄存器。因此,可以节约寄存器组的保存和返回所发生的中止时间。
下面描述根据其它实施例的处理器101。图8是根据其它实施例的处理器内核511的结构框图。
处理器内核511包括五站流水线512、第一寄存器组5151、第二寄存器组5152、寄存器访问控制器516以及寄存器组表514。
该五站流水线512包括保存指令取出目的地的地址的程序计数器5120、指令取出单元5121、解码单元5122、执行单元5123、存储器访问单元5124以及寄存器写入单元5125。另外,单元5121到5125分别具有任务ID寄存器5131到5135。任务ID寄存器5131到5135分别具有单元5121到5125正在执行的任务的ID信息。
单元5121到5125分别通过总线711到715连接到寄存器访问控制器516。另外,指令取出单元5121和存储器访问单元5124分别通过总线720和722连接到高速缓存控制器121。
寄存器组表514保存相互对应的任务ID和寄存器ID。在这里,寄存器ID指的是标识寄存器组的标识信息。在根据本实施例的寄存器组表514中,标识第一寄存器组5151的寄存器ID“1”对应于任务ID“0”。另外,标识第二寄存器组5152的寄存器ID“2”对应于任务ID“1”。
寄存器访问控制器516使用寄存器组表514控制单元5121到5125对第一寄存器组5151和第二寄存器组5152的访问。确切地说,寄存器访问控制器516从五站流水线512的每一个单元5121到5125接收对第一寄存器组5151和/或第二寄存器组5152的访问请求。然后,寄存器访问控制器516指定一个访问请求源的单元的任务ID寄存器中保存的任务ID。
寄存器访问控制器516从寄存器组表514中指定对应于任务ID的寄存器ID。其然后授予对访问请求源指定的寄存器ID的访问权。另外,寄存器访问控制器516禁止对在寄存器组表514中不对应的寄存器组的访问。
即使其它任务在多个单元中执行,这也可以防止每一个任务访问对应的寄存器之外的寄存器组。
下面描述在下述情况下的处理器101的处理:当在五站流水线512中执行一个受保护任务1时产生了中断处理。在这种情况下,受保护任务1也就是在前任务的任务ID被称为“1”,在产生中断之后的在后任务的任务ID被称为“0”。根据该中断的在后任务是由OS执行的任务。
图9的示意图图解了处理器内核511执行受保护任务1的状态。在图中,左侧图示了在每一个时刻程序计数器5120的值。
处理器内核511首先寄存任务ID“0”,其对应于OS或者明文,以及寄存器ID“1”,其标识寄存器组表514中的第一寄存器组5151。
如果开始受保护任务的执行,则任务管理器161在指令取出单元5121的任务ID寄存器5131中设置“1”。任务管理器161进一步寄存任务ID“1”和标识寄存器组表514中的第二寄存器组5152的寄存器ID“2”。
在图9所示的时刻t10,指令取出单元(IFU)5121向高速缓存控制器121发出对受保护任务1的存在于地址E的指令的读出请求,同时参考程序计数器5120的值(步骤S6111)。
此后,在步骤S6112到步骤S6115的每一步由每一个单元5122到5125执行的处理与已经参照图5描述的在时刻t1由每一个单元1122到1125执行的处理相同。
在步骤S6111,如果执行受保护任务1,则指令取出单元5121使用地址E和受保护任务1的任务ID“1”(保存在指令取出单元5121的任务ID寄存器5131中)向高速缓存控制器121请求指令取出。
高速缓存控制器121从指令高速缓存122或者外部存储器102读出地址E和对应于任务ID“1”的指令。其然后将读出的指令发送到处理器内核511(步骤S6111、步骤S6121)。
读出的指令和任务ID在流水线中同步。例如,从指令高速缓存122读出的指令被保存在指令取出单元5121中,对应于预定指令的任务ID被保存在指令取出单元5121的任务ID寄存器5131中。另外,如果预定指令转移到解码单元5122,则对应于该预定指令的任务ID也转移到解码单元5122的任务ID寄存器5131。
当单元5121和5125可以访问寄存器组5151和5152时,它们使用单元5121到5125的任务ID寄存器5131到5135的值执行对寄存器访问控制器516的访问请求。
寄存器访问控制器516从寄存器组表514选择对应的寄存器组和任务ID。也就是,其选择第一寄存器组5151或者第二寄存器组5152。寄存器访问控制器516还执行对所选择的寄存器组5151和5152的访问请求。
具体地说,例如,在时刻t10,对于来自解码单元5122的访问请求,寄存器访问控制器516根据存在于解码单元中的任务ID寄存器5132的值执行对寄存器组5151或者5152的访问请求(步骤S6112)。另外,对于来自寄存器写入单元5125的访问请求,寄存器访问控制器516根据存在于寄存器写入单元中的任务ID寄存器5135的值执行对寄存器组5151或者5152的访问请求(步骤S6115)。
这样,五站流水线512的单元5121到5125分别可以使用任务ID寄存器5131到5135的值访问寄存器访问控制器516。因此,即使在五站流水线512中存在其它任务时从其它任务产生了寄存器访问,单元5121到5125也能访问对应于相应的任务的寄存器组5151和5152。因此,可以防止每一个任务可以访问未被授予访问权的寄存器组。
另外,当单元5121到5125访问高速缓存控制器121时,它们通知其任务ID寄存器5131到5135的值,并执行访问请求。
具体地,例如,在时刻t10,存储器访问单元5124通知存储器访问单元中的任务ID“1”,然后访问高速缓存控制器121(步骤S6114)。
这样,五站流水线512的单元5121到5125分别使用任务ID寄存器5131到5135的值访问高速缓存控制器。因此,即使在五站流水线512中存在其它任务时从其它任务产生了存储器访问,高速缓存控制器121也能使用对应于每一任务的任务ID执行访问控制。这样,就可以防止每一任务访问未被授予访问权的高速缓存控制器的明文数据。
如上所述,当执行受保护任务1时,单元5121到5125的每一个任务ID寄存器5131到5135保存受保护任务1的任务ID“1”。这样就授予对寄存器组表514中对应于任务ID“1”的第一寄存器组5151的访问权。
另外,指令取出单元5121和存储器访问单元5124指定任务ID“1”,并执行存储器访问。例如,在时刻t10,指令取出单元5121通过总线720向高速缓存控制器121指定任务ID“1”,然后读出地址E的数据(步骤S6111)。
另外,存储器访问单元5124通过总线722向高速缓存控制器121指定任务ID“1”,然后访问地址B(步骤S6114)。
无论在哪种情况下,在任务ID“1”对应于高速缓存控制器121中的访问请求所指的地址时,读出对应的数据。另外,在指定的任务ID不与访问请求所指定的地址对应时,禁止对数据的访问。这可以防止每一个单元基于任务ID访问数据。
图10的示意图图示了在开始已经参照图9描述的在时刻t12的处理之前产生中断时,五站流水线512执行任务的状态。在这种情况下,五站流水线512使指令取出单元5121和解码单元5122的指令无效(步骤S6231、步骤S6232)。另外,任务管理器161在指令取出单元5121的任务ID寄存器5131中设置任务ID“0”。
图11的流程图图解了解码单元5122请求寄存器访问控制功能516在图10的步骤S6252读取寄存器的情况下的处理。在这种情况下,在解码单元5122中对OS任务的指令解码。解码单元5122中的任务ID寄存器5132被设置为“0”。为此,解码单元5122通过总线712指定任务ID“0”,并向寄存器访问控制功能516发送寄存器访问请求(步骤S700)。
如果接收到寄存器访问请求,则寄存器访问控制器516从寄存器组表514中指定对应于寄存器访问请求中所包括的任务ID“0”的寄存器。也就是,寄存器访问控制器516选择第一寄存器组5151。然后,寄存器访问控制器516读取第一寄存器组5151(步骤S702)。如果从第一寄存器组5151获取了寄存器信息(步骤S704),则寄存器访问控制器516将所获得的寄存器信息发送到解码单元5122(步骤S706)。
图12的流程图图解了寄存器写入单元5125在图10的时刻t13请求寄存器访问控制器516在步骤S6245在寄存器中写入的情况下的处理。此时,在寄存器写入单元5125中执行受保护任务1的指令,寄存器写入单元5125中的任务ID寄存器5135被设置为“1”。寄存器写入单元5125通过总线715向寄存器访问控制器516发送指定寄存器写入单元5125的任务ID寄存器5135中设置的任务ID“1”的寄存器访问请求(步骤S710)。
如果接收到寄存器访问请求,则寄存器访问控制器516从寄存器组表514中指定对应于寄存器访问请求中所包括的任务ID“1”的寄存器。也就是,其选择第二寄存器组5152。然后,寄存器访问控制器516执行对第二寄存器组5152的写请求(步骤S712)。
如果完成了写操作,则第二寄存器组5152向寄存器访问控制器516发送完成通知(步骤S714)。然后,寄存器访问控制器516向解码单元5122发送完成通知(步骤S716)。
这样,由于解码单元5122保存有任务ID“0”,其能够访问寄存器组表514中对应于任务ID“0”的第一寄存器组5151。但是,解码单元5122不能访问第二寄存器组5152。另外,由于寄存器写入单元5125保存有任务ID“1”,其能够访问寄存器组表514中对应于任务ID“1”的第二寄存器组5152。但是,寄存器写入单元5125不能访问第一寄存器组5151。这样,根据每一个单元的任务ID寄存器保存的任务ID的值,控制每一个单元对第一寄存器组5151和第二寄存器组5152的访问。这样,就可以防止其它任务访问寄存器信息。
图13的流程图图解了在指令取出单元5121在图10的时刻t13在步骤S6241执行指令取出的情况下的处理。此时,OS任务的一个指令正在指令取出单元5121中执行,指令取出单元5121中的任务ID寄存器5131被设置为“0”。指令取出单元5121通过总线720向高速缓存控制器121指定任务ID“0”,并执行对地址Y的访问请求(步骤S720)。
如果接收到访问请求,高速缓存控制器121在指令高速缓存122中搜索被请求访问的指令。如果在指令高速缓存122中没有保存对应于任务ID“0”的指令和地址Y(步骤S722中的“否”),则高速缓存控制器121向BIU 141指定地址Y和任务ID“0”,并执行存储器访问请求(步骤S724)。
BIU 141向外部存储器102发出对地址Y对应的指令的读请求(步骤S726)。BIU 141从外部存储器102获取指令(步骤S728),然后将所获取的指令发送到高速缓存控制器121(步骤S730)。
在本实施例中,对应于密钥表142中的任务ID“0”的指令为没有加密的明文指令,并被存储在外部存储器102中。这样,指令无需由加密设备143解密就被发送到高速缓存控制器121。另外,如果在外部存储器102中存储对应于任务ID的指令时对其进行了加密,则加密设备143对加密的指令解密,并将解密的指令作为明文指令发送给高速缓存控制器121。
高速缓存控制器121将从BIU 141接收的指令写入指令高速缓存122(步骤S732)。高速缓存控制器121然后将从指令高速缓存122读出的指令发送到处理器内核511(步骤S734)。
同时,如果判定被请求访问的指令被存储在指令高速缓存122中(步骤S722的“是”),则过程前进到步骤S734。
图14的流程图图解了存储器访问单元5124在图10的时刻t13在步骤S6244执行存储器访问的处理。此时,受保护任务1的指令正在存储器访问单元5124中执行,存储器访问单元5124中的任务ID寄存器5134被设置为“1”。存储器访问单元5124通过总线722向高速缓存控制器121指定任务ID“1”,并执行对地址P的访问请求(步骤S740)。
如果接收到了访问请求,高速缓存控制器121在数据高速缓存123中搜索被请求访问的数据。如果判定在数据高速缓存123中不存在地址P和对应于任务ID“1”的指令(步骤S742,否),则高速缓存控制器121将地址P和任务ID“1”指定给BIU 141,并执行存储器访问请求(步骤S744)。
BIU 141向外部存储器102发出对地址P对应的数据的读请求(步骤S746)。BIU 141然后从外部存储器102获得地址P对应的加密数据E[DATA(P)](步骤S748)。BIU 141从密钥表142选择对应于任务ID“1”的密钥。
然后,BIU 141对从加密设备143读出的加密数据E[DATA(P)]解密,获得明文的被解密数据DATA(P)(步骤S750)。BIU 141将获得的明文数据发送给高速缓存控制器121(步骤S752)。高速缓存控制器121将从BIU 141接收到的明文数据写入数据高速缓存123(步骤S754)。高速缓存控制器121然后将明文数据发送给处理器内核511(步骤S756)。
同时,如果判定被请求访问的数据被存储在数据高速缓存123中(步骤S742,是),则过程前进到步骤S756。从而完成图10中时刻t13的步骤S6244的处理。
这样,由于指令取出单元5121具有任务ID“0”,其能够使用任务ID“0”访问高速缓存控制器121。另外,由于存储器访问单元5124具有任务ID“1”,其能够使用任务ID“1”访问高速缓存控制器121。高速缓存控制器121根据任务ID的值控制对明文指令或者数据的访问。这样,就可以防止其它任务访问明文指令或者数据。
另外,在某些实施例中,在完成在产生中断之前已经寄存于五站流水线512中的在前任务之前,可以开始执行产生中断后的在后任务。这导致响应性的改善和处理能力的提高。
另外,上面描述了每一个单元的任务ID寄存器具有由每一个单元处理的任务的任务ID。但是应当理解,每一个单元的任务ID寄存器可以具有正在由每一个单元处理的任务的访问目的地的寄存器ID。在这种情况下,为了在存储器访问时指定任务ID,需要有一个包含寄存器ID和任务ID的任务ID表。另外,从每一个单元的寄存器ID及其任务ID的对应表中选择任务ID,执行对存储器的访问。即使在这种情况下,同样地,可以控制每一个单元对寄存器或者存储器的访问。
对于本领域普通技术人员来说,其它的优点和修改是显然的。因此,本发明的范围应较宽而不是局限于在这里所图示和描述的具体细节和代表性实施例。因此,在所附权利要求及其等效方案所限定的本发明的总体发明构思的实质范围内,可以作出各种修改。
Claims (22)
1.一种微处理器,包括:
具有多个单元、被配置来处理任务的流水线;
被配置为保存当前任务标识信息的任务标识寄存器;
被配置为保存在所述多个单元处理一个任务时使用的寄存器信息的任务寄存器;
任务完成检测器,被配置为:如果在流水线的所述多个单元中的一个执行单元执行第一任务时发出了切换到第二任务的切换指令,则检测所述流水线是否完成了已经进入了所述执行单元的第一任务的处理;
任务寄存器管理器,被配置为:如果所述任务完成检测器检测到所述流水线完成了第一任务的处理,则将任务寄存器的值切换到在执行第二任务时使用的第二寄存器信息;以及
任务管理器,被配置为:如果所述任务寄存器管理器切换到第二寄存器信息,则将任务标识信息寄存器的值切换到标识第二任务的第二任务标识信息,并允许每一个所述单元执行所述第二任务。
2.如权利要求1所述的微处理器,还包括任务设置设备,任务设置设备被配置为:在发出所述切换指令后,设定所述各单元以中止指令取出,直到所述任务寄存器管理器完全切换到第二寄存器信息。
3.如权利要求1所述的微处理器,还包括:
切换标记指定设备,被配置为:当发出切换指令时,向所述多个单元中执行指令的执行单元执行的第一任务指定切换标记;
其中,所述执行单元将所述第一任务和所述切换标记指定设备所指定的切换标记发送到下一个单元,并且,
如果流水线的最后一个单元获取了所述切换标记,则所述任务完成检测器检测第一任务的执行的完成。
4.一种被配置为在流水线结构中执行程序的微处理器,包括:
多个被配置来执行任务的单元;
被配置为以使对应的单元能够被标识的格式保存任务标识信息的任务标识信息寄存器,所述任务标识信息标识由每一个所述单元执行的任务;
任务标识信息指定设备,被配置为:如果从所述单元接收到预定的处理请求,则指定在任务标识信息寄存器中保存的用于所述单元的任务标识信息;以及
控制器,被配置为:基于所述任务标识信息指定设备指定的任务标识信息,控制根据所述处理请求的处理过程。
5.如权利要求4所述的微处理器,还包括:任务寄存器,被配置为保存在所述多个单元执行任务时使用的寄存器信息,
其中,如果从所述单元接收到对寄存器信息的访问请求,则所述任务标识信息指定设备指定保存在任务标识信息寄存器中的、所述单元的任务标识信息,并且,
基于所述任务标识信息指定设备指定的任务标识信息,所述控制器控制对保存在任务寄存器中的寄存器信息的访问。
6.如权利要求5所述的微处理器,其中,根据保存在任务寄存器中的寄存器信息,所述控制器禁止先前设置的任务标识信息之外的任务标识信息所对应的单元访问任务寄存器。
7.如权利要求6所述的微处理器,还包括:
寄存器表,其保存用来标识在任务寄存器中保存的寄存器信息的寄存器信息标识信息,以及任务标识信息;以及
多个任务寄存器,
其中,所述控制器禁止保存寄存器信息的任务寄存器访问所述寄存器表中任务标识信息所对应的寄存器信息标识信息所标识的其它寄存器信息。
8.如权利要求7所述的微处理器,还包括:寄存器表设置设备,被配置为在寄存器表中设置寄存器信息标识信息以及任务标识信息,
其中,所述寄存器表保存由所述寄存器表设置设备设置的寄存器信息标识信息和任务标识信息。
9.如权利要求4所述的微处理器,还包括:存储器,被配置为保存在所述多个单元执行任务时所使用的信息,
其中,如果从所述单元接收到对存储器的访问请求,则所述任务标识信息指定设备指定保存在任务标识信息寄存器中的、所述单元的任务标识信息,并且,
基于所述任务标识信息指定设备指定的任务标识信息,所述控制器控制对存储在存储器中的信息的访问。
10.一种被配置为在流水线结构中执行程序的微处理器,包括:
多个被配置来执行任务的单元;
被配置为以使对应的单元能够被标识的格式保存寄存器信息标识信息的寄存器信息标识寄存器,所述寄存器信息标识信息标识由每一个所述单元使用的寄存器组;
寄存器信息标识指定设备,被配置为:如果从所述单元接收到预定的处理请求,则指定在寄存器信息标识寄存器中保存的用于所述单元的寄存器信息标识信息;以及
控制器,被配置为:基于所述寄存器信息标识指定设备指定的寄存器信息标识信息,控制根据存储器访问处理请求的处理过程。
11.如权利要求10所述的微处理器,还包括:
存储器,被配置为保存在所述多个单元执行任务时使用的信息;
任务标识信息表设置设备,被配置为以对应的方式保存任务标识信息和任务寄存器;
任务标识信息表,被配置为以对应的方式保存寄存器信息标识信息和任务标识信息;以及
任务标识信息指定单元,被配置为:如果从所述单元接收到对存储器的访问请求,则指定所述任务标识信息表中的寄存器信息标识信息所对应的任务标识信息,
其中,所述控制器使用所述任务标识信息指定设备所指定的任务标识信息来控制存储器访问。
12.一种方法,包括:
在具有多个单元的流水线中处理任务;
在任务标识寄存器中保存当前任务标识信息;
在任务寄存器中保存寄存器信息;
如果在流水线的所述多个单元中的一个执行单元执行第一任务时发出了切换到第二任务的切换指令,则检测所述流水线是否完成了已经进入了所述执行单元的第一任务的处理;
将任务寄存器的值切换到在执行第二任务时使用的第二寄存器信息;以及,
将任务标识信息寄存器的值切换到标识第二任务的第二任务标识信息,并允许每一个所述单元执行所述第二任务。
13.如权利要求12所述的方法,还包括:在发出所述切换指令后,设定所述各单元以中止指令取出,直到完成向第二寄存器信息的切换。
14.如权利要求12所述的方法,还包括:
当发出切换指令时,向所述多个单元中执行指令的执行单元执行的第一任务指定切换标记;
其中,所述执行单元将所述第一任务和所述切换标记发送到下一个单元,并且,
如果流水线的最后一个单元获取了所述切换标记,则检测第一任务的执行的完成。
15.一种方法,包括:
在多个单元中执行任务;
以使对应的单元能够被标识的格式在任务标识信息寄存器中保存任务标识信息,所述任务标识信息标识由每一个所述单元执行的任务;
如果从所述单元接收到预定的处理请求,则在任务标识信息指定设备中指定在任务标识信息寄存器中保存的用于所述单元的任务标识信息;以及,
基于所述任务标识信息指定设备指定的任务标识信息,在控制器中控制根据所述处理请求的处理过程。
16.如权利要求15所述的方法,还包括:
保存在所述多个单元执行任务时使用的寄存器信息,其中,如果从所述单元接收到对寄存器信息的访问请求,则所述任务标识信息指定设备指定保存在任务标识信息寄存器中的、所述单元的任务标识信息,并且,
基于所述任务标识信息指定设备指定的任务标识信息,在所述控制器处控制对保存在任务标识信息寄存器中的寄存器信息的访问。
17.如权利要求16所述的方法,其中,在所述控制器中,根据保存在任务寄存器中的寄存器信息,禁止先前设置的任务标识信息之外的任务标识信息所对应的单元访问任务寄存器。
18.如权利要求17所述的方法,还包括:
在寄存器表中保存用来标识在任务标识信息寄存器中保存的寄存器信息的寄存器信息标识信息,以及任务标识信息;以及
提供多个任务寄存器,
其中,所述控制器禁止对保存下述寄存器信息的任务标识信息寄存器的访问:所述寄存器信息不同于寄存器表中的任务标识信息所对应的寄存器信息标识信息所标识的寄存器信息。
19.如权利要求18所述的方法,还包括:
在寄存器表设置设备中,在寄存器表中设置寄存器信息标识信息以及任务标识信息,
其中,所述寄存器表以对应的方式保存由所述寄存器表设制设备设置的寄存器信息标识信息和任务标识信息。
20.如权利要求15所述的方法,还包括:在存储器中存储在所述多个单元执行任务时所使用的信息,
其中,如果从所述单元接收到对存储器的访问请求,则所述任务标识信息指定设备指定保存在任务标识信息寄存器中的单元的任务标识信息,并且,
基于所述任务标识信息指定设备指定的任务标识信息,所述控制器控制对存储在存储器中的信息的访问。
21.一种方法,包括:
在多个单元中执行任务;
以使对应的单元能够被标识的格式在寄存器信息标识寄存器中保存寄存器信息标识信息,所述寄存器信息标识信息标识由每一个所述单元使用的寄存器组;
如果从所述单元接收到预定的处理请求,则指定在寄存器信息标识寄存器中保存的用于所述单元的寄存器信息标识信息;以及,
基于所指定的寄存器信息标识信息,在控制器中控制根据存储器访问处理请求的处理过程。
22.如权利要求21所述的方法,还包括:
在存储器中保存在所述多个单元执行任务时使用的信息;
以对应的方式保存任务标识信息和任务寄存器;
在任务标识信息表中以对应的方式保存寄存器信息标识信息和任务标识信息;以及
如果从所述单元接收到对存储器的访问请求,则在任务标识信息指定单元中指定所述任务标识信息表中的寄存器信息标识信息所对应的任务标识信息,
其中,所述控制器使用所述任务标识信息指定设备所指定的任务标识信息来控制存储器访问。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004200366 | 2004-07-07 | ||
JP2004200366A JP4204522B2 (ja) | 2004-07-07 | 2004-07-07 | マイクロプロセッサ |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1719375A true CN1719375A (zh) | 2006-01-11 |
CN100368954C CN100368954C (zh) | 2008-02-13 |
Family
ID=35542689
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005100832579A Expired - Fee Related CN100368954C (zh) | 2004-07-07 | 2005-07-07 | 微处理器 |
Country Status (3)
Country | Link |
---|---|
US (2) | US7853954B2 (zh) |
JP (1) | JP4204522B2 (zh) |
CN (1) | CN100368954C (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101479676B (zh) * | 2006-06-23 | 2012-01-25 | Khs有限责任公司 | 可更换的驱动系统 |
CN102004663B (zh) * | 2009-09-02 | 2017-03-01 | 中国银联股份有限公司 | 一种多任务并发调度的系统及方法 |
CN115904506A (zh) * | 2021-09-30 | 2023-04-04 | 想象技术有限公司 | 具有硬件流水线的处理器 |
CN115904505A (zh) * | 2021-09-30 | 2023-04-04 | 想象技术有限公司 | 具有硬件流水线的处理器 |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7529916B2 (en) * | 2006-08-16 | 2009-05-05 | Arm Limited | Data processing apparatus and method for controlling access to registers |
US7698541B1 (en) * | 2006-10-31 | 2010-04-13 | Netapp, Inc. | System and method for isochronous task switching via hardware scheduling |
JPWO2008087779A1 (ja) * | 2007-01-19 | 2010-05-06 | 日本電気株式会社 | アレイ型プロセッサおよびデータ処理システム |
JPWO2009022371A1 (ja) | 2007-08-16 | 2010-11-04 | ネットクリアスシステムズ株式会社 | タスク処理装置 |
JP4976991B2 (ja) * | 2007-11-22 | 2012-07-18 | 株式会社東芝 | 情報処理装置、プログラム検証方法及びプログラム |
JP5322620B2 (ja) | 2008-12-18 | 2013-10-23 | 株式会社東芝 | 情報処理装置、プログラム開発システム、プログラム検証方法及びプログラム |
CN101840328B (zh) * | 2010-04-15 | 2014-05-07 | 华为技术有限公司 | 一种数据处理方法及系统以及相关设备 |
JP5171907B2 (ja) * | 2010-09-13 | 2013-03-27 | 株式会社東芝 | 情報処理装置、情報処理プログラム |
US9569223B2 (en) * | 2013-02-13 | 2017-02-14 | Red Hat Israel, Ltd. | Mixed shared/non-shared memory transport for virtual machines |
US10721067B2 (en) * | 2016-08-10 | 2020-07-21 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Secure processor for multi-tenant cloud workloads |
US10417433B2 (en) | 2017-01-24 | 2019-09-17 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Encryption and decryption of data owned by a guest operating system |
GB2569275B (en) * | 2017-10-20 | 2020-06-03 | Graphcore Ltd | Time deterministic exchange |
Family Cites Families (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4442484A (en) * | 1980-10-14 | 1984-04-10 | Intel Corporation | Microprocessor memory management and protection mechanism |
JPH02226458A (ja) | 1989-02-28 | 1990-09-10 | Fujitsu Ltd | 並列処理計算機パイプライン処理方式 |
JPH04266128A (ja) | 1991-02-21 | 1992-09-22 | Nec Eng Ltd | マイクロプロセッサ |
US5428779A (en) * | 1992-11-09 | 1995-06-27 | Seiko Epson Corporation | System and method for supporting context switching within a multiprocessor system having functional blocks that generate state programs with coded register load instructions |
US5944816A (en) * | 1996-05-17 | 1999-08-31 | Advanced Micro Devices, Inc. | Microprocessor configured to execute multiple threads including interrupt service routines |
US6986141B1 (en) * | 1998-03-10 | 2006-01-10 | Agere Systems Inc. | Context controller having instruction-based time slice task switching capability and processor employing the same |
US6055630A (en) * | 1998-04-20 | 2000-04-25 | Intel Corporation | System and method for processing a plurality of branch instructions by a plurality of storage devices and pipeline units |
ATE256886T1 (de) * | 1999-05-13 | 2004-01-15 | Arc Internat U S Holdings Inc | Verfahren und vorrichtung zur verzweigungssteuerung in einem pipelineprozessor |
US6983374B2 (en) * | 2000-02-14 | 2006-01-03 | Kabushiki Kaisha Toshiba | Tamper resistant microprocessor |
JP3801833B2 (ja) | 2000-02-14 | 2006-07-26 | 株式会社東芝 | マイクロプロセッサ |
JP4067757B2 (ja) * | 2000-10-31 | 2008-03-26 | 株式会社東芝 | プログラム配布システム |
JP4153653B2 (ja) * | 2000-10-31 | 2008-09-24 | 株式会社東芝 | マイクロプロセッサおよびデータ保護方法 |
JP4074057B2 (ja) * | 2000-12-28 | 2008-04-09 | 株式会社東芝 | 耐タンパプロセッサにおける暗号化データ領域のプロセス間共有方法 |
JP4098478B2 (ja) * | 2001-01-31 | 2008-06-11 | 株式会社東芝 | マイクロプロセッサ |
US6915414B2 (en) * | 2001-07-20 | 2005-07-05 | Zilog, Inc. | Context switching pipelined microprocessor |
JP2003051819A (ja) * | 2001-08-08 | 2003-02-21 | Toshiba Corp | マイクロプロセッサ |
AU2002345613A1 (en) * | 2001-08-13 | 2003-03-03 | Allied Aerospace Industries, Inc. | Method and apparatus for testing engines |
JP3767529B2 (ja) | 2001-08-28 | 2006-04-19 | ソニー株式会社 | マイクロプロセッサ |
US7191313B2 (en) * | 2001-08-28 | 2007-03-13 | Sony Corporation | Microprocessor |
JP3866597B2 (ja) * | 2002-03-20 | 2007-01-10 | 株式会社東芝 | 内部メモリ型耐タンパプロセッサおよび秘密保護方法 |
JP2003330365A (ja) * | 2002-05-09 | 2003-11-19 | Toshiba Corp | コンテンツ配布/受信方法 |
JP2004013987A (ja) * | 2002-06-06 | 2004-01-15 | Toshiba Corp | 半導体記憶装置 |
JP4115759B2 (ja) * | 2002-07-01 | 2008-07-09 | 株式会社東芝 | 耐タンパプロセッサにおける共有ライブラリの使用方法およびそのプログラム |
JP2004178427A (ja) | 2002-11-28 | 2004-06-24 | Toshiba Microelectronics Corp | 中央処理装置 |
JP2004220070A (ja) * | 2003-01-09 | 2004-08-05 | Japan Science & Technology Agency | コンテキスト切り替え方法及び装置、中央演算装置、コンテキスト切り替えプログラム及びそれを記憶したコンピュータ読み取り可能な記憶媒体 |
JP3880933B2 (ja) * | 2003-01-21 | 2007-02-14 | 株式会社東芝 | 耐タンパマイクロプロセッサ及びキャッシュメモリ搭載プロセッサによるデータアクセス制御方法 |
JP4266128B2 (ja) | 2003-05-06 | 2009-05-20 | 株式会社日立製作所 | 電動道路 |
JP4263976B2 (ja) * | 2003-09-24 | 2009-05-13 | 株式会社東芝 | オンチップマルチコア型耐タンパプロセッサ |
JP4282472B2 (ja) * | 2003-12-26 | 2009-06-24 | 株式会社東芝 | マイクロプロセッサ |
JP4612461B2 (ja) * | 2004-06-24 | 2011-01-12 | 株式会社東芝 | マイクロプロセッサ |
JP4559794B2 (ja) * | 2004-06-24 | 2010-10-13 | 株式会社東芝 | マイクロプロセッサ |
-
2004
- 2004-07-07 JP JP2004200366A patent/JP4204522B2/ja not_active Expired - Fee Related
-
2005
- 2005-07-07 CN CNB2005100832579A patent/CN100368954C/zh not_active Expired - Fee Related
- 2005-07-07 US US11/175,296 patent/US7853954B2/en not_active Expired - Fee Related
-
2010
- 2010-11-04 US US12/926,251 patent/US8499306B2/en not_active Expired - Fee Related
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101479676B (zh) * | 2006-06-23 | 2012-01-25 | Khs有限责任公司 | 可更换的驱动系统 |
CN102004663B (zh) * | 2009-09-02 | 2017-03-01 | 中国银联股份有限公司 | 一种多任务并发调度的系统及方法 |
CN115904506A (zh) * | 2021-09-30 | 2023-04-04 | 想象技术有限公司 | 具有硬件流水线的处理器 |
CN115904505A (zh) * | 2021-09-30 | 2023-04-04 | 想象技术有限公司 | 具有硬件流水线的处理器 |
CN115904506B (zh) * | 2021-09-30 | 2024-04-02 | 想象技术有限公司 | 具有硬件流水线的处理器 |
US12112197B2 (en) | 2021-09-30 | 2024-10-08 | Imagination Technologies Limited | Processor with hardware pipeline |
Also Published As
Publication number | Publication date |
---|---|
JP2006023902A (ja) | 2006-01-26 |
CN100368954C (zh) | 2008-02-13 |
US7853954B2 (en) | 2010-12-14 |
US20060010308A1 (en) | 2006-01-12 |
US8499306B2 (en) | 2013-07-30 |
JP4204522B2 (ja) | 2009-01-07 |
US20110107336A1 (en) | 2011-05-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1719375A (zh) | 微处理器 | |
CN1270239C (zh) | 处理系统或计算机系统的任务控制方法 | |
CN1291327C (zh) | 计算机处理系统和计算机处理方法 | |
CN1279469C (zh) | 一种处理器中处理数据的方法和处理数据的系统 | |
CN1445680A (zh) | 内部存储器型抗篡改处理器及保密方法 | |
EP1062578B1 (en) | Method and apparatus for handling multiple level-triggered and edge-triggered interrupts | |
CN1184562C (zh) | 处理器的转移指令 | |
CN101529383B (zh) | 任务处理装置 | |
US20070101325A1 (en) | System and method for utilizing a remote memory to perform an interface save/restore procedure | |
CN1233016A (zh) | 具有事件相关矢量选择的历境控制器和采用其的处理器 | |
US20200050478A1 (en) | Data processing systems | |
CN1770110A (zh) | 对I/O完成进行无锁InfiniBandTM轮询的方法、系统和存储介质 | |
US20080115145A1 (en) | Method and system for a digital signal processor debugging during power transitions | |
CN1245922A (zh) | 有时间片任务切换能力的前后关系控制器及其应用处理器 | |
WO2016033755A1 (zh) | 任务处理装置、电子设备及方法 | |
TWI351863B (en) | Method and system for digital rights management in | |
WO2009090684A1 (ja) | タスク処理装置 | |
US20130191617A1 (en) | Computer system, computer system control method, computer system control program, and integrated circuit | |
CN1233015A (zh) | 具有节能模式自动进入的历境控制器以及采用其的处理器 | |
JP2009020555A (ja) | スワップ処理装置 | |
CN1558591A (zh) | 重组透明化区块密码编译方法及装置 | |
JP2015049675A (ja) | 周辺機器制御装置および情報処理装置 | |
CN1658550A (zh) | 用于执行密码操作的装置和方法 | |
CN1661958A (zh) | 区块密码功能的微处理器及方法 | |
CN1245921A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20080213 Termination date: 20170707 |