CN1254739C - 处理器和操作处理器的方法 - Google Patents
处理器和操作处理器的方法 Download PDFInfo
- Publication number
- CN1254739C CN1254739C CNB008154309A CN00815430A CN1254739C CN 1254739 C CN1254739 C CN 1254739C CN B008154309 A CNB008154309 A CN B008154309A CN 00815430 A CN00815430 A CN 00815430A CN 1254739 C CN1254739 C CN 1254739C
- Authority
- CN
- China
- Prior art keywords
- byte
- register
- instruction
- processor
- transfer
- 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.)
- Expired - Fee Related
Links
- 238000012546 transfer Methods 0.000 claims description 60
- 238000000034 method Methods 0.000 claims description 28
- 239000000203 mixture Substances 0.000 claims description 12
- 230000008878 coupling Effects 0.000 claims description 9
- 238000010168 coupling process Methods 0.000 claims description 9
- 238000005859 coupling reaction Methods 0.000 claims description 9
- 238000000605 extraction Methods 0.000 claims 2
- 230000013011 mating Effects 0.000 claims 1
- 238000012545 processing Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 239000002699 waste material Substances 0.000 description 3
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 3
- LHMQDVIHBXWNII-UHFFFAOYSA-N 3-amino-4-methoxy-n-phenylbenzamide Chemical compound C1=C(N)C(OC)=CC=C1C(=O)NC1=CC=CC=C1 LHMQDVIHBXWNII-UHFFFAOYSA-N 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000005755 formation reaction Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- QNXAVFXEJCPCJO-UHFFFAOYSA-N Diclosulam Chemical compound N=1N2C(OCC)=NC(F)=CC2=NC=1S(=O)(=O)NC1=C(Cl)C=CC=C1Cl QNXAVFXEJCPCJO-UHFFFAOYSA-N 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000003137 locomotive effect Effects 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000013519 translation 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/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
- G06F9/30038—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations using a mask
-
- 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/3004—Arrangements for executing specific machine instructions to perform operations on memory
-
- 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/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30058—Conditional branch 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/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/30087—Synchronisation or serialisation 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/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- 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/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
- G06F9/30167—Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
-
- 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/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/321—Program or instruction counter, e.g. incrementing
-
- 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/3824—Operand accessing
- G06F9/3834—Maintaining memory consistency
-
- 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/3842—Speculative instruction execution
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Multimedia (AREA)
- Advance Control (AREA)
- Multi Processors (AREA)
- Executing Machine-Instructions (AREA)
- Debugging And Monitoring (AREA)
- Image Processing (AREA)
- Stored Programmes (AREA)
- Fittings On The Vehicle Exterior For Carrying Loads, And Devices For Holding Or Mounting Articles (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Control Of Transmission Device (AREA)
- Document Processing Apparatus (AREA)
- Harvester Elements (AREA)
Abstract
描述了诸如基于平行硬件的多线程处理器(12)之类的处理器。处理器(12)可以执行一条计算机指令,它就是转移指令,该转移指令基于指定字节等于或不等于寄存器(80,78,76b)中的字节,使处理器(12)中的指令序列确定寄存器(80,78,76b)中的字节是否等于或不等于包含在指令中的指定字节值,并执行由转移指令指定的转移操作。
Description
技术领域
本发明涉及转移指令。
背景技术
并行处理是在计算机处理中关于并发事件的信息处理的有效形式。并行处理要求在计算机处理中同时执行许多程序。顺序处理或串行处理使所有任务顺序地在单个工作站上执行,而流水线处理使任务在专用的工作站上执行。无论在并行处理机,流水线或顺序处理机上执行的计算机代码都涉及转移指令,其中指令流可以在一个序列中执行而从该序列转移到不同的指令序列。
发明内容
本发明提供了一种操作处理器的方法,它包括:基于寄存器中的一字节等于或不等于指定字节值,所述指定字节是否与该字节值匹配或不匹配,引导处理器从执行第一指令顺序系列转移到不同的指令顺序系列。
本发明还提供了一种处理器,包括:一寄存器堆;一与寄存器堆耦合的算术逻辑单元,以及存储转移指令的程序控制存储器,所述转移指令使处理器:提取存储在寄存器中的一字节;确定寄存器中的该字节是否等于或不等于包含在该指令中的指定的字节值;以及基于所述指定的字节等于或不等于寄存器中的该字节引导转移操作。
本发明还提供了一种操作处理器的方法,它包括:提取存储在寄存器中的一字节;确定寄存器中的该字节是否等于或不等于包含在指令中的指定的字节值;以及基于所述指定的字节等于或不等于寄存器中的该字节进行由所述指令指定的转移操作。
附图说明
图1是使用处理器的通信系统框图。
图2是处理器的详细框图。
图3是图1和2的处理器中使用的微引擎的方框图。
图4是微引擎中的流水线图。
图5是转移指令的示例格式。
图6是通用寄存器的方框图。
具体实施方式
参考图1,通信系统10包括一处理器12。在一个实施例中,处理器是基于硬件的多线程处理器12。处理器12与一总线,例如PCI总线14、存储系统16和第二总线耦合。系统10对于能分解成平行的子任务或功能的各种任务特别有用。具体说基于硬件的多线程处理器12对于基于带宽而不是基于执行时间的任务是有用的。基于硬件的多线程处理器12有多个微引擎22,每个都具有硬件控制的线程,它们能同时激活并独立地执行任务。
基于硬件的多线程处理器12还包括一中央控制器20,帮助用于基于多线程处理器12的其它资源的加载微代码控制和执行其它通用目的的计算机类型功能,例如处理协议,意外事件、数据包处理的额外支持,其中微引擎传送该数据包以用于更详细的处理,例如边界条件。在一个实施例中,处理器20是基于Strory ArmR (Arm是英国ARM有限公司的商标)的结构。通用微处理器20有一操作系统。通过操作系统微处理器20可调用在微引擎22a-22f上操作的功能。处理器20可使用任何支持的操作系统,较佳的是实时操作系统。对于按Strory Arm结构实现的核心处理器,可使用诸如因特网上可获得的Microsoft NT实时操作系统、VXMork和□CUS,自由件操作系统。
基于硬件的多线程处理器12还包括多个功能微引擎22a-22f。功能性微引擎(微引擎)22a-22f中的每个都保持有多个硬件方式的程序计数器和与程序计算器相关的状态。实际上,在每个微引擎22a-22f上可同时有相应的多组线程在活动,然而在任何时刻仅只有一个线程实际在工作。
微引擎22a-22f每个都有能力处理4个硬件线程。微引擎22a-22f与包括存储器系统16和总线接口24和28的共享资源一起工作。存储器系统16包括同步动态随机访问存储器(SDRAM)控制器26a和静态随机访问存储器(SRAM)控制器26b。SDRAM存储器16a和SRAM控制器26a典型地用于处理大容量数据,例如处理来自网络数据包的网络有效负荷。SRAM控制器26b和SRAM存储器16b用于例如网络数据包处理,后文本处理器,或作为存储子系统,即RAID磁盘存储的处理器,或用于核心处理器20的低等待,快访问任务,例如访问查找表,存储器,等等。
处理器12包括将处理器与第二总线18耦合的总线接口28。总线28在一个实施例中把处理器12耦合到所谓FBUS(FIFO总线)。处理器12包括一个第二接口,例如PCI总线接口24。它将驻存在PCI14总线上的其它系统元件耦合到处理器12。PCI总线接口24提供了一条到SDRAM存储器的高速数据通路24a。通过该通路数据可经直接存储器访问(DMA)传送器从SDRAM快速通过PCI总线14移动。
每个功能单元被耦合到一个或多个内部总线。内部总线是双32位总线(即一条总线用于读,另一条用于写)。基于硬件的多线程处理器还被构造成使得处理器12中的内部总线的带宽之和超过耦合到处理器12外部总线的带宽。处理器12包括一内部核心处理器总线32,例如ASB总线(Advanced SystemBus),如下所述它将内部处理器核心20耦合到存储器控制器26a、26c和到一个ASB转移器30。ASB总线是所谓AMBA总线的一个子集,AMBA总线与StrongArm处理器核心一起使用。处理器12还包括一个将微引擎单元与SRAM控制器26b、ASB转换器30和FBUS接口28耦合的专用总线34。存储器总线38将存储器控制器26a、26b与总线接口24和28以及包括用于启动操作的快闪只读存储器16c的存储器系统16等耦合。
参考图2,每个微引擎22a-22f包括一仲裁器,它检查标志以确定要工作的可用线程。任何来自微引擎22a-22f的线程可访问SDRAM控制器26a,SDRAM控制器26b或FBUS接口28。存储器控制器26a和26b中的每个都包括多个队列以存储待执行的存储器引用请求。FBUS接口28支持由MAC装置支持的每个端口的发送和接收标志,以及指示何时保证服务的中断标志。FBUS接口28还包括执行来自FBUS18的进入数据包的标头处理。控制器28a提取数据包标头并在SRAM中执行微可编程源/目标/协议的散列查找(用于地址平滑)。
核心处理器20访问该共享资源。核心处理器20通过总线32与到总线接口24的SDRAM控制器26a和SRAM控制器26b直接通信。然而,为了访问微引擎22a-22f和位于任何一个微引擎22a-22f中的转移寄存器,核心处理器20经总线34上的ASB转换器30访问微引擎22a-22f。ASB转换器30可物理上驻留在FBUS接口28中,但逻辑上可不同。ASB转换器30执行在FBUS微引擎转移寄存器位置和核心处理器地址(即ASB总线)间的地址转换使得核心处理器20能访问属于微引擎22a-22f的寄存器。
虽然微引擎22可如下所述使用寄存器组交换数据,但还是提供一便笺式高速缓冲存储器27以允许微引擎写入数据到存储器以供其它微引擎读取。便笺式高速缓冲器存储器27耦合到总线34。
处理器核心20包括一由五级流水线实现的RISC核心50,在单个周期内执行一个操作数或二个操作数的单个周期移位,提供乘法支持和32位桶移位支持。这一RISC核心50是一标准Strong ArmR结构但出于性能理由它用五级流水线实现。处理器核心20还包括一16K字节的指令高速缓冲存储器52,一8K字节数据高速缓存储冲器54和一预提取流缓冲器56。核心处理器20与寄存器写和指令提取并行地执行算术操作。核心处理器20通过ARM定义的ASB总线与其它功能单元形成接口。ASB总线是32位双向总线32。
参照图3,一个示例微引擎22f包括一控制存储器70,它包括一个存储微程序的RAM。微程序可由核心处理器20加载。微引擎22f还包括控制器逻辑72。控制器逻辑包括一指令译码器73和程序计计数器(PC)单元72a-72d。四个微程序计数器72a-72d被保持在硬件中。微引擎22f还包括前后事件切换逻辑74。前后事件逻辑74接收来自每一个共享资源,例如SRAM26a,SRAM26b,或处理器IS20控制和状态寄存器等等的信息(例如,SEQ-#-EVENT-RESPONSE;FBI-EVENT-RESPONSE;SRAM-EVENT-RESPONSE;SDRAM-EVENT-RESPONSE;和ASB-EVENT-RESPONSE)。这些信息提供了关于请求的功能是否已完成的消息。基于由线程所请求的功能是否已完成和已发出完成信号,线程必须等待完成信号,并且如果线程被启动操作,则该线程被置于可用线程列表中(未示出)。微引擎22f最大可具有例如4个线程可供使用。
除了执行的线程是本地的事件信号外,微引擎22使用了全局的信号状态。使用信号状态,执行着的线程可以向所有微引擎22广播一信号状态。接收请求或可用信号、在微引擎中的任何或全部线程可根据这些信号状态转移。这些信号状态可用于确定资源的可供使用性或资源是否应该用于服务。
前后事件逻辑74为四个(4)线程仲裁。在一个实施例中,仲裁是一种轮流机制。其它技术也可使用,包括优先队列或加权公正队列。微引擎22f还包括一执行盒(EBOX)数据通路76,它包括一算术逻辑单元76a和通用目的寄存器76b。算术逻辑76a执行算术和逻辑功能以及移动功能。算术逻辑单元包括如下所述的由指令使用的条件码位。寄存器组76b具有相对大数目的通用寄存器,它们按如下所述被窗口化,使得它们能相对或绝对地被寻址。微引擎22f还包括一写转移器寄存器堆78和一读转移器寄存器堆80,这些寄存器也被窗口化使得它们能相对或绝对地被寻址。写转移器寄存器堆78是到资源的写数据所在地。类似地读转移器寄存器80是用于来自共享资源的返回数据。数据到达时或之后,来自各个共享资源,例如SRAM控制器26a,SDRAM控制器26b或核心处理器20的事件信号将被提供给前后事件仲裁器74,它随后将警示该线程数据可供使用或已被送出。两个转移寄存器组78和80通过数据通路与执行盒(EBOX)76相连。
参考图4,微引擎数据通路保持了一个5级微流水线82。这一流水线包括了微指令字82a的查找,寄存器文件地址82b的格式、从寄存器文件82c读取操作数、ALU、移位或比较操作82d、以及向寄存器82e写回结果。通过提供写回数据的旁通到ALU/移位器单元,并假设寄存器是用寄存器文件(而不是RAM)实现,微引擎可执行同步的寄存器文件读和写,这完全隐藏了写操作。
在微引擎22a-22f中被支持的指令集支持条件转移。最坏情况下的条件转移等待时间(不包括跳转)出现在转移判决是由先前微控制指令设定的条件码的结果时。等待时间如下表1所示:
表1
|1|2|3|4|5|6|7|8|
-----------------+----+----+----+----+----+----+----+----+
微存储查找 |n1|cb|n2|XX|b1|b2|b3|b4|
寄存器地址生成 | |n1|cb|XX|XX|b1|b2|b3|
寄存器文件查找 | | |n1|cb|XX|XX|b1|b2|
ALU/shifter/cc | | | |n1|cb|XX|XX|b1|
写回 | | |m2| |n1|cb|XX|XX|
其中nx是预转移微字(n1设置cc‘s),
cb是条件转移,
bx是后转移微字以及
XX是中止的微字。
如表1所示,直到周期4才设定条件码n1,并能作出转移判决(在这种情况下,使转移路经在周期5中被查找)。微引擎22f引起2个周期的转移延迟损失,因为在转移路经开始用操作b1填充流水管道前它必须终止流水管道中的操作n2和n3(直接在转移后的2个微字)。如果不采取该转移,无微字可被终止,执行将继续正常进行。微引擎具有若干机制来减小或消除有效的转移延迟等待。
微引擎支持可选的延期转移。可选的延期转移是在转移执行后并在转移生效之前微引擎允许1或2条微指令的时间(即转移生效被“延期”的时间)。因而,如果可找到有用的工作填入转移微字后浪费的周期中,则就可隐蔽转移延迟。1周延期转移示于下述表2中,其中允许在cb之后但在b1前执行n2:
表2
|1|2|3|4|5|6|7|8|
-------------------+----+----+----+----+----+----+----+----+
微存储查找 |n1|cb|n2|XX|b1|b2|b3|b4|
寄存器地址生成 | |n1|cb|n2|XX|b1|b2|b3|
寄存器文件查找 | | |n1|cb|n2|XX|b1|b2|
ALU/shifter/cc | | | |n1|cb|n2|XX|b1|
写回 | | | | |n1|cb|n2|XX|
2周延迟转移示于表3,其中在出现转移到b1之前,允许完成n2和n3。注意当条件码在转移前的微字中被设置时只允许有2周的转移延期。
表3
|1|2|3|4|5|6|7|8|9|
-------------------+----+----+----+----+----+----+----+----+----+
微存储查找 |n1|cb|n2|n3|b1|b2|b3|b4|b5|
寄存器地址生成 | |n1|cb|n2|n3|b1|b2|b3|b4|
寄存器文件查找 | | |n1|cb|n2|n3|b1|b2|b3|
ALU/shifter/cc | | | |n1|cb|n2|n3|b1|b2|
写回 | | | | |n1|cb|n2|n3|b1|
微引擎还支持条件码的计算。如果作出转移判决所基于的条件码在转移前2个或多个微字前设定,则可消除1周的转移,因为如表4所示可提前1周作出转移判决。
表4
|1|2|3|4|5|6|7|8|
------------------+----+----+----+----+----+----+----+----+
微存储查找 |n1|n2|cb|XX|b1|b2|b3|b4|
寄存器地址生成 | |n1|n2|cb|XX|b1|b2|b3|
寄存器文件查找 | | |n1|n2|cb|XX|b1|b2|
ALU/shifter/cc | | | |n1|n2|cb|XX|b1|
写回 | | | | |n1|n2|cb|XX|
在此示例中,n1设置条件码而n2未设置条件码。因而,可在周期4作出转移判决(而不是5)以消除1个周期的转移延迟。在表5的示例中1周的转移延迟和提前设置条件码被组合来完成隐蔽转移延迟。亦即,条件码(cc)在1周延迟转移前2周被设置。
表5
|1|2|3|4|5|6|7|8|
--------------------+----+----+----+----+----+----+----+----+
微存储查找 |n1|n2|cb|n3|b1|b2|b3|b4|
寄存器地址生成 | |n1|n2|cb|n3|b1|b2|b3|
寄存器文件查找 | | |n1|n2|cb|n3|b1|b2|
ALU/shifter/cc | | | |n1|n2|cb|n3|b1|
写回 | | | | |n1|n2|cb|n3|
在条件码不能早设置的情况下(即将它们设置在先于转移的微字中),微引擎支持转移推测,该推测试图将已暴露但仍保留的转移延迟减少一周。通过“推测”转移路经或顺序路经,微顺序器在它确定知道执行哪条路经前提前1周预先提取推测路经。如果推测正确,如表6所示1周的转移延迟被消除了。
表6
推测转移被采取/转移被采取
|1|2|3|4|5|6|7|8|
---------------------+----+----+----+----+----+----+----+----+
微存储查找 |n1|cb|n1|b1|b2|b3|b4|b5|
寄存器地址生成 | |n1|cb|XX|b1|b2|b3|b4|
寄存器文件查找 | | |n1|cb|XX|b1|b2|b3|
ALU/shifter/cc | | | |n1|cb|XX|b1|b2|
写回 | | | | |n1|cb|XX|b1|
如果微码正确地推测采取的转移,微引擎仍要浪费1周,如表7所示。
表7
推测转移被采取/转移不被采取
|1|2|3|4|5|6|7|8|
-------------------+----+----+----+----+----+----+----+----+
微存储查找 |n1|cb|n1|XX|n2|n3|n4|n5|
寄存器地址生成 | |n1|cb|n1|XX|n2|n3|n4|
寄存器文件查找 | | |n1|cb|n1|XX|n2|n3|
ALU/shifter/cc | | | |n1|cb|n1|XX|n2|
写回 | | | | |n1|cb|n1|XX|
然而,当微码推测的转移未被采取时,延迟损失的分布不同。对于推测转移不采取/转移不采取,如图8所示没有浪费周期。
表8
|1|2|3|4|5|6|7|8|
--------------------+----+----+----+----+----+----+----+----+
微存储查找 |n1|cb|n1|n2|n3|n4|n5|n6|
寄存器地址生成 | |n1|cb|n1|n2|n3|n4|n5|
寄存器文件查找 | | |n1|cb|n1|n2|n1|b4|
ALU/shifter/cc | | | |n1|cb|n1|n2|n3|
写回 | | | | |n1|cb|n1|n2|
然而,对于推测转移不采取/转移被采取,如表9所示有二个周期浪费。
表9
|1|2|3|4|5|6|7|8|
--------------------+----+----+----+----+----+----+----+----+
微存储查找 |n1|cb|n1|XX|b1|b2|b3|b4|
寄存器地址生成 | |n1|cb|XX|XX|b1|b2|b3|
寄存器文件查找 | | |n1|cb|XX|XX|b1|b2|
ALU/shifter/cc | | | |n1|cb|XX|XX|b1|
写回 | | | | |n1|cb|XX|XX|
微引擎可将转移推测与1周转移延迟相组合以进一步改进结果。对于推测转移采用有一周延期转移/转移被采取如表10所示。
表10
|1|2|3|4|5|6|7|8|
-------------------+----+----+----+----+----+----+----+----+
微存储查找 |n1|cb|n2|b1|b2|b3|b4|b5|
寄存器地址生成 | |n1|cb|n2|b1|b2|b3|b4|
寄存器文件查找 | | |n1|cb|n2|b1|b2|b3|
ALU/shifter/cc | | | |n1|cb|n2|b1|b2|
写回 | | | | |n1|cb|n2|b1|
在上述情况下,通过执行n2,和正确推测转移方向隐含了2周的转移延迟。
如果微码推测正确,如表11所示仍暴露了1周的转移延迟(推测转移采取1周延期转移/转移不采取)。
表11
|1|2|3|4|5|6|7|8|9|
----------------------+----+----+----+----+----+----+----+----+----+
微存储查找 |n1|cb|n2|XX|n3|n4|n5|n6|n7|
寄存器地址生成 | |n1|cb|n2|XX|n3|n4|n5|n6|
寄存器文件查找 | | |n1|cb|n2|XX|n3|n4|n5|
ALU/shifter/cc | | | |n1|cb|n2|XX|n3|n4|
写回 | | | | |n1|cb|n2|XX|n3|
如果微码正确地推测转移不被采取,则流水线以正常的未打扰情况顺序流动。如果微码不正确地推测转移未被采取,如表12所示微码再次暴露了有1周无成效的执行。
表12
推测转移未被采取/转移被采取
|1|2|3|4|5|6|7|8|9|
------------------+----+----+----+----+----+----+----+----+----+
微存储查找 |n1|cb|n2|XX|b1|b2|b3|b4|b5|
寄存器地址生成 | |n1|cb|n2|XX|b1|b2|b3|b4|
寄存器文件查找 | | |n1|cb|n2|XX|b1|b2|b3|
ALU/shifter/cc | | | |n1|cb|n2|XX|b1|b2|
写回 | | | | |n1|cb|n2|XX|b1|
其中nx是预转移微码(n1设置cc)
cb是条件转移
bx是后转移微字
XX是终止微字
在跳转指令的情况下,因为在直到跳转所在的ALU级的周期结束前不知道转移地址,引起了3个周期的额外等待延迟(表13)。
表13
|1|2|3|4|5|6|7|8|9|
------------------+----+----+----+----+----+----+----+----+----+
微存储查找 |n1|jp|XX|XX|XX|j1|j2|j3|j4|
寄存器地址生成 | |n1|jp|XX|XX|XX|j1|j2|j3|
寄存器文件查找 | | |n1|jp|XX|XX|XX|j1|j2|
ALU/shifter/cc | | | |n1|jp|XX|XX|XX|j1|
写回 | | | ||n1|jp|XX|XX|XX|
参考图5,微引擎支持各种转移指令,诸如根据条件码转移的转移指令。此外,微引擎还支持根据一字节等于或不等于指定字节而转移的转移指令。根据字节的转移指令“BR=BYTE”包括一字节_说明字段。
BR=BYTE,BR!=BYTE
如果在长字中的指定字节匹配或不匹配字节_比较_值,这一转移指令转移到指定标号处的指令。该br=byte指令预提取“转移采取”条件的指令而不是下一条件指令。br!=byte指令预提取下一顺序指令。这些指令设置了微引擎中的条件码。格式:
br=byte[reg,byte_spec,byte_compare_value,label#],optional_oken
br!=byte[reg,byte_spec,byte_compare_value,label#],optional_token
寄存器A是前后文相关转移寄存器或保持操作数的通用寄存器。字节_说明数指定了寄存器中与字节_比较_值比较的一个字节。有效的字节说明_值是0到3。0值指最右字节。
字节_比较_值是用于比较的值。有效的字节_比较_值是0到255。标号#是与指令地址对应的符号标号。字令还能包括任选项_标志。在该例子中任选项标志可被推迟一个值,该值将在执行转移操作前执行跟随在该转移指令前的一条指令。另一方面,任选项标志可被推迟二条指令。这允许用br!=byte指令实现并在执行转移操作前执行跟随在这一转移指令后的二条指令。另一方面任选项标志也可推迟三条指令,它允许用br!=byte指令实现并在执行转移操作前使处理器执行跟随在这一转移指令后的三条指令。
例子:br!=byte[reg,byte_spec,byte_compare_value,label#],defer[3]
这一指令表示一指令,该指令将寄存器操作数的对齐字节与立即的指定字节值比较。字节_说明参数表示要比较的对齐字节(0是最右字节,3是最左字节)。ALU条件码通过从指定寄存器字节减去指定值而设置。如果值匹配,采取指定的转移。有3周转移延迟与这一微码相关,既然条件码被计算出来,因而为了用有用的工作填充该等待延迟,允许有1、2和3的转移确定。寄存器可以是A或B组寄存器。
参照图6,存在二个寄存器地址空间是可被所有微引擎访问的局部可访问寄存器,和全局可访问寄存器。通用寄存器(GPR)实现为两个分开的组(A组和B组)它们的地址按逐字方式交织使得个A组寄存器有lsb=0,B寄存器lsb=1,每个组能够对各组中的二个不同字同时执行读和写。
跨越整个组A和B,寄存器组76b的32个寄存器还组织成四个窗口76b。一76b3,它们可由每个线程相对寻址。因而线程_0在77a处找到其寄存器_0(寄存器0),线程_1将在77b处找到其寄存器_0(寄存器32),线程_2将在77c处找到其寄存器_0(寄存器64),而线程_3在77d处找(寄存器96)。支持相对寻址使得多线程能使用完成相同的控制存储和位置,但访问不同的寄存器窗口并执行不同的功能。使用寄存器窗口寻址和分组寻址,便可在微引擎22f中仅使用双端口RAM,就可提供必不可少的读带宽。
这些窗口化的寄存器在从前后文切换到前后文切换的过程中不必保存数据,从而不必作前后文交换文件或堆栈的正常压入或弹出。前后文交换在这里从一个前后文文本改变为另一文本时有0周的附加开销。相对寄存器寻址将寄存器组整个通用寄存器组的地址宽度分成窗口。相对寻址允许相对于窗口起始点访问任何一个窗口。在该结构也支持绝对寻址,其中通过提供精确的寄存器地址,任何一个绝对寄存器均可被任何线程访问。
根据微字格式通用寄存器78的寻址可在2个模式中出现。这二个模式是绝对模式和相对模式。在绝对模式中,寄存器地址的寻址直接以7位源字段(a6-a0或b6-b0)指定,如下表14所示:
表14
7 6 5 4 3 2 1 0
+…+…+…+…+…+…+…+…+
A GPR: |a6|0|a5|a4|a3|a2|a1|a0| a6=0
B GPR: |b6|1|b5|b4|b3|b2|b1|b0| b6=0
SRAM/ASB:|a6|a5|a4|0|a3|a2|a1|a0| a6=1,a5=0,a4=0
SDRAM: |a6|a5|a4|0|a3|a2|a1|a0| a6=1,a5=0,a4=1
寄存器地址直接以表15中8位目标字段(d7-d0)指定:
表15
7 6 5 4 3 2 1 0
+…+…+…+…+…+…+…+…+
A GPR: |d7|d6|d5|d4|d3|d2|d1|d0| d7=0,d6=0
B GPR: |d7|d6|d5|d4|d3|d2|d1|d0| d7=0,d6=1
SRAM/ASB:|d7|d6|d5|d4|d3|d2|d1|d0| d7=1,d6=0,d5=0
SDRAM: |d7|d6|d5|d4|d3|d2|d1|d0| d7=1,d6=0,d5=1
如果<a6:a5>=1,1,<b6:b5>=1,1或<d7:d6>=1,1则低位解释为与前后文相关的地址字段(下述)。当在A、B绝对字段中指定了非相关A或B源地址时,只有SRAM/ASB和SDRAM地址空间的下半部分被寻址。实际上,读绝对SRAM/SDRAM装置具有有效地址空间;然而,由于这一限制不适用于目标字段,写SRAM/SDRAM仍使用该全地址空间。
在相对模式中对指定地址的寻址是在前后文空间中用表16中的5位源字段(a4-a0或b4-b0)定义的偏置:
表16
7 6 5 4 3 2 1 0
+…+…+…+…+…+…+…+…+
A GPR: |a4|0|前后文|a3|a2|a1|a0| a4=0
B GPR: |b7|1|前后文|b3|b2|b1|b0| b4=0
SRAM/ASB:|ab4|0|ab3|前后文|b2|b1|ab0| ab4=1,ab3=0
SDRAM: |ab4|0|ab3|前后文|b2|b1|ab0| ab4=1,ab3=1
或用表17中的6位目标字段(d5-d0)定义的偏置:
表17
7 6 5 4 3 2 1 0
+…+…+…+…+…+…+…+…+
A GPR: |d5|d4|前后文|d3|d2|d1|d0| d5=0,d4=0
B GPR: |d5|d4|前后文|d3|d2|d1|d0| d5=0,d4=1
SRAM/ASB:|d5|d4|d3|前后文|d2|d1|d0| d5=1,d4=0,d3=0
SDRAM: |d5|d4|d3|前后文|d2|d1|d0| d5=1,d4=0,d3=1
如果<d5:d4>=1,1,则目标地址不寻址到一有效寄存器,因而,没有操作数被写回。
其它实施例是处在所附权利要求书范围内。
Claims (18)
1.一种操作处理器的方法,其特征在于,它包括:
基于寄存器中的一字节等于或不等于指定字节值,所述指定字节是否与该字节值匹配或不匹配,引导处理器从执行第一指令顺序系列转移到不同的指令顺序系列。
2.如权利要求1所述的方法,其特征在于,所述转移是转移到在指定标号处的一条指令。
3.如权利要求1所述的方法,其特征在于,引导处理器转移的步骤包括:
一位_位置字段,指定了包含在寄存器中的长字中的字节。
4.如权利要求1所述的方法,其特征在于,引导处理器转移的步骤包括:
设置一任选项标志,它指定了在执行转移前要执行的跟随在该转移后的指令数目i。
5.如权利要求1所述的方法,其特征在于,引导处理器转移的步骤包括:
设置一任选项标志,它指定了在执行转移前要执行的跟随在该转移后的指令数目i,其中指令数目可以被指定为1,2或3。
6.如权利要求1所述的方法,其特征在于,所述寄存器是前后文相关的转移寄存器或保持所述操作数的通用寄存器。
7.如权利要求1所述的方法,其特征在于,引导处理器转移的步骤包括:
设置任选项标志,它指定了对于“转移采取”条件的指令的推测_转移预提取而不是下一顺序指令。
8.如权利要求1所述的方法,其特征在于,引导处理器转移的步骤包括;
设置一任选项标志,指定了在执行转移操作前要执行的跟随在该转移后的指令数目i;以及
设置第二任选项标志,它指定了对于“转移采取”条件的指令的推测_转移预提取而不是下一顺序指令。
9.如权利要求1所述的方法,其特征在于,引导步骤允许程序员指定使用寄存器的哪一位来确定转移操作。
10.如权利要求1所述的方法,其特征在于,引导步骤允许基于对处理器的数据通路中的一字节所作的计算而发生转移。
11.如权利要求1所述的方法,其特征在于,引导步骤基于匹配所述字节值的一个字节而转移,并且引导步骤预提取用于“转移采取”条件的指令。
12.如权利要求1所述的方法,其特征在于,引导步骤基于不匹配所述字节值的一个字节而转移,并且引导步骤预提取下一顺序指令。
13.如权利要求1所述的方法,其特征在于,引导步骤包括一字节_说明号,该字节_说明号指定了寄存器中要与字节_比较_值比较的字节。
14.一种处理器,其特征在于,包括:
一寄存器堆;
一与寄存器堆耦合的算术逻辑单元,以及存储转移指令的程序控制存储器,所述转移指令使处理器:
提取存储在寄存器中的一字节;
确定寄存器中的该字节是否等于或不等于包含在该指令中的指定的字节值;以及
基于所述指定的字节等于或不等于寄存器中的该字节引导转移操作。
15.如权利要求14所述的处理器,其特征在于,所述引导转移操作是转移到指定标号处的一条指令。
16.如权利要求1所述的处理器,其特征在于,位_位置字段指定了包含在寄存器中的长字中的该字节。
17.一种操作处理器的方法,其特征在于,包括:
提取存储在寄存器中的一字节;
确定寄存器中的该字节是否等于或不等于包含在指令中的指定的字节值;以及
基于所述指定的字节等于或不等于寄存器中的该字节进行由所述指令指定的转移操作。
18.如权利要求17所述的方法,其特征在于,执行所述转移操作是转移到指定标号处的一条指令。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15196199P | 1999-09-01 | 1999-09-01 | |
US60/151,961 | 1999-09-01 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1387640A CN1387640A (zh) | 2002-12-25 |
CN1254739C true CN1254739C (zh) | 2006-05-03 |
Family
ID=22540994
Family Applications (7)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB008148740A Expired - Fee Related CN1271513C (zh) | 1999-09-01 | 2000-08-31 | 转移指令的方法和处理器 |
CNB008154376A Expired - Fee Related CN1184562C (zh) | 1999-09-01 | 2000-08-31 | 处理器的转移指令 |
CNB008154309A Expired - Fee Related CN1254739C (zh) | 1999-09-01 | 2000-08-31 | 处理器和操作处理器的方法 |
CNB008154171A Expired - Fee Related CN100342326C (zh) | 1999-09-01 | 2000-08-31 | 多线程处理器和操作处理器的方法 |
CNB008144966A Expired - Fee Related CN100474236C (zh) | 1999-09-01 | 2000-08-31 | 多线程并行处理器及其维持线程执行的方法 |
CNB008151237A Expired - Fee Related CN1296818C (zh) | 1999-09-01 | 2000-08-31 | 用于多线程并行处理器的指令 |
CNB008154120A Expired - Fee Related CN100351781C (zh) | 1999-09-01 | 2000-09-01 | 多线程并行处理器结构中所用的微引擎的存储器引用指令 |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB008148740A Expired - Fee Related CN1271513C (zh) | 1999-09-01 | 2000-08-31 | 转移指令的方法和处理器 |
CNB008154376A Expired - Fee Related CN1184562C (zh) | 1999-09-01 | 2000-08-31 | 处理器的转移指令 |
Family Applications After (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB008154171A Expired - Fee Related CN100342326C (zh) | 1999-09-01 | 2000-08-31 | 多线程处理器和操作处理器的方法 |
CNB008144966A Expired - Fee Related CN100474236C (zh) | 1999-09-01 | 2000-08-31 | 多线程并行处理器及其维持线程执行的方法 |
CNB008151237A Expired - Fee Related CN1296818C (zh) | 1999-09-01 | 2000-08-31 | 用于多线程并行处理器的指令 |
CNB008154120A Expired - Fee Related CN100351781C (zh) | 1999-09-01 | 2000-09-01 | 多线程并行处理器结构中所用的微引擎的存储器引用指令 |
Country Status (10)
Country | Link |
---|---|
US (1) | US7421572B1 (zh) |
EP (7) | EP1236088B9 (zh) |
CN (7) | CN1271513C (zh) |
AT (2) | ATE475930T1 (zh) |
AU (11) | AU7097900A (zh) |
CA (7) | CA2386558C (zh) |
DE (2) | DE60044752D1 (zh) |
HK (8) | HK1046049A1 (zh) |
TW (11) | TW559729B (zh) |
WO (8) | WO2001018646A1 (zh) |
Families Citing this family (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7546444B1 (en) | 1999-09-01 | 2009-06-09 | Intel Corporation | Register set used in multithreaded parallel processor architecture |
US7681018B2 (en) | 2000-08-31 | 2010-03-16 | Intel Corporation | Method and apparatus for providing large register address space while maximizing cycletime performance for a multi-threaded register file set |
US7292586B2 (en) * | 2001-03-30 | 2007-11-06 | Nokia Inc. | Micro-programmable protocol packet parser and encapsulator |
US6785793B2 (en) | 2001-09-27 | 2004-08-31 | Intel Corporation | Method and apparatus for memory access scheduling to reduce memory access latency |
SG155038A1 (en) * | 2001-09-28 | 2009-09-30 | Consentry Networks Inc | A multi-threaded packet processing engine for stateful packet processing |
US7069442B2 (en) * | 2002-03-29 | 2006-06-27 | Intel Corporation | System and method for execution of a secured environment initialization instruction |
US7437724B2 (en) * | 2002-04-03 | 2008-10-14 | Intel Corporation | Registers for data transfers |
GB2409062C (en) | 2003-12-09 | 2007-12-11 | Advanced Risc Mach Ltd | Aliasing data processing registers |
US7027062B2 (en) * | 2004-02-27 | 2006-04-11 | Nvidia Corporation | Register based queuing for texture requests |
GB0420442D0 (en) * | 2004-09-14 | 2004-10-20 | Ignios Ltd | Debug in a multicore architecture |
US9038070B2 (en) | 2004-09-14 | 2015-05-19 | Synopsys, Inc. | Debug in a multicore architecture |
SE0403128D0 (sv) * | 2004-12-22 | 2004-12-22 | Xelerated Ab | A method for a processor, and a processor |
US8028295B2 (en) * | 2005-09-30 | 2011-09-27 | Intel Corporation | Apparatus, system, and method for persistent user-level thread |
US7882284B2 (en) * | 2007-03-26 | 2011-02-01 | Analog Devices, Inc. | Compute unit with an internal bit FIFO circuit |
US7991967B2 (en) * | 2007-06-29 | 2011-08-02 | Microsoft Corporation | Using type stability to facilitate contention management |
US9384003B2 (en) * | 2007-10-23 | 2016-07-05 | Texas Instruments Incorporated | Determining whether a branch instruction is predicted based on a capture range of a second instruction |
US9207968B2 (en) * | 2009-11-03 | 2015-12-08 | Mediatek Inc. | Computing system using single operating system to provide normal security services and high security services, and methods thereof |
CN101950277B (zh) * | 2010-09-13 | 2012-04-25 | 青岛海信信芯科技有限公司 | 用于微控制单元的数据传输方法与装置以及数据传输系统 |
GB2486737B (en) * | 2010-12-24 | 2018-09-19 | Qualcomm Technologies Int Ltd | Instruction execution |
US8880851B2 (en) * | 2011-04-07 | 2014-11-04 | Via Technologies, Inc. | Microprocessor that performs X86 ISA and arm ISA machine language program instructions by hardware translation into microinstructions executed by common execution pipeline |
US8645618B2 (en) * | 2011-07-14 | 2014-02-04 | Lsi Corporation | Flexible flash commands |
CN104011652B (zh) | 2011-12-30 | 2017-10-27 | 英特尔公司 | 打包选择处理器、方法、系统和指令 |
CN102833336A (zh) * | 2012-08-31 | 2012-12-19 | 河海大学 | 分散分布式信息采集与并发处理系统中数据分包处理方法 |
US10140129B2 (en) * | 2012-12-28 | 2018-11-27 | Intel Corporation | Processing core having shared front end unit |
CN103186438A (zh) * | 2013-04-02 | 2013-07-03 | 浪潮电子信息产业股份有限公司 | 一种提高磁盘阵列数据重构效率的方法 |
CN103226328B (zh) * | 2013-04-21 | 2015-06-24 | 中国矿业大学(北京) | 采集次数控制模式下的多线程数据采集系统同步控制方法 |
US20150127927A1 (en) * | 2013-11-01 | 2015-05-07 | Qualcomm Incorporated | Efficient hardware dispatching of concurrent functions in multicore processors, and related processor systems, methods, and computer-readable media |
KR102254099B1 (ko) | 2014-05-19 | 2021-05-20 | 삼성전자주식회사 | 메모리 스와핑 처리 방법과 이를 적용하는 호스트 장치, 스토리지 장치 및 데이터 처리 시스템 |
CN103984235B (zh) * | 2014-05-27 | 2016-05-11 | 湖南大学 | 基于c/s结构的空间机械臂控制系统软件架构及构建方法 |
US20160381050A1 (en) | 2015-06-26 | 2016-12-29 | Intel Corporation | Processors, methods, systems, and instructions to protect shadow stacks |
US10394556B2 (en) | 2015-12-20 | 2019-08-27 | Intel Corporation | Hardware apparatuses and methods to switch shadow stack pointers |
US10430580B2 (en) | 2016-02-04 | 2019-10-01 | Intel Corporation | Processor extensions to protect stacks during ring transitions |
US10838656B2 (en) | 2016-12-20 | 2020-11-17 | Mediatek Inc. | Parallel memory access to on-chip memory containing regions of different addressing schemes by threads executed on parallel processing units |
CN112506568A (zh) | 2016-12-31 | 2021-03-16 | 英特尔公司 | 用于异构计算的系统、方法和装置 |
US10387037B2 (en) | 2016-12-31 | 2019-08-20 | Intel Corporation | Microarchitecture enabling enhanced parallelism for sparse linear algebra operations having write-to-read dependencies |
CN107329812B (zh) * | 2017-06-09 | 2018-07-06 | 腾讯科技(深圳)有限公司 | 一种运行协程的方法和装置 |
CN112463327B (zh) * | 2020-11-25 | 2023-01-31 | 海光信息技术股份有限公司 | 逻辑线程快速切换的方法、装置、cpu芯片及服务器 |
TWI769080B (zh) * | 2021-09-17 | 2022-06-21 | 瑞昱半導體股份有限公司 | 用於同步動態隨機存取記憶體之控制模組及其控制方法 |
US20230205869A1 (en) * | 2021-12-23 | 2023-06-29 | Intel Corporation | Efficient exception handling in trusted execution environments |
Family Cites Families (140)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3373408A (en) | 1965-04-16 | 1968-03-12 | Rca Corp | Computer capable of switching between programs without storage and retrieval of the contents of operation registers |
US3478322A (en) | 1967-05-23 | 1969-11-11 | Ibm | Data processor employing electronically changeable control storage |
US3577189A (en) * | 1969-01-15 | 1971-05-04 | Ibm | Apparatus and method in a digital computer for allowing improved program branching with branch anticipation reduction of the number of branches, and reduction of branch delays |
BE795789A (fr) | 1972-03-08 | 1973-06-18 | Burroughs Corp | Microprogramme comportant une micro-instruction de recouvrement |
US3881173A (en) | 1973-05-14 | 1975-04-29 | Amdahl Corp | Condition code determination and data processing |
IT986411B (it) | 1973-06-05 | 1975-01-30 | Olivetti E C Spa | Sistema per trasferire il control lo delle elaborazioni da un primo livello prioritario ad un secondo livello prioritario |
FR2253415A5 (zh) | 1973-12-04 | 1975-06-27 | Cii | |
US3913074A (en) * | 1973-12-18 | 1975-10-14 | Honeywell Inf Systems | Search processing apparatus |
US4130890A (en) | 1977-06-08 | 1978-12-19 | Itt Industries, Inc. | Integrated DDC memory with bitwise erase |
US4392758A (en) * | 1978-05-22 | 1983-07-12 | International Business Machines Corporation | Underscore erase |
JPS56164464A (en) | 1980-05-21 | 1981-12-17 | Tatsuo Nogi | Parallel processing computer |
US4400770A (en) | 1980-11-10 | 1983-08-23 | International Business Machines Corporation | Cache synonym detection and handling means |
CA1179069A (en) | 1981-04-10 | 1984-12-04 | Yasushi Fukunaga | Data transmission apparatus for a multiprocessor system |
US4471426A (en) * | 1981-07-02 | 1984-09-11 | Texas Instruments Incorporated | Microcomputer which fetches two sets of microcode bits at one time |
US4454595A (en) | 1981-12-23 | 1984-06-12 | Pitney Bowes Inc. | Buffer for use with a fixed disk controller |
US4477872A (en) | 1982-01-15 | 1984-10-16 | International Business Machines Corporation | Decode history table for conditional branch instructions |
JPS6014338A (ja) * | 1983-06-30 | 1985-01-24 | インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション | 計算機システムにおける分岐機構 |
US4569016A (en) | 1983-06-30 | 1986-02-04 | International Business Machines Corporation | Mechanism for implementing one machine cycle executable mask and rotate instructions in a primitive instruction set computing system |
US4606025A (en) | 1983-09-28 | 1986-08-12 | International Business Machines Corp. | Automatically testing a plurality of memory arrays on selected memory array testers |
US4808988A (en) | 1984-04-13 | 1989-02-28 | Megatek Corporation | Digital vector generator for a graphic display system |
US4868735A (en) | 1984-05-08 | 1989-09-19 | Advanced Micro Devices, Inc. | Interruptible structured microprogrammed sixteen-bit address sequence controller |
US4742451A (en) | 1984-05-21 | 1988-05-03 | Digital Equipment Corporation | Instruction prefetch system for conditional branch instruction for central processor unit |
US5187800A (en) | 1985-01-04 | 1993-02-16 | Sun Microsystems, Inc. | Asynchronous pipelined data processing system |
US5045995A (en) | 1985-06-24 | 1991-09-03 | Vicom Systems, Inc. | Selective operation of processing elements in a single instruction multiple data stream (SIMD) computer system |
US4755966A (en) | 1985-06-28 | 1988-07-05 | Hewlett-Packard Company | Bidirectional branch prediction and optimization |
US4754398A (en) * | 1985-06-28 | 1988-06-28 | Cray Research, Inc. | System for multiprocessor communication using local and common semaphore and information registers |
US4777587A (en) | 1985-08-30 | 1988-10-11 | Advanced Micro Devices, Inc. | System for processing single-cycle branch instruction in a pipeline having relative, absolute, indirect and trap addresses |
US4847755A (en) | 1985-10-31 | 1989-07-11 | Mcc Development, Ltd. | Parallel processing method and apparatus for increasing processing throughout by parallel processing low level instructions having natural concurrencies |
US5021945A (en) | 1985-10-31 | 1991-06-04 | Mcc Development, Ltd. | Parallel processor system for processing natural concurrencies and method therefor |
US4745544A (en) | 1985-12-12 | 1988-05-17 | Texas Instruments Incorporated | Master/slave sequencing processor with forced I/O |
US4724521A (en) * | 1986-01-14 | 1988-02-09 | Veri-Fone, Inc. | Method for operating a local terminal to execute a downloaded application program |
US5297260A (en) | 1986-03-12 | 1994-03-22 | Hitachi, Ltd. | Processor having a plurality of CPUS with one CPU being normally connected to common bus |
US5170484A (en) | 1986-09-18 | 1992-12-08 | Digital Equipment Corporation | Massively parallel array processing system |
US4992934A (en) | 1986-12-15 | 1991-02-12 | United Technologies Corporation | Reduced instruction set computing apparatus and methods |
US5073864A (en) | 1987-02-10 | 1991-12-17 | Davin Computer Corporation | Parallel string processor and method for a minicomputer |
US5142683A (en) | 1987-03-09 | 1992-08-25 | Unisys Corporation | Intercomputer communication control apparatus and method |
US4866664A (en) | 1987-03-09 | 1989-09-12 | Unisys Corporation | Intercomputer communication control apparatus & method |
US5189636A (en) | 1987-11-16 | 1993-02-23 | Intel Corporation | Dual mode combining circuitry |
US4816913A (en) | 1987-11-16 | 1989-03-28 | Technology, Inc., 64 | Pixel interpolation circuitry as for a video signal processor |
US5055999A (en) * | 1987-12-22 | 1991-10-08 | Kendall Square Research Corporation | Multiprocessor digital data processing system |
US5220669A (en) | 1988-02-10 | 1993-06-15 | International Business Machines Corporation | Linkage mechanism for program isolation |
DE68913629T2 (de) | 1988-03-14 | 1994-06-16 | Unisys Corp | Satzverriegelungsprozessor für vielfachverarbeitungsdatensystem. |
US5056015A (en) | 1988-03-23 | 1991-10-08 | Du Pont Pixel Systems Limited | Architectures for serial or parallel loading of writable control store |
US5165025A (en) | 1988-10-06 | 1992-11-17 | Lass Stanley E | Interlacing the paths after a conditional branch like instruction |
US5202972A (en) | 1988-12-29 | 1993-04-13 | International Business Machines Corporation | Store buffer apparatus in a multiprocessor system |
US5155854A (en) | 1989-02-03 | 1992-10-13 | Digital Equipment Corporation | System for arbitrating communication requests using multi-pass control unit based on availability of system resources |
US5155831A (en) | 1989-04-24 | 1992-10-13 | International Business Machines Corporation | Data processing system with fast queue store interposed between store-through caches and a main memory |
US5113516A (en) * | 1989-07-31 | 1992-05-12 | North American Philips Corporation | Data repacker having controlled feedback shifters and registers for changing data format |
US5168555A (en) | 1989-09-06 | 1992-12-01 | Unisys Corporation | Initial program load control |
US5263169A (en) | 1989-11-03 | 1993-11-16 | Zoran Corporation | Bus arbitration and resource management for concurrent vector signal processor architecture |
DE3942977A1 (de) | 1989-12-23 | 1991-06-27 | Standard Elektrik Lorenz Ag | Verfahren zum wiederherstellen der richtigen zellfolge, insbesondere in einer atm-vermittlungsstelle, sowie ausgangseinheit hierfuer |
US5544337A (en) | 1989-12-29 | 1996-08-06 | Cray Research, Inc. | Vector processor having registers for control by vector resisters |
US5247671A (en) | 1990-02-14 | 1993-09-21 | International Business Machines Corporation | Scalable schedules for serial communications controller in data processing systems |
JPH0799812B2 (ja) * | 1990-03-26 | 1995-10-25 | 株式会社グラフイックス・コミュニケーション・テクノロジーズ | 信号符号化装置および信号復号化装置、並びに信号符号化復号化装置 |
US5390329A (en) | 1990-06-11 | 1995-02-14 | Cray Research, Inc. | Responding to service requests using minimal system-side context in a multiprocessor environment |
JPH0454652A (ja) * | 1990-06-25 | 1992-02-21 | Nec Corp | マイクロコンピュータ |
EP0463973A3 (en) * | 1990-06-29 | 1993-12-01 | Digital Equipment Corp | Branch prediction in high performance processor |
US5404482A (en) | 1990-06-29 | 1995-04-04 | Digital Equipment Corporation | Processor and method for preventing access to a locked memory block by recording a lock in a content addressable memory with outstanding cache fills |
US5432918A (en) | 1990-06-29 | 1995-07-11 | Digital Equipment Corporation | Method and apparatus for ordering read and write operations using conflict bits in a write queue |
US5347648A (en) | 1990-06-29 | 1994-09-13 | Digital Equipment Corporation | Ensuring write ordering under writeback cache error conditions |
DE4129614C2 (de) * | 1990-09-07 | 2002-03-21 | Hitachi Ltd | System und Verfahren zur Datenverarbeitung |
JP2508907B2 (ja) * | 1990-09-18 | 1996-06-19 | 日本電気株式会社 | 遅延分岐命令の制御方式 |
WO1992007335A1 (en) | 1990-10-19 | 1992-04-30 | Cray Research, Inc. | A scalable parallel vector computer system |
US5367678A (en) | 1990-12-06 | 1994-11-22 | The Regents Of The University Of California | Multiprocessor system having statically determining resource allocation schedule at compile time and the using of static schedule with processor signals to control the execution time dynamically |
US5394530A (en) | 1991-03-15 | 1995-02-28 | Nec Corporation | Arrangement for predicting a branch target address in the second iteration of a short loop |
EP0522513A2 (en) * | 1991-07-09 | 1993-01-13 | Hughes Aircraft Company | High speed parallel microcode program controller |
US5247675A (en) * | 1991-08-09 | 1993-09-21 | International Business Machines Corporation | Preemptive and non-preemptive scheduling and execution of program threads in a multitasking operating system |
US5255239A (en) | 1991-08-13 | 1993-10-19 | Cypress Semiconductor Corporation | Bidirectional first-in-first-out memory device with transparent and user-testable capabilities |
US5623489A (en) | 1991-09-26 | 1997-04-22 | Ipc Information Systems, Inc. | Channel allocation system for distributed digital switching network |
US5392412A (en) | 1991-10-03 | 1995-02-21 | Standard Microsystems Corporation | Data communication controller for use with a single-port data packet buffer |
US5392391A (en) | 1991-10-18 | 1995-02-21 | Lsi Logic Corporation | High performance graphics applications controller |
DE69231957T2 (de) | 1991-10-21 | 2002-04-04 | Kabushiki Kaisha Toshiba, Kawasaki | Hochgeschwindigkeitsprozessor zum fähiger Abhandeln mehrerer Unterbrechungen |
US5452437A (en) | 1991-11-18 | 1995-09-19 | Motorola, Inc. | Methods of debugging multiprocessor system |
US5357617A (en) | 1991-11-22 | 1994-10-18 | International Business Machines Corporation | Method and apparatus for substantially concurrent multiple instruction thread processing by a single pipeline processor |
US5442797A (en) | 1991-12-04 | 1995-08-15 | Casavant; Thomas L. | Latency tolerant risc-based multiple processor with event driven locality managers resulting from variable tagging |
JP2823767B2 (ja) | 1992-02-03 | 1998-11-11 | 松下電器産業株式会社 | レジスタファイル |
KR100309566B1 (ko) | 1992-04-29 | 2001-12-15 | 리패치 | 파이프라인프로세서에서다중명령어를무리짓고,그룹화된명령어를동시에발행하고,그룹화된명령어를실행시키는방법및장치 |
US5459842A (en) | 1992-06-26 | 1995-10-17 | International Business Machines Corporation | System for combining data from multiple CPU write requests via buffers and using read-modify-write operation to write the combined data to the memory |
DE4223600C2 (de) | 1992-07-17 | 1994-10-13 | Ibm | Mehrprozessor-Computersystem und Verfahren zum Übertragen von Steuerinformationen und Dateninformation zwischen wenigstens zwei Prozessoreinheiten eines Computersystems |
US5274770A (en) | 1992-07-29 | 1993-12-28 | Tritech Microelectronics International Pte Ltd. | Flexible register-based I/O microcontroller with single cycle instruction execution |
US5442756A (en) * | 1992-07-31 | 1995-08-15 | Intel Corporation | Branch prediction and resolution apparatus for a superscalar computer processor |
US5692167A (en) * | 1992-07-31 | 1997-11-25 | Intel Corporation | Method for verifying the correct processing of pipelined instructions including branch instructions and self-modifying code in a microprocessor |
US5463746A (en) | 1992-10-30 | 1995-10-31 | International Business Machines Corp. | Data processing system having prediction by using an embedded guess bit of remapped and compressed opcodes |
US5481683A (en) | 1992-10-30 | 1996-01-02 | International Business Machines Corporation | Super scalar computer architecture using remand and recycled general purpose register to manage out-of-order execution of instructions |
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 |
US5450603A (en) | 1992-12-18 | 1995-09-12 | Xerox Corporation | SIMD architecture with transfer register or value source circuitry connected to bus |
EP0627100B1 (en) | 1992-12-23 | 2000-01-05 | Centre Electronique Horloger S.A. | Multi-tasking low-power controller |
US5404464A (en) | 1993-02-11 | 1995-04-04 | Ast Research, Inc. | Bus control system and method that selectively generate an early address strobe |
US5448702A (en) | 1993-03-02 | 1995-09-05 | International Business Machines Corporation | Adapters with descriptor queue management capability |
US5522069A (en) | 1993-04-30 | 1996-05-28 | Zenith Data Systems Corporation | Symmetric multiprocessing system with unified environment and distributed system functions |
WO1994027216A1 (en) | 1993-05-14 | 1994-11-24 | Massachusetts Institute Of Technology | Multiprocessor coupling system with integrated compile and run time scheduling for parallelism |
CA2122182A1 (en) | 1993-05-20 | 1994-11-21 | Rene Leblanc | Method for rapid prototyping of programming problems |
US5363448A (en) | 1993-06-30 | 1994-11-08 | United Technologies Automotive, Inc. | Pseudorandom number generation and cryptographic authentication |
CA2107299C (en) | 1993-09-29 | 1997-02-25 | Mehrad Yasrebi | High performance machine for switched communications in a heterogenous data processing network gateway |
US5446736A (en) | 1993-10-07 | 1995-08-29 | Ast Research, Inc. | Method and apparatus for connecting a node to a wireless network using a standard protocol |
EP0650117B1 (en) | 1993-10-21 | 2002-04-10 | Sun Microsystems, Inc. | Counterflow pipeline |
DE69415126T2 (de) | 1993-10-21 | 1999-07-08 | Sun Microsystems Inc., Mountain View, Calif. | Gegenflusspipelineprozessor |
TW261676B (zh) * | 1993-11-02 | 1995-11-01 | Motorola Inc | |
US5450351A (en) | 1993-11-19 | 1995-09-12 | International Business Machines Corporation | Content addressable memory implementation with random access memory |
US6079014A (en) * | 1993-12-02 | 2000-06-20 | Intel Corporation | Processor that redirects an instruction fetch pipeline immediately upon detection of a mispredicted branch while committing prior instructions to an architectural state |
US5487159A (en) | 1993-12-23 | 1996-01-23 | Unisys Corporation | System for processing shift, mask, and merge operations in one instruction |
EP0661625B1 (en) * | 1994-01-03 | 1999-09-08 | Intel Corporation | Method and apparatus for implementing a four stage branch resolution system in a computer processor |
US5490204A (en) | 1994-03-01 | 1996-02-06 | Safco Corporation | Automated quality assessment system for cellular networks |
US5659722A (en) * | 1994-04-28 | 1997-08-19 | International Business Machines Corporation | Multiple condition code branching system in a multi-processor environment |
US5542088A (en) | 1994-04-29 | 1996-07-30 | Intergraph Corporation | Method and apparatus for enabling control of task execution |
US5544236A (en) | 1994-06-10 | 1996-08-06 | At&T Corp. | Access to unsubscribed features |
US5574922A (en) | 1994-06-17 | 1996-11-12 | Apple Computer, Inc. | Processor with sequences of processor instructions for locked memory updates |
FR2722041B1 (fr) | 1994-06-30 | 1998-01-02 | Samsung Electronics Co Ltd | Decodeur de huffman |
US5655132A (en) * | 1994-08-08 | 1997-08-05 | Rockwell International Corporation | Register file with multi-tasking support |
US5640538A (en) | 1994-08-22 | 1997-06-17 | Adaptec, Inc. | Programmable timing mark sequencer for a disk drive |
US5717760A (en) * | 1994-11-09 | 1998-02-10 | Channel One Communications, Inc. | Message protection system and method |
CN1306394C (zh) * | 1994-12-02 | 2007-03-21 | 现代电子美国公司 | 有限游程转移预测的方法 |
US5610864A (en) | 1994-12-23 | 1997-03-11 | Micron Technology, Inc. | Burst EDO memory device with maximized write cycle timing |
US5550816A (en) | 1994-12-29 | 1996-08-27 | Storage Technology Corporation | Method and apparatus for virtual switching |
US5649157A (en) | 1995-03-30 | 1997-07-15 | Hewlett-Packard Co. | Memory controller with priority queues |
JP3130446B2 (ja) * | 1995-05-10 | 2001-01-31 | 松下電器産業株式会社 | プログラム変換装置及びプロセッサ |
US5592622A (en) | 1995-05-10 | 1997-01-07 | 3Com Corporation | Network intermediate system with message passing architecture |
US5541920A (en) | 1995-06-15 | 1996-07-30 | Bay Networks, Inc. | Method and apparatus for a delayed replace mechanism for a streaming packet modification engine |
KR0180169B1 (ko) * | 1995-06-30 | 1999-05-01 | 배순훈 | 가변길이 부호기 |
US5613071A (en) | 1995-07-14 | 1997-03-18 | Intel Corporation | Method and apparatus for providing remote memory access in a distributed memory multiprocessor system |
US5933627A (en) * | 1996-07-01 | 1999-08-03 | Sun Microsystems | Thread switch on blocked load or store using instruction thread field |
US6058465A (en) * | 1996-08-19 | 2000-05-02 | Nguyen; Le Trong | Single-instruction-multiple-data processing in a multimedia signal processor |
US6061711A (en) * | 1996-08-19 | 2000-05-09 | Samsung Electronics, Inc. | Efficient context saving and restoring in a multi-tasking computing system environment |
US6105127A (en) * | 1996-08-27 | 2000-08-15 | Matsushita Electric Industrial Co., Ltd. | Multithreaded processor for processing multiple instruction streams independently of each other by flexibly controlling throughput in each instruction stream |
EP0840208B1 (en) * | 1996-10-31 | 2003-01-08 | Texas Instruments Incorporated | Method and system for single cycle execution of successive iterations of a loop |
US5857104A (en) | 1996-11-26 | 1999-01-05 | Hewlett-Packard Company | Synthetic dynamic branch prediction |
US6088788A (en) * | 1996-12-27 | 2000-07-11 | International Business Machines Corporation | Background completion of instruction and associated fetch request in a multithread processor |
US6029228A (en) * | 1996-12-31 | 2000-02-22 | Texas Instruments Incorporated | Data prefetching of a load target buffer for post-branch instructions based on past prediction accuracy's of branch predictions |
US6470376B1 (en) * | 1997-03-04 | 2002-10-22 | Matsushita Electric Industrial Co., Ltd | Processor capable of efficiently executing many asynchronous event tasks |
US5835705A (en) * | 1997-03-11 | 1998-11-10 | International Business Machines Corporation | Method and system for performance per-thread monitoring in a multithreaded processor |
US5996068A (en) * | 1997-03-26 | 1999-11-30 | Lucent Technologies Inc. | Method and apparatus for renaming registers corresponding to multiple thread identifications |
US5907702A (en) * | 1997-03-28 | 1999-05-25 | International Business Machines Corporation | Method and apparatus for decreasing thread switch latency in a multithread processor |
US6009515A (en) * | 1997-05-30 | 1999-12-28 | Sun Microsystems, Inc. | Digital data processing system including efficient arrangement to support branching within trap shadows |
GB2326253A (en) * | 1997-06-10 | 1998-12-16 | Advanced Risc Mach Ltd | Coprocessor data access control |
US6385720B1 (en) * | 1997-07-14 | 2002-05-07 | Matsushita Electric Industrial Co., Ltd. | Branch prediction method and processor using origin information, relative position information and history information |
US6243735B1 (en) * | 1997-09-01 | 2001-06-05 | Matsushita Electric Industrial Co., Ltd. | Microcontroller, data processing system and task switching control method |
US5926646A (en) * | 1997-09-11 | 1999-07-20 | Advanced Micro Devices, Inc. | Context-dependent memory-mapped registers for transparent expansion of a register file |
UA55489C2 (uk) * | 1997-10-07 | 2003-04-15 | Каналь+ Сосьєте Анонім | Пристрій для багатопотокової обробки даних (варіанти) |
US6567839B1 (en) * | 1997-10-23 | 2003-05-20 | International Business Machines Corporation | Thread switch control in a multithreaded processor system |
US6560629B1 (en) * | 1998-10-30 | 2003-05-06 | Sun Microsystems, Inc. | Multi-thread processing |
-
2000
- 2000-08-31 DE DE60044752T patent/DE60044752D1/de not_active Expired - Lifetime
- 2000-08-31 EP EP00959711A patent/EP1236088B9/en not_active Expired - Lifetime
- 2000-08-31 AU AU70979/00A patent/AU7097900A/en not_active Abandoned
- 2000-08-31 WO PCT/US2000/023992 patent/WO2001018646A1/en active Application Filing
- 2000-08-31 WO PCT/US2000/023996 patent/WO2001016716A1/en active Application Filing
- 2000-08-31 AT AT00961457T patent/ATE475930T1/de not_active IP Right Cessation
- 2000-08-31 AU AU73404/00A patent/AU7340400A/en not_active Abandoned
- 2000-08-31 CN CNB008148740A patent/CN1271513C/zh not_active Expired - Fee Related
- 2000-08-31 EP EP00959712A patent/EP1236097A4/en not_active Withdrawn
- 2000-08-31 WO PCT/US2000/024000 patent/WO2001016714A1/en active Application Filing
- 2000-08-31 WO PCT/US2000/023982 patent/WO2001016758A2/en active Application Filing
- 2000-08-31 AU AU73406/00A patent/AU7340600A/en not_active Abandoned
- 2000-08-31 AU AU73407/00A patent/AU7340700A/en not_active Abandoned
- 2000-08-31 CA CA002386558A patent/CA2386558C/en not_active Expired - Fee Related
- 2000-08-31 AU AU70986/00A patent/AU7098600A/en not_active Abandoned
- 2000-08-31 AU AU70984/00A patent/AU7098400A/en not_active Abandoned
- 2000-08-31 US US10/069,195 patent/US7421572B1/en not_active Expired - Fee Related
- 2000-08-31 CN CNB008154376A patent/CN1184562C/zh not_active Expired - Fee Related
- 2000-08-31 CA CA002383528A patent/CA2383528C/en not_active Expired - Fee Related
- 2000-08-31 AT AT00959711T patent/ATE396449T1/de not_active IP Right Cessation
- 2000-08-31 EP EP00959717A patent/EP1236092A4/en not_active Ceased
- 2000-08-31 CA CA002383531A patent/CA2383531A1/en not_active Abandoned
- 2000-08-31 WO PCT/US2000/023983 patent/WO2001016715A1/en active Application Filing
- 2000-08-31 WO PCT/US2000/023994 patent/WO2001016722A1/en active Application Filing
- 2000-08-31 CN CNB008154309A patent/CN1254739C/zh not_active Expired - Fee Related
- 2000-08-31 AU AU70985/00A patent/AU7098500A/en not_active Abandoned
- 2000-08-31 WO PCT/US2000/024006 patent/WO2001016713A1/en active Application Filing
- 2000-08-31 CA CA002383532A patent/CA2383532A1/en not_active Abandoned
- 2000-08-31 AU AU70990/00A patent/AU7099000A/en not_active Abandoned
- 2000-08-31 CN CNB008154171A patent/CN100342326C/zh not_active Expired - Fee Related
- 2000-08-31 CA CA002383526A patent/CA2383526A1/en not_active Abandoned
- 2000-08-31 EP EP00961457A patent/EP1236094B1/en not_active Expired - Lifetime
- 2000-08-31 DE DE60038976T patent/DE60038976D1/de not_active Expired - Lifetime
- 2000-08-31 CN CNB008144966A patent/CN100474236C/zh not_active Expired - Fee Related
- 2000-08-31 EP EP00959714A patent/EP1236093A4/en not_active Ceased
- 2000-08-31 CA CA002386562A patent/CA2386562A1/en not_active Abandoned
- 2000-08-31 AU AU70987/00A patent/AU7098700A/en not_active Abandoned
- 2000-08-31 EP EP00959713A patent/EP1242869B1/en not_active Expired - Lifetime
- 2000-08-31 CN CNB008151237A patent/CN1296818C/zh not_active Expired - Fee Related
- 2000-09-01 CN CNB008154120A patent/CN100351781C/zh not_active Expired - Fee Related
- 2000-09-01 TW TW089117903A patent/TW559729B/zh not_active IP Right Cessation
- 2000-09-01 AU AU73429/00A patent/AU7342900A/en not_active Abandoned
- 2000-09-01 CA CA002383540A patent/CA2383540A1/en not_active Abandoned
- 2000-09-01 WO PCT/US2000/024095 patent/WO2001016698A2/en active Application Filing
- 2000-09-01 AU AU71012/00A patent/AU7101200A/en not_active Abandoned
- 2000-09-01 EP EP00961484A patent/EP1242867A4/en not_active Withdrawn
- 2000-10-18 TW TW089117906A patent/TWI221251B/zh not_active IP Right Cessation
- 2000-10-18 TW TW089117900A patent/TW486666B/zh not_active IP Right Cessation
- 2000-10-18 TW TW089117911A patent/TW548584B/zh not_active IP Right Cessation
- 2000-10-18 TW TW089117901A patent/TWI220732B/zh not_active IP Right Cessation
- 2000-10-18 TW TW089117904A patent/TW475148B/zh not_active IP Right Cessation
- 2000-10-18 TW TW089117910A patent/TW486667B/zh not_active IP Right Cessation
- 2000-10-18 TW TW089117912A patent/TW546585B/zh not_active IP Right Cessation
- 2000-10-18 TW TW089117907A patent/TW594562B/zh not_active IP Right Cessation
- 2000-10-18 TW TW089117905A patent/TW569133B/zh not_active IP Right Cessation
- 2000-10-18 TW TW089117902A patent/TW571239B/zh not_active IP Right Cessation
-
2002
- 2002-10-21 HK HK02107606.9A patent/HK1046049A1/zh unknown
- 2002-11-07 HK HK02108082.0A patent/HK1046565A1/zh unknown
- 2002-11-07 HK HK02108083.9A patent/HK1046566A1/zh unknown
-
2003
- 2003-03-24 HK HK03102109.1A patent/HK1049902B/zh not_active IP Right Cessation
- 2003-05-15 HK HK03103439A patent/HK1051247A1/xx not_active IP Right Cessation
- 2003-06-03 HK HK03103925A patent/HK1051730A1/xx not_active IP Right Cessation
- 2003-06-03 HK HK03103924A patent/HK1051729A1/xx not_active IP Right Cessation
- 2003-06-03 HK HK03103923A patent/HK1051728A1/xx not_active IP Right Cessation
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1254739C (zh) | 处理器和操作处理器的方法 | |
CN1185592C (zh) | 并行处理器结构 | |
CN1387641A (zh) | 并行处理器中的多线程执行 | |
CN1387644A (zh) | 并行处理器体系结构的sdram控制器 | |
CN1192314C (zh) | 并行处理器结构的sram控制器 | |
CN1174313C (zh) | 多指令集的数据处理 | |
CN1121014C (zh) | 具有risc结构的八位微控制器 | |
CN1742257A (zh) | 基于识别寻址模式的双目的寄存器的数据预测机制 | |
US9904553B2 (en) | Method and apparatus for implementing dynamic portbinding within a reservation station | |
CN1117315C (zh) | 微处理机及多处理机系统 | |
CN1243311C (zh) | 实现重叠操作的方法和系统 | |
CN1291325C (zh) | 通过源/目的转换机构实现高速存储器克隆的方法和系统 | |
CN1115631C (zh) | 具有risc结构的八位微控制器 | |
CN1504902A (zh) | 在存储器部件之间保持数据一致性的方法和系统 | |
CN1940860A (zh) | 多微控制器系统任务调用方法 | |
CN1758213A (zh) | 带有共享内容的异构型并行多线程处理器(hpmt) | |
CN100339825C (zh) | 将多余的分支目标地址高速缓存项目无效化的装置及方法 | |
CN1504904A (zh) | 存储器克隆操作期间保护高速缓冲存储器线的方法和系统 | |
US11593115B2 (en) | Processor, device, and method for executing instructions | |
US9710389B2 (en) | Method and apparatus for memory aliasing detection in an out-of-order instruction execution platform | |
CN1282930C (zh) | 有效更新分支目标地址高速缓存的装置与方法 | |
CN100343799C (zh) | 产生流水线微处理器的早期状态标志的装置及方法 | |
CN111026442B (zh) | 一种cpu中用于消除程序无条件跳转开销的方法及装置 | |
CN1821953A (zh) | 可变群组组合分支目标地址快取传送每一快取列多目标地址 | |
JP2005182791A (ja) | 汎用組込みプロセッサ |
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: 20060503 Termination date: 20160831 |