CN1399736A - 用于处理器的转移指令 - Google Patents

用于处理器的转移指令 Download PDF

Info

Publication number
CN1399736A
CN1399736A CN00815417A CN00815417A CN1399736A CN 1399736 A CN1399736 A CN 1399736A CN 00815417 A CN00815417 A CN 00815417A CN 00815417 A CN00815417 A CN 00815417A CN 1399736 A CN1399736 A CN 1399736A
Authority
CN
China
Prior art keywords
instruction
transfer
processor
transfer instruction
mark
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
Application number
CN00815417A
Other languages
English (en)
Other versions
CN100342326C (zh
Inventor
G·沃尔里奇
M·J·阿迪莱塔
W·维勒
D·伯恩斯坦因
D·胡珀
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN1399736A publication Critical patent/CN1399736A/zh
Application granted granted Critical
Publication of CN100342326C publication Critical patent/CN100342326C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30018Bit or string instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30058Conditional branch instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30087Synchronisation or serialisation instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/321Program or instruction counter, e.g. incrementing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3824Operand accessing
    • G06F9/3834Maintaining memory consistency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming

Abstract

描述一种如基于处理器(12)的多线程硬件处理器。处理器(12)包括计算机指令(20),它是根据任何指令值是真或假引起指令流执行中的转移的转移指令。该指令还包括一标记,它规定在完成转移操作之前执行该转移指令后的指令的数目。

Description

用于处理器的转移指令
背景技术
本发明涉及转移指令。
并行处理是计算过程中并发事件信息处理的有效形式。并行处理要求在一台计算机中同时执行多个程序。顺序处理或串行处理将所有任务顺序地在单个工作站上完成,而管线处理使任务在专用的工作站上完成。无论在并行处理机,管线机或顺序处理机上执行的计算机程序都包括转移,其中顺序地执行一个指令流,并从该序列转移到不同的指令序列。
附图简要说明
图1是使用一个处理器的通信系统的方框图。
图2是图1的详细方框图。
图3是用于图1和2的处理器中的一个微引擎的方框图。
图4是图3的微引擎管线的方框图。
图5A-5C示出转移指令的示例性格式。
图6是通用寄存器的方框图。
描述
参照图1,通信系统10包括一处理器12。在一个实施例中,处理器是基于硬件的多线程处理器12。处理器12连接到如PCI总线14,存储系统16和第二总线18那样的总线。对于能了解成并行子任务或功能的任务系统10特别有用。具体说来,基于硬件的多线程处理器12对面向宽带而非向等待时间的任务有用。基于硬件的多线程处理器12有多个微引擎22,每个有多个硬件控制的线程,它们能同时活动并对一个任务独立地工作。
基于硬件的多线程处理器12还包括中央处理器20,它对基于硬件的多线程处理器12加载微码控制予以协助,并完成其他计算机类型的功能,如处理协议,例如,对包括处理的额外支持,其中微引擎将包送出,作如在边界条件中那样更的处理。在一个实施例中,处理器20是基于Strong ArmR(Arm是美国ARM有限公司的商标)的结构。通向处理器20具有操作系统。通过操作系统处理器20能调用功能在微引擎22a-22f上运行。处理器20能使用任何支持的操作系统,最好是实时操作系统。对作为Strong Arm结构实现的核心处理器能使用的操作系统如Microsoft NTRreal-time,VXWorks,和CUS,一个在因特网上可用的自由件(freeware)操作系统。
基于硬件的多线程处理器12还包括多个功能引擎22a-22f。功能微引擎(微引擎)22a-22f每个包含硬件的程序计数器和与这些程序计数器有关的状态。实际上,对应的多个线程组能在每个微引擎22a-22f上同时活动而在任何时刻只有一个实际在操作。
微引擎22a-22f每个具有处理4个硬件线程的能力。微引擎22a-22f带着共享资源操作,包括存储系统16和总线接口24和28。存储系统16包括同步动态随机存储器(SDRAM)控制器26a静态随机存储器(SRAM)控制器26b。SDRAM存储器16a和SDRAM控制器26a通常用于处理大量数据,如处理从网络包来的网络有效负载(Payload)。SRAM控制器26b和SRAM存储器16b用于如网络包处理,页式图象(Postscript)处理器,或作为用于如RAID盘存储的存储子系统的处理器,或用于低等待时间,快速访问任务的处理器,这些任务如访问查找表,核心处理器20的存储器等。
处理器12包括总线接口28,将处理器连接到第二总线18。在一个实施例中,总线28将处理器12连接到所谓的FBUS(FIFO总线)。处理器12包括如PCI总线接口24那样的第二接口。将在PCI总路线14上的其他系统部件连接的处理器12。PCI总线接口24提供到SDRAM存储器16a的高速数据通道24a。通过该通道,数据能借助直接存储器访问(DMA)传输,通过PCI总线14从SDRAM16a快速传递。
每个功能单元连接到一个或多个内部总线。内部总线是双向32位总线(即一根总线用于读,一根总线用于写)。基于硬件的多线程处理器12还构造成使得在处理器12中内部总线的带宽之和超过连接到处理器12的外部总线的带宽,处理器12包括一内部核心处理器总线32,如ASB总线(先进系统总线),它将处理器核心20连接到存储控制器26a、26c和如下所述的ASB翻译器。ASB总线是与Strong Arm处理器核心一起用的所谓AMBA总线的子集。处理器12还包括一专用总线34,它将微引擎单元连接到SRAM控制器26b,ASB翻译器30和FBUS接口28。存储器总线38将存储控制器26a、26b连接至总线接口24和28以及存储系统16,包括用于自引导操作等的闪存只读存储器16c
参考图2,每个微引擎22a-22f包括判优电路,它检查标志以确定在可用的线程上操作。从任何一微引擎22a-22f来的任一线程能访问SDRAM控制器26a,SRAM控制器26b或FBUS接口28。存储控制器26a和26b每个包括多个队列,存放未完成的存储器调用请求。FBUS总线28对每个MAC设备支持的端口支持发送和接收(Transnit and Receive)标志,以及指出何时要求服务的中断标志。FBUS接口28还包括控制器28a,它完成从FBUS18来的包的头标处理。控制器28a提取包的头标,并完成在SRAM中的可编微程序的源/目标/协议的散列查找(用于地址光滑)。
核心处理器20访问共享资源。核心处理器20具有通过总线32到SDRAM控制器26a,到总线接口24,和到SRAM控制器26b的直接通信。但是,为了访问微引擎22a-22f和位于任一个微引擎22a-22f的传输寄存器,核心处理器20通过ASB翻译器30,经总线34访问微引擎22a-22f。ASB翻译器30物理上驻留在FBDS接口28中,但逻辑上是分开的。ASB翻译器30实现FBUS微引擎传输寄存器位置和核心处理器地址(即ASB总线)之间的地址翻译,使核心处理器20能访问属于微引擎22a-22c的寄存器。
虽然微引擎22能如下所述使用寄存器组交换数据,还提供一便笺式存储器27,以允许微引擎写出数据到该存储器为其他微引擎读取,便笺式存储器27连接到总线34。
处理器核心20包括以5阶段管理实施在单个周期内完成一个或二个操作数的单个循环移位的RISU核心50,并提供乘法支持及32位滚动移位支持。此RISC核心50是标准的Strong ArmR结构,但为性能的原因以5阶段管线实现。
处理器核心20还包括16千字节指令高速缓存52,8千字节数据高缓存54和预取流缓冲器56。核心处理器20与存储器写及取指令并行地完成算术运算。核心处理器20通过ARM定义的ASB总线与其他功能单元接口,ASB总线是32位双向总线32。
参考图3,示例性的微引擎22f包括一个含有存储微程序的RAM的控制存储70。微程序可由核心处理器20加载。微引擎22f还包括控制器逻辑72。控制器逻辑包括指令解码器73和程序计数器(PC)单元72a-72d。这4个程序计数器72a-72d保持在硬件中。微引擎22f还包括上下文事件交换逻辑(ContextEvent Swithing Logic)74。上下文事件逻辑74从每个共享资源,如SRAM26a,SDRAM26b或控制器核心20,控制和状态寄存器等,接收消息(如SEQ-#-EVENT_RESPONSE;FBI-EVENT-RESPONSE;SRAM-EVENT-RESPONSE;SDRAM-EVENT-RESPONSE;和ASB-EVENT-RESPONSE)。这些消息提供有关被请求的功能是否已完成的,。信箱线程请求的功能是否已完成并已发完成信号,线程需要等待完成信号,且如果该线程能够操作,则将其放入右用线程表中(未示出)。微引擎22f能是有最多可用线程,如4个。
除了对执行的线程是局部的事件信号外,微引擎22利用全局的发信号状态。执行的线程能用发信号状态将一个信号状态广播到所有的微引擎22。接收请求可用(Refust Available)信号,在微引擎中的任何或所有线程能根据这些信号状态转移。这里信号状态能被用于确定一个资源的可用性,或资源是否准备服务。
上下文事件逻辑74具有对4个线程的判优。在一个实施例中,判优是一个循环机制。也能用其他技术,包括优先级排队或加数的公平排队。微引擎22f还包括执行框(EBOX)数据通道76,它包括算术逻辑单元76a和通用寄存器组76b。算术逻辑单元76a完成算术逻辑功能及功能。算术逻辑单元包括由下面描述的指令使用的条件码的位。寄存器组76b是有相当大数目的通用寄存器,它们如下述那样分窗,使得可相对及绝对编址。微引擎22f还包括写传输寄存器堆线78和读传输寄存器堆线80。这些寄存器也分窗,使得它们相对和绝对可编址。写传输寄存器堆线78是写到资源的数据的放置处。类似地,读寄存器堆线80用于双共享资源来的返回数据。数据到达之后或同时,从相应的共享资源,如SRAM控制器26a,SDRAM控制器26b或核心处理器,来的事伯被送到上下文事件判优器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置位条件码)
    cb是条件转移
    bx是转移后的微码
    XX是放弃的微码
如表1所示,直到周期4的n1条件码被设置,并作出转移决定(在此情况导致在周期5查找转移路径),微引擎22f招致个,周期的转移等待时间,因为在转移路径开始用b1充满管线以前在管线中必须放弃操作n2和n3(紧跟转移后的2个微字)。如果转移未发生,不放弃微字,执行正常继续。微引擎有若干机制来减少或消除实际的转移等待时间。
微引擎支持可选送的延迟(deferred)转移。可选的延迟是在执行转移之后而在转移生效之前,微引擎或2个微字(即转移生效在时间上“延迟”了)。,如果在转移微字之后找到有用的工作充满浪费的周期,则转移的等待时间能被隐去。在表2中示出1同期延迟转移,其中在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 |
在表3中示出2周期延迟转移,其中在发生到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个或更多的微字,则表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周期转移延迟和早设置条件码结合起来,完全隐去了转移等待时间。即,
在1周期延迟转移前2个周期设置条件码(cc)
                        表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 |
如果微码推测转移发生不正确,如表7所示,微引擎仍然只浪费1个周期。
                           表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所示有2个周期浪费。
                        表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周期转移延迟来进一步改善结果。对于推测转移发生并带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设置条件码)
cb是条件转移
bx是转移后微字
XX是放弃的微码
在跳转指令的情况,招致3个额外周期的等待时间,因为在路跳转在ALU阶段的周期结束以前转移地址未知(表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 |
按照在转移前的微字上设置的ALU条件码操作的条件转移码选择0,1或2或3周期的转移长方式。条件码在按期操作的条件转移能选择0或1周期转移延迟方式以前,设置2个或更多的微字。所有期货转移(包括上下文重新判优)能选择0或1周期的转移延迟方式。结构能设计成使得在以前的转移,跳转或上下文判优微字的转移延迟窗之中的一个上下文判优微字为非法操作。即,在某些实施例中,在管线中转移变换期间不允许发生上下文切换,因为保存老的上下文PC是过分的复杂。结构也能设计成使得在以前的转移,跳转或上下文判优微字的转移延迟窗之中的一个上下文判优微字为非法操作,以避免复杂的和可能未能预见的转移行为,
参考图5A,示出转移指定的一般格式。
转移指令
BR BR<O,BR=O  BR<O。BR i=O BR=COUT,BR>O Br!=COUT,BR>O
一组转移指令是无条件转移B根据ALU条件码转移到指定标号的指令。示例性的ALU条件码是符号,零,和进位(Carryout-cout)。
格式:br[label#],optional-token(label-标号)
      br=o[label#],optional-token可先标记
      br!=o[label#],optional-token
      br>[label#],optional-token
      br>o[label#],optional-token
      br<o[label#],optional-token
      br<=o[label#],optional-token
      br=Cout[label#],optional-token
      br!=Cout[label#],optional-token
参数labet#是对应于指令地址的符号标号。转移指令的分类可有列optional-token可选标记:延迟1条指令,延迟2条指令,和延迟3条指令,这些optional-token使得处理器要完成转移操作之前执行条,2条或3条指令,设置条件码的ALU操作在转移指令前可以出现若干指令。延迟2和延迟3不与下述的转移推测一起使用。
第四个optional-token是推测转移(guess-branch)标记,它引起处理器预取对“转移发生”条件的指令,而作下一条顺序指令。在转移指令前立即发生设置条件码的ALU操作。
BR-BCLR;BR-BSET
当指定位被置位或清除时第二组转移指令是转移到指定标号。这些指令在处理器的状态寄存器中设置条件码。指令格式是
br-bclr[reg,bit-positior,label#],
optional-token;br-bset[reg,bit-positior,label#],
optional-token
操作数字段RegA保存操作数的与上下文相关的传输寄存器或通用寄存器。Bit-positionA是指定在一长字中位的位置的数。Bito是最低位。有效的bit-positson的值是0到31。Label#是对应目标指令的地址的符号标号。
转移指令组也具有,optional-token;如上所述为延迟1指令,延迟2指令及延迟3指令转移推测。
例:br-bcln[reg,bit-position,label#],如果位被清除,延迟〔1〕转移。
BR=BYTE;Br!=BYTE
第三组转移指令是那样的指令,如果长字中的指定字节匹配byte-compare-Valne(字节—比较—值),引起处理器转移到指定标号处的指令。By=byte指令对“转移发生”条件预取指令而不预取下一条顺序指令。Br!=byte指令预取下一条顺序指令。这些指令设置条件码。
格式:
br=byte[reg,byte-spec,byte,compare-value,label#],opetional-token
br!=byte[reg,byte-spec,byte,compare-value,label#],opetional-token
Reg是存放操作数的与上下文相关的传输寄存器或通用寄存器。Byte-specNumber是指定与byte-compart-value比较的在寄存器中一字节的数。有效的byte spec值是0到3,0值对照最右边的字节。byte-compart-value是用于比较的参数。在此实施中,有效的byte-compart-value是0到255。Label#是对应于指令地址的符号。
此组转移指令也有optional-token;延迟1指令,延迟2指令,延迟3指令,和转移推测。延迟2和3只对Br!=BYTE使用。
例:br!=byte[reg,byte-spec,byte-compart-value,labe#],defer[3]
此微字指令提供将寄存器操作数的对齐字节与一即时指定字节值比较的技术,其中byte-spec表示比较的对齐字节(0是最右字节,3是最左字节)。ALU条件码通过从指定的寄存器字节减去指定的字节值而设置。如果值匹配,发生指定的转移。有3个周期转移等待时间与此指令有关,因此为了用有用的工作充满等待时间,允许0,1,2,3的转移延迟。该寄存器是A或B存储区的寄存器。
CTX-ARB
参考图5B,上下文交换指令CTX-ARB交换出在指定微引擎中当前运行的上下文到存储器,让其化上下文在那个微引擎中执行。当指定的信号激活时,上下文交换指令CTX-ARB还唤醒被交换出的上下文。上下文交换指令的格式是
ctx-arb[parameter],optional-token
“parameter—参数”字段能具有若干值之一。如果该参考数指定为“sramSwap”,上下文交换指令交换出当前的上下文并当接收到线程的SRAM信号时唤醒它。如果该参数指定为“sram swap”上下文交换指令交换出当前的上下文并当接收到线程的SDRAM信号时唤醒它。该参数也能指定为“FBI”它交换出当前的上下文并当接收到线程的FBI信号时唤醒它。FBI信号指出已完成FBICSR,Scratchpad,TFIFO,或RFIFO操作。
参数也能指定为“seg-num1-charge/seg-num2-change”,它交换出当前的上下文并当顺序数的值改变时唤醒它。参数也能指定为“inter-thread”,它交换出当前的上下文并当收到线程的内线程(Cinterthread)信号时唤醒它,或指定为“Voluntary”,如果另外线程准备运行时交换出当前的上下文,原则不交换。如果线程交换出,在某个后续上下文判优点它自动地再能运行。参数能是“anto-push”,它交换出当前上下文并当SRAM传输读寄存器数据被FBUS接口自动压入时唤醒它,参数或是“stert-receive”,它交换出当前上下文,并当在receive FIFO中的新的包数据对此线程可用处理时唤醒它。
该参数也能是“kill”它防止当前的上下文或线程,在对该线程的适当的使能位在CTX-ENABLES寄存器中被置位以前再次执行,参数能是“pci”,它交换出当前上下文并当PCI单元DMA传输已完成的信号时唤醒它。
上下文交换指令CTX-ARB能具有下述optiohal-token,延迟1规定在此调回后上下文被交换前执行一条指令。
BR=CTX,BR!=CTX
参考图5C,示出上下文转移指令BR=CTX,Br!=CTX。上下文转移指令引起处理器,如微引擎22f,根据当前执行的上下文是否为指定的上下文数而转移指令是从转移掩码字段在等于“8”或“9”时确定。上下文转移指定能具有下述格式,
格式:br=ctx[ctx,label#],optional-token
      br!=ctx[ctx,label#],optional-token
Label#是对应于指令地址的符号标号。Ctx一上下文数是一个上下文(线程)的数。在此例中,有效的Ctx值是0,1,2,3。
此指令有optional-token“defer one”(“延迟1”)指令,它导致处理器在完成转移操作前执行该指令后的指令。
BR-INP-STATE
再参考图5A,另外转移指令类在指定的状态名的状态被设置成1时或0并指出当前的处理状态。这对所有微引擎都可用。在图6中示出使用br-mask字段的格式被用于规定转移。对转移掩码=15,使用扩展的字段指定如下所列的各种信号和状态信号。
格式:br-inp-state[state-name,label#],optional-token
Label#是对应于指令地址的符号标号。State-name是状态名,如果rec-reg-avail被设置,它指出RCV-REQ FIFO具有空间可用于另外的接收请求。如果Push-protect被设置,它指出FBI单元当前正在写到SRAM传喻寄存器。此指令也具有optional-token“延迟1”,它在完成转移操作前执行此指令后的指令。
BR-!SIGNAL
另一类转移指令使得如果指定信号未认定时引起处理器转移。如果信号认定,指令清除此信号并不发生转移。在最后一个长字被写到传统寄存器的两个周期之后,SRAM和SDRAM信号被送给微引擎。在信号后一个周期,倒数第二长字被写入。当该信号被提交时,所有其他长字是有效的。程序员用此指令适当地选择读传输寄存器的时间,保证读出适当的数据。
格式:br-signal[stignal-name,label#],optional-token
Label#是对应于指令地址的符号标号。Signal-name能是sram,sdram,fbi,ihter-thread,auto-push,start-receive,seg-num1,seg-num2。
此转移指令组具有下列optional-token:defer one(延迟1)指令,defertwo(延迟令2)指令,和defer three(延迟令3)指令。这些optional token引起处理器在此指令后而在完成转移操作之前执行1,2或3条指令。设置条件码的ALU操作在转移指令前可以存在若干指令,defer two和deferthree不能与转移推测一起使用。
第4个optional token是guess-branch(推测—转移)预取。推测转移预取标记预对“转移发生”的指令而不是下一条顺序指令。此标记与延迟1指令一起用以改善性能。
例:xfer-order $ xfero $ xfer1$xfer2$xfer3
sram[read,$xfer0,op1,0,2],sig-done
wai t#:
br_!signal[sram,wait#],guess_branch
nop;delay 1 cycle before reading $xfer0
alu[gpr0,0,b,$xfer0];val id data is written to gpr0
alu[gpr1,0,b,$xfer1];valid data is written to gpr0
self#:
br[self#]
参考图6,存在的两个寄存器空间是局部可访问寄存器,和由所有微引擎可访问的全部可访问寄存器。通用寄存器(GPR)作为两个分别的存储区实施(A存储区和B存储区),它们的地址逐字交替,使A存储区寄存器具有lsb=0,而B存储区寄存器具有lsb=1(lsb是最低位)。每个存储区能对其存储区中的两个不同字完成同时的读和写。
整个存储区A和B,寄存器组76b能组织成32个寄存器的4个窗76b0-76b3,它们对每个线程相对可编址。同时,thread(线程)-0在77a(寄存器0)处找到其寄存器0,thread-1在77b(寄存器32)处找到其寄存器0,thread-2在77c(寄存器64)处找到其寄存器0,thread-3在77d(寄存器96)处找到其寄存器0。支持相对编址,使得多个线程能使用完全相同的控制存储及位置却访问不同的寄存器窗并完成不同的功能。使用寄存器窗编址和存储区编址虽然在微引擎22f中只使用双口RAM却提供必要的读带宽。
这些分窗的寄存器从上下文切换到上下文切换不需要保存数据,所以消除了上下文交换文件或堆线的正常压入和弹出操作。这里的上下文交换对于从一个上下文改变到另一个具有。周期开销。相对寄存器编址将寄存器存储区,在遍及整个通用寄存器组的宽度分成窗。相对编址允许相对于一个窗的起始点访问任何一个窗。在此结构中也支持绝对编址,其中通过提供寄存器的准确地址,由任何一个线程能访问任何一中的个绝对寄存器。
通用寄存器78的编址根据微字的格式能以2种方式出现。两种方式是绝对相对方式。在绝对方式中,寄存器地址的编址直接以7位源字段(a6-a0或b6-b0)指定,如图14所示:
                      表14
       7  6   5   4   3   2   1   0
      +---+---+---+---+---+---+---+---+
AGPR:    | 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
寄存器地址直接以8位目标字段(d7-d0)指定,见表15。
                     表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/SDRAM设备具有有效的地址空间;但是因为此限止不施加到目标字段,写SRAM/SDRAM仍然使用全地址空间。
在相对方式中,编址一指定的地址是在上下文空间偏移量,如由5位源字段(a4-a0或b4-b0)确定,表16:
                         表16
             7  6  5  4  3  2  1  0
          +…+…+…+…+…+…+…+…+
A GPR:   | a4 | 0 | 上下文 | a3 | a2 | a1 | a0 |    a4=0
B GPR:   | b4 | 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
或由6位目标字段(d5-d0)确定,表17
                           表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 (21)

1、一种计算机指令,其特征在于,包括
转移指令,所述转移指令根据任何一指定值是真或假引起指令流执行的转移并且包括一个标记,所述标记规定在所述指令后并在完成转移操作前执行指令流中指令的数目。
2、如权利要求1所述的指令,其特征在于,
所述转移指令包括规定转移推测操作的第二标记。
3、如权利要求1所述的指令,其特征在于,
所述可选的标记包括defer-i,它引起处理器在完成转移操作前执行转移指令后的第ith条指令。
4、如权利要求1的所述指令,其特征在于,
所述可选的标记能规定在完成转移操作前,执行在所述转移指令后的1,2或3条指令。
5、如权利要求1的所述指令,其特征在于,
所述指令具有如下格式:
br[label#],optional-token
其中br是转移操作,label#是转移到的地址的符号表示,optional-token规定在br转移指令指定的转移操作完成前执行的指令数目。
6、如权利要求1所述的指令,其特征在于,
由程序员或汇编程序指定一条所述可选的标记,以便可变周期能延迟转移。
7、如权利要求1所述的指令,其特征在于,
指定可选标记中的一个,以便帮助汇编程序产生更有效的码。
8、如权利要求1所述的指令,其特征在于,
所述的转移指令是无条件转移或根据ALU条件码转移到指定标号处的指令。
9、如权利要求1所述的指令,其特征在于,
当指定位被置位或清除时,所述指令是到指定标号的转移指令。
10、如权利要求1所述的指令,其特征在于,
如果一长字中的指定字节匹配或不匹配字节-比较-值,则所述的转移指令是引起处理器转移到指定标号的指令的转移指令。
11、如权利要求1所述的指令,其特征在于,
所述的转移指令是引起处理器根据当前的上下文是否为所述转移指令中的指定上下文,转移到指定标号的转移指令。
12、如权利要求1所述的指令,其特征在于,
如果指令状态名的状态是一选定值,则所述的转移指令是引起处理器转移的转移指令。
13、如权利要求1所述的指令,其特征在于,
如果一指定信号不被认定,则所述的转移指令是引起处理器转移的转移指令。
14、如权利要求1所述的指令,其特征在于,
所述的转移指令还包括一附加标记,即推测-转移标记,它使得处理器预取“转移发生”情况的指令,而不是下一条顺序的指令。
15、一种计算机程序,其特征在于,包括
使得处理器执行计算机指令完成一功能的多条指令,所述程序具有在包括不同的延迟转移标记的不同程序部分中的第二多个转移指令,其中转移标记规定在完成由第二多个转移指定的转移操作之前执行的指令数目。
16、如权利要求15所述的程序,其特征在于,
至少一条转移指令还包括另外的标记,即推测转移标记,它使得处理器预取“转移发生”情况的指令,而不是下一条顺序的指令。
17、一种操作处理器的方法,其特征在于,包括
执行转移指令,它根据任一指定值是真或假引起指令流的转移,以及
根据计算指定完成转移操作以前执行的指令数的标记,延迟执行所述转移指令的转移操作。
18、如权利要求17所述的方法,其特征在于,还包括
计算指定转移推测操作第二标记,它使得处理器预取“转移发生”情况的指令,而不是下一条顺序的指令。
19、如权利要求17所述的方法,其特征在于,
由程序员选择所述的可选标记。
20、如权利要求17所述的方法,其特征在于,
由程序员或汇编程序指定所述的可选标记,以便可变周期能延迟转移。
21、如权利要求17所述的方法,其特征在于,
指定一个可选标记,以便帮助汇编程序产生更有效的程序码。
CNB008154171A 1999-09-01 2000-08-31 多线程处理器和操作处理器的方法 Expired - Fee Related CN100342326C (zh)

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
CN1399736A true CN1399736A (zh) 2003-02-26
CN100342326C CN100342326C (zh) 2007-10-10

Family

ID=22540994

Family Applications (7)

Application Number Title Priority Date Filing Date
CNB008144966A Expired - Fee Related CN100474236C (zh) 1999-09-01 2000-08-31 多线程并行处理器及其维持线程执行的方法
CNB008154309A Expired - Fee Related CN1254739C (zh) 1999-09-01 2000-08-31 处理器和操作处理器的方法
CNB008154376A Expired - Fee Related CN1184562C (zh) 1999-09-01 2000-08-31 处理器的转移指令
CNB008148740A Expired - Fee Related CN1271513C (zh) 1999-09-01 2000-08-31 转移指令的方法和处理器
CNB008154171A Expired - Fee Related CN100342326C (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 (4)

Application Number Title Priority Date Filing Date
CNB008144966A Expired - Fee Related CN100474236C (zh) 1999-09-01 2000-08-31 多线程并行处理器及其维持线程执行的方法
CNB008154309A Expired - Fee Related CN1254739C (zh) 1999-09-01 2000-08-31 处理器和操作处理器的方法
CNB008154376A Expired - Fee Related CN1184562C (zh) 1999-09-01 2000-08-31 处理器的转移指令
CNB008148740A Expired - Fee Related CN1271513C (zh) 1999-09-01 2000-08-31 转移指令的方法和处理器

Family Applications After (2)

Application Number Title Priority Date Filing Date
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) EP1236094B1 (zh)
CN (7) CN100474236C (zh)
AT (2) ATE475930T1 (zh)
AU (11) AU7098400A (zh)
CA (7) CA2386562A1 (zh)
DE (2) DE60044752D1 (zh)
HK (8) HK1046049A1 (zh)
TW (11) TW559729B (zh)
WO (8) WO2001016714A1 (zh)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
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
US9038070B2 (en) 2004-09-14 2015-05-19 Synopsys, Inc. Debug in a multicore architecture
GB0420442D0 (en) * 2004-09-14 2004-10-20 Ignios Ltd 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
PL3563235T3 (pl) 2016-12-31 2023-03-13 Intel Corporation Systemy, sposoby i aparaty do obliczania heterogenicznego
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)

* Cited by examiner, † Cited by third party
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
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
JPS6014338A (ja) * 1983-06-30 1985-01-24 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション 計算機システムにおける分岐機構
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
US4754398A (en) * 1985-06-28 1988-06-28 Cray Research, Inc. System for multiprocessor communication using local and common semaphore and information registers
US4755966A (en) 1985-06-28 1988-07-05 Hewlett-Packard Company Bidirectional branch prediction and optimization
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
US5021945A (en) 1985-10-31 1991-06-04 Mcc Development, Ltd. Parallel processor system for processing natural concurrencies and method therefor
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
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
US4866664A (en) 1987-03-09 1989-09-12 Unisys Corporation Intercomputer communication control apparatus & method
US5142683A (en) 1987-03-09 1992-08-25 Unisys Corporation Intercomputer communication control apparatus and 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
JP2572136B2 (ja) 1988-03-14 1997-01-16 ユニシス コーポレーシヨン 多重処理データシステムにおけるロック制御方法
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 マイクロコンピュータ
US5347648A (en) 1990-06-29 1994-09-13 Digital Equipment Corporation Ensuring write ordering under writeback cache error conditions
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
DE4129614C2 (de) * 1990-09-07 2002-03-21 Hitachi Ltd System und Verfahren zur Datenverarbeitung
JP2508907B2 (ja) * 1990-09-18 1996-06-19 日本電気株式会社 遅延分岐命令の制御方式
CA2094269A1 (en) 1990-10-19 1992-04-20 Steven M. Oberlin 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 Toshiba Kawasaki Kk 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
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
US5442756A (en) 1992-07-31 1995-08-15 Intel Corporation Branch prediction and resolution apparatus for a superscalar computer processor
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
DE69415126T2 (de) 1993-10-21 1999-07-08 Sun Microsystems Inc Gegenflusspipelineprozessor
EP0650117B1 (en) 1993-10-21 2002-04-10 Sun Microsystems, Inc. Counterflow pipeline
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
ATE184407T1 (de) * 1994-01-03 1999-09-15 Intel Corp Verfahren und vorrichtung zum implementieren eines vierstufigen verzweigungsauflosungssystem in einem rechnerprozessor
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
WO1996017295A1 (en) * 1994-12-02 1996-06-06 Hyundai Electronics America, Inc. Limited run branch prediction
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
EP1291765B1 (en) * 1996-08-27 2009-12-30 Panasonic Corporation Multithreaded processor for processing multiple instruction streams independently of each other by flexibly controlling throughput in each instruction stream
US5951679A (en) * 1996-10-31 1999-09-14 Texas Instruments Incorporated Microprocessor circuits, systems, and methods for issuing successive iterations of a short backward branch loop in a single cycle
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
DE69841526D1 (de) * 1997-03-04 2010-04-15 Panasonic Corp Zur effizienten Ausführung vieler asynchronen Ereignisaufgaben geeigneter Prozessor
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

Also Published As

Publication number Publication date
EP1242867A2 (en) 2002-09-25
AU7098700A (en) 2001-03-26
AU7099000A (en) 2001-03-26
WO2001016758A2 (en) 2001-03-08
EP1236088A1 (en) 2002-09-04
AU7342900A (en) 2001-03-26
EP1236094B1 (en) 2010-07-28
TWI221251B (en) 2004-09-21
CA2383528C (en) 2008-06-17
CA2386558C (en) 2010-03-09
CA2383531A1 (en) 2001-03-08
AU7340700A (en) 2001-03-26
WO2001018646A1 (en) 2001-03-15
HK1046566A1 (zh) 2003-01-17
WO2001016715A9 (en) 2002-09-12
EP1236094A1 (en) 2002-09-04
AU7340600A (en) 2001-04-10
EP1236093A4 (en) 2006-07-26
WO2001016698A2 (en) 2001-03-08
WO2001016716A1 (en) 2001-03-08
EP1236097A4 (en) 2006-08-02
DE60044752D1 (de) 2010-09-09
CN1387640A (zh) 2002-12-25
EP1236088B9 (en) 2008-10-08
TW475148B (en) 2002-02-01
CA2383532A1 (en) 2001-03-08
ATE475930T1 (de) 2010-08-15
HK1051729A1 (en) 2003-08-15
CN100342326C (zh) 2007-10-10
CN1387642A (zh) 2002-12-25
EP1236088B1 (en) 2008-05-21
AU7098400A (en) 2001-03-26
TWI220732B (en) 2004-09-01
AU7098500A (en) 2001-03-26
EP1242869B1 (en) 2011-11-16
CA2383526A1 (en) 2001-03-15
CA2383528A1 (en) 2001-03-08
WO2001016698A3 (en) 2002-01-17
EP1242869A4 (en) 2006-10-25
CA2386562A1 (en) 2001-03-08
TW546585B (en) 2003-08-11
TW559729B (en) 2003-11-01
EP1236092A1 (en) 2002-09-04
AU7098600A (en) 2001-03-26
AU7101200A (en) 2001-03-26
HK1049902B (zh) 2005-08-26
TW594562B (en) 2004-06-21
HK1051728A1 (en) 2003-08-15
CN1402846A (zh) 2003-03-12
HK1051730A1 (en) 2003-08-15
TW569133B (en) 2004-01-01
WO2001016713A1 (en) 2001-03-08
EP1236092A4 (en) 2006-07-26
EP1242869A1 (en) 2002-09-25
TW571239B (en) 2004-01-11
HK1046565A1 (zh) 2003-01-17
DE60038976D1 (de) 2008-07-03
EP1236094A4 (en) 2006-04-19
HK1049902A1 (en) 2003-05-30
HK1046049A1 (zh) 2002-12-20
CN100474236C (zh) 2009-04-01
ATE396449T1 (de) 2008-06-15
WO2001016758A3 (en) 2001-10-25
US7421572B1 (en) 2008-09-02
EP1236097A1 (en) 2002-09-04
EP1242867A4 (en) 2008-07-30
CN1254739C (zh) 2006-05-03
CN100351781C (zh) 2007-11-28
TW486667B (en) 2002-05-11
WO2001018646A9 (en) 2002-09-12
AU7097900A (en) 2001-03-26
CN1402845A (zh) 2003-03-12
WO2001016714A1 (en) 2001-03-08
WO2001016758A9 (en) 2002-09-12
CN1402844A (zh) 2003-03-12
WO2001016715A1 (en) 2001-03-08
TW486666B (en) 2002-05-11
AU7340400A (en) 2001-03-26
CN1271513C (zh) 2006-08-23
TW548584B (en) 2003-08-21
CA2386558A1 (en) 2001-03-08
CA2383540A1 (en) 2001-03-08
EP1236093A1 (en) 2002-09-04
HK1051247A1 (en) 2003-07-25
CN1184562C (zh) 2005-01-12
WO2001016722A1 (en) 2001-03-08
EP1236088A4 (en) 2006-04-19
WO2001016714A9 (en) 2002-09-12
CN1390323A (zh) 2003-01-08
CN1296818C (zh) 2007-01-24

Similar Documents

Publication Publication Date Title
CN100342326C (zh) 多线程处理器和操作处理器的方法
CN1185592C (zh) 并行处理器结构
CN1192314C (zh) 并行处理器结构的sram控制器
CN1387641A (zh) 并行处理器中的多线程执行
CN1387644A (zh) 并行处理器体系结构的sdram控制器
CN1174313C (zh) 多指令集的数据处理
CN1194292C (zh) 具有改良的指令集体系结构的微处理器
CN1101019C (zh) 数据序列产生方法及设备、转换方法及计算机
CN1742257A (zh) 基于识别寻址模式的双目的寄存器的数据预测机制
CN1749955A (zh) 控制处理器和协处理器间的数据传输的运算处理装置
CN1285064A (zh) 进行无序多线程执行的加载和存储指令排序系统
CN1782989A (zh) 独立处理多个指令流、软式控制各指令流的处理功能的多线程处理器
CN1286771A (zh) 错误推测之后的指令再执行的管道外部跟踪缓冲器
CN1629801A (zh) 产生早期指令结果的管线式微处理器、装置以及方法
CN1397886A (zh) 假想分支目标地址高速缓存
CN1115631C (zh) 具有risc结构的八位微控制器
CN1291325C (zh) 通过源/目的转换机构实现高速存储器克隆的方法和系统
CN1397874A (zh) 高速缓存的快取线选取目标地址的装置及方法
CN1016383B (zh) 基于操作数长度和对位的微码转移
CN1138175A (zh) 高速处理循环的编译器和处理器
CN1044354A (zh) 指令执行高效率生产线方法及装置
CN1152300C (zh) 多媒体信号处理器中的单指令多数据处理方法及其装置
CN1207527A (zh) 微处理器
CN100339825C (zh) 将多余的分支目标地址高速缓存项目无效化的装置及方法
CN1912838A (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: GR

Ref document number: 1051247

Country of ref document: HK

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: 20071010

Termination date: 20160831