CN1547695A - 具有基于活动线程号的寄存器分配的多线程微处理器 - Google Patents

具有基于活动线程号的寄存器分配的多线程微处理器 Download PDF

Info

Publication number
CN1547695A
CN1547695A CNA028167732A CN02816773A CN1547695A CN 1547695 A CN1547695 A CN 1547695A CN A028167732 A CNA028167732 A CN A028167732A CN 02816773 A CN02816773 A CN 02816773A CN 1547695 A CN1547695 A CN 1547695A
Authority
CN
China
Prior art keywords
thread
register
processor
execution thread
configuration information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA028167732A
Other languages
English (en)
Other versions
CN1310135C (zh
Inventor
M����ɭ��³˹
M·罗森布鲁斯
C·沃尔里奇
̹��
D·伯恩斯坦恩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN1547695A publication Critical patent/CN1547695A/zh
Application granted granted Critical
Publication of CN1310135C publication Critical patent/CN1310135C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30123Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming

Abstract

多线程处理器中的一种机制,用于根据指示多少线程正在使用中的配置信息来分配资源。

Description

具有基于活动线程号的寄存器分配的多线程微处理器
                      相关申请的交叉参考
本申请要求以下申请的优先权:美国临时专利申请序列号60/315144(代理人摘要号为10559-579P01),于2001年8月27日提交。
                            背景
一般而言,多线程微处理器的硬件实现为每个线程的使用提供了固定数目的资源,比如寄存器、程序计数器等等。根据在微处理器上执行的应用程序内的对应量,不会使用某些线程。因此,未使用的线程资源被浪费,尤其是那些资源所耗用的功率和硅面积。
                         附图描述
图1示出一通信系统的框图,该通信系统采用了具有多线程微型发动机的处理器来支持多线程的执行。
图2示出微型发动机(图1的)的框图。
图3示出用于选择多个“使用中”线程的微型发动机控制和状态寄存器(CSR)。
图4示出(图2的微型发动机的)通用寄存器(GPS)文件的双库实现的示意图,该文件使用所选数目的“使用中”线程为线程分配寄存器。
图5示出八个“使用中”线程和四个“使用中”线程的线程GPR分配表。
图6A和6B分别示出按照八个“使用中”线程和四个“使用中”线程的线程GPR分配在GPR文件内的寄存器分区。
                         详细描述
参照图1,通信系统10包括处理器12,处理器12耦合到一个或多个I/O设备,比如网络设备14和16,还包括存储器系统18。处理器12是多线程的微处理器,因此尤其用于可被分成并行的子任务或函数的任务。在一个实施例中,如图所示,处理器12包括多个微型发动机20,每个都有多个硬件控制的程序线程22,这些线程可以是同时活动的,并且独立地对一个任务起作用。在所示示例中,有“n”个微型发动机20,每个微型发动机20都能处理多个程序线程22,下面将更完整地描述。在所述实施例中,所支持的环境线程的最大数目“N”为八,但也可以提供其它最大数。最好是,每个微型发动机20都连接到相邻的微型发动机并且与之通信。
处理器12还包括处理器24,处理器24帮助加载对处理器12的其它资源的微码控制,并且执行诸如处理协议和异常这样的其它通用计算机类型函数。在网络处理应用中,处理器24还可以为不能被微型发动机20处理的较高层网络处理任务提供支持。在一个实施例中,处理器24是基于StrongARM(ARM是英国ARM有限公司的商标)内核的结构。处理器(或内核)24具有一操作系统,处理器24通过该操作系统可以调用函数来操作微型发动机20。处理器24可以使用任何被支持的操作系统,最好是实时操作系统。也可以使用其它处理器结构。
微型发动机20各自与共享资源一起操作,共享资源包括:存储器系统18、PCI总线接口26、I/O接口28、哈希单元30和便笺式存储器32。PCI总线接口26向PCI总线(未示出)提供一接口。I/O接口28负责控制处理器12并将其接入网络设备14、16。存储器系统18包括用DRAM控制器36存取的动态随机存取存储器(DRAM)34、以及用SRAM控制器40存取的静态随机存取存储器(SRAM)38。尽管未示出,处理器12还会包括用于支持启动操作的非易失性存储器。DRAM34和DRAM控制器36一般用于处理大体积的数据,如处理来自网络分组的有效负载。在网络实现中,SRAM38和SRAM控制器40用于低等待时间的、快速存取任务,如存取处理器24的查找表、存储器等等。微型发动机20可以执行到DRAM控制器36或SRAM控制器40的存储器引用指令。
设备14和16可以是能发送并且/或者接收网络话务数据的任何网络设备,比如组帧/MAC设备,例如用于连接到10/100BaseT以太网、千兆比特以太网、ATM或其它类型的网络,或者用于连接到开关结构的设备。例如,在一种布局中,网络设备14可以是向处理器12发送分组数据的以太网MAC设备(连接到以太网网络,未示出),而设备16可以是从处理器12接收被处理的分组数据的开关结构设备用于发送到开关结构上。在这种实现中,也就是,当处理要被发送到开关结构的话务时,处理器12会担当入口网络处理器。或者,处理器12会担当出口网络处理器,处理从开关结构接收到的并且指向另一网络设备的话务,另一网络设备有:网络设备14,或者耦合到这种设备的网络。尽管处理器12可以工作在单机模式,支持两种话务方向,然而可以理解,为了达到较高的性能,可能希望使用两个专用处理器,一个作为入口处理器,另一个作为出口处理器。这两个专用处理器各自与设备14和16耦合。此外,各个网络设备14、16可以包括要被处理器12服务的多个端口。因此,I/O接口28支持一类或多类接口,比如用于物理层(PHY)设备和较高协议层(如链路层)之间的分组和单元传输的接口、或者用于异步传输模式(ATM)、因特网协议(IP)、以太网和类似的数据通信应用的话务管理器和开关结构之间的接口。I/O接口28包括分开的接收和发送块,每个块都单独地用于处理器12所支持的特定接口。
处理器12还可以服务其它设备,比如主机和/或PCI外部设备(未示出),它们可以耦合到PC接口26所控制的PCI总线。
通常,作为网络处理器,处理器12可以接到接收/发送大量数据的任何类型的通信设备或接口。充当网络处理器的处理器12会从像网络设备14这样的网络设备接收分组数据单元,并且以并行方式处理那些分组数据单元,如下所述。分组数据单元会包括整个网络分组(如以太网分组)或者一部分这样的分组,如一个单元或一个分组段。
处理器12的每个功能性单元都耦合到内部总线结构42。存储器总线44a、44b分别把存储器控制器36和40耦合到存储器系统18的相应存储器单元DRAM34和SRAM38。I/O接口28分别通过分开的I/O总线46a和46b耦合到设备14和16。
参照图2,示出一个示例性的微型发动机20。微型发动机(ME)20包括一个控制单元50,控制单元50包括控制存储器51、控制逻辑(即微控制器)52和环境判优器/事件逻辑53。控制存储器51用于存储微程序。微程序可以由处理器24加载。
微控制器52包括每个所支持线程的指令解码器和程序计数器单元。环境判优器/事件逻辑53从每一个共享资源接收消息(如SRAM事件应答),共享资源如:SRAM38、DRAM34或处理器内核24等等。这些消息提供了与所请求的函数是否完成有关的信息。
环境判优器/事件逻辑53对八个线程判优。在一个实施例中,判优是一个循环机制。然而,也可以使用其它判优技术,比如优先级队列或加权的合理队列。
微型发动机20还包括执行数据通路54以及耦合到控制单元50的通用寄存器(GPR)文件单元56。数据通路54包括几个数据通路元件,如图所示,第一数据通路元件58、第二数据通路元件59和第三数据通路元件60。数据通路元件可以包括例如ALU和乘法器。GPR文件单元56向各个数据通路元件提供操作数。GPR文件单元56的寄存器在程序控制下被专门地读写。GPR在用作指令内来源时向数据通路54提供操作数。在用作指令内的目的地时,用数据通路54的结果写入它们。指令指定了为源或目的地选择的特定GPR的寄存器号目。控制单元50所提供的指令内的操作码位选择了哪个数据通路元件要执行指令所定义的操作。
微型发动机20还包括写传输寄存器文件62和读传输寄存器文件64。写传输寄存器文件62存储要被写入微型发动机外部的资源(例如DRAM存储器或SRAM存储器)的数据。读传输寄存器文件64用于存储来自微型发动机20外部的资源的返回数据。在数据到达之后或同时,可以提供来自相应共享资源(如存储器控制器36、40或内核24)的事件信号64,来警告请求该数据的线程:数据可用或者已经被发送。两个传输寄存器文件62、64都连接到数据通路54、GPR文件单元56、以及控制单元50。
微型发动机20内还包括本地存储器66。本地存储器66由寄存器68a、68b定址,它也向数据通路54提供操作数。本地存储器66从数据通路54接收结果作为目的地。微型发动机20还包括:本地控制和状态寄存器(CSR)70,用于存储本地线程间和全局事件信令信息以及其它信息;以及耦合到传输寄存器的CRC单元72,与执行数据通路54并行操作并且为ATM单元执行CRC计算。本地CSR和CRC单元72耦合到传输寄存器、数据通路54和GPR文件单元56。
除了向写传输单元62提供输出以外,数据通路54还可以在线80上向GPR文件56提供输出。这样,每个数据通路元件从可以自被执行时返回一个结果值。
微型发动机线程22的功能是由为特定用户的应用程序被加载(通过内核处理器24)到每个微型发动机的控制存储器51内的微码来确定的。例如,在一个示例性线程任务指定中,指定一个线程作为接收调度器线程,指定另一个作为发送调度器线程,把多个线程配置为接收处理线程和发送处理线程,而其它线程任务指定包括发送判优器以及一个或多个内核通信线程。一旦被起动,线程就独立地执行它的功能。
参照图3,CSR70包括环境使能寄存器(“CTX_Enable”)90,该寄存器90包括“使用中”环境字段92,字段92用于指示使用中的预先选择的线程或环境数目。“使用中”环境字段92存储单个位,该位在被清除时(X=0)指示所有的8个可用线程都在使用中,而当被设定时(X=1)指示仅有预定义数目的线程在使用中,例如4个,更具体地说是线程0、2、4和6。
如图4所示,GPR文件单元56的GPR可以物理地和逻辑地被包含在两个库内,A库56a和B库56b。两个库内的GPR都包括数据部分100和地址部分102。多路复用器104与每个寄存器地址路径102耦合,从控制单元50接收线程号104和寄存器号106(来自指令)作为输入。多路复用器104的输出受使能信号110控制,该输出也就是被提供给地址路径102以选择寄存器109之一的“地址”形式。使能信号110的状态通过在CTX_Enable寄存器90的字段92内设定“In_Use”环境位来确定。
通常,每个线程具有为其分配的固定百分比的寄存器,例如在支持八个线程时为百分之一。如果未使用某些线程,则那些未使用线程专用的寄存器也不被使用。
相反,通过CTX_Enable CSR 90内的“使用中”环境配置信息控制的多路复用器104的使用允许重新划分寄存器地址内活动线程号/指令(寄存器号)位的位数,以及从而把寄存器重新分配给线程。更具体地说,当字段92内的位等于“0”时,“使用中”的线程数为8,且使能110控制多路复用器104选择活动线程号106的所有位以及由当前指令指定的寄存器号108的除最高有效位以外的所有位。相反,当字段92内的位被设为“1”时,“使用中”的线程数减少一半,且重新分布可用于分配的寄存器数目,使得每线程分配的寄存器数目加倍。
图5示出32个寄存器的寄存器文件的线程分配。对于8个线程,线程号0到7而言,每个线程分配到总共四个寄存器。对于4个线程,线程号0、2、4和6而言,每个线程分配到总共八个寄存器。
图6A和6B示出具有32个寄存器的寄存器文件(例如单个库,寄存器文件56a),这32个寄存器可用于在最大八个所支持线程中间的线程分配和重新分配。在8线程的配置120中,也就是有八个使用中的线程的情况,如图6A所示,每个线程都分配到四个寄存器。由于使能110为低,因此多路复用器104选择线程号的二进制表示的所有三个位、以及自指令的寄存器号的二进制表示中除最高有效位以外的所有位(也就是,选择两个位(位0和1))。对于4线程的配置122而言,也就是当使能110为高因此有四个线程时,如图6所示,四个线程的每一个都分配到八个寄存器。多路复用器104选择线程号的二进制表示的除最低有效位以外的所有位(在该情况下,选择两个位,位1和2)、以及自指令的寄存器号的二进制表示的所有位。这样,寄存器文件内的地址是当前活动的线程号的位与来自指令的寄存器号的位的并置,且通过设定CTX_Enable寄存器90(来自图3)内的In_Use环境位92来确定对每个起作用的位数。
这样,GPR被逻辑地细分成相等的区域,使得每个环境都对区域之一有相对存取。区域数目在In_Use环境字段92内被配置,或为4或为8。这样,环境有关的寄存器数目实际上与多个不同的物理寄存器相关。通过环境以上述方式作出存取请求,即与寄存器号并置的环境号,来确定要存取的实际寄存器。环境有关的存取是强有力的特征,它能使八个或四个不同的线程共享相同的代码图像,仍然保持分开的数据。这样,指令指定了环境有关的地址(寄存器号)。对于八个活动的环境而言,指令总是在范围0-3内指定寄存器。对于四个活动的环境而言,指令总是在范围0-7内指定寄存器。
回过头参照图4所示的表,绝对GPR寄存器号是由寄存器地址路径(解码逻辑)实际用来存取指定的环境有关寄存器的寄存器号。例如,根据8个活动的环境,环境(或线程)2的环境有关的线程0为8。
上述线程GPR分配方案可以扩展到不同的线程和寄存器数目(基于2的倍数),例如,把总共128个寄存器从最大数8个“使用中”线程(每个有16个寄存器)重新分配为4个“使用中”的线程(每个有32个寄存器),或者把总共128个寄存器从最大数16个“使用中”线程(每个有8个寄存器)重新分配为8个“使用中”的线程(每个有16个寄存器)。
其它实施例也在所附权利要求的范围内。

Claims (18)

1.一种在多线程处理器内分配资源的方法,包括:
提供由多线程处理器支持的执行线程所用的资源;以及
向资源选择应用配置信息,以便在活动的执行线程中分配资源。
2.如权利要求1所述的方法,其特征在于,所述资源包括:
通用寄存器文件内的寄存器。
3.如权利要求1所述的方法,其特征在于,所述配置信息包括:
配置位,当被清除时指示所有所支持的执行线程是活动的执行线程,并且当被设定时指示一部分所支持的执行线程是活动的执行线程。
4.如权利要求1所述的方法,其特征在于,所述配置信息包括:
配置位,当被清除时指示所有所支持的执行线程是活动的执行线程,并且当被设定时指示所支持的执行线程的一半是活动的执行线程。
5.如权利要求3所述的方法,其特征在于,所述配置位驻留在控制和状态寄存器内。
6.如权利要求2所述的方法,其特征在于,所述通用寄存器文件包括一个地址解码部分和与所述地址解码部分耦合的多路复用器,所述多路复用器用于接收一个线程号和寄存器号作为输入,并且用于根据配置信息选择线程号和寄存器号的位,以形成对应于一个寄存器的地址。
7.如权利要求6所述的方法,其特征在于,所述配置信息指示选择线程号的除最低有效位以外的所有位以及寄存器号的所有位。
8.如权利要求6所述的方法,其特征在于,所述配置信息指示选择寄存器号的除最高有效位以外的所有位以及线程号的所有位。
9.如权利要求6所述的方法,其特征在于,寄存器号的所选位形成线程有关的寄存器号。
10.一种处理器,包括:
由处理器所支持的执行线程所使用的资源;以及
资源选择器,用于接收配置信息,并且用于根据配置信息在活动的执行线程中分配资源。
11.如权利要求10所述的处理器,其特征在于,所述资源包括:
通用寄存器文件内的寄存器。
12.如权利要求10所述的处理器,其特征在于,所述配置信息包括:
配置位,当被清除时指示所有所支持的执行线程是活动的执行线程,并且当被设定时指示一部分所支持的执行线程是活动的执行线程。
13.如权利要求10所述的处理器,其特征在于,所述配置信息包括:
配置位,当被清除时指示所有所支持的执行线程是活动的执行线程,并且当被设定时指示所支持的执行线程的一半是活动的执行线程。
14.如权利要求12所述的处理器,其特征在于,所述配置位驻留在控制和状态寄存器内。
15.如权利要求11所述的处理器,其特征在于,所述通用寄存器文件包括一个地址解码部分,资源选择器是与所述地址解码部分耦合的多路复用器,所述多路复用器用于接收一个线程号和寄存器号作为输入,并且用于根据配置信息选择线程号和寄存器号的位,以形成对应于一个寄存器的地址。
16.如权利要求15所述的处理器,其特征在于,所述配置信息指示选择线程号的除最低有效位以外的所有位以及寄存器号的所有位。
17.如权利要求15所述的处理器,其特征在于,所述配置信息指示选择寄存器号的除最高有效位以外的所有位以及线程号的所有位。
18.如权利要求15所述的处理器,其特征在于,寄存器号的所选位形成线程有关的寄存器号。
CNB028167732A 2001-08-27 2002-08-27 具有基于活动线程号的寄存器分配的多线程微处理器 Expired - Fee Related CN1310135C (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US31514401P 2001-08-27 2001-08-27
US60/315,144 2001-08-27
US10/212,945 2002-08-05
US10/212,945 US7487505B2 (en) 2001-08-27 2002-08-05 Multithreaded microprocessor with register allocation based on number of active threads

Publications (2)

Publication Number Publication Date
CN1547695A true CN1547695A (zh) 2004-11-17
CN1310135C CN1310135C (zh) 2007-04-11

Family

ID=26907635

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB028167732A Expired - Fee Related CN1310135C (zh) 2001-08-27 2002-08-27 具有基于活动线程号的寄存器分配的多线程微处理器

Country Status (10)

Country Link
US (2) US7487505B2 (zh)
EP (1) EP1390842B1 (zh)
KR (1) KR20040014604A (zh)
CN (1) CN1310135C (zh)
AT (1) ATE380366T1 (zh)
CA (1) CA2456541A1 (zh)
DE (1) DE60223917D1 (zh)
HK (1) HK1062053A1 (zh)
TW (1) TWI315824B (zh)
WO (1) WO2003019358A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102681820A (zh) * 2010-12-17 2012-09-19 三星电子株式会社 动态分簇的寄存器堆及使用该寄存器堆的可重构计算装置
CN105637474A (zh) * 2013-10-18 2016-06-01 马维尔国际贸易有限公司 用于寄存器分配的系统和方法
CN103955356B (zh) * 2014-04-24 2017-05-10 深圳中微电科技有限公司 多线程处理器中通用寄存器组的分配方法及装置
CN115718622A (zh) * 2022-11-25 2023-02-28 苏州睿芯通量科技有限公司 一种arm架构下的数据处理方法、装置及电子设备

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IT1264976B1 (it) * 1993-11-17 1996-10-17 Leopoldo Michelotti Manufatto a forma di lastra sagomata a base di polietilene tereftalato e procedimento per produrlo
US7546444B1 (en) 1999-09-01 2009-06-09 Intel Corporation Register set used in multithreaded parallel processor architecture
US7681018B2 (en) * 2000-08-31 2010-03-16 Intel Corporation Method and apparatus for providing large register address space while maximizing cycletime performance for a multi-threaded register file set
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
US7180887B1 (en) * 2002-01-04 2007-02-20 Radisys Patent Properties Routing and forwarding table management for network processor architectures
US7610451B2 (en) * 2002-01-25 2009-10-27 Intel Corporation Data transfer mechanism using unidirectional pull bus and push bus
US20030235194A1 (en) * 2002-06-04 2003-12-25 Mike Morrison Network processor with multiple multi-threaded packet-type specific engines
US7337275B2 (en) * 2002-08-13 2008-02-26 Intel Corporation Free list and ring data structure management
US7334086B2 (en) * 2002-10-08 2008-02-19 Rmi Corporation Advanced processor with system on a chip interconnect technology
US8037224B2 (en) 2002-10-08 2011-10-11 Netlogic Microsystems, Inc. Delegating network processor operations to star topology serial bus interfaces
US9088474B2 (en) 2002-10-08 2015-07-21 Broadcom Corporation Advanced processor with interfacing messaging network to a CPU
US8478811B2 (en) 2002-10-08 2013-07-02 Netlogic Microsystems, Inc. Advanced processor with credit based scheme for optimal packet flow in a multi-processor system on a chip
US8176298B2 (en) 2002-10-08 2012-05-08 Netlogic Microsystems, Inc. Multi-core multi-threaded processing systems with instruction reordering in an in-order pipeline
US6904511B2 (en) * 2002-10-11 2005-06-07 Sandbridge Technologies, Inc. Method and apparatus for register file port reduction in a multithreaded processor
TWI261198B (en) * 2003-02-20 2006-09-01 Samsung Electronics Co Ltd Simultaneous multi-threading processor circuits and computer program products configured to operate at different performance levels based on a number of operating threads and methods of operating
US7152170B2 (en) 2003-02-20 2006-12-19 Samsung Electronics Co., Ltd. Simultaneous multi-threading processor circuits and computer program products configured to operate at different performance levels based on a number of operating threads and methods of operating
US20050102474A1 (en) * 2003-11-06 2005-05-12 Sridhar Lakshmanamurthy Dynamically caching engine instructions
US7536692B2 (en) * 2003-11-06 2009-05-19 Intel Corporation Thread-based engine cache partitioning
US8074051B2 (en) * 2004-04-07 2011-12-06 Aspen Acquisition Corporation Multithreaded processor with multiple concurrent pipelines per thread
US7339592B2 (en) * 2004-07-13 2008-03-04 Nvidia Corporation Simulating multiported memories using lower port count memories
US7437581B2 (en) * 2004-09-28 2008-10-14 Intel Corporation Method and apparatus for varying energy per instruction according to the amount of available parallelism
US20060067348A1 (en) * 2004-09-30 2006-03-30 Sanjeev Jain System and method for efficient memory access of queue control data structures
US7779198B2 (en) * 2004-11-23 2010-08-17 Efficient Memory Technology Method and apparatus of multiple abbreviations of interleaved addressing of paged memories
US8190809B2 (en) * 2004-11-23 2012-05-29 Efficient Memory Technology Shunted interleave for accessing plural memory banks, particularly those having partially accessed cells containing data for cache lines
US7555630B2 (en) * 2004-12-21 2009-06-30 Intel Corporation Method and apparatus to provide efficient communication between multi-threaded processing elements in a processor unit
US7467256B2 (en) * 2004-12-28 2008-12-16 Intel Corporation Processor having content addressable memory for block-based queue structures
US20060140203A1 (en) * 2004-12-28 2006-06-29 Sanjeev Jain System and method for packet queuing
US7600101B2 (en) * 2005-01-13 2009-10-06 Hewlett-Packard Development Company, L.P. Multithreaded hardware systems and methods
US7890738B2 (en) * 2005-01-20 2011-02-15 International Business Machines Corporation Method and logical apparatus for managing processing system resource use for speculative execution
US20060294401A1 (en) * 2005-06-24 2006-12-28 Dell Products L.P. Power management of multiple processors
US7761691B2 (en) * 2005-10-27 2010-07-20 National Tsing Hua University Method for allocating registers using simulated annealing controlled instruction scheduling
US20070157030A1 (en) * 2005-12-30 2007-07-05 Feghali Wajdi K Cryptographic system component
US8108863B2 (en) 2005-12-30 2012-01-31 Intel Corporation Load balancing for multi-threaded applications via asymmetric power throttling
KR100801630B1 (ko) * 2007-06-15 2008-02-05 디비코 주식회사 멀티코어 프로세서를 이용한 분산 디코딩 처리 장치 및방법
US20090100249A1 (en) * 2007-10-10 2009-04-16 Eichenberger Alexandre E Method and apparatus for allocating architectural register resources among threads in a multi-threaded microprocessor core
US9596324B2 (en) 2008-02-08 2017-03-14 Broadcom Corporation System and method for parsing and allocating a plurality of packets to processor core threads
US8195921B2 (en) * 2008-07-09 2012-06-05 Oracle America, Inc. Method and apparatus for decoding multithreaded instructions of a microprocessor
US8615644B2 (en) * 2010-02-19 2013-12-24 International Business Machines Corporation Processor with hardware thread control logic indicating disable status when instructions accessing shared resources are completed for safe shared resource condition
US9047079B2 (en) 2010-02-19 2015-06-02 International Business Machines Corporation Indicating disabled thread to other threads when contending instructions complete execution to ensure safe shared resource condition
US9207995B2 (en) 2010-11-03 2015-12-08 International Business Machines Corporation Mechanism to speed-up multithreaded execution by register file write port reallocation
US8695010B2 (en) 2011-10-03 2014-04-08 International Business Machines Corporation Privilege level aware processor hardware resource management facility
US10846074B2 (en) * 2013-05-10 2020-11-24 Box, Inc. Identification and handling of items to be ignored for synchronization with a cloud-based platform by a synchronization client
US9558000B2 (en) * 2014-02-06 2017-01-31 Optimum Semiconductor Technologies, Inc. Multithreading using an ordered list of hardware contexts
US10379592B2 (en) * 2017-03-17 2019-08-13 Intel Corporation Power management of an NZE IoT device
US10521880B2 (en) * 2017-04-17 2019-12-31 Intel Corporation Adaptive compute size per workload
US10783011B2 (en) * 2017-09-21 2020-09-22 Qualcomm Incorporated Deadlock free resource management in block based computing architectures
US10642338B2 (en) 2017-09-28 2020-05-05 Intel Corporation Hierarchical power management unit for low power and low duty cycle devices

Family Cites Families (175)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3373408A (en) 1965-04-16 1968-03-12 Rca Corp Computer capable of switching between programs without storage and retrieval of the contents of operation registers
US3478322A (en) 1967-05-23 1969-11-11 Ibm Data processor employing electronically changeable control storage
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
US4045782A (en) 1976-03-29 1977-08-30 The Warner & Swasey Company Microprogrammed processor system having external memory
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
US4189767A (en) 1978-06-05 1980-02-19 Bell Telephone Laboratories, Incorporated Accessing arrangement for interleaved modular memories
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
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
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
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
JPS62103893A (ja) 1985-10-30 1987-05-14 Toshiba Corp 半導体メモリ及び半導体メモリシステム
US5021945A (en) 1985-10-31 1991-06-04 Mcc Development, Ltd. Parallel processor system for processing natural concurrencies and method therefor
US4745544A (en) 1985-12-12 1988-05-17 Texas Instruments Incorporated Master/slave sequencing processor with forced I/O
US4724521A (en) 1986-01-14 1988-02-09 Veri-Fone, Inc. Method for operating a local terminal to execute a downloaded application program
US5297260A (en) 1986-03-12 1994-03-22 Hitachi, Ltd. Processor having a plurality of CPUS with one CPU being normally connected to common bus
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
EP0357768B1 (en) 1988-03-14 1994-03-09 Unisys Corporation Record lock processor for multiprocessing data system
US5008808A (en) 1988-06-23 1991-04-16 Storage Technology Corporation Consolidation of commands in a buffered input/output device
US5165025A (en) 1988-10-06 1992-11-17 Lass Stanley E Interlacing the paths after a conditional branch like instruction
US5142676A (en) 1988-12-28 1992-08-25 Gte Laboratories Incorporated Separate content addressable memories for storing locked segment addresses and locking processor identifications for controlling access to shared memory
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
US5166872A (en) 1989-07-17 1992-11-24 Ability Technologies Corporation System and method for controlling devices through communication processors and pluralities of address-associated device controllers sharing each communication processor
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
US5247671A (en) 1990-02-14 1993-09-21 International Business Machines Corporation Scalable schedules for serial communications controller in data processing systems
JPH0799812B2 (ja) 1990-03-26 1995-10-25 株式会社グラフイックス・コミュニケーション・テクノロジーズ 信号符号化装置および信号復号化装置、並びに信号符号化復号化装置
EP0449369B1 (en) 1990-03-27 1998-07-29 Koninklijke Philips Electronics N.V. A data processing system provided with a performance enhancing instruction cache
US5390329A (en) 1990-06-11 1995-02-14 Cray Research, Inc. Responding to service requests using minimal system-side context in a multiprocessor environment
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
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
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
EP0522513A2 (en) 1991-07-09 1993-01-13 Hughes Aircraft Company High speed parallel microcode program controller
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 松下電器産業株式会社 レジスタファイル
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
US5649109A (en) 1992-10-22 1997-07-15 Digital Equipment Corporation Apparatus and method for maintaining forwarding information in a bridge or router using multiple free queues having associated free space sizes
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
US5450603A (en) 1992-12-18 1995-09-12 Xerox Corporation SIMD architecture with transfer register or value source circuitry connected to bus
DK0627100T3 (da) 1992-12-23 2000-06-26 Ebauchesfabrik Eta Ag Laveffekt-multitaskkontroller
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
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
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
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
US5450351A (en) 1993-11-19 1995-09-12 International Business Machines Corporation Content addressable memory implementation with random access memory
JP3169155B2 (ja) * 1993-12-22 2001-05-21 インターナショナル・ビジネス・マシーンズ・コーポレ−ション 情報をキャッシュするための回路
US5487159A (en) 1993-12-23 1996-01-23 Unisys Corporation System for processing shift, mask, and merge operations in one instruction
US5490204A (en) 1994-03-01 1996-02-06 Safco Corporation Automated quality assessment system for cellular networks
US5659722A (en) 1994-04-28 1997-08-19 International Business Machines Corporation Multiple condition code branching system in a multi-processor environment
US5542088A (en) 1994-04-29 1996-07-30 Intergraph Corporation Method and apparatus for enabling control of task execution
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
US5666551A (en) * 1994-06-30 1997-09-09 Digital Equipment Corporation Distributed data bus sequencing for a system bus with separate address and data bus protocols
FR2722041B1 (fr) 1994-06-30 1998-01-02 Samsung Electronics Co Ltd Decodeur de huffman
US5640538A (en) 1994-08-22 1997-06-17 Adaptec, Inc. Programmable timing mark sequencer for a disk drive
US5813031A (en) * 1994-09-21 1998-09-22 Industrial Technology Research Institute Caching tag for a large scale cache computer memory system
US5717760A (en) 1994-11-09 1998-02-10 Channel One Communications, Inc. Message protection system and method
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
US5649157A (en) 1995-03-30 1997-07-15 Hewlett-Packard Co. Memory controller with priority queues
TW360852B (en) 1995-04-12 1999-06-11 Matsushita Electric Ind Co Ltd Pipeline processor
US5592622A (en) 1995-05-10 1997-01-07 3Com Corporation Network intermediate system with message passing architecture
US5812799A (en) * 1995-06-07 1998-09-22 Microunity Systems Engineering, Inc. Non-blocking load buffer and a multiple-priority memory system for real-time multiprocessing
US5541920A (en) 1995-06-15 1996-07-30 Bay Networks, Inc. Method and apparatus for a delayed replace mechanism for a streaming packet modification engine
KR0180169B1 (ko) 1995-06-30 1999-05-01 배순훈 가변길이 부호기
US5613071A (en) 1995-07-14 1997-03-18 Intel Corporation Method and apparatus for providing remote memory access in a distributed memory multiprocessor system
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
US5689566A (en) 1995-10-24 1997-11-18 Nguyen; Minhtam C. Network with secure communications sessions
KR0150072B1 (ko) 1995-11-30 1998-10-15 양승택 병렬처리 컴퓨터 시스템에서의 메모리 데이타 경로 제어장치
US5699537A (en) 1995-12-22 1997-12-16 Intel Corporation Processor microarchitecture for efficient dynamic scheduling and execution of chains of dependent instructions
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
US5790813A (en) * 1996-01-05 1998-08-04 Unisys Corporation Pre-arbitration system allowing look-around and bypass for significant operations
US6088783A (en) * 1996-02-16 2000-07-11 Morton; Steven G DPS having a plurality of like processors controlled in parallel by an instruction word, and a control processor also controlled by the instruction word
US5829033A (en) * 1996-07-01 1998-10-27 Sun Microsystems, Inc. Optimizing responses in a coherent distributed electronic system including a computer system
US5765157A (en) * 1996-06-05 1998-06-09 Sun Microsystems, Inc. Computer system and method for executing threads of execution with reduced run-time memory space requirements
US6247040B1 (en) * 1996-09-30 2001-06-12 Lsi Logic Corporation Method and structure for automated switching between multiple contexts in a storage subsystem target device
US6173349B1 (en) * 1996-10-18 2001-01-09 Samsung Electronics Co., Ltd. Shared bus system with transaction and destination ID
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
WO1998031121A2 (en) * 1997-01-10 1998-07-16 Koninklijke Philips Electronics N.V. Communication bus system
US5893162A (en) * 1997-02-05 1999-04-06 Transwitch Corp. Method and apparatus for allocation and management of shared memory with data in memory stored as multiple linked lists
US5742587A (en) 1997-02-28 1998-04-21 Lanart Corporation Load balancing port switching hub
EP0931290A1 (en) * 1997-03-21 1999-07-28 International Business Machines Corporation Address mapping for system memory
US5941949A (en) * 1997-05-14 1999-08-24 Citrix Systems, Inc. System and method for transmitting data from a server application to more than one client node
US6047334A (en) * 1997-06-17 2000-04-04 Intel Corporation System for delaying dequeue of commands received prior to fence command until commands received before fence command are ordered for execution in a fixed sequence
US6311256B2 (en) * 1997-06-30 2001-10-30 Emc Corporation Command insertion and reordering at the same storage controller
US6233599B1 (en) * 1997-07-10 2001-05-15 International Business Machines Corporation Apparatus and method for retrofitting multi-threaded operations on a computer by partitioning and overlapping registers
US6141348A (en) * 1997-08-25 2000-10-31 Cisco Technology, Inc. Constant-time programmable field extraction system and method
US6104700A (en) * 1997-08-29 2000-08-15 Extreme Networks Policy based quality of service
US6223277B1 (en) * 1997-11-21 2001-04-24 Texas Instruments Incorporated Data processing circuit with packed data structure capability
US6029170A (en) * 1997-11-25 2000-02-22 International Business Machines Corporation Hybrid tree array data structure and method
US6212602B1 (en) * 1997-12-17 2001-04-03 Sun Microsystems, Inc. Cache tag caching
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
US6092175A (en) * 1998-04-02 2000-07-18 University Of Washington Shared register storage mechanisms for multithreaded computer systems with out-of-order execution
US6408325B1 (en) * 1998-05-06 2002-06-18 Sun Microsystems, Inc. Context switching technique for processors with large register files
US6505281B1 (en) * 1998-06-02 2003-01-07 Raymond C. Sherry Hard disk drives employing high speed distribution bus
TW374967B (en) * 1998-06-22 1999-11-21 Winbond Electronics Corp Ethernet switch having shared memory structure and method of the shared memory
US6724767B1 (en) * 1998-06-27 2004-04-20 Intel Corporation Two-dimensional queuing/de-queuing methods and systems for implementing the same
US6209066B1 (en) * 1998-06-30 2001-03-27 Sun Microsystems, Inc. Method and apparatus for memory allocation in a multi-threaded virtual machine
US6628652B1 (en) * 1998-09-18 2003-09-30 Lucent Technologies Inc. Flexible telecommunications switching network
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
US6449289B1 (en) * 1998-10-09 2002-09-10 Adaptec, Inc. Multi-processor bus protocol system
US6247086B1 (en) * 1998-11-12 2001-06-12 Adaptec, Inc. PCI bridge for optimized command delivery
US6182183B1 (en) * 1998-11-13 2001-01-30 Sonics, Inc. Communications system and method with multilevel connection identification
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
US6212604B1 (en) * 1998-12-03 2001-04-03 Sun Microsystems, Inc. Shared instruction cache for multiple processors
GB2344665B (en) * 1998-12-08 2003-07-30 Advanced Risc Mach Ltd Cache memory
US6378124B1 (en) * 1999-02-22 2002-04-23 International Business Machines Corporation Debugger thread synchronization control points
CA2266283C (en) * 1999-03-19 2006-07-11 Wen Tong Data interleaver and method of interleaving data
US6570877B1 (en) * 1999-04-07 2003-05-27 Cisco Technology, Inc. Search engine for forwarding table content addressable memory
US6401149B1 (en) * 1999-05-05 2002-06-04 Qlogic Corporation Methods for context switching within a disk controller
US6457078B1 (en) * 1999-06-17 2002-09-24 Advanced Micro Devices, Inc. Multi-purpose bi-directional control bus for carrying tokens between initiator devices and target devices
US6430646B1 (en) * 1999-08-18 2002-08-06 Ati International Srl Method and apparatus for interfacing a processor with a bus
US6539439B1 (en) * 1999-08-18 2003-03-25 Ati International Srl Method and apparatus for interfacing a bus at an independent rate with input/output devices
US6427196B1 (en) * 1999-08-31 2002-07-30 Intel Corporation SRAM controller for parallel processor architecture including address and command queue and arbiter
US6529999B1 (en) * 1999-10-27 2003-03-04 Advanced Micro Devices, Inc. Computer system implementing system and method for ordering write operations and maintaining memory coherency
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
TW445730B (en) * 1999-11-30 2001-07-11 Via Tech Inc Output queuing scheme for forwarding packets in sequence
US6357016B1 (en) * 1999-12-09 2002-03-12 Intel Corporation Method and apparatus for disabling a clock signal within a multithreaded processor
US6496925B1 (en) * 1999-12-09 2002-12-17 Intel Corporation Method and apparatus for processing an event occurrence within a multithreaded processor
US6889319B1 (en) * 1999-12-09 2005-05-03 Intel Corporation Method and apparatus for entering and exiting multiple threads within a multithreaded processor
US7051329B1 (en) * 1999-12-28 2006-05-23 Intel Corporation Method and apparatus for managing resources in a multithreaded processor
US6278289B1 (en) * 2000-05-01 2001-08-21 Xilinx, Inc. Content-addressable memory implemented using programmable logic
US6513089B1 (en) * 2000-05-18 2003-01-28 International Business Machines Corporation Dual burst latency timers for overlapped read and write data transfers
US6587905B1 (en) * 2000-06-29 2003-07-01 International Business Machines Corporation Dynamic data bus allocation
US6754662B1 (en) * 2000-08-01 2004-06-22 Nortel Networks Limited Method and apparatus for fast and consistent packet classification via efficient hash-caching
US6633938B1 (en) * 2000-10-06 2003-10-14 Broadcom Corporation Independent reset of arbiters and agents to allow for delayed agent reset
US6847645B1 (en) * 2001-02-22 2005-01-25 Cisco Technology, Inc. Method and apparatus for controlling packet header buffer wrap around in a forwarding engine of an intermediate network node
US6785843B1 (en) * 2001-02-23 2004-08-31 Mcrae Andrew Data plane restart without state change in a control plane of an intermediate network node
TW556077B (en) * 2001-06-05 2003-10-01 Via Tech Inc Controller for improving buffer management efficiency and the buffer management method
JP3489573B2 (ja) * 2001-07-11 2004-01-19 日本電気株式会社 パケット処理装置
US6868476B2 (en) * 2001-08-27 2005-03-15 Intel Corporation Software controlled content addressable memory in a general purpose execution datapath
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
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
US20030065862A1 (en) * 2001-09-28 2003-04-03 Wyland David C. Computer system and method for communications between bus devices
US6934729B2 (en) * 2001-10-18 2005-08-23 International Business Machines Corporation Method and system for performing shift operations
US7028118B2 (en) * 2001-12-12 2006-04-11 Texas Instruments Incorporated Multi-channel buffered serial port debugging
US6738831B2 (en) * 2001-12-12 2004-05-18 Intel Corporation Command ordering
US6754795B2 (en) * 2001-12-21 2004-06-22 Agere Systems Inc. Methods and apparatus for forming linked list queue using chunk-based structure
US7610451B2 (en) * 2002-01-25 2009-10-27 Intel Corporation Data transfer mechanism using unidirectional pull bus and push bus
US7089379B1 (en) * 2002-06-28 2006-08-08 Emc Corporation Large high bandwidth memory system
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

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102681820A (zh) * 2010-12-17 2012-09-19 三星电子株式会社 动态分簇的寄存器堆及使用该寄存器堆的可重构计算装置
US9262162B2 (en) 2010-12-17 2016-02-16 Samsung Electronics Co., Ltd. Register file and computing device using the same
CN102681820B (zh) * 2010-12-17 2016-09-28 三星电子株式会社 动态分簇的寄存器堆及使用该寄存器堆的可重构计算装置
CN105637474A (zh) * 2013-10-18 2016-06-01 马维尔国际贸易有限公司 用于寄存器分配的系统和方法
CN105637474B (zh) * 2013-10-18 2019-03-22 马维尔国际贸易有限公司 用于寄存器分配的系统和方法
CN103955356B (zh) * 2014-04-24 2017-05-10 深圳中微电科技有限公司 多线程处理器中通用寄存器组的分配方法及装置
CN115718622A (zh) * 2022-11-25 2023-02-28 苏州睿芯通量科技有限公司 一种arm架构下的数据处理方法、装置及电子设备
CN115718622B (zh) * 2022-11-25 2023-10-13 苏州睿芯通量科技有限公司 一种arm架构下的数据处理方法、装置及电子设备

Also Published As

Publication number Publication date
EP1390842A1 (en) 2004-02-25
ATE380366T1 (de) 2007-12-15
WO2003019358A9 (en) 2004-12-23
HK1062053A1 (en) 2004-10-15
CN1310135C (zh) 2007-04-11
US20090182989A1 (en) 2009-07-16
CA2456541A1 (en) 2003-03-06
WO2003019358A1 (en) 2003-03-06
DE60223917D1 (de) 2008-01-17
KR20040014604A (ko) 2004-02-14
TWI315824B (en) 2009-10-11
EP1390842B1 (en) 2007-12-05
US7487505B2 (en) 2009-02-03
US20030041228A1 (en) 2003-02-27

Similar Documents

Publication Publication Date Title
CN1310135C (zh) 具有基于活动线程号的寄存器分配的多线程微处理器
US11036556B1 (en) Concurrent program execution optimization
US7443836B2 (en) Processing a data packet
CN100351798C (zh) 在多线程网络处理器中线程信令的分组处理方法和系统
US7415540B2 (en) Scheduling processing threads
EP1247168B1 (en) Memory shared between processing threads
US7551617B2 (en) Multi-threaded packet processing architecture with global packet memory, packet recirculation, and coprocessor
US7676646B2 (en) Packet processor with wide register set architecture
CN1311333C (zh) 用于串行互斥体的方法与装置
US6934951B2 (en) Parallel processor with functional pipeline providing programming engines by supporting multiple contexts and critical section
EP2618257B1 (en) Scalable sockets
CN1390323A (zh) 在多线程并行处理器结构中使用的寄存器组
US7328314B2 (en) Multiprocessor computing device having shared program memory
CN1820253A (zh) 上下文流水线操作
US9158713B1 (en) Packet processing with dynamic load balancing
US20070016906A1 (en) Efficient hardware allocation of processes to processors
Rezaei et al. Ultrashare: Fpga-based dynamic accelerator sharing and allocation
US7441245B2 (en) Phasing for a multi-threaded network processor
US8881163B2 (en) Kernel processor grouping
US20060048156A1 (en) Unified control store
Kumar et al. Performance Analysis Of All-to-All Communication on the Blue Gene/L Supercomputer

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20070411

Termination date: 20180827

CF01 Termination of patent right due to non-payment of annual fee