CN100351781C - 多线程并行处理器结构中所用的微引擎的存储器引用指令 - Google Patents
多线程并行处理器结构中所用的微引擎的存储器引用指令 Download PDFInfo
- Publication number
- CN100351781C CN100351781C CNB008154120A CN00815412A CN100351781C CN 100351781 C CN100351781 C CN 100351781C CN B008154120 A CNB008154120 A CN B008154120A CN 00815412 A CN00815412 A CN 00815412A CN 100351781 C CN100351781 C CN 100351781C
- Authority
- CN
- China
- Prior art keywords
- processor
- memory
- instruction
- micro engine
- address
- 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
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)
- Executing Machine-Instructions (AREA)
- Multi Processors (AREA)
- Debugging And Monitoring (AREA)
- Image Processing (AREA)
- Stored Programmes (AREA)
- Harvester Elements (AREA)
- Control Of Transmission Device (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Document Processing Apparatus (AREA)
- Fittings On The Vehicle Exterior For Carrying Loads, And Devices For Holding Or Mounting Articles (AREA)
Abstract
一种计算机指令包括一命令指令,该命令指令在线程的关联文本无效时对微处理器中执行的线程所共享的存储器中的一个地址发出一存储器引用。
Description
技术领域
本发明涉及计算机处理器的存储器引用(reference)指令。
背景技术
并行处理是计算过程中并发事件的信息处理的一种有效的方式。与串行处理对比而言,并行处理请求并行执行计算机中的许多程序。在并行处理器的关联文本(context)中,并行性涉及同时做不只一件事。不同于在一个单一的站连续执行所有任务的串行范例或在专用站执行任务的流水线程机器,利用并行处理,提供了许多能够执行所有任务的站。也就是说,一般而言,所有或许多站同时并独立地处理问题的相同或共同的元素。某些问题适合于通过应用并行处理来解决。
发明内容
根据本发明,提供了一种用于访问共享资源的基于硬件的多线程处理器,它包括:共享存储器;和多个微引擎,每个微引擎包括:控制存储器;控制器逻辑电路;关联文本事件切换逻辑电路;和执行箱数据路径,它包括算术逻辑单元和通用寄存器组,算术逻辑单元响应于多个指令执行功能,其中的一个指令使得算术逻辑单元:在线程的关联文本正在等待时,向微引擎中执行的线程的共享存储器中的一个地址发出一条存储器引用。
根据本发明,还提供了一种访问共享资源的方法,它包括:将命令发给在微引擎中执行的线程的共享存储器,每个线程具有一个有关的关联文本;以及当命令正在执行时,不启用发出所述命令的线程的关联文本。
附图说明
在附图和以下的描述中,陈述了本发明的一个或多个实施例的细节。通过描述、附图和权利要求,本发明的其他特点、目的和优点将一目了然。
本发明的前述特点和其他方面将通过附图来进一步加以详细的描述,其中:
图1是使用基于硬件的多线程处理器的一种通讯系统的方框图。
图2是图1中基于硬件的多线程处理器的详细的方框图。
图3是图1和图2的基于硬件的多线程处理器中所使用的微引擎功能单元的方框图。
图4是图3的微引擎中的流水线程的方框图。
图5是SRAM地址空间的方框图。
图6是SRAM/写命令的方框图。
图7是“压入/弹出命令”的方框图。
图8是“bit_WR命令”的一种“indirect_ref格式”的方框图。
图9是“读/写命令”的indirect_ref的一种格式的方框图。
图10是T_FIFO_WR命令的一种indirect_ref“格式”的方框图。
图11是R_FIFO_RD命令的一种indirect_ref“格式”的方框图。
图12是“读/写命令”的indirect_ref“格式”的一种格式的方框图。
图13是bit_WR命令的一种indirect_ref“格式”的方框图。
各幅图中类似的参考符号表示类似的元素。
具体实施方式
参考图1,通讯系统10包括一个并行的、基于硬件的多线程处理器12。基于硬件的多线程处理器12被耦合到一个总线(例如,PCI总线14)、存储器系统16和第二个总线18。系统10对于可以被分成多个并行子任务或功能的任务而言特别有用。基于硬件的多线程处理器12对于面向带宽(而非面向等待时间)的任务而言尤其有用。基于硬件的多线程处理器12具有多个微引擎22,每个微引擎具有可以同时运行和独立执行任务的多个硬件受控线程。
基于硬件的多线程处理器12也包括一个处理器20,该处理器20帮助加载对基于硬件的多线程处理器12的其他资源的微码控制,并执行其他通用计算机类型功能,例如,处理协议、异常、对数据分组处理(其中,例如在边界条件下微引擎22传递数据分组,以获得更加详细的处理)的额外支持。在一个实施例中,处理器20是一个基于“Strong Arm@”(Arm是英国ARM有限公司的商标)的结构。通用处理器20拥有一个操作系统。通过该操作系统,处理器20可以调用各种功能来操作微引擎22a-22f。处理器20可以使用任何被支持的操作系统,较佳地是使用实时操作系统。对于作为“Strong Arm”结构来被执行的处理器20而言,可以使用微软NT实时、VXWorks与微CUS、互联网上可用的免费软件操作系统等各种操作系统。
每个功能微引擎(微引擎)22a-22f在与程序计数器有关的硬件和状态中都维持多个程序计数器。实际上,对应的多套线程可以同时在每个微引擎22a-22f上运行,但每次实际上只有一个线程正在操作。
在一个实施例中,所示有六个微引擎22a-22f。每个微引擎22a-22f都具有处理四个硬件线程的能力。六个微引擎22a-22f操作所拥有的共享资源包括存储器系统16和总线接口24与28。存储器系统16包括“同步动态随机存取存储器(SDRAM)”控制器26a和“静态随机存取存储器(SRAM)”控制器26b。SDRAM存储器16a和SDRAM控制器26a通常用于处理大量数据(例如,处理来自网络数据分组的网络有效载荷)。SRAM控制器26b和SRAM存储器16b被用于低等待时间的快速访问任务(例如,访问查找表格、处理器20的存储器等)的联网实施中。
六个微引擎22a-22f根据数据的特征来访问SDRAM 16a或SRAM 16b。这样,低等待时间、低带宽的数据被存储在SRAM中并从那里被取出,而等待时间对其并不重要的较高带宽数据则被存储在SDRAM 16a中并从那里被取出。微引擎22a-22f可以执行对SDRAM控制器26a或SRAM控制器16b的存储器引用指令。
硬件多线程技术的优点可以由SRAM或SDRAM存储器访问来说明。例如,来自微引擎的由thread_0请求的SRAM访问将使SRAM控制器26b开始对SRAM存储器16b进行访问。SRAM控制器26b控制对SRAM总线的仲裁,访问SRAM 16b,从SRAM 16b取出数据,并将数据返回到提出请求的微引擎22a-22f。在SRAM访问期间,如果微引擎(例如,微引擎22a)只有一个单一的线程可操作,则该微引擎将处于休眠状态,直到数据从SRAM 16b被返回。通过使用在每个微引擎22a-22f内的硬件关联文本交换,硬件关联文本交换使具有唯一程序计数器的其他关联文本能够在那个相同的微引擎内执行。这样,另一个线程(例如,thread_1)可以运作,而第一个线程(例如,thread_0)正在等待读取数据返回。在执行期间,thread_1可以访问SDRAM存储器16a。thread_1操作SDRAM单元16a,thread_0正在操作SRAM单元16b,而一个新的线程(例如,thread_2)现在可以在微引擎22a中进行操作。thread_2可以操作一定数量的时间,直到它需要访问存储器或执行其他某项等待时间长的操作(例如,对总线接口进行访问)。所以,处理器12可以同时拥有总线操作、都正在被完成或由微引擎22a操作的SRAM操作和SDRAM操作,并且多拥有一个线程来处理数据路径中的更多工作。
硬件关联文本交换也使各项任务的完成同步化。例如,两个线程可以找到相同的共享资源(例如,SRAM 16b)。这些分开的功能单元(例如,FBUS接口28、SRAM控制器26a和SDRAM控制器26b)在完成来自一个微引擎线程关联文本的所请求的任务时,其中的每个功能单元都报告返回标志以通知操作完成。当微引擎接收到标记时,微引擎可以确定打开哪个线程。
基于硬件的多线程处理器12的一项应用是作为网络处理器。作为网络处理器,基于硬件的多线程处理器12连接到媒体访问控制器设备(例如,10/100BaseT八进制MAC 13a或千兆比特以太网设备13b)等网络设备。一般而言,作为网络处理器,基于硬件的多线程处理器12可以连接到接收/发送大量数据的任何类型的通讯设备或接口。运作于联网应用中的通讯系统10可从设备13a和13b接收多个网络数据分组,并用并行方式来处理那些数据分组。利用基于硬件的多线程处理器12,每个网络数据分组都可以被独立地处理。
使用处理器12的另一个例子是postscript处理器的印刷引擎或作为存储子系统的处理器(例如,冗余独立磁盘阵列(RAID)存储器,在容错与性能的组合中使用两个或多个驱动器的一类磁盘驱动器)。进一步的用途是作为匹配引擎。例如,在证券行业中,电子交易的出现要求使用电子匹配引擎来对买者与卖者之间的定购进行匹配。可以使用系统10来完成这些和其他并行类型的任务。
处理器12包括总线接口28,该总线接口将处理器耦合到第二个总线18。在一个实施例中,总线接口28将处理器12耦合到FBUS(FIFO总线)18。FBUS接口28负责控制并将处理器12连接到FBUS 18。FBUS 18是被用来连接到“媒体访问控制器(MAC)”设备(例如,10/100BaseT八进制MAC 13a)的64位宽FIFO总线。
处理器12包括第二个接口(例如,PCI总线接口24),该接口将位于PCI 14总线上的其他系统成分耦合到处理器12。PCI总线接口24将高速数据路径24a提供给存储器16(例如,SDRAM存储器16a)。通过PCI总线接口24,经由直接存储器访问(DMA)传送,通过PCI总线14,数据可以从SDRAM 16a被迅速移动。基于硬件的多线程处理器12支持图象传送。基于硬件的多线程处理器12可以使用多个DMA通道,所以,如果DMA转移的一个目标很忙,则DMA通道中的另一个通道可接管PCI总线14来向另一个目标传递信息,从而维持处理器12的高效率。此外,PCI总线接口24支持目标与主控操作。在目标操作中,总线14上的从属设备通过读、写来访问用作目标操作的从动装置的SDRAMs。在主控操作中,处理器20将数据直接发送到PCI接口24,或直接从PCI接口24接收数据。
每个功能单元22被耦合到一个或多个内部总线。如下文所述,内部总线是双32位总线(即,一个总线用于读取,一个总线用于写入)。基于硬件的多线程处理器12也被构造成使处理器12中的内部总线的带宽总和超过被耦合到处理器12的外部总线的带宽。处理器12包括一个内部核心处理器总线32(例如,“ASB高级系统总线(ASB)”),该总线将处理器20耦合到以下描述的存储控制器26a、26c和ASB转换器30。ASB总线32是与“Strong Arm”处理器20并用的所谓“高级微控制器总线结构(AMBA)”总线的一个子集。AMBA是一个开放标准的芯片上的总线规范,它详述了构成“芯片上系统(SoC)”的功能块的互连和管理的策略。处理器12也包括一个专用总线34,该总线将微引擎单元22耦合到SRAM控制器26b、ASB转换器30和FBUS接口28。存储器总线38将存储控制器26a和26b耦合到总线接口24、28和包括用于引导操作的快闪只读存储器16c等的存储器系统16。
参考图2,每个微引擎22a-22f包括一个仲裁器,该仲裁器检查标记,以确定将被操作的可用的线程。来自微引擎22a-22f中的任何微引擎的任何线程可以访问SDRAM控制器26a、SDRAM控制器26b或FBUS接口28。存储控制器26a和26b都包括多个队列,以存储未完成的(outstanding)存储器引用请求。这些队列或者维持存储器引用的顺序,或者安排存储器引用,以便优化存储器带宽。例如,如果thread_0不依赖于thread_1或与thread_1没有关系,则thread_1和thread_0没有理由打乱次序就不能完成它们对SRAM单元16b的存储器引用。微引擎22a-22f向存储控制器26a和26b发出存储器引用请求。微引擎22a-22f使存储器子系统26a和26b充满足够的存储器引用操作,使得存储器子系统26a和26b成为处理器12操作的瓶颈。
如果存储器子系统16充满本质上独立的存储器请求,则处理器12可以执行存储器引用排序(sorting)。存储器引用排序改善了可实现的存储器带宽。如下文所述,存储器引用排序减少了访问SRAM 16b时发生的停滞时间或泡影。利用对SRAM 16b的存储器引用,在读与写之间切换信号线上的电流方向产生了等待电流在将SRAM 16b耦合到SRAM控制器26b的导体上稳定的泡影或停滞时间。
也就是说,驱动总线上的电流的驱动器需要在变化的状态之前达到稳定。这样,由读取后跟写入的的重复周期会降低峰值带宽。存储器引用排序允许处理器12组织对存储的引用,以便长字(longword)符串的读取后面可以跟随长字符串的写入。这可以被用来使流水线程中的停滞时间减到最小,以便有效地实现更接近于最大的可用带宽。引用排序有助于维持并行硬件关联文本线程。在SDRAM 16a上,引用排序允许隐藏从一个排(bank)到另一个排的预先充电。尤其是,如果存储器系统16b被组织成一个奇数排和一个偶数排,在处理器正在操作奇数排的同时,则存储控制器可以开始给偶数排预先充电。如果存储器引用在奇数排与偶数排之间交替改变,则可以进行预先充电。通过命令存储器引用交替改变对相反排的访问,处理器12改善了SDRAM带宽。此外,可使用其他的优化。例如,可以使用合并优化(其中,可被合并的操作在存储器访问之前被进行合并)、开页优化(其中,通过检查地址,存储器的打开也门不被重新打开)、链锁(下文将加以描述)和刷新机制。
FBUS接口28支持MAC设备支持的每个端口的“发送与接收”标记,以及指出服务何时被保证的“中断”标记。FBUS接口28也包括一个控制器28a,该控制器执行来自FBUS 18的进入数据分组的头部(head)处理。控制器28a抽取数据分组的头部,并执行SRAM 16b中的可编微程序的源/目的地/协议散列查找(用于地址平滑)。如果散列没有成功地解决,则数据分组的头部被发送到处理器20作额外的处理。FBUS接口28支持以下的内部数据处理:
FBUS单元 (共享的总线SRAM) 到/从微引擎。
FBUS单元 (经由专用总线) 从SDRAM单元写入。
FBUS单元 (经由M总线) 读到SDRAM。
FBUS 18是标准工业总线,包括一个数据总线(例如,64位宽以及用于地址的边带控制和读/写控制)。FBUS接口28通过使用一系列输入和输出FIFOs29a-29b来提供输入大量数据的能力。从FIFOs 29a-29b中,微引擎22a-22f从其取出数据或命令SDRAM控制器26a将数据从接收FIFO(其中,数据来自总线18上的一个设备)移入FBUS接口28。经由直接存储器访问,数据可以通过存储控制器26a被发送SDRAM存储器16a。同样,经由FBUS接口28,微引擎可以将数据从SDRAM 26a移到接口28,再移出到FBUS 18。
数据功能在各个微引擎22中被分配。与SRAM 26a、SDRAM 26b和FBUS 28的连通性是经由命令请求。命令请求可以是存储器请求或FBUS请求。例如,命令请求可以将数据从位于微引擎22a中的一个寄存器移到一个共享的资源,例如,SDRAM位置、SRAM位置、快闪存储器或某个MAC地址。这些命令被发送出去到每个功能单元和共享资源。但是,共享资源不需要维持数据的局部缓冲。而是共享资源访问位于微引擎22a-22f内的分布式数据。这使微引擎22a-22f能够对数据进行局部访问,而不是仲裁总线上的访问和总线的冒险连接。利用这个特点,就有0周期延迟用于等候微引擎22a-22f的内部数据。
耦合这些共享资源(例如,存储控制器26a和26b)的数据总线(例如,ASB总线30、SRAM总线34和SDRAM总线38)的带宽足够,以便没有内部瓶颈。为了避免瓶颈,处理器12有一个带宽要求:每个功能单元被提供至少是内部总线的最大带宽两倍的带宽。例如,SDRAM 16a可以按83MHz来运行64位宽的总线。SRAM数据总线可以具有分开的读、写总线(例如,可以是按166MHz运行的32位宽的读总线和按166MHz运行的32位宽的写总线)。本质上,按166MHz运行的64位实际上是SDRAM的带宽的两倍。
处理器20也可以访问共享资源。处理器20经由总线32与SDRAM控制器26a、总线接口24和SRAM控制器26b具有直接的通讯。但是,为了访问微引擎22a-22f和位于微引擎22a-22f中的任何微引擎处的传送寄存器(transferregister),处理器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位桶(barrel)移位支持。这个RISC核心50是一个标准“Strong Arm@”结构,但是,由于性能的原因,它用五级流水线程来实现。处理器20也包括16千字节的指令高速缓冲存储器52、8千字节的数据高速缓冲存储器54和预先提取流缓冲器56。处理器20与存储写入和指令提取平行地执行算术运算。处理器20经由ARM定义的ASB总线与其他的功能单元连接。ASB总线是32位双向总线32。
参考图3,示出微引擎22a-22f中的一个示范微引擎(例如,微引擎22f)。微引擎包括控制存储器70,在一项实施例中,该控制存储器包括这里的32位1,024字的RAM。RAM存储微程序(未示出)。微程序可由处理器20加载。微引擎22f也包括控制器逻辑72。控制器逻辑72包括指令解码器73和程序计数器(PC)单元72a-72d。四个微程序计数器72a-72d被保持在硬件中。微引擎22f也包括关联文本事件切换逻辑74。关联文本事件逻辑74从每个共享资源(例如,SRAM 26a、SRAM 26b或处理器20、控制与状态寄存器等)接收消息(例如,SEO_#_EVENT_RESPONSE;FBI_EVENT_RESPONSE;SRAM_EVENT_RESPONSE;SDRAM_EVENT_RESPONSE;以及ASB_EVENT_RESPONSE)。这些消息提供关于是否已经完成被请求的功能的信息。根据由线程请求的功能是否已经完成和已发出完成信号,线程需要等候那个完成信号;如果使线程能够操作,则该线程被放置在可用的线程列表(未示出)上。微引擎22f最多可以具有4个可用线程。
除了属于执行线程本地的事件信号以外,微引擎22a-22f使用全局的信令状态。利用信令状态,执行线程可以将信号状态播送到所有的微引擎22a-22f(例如,“接收请求可用(RRA)”信号),微引擎22a-22f中的任何和所有的线程可以根据这些信令状态而分支转移。这些信令状态可被用来确定资源的可用性或资源是否应当用于服务。
关联文本事件逻辑74对四(4)个线程进行仲裁。在一个实施例中,该仲裁是一种轮流机制。其他技术可被使用,包括优先级队列或加权的公平队列。微引擎22f也包括一个执行箱(EBOX)数据路径76,该路径包括一个算术逻辑单元(ALU)76a和通用寄存器装置76b。ALU 76a执行算术与逻辑功能,以及移位功能。寄存器装置76b具有相对较多数量的通用寄存器。在一个实施例中,第一个排--排A中有64个通用寄存器,第二个排--排B中也有64个。通用寄存器被设置为窗口,以便它们可相对地和绝对地寻址。
微引擎22f也包括一个写传送寄存器堆栈78和一个读转移堆栈80。这些寄存器78和80也被分为窗口,以便它们可相对地和绝对地寻址。写传送寄存器堆栈78是到一个资源的写数据所在之处。同样,读寄存器堆栈80用于来自共享资源的返回数据。在数据达到之后或在数据达到的同时,来自各个共享资源(例如,SRAM控制器26a、SDRAM控制器26b或处理器20)的一个事件信号将被提供给关联文本事件仲裁器74,然后,该关联文本事件仲裁器将警告线程:数据可用或已经被发送。传送寄存器排78和80通过一个数据路径被连接到执行箱(EBOX)76。在一个实施例中,读传送寄存器拥有64个寄存器,写传送寄存器拥有64个寄存器。
参考图4,微引擎数据路径维持一个5级微流水线程82。这个流水线程包括微指令字的查找82a、寄存器文件地址的形成82b、来自寄存器文件的操作数的读取82c、ALU移位或比较操作82d,以及将结果写回寄存器82e。通过将一个写回数据旁路提供到ALU/移位器单元内,并且通过假设寄存器被作为寄存器文件(而不是RAM)来实现,微引擎22f可以执行同时的寄存器文件的读和写,这完全隐藏了写操作。
SDRAM接口26a将信号返回给对读取提出请求的微引擎(指出是否发生有关读取请求的一致校验(parity)错误)。微引擎微码负责当微引擎使用任何返回数据时核查SDRAM 16a读取Parity(一致校验)标记。一旦核查标记,如果它被设置,则在其上的分支转移的动作就将它清除。当使SDRAM 16a能够核查时,只发送Parity标记,SDRAM 16a得到一致校验保护。只有微引擎22和PCI单元14是被通知一致校验错误的请求器(requestors)。所以,如果处理器20或FIFO 18请求一致校验保护,则微引擎协助实现该请求。微引擎22a-22f支持有条件的分支转移。
指令集也包括发出存储器引用给“静态随机存取存储器(SRAM)”的一个指令。
将存储器引用发给SRAM的指令的格式是sram[sram_cmd,$sram_xfer_reg,source_op1,source_op2,ref_count_or_queue_num_or_bit_op],optional_token。每个字段的描述如下所述。
“sram_cmd”字段指将在SRAM上被执行的操作。操作包括bit_wr、读取、read_lock、写入、write_unlock、解锁、压入和弹出。
“bit_wr”操作设置或清除一个SRAM长字中的用户指定位。“read”操作从SRAM读到SRAM传送寄存器。“read_lock”操作锁定存储器,然后再对它进行读取。如果存储器已经被锁定,则一直等到它被解锁。读取锁定操作总是要求“ctx_swap”任选标记(token)。
“write”操作从SRAM传送寄存器写到SRAM。“write_unlock”操作执行写入并为规定的地址解锁。“解锁”操作为规定的地址解锁,而不执行读或写。
“压入”操作将由地址规定的一个列表的元素压入规定的堆栈中。“弹出”操作弹出由来自规定的堆栈的地址所规定的一个列表的元素。
“$sram_xfer_reg”字段指出是否使用读取、read_lock、写入或write_unlocksram_cmd参数,这个传送寄存器的内容是一套邻近的寄存器的开端,这些寄存器分别接收或提供有关读或写操作的SRAM数据。SRAM传送寄存器的名称总是从一个$符号开始。如果使用解锁sram_cmd参数,则这个寄存器是没有意义的,并且使用“--”符号来代替寄存器名称。如果使用弹出sram_cmd参数,则这个寄存器包含执行指向列表的指针,该列表从ref_count_or_queue_num所规定的队列中被除去。如果压入被指定为sram_cmd参数,使用“--”符号,则这个寄存器没有意义。如果使用bit_wr sram_cmd参数,则这个寄存器包含位掩码,该位掩码选择应该设置或清除哪些位。关于set_and_set_bits和set_and_clear_bits选项,这个寄存器还按原样返回设置或清除位之前存在的原始数据。
“source_op1”和“source_op2”字段指有关关联文本的寄存器或范围从+31到0的5位零填充最近数据。这些字段被加在一起,以构成对SRAM存储空间的一个长字地址。关于压入sram_cmd参数,总和规定了将被压入队列中的地址。如果弹出被指定为sram_cmd参数,则这个寄存器没有意义,并且在这种情况下使用source_op1和source_op2的虚拟参数。
“ref_count_or_queue_num_or_bit_op”字段指出是否使用读取、read_lock、写入或write_unlocksram_cmd参数,它规定用这一操作要引用的邻近SRAM长字的数量。如果计数>1,则为每个后来的引用隐含地递增SRAM地址。如果read_lock或write_unlock命令被规定为ref_count>1,则ref_count只是指被转移的存储字的数量,而不是指被锁定或解锁的地址的数量。每个引用的被锁定或解锁的地址的数量总是1。如果使用解锁sram_cmd参数,则这个寄存器没有意义,总是使用1。如果使用压入或弹出sram_cmd参数,则这规定了8个压入/弹出队列中的一个队列。有效的队列号是0~7。如果使用bit_wrsram_cmd参数,则必须使用以下参数中的一个参数:set_bits、clear_bits、set_and_set_bits或set_and_clear_bits。set_bits和clear_bits被用来设置或清除使用被指定的位掩码的地址处的位。set_and_set_bits和set_and_clear-bits也被用来设置或清除位,但是,按原样返回操作之前存在的原始数据。
“sig_done”参数指出:当引用完成时,用信号通知正在提供或吸收存储数据的对应的微引擎/线程对。不与ctx_swap并用。
“ctx_swap”参数指出:当发出存储器引用时,交换出当前的线程执行,以便让另一个线程运行。不与sig_done并用,总是为读取锁定命令所要求。
“defer[1]”参数与ctx_swap选项并用;它指定:一项指令间在这一引用之后并在关联文本被交换之前被执行,且不与sig_done并用。
“ordered”参数将这个SRAM引用放入有序队列。有序队列b1使用有序任选标记的引用的执行顺序。例如,如果一个线程发出两个写入(在第二个引用上具有sig_done任选标记),则两个引用将需要是有序的,以确保第二个引用在第一个引用后结束。不与optimize_mem或优先级并用。如果既不指定有序,也不指定optimize_mem,则默认值成为有序的。
“优先级”参数将这个SRAM引用放入“优先级”队列。与其他存储器引用相比,“优先级”队列为这个存储器引用提供更高的优先级。不与有序或optimize_mem并用。如果既不指定优先级,也不指定optimize_mem,则默认值成为有序的。
通过自动地将SRAM引用放入“读取”或“有序”队列,“optimize_mem”参数优化存储器带宽。根据操作是读取还是写入,来选择“读取”或“有序”队列。这会导致按不同于发出引用的顺序的一种顺序来执行引用。不与有序或优先级并用。如果既不指定优先级,也不指定optimize_mem,则默认值成为有序的。
“indirect_ref”参数指出,首要(overriding)限定符或额外限定符与这个引用有关。在前面的微字期间,这些限定符由ALU输出。限定符的格式取决于SRAM命令。如以下插图所示,读/写、压入/弹出和bit_wr有不同的格式。
参考图5,示出SRAM地址空间的方框图。参考图6,示出SRAM/写命令的方框图,其中:
位 | 字段 | 说明 |
31 | OV | 如果被设置,则UENG ADDR字段首要由RAM指令隐含的默认微引擎地址,它是发出引用的微引擎。 |
30:28 | UENG ADDR | 指定与存储器引用有关的微引擎。如果位[31]=0,则 |
27 | OV | 这个字段任意。有效的UENG ADDR值是0~5。如果被设置,则XADD字段首要由SRAM指令隐含的默认传送寄存器地址。 |
26 | ABS | 如果被设置,则使微引擎传送寄存器能够进行绝对寻址。如果位[27](OV)被设置,则这个位应该总是被设置。 |
25:21 | XADD | 绝对的传送寄存器地址。有效的地址是:关联文本0的0-7八个传送寄存器。关联文本1的8-15八个传送寄存器。关联文本2的16-23八个传送寄存器。关联文本3的24-31八个传送寄存器。 |
20 | OV | 如果被设置,则REF CNT字段首要由SRAM指令指定的ref_count。 |
19:16 | REF CNT | 将被转移到SRAM或从SRAM被转移的长字的数量。有效的REF CNT值是0~7,其中,长字的数量=REF CNT+1。 |
15 | OV | 如果被设置,则“字节掩码”字段首要由SRAM指令隐含的0xFF的默认字节掩码。 |
14:11 | RES | 被保留。当读取时,返回0。 |
10:7 | 字节掩码 | “字节掩码”允许在被寻址的SRAM长字内进行对齐的字节写入操作。被写入的这些字节由字节掩码指定。关于字节掩码中的每个位,1的值使写入能够发生在对应的字节位置中,0的值保留以前存在的值。最低位对应于最右边的字节;最高位对应于最左边的字节。字节掩码(而不是默认(0xF))请求SRAM控制器执行读取-修改-写入操作,这会影响性能。 |
6:3 | RES | 被保留。当读取时,返回0。 |
2: | OV | 如果被设置,则CTX字段首要由SRAM指令隐含的默认关联文本。 |
1:0 | CTX | 指定与存储器引用有关的关联文本。如果位[2]=0,则这个字段任意。有效的CTX值是0~3。 |
参考图7,示出压入/弹出命令的方框图,其中:
位 | 字段 | 说明 |
31 | OV | 如果被设置,则UENG ADDR字段首要由SRAM命令隐含的默认微引擎地址,它是发出引用的微引擎。 |
30:28 | UENG ADDR | 指定与存储器引用有关的微引擎。如果位[31]=0,则这个字段任意。有效的UENG ADDR值是0~5。 |
27 | OV | 如果被设置,则XADD字段首要由SRAM指令隐含的默认传送寄存器地址。 |
26 | ABS | 如果被设置,则使微引擎传送寄存器能够进行绝对寻址。如果位[27](OV)被设置,则这个位应该总是被设置。 |
25:21 | XADD | 绝对的传送寄存器地址。有效的地址是:关联文本0的0-7八个传送寄存器。关联文本1的8-15八个传送寄存器。关联文本2的16-23八个传送寄存器。关联文本3的24-31八个传送寄存器。 |
20 | OV | 如果被设置,则REF CNT字段首要由SRAM指令指定的ref_count。 |
19 | RES | 被保留。当读取时,返回0。 |
18:16 | 列表REG | 指定8个压入/弹出寄存器中的一个压入/弹出寄存器。有效的“列表REG”值是0~7。 |
15:3 | RES | 被保留。当读取时,返回0。 |
2: | OV | 如果被设置,则CTX字段首要由SRAM指令隐含的默认关联文本。 |
1:0 | CTX | 指定与存储器引用有关的关联文本。如果位[2]=0,则这个字段任意。有效的CTX值是0~3。 |
参考图8,示出“bit_WR命令”的“indirect_ref格式”的方框图,其中:
位 | 字段 | 说明 |
31 | OV | 如果被设置,则UENG ADDR字段首要由SRAM命令隐含的默认微引擎地址,它是发出引用的微引擎。 |
30:28 | UENG ADDR | 指定与存储器引用有关的微引擎。如果位[31]=0,则这个字段任意。有效的UENG ADDR值是0~5。 |
27 | OV | 如果被设置,则XADD字段首要由SRAM指令隐含的默认传送寄存器地址。 |
26 | ABS | 如果被设置,则使微引擎传送寄存器能够进行绝对寻址。如果位[27](OV)被设置,则这个位应该总是被设置。 |
25:21 | XADD | 绝对的传送寄存器地址。有效的地址是:关联文本0的0-7八个传送寄存器。关联文本1的8-15八个传送寄存器。关联文本2的16-23八个传送寄存器。关联文本3的24-31八个传送寄存器。 |
20 | OV | 如果被设置,则TS和ST字段首要由SRAM指令指定的位操作。 |
19:18 | RES | 被保留。当读取时,返回0。 |
17 | TS | 当被设置时,指定读取数据在写入操作之前被返回,以便可以测试数据。 |
16 | ST | 指定操作是被设置(ST=1)还是清除(ST=0)。 |
15:3 | RES | 被保留。当读取时,返回0。 |
2: | OV | 如果被设置,则CTX字段首要由SRAM指令隐含的默认关联文本。 |
1:0 | CTX | 指定与存储器引用有关的关联文本。如果位[2]=0,则这个字段任意。有效的CTX值是0~3。 |
SRAM指令的几个例子如下所述。
在一个例子中,sram[写,$xfer7,tempa,tempb,1],optimize_mem指示将SRAM传送寄存器$xfer7的关联文本写到由tempa+tempb指定的地址处的存储位置。通过将这个引用放在“读取”或“顺序”队列中,来优化存储器。
在一个例子中,sram[读取,$xfer1,tempa,0x15,4],优先级,ctx_swap,defer[1]immed[final_queue,0]将由temp+0x15指定的地址处的四个长字存储位置读入在$xfer1开始的邻近的SRAM传送寄存器。在执行下一个指令之后,将引用放在优先级队列中并交换出关联文本。
在另一个例子中,sram[弹出,$xfer2,--,--,4],optimize_mem,ctx_swap,defer[1]ld_field[protocol_group,0110,$$xfer0,>>8]。从队列号4中弹出指示器,并将它返回SRAM传送寄存器$xfer2。通过将这个引用放在“读取”或“有序”队列中来优化存储器,并且在执行下一个指令(ld_field)之后交换出关联文本。source_op1和source_op2的--符号指出,这些操作数不应用于弹出命令。
在另一个例子中,sram[压入,--,head_offset,sram_buffer_descriptor_base,4]。将其值由head_offset+sram_buffer_descriptor_base指定的指示器压入队列4上。$sram_xfer_reg的--符号指出,这个传送寄存器与压入命令无关。
在另一个例子中,sram[read_lock,$xfer6,queue_descriptor_addr,0,2],optimize_mem,ctx_swap。锁定由queue_descriptor_addr+0指定的位置处的SRAM存储器,并且将存储位置和下一个邻近的位置读入从$xfer6开始的邻近的SRAM传送寄存器。通过将这个引用放在“读取”或“有序”队列中,来优化存储器,并且交换出关联文本。
在一个例子中,[write_unlock,$xfer1,queue_descriptor_addr,0,2],ctx_swap,defer[1]alu[tempa,--,b,@sram_counter_base]。为由queue_descriptor_addr+0指定的位置处的SRAM存储器解锁,并且将从$xfer6开始的两个邻近的SRAM传送寄存器写入SRAM存储位置和下一个邻近的位置。在执行下一个指令(ALU)之后,交换出关联文本。这个引用被放入默认(“有序”)队列。
在另一个例子中,sram[解锁,$xfer],queue_descriptor_addr,0,2],ctx_swap,defer[1]ALU[tempa,--,b,@sram_counter_base]。为由queue_descriptor_addr+0指定的位置处SRAM存储器解码。在执行下一个指令(ALU)之后,交换出关联文本。
在一个例子中,sram[bit_wr,$xfer5,tempa,0,set_bits]。设置SRAM传送寄存器$xfer中的位掩码所指定的位,该SRAM传送寄存器$xfer在由tempa+0所指定的SRAM存储器地址处。
在另一个例子中,sram[bit_wr,$xfer5,tempa,0,set_and_clear_bits]。清除由SRAM传送寄存器$xfer5中的位掩码所指定的位。该SRAM传送寄存器$xfer5在由tempa+0所指定的SRAM存储器地址处。将这个变化之前的那个位置处的全部32位数据返回到SRAM传送寄存器$xfer5,以便可以测试这些位。
在另一个例子中,sram[读取,$xfer1,tempa,0,1],有序/引用1sram[读取,$xfer2,tempb,0,1],optimize_mem/引用2sram[读取,$xfer3,tempc,0,1],有序/引用3。发出三个SRAM引用,并且一旦发出引用3,就交换出关联文本。一旦完成引用3,就唤醒关联文本。由于引用1与引用3整齐有序,因此,当关联文本激活时,保证完成引用1。引用2不是有序的,所以,不保证它已经完成。
计算机指令结构也包括将存储器引用发出到“同步动态随机存取存储器(SDRAM)”的一个指令。SDRAM指令的格式是:
sdram[sdram_cmd,$$sdram_xfer_reg,source_op1,source_op2,ref_count],optional_token
其中,每个字段如下所述。
“sdram_cmd”字段代表将在SDRAM上执行的操作,即,“read”命令从SDRAM读到SDRAM传送寄存器。“write”命令从SDRAM传送寄存器写到SDRAM。以下将更加全面地描述,“r_fifo_rd”命令从接收FIFO读到SDRAM,并且只是要求indirect_ref任选标记。“t_fifo_wr”命令从SDRAM写到发送FIFO,并且也总是要求indirect_ref任选标记。
“$$sdram_xfer_reg”字段是一个寄存器,它是分别接收或提供有关读或写操作的SDRAM数据的一组邻近的寄存器的开端。由于每个ref_count是指四倍字长,因此,两个邻近的传送寄存器与每个ref_count有关。SDRAM传送寄存器名称总是从一个$$符号开始。
“source_op1”和“source_op2”字段是有关关联文本的寄存器或范围从+31到0的5位零填充最近数据。这些操作数被加在一起,以便构成SDRAM地址。
“ref_count”字段代表将由该操作引用的邻近的SDRAM四倍字长的数目。如果ref_count>1,则为每个后来的引用隐含递增SDRAM地址。有效的ref_count值是1~4。关于大于4的ref_count值,使用indirect_ref任选标记。
“optional_token”是包含以下参数中的一个参数的用户可任选的字段。“sig_done”参数指出,当引用完成时,用信号通知正在提供或吸收存储数据的对应的微引擎/线程对。它不与ctx_swap或defer[1]参数并用。
“ctx_swap”参数指出,当发出存储器引用时,交换出当前的线程执行,以便让另一个线程运行。不与chain_ref和sig_done并用。
“chain-ref”参数指出,来自这个微引擎/线程对的下一个SDRAM引用将由紧跟当前的引用的SDRAM单元来处理。直到链完成,SDRAM单元才会接受来自其他微引擎/线程对的引用。它不与ctx_swap或延期参数并用。一旦链开始,微引擎/线程对直到链完成才可以执行分支转移指令。
“defer[1]”参数与ctx_swap并用,并规定在关联文本被交换之前,将在该引用后执行一个指令。它不与chain_ref或sig_done参数并用。
“有序”参数将这个SDRAM引用放入一个有序队列。该有序队列保存使用有序任选标记的引用的执行顺序。例如,如果一个线程发出两个写入(在第二个引用上具有sig_done任选标记),则两个引用将需要是有序的,以确保第二个引用在第一个引用后结束。不与optimize_mem或优先级并用。如果既不指定优先级,也不指定optimize_mem,则默认值成为有序的。
“优先级”参数将这个SDRAM引用放入优先级队列。与其他存储器引用相比,优先级队列为这个存储器引用提供更高的优先级。不与有序或optimize_mem并用。如果既不指定优先级,也不指定optimize_mem,则默认值成为有序的。
通过自动地将SDRAM引用放入“奇数”或“偶数”队列,“optimize_mem”参数优化存储器带宽。根据地址引用数据是在奇数还是偶数SDRAM排中,来选择“奇数”或“偶数”队列。这会导致按不同于发出引用的顺序的一种顺序来执行引用。不与有序或优先级并用。如果既不指定优先级,也不指定optimize_mem,则默认值成为有序的。
“indirect_ref”参数指出,首要限定符或额外限定符与这个引用有关。这些限定符在前面的微字期间由ALU输出。限定符的格式取决于SDRAM命令。如以下各图所示,读/写、r_fifo_rd和t_fifo_wr有不同的格式。
图9是方框图,表现了“indirect_refer读/写命令”的格式,其中:
位 | 字段 | 说明 |
31 | OV | 如果被设置,则UENG ADDR字段首要由SDRAM命令隐含的默认微引擎地址,它是发出引用的微引擎。 |
30:28 | UENG ADDR | 指定与存储器引用有关的微引擎。如果位[31]=0,则 |
这个字段任意。有效的UENG ADDR值是0~5。 | ||
27 | OV | 如果被设置,则XADD字段首要由R_FIFO_RD指令隐含的默认传送寄存器地址。 |
26 | ABS | 如果被设置,则使微引擎传送寄存器能够进行绝对寻址。如果位[27](OV)被设置,则这个位应该总是被设置。 |
25:21 | XADD | 绝对的传送寄存器地址。有效的地址是:关联文本0的0-7八个传送寄存器。关联文本1的8-15八个传送寄存器。关联文本2的16-23八个传送寄存器。关联文本3的24-31八个传送寄存器。 |
20 | OV | 如果被设置,则REF CNT字段首要由SDRAM指令指定的ref_count。 |
19:16 | REF CNT | 将被转移到SDRAM或从SDRAM被转移的四倍字长的数量。有效的REF CNT值是0~3,其中,四倍字长的数量=REF CNT+1。15 OV只应用于SDRAM写入。如果被设置,则“字节掩码”字段首要由SDRAM指令隐含的0xFF的默认字节掩码。“字节掩码”值(而非0xFF)要求REF CNT=1。 |
14:7 | 字节掩码 | “字节掩码”允许在被寻址的SDRAM四倍字长内进行对齐的字节写入操作。被写入的这些字节由字节掩码指定。关于字节掩码中的每个位,1的值使写入能够发生在对应的字节位置中,0的值保存以前存在的值。最低位对应于最右边的字节;最高位对应于最左边的字节。字节掩码(除默认(0xFF)外)请求SDRAM控制器执行读取-修改-写入操作,这会影响性能。 |
6:3 | RES | 被保留。当读取时,返回0。 |
2: | OV | 如果被设置,则CTX字段首要由SDRAM指令隐含的默认关联文本。 |
1:0 | CTX | 指定与存储器引用有关的关联文本。如果位[2]=0,则 |
这个字段任意。有效的CTX值是0~3。 |
参考图10,示出“indirect_引用T_FIFO_WR”命令的格式的方框图,其中:
位 | 字段 | 说明 |
31 | OV | 如果被设置,则UENG ADDR字段首要由T_FIFO_WR指令隐含的默认微引擎地址,它是发出引用的微引擎。 |
30:28 | UENG ADDR | 指定与存储器引用有关的微引擎。如果位[31]=0,则这个字段任意。有效的UENG ADDR值是0~5。 |
27:21 | RES | 被保留。当读取时,返回0。 |
20 | OV | 如果被设置,则REF CNT字段首要由T_FIFO_WR指令指定的ref_count。 |
19:16 | REF CNT | 将被转移到SDRAM或从SDRAM被转移的四倍字长的数量。有效的REF CNT值是0~15。 |
15 | RES | 被保留。当读取时,返回0。 |
14:12 | 字节ALN | 当寻址发送FIFO时,指出字节对准。 |
11:4 | XMIT FIFO | QWD ADDR指定发送FIFO中160个四倍字长中的一个四倍字长的地址。较低编号的地址首先被发送到FIFO总线上。 |
3 | RES | 被保留。当读取时,返回0。 |
2: | OV | 如果被设置,则CTX字段首要由T_FIFO_WR指令隐含的默认关联文本。 |
1:0 | CTX | 指定与存储器引用有关的关联文本。如果位[2]=0,则这个字段任意。有效的CTX值是0~3。 |
参考图11,示出read_引用R_FIFO_Rd命令的格式的方框图,其中:
位 | 字段 | 说明 |
31 | OV | 如果被设置,则UENG ADDR字段首要由SDRAM指令隐含的默认微引擎地址,它是发出引用的微引擎。 |
30:28 | UENG ADDR | 指定与存储器引用有关的微引擎。如果位[31]=0,则这个字段任意。有效的UENG ADDR值是0~5。 |
27:21 | RES | 被保留。当读取时,返回0。 |
20 | OV | 如果被设置,则REF CNT字段首要由T_FIFO_WR指令指定的ref_count。 |
19:16 | REF CNT | 将被转移到SDRAM或从SDRAM被转移的四倍字长的数量。有效的REF CNT值是0~15。 |
15:12 | RES | 被保留。当读取时,返回0。 |
11:4 | RECV FIFO | QWD ADDR指定接收FIFO中160个四倍字长中的一个四倍字长的地址。较低编号的地址首先从FIFO总线被接收。 |
3 | RES | 被保留。当读取时,返回0。 |
2: | OV | 如果被设置,则CTX字段首要由SDRAM指令隐含的默认关联文本。 |
1:0 | CTX | 指定与存储器引用有关的关联文本。如果位[2]=0,则这个字段任意。有效的CTX值是0~3。 |
计算机指令集也包括将存储器引用发给暂存器的一个指令。
到暂时存储器的存储器引用指令的格式是scratch[scratch_cmd,$sram_xfer_reg,source_op1,source_op2,ref_count_or_bit_op],optional_token。每个字段在下文加以全面的描述。
“Scratch_cmd”字段代表将在暂存器上执行的一项操作。“bit_wr”操作设置或清除暂存器长字中的用户指定位。“read”操作从暂存器读到SRAM传送寄存器。“写入”操作从SRAM传送寄存器写到暂存器。“incr”操作增加被寻址的暂存器位置;ref_count必须等于1。
如果使用read或write scratch_cmd参数,则“$sram_xfer_reg”字段代表一组邻近的寄存器的开端,这套寄存器分别接收或提供有关读或写操作的暂存器数据。如果使用incr scratch_cmd参数,则这必须是“--”。SRAM传送寄存器名称总是从一个$符号开始。如果使用“bit_wr scratch_cmd”参数,则这个寄存器包含一个位掩码,该位掩码选择应该设置或清除哪些位。关于set_and_set_bits和set_and_clear_bits选项,当这个寄存器存在于设置或清除位之前时,它也返回原来的数据。
“source_op1”和“source_op2”字段代表有关关联文本的寄存器或范围从+31到0的5位零填充最近数据。这些操作数被加在一起,以构成暂存器地址。有效的暂存器地址的范围从0到1023。
如果使用read、write或incr scratch_cmd参数,则“ref_count_or_bit_op”字段指定由操作引用的邻近的暂存器长字的数量。如果计数>1,则为每个后来的引用隐含递增暂存器地址。关于读、写操作的有效的引用计数值是1~8。如果使用incr scratch_cmd参数,则引用计数必须是1。如果使用bit_wr scratch_cmd参数,则也必须使用以下参数中的一个参数:“set_bits”被用来设置或清除使用一个指定位掩码的地址处的位。“clear_bits”被用来设置或清除使用指定位掩码的地址处的位。“set_and_set_bits”也被用来设置或清除位,但按原样返回操作之前就存在的原始数据。“set_and_clear_bits”也被用来设置或清除位,但按原样返回当它存在于操作之前就存在的原始数据。
“optional_token”字段是包含以下所述的参数中的一个参数的用户可任选的字段。
“sig_done”参数指出,当引用完成时,用信号通知正在提供或吸收存储数据的对应的微引擎/线程对。不与ctx_swap并用。
“ctx_swap”参数指出,当发出存储器引用时,交换出当前的线程执行,以便让另一个线程运行。不与sig_done并用。
“defer[1]”参数与sig_done或ctx_swap选项并用。在交换关联文本之前,指定一个指令将在这个引用后被执行。不与sig_done并用。
“indirect_ref”参数指出,首要限定符或额外限定符与这个引用有关。这些限定符在前面的微字期间由ALU输出。限定符的格式取决于暂存器命令。
参考图12,示出“读/写命令”的indirect_ref的格式的方框图,其中,
位 | 字段 | 说明 |
31 | OV | 如果被设置,则UENG ADDR字段首要由SCRATCH指令隐含的默认微引擎地址,它是发出引用的微引擎。 |
30:28 | UENG ADDR | 指定与存储器引用有关的微引擎。如果位[31]=0,则这个字段任意。有效的UENG ADDR值是0~5。 |
27 | OV | 如果被设置,则XADD字段首要由SCRATCH指令隐含的默认传送寄存器地址。 |
26 | ABS | 如果被设置,则使微引擎传送寄存器能够进行绝对寻址。如果位[27](OV)被设置,则这个位应该总是被设置。 |
25:21 | XADD | 绝对的传送寄存器地址。有效的地址是:关联文本0的0-7八个传送寄存器。关联文本1的8-15八个传送寄存器。关联文本2的16-23八个传送寄存器。关联文本3的24-31八个传送寄存器。 |
20 | OV | 如果被设置,则REF CNT字段首要由SCRATCH指令指定的ref_count。 |
19:16 | REF CNT | 将被转移到暂存器或从暂存器被转移的长字的数量。有效的REF CNT值是0~7,其中,长字的数量=REFCNT+1。 |
15 | OV | 如果被设置,则“字节掩码”字段首要由SCRATCH指令隐含的0xF的默认字节掩码。 |
14:11 | RES | 被保留。当读取时,返回0。 |
10:7 | 字节掩码 | “字节掩码”允许在被寻址的暂存器长字内进行对齐的字节写入操作。被写入的这些字节由字节掩码指定。关于字节掩码中的每个位,1的值使写入能够发生在对应的字节位置中,0的值保留以前存在的值。最低位对应于最右边的字节;最高位对应于最左边的字节。字节掩码(而不是默认(0xF))请求读取-修改-写入操作,这会影响性能。 |
6:3 | RES | 被保留。当读取时,返回0。 |
2: | OV | 如果被设置,则CTX字段首要由SCRATCH指令隐含的默认关联文本。 |
1:0 | CTX | 指定与存储器引用有关的关联文本。如果位[2]=0,则这个字段任意。有效的CTX值是0~3。 |
参考图13,示出“indirect_refbit_WR命令”的格式的方框图,其中,
位 | 字段 | 说明 |
31 | OV | 如果被设置,则UENG ADDR字段首要由擦除指令隐含的默认微引擎地址,它是发出引用的微引擎。 |
30:28 | UENG ADDR | 指定与存储器引用有关的微引擎。如果位[31]=0,则这个字段任意。有效的UENG ADDR值是0~5。 |
27 | OV | 如果被设置,则XADD字段首要由SCRATCH指令隐含的默认传送寄存器地址。 |
26 | ABS | 如果被设置,则使微引擎传送寄存器能够进行绝对寻址。如果位[27](OV)被设置,则这个位应该总是被设置。 |
25:21 | XADD | 绝对的传送寄存器地址。有效的地址是:关联文本0的0-7八个传送寄存器。关联文本1的8-15八个传送寄存器。关联文本2的16-23八个传送寄存器。关联文本3的24-31八个传送寄存器。 |
20 | OV | 如果被设置,则TS和ST字段首要由SCRATCH指令指定的位操作。 |
19:18 | RES | 被保留。当读取时,返回0。 |
17 | TS | 当被设置时,指定读取数据在写入操作之前被返回,以便可以测试数据。 |
16 | ST | 指定操作是被设置(ST=1)还是清除(ST=0)。 |
15:3 | RES | 被保留。当读取时,返回0。 |
2: | OV | 如果被设置,则CTX字段首要由擦除指令隐含的默认关联文本。 |
1:0 | CTX | 指定与存储器引用有关的关联文本。如果位[2]=0,则这个字段任意。有效的CTX值是0~3。 |
不言而喻,已详细描述了本发明,但是,前述的描述意在展示而不是限制本发明的范围。本发明的范围由所附权利要求的范围定义。其他的方面、优点和修改在以下的权利要求范围内。
Claims (36)
1.一种用于访问共享资源的基于硬件的多线程处理器,其特征在于包括:
共享存储器;和
多个微引擎,每个微引擎包括:
控制存储器;
控制器逻辑电路;
关联文本事件切换逻辑电路;和
执行箱数据路径,它包括算术逻辑单元和通用寄存器组,算术逻辑单元响应于多个指令执行功能,其中的一个指令使得算术逻辑单元:在线程的关联文本正在等待时,向微引擎中执行的线程的共享存储器中的一个地址发出一条存储器引用。
2.权利要求1的处理器,其特征在于:指令包括一命令字段,该命令字段设置或清除长字存储位置中的用户指定位。
3.权利要求1的处理器,其特征在于:指令包括一命令字段,该命令字段从所述地址读到与微引擎有关的传送寄存器。
4.权利要求1的处理器,其特征在于:指令包括一命令字段,该命令字段锁定存储器然后读取存储器。
5.权利要求1的处理器,其特征在于:指令包括一命令字段,该命令字段从与微引擎有关的传送寄存器写到存储器。
6.权利要求1的处理器,其特征在于:指令包括一命令字段,该命令字段写到所述地址并为所述地址解锁。
7.权利要求1的处理器,其特征在于:指令包括一命令字段,该命令字段将由所述地址指定的列表的元素压入指定的堆栈中。
8.权利要求1的处理器,其特征在于:指令包括一命令字段,该命令字段从指定的堆栈中弹出由所述地址指定的列表的元素。
9.权利要求1的处理器,其特征在于还包括:
传送寄存器,其中指令包括识别传送寄存器的一个参数。
10.权利要求1的处理器,其特征在于:指令还包括:
第一源操作数字段;以及
第二源操作数字段。
11.权利要求10的处理器,其特征在于:第一源操作数和第二源操作数指定与关联文本相关的寄存器。
12.权利要求10的处理器,其特征在于:其中,第一源操作数和第二源操作数包括范围从+31到0的5位值。
13.权利要求1的处理器,其特征在于:指令还包括一个引用计数字段。
14.权利要求13的处理器,其特征在于:引用计数字段在将被引用的存储器中指定多个连续的长字存储位置。
15.权利要求1的处理器,其特征在于:指令还包括一个队列号。
16.权利要求15的处理器,其特征在于:队列号指定八个压入/弹出队列中的一个。
17.权利要求1的处理器,其特征在于:指令还包括一个位操作数。
18.权利要求17的处理器,其特征在于:位操作数用一指定的位掩码来设置或清除一地址处的位。
19.权利要求1的处理器,其特征在于:指令还包括由程序设计员设置的一个任选标记。
20.权利要求19的处理器,其特征在于:任选标记在存储器引用完成时使所述处理器给正在提供或接收存储数据的相应微引擎/线程对发出信号。
21.权利要求19的处理器,其特征在于:任选标记使所述处理器换出当前线程执行的关联文本,以便让另一个线程关联文本执行。
22.权利要求19的处理器,其特征在于:任选标记使所述处理器在执行一个指令之后换出一当前关联文本线程。
23.权利要求19的处理器,其特征在于:任选标记使所述处理器将存储器引用放入一个有序队列。
24.权利要求19的处理器,其特征在于:任选标记使所述处理器将存储器引用放入一个优先级队列。
25.权利要求19的处理器,其特征在于:任选标记使所述处理器通过将存储器引用放入一读取或有序队列来优化存储器带宽。
26.权利要求19的处理器,其特征在于:任选标记指示首要限定符。
27.权利要求1的处理器,其特征在于:存储器是同步动态随机存取存储器。
28.权利要求1的处理器,其特征在于:存储器是同步随机存取存储器。
29.权利要求1的处理器,其特征在于:存储器是暂存器。
30.一种访问共享资源的方法,其特征在于包括:
将命令发给在微引擎中执行的线程的共享存储器,每个线程具有一个有关的关联文本;以及
当命令正在执行时,不启用发出所述命令的线程的关联文本。
31.权利要求30的方法,其特征在于:命令包括:
在长字存储位置中设置用户指定位。
32.权利要求30的方法,其特征在于:命令包括:
清除长字存储位置中的用户指定位。
33.权利要求30的方法,其特征在于还包括:
提供存储器中被访问的存储位置的一个地址。
34.权利要求33的方法,其特征在于还包括:
在访问与提供的地址有关的存储位置时锁定所述存储位置。
35.权利要求34的方法,其特征在于还包括:
从与提供的地址有关的存储位置读到与微引擎有关的传送寄存器。
36.权利要求33的方法,其特征在于还包括:
在访问与提供的地址有关的存储位置时为所述存储位置解锁;以及
从与微引擎有关的传送寄存器写到与所述地址有关的存储位置。
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 |
---|---|
CN1402845A CN1402845A (zh) | 2003-03-12 |
CN100351781C true CN100351781C (zh) | 2007-11-28 |
Family
ID=22540994
Family Applications (7)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB008154309A Expired - Fee Related CN1254739C (zh) | 1999-09-01 | 2000-08-31 | 处理器和操作处理器的方法 |
CNB008144966A Expired - Fee Related CN100474236C (zh) | 1999-09-01 | 2000-08-31 | 多线程并行处理器及其维持线程执行的方法 |
CNB008154376A Expired - Fee Related CN1184562C (zh) | 1999-09-01 | 2000-08-31 | 处理器的转移指令 |
CNB008151237A Expired - Fee Related CN1296818C (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 | 多线程处理器和操作处理器的方法 |
CNB008154120A Expired - Fee Related CN100351781C (zh) | 1999-09-01 | 2000-09-01 | 多线程并行处理器结构中所用的微引擎的存储器引用指令 |
Family Applications Before (6)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB008154309A Expired - Fee Related CN1254739C (zh) | 1999-09-01 | 2000-08-31 | 处理器和操作处理器的方法 |
CNB008144966A Expired - Fee Related CN100474236C (zh) | 1999-09-01 | 2000-08-31 | 多线程并行处理器及其维持线程执行的方法 |
CNB008154376A Expired - Fee Related CN1184562C (zh) | 1999-09-01 | 2000-08-31 | 处理器的转移指令 |
CNB008151237A Expired - Fee Related CN1296818C (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 | 多线程处理器和操作处理器的方法 |
Country Status (10)
Country | Link |
---|---|
US (1) | US7421572B1 (zh) |
EP (7) | EP1236092A4 (zh) |
CN (7) | CN1254739C (zh) |
AT (2) | ATE475930T1 (zh) |
AU (11) | AU7340700A (zh) |
CA (7) | CA2383532A1 (zh) |
DE (2) | DE60044752D1 (zh) |
HK (8) | HK1046049A1 (zh) |
TW (11) | TW559729B (zh) |
WO (8) | WO2001018646A1 (zh) |
Families Citing this family (49)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001016702A1 (en) | 1999-09-01 | 2001-03-08 | Intel Corporation | Register set used in multithreaded parallel processor architecture |
WO2001018646A1 (en) | 1999-09-01 | 2001-03-15 | Intel Corporation | Branch instruction for multithreaded processor |
US7191309B1 (en) | 1999-09-01 | 2007-03-13 | Intel Corporation | Double shift instruction for micro engine 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 |
US7020871B2 (en) | 2000-12-21 | 2006-03-28 | Intel Corporation | Breakpoint method for parallel hardware threads in multithreaded processor |
US7292586B2 (en) | 2001-03-30 | 2007-11-06 | Nokia Inc. | Micro-programmable protocol packet parser and encapsulator |
US7216204B2 (en) | 2001-08-27 | 2007-05-08 | Intel Corporation | Mechanism for providing early coherency detection to enable high performance memory updates in a latency sensitive multithreaded environment |
US7225281B2 (en) | 2001-08-27 | 2007-05-29 | Intel Corporation | Multiprocessor infrastructure for providing flexible bandwidth allocation via multiple instantiations of separate data buses, control buses and support mechanisms |
US7487505B2 (en) | 2001-08-27 | 2009-02-03 | Intel Corporation | Multithreaded microprocessor with register allocation based on number of active threads |
US6868476B2 (en) | 2001-08-27 | 2005-03-15 | Intel Corporation | Software controlled content addressable memory in a general purpose execution datapath |
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 |
US7610451B2 (en) | 2002-01-25 | 2009-10-27 | Intel Corporation | Data transfer mechanism using unidirectional pull bus and push bus |
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 |
US7337275B2 (en) | 2002-08-13 | 2008-02-26 | Intel Corporation | Free list and ring data structure management |
US6941438B2 (en) | 2003-01-10 | 2005-09-06 | Intel Corporation | Memory interleaving |
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 |
WO2013101232A1 (en) * | 2011-12-30 | 2013-07-04 | Intel Corporation | Packed rotate processors, methods, systems, and instructions |
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 |
US10387037B2 (en) * | 2016-12-31 | 2019-08-20 | Intel Corporation | Microarchitecture enabling enhanced parallelism for sparse linear algebra operations having write-to-read dependencies |
BR112019010679A2 (pt) | 2016-12-31 | 2019-09-17 | Intel Corp | sistemas, métodos e aparelhos para computação heterogênea |
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 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1180864A (zh) * | 1996-08-19 | 1998-05-06 | 三星电子株式会社 | 多媒体信号处理器中的单指令多数据处理方法及其装置 |
Family Cites Families (355)
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 |
JPS59111533U (ja) | 1983-01-19 | 1984-07-27 | 株式会社池田地球 | 手提鞄の提手取付具 |
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 |
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 |
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 |
US4816913A (en) | 1987-11-16 | 1989-03-28 | Technology, Inc., 64 | Pixel interpolation circuitry as for a video signal processor |
US5189636A (en) | 1987-11-16 | 1993-02-23 | Intel Corporation | Dual mode combining circuitry |
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 |
EP0374419A3 (en) | 1988-12-21 | 1991-04-10 | International Business Machines Corporation | Method and apparatus for efficient loop constructs in hardware and microcode |
US5202972A (en) | 1988-12-29 | 1993-04-13 | International Business Machines Corporation | Store buffer apparatus in a multiprocessor system |
US5046000A (en) | 1989-01-27 | 1991-09-03 | International Business Machines Corporation | Single-FIFO high speed combining switch |
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 |
US5179702A (en) | 1989-12-29 | 1993-01-12 | Supercomputer Systems Limited Partnership | System and method for controlling a highly parallel multiprocessor using an anarchy based scheduler for parallel execution thread scheduling |
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 |
DE69132495T2 (de) | 1990-03-16 | 2001-06-13 | Texas Instruments Inc., Dallas | Verteilter Verarbeitungsspeicher |
JPH0799812B2 (ja) * | 1990-03-26 | 1995-10-25 | 株式会社グラフイックス・コミュニケーション・テクノロジーズ | 信号符号化装置および信号復号化装置、並びに信号符号化復号化装置 |
DE69129872T2 (de) | 1990-03-27 | 1999-03-04 | Philips Electronics N.V., Eindhoven | Datenverarbeitungssystem mit einem leistungsverbessernden Befehlscachespeicher |
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 | マイクロコンピュータ |
AU633724B2 (en) | 1990-06-29 | 1993-02-04 | Digital Equipment Corporation | Interlock queueing |
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 |
CA2045790A1 (en) | 1990-06-29 | 1991-12-30 | Richard Lee Sites | Branch prediction in high-performance processor |
AU630299B2 (en) | 1990-07-10 | 1992-10-22 | Fujitsu Limited | A data gathering/scattering system in a parallel computer |
DE4129614C2 (de) * | 1990-09-07 | 2002-03-21 | Hitachi Ltd | System und Verfahren zur Datenverarbeitung |
JP2508907B2 (ja) * | 1990-09-18 | 1996-06-19 | 日本電気株式会社 | 遅延分岐命令の制御方式 |
EP0553158B1 (en) * | 1990-10-19 | 1994-12-28 | 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 |
US5956514A (en) | 1991-04-12 | 1999-09-21 | Boeing North American, Inc. | Apparatus and method for multiple processor software development |
KR960001273B1 (ko) | 1991-04-30 | 1996-01-25 | 가부시키가이샤 도시바 | 단일칩 마이크로컴퓨터 |
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 |
GB2260429B (en) | 1991-10-11 | 1995-05-24 | Intel Corp | Versatile cache memory |
US5392391A (en) | 1991-10-18 | 1995-02-21 | Lsi Logic Corporation | High performance graphics applications controller |
US5557766A (en) | 1991-10-21 | 1996-09-17 | Kabushiki Kaisha Toshiba | High-speed processor for handling multiple interrupts utilizing an exclusive-use bus and current and previous bank pointers to specify a return bank |
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 |
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 |
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 |
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 |
JPH06161873A (ja) | 1992-11-27 | 1994-06-10 | Fujitsu Ltd | 主記憶に対する複数のアクセスポイントのハングアップ処理方式 |
US5450603A (en) | 1992-12-18 | 1995-09-12 | Xerox Corporation | SIMD architecture with transfer register or value source circuitry connected to bus |
CA2128393C (en) | 1992-12-23 | 2001-10-02 | Jean-Felix Perotto | 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 |
EP0617361B1 (en) | 1993-03-26 | 2001-11-28 | Cabletron Systems, Inc. | Scheduling method and apparatus for a communication network |
US6311286B1 (en) | 1993-04-30 | 2001-10-30 | Nec 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 |
JP3203401B2 (ja) | 1993-05-21 | 2001-08-27 | 三菱電機株式会社 | データ処理装置 |
ES2148197T3 (es) | 1993-06-29 | 2000-10-16 | Cit Alcatel | Metodo de resecuenciacion y dispositivo de resecuenciacion que realiza tal metodo. |
US5363448A (en) | 1993-06-30 | 1994-11-08 | United Technologies Automotive, Inc. | Pseudorandom number generation and cryptographic authentication |
JP3452655B2 (ja) | 1993-09-27 | 2003-09-29 | 株式会社日立製作所 | ディジタル信号処理プロセッサおよびそれを用いて命令を実行する方法 |
CA2107299C (en) | 1993-09-29 | 1997-02-25 | Mehrad Yasrebi | High performance machine for switched communications in a heterogenous data processing network gateway |
US6141689A (en) | 1993-10-01 | 2000-10-31 | International Business Machines Corp. | Method and mechanism for allocating switched communications ports in a heterogeneous 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 |
EP0650116B1 (en) | 1993-10-21 | 1998-12-09 | Sun Microsystems, Inc. | Counterflow pipeline processor |
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 |
US5848276A (en) | 1993-12-06 | 1998-12-08 | Cpu Technology, Inc. | High speed, direct register access operation for parallel processing units |
US5487159A (en) | 1993-12-23 | 1996-01-23 | Unisys Corporation | System for processing shift, mask, and merge operations in one instruction |
DE69420540T2 (de) | 1994-01-03 | 2000-02-10 | Intel Corp., Santa Clara | 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 |
US5835755A (en) | 1994-04-04 | 1998-11-10 | At&T Global Information Solutions Company | Multi-processor computer system for operating parallel client/server database processes |
JP3547482B2 (ja) | 1994-04-15 | 2004-07-28 | 株式会社日立製作所 | 情報処理装置 |
AUPM519694A0 (en) | 1994-04-19 | 1994-05-12 | Griffith University | Method for testing and debugging computer programs |
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 |
US5721870A (en) | 1994-05-25 | 1998-02-24 | Nec Corporation | Lock control for a shared main storage data processing system |
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 |
US5781774A (en) | 1994-06-29 | 1998-07-14 | Intel Corporation | Processor having operating modes for an upgradeable multiprocessor computer system |
FR2722041B1 (fr) * | 1994-06-30 | 1998-01-02 | Samsung Electronics Co Ltd | Decodeur de huffman |
JP3810449B2 (ja) | 1994-07-20 | 2006-08-16 | 富士通株式会社 | キュー装置 |
US5860085A (en) | 1994-08-01 | 1999-01-12 | Cypress Semiconductor Corporation | Instruction set for a content addressable memory array with read/write circuits and an interface register logic block |
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 |
US5748950A (en) | 1994-09-20 | 1998-05-05 | Intel Corporation | Method and apparatus for providing an optimized compare-and-branch instruction |
US5717760A (en) | 1994-11-09 | 1998-02-10 | Channel One Communications, Inc. | Message protection system and method |
JP3725547B2 (ja) * | 1994-12-02 | 2005-12-14 | ヒュンダイ エレクトロニクス アメリカ インコーポレイテッド | 限定ラン分岐予測 |
JP3169779B2 (ja) | 1994-12-19 | 2001-05-28 | 日本電気株式会社 | マルチスレッドプロセッサ |
US5610864A (en) | 1994-12-23 | 1997-03-11 | Micron Technology, Inc. | Burst EDO memory device with maximized write cycle timing |
JPH08272648A (ja) | 1994-12-29 | 1996-10-18 | Hitachi Ltd | デバッグコマンドファイルを自動的に生成する方法、およびデバッグコマンドファイルにおいてブレークポイントを自動的に再生成する装置 |
US5550816A (en) | 1994-12-29 | 1996-08-27 | Storage Technology Corporation | Method and apparatus for virtual switching |
US5812811A (en) | 1995-02-03 | 1998-09-22 | International Business Machines Corporation | Executing speculative parallel instructions threads with forking and inter-thread communication |
US5784712A (en) | 1995-03-01 | 1998-07-21 | Unisys Corporation | Method and apparatus for locally generating addressing information for a memory access |
US5649157A (en) | 1995-03-30 | 1997-07-15 | Hewlett-Packard Co. | Memory controller with priority queues |
US5651137A (en) | 1995-04-12 | 1997-07-22 | Intel Corporation | Scalable cache attributes for an input/output bus |
TW360852B (en) | 1995-04-12 | 1999-06-11 | Matsushita Electric Ind Co Ltd | Pipeline processor |
US5886992A (en) | 1995-04-14 | 1999-03-23 | Valtion Teknillinen Tutkimuskeskus | Frame synchronized ring system and method |
US5758184A (en) | 1995-04-24 | 1998-05-26 | Microsoft Corporation | System for performing asynchronous file operations requested by runnable threads by processing completion messages with different queue thread and checking for completion by runnable threads |
US5704054A (en) | 1995-05-09 | 1997-12-30 | Yale University | Counterflow pipeline processor architecture for semi-custom application specific IC's |
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 |
GB9509987D0 (en) | 1995-05-17 | 1995-07-12 | Sgs Thomson Microelectronics | Manipulation of data |
GB9509989D0 (en) | 1995-05-17 | 1995-07-12 | Sgs Thomson Microelectronics | Manipulation of data |
GB9509983D0 (en) | 1995-05-17 | 1995-07-12 | Sgs Thomson Microelectronics | Replication of data |
GB9509988D0 (en) | 1995-05-17 | 1995-07-12 | Sgs Thomson Microelectronics | Matrix transposition |
JPH08320797A (ja) | 1995-05-24 | 1996-12-03 | Fuji Xerox Co Ltd | プログラム制御システム |
US5680564A (en) | 1995-05-26 | 1997-10-21 | National Semiconductor Corporation | Pipelined processor with two tier prefetch buffer structure and method with bypass |
US5644780A (en) | 1995-06-02 | 1997-07-01 | International Business Machines Corporation | Multiple port high speed register file with interleaved write ports for use with very long instruction word (vlin) and n-way superscaler processors |
US5828746A (en) | 1995-06-07 | 1998-10-27 | Lucent Technologies Inc. | Telecommunications network |
US5828863A (en) | 1995-06-09 | 1998-10-27 | Canon Information Systems, Inc. | Interface device connected between a LAN and a printer for outputting formatted debug information about the printer to the printer |
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 | 배순훈 | 가변길이 부호기 |
GB9513515D0 (en) | 1995-07-03 | 1995-09-06 | Sgs Thomson Microelectronics | Expansion of data |
US5613071A (en) | 1995-07-14 | 1997-03-18 | Intel Corporation | Method and apparatus for providing remote memory access in a distributed memory multiprocessor system |
GB9514695D0 (en) | 1995-07-18 | 1995-09-13 | Sgs Thomson Microelectronics | Combining data values |
GB9514684D0 (en) | 1995-07-18 | 1995-09-13 | Sgs Thomson Microelectronics | An arithmetic unit |
US5680641A (en) | 1995-08-16 | 1997-10-21 | Sharp Microelectronics Technology, Inc. | Multiple register bank system for concurrent I/O operation in a CPU datapath |
US5900025A (en) | 1995-09-12 | 1999-05-04 | Zsp Corporation | Processor having a hierarchical control register file and methods for operating the same |
US5940612A (en) | 1995-09-27 | 1999-08-17 | International Business Machines Corporation | System and method for queuing of tasks in a multiprocessing system |
US5875470A (en) | 1995-09-28 | 1999-02-23 | International Business Machines Corporation | Multi-port multiple-simultaneous-access DRAM chip |
US5689566A (en) | 1995-10-24 | 1997-11-18 | Nguyen; Minhtam C. | Network with secure communications sessions |
US5809530A (en) | 1995-11-13 | 1998-09-15 | Motorola, Inc. | Method and apparatus for processing multiple cache misses using reload folding and store merging |
KR0150072B1 (ko) | 1995-11-30 | 1998-10-15 | 양승택 | 병렬처리 컴퓨터 시스템에서의 메모리 데이타 경로 제어장치 |
US5796413A (en) | 1995-12-06 | 1998-08-18 | Compaq Computer Corporation | Graphics controller utilizing video memory to provide macro command capability and enhanched command buffering |
US5940866A (en) | 1995-12-13 | 1999-08-17 | International Business Machines Corporation | Information handling system having a local address queue for local storage of command blocks transferred from a host processing side |
US5699537A (en) | 1995-12-22 | 1997-12-16 | Intel Corporation | Processor microarchitecture for efficient dynamic scheduling and execution of chains of dependent instructions |
US5787454A (en) | 1995-12-27 | 1998-07-28 | Intel Corporation | Recorder buffer with interleaving mechanism for accessing a multi-parted circular memory array |
EP0870386B1 (de) | 1995-12-29 | 2000-04-12 | Tixi.Com GmbH Telecommunication | Verfahren und mikrocomputersystem zur automatischen, sicheren und direkten datenübertragung |
US5819080A (en) | 1996-01-02 | 1998-10-06 | Advanced Micro Devices, Inc. | Microprocessor using an instruction field to specify condition flags for use with branch instructions and a computer system employing the microprocessor |
US5802373A (en) | 1996-01-29 | 1998-09-01 | Digital Equipment Corporation | Method for providing a pipeline interpreter for a variable length instruction set |
US6201807B1 (en) | 1996-02-27 | 2001-03-13 | Lucent Technologies | Real-time hardware method and apparatus for reducing queue processing |
US5761507A (en) | 1996-03-05 | 1998-06-02 | International Business Machines Corporation | Client/server architecture supporting concurrent servers within a server with a transaction manager providing server/connection decoupling |
US5809235A (en) | 1996-03-08 | 1998-09-15 | International Business Machines Corporation | Object oriented network event management framework |
US5784649A (en) | 1996-03-13 | 1998-07-21 | Diamond Multimedia Systems, Inc. | Multi-threaded FIFO pool buffer and bus transfer control system |
US5797043A (en) | 1996-03-13 | 1998-08-18 | Diamond Multimedia Systems, Inc. | System for managing the transfer of data between FIFOs within pool memory and peripherals being programmable with identifications of the FIFOs |
US6199133B1 (en) | 1996-03-29 | 2001-03-06 | Compaq Computer Corporation | Management communication bus for networking devices |
KR100219597B1 (ko) | 1996-03-30 | 1999-09-01 | 윤종용 | 씨디-롬 드라이브에서의 큐잉 제어 방법 |
GB2311882B (en) | 1996-04-04 | 2000-08-09 | Videologic Ltd | A data processing management system |
US5944816A (en) | 1996-05-17 | 1999-08-31 | Advanced Micro Devices, Inc. | Microprocessor configured to execute multiple threads including interrupt service routines |
JPH1091443A (ja) | 1996-05-22 | 1998-04-10 | Seiko Epson Corp | 情報処理回路、マイクロコンピュータ及び電子機器 |
US5946487A (en) | 1996-06-10 | 1999-08-31 | Lsi Logic Corporation | Object-oriented multi-media architecture |
KR980004067A (ko) | 1996-06-25 | 1998-03-30 | 김광호 | 멀티프로세서 시스템의 데이터 송수신장치 및 방법 |
JP3541335B2 (ja) | 1996-06-28 | 2004-07-07 | 富士通株式会社 | 情報処理装置及び分散処理制御方法 |
US5937187A (en) | 1996-07-01 | 1999-08-10 | Sun Microsystems, Inc. | Method and apparatus for execution and preemption control of computer process entities |
US5933627A (en) | 1996-07-01 | 1999-08-03 | Sun Microsystems | Thread switch on blocked load or store using instruction thread field |
US6023742A (en) | 1996-07-18 | 2000-02-08 | University Of Washington | Reconfigurable computing architecture for providing pipelined data paths |
JP3745039B2 (ja) | 1996-08-01 | 2006-02-15 | 株式会社ルネサステクノロジ | 遅延命令を有するマイクロプロセッサ |
US5745913A (en) | 1996-08-05 | 1998-04-28 | Exponential Technology, Inc. | Multi-processor DRAM controller that prioritizes row-miss requests to stale banks |
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 |
US5812868A (en) | 1996-09-16 | 1998-09-22 | Motorola Inc. | Method and apparatus for selecting a register file in a data processing system |
US5937177A (en) | 1996-10-01 | 1999-08-10 | Sun Microsystems, Inc. | Control structure for a high-speed asynchronous pipeline |
US6072781A (en) | 1996-10-22 | 2000-06-06 | International Business Machines Corporation | Multi-tasking adapter for parallel network applications |
DE69718278T2 (de) | 1996-10-31 | 2003-08-21 | Texas Instruments Inc., Dallas | Methode und System zur Einzel-Zyklus-Ausführung aufeinanderfolgender Iterationen einer Befehlsschleife |
US5860158A (en) | 1996-11-15 | 1999-01-12 | Samsung Electronics Company, Ltd. | Cache control unit with a cache request transaction-oriented protocol |
US5857104A (en) | 1996-11-26 | 1999-01-05 | Hewlett-Packard Company | Synthetic dynamic branch prediction |
US6009505A (en) | 1996-12-02 | 1999-12-28 | Compaq Computer Corp. | System and method for routing one operand to arithmetic logic units from fixed register slots and another operand from any register slot |
CN1153133C (zh) | 1996-12-09 | 2004-06-09 | 松下电器产业株式会社 | 采用小规模硬件作高命中率分支预测的信息处理装置 |
US5905876A (en) | 1996-12-16 | 1999-05-18 | Intel Corporation | Queue ordering for memory and I/O transactions in a multiple concurrent transaction computer system |
US6212542B1 (en) | 1996-12-16 | 2001-04-03 | International Business Machines Corporation | Method and system for executing a program within a multiscalar processor by processing linked thread descriptors |
US5946222A (en) | 1996-12-20 | 1999-08-31 | Oak Technology, Inc. | Method and apparatus for performing a masked byte addition operation |
US6088788A (en) * | 1996-12-27 | 2000-07-11 | International Business Machines Corporation | Background completion of instruction and associated fetch request in a multithread processor |
US6098110A (en) | 1996-12-30 | 2000-08-01 | Compaq Computer Corporation | Network switch with a multiple bus structure and a bridge interface for transferring network data between different buses |
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 |
US5854922A (en) | 1997-01-16 | 1998-12-29 | Ford Motor Company | Micro-sequencer apparatus and method of combination state machine and instruction memory |
US5961628A (en) | 1997-01-28 | 1999-10-05 | Samsung Electronics Co., Ltd. | Load and store unit for a vector processor |
US5872963A (en) | 1997-02-18 | 1999-02-16 | Silicon Graphics, Inc. | Resumption of preempted non-privileged threads with no kernel intervention |
US6256115B1 (en) | 1997-02-21 | 2001-07-03 | Worldquest Network, Inc. | Facsimile network |
US6269391B1 (en) | 1997-02-24 | 2001-07-31 | Novell, Inc. | Multi-processor scheduling kernel |
US5742587A (en) | 1997-02-28 | 1998-04-21 | Lanart Corporation | Load balancing port switching hub |
EP0863462B8 (en) * | 1997-03-04 | 2010-07-28 | Panasonic Corporation | 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 |
US5905889A (en) | 1997-03-20 | 1999-05-18 | International Business Machines Corporation | Resource management system using next available integer from an integer pool and returning the integer thereto as the next available integer upon completion of use |
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 |
US6298370B1 (en) | 1997-04-04 | 2001-10-02 | Texas Instruments Incorporated | Computer operating process allocating tasks between first and second processors at run time based upon current processor load |
US5983274A (en) | 1997-05-08 | 1999-11-09 | Microsoft Corporation | Creation and use of control information associated with packetized network data by protocol drivers and device drivers |
US6141765A (en) | 1997-05-19 | 2000-10-31 | Gigabus, Inc. | Low power, high speed communications bus |
KR100212064B1 (ko) | 1997-05-21 | 1999-08-02 | 윤종용 | 2n X n 다중화 스위치 구조 |
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 |
US6139199A (en) | 1997-06-11 | 2000-10-31 | Sun Microsystems, Inc. | Fast just-in-time (JIT) scheduler |
US6092158A (en) | 1997-06-13 | 2000-07-18 | Intel Corporation | Method and apparatus for arbitrating between command streams |
US6182177B1 (en) | 1997-06-13 | 2001-01-30 | Intel Corporation | Method and apparatus for maintaining one or more queues of elements such as commands using one or more token queues |
US6067585A (en) | 1997-06-23 | 2000-05-23 | Compaq Computer Corporation | Adaptive interface controller that can operate with segments of different protocol and transmission rates in a single integrated device |
US5993627A (en) | 1997-06-24 | 1999-11-30 | Large Scale Biology Corporation | Automated system for two-dimensional electrophoresis |
US5870597A (en) | 1997-06-25 | 1999-02-09 | Sun Microsystems, Inc. | Method for speculative calculation of physical register addresses in an out of order processor |
KR100216371B1 (ko) | 1997-06-30 | 1999-08-16 | 윤종용 | 고장 감내형 대용량 ATM 스위치 및 2nXn 다중화스위치에서의 셀프라우팅 방법 |
US5887134A (en) | 1997-06-30 | 1999-03-23 | Sun Microsystems | System and method for preserving message order while employing both programmed I/O and DMA operations |
US6393483B1 (en) | 1997-06-30 | 2002-05-21 | Adaptec, Inc. | Method and apparatus for network interface card load balancing and port aggregation |
US5938736A (en) | 1997-06-30 | 1999-08-17 | Sun Microsystems, Inc. | Search engine architecture for a high performance multi-layer switch element |
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 |
US6247025B1 (en) | 1997-07-17 | 2001-06-12 | International Business Machines Corporation | Locking and unlocking mechanism for controlling concurrent access to objects |
US6157988A (en) | 1997-08-01 | 2000-12-05 | Micron Technology, Inc. | Method and apparatus for high performance branching in pipelined microsystems |
US6141348A (en) | 1997-08-25 | 2000-10-31 | Cisco Technology, Inc. | Constant-time programmable field extraction system and method |
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 |
US6014729A (en) | 1997-09-29 | 2000-01-11 | Firstpass, Inc. | Shared memory arbitration apparatus and method |
US6223208B1 (en) | 1997-10-03 | 2001-04-24 | International Business Machines Corporation | Moving data in and out of processor units using idle register/storage functional units |
UA55489C2 (uk) * | 1997-10-07 | 2003-04-15 | Каналь+ Сосьєте Анонім | Пристрій для багатопотокової обробки даних (варіанти) |
US5943491A (en) | 1997-10-20 | 1999-08-24 | Sun Microsystems, Inc. | Control circuit of mutual exclusion elements |
US6697935B1 (en) | 1997-10-23 | 2004-02-24 | International Business Machines Corporation | Method and apparatus for selecting thread switch events in a multithreaded processor |
US6567839B1 (en) * | 1997-10-23 | 2003-05-20 | International Business Machines Corporation | Thread switch control in a multithreaded processor system |
US6085294A (en) | 1997-10-24 | 2000-07-04 | Compaq Computer Corporation | Distributed data dependency stall mechanism |
US6061710A (en) | 1997-10-29 | 2000-05-09 | International Business Machines Corporation | Multithreaded processor incorporating a thread latch register for interrupt service new pending threads |
US5915123A (en) | 1997-10-31 | 1999-06-22 | Silicon Spice | Method and apparatus for controlling configuration memory contexts of processing elements in a network of multiple context processing elements |
US6279066B1 (en) | 1997-11-14 | 2001-08-21 | Agere Systems Guardian Corp. | System for negotiating access to a shared resource by arbitration logic in a shared resource negotiator |
US6223277B1 (en) | 1997-11-21 | 2001-04-24 | Texas Instruments Incorporated | Data processing circuit with packed data structure capability |
US6360262B1 (en) | 1997-11-24 | 2002-03-19 | International Business Machines Corporation | Mapping web server objects to TCP/IP ports |
US5923872A (en) | 1997-11-26 | 1999-07-13 | Digital Equipment Corporation | Apparatus for sampling instruction operand or result values in a processor pipeline |
US6070231A (en) | 1997-12-02 | 2000-05-30 | Intel Corporation | Method and apparatus for processing memory requests that require coherency transactions |
US6144669A (en) | 1997-12-12 | 2000-11-07 | Newbridge Networks Corporation | Prioritized PVC management queues for improved frame processing capabilities |
US5948081A (en) | 1997-12-22 | 1999-09-07 | Compaq Computer Corporation | System for flushing queued memory write request corresponding to a queued read request and all prior write requests with counter indicating requests to be flushed |
US6259699B1 (en) | 1997-12-30 | 2001-07-10 | Nexabit Networks, Llc | System architecture for and method of processing packets and/or cells in a common switch |
JPH11203860A (ja) | 1998-01-07 | 1999-07-30 | Nec Corp | 半導体記憶装置 |
US6134665A (en) | 1998-01-20 | 2000-10-17 | Digital Equipment Corporation | Computer with remote wake up and transmission of a status packet when the computer fails a self test |
US6145054A (en) | 1998-01-21 | 2000-11-07 | Sun Microsystems, Inc. | Apparatus and method for handling multiple mergeable misses in a non-blocking cache |
US6230119B1 (en) | 1998-02-06 | 2001-05-08 | Patrick Michael Mitchell | Integrated circuit with embedded emulator and emulation system for use with such an integrated circuit |
US6415338B1 (en) | 1998-02-11 | 2002-07-02 | Globespan, Inc. | System for writing a data value at a starting address to a number of consecutive locations equal to a segment length identifier |
US5970013A (en) | 1998-02-26 | 1999-10-19 | Lucent Technologies Inc. | Adaptive addressable circuit redundancy method and apparatus with broadcast write |
US6205468B1 (en) | 1998-03-10 | 2001-03-20 | Lucent Technologies, Inc. | System for multitasking management employing context controller having event vector selection by priority encoding of contex events |
US6446190B1 (en) | 1998-03-12 | 2002-09-03 | Bops, Inc. | Register file indexing methods and apparatus for providing indirect control of register addressing in a VLIW processor |
US6279113B1 (en) | 1998-03-16 | 2001-08-21 | Internet Tools, Inc. | Dynamic signature inspection-based network intrusion detection |
US6005575A (en) | 1998-03-23 | 1999-12-21 | Microsoft Corporation | Foreground window determination through process and thread initialization |
US6052769A (en) | 1998-03-31 | 2000-04-18 | Intel Corporation | Method and apparatus for moving select non-contiguous bytes of packed data in a single instruction |
US6223238B1 (en) | 1998-03-31 | 2001-04-24 | Micron Electronics, Inc. | Method of peer-to-peer mastering over a computer bus |
US6092175A (en) | 1998-04-02 | 2000-07-18 | University Of Washington | Shared register storage mechanisms for multithreaded computer systems with out-of-order execution |
US6079008A (en) | 1998-04-03 | 2000-06-20 | Patton Electronics Co. | Multiple thread multiple data predictive coded parallel processing system and method |
KR100280460B1 (ko) | 1998-04-08 | 2001-02-01 | 김영환 | 데이터 처리 장치 및 이의 복수의 스레드 처리 방법 |
US6275508B1 (en) | 1998-04-21 | 2001-08-14 | Nexabit Networks, Llc | Method of and system for processing datagram headers for high speed computer network interfaces at low clock speeds, utilizing scalable algorithms for performing such network header adaptation (SAPNA) |
US6115777A (en) | 1998-04-21 | 2000-09-05 | Idea Corporation | LOADRS instruction and asynchronous context switch |
US6408325B1 (en) | 1998-05-06 | 2002-06-18 | Sun Microsystems, Inc. | Context switching technique for processors with large register files |
US6092127A (en) | 1998-05-15 | 2000-07-18 | Hewlett-Packard Company | Dynamic allocation and reallocation of buffers in links of chained DMA operations by receiving notification of buffer full and maintaining a queue of buffers available |
US6496847B1 (en) | 1998-05-15 | 2002-12-17 | Vmware, Inc. | System and method for virtualizing computer systems |
EP0961181A1 (en) | 1998-05-29 | 1999-12-01 | Denso Corporation | Hologram and process for producing hologram |
US6275505B1 (en) | 1998-05-30 | 2001-08-14 | Alcatel Canada Inc. | Method and apparatus for packetizing data into a data stream |
US6157955A (en) | 1998-06-15 | 2000-12-05 | Intel Corporation | Packet processing system including a policy engine having a classification unit |
US6272616B1 (en) | 1998-06-17 | 2001-08-07 | Agere Systems Guardian Corp. | Method and apparatus for executing multiple instruction streams in a digital processor with multiple data paths |
US6434145B1 (en) | 1998-06-22 | 2002-08-13 | Applied Micro Circuits Corporation | Processing of network data by parallel processing channels |
US6101599A (en) | 1998-06-29 | 2000-08-08 | Cisco Technology, Inc. | System for context switching between processing elements in a pipeline of processing elements |
US6195739B1 (en) | 1998-06-29 | 2001-02-27 | Cisco Technology, Inc. | Method and apparatus for passing data among processor complex stages of a pipelined processing engine |
US6836838B1 (en) | 1998-06-29 | 2004-12-28 | Cisco Technology, Inc. | Architecture for a processor complex of an arrayed pipelined processing engine |
US6373848B1 (en) | 1998-07-28 | 2002-04-16 | International Business Machines Corporation | Architecture for a multi-port adapter with a single media access control (MAC) |
US6073215A (en) | 1998-08-03 | 2000-06-06 | Motorola, Inc. | Data processing system having a data prefetch mechanism and method therefor |
US6160562A (en) | 1998-08-18 | 2000-12-12 | Compaq Computer Corporation | System and method for aligning an initial cache line of data read from local memory by an input/output device |
US6564316B1 (en) | 1998-09-10 | 2003-05-13 | Parthusceva Ltd. | Method and apparatus for reducing code size by executing no operation instructions that are not explicitly included in code using programmable delay slots |
US6505229B1 (en) | 1998-09-25 | 2003-01-07 | Intelect Communications, Inc. | Method for allowing multiple processing threads and tasks to execute on one or more processor units for embedded real-time processor systems |
US6356962B1 (en) | 1998-09-30 | 2002-03-12 | Stmicroelectronics, Inc. | Network device and method of controlling flow of data arranged in frames in a data-based network |
US6347344B1 (en) | 1998-10-14 | 2002-02-12 | Hitachi, Ltd. | Integrated multimedia system with local processor, data transfer switch, processing modules, fixed functional unit, data streamer, interface unit and multiplexer, all integrated on multimedia processor |
US6560629B1 (en) * | 1998-10-30 | 2003-05-06 | Sun Microsystems, Inc. | Multi-thread processing |
US6212611B1 (en) | 1998-11-03 | 2001-04-03 | Intel Corporation | Method and apparatus for providing a pipelined memory controller |
US6230261B1 (en) | 1998-12-02 | 2001-05-08 | I. P. First, L.L.C. | Method and apparatus for predicting conditional branch instruction outcome based on branch condition test type |
US6718457B2 (en) | 1998-12-03 | 2004-04-06 | Sun Microsystems, Inc. | Multiple-thread processor for threaded software applications |
US6230230B1 (en) | 1998-12-03 | 2001-05-08 | Sun Microsystems, Inc. | Elimination of traps and atomics in thread synchronization |
US6389449B1 (en) | 1998-12-16 | 2002-05-14 | Clearwater Networks, Inc. | Interstream control and communications for multi-streaming digital processors |
US6401155B1 (en) | 1998-12-22 | 2002-06-04 | Philips Electronics North America Corporation | Interrupt/software-controlled thread processing |
US6378124B1 (en) | 1999-02-22 | 2002-04-23 | International Business Machines Corporation | Debugger thread synchronization control points |
US6378125B1 (en) | 1999-02-22 | 2002-04-23 | International Business Machines Corporation | Debugger thread identification points |
US6574702B2 (en) | 1999-02-23 | 2003-06-03 | Netlogic Microsystems, Inc. | Method and apparatus for determining an exact match in a content addressable memory device |
US6338133B1 (en) | 1999-03-12 | 2002-01-08 | International Business Machines Corporation | Measured, allocation of speculative branch instructions to processor execution units |
US6304956B1 (en) | 1999-03-25 | 2001-10-16 | Rise Technology Company | Using two barrel shifters to implement shift, rotate, rotate with carry, and shift double as specified by the X86 architecture |
US6314510B1 (en) | 1999-04-14 | 2001-11-06 | Sun Microsystems, Inc. | Microprocessor with reduced context switching overhead and corresponding method |
US6256713B1 (en) | 1999-04-29 | 2001-07-03 | International Business Machines Corporation | Bus optimization with read/write coherence including ordering responsive to collisions |
US6351808B1 (en) | 1999-05-11 | 2002-02-26 | Sun Microsystems, Inc. | Vertically and horizontally threaded processor with multidimensional storage for storing thread data |
KR20010025178A (ko) | 1999-08-27 | 2001-04-06 | 체시바사트 위차이 | 푸에라리아 미리피카, 부테아 수페르바 및/또는 무쿠나콜레티 유래의 추출물 및 그 추출방법, 상기 추출물을유효성분으로 함유하는 식품, 음료, 약 및/또는 화장품 및그 제조방법 |
US6427196B1 (en) | 1999-08-31 | 2002-07-30 | Intel Corporation | SRAM controller for parallel processor architecture including address and command queue and arbiter |
US6668317B1 (en) | 1999-08-31 | 2003-12-23 | Intel Corporation | Microengine for parallel processor architecture |
US6606704B1 (en) | 1999-08-31 | 2003-08-12 | Intel Corporation | Parallel multithreaded processor with plural microengines executing multiple threads each microengine having loadable microcode |
US6983350B1 (en) | 1999-08-31 | 2006-01-03 | Intel Corporation | SDRAM controller for parallel processor architecture |
WO2001016702A1 (en) | 1999-09-01 | 2001-03-08 | Intel Corporation | Register set used in multithreaded parallel processor architecture |
WO2001018646A1 (en) | 1999-09-01 | 2001-03-15 | Intel Corporation | Branch instruction for multithreaded processor |
WO2001016697A2 (en) | 1999-09-01 | 2001-03-08 | Intel Corporation | Local register instruction for micro engine used in multithreadedparallel processor architecture |
ATE534074T1 (de) | 1999-09-01 | 2011-12-15 | Intel Corp | Kontextwechselbefehl für multithread-prozessor |
US7191309B1 (en) | 1999-09-01 | 2007-03-13 | Intel Corporation | Double shift instruction for micro engine used in multithreaded parallel processor architecture |
US6543049B1 (en) | 1999-09-03 | 2003-04-01 | International Business Machines Corporation | Ranked break points and method for debugging a computer program |
US6681341B1 (en) | 1999-11-03 | 2004-01-20 | Cisco Technology, Inc. | Processor isolation method for integrated multi-processor systems |
US6523108B1 (en) | 1999-11-23 | 2003-02-18 | Sony Corporation | Method of and apparatus for extracting a string of bits from a binary bit string and depositing a string of bits onto a binary bit string |
US6889319B1 (en) | 1999-12-09 | 2005-05-03 | Intel Corporation | Method and apparatus for entering and exiting multiple threads within a multithreaded processor |
US6532509B1 (en) | 1999-12-22 | 2003-03-11 | Intel Corporation | Arbitrating command requests in a parallel multi-threaded processing system |
US6694380B1 (en) | 1999-12-27 | 2004-02-17 | Intel Corporation | Mapping requests from a processing unit that uses memory-mapped input-output space |
US7051329B1 (en) | 1999-12-28 | 2006-05-23 | Intel Corporation | Method and apparatus for managing resources in a multithreaded processor |
US6324624B1 (en) | 1999-12-28 | 2001-11-27 | Intel Corporation | Read lock miss control and queue management |
US6463072B1 (en) | 1999-12-28 | 2002-10-08 | Intel Corporation | Method and apparatus for sharing access to a bus |
US6625654B1 (en) | 1999-12-28 | 2003-09-23 | Intel Corporation | Thread signaling in multi-threaded network processor |
US6307789B1 (en) | 1999-12-28 | 2001-10-23 | Intel Corporation | Scratchpad memory |
US6631430B1 (en) | 1999-12-28 | 2003-10-07 | Intel Corporation | Optimizations to receive packet status from fifo bus |
US6560667B1 (en) | 1999-12-28 | 2003-05-06 | Intel Corporation | Handling contiguous memory references in a multi-queue system |
US6661794B1 (en) | 1999-12-29 | 2003-12-09 | Intel Corporation | Method and apparatus for gigabit packet assignment for multithreaded packet processing |
US6584522B1 (en) | 1999-12-30 | 2003-06-24 | Intel Corporation | Communication between processors |
US6976095B1 (en) | 1999-12-30 | 2005-12-13 | Intel Corporation | Port blocking technique for maintaining receive packet ordering for a multiple ethernet port switch |
US6631462B1 (en) | 2000-01-05 | 2003-10-07 | Intel Corporation | Memory shared between processing threads |
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 |
US6629237B2 (en) | 2000-09-01 | 2003-09-30 | Intel Corporation | Solving parallel problems employing hardware multi-threading in a parallel processing environment |
US20020053017A1 (en) | 2000-09-01 | 2002-05-02 | Adiletta Matthew J. | Register instructions for a multithreaded processor |
US6560671B1 (en) | 2000-09-11 | 2003-05-06 | Intel Corporation | Method and apparatus for accelerating exchange or swap instructions using a register alias table (RAT) and content addressable memory (CAM) with logical register numbers as input addresses |
US6784889B1 (en) | 2000-12-13 | 2004-08-31 | Micron Technology, Inc. | Memory system and method for improved utilization of read and write bandwidth of a graphics processing system |
US7020871B2 (en) | 2000-12-21 | 2006-03-28 | Intel Corporation | Breakpoint method for parallel hardware threads in multithreaded processor |
US6862676B1 (en) | 2001-01-16 | 2005-03-01 | Sun Microsystems, Inc. | Superscalar processor having content addressable memory structures for determining dependencies |
US7225281B2 (en) | 2001-08-27 | 2007-05-29 | Intel Corporation | Multiprocessor infrastructure for providing flexible bandwidth allocation via multiple instantiations of separate data buses, control buses and support mechanisms |
US7487505B2 (en) | 2001-08-27 | 2009-02-03 | Intel Corporation | Multithreaded microprocessor with register allocation based on number of active threads |
US6934951B2 (en) | 2002-01-17 | 2005-08-23 | Intel Corporation | Parallel processor with functional pipeline providing programming engines by supporting multiple contexts and critical section |
US7181594B2 (en) | 2002-01-25 | 2007-02-20 | Intel Corporation | Context pipelines |
US7437724B2 (en) | 2002-04-03 | 2008-10-14 | Intel Corporation | Registers for data transfers |
US6971103B2 (en) | 2002-10-15 | 2005-11-29 | Sandbridge Technologies, Inc. | Inter-thread communications using shared interrupt register |
-
2000
- 2000-08-31 WO PCT/US2000/023992 patent/WO2001018646A1/en active Application Filing
- 2000-08-31 WO PCT/US2000/024006 patent/WO2001016713A1/en active Application Filing
- 2000-08-31 AU AU73407/00A patent/AU7340700A/en not_active Abandoned
- 2000-08-31 EP EP00959717A patent/EP1236092A4/en not_active Ceased
- 2000-08-31 WO PCT/US2000/023994 patent/WO2001016722A1/en active Application Filing
- 2000-08-31 EP EP00961457A patent/EP1236094B1/en not_active Expired - Lifetime
- 2000-08-31 AU AU70979/00A patent/AU7097900A/en not_active Abandoned
- 2000-08-31 EP EP00959714A patent/EP1236093A4/en not_active Ceased
- 2000-08-31 EP EP00959712A patent/EP1236097A4/en not_active Withdrawn
- 2000-08-31 AT AT00961457T patent/ATE475930T1/de not_active IP Right Cessation
- 2000-08-31 CN CNB008154309A patent/CN1254739C/zh not_active Expired - Fee Related
- 2000-08-31 CN CNB008144966A patent/CN100474236C/zh not_active Expired - Fee Related
- 2000-08-31 AU AU70985/00A patent/AU7098500A/en not_active Abandoned
- 2000-08-31 CA CA002383532A patent/CA2383532A1/en not_active Abandoned
- 2000-08-31 AT AT00959711T patent/ATE396449T1/de not_active IP Right Cessation
- 2000-08-31 WO PCT/US2000/024000 patent/WO2001016714A1/en active Application Filing
- 2000-08-31 CA CA002386562A patent/CA2386562A1/en not_active Abandoned
- 2000-08-31 CN CNB008154376A patent/CN1184562C/zh not_active Expired - Fee Related
- 2000-08-31 AU AU70986/00A patent/AU7098600A/en not_active Abandoned
- 2000-08-31 CN CNB008151237A patent/CN1296818C/zh not_active Expired - Fee Related
- 2000-08-31 AU AU70984/00A patent/AU7098400A/en not_active Abandoned
- 2000-08-31 CN CNB008148740A patent/CN1271513C/zh not_active Expired - Fee Related
- 2000-08-31 CN CNB008154171A patent/CN100342326C/zh not_active Expired - Fee Related
- 2000-08-31 WO PCT/US2000/023983 patent/WO2001016715A1/en active Application Filing
- 2000-08-31 CA CA002386558A patent/CA2386558C/en not_active Expired - Fee Related
- 2000-08-31 CA CA002383528A patent/CA2383528C/en not_active Expired - Fee Related
- 2000-08-31 CA CA002383531A patent/CA2383531A1/en not_active Abandoned
- 2000-08-31 EP EP00959713A patent/EP1242869B1/en not_active Expired - Lifetime
- 2000-08-31 AU AU73406/00A patent/AU7340600A/en not_active Abandoned
- 2000-08-31 AU AU73404/00A patent/AU7340400A/en not_active Abandoned
- 2000-08-31 AU AU70990/00A patent/AU7099000A/en not_active Abandoned
- 2000-08-31 DE DE60044752T patent/DE60044752D1/de not_active Expired - Lifetime
- 2000-08-31 WO PCT/US2000/023982 patent/WO2001016758A2/en active Application Filing
- 2000-08-31 CA CA002383526A patent/CA2383526A1/en not_active Abandoned
- 2000-08-31 WO PCT/US2000/023996 patent/WO2001016716A1/en active Application Filing
- 2000-08-31 EP EP00959711A patent/EP1236088B9/en not_active Expired - Lifetime
- 2000-08-31 US US10/069,195 patent/US7421572B1/en not_active Expired - Fee Related
- 2000-08-31 DE DE60038976T patent/DE60038976D1/de not_active Expired - Lifetime
- 2000-08-31 AU AU70987/00A patent/AU7098700A/en not_active Abandoned
- 2000-09-01 CA CA002383540A patent/CA2383540A1/en not_active Abandoned
- 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 EP EP00961484A patent/EP1242867A4/en not_active Withdrawn
- 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-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 TW089117907A patent/TW594562B/zh not_active IP Right Cessation
- 2000-10-18 TW TW089117911A patent/TW548584B/zh not_active IP Right Cessation
- 2000-10-18 TW TW089117905A patent/TW569133B/zh not_active IP Right Cessation
- 2000-10-18 TW TW089117900A patent/TW486666B/zh not_active IP Right Cessation
- 2000-10-18 TW TW089117912A patent/TW546585B/zh not_active IP Right Cessation
- 2000-10-18 TW TW089117902A patent/TW571239B/zh not_active IP Right Cessation
- 2000-10-18 TW TW089117906A patent/TWI221251B/zh not_active IP Right Cessation
-
2002
- 2002-10-21 HK HK02107606.9A patent/HK1046049A1/zh unknown
- 2002-11-07 HK HK02108083.9A patent/HK1046566A1/zh unknown
- 2002-11-07 HK HK02108082.0A patent/HK1046565A1/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
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1180864A (zh) * | 1996-08-19 | 1998-05-06 | 三星电子株式会社 | 多媒体信号处理器中的单指令多数据处理方法及其装置 |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100351781C (zh) | 多线程并行处理器结构中所用的微引擎的存储器引用指令 | |
TWI229259B (en) | A method and related apparatus and computer program product for distributed memory control and bandwidth optimization | |
CN101221493B (zh) | 用于并行处理的方法和设备 | |
US20020053016A1 (en) | Solving parallel problems employing hardware multi-threading in a parallel processing environment | |
US10635593B2 (en) | Create page locality in cache controller cache allocation | |
USRE41849E1 (en) | Parallel multi-threaded processing | |
US9317204B2 (en) | System and method for I/O optimization in a multi-queued environment | |
TWI294573B (en) | Apparatus and method for controlling establishing command order in an out of order dma command queue, and computer readable medium recording with related instructions | |
EP1214661B1 (en) | Sdram controller for parallel processor architecture | |
US6173369B1 (en) | Computer system for processing multiple requests and out of order returns using a request queue | |
EP1221105B1 (en) | Parallel processor architecture | |
CN1961300A (zh) | 使用集成dma引擎进行高性能易失性磁盘驱动器存储器访问的装置和方法 | |
WO2016070197A1 (en) | Multicore bus architecture with non-blocking high performance transaction credit system | |
US9542336B2 (en) | Isochronous agent data pinning in a multi-level memory system | |
JP2018519581A (ja) | メモリ管理ユニットに対するマルチスレッド変換およびトランザクション並べ替え | |
US8902915B2 (en) | Dataport and methods thereof | |
US20250077340A1 (en) | Method and apparatus for managing memory in memory disaggregation environment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
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: 1051730 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: 20071128 Termination date: 20160901 |