CN1547695A - 具有基于活动线程号的寄存器分配的多线程微处理器 - Google Patents
具有基于活动线程号的寄存器分配的多线程微处理器 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 claims description 12
- 230000000694 effects Effects 0.000 claims description 9
- 230000005540 biological transmission Effects 0.000 description 11
- 238000004891 communication Methods 0.000 description 7
- 238000010276 construction Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000003860 storage Methods 0.000 description 6
- 230000000875 corresponding effect Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000014759 maintenance of location Effects 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000009432 framing Methods 0.000 description 1
- 230000004060 metabolic process Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
-
- 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, look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30123—Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, 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
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所述的处理器,其特征在于,寄存器号的所选位形成线程有关的寄存器号。
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)
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)
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)
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 |
-
2002
- 2002-08-05 US US10/212,945 patent/US7487505B2/en not_active Expired - Fee Related
- 2002-08-27 WO PCT/US2002/027273 patent/WO2003019358A1/en active IP Right Grant
- 2002-08-27 CA CA002456541A patent/CA2456541A1/en not_active Abandoned
- 2002-08-27 AT AT02768727T patent/ATE380366T1/de not_active IP Right Cessation
- 2002-08-27 EP EP02768727A patent/EP1390842B1/en not_active Expired - Lifetime
- 2002-08-27 TW TW091119402A patent/TWI315824B/zh not_active IP Right Cessation
- 2002-08-27 DE DE60223917T patent/DE60223917D1/de not_active Expired - Lifetime
- 2002-08-27 KR KR10-2003-7017290A patent/KR20040014604A/ko not_active Application Discontinuation
- 2002-08-27 CN CNB028167732A patent/CN1310135C/zh not_active Expired - Fee Related
-
2004
- 2004-05-13 HK HK04103379A patent/HK1062053A1/xx not_active IP Right Cessation
-
2009
- 2009-01-16 US US12/354,889 patent/US20090182989A1/en not_active Abandoned
Cited By (8)
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 |