CN100533372C - 用于多核处理器的存储指令排序 - Google Patents

用于多核处理器的存储指令排序 Download PDF

Info

Publication number
CN100533372C
CN100533372C CNB2005800346066A CN200580034606A CN100533372C CN 100533372 C CN100533372 C CN 100533372C CN B2005800346066 A CNB2005800346066 A CN B2005800346066A CN 200580034606 A CN200580034606 A CN 200580034606A CN 100533372 C CN100533372 C CN 100533372C
Authority
CN
China
Prior art keywords
collating sequence
item
instruction
buffer
cache entry
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB2005800346066A
Other languages
English (en)
Other versions
CN101040256A (zh
Inventor
大卫·H·阿舍尔
理查德·E·科斯勒
李彦志
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.)
Kaiwei International Co
Marvell Asia Pte Ltd
Original Assignee
Cavium Networks LLC
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 Cavium Networks LLC filed Critical Cavium Networks LLC
Publication of CN101040256A publication Critical patent/CN101040256A/zh
Application granted granted Critical
Publication of CN100533372C publication Critical patent/CN100533372C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • G06F9/30014Arithmetic instructions with variable precision
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3632Software debugging of specific synchronisation aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • G06F12/0835Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means for main memory peripheral accesses (e.g. I/O or DMA)
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • 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/30138Extension of register space, e.g. register cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3824Operand accessing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3824Operand accessing
    • G06F9/383Operand prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/601Reconfiguration of cache memory
    • G06F2212/6012Reconfiguration of cache memory of operating mode, e.g. cache mode or local memory mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6022Using a prefetch buffer or dedicated prefetch cache

Abstract

提供一种用于在廉线处理器中最小化延迟的方法和装置。通过将存储数据经过排序序列发送到外部存储器,使无序指令调度程序中的指令被有序地执行,而且不需要延迟廉线。

Description

用于多核处理器的存储指令排序
相关申请
本申请是申请于2004年11月30日,申请号为11/002,728的美国申请的继续,该申请要求申请于2004年9月10日,申请号为60/609,211美国临时申请的利益。以上申请的全部教导在此被并入本文作为参考。
背景技术
廉线技术主要用在精简指令集系统计算(RISC)处理器中,把指令处理分成一系列的廉线阶段。因为指令通过指令廉线,所以每一个阶段执行不同的功能。多个指令可以在同一时间被执行,其中每个指令在廉线的不同阶段被执行。指令以时钟步率提前通过廉线阶段,而这个速率取决于廉线中最慢的阶段。相比于非廉线处理器,新的指令能够开始于每一个时钟周期,而在非廉线处理器中,只有在完成前一个指令后才能执行新的指令。处理器的处理能力取决于以下功能:(i)廉线阶段时钟速度;(ii)正常操作时廉线的利用率或“效率”;(iii)廉线延迟的数量。超标量体系结构RISC处理器采用同步传输多个指令和并行划分为多个执行单元来增加其处理能力。
指令廉线可能由于资源限制和相互指令数据的依赖性而延迟。当后面的指令需要前面的指令生成的结果才能被执行,而前面的指令却没有完成时,相互指令数据依赖性导致延迟。所述的后面发布的指令因此在廉线中被延迟,直到前面的指令的结果有效。不充足的存储数据缓冲区也可以导致延迟。因为一致性存储总线可能是高廉线的,可以把地址、数据和提交操作分开,所以存储排序在多核的高速缓存/系统里是非常复杂的。
发明内容
根据本发明的原理,用于对在处理器中执行的存储指令进行排序的系统和方法将指令廉线延迟降低到最小。
处理器包括写缓冲区,该写缓冲区具有多个写缓冲项用于存储将被存储在外部存储器中的数据,以及系统接口。这个系统接口包括排序序列和排序序列逻辑。存储在写缓冲区内的数据经过排序序列中的排序序列项被发送到外部存储器。当检测到存储排序指令的执行时,排序序列逻辑保证被排序序列中的排序序列项标识的写缓冲地址在用于随后发布的存储指令的地址之前被发送到外部存储器。排序序列逻辑通过监控从用于每个写缓冲地址的外部存储器中返回的标识符保证写缓冲区地址被发送。
当存储排序指令执行时,在写缓冲区就会有有效的写缓冲项和在排序序列里有排序序列项。当在写缓冲区中检测到有效写缓冲区项时,系统接口就分配排序序列项,并在排序序列项中标识有效写缓冲项。一旦检测到在写缓冲区内没有有效的写缓冲区项以及在排序序列中至少一个排序序列项时,则系统接口在最后的排序序列项中设置存储排序指令执行标识符。当在写缓冲区内没有检测到有效的写缓冲项时,以及在排序序列里没有检测到排序序列项排序时,系统接口就会分配排序序列项,并在已分配的排序序列项里设置存储排序指令执行标识符。
写缓冲区有N个写缓冲项,排序序列有N+1个排序序列项。因为在排序序列里的项的数量是大于在写缓冲区里的项的数量的,所以当排序指令被执行时,排序序列项是有效的,借此可以消除存储排序指令的延迟。在一个实施方案中,N是16。这个写缓冲项可能包含用于存储将被存储在外部存储的数据的缓冲区,以及具有与缓冲区中的每个字节相对应的位的掩码。排序序列项可能包括存储指令执行标识符和具有相对于每个写缓冲项的位的排序掩码。
附图说明
结合接下来对附图中所举例说明的本发明优选的实施方案更加具体的描述,本发明前面所述的和其它的目的、特征以及优势将会更加的清楚。在附图中相同的参考数字在整个附图中都指代相同的部件。附图并不是按照比例所绘制的,其重点在于示出本发明的原理。
图1是根据本发明的原理的具有指令集的精简指令集计算机(RISC)处理器的方块图,该指令集包括用于排序存储指令的存储器排序指令。图2示出图1里的写缓冲区内的写缓冲项。
图3示出在处理器内核中系统接口中的控制逻辑的方框图,用于将存储在写缓冲项内的数据通过一致性存储器总线发送到外部存储器。
图4排序排序是图2中所示的排序序列中的排序序列项中的方框图。
图5是在执行SYNCW指令后,在排序序列控制逻辑中执行的用于排序存储指令的方法流程图。
图6示出在图5中所示的一致性存储器总线上的存储操作。
图7是安全应用的方框图,其包括具有图1中所示的至少一个RISC处理器的网络服务处理器。以及
图8是图7中所示的网络服务处理器700的方框图。
具体实施方式
本发明优选的实施方案的描述如下:
处理器是解释和执行指令的中心处理单元(CPU)。图1是根据本发明的原理的具有指令集的精简指令集计算机(1RISC)处理器100的方块图,该指令集包括根据本发明的原理用于排序存储指令的指令。
处理器100包括执行单元102和指令分配单元104、指令读取单元106、加载/存储单元118、存储管理单元108(MMU)、系统接口110、写缓冲区122以及安全加速器124。处理器内核也包括允许调试操作被执行的EJTAG接口120。系统接口110控制对外部存储器的访问,即,处理器外部的存储器,如二级(L2)高速缓冲存储器。
执行单元102包括乘法单元114和至少一个寄存器存储器116。乘法单元114是具有64位的直接寄存器乘法器。指令读取单元106包括指令高速缓冲存储器126。加载/存储单元118包括数据高速缓冲存储器128。数据高速缓冲存储器240的其中一部分可以被当作本地的高速暂存存储器和/或本地存储器130被保存。在一个实施方案中,指令高速缓冲存储器126是32K字节的,数据高速缓冲存储器128是8K字节,写缓冲区122是2K字节。存储器管理单元108包括地址转换后备缓冲器(TLB)112。
在一个实施方案中,处理器100包括加密加速模块(安全加速器)124,该模块包括密码加速器用于三次数据加密标准(3DES)、高级加密标准(AES)、安全散列算法(SHA-I)和信息-摘要算法#5(MD5)。这个加密模块124通过把在执行单元102中的主寄存器存储器116移进和移出的方式进行通信。RSA和密钥交换协议(DH)算法在乘法单元114中被执行。
超标量体系结构的处理器具有超标量体系结构指令廉线,其通过允许同步发出多个指令以及并行地分配到多个执行单元从而允许在每个时钟周期内运行多个指令。RISC型处理器100具有指令集的结构,而这个结构定义RISC型处理器的编程界面的程序。仅仅加载和存储指令访问外部存储器,也就是说处理器100以外的存储器。在一个实施方案中,外部的存储器通过一致性存储总线134被访问。所有其他的指令对存储在处理器100中的寄存器存储器116中的数据进行操作。在一个实施方案中,处理器是超标量体系结构双向发布处理器。
指令廉线被分为多个阶段,每个阶段需要一个时钟周期完成。因此在5阶段廉线里,它需要花费5个时钟周期来处理每个指令,并且5个指令可以与再任何给定的时钟周期中廉线的不同阶段被处理器处理的每个指令同时被处理。典型地,5阶段的廉线包括如下阶段:读取、解码、执行、存储和回复。
在读取阶段,指令读取单元106在由存储在程序计数器中的存储地址所标识的指令高速缓冲器128上从指令高速缓冲器126中读取指令。在解码阶段,在读取阶段所读取的指令被指令分配单元104所解码,同时为了发布的连续,下一个将要读取的指令的地址被计算。在指令执行阶段,整数执行单元102依据指令的类型执行操作。例如,整数执行单元102开始算法和逻辑操作用于寄存器到寄存器指令,然后计算出加载或存储操作的实际地址或者确定用于分支指令的分支条件是否正确。在存储阶段,数据被加载/存储单元118所排列,并将其转移到外部存储器的目的地。在回复阶段,寄存器到寄存器的结果或加载的指令被回复到存储器116。
系统接口110经过一致性存储总线被耦合到外部存储器上。在一个实施方案中,一致性存储总线有384位,并且有4种分开的总线:寻址/命令总线、存储数据总线、提交/响应控制总线和填充数据总线。所有的存储数据都借助写缓冲区中的写缓冲项,越过一致性存储总线132,被发送到外部存储区。在一个实施方案中,写缓冲区有16个写缓冲项。
存储的数据从加载/存储单元118到写缓冲区122,并且经过系统接口110从缓冲区122到外部存储器。处理器100生成存储到外部存储器的数据的速度比系统接口110写数据到外部存储器要快。
写缓冲区122也可以被用来通过一致性存储总线132将待存储在外部存储器中的数据合计到定位的高速缓冲器区以将速度最小化,以这个速度,数据可以被写入外部存储器中。而且,写缓冲区也可以把多个存储操作合并在外部存储器中的相同的位置,从而导致单一的向外部存储器的写操作。写缓冲区122的写合并操作能够导致向外部存储器的写顺序不同于存储指令的执行的顺序。
在正常操作中,呈现给处理器100之外的观察者的加载和存储存储器存取的顺序没有被体系结构所具体化。指令集包含用于排序存储指令的指令,而这个指令在本文中所涉及的是SYNCW指令。在其他即将进行的存储指令可见之前,SYNCW指令强制先前的已经被发布的存储指令在处理器100之外是可见的。例如如下指令顺序
ST DATA
SYNCW
ST FLAG
SYNCW包含两个SYNCW指令。SYNCW指令确保了数据存储指令(STDATA)和存储标记指令(ST FLAG),即在ST DATA指令之后的SYNCW指令确保了ST DATA的存储数据指令在处理器之外是可见;即,在ST FLAG指令之前在一致性存储总线132上被发送。在ST FLAG指令之后的SYNCW指令也确保了在任何后续存储的数据在处理器之外是可见的之前,ST FLAG在处理器之外是可见的。
通常需要这种同步类型用以确保在FLAG变量被更新之前在外部存储器中的数据缓冲区被更新,并且在来自任何后续存储指令中的数据是可见的之前,强制FLAG变量更新尽快成为可见的。
图2介绍了图1里的写缓冲区122的写缓冲项200。该写缓冲项200包括用于存储待存储在外部存储器中的数据的相邻块的缓冲区202。。写缓冲项200也包括掩码栏204,该掩码栏204具有与缓冲区202中的每一个字节相对应的位。在位掩码204里的每一位的状态可以指示出缓冲区202中相应的字节是否正在存储将被写入到外部存储器中的数据。在写缓冲项内的高速缓冲模块地址区域210存有被存储在缓冲区202内的128字节高速缓冲模块的外部存储器中的起始地址。写缓冲项200也包含状态位206和有效位208当缓冲区202正在存储将被写入外部存储器中的数据时,有效位208被置位,以及当存储在缓冲区202中的数据被写到外部存储之后该位就被清零。在一个实施方案中,缓冲区可以存储128字节连续的数据块,掩码具有128位每一个位对应于缓冲区内的每一个字节。。
写缓冲区122是合并的写缓冲区,将数据存储到由存储在写缓冲项200中的高速缓冲模块地址210中的地址所表示的高速缓冲模块中的个别的存储指令分解为单个到外部存储器的写操作。
状态位206的状态指示出来自后续执行的存储指令中的数据是否可以并入缓冲项200或者是否存储在写缓冲项200内的缓冲区202里中的数据正处在被写到外部存储器的过程中。当来自于存储指令的数据被并入已有的写缓冲项200时,在写缓冲项里的掩码204和缓冲区202就会相应地更新。
对应存储指令的将被存储到外部存储器中的数据或者加入或者并入有效的写缓冲项或者根据数据被存储的外部存储器中的地址分配新的写缓冲项。在存储指令里的地址同存储在所有当前有效的写缓冲项200中的高速缓冲区地址区域210中的地址做比较。如果要被存储的数据能被并入已经被存储在有效写缓冲项200中的缓冲区202中的高速缓冲区中,则缓冲区202和掩码204就可以相应地被更新。
如果同有效的写缓冲项是不可以合并的,那么写缓冲项就从无效的写缓冲项集里被分配出来(带有效位的缓冲项被清零)。分配完毕后,写缓冲项200中的状态位206就被置位。例如,如果在缓冲项中的高速缓冲区地址是0x1000,待存储在地址0x1010的字节被定位在开始于0x1000的128字节高速缓冲模块中,并可以被存储在写缓冲项的存储区域内;即,存储数据被加入到写缓冲项。到高速缓冲模块中的0x1000地址的后续存储指令覆盖已经被存储在写缓冲项中的高速缓冲模块中的数据,即,并入到有效的写缓冲项。
将被写入外部存储器的存储指令(存储值)的结构可以在处理器100将该结果写到外部存储器之前的一段时间位于写缓冲区的写缓冲项200中。
图3是处理器内核的系统接口110中的控制逻辑把存储在写缓冲项200里的数据通过一致性存储总线132送到外部存储器的方框图。写缓冲区122的一部分的写缓冲区的地址寄存器312在图3中同样被示出。
存储在写缓冲区122的写缓冲项200中的全部数据按照排序序列300通过项314被发送到外部存储器。这个排序序列是一个先进先出(FIFO)序列。每次写缓冲项200内的状态位206清零,指示存储在写缓冲项中的缓冲区202中的数据将被写入外部存储器中,则排序序列300内的项314被分配。例如,从上一次存储的数据写入外部存储器时预先确定次数的CPU循环周期过去时,或者SYNCW指令执行后,在写缓冲项200内的状态位206可以被清零。每一个排序序列项314标识一个或多个存储将被写到外部存储器的数据的写缓冲项200。计数区域326存储排序序列项数量的计数。
图4是图2中所示的排序序列300内其中一个排序序列项314的方框图。排序序列项314包含写缓冲项掩码400和SYNCW区402。写缓冲项掩码400包含与写缓冲区122内的每个写缓冲项相对应的位。写缓冲项掩码400中的每个位的状态都指示出写缓冲区122内相应的写缓冲项200是否通过排序序列项314被写入到外部存储器中。SYNCW区域402是单独的位,它的状态用来指示SYNCW指令是否已被执行。
处理器100在它删除第一排序序列项之前并且在它以下一个排序序列项发送由写缓冲项掩码400标识的任何写缓冲项200之前,以第一排序序列项314将由写缓冲项掩码400所标识的全部写缓冲项200发送到外部存储器。举例来说,在一个实施方案中,有N个写缓冲区项200,排序序列300里的每一个排序序列项314有识别写缓冲项的N位的写缓冲项掩码(向量)400。在排序序列300里有M=N+1个排序序列项314,所以当排序序列300不会溢出,SYNCW指令的执行不会中止。在作为替代的实施方案中,排序序列300里的排序序列项314的数量可能会少一些,这种情况下,如果排序序列300满了,SYNCW指令的执行可能会中止。
再回到图3,存储将要被写到外部存储器的写缓冲项200通过多路器308和排序序列控制逻辑306被加到排序序列300中。系统接口110包括一致性总线仲裁逻辑304和确认计数器320,该确认计数器302控制存储数据通过一致性存储器总线到外部存储器的传送。确认计数器302保持对外部存储器的存储操作的完成的追踪。当确认计数器为0时,先前的存储在系统中均是可见的。
正如结合图4所讨论的,每一个排序序列项314包括掩码域400和SYNCW位402。在所示的实施方案中,有16个写缓冲项(N=16)和17个排序序列项(M=N+1)。多路器308既可选择16写缓冲区状态位316(其中每个状态位206来自每一个写缓冲项200),又可选择具有与单一项318相应的位的16位向量。被选择的16状态位322被转寄到排序序列控制逻辑306,并被存储到排序序列300中的排序序列项314中。排序序列控制逻辑306通过添加/删除控制信号来添加和删除排序序列中的排序序列项。举例来说,排序序列的实现如同分解先进现出(FIFO),新的项添加到序列的一端,被处理的项出自序列的另一端(队头)。
排序序列如同本领域技术人员所熟知的那样,只具有一个写缓冲项的排序序列项314可以为很多不同的条件所创建,举例来说,用于写缓冲溢出状况或者超时状况。关于创建带有仅一个写缓冲区项的排序序列项的条件超出本文的讨论范围。
在每一个排序序列项中的SYNCW位402如图显示,从排序序列300里的排序序列项314中的其它领域中分离出来。每一个排序序列项314中的SYNCW位402也被转寄给排序序列控制逻辑306。
当SYNCW位在排序序列300的报头内的排序序列项314中被置位,排序序列逻辑确保由排序序列项所标识的写缓冲地址在后续发布的存储指令的地址之前,按照排序序列被发送到外部存储器中,所述的这些地址在任何后续地址被发送之前被提交。排序序列控制逻辑306向一致性总线仲裁逻辑304发出发送请求324,用以将存储在由排序序列项314中的掩码位400所标识的下一个写缓冲项200中缓冲区202中的高速缓冲模块地址发送到一致性总线仲裁逻辑304。。一致性总线仲裁逻辑304将在一致性总线地址总线上的请求发布给外部存储器。
在一个实施方案中,当前排序序列项314中的写缓冲区项掩码位400也先于已存在的第一个置位逻辑312,来选择存储在当前正在被处理的写缓冲区项204中的高速缓存模块地址。存储在对应于排序序列项314中的掩码400中的第一置位位的写缓冲项200中的高速缓存块地址域210中的高速缓存模块地址在写缓冲地址域312中被选择,并在一致性总线地址总线322上被发送。
在第一写缓冲区项204中的高速缓存块地址通过一致性存储器总线被传送到外部存储器之后,排序序列控制逻辑306对与当前的排序序列项314中的写缓冲区项204相对应的写缓冲区掩码104中的位进行清零。
所有的被排序序列项314中的写缓冲区项掩码位400所标识的写缓冲区地址200,通过连贯存储器总线,在删除序列项314和处理下一个排序序列项314中的写缓冲区项204之前,被发送到外部存储器。排序序列项在所有掩码位被发送之后,或者:(a)SYNCW位被删除或,(b)确认计数器为0之后,可被删除。在存储在写缓冲区项200中的数据被写入到外部存储器之后,有效位208被清零,标志着写缓冲区项200是空闲的,可以被分配。
SYNCW指令的执行通过强制有效的写缓冲区项中的所有存储的完成来实现存储指令的排序,即存储数据在随后的存储地址被发送到外部存储器之前被传递到外部寄存器中。如果没有SYNCW指令被执行,每一个排序序列项中的SYNCW位被清零。
有些存储器排序指令执行由于没有完成在先存储指令或写缓冲区中不充足的缓冲区,可以延迟指令执行。在本发明中,因为预缓冲存储(以及SYNCW)总是可以进入唯一的排序的序列,所以存储器排序指令的执行不会被延迟(如果M=N+1),也就是说,分配在排序序列300中的排序序列项314。
只要SYNCW指令执行,SYNCW就被维持,并且创建新的排序序列项。当新的排序序列没有被创建时,最新现有的排序序列项中的SYNCW位可能需要被置位以确保相对于随后的存储的在先存储的顺序。执行单元102和装载/存储单元118共同检测SYNCW指令的执行并且维持SYNCW。
SYNCW指令的执行导致对排序序列项314中的SYNCW402位的置位。当SYNCW位402在排序序列项中被置位时,排序序列项只有在满足所有以下条件才会被删除:(1)包含在排序序列项(被写缓冲区项掩码400所识别的)中的写缓冲区项200的所有地址被发送到外部存储器中;(2)被这个或其它排序序列项发送到系统中的所有地址均是可见的,也就是说,确认计数器302为0。
图5是举例说明执行在排序序列控制逻辑306中的,在SYNCW指令执行之后用于排序存储指令的方法。本流程图与附图3相结合作以说明。
在步骤500,写缓冲区控制逻辑306监控SYNCW指令的执行。如果检测到SYNCW指令的执行,进程继续到步骤502。
在步骤502,写缓冲区控制逻辑306检查是否有有效的写缓冲项,也就是说,带有有效位206的写缓冲区中的写缓冲项置位。如果是这样,进程继续执行到步骤504,如果不是,进程继续到步骤512。
在步骤504,在写缓冲区中有有效的写缓冲项。进程继续执行步骤504。
排序序列项314被分配到排序序列300中。进程继续执行步骤506。
在步骤506,与写缓冲区122中的所有有效的写缓冲项200相对应的被分配的排序序列项312中的写缓冲项掩码位400被置位。进程继续执行到步骤508。
在步骤508,包含在被分配的排序序列项314中的写缓冲项通过清零每一个写缓冲项200中的有效位208而使无效。每一个写缓冲项200中的有效位208保持置位直到存储在写缓冲项200中的缓冲区202中的数据被写入到外部存储器。
在步骤510,SYNCW位402在被分配的排序序列项200中被置位。进程继续到步骤500以等待下一条将被执行的SYNCW指令。
在步骤512,在写缓冲区122中没有有效的写缓冲项200,写缓冲区控制逻辑306检查在排序序列300中是否有排序序列项314。如果有,进程继续到步骤514,如果没有,进程继续到步骤516。
在步骤514,在写缓冲区122中没有有效的写缓冲项200,并且在排序序列300中有至少一个排序序列项314。没有排序序列项被分配,取而代之的是,被分配在排序序列300中的最后一个排序序列项314中的SYNCW位402。进程继续到步骤500,等待下一条将被执行的SYNCW指令。
在步骤516,在写缓冲区122中没有有效的写缓冲项200,并且在排序序列300中没有排序序列项314。排序序列项314被分配。因为没有具有将被存储在外部存储器中的数据的有效写缓冲区200,因此没有写缓冲项掩码位400被置位。进程继续到步骤510,对在被分配的排序序列项中的SYNCW位402置位。
图6说明了在图1所示的一致性存储器总线132上的存储操作。一致性存储总线包括添加(ADD)总线,存储(STORE)总线,确认(COMMIT)总线和填充(FILL)总线。与ADD总线和COMMIT总线的接口如图3中所示。ADD总线传输地址和控制信息来开始一致性存储器总线事务处理。STORE总线传输与事务处理相关的存储数据。COMMIT总线传输控制信息,所述的控制信息开始来自外部存储器的事务处理响应。FILL总线将高速缓存块从外部存储器传输到处理器。
一致性总线仲裁逻辑304控制存储操作。一旦收到来自排序序列控制逻辑306的发送请求324,就会开始存储操作。存储在写缓冲项中的高速缓存块800的地址从ADD总线上的写缓冲地址文件312中被发送,以及确认计数器302增加。ADD总线周期也发送在STORE总线周期中所需要的128位(八倍长字)传输的数量。
当STORE总线可用并且用于数据的外部存储器的缓存区空间可用时,则STORE总线传输被预期的延迟。处理器驱动存储数据到STORE总线。在所示的实施例中,每一个STORE总线周期传输的16字节(128位)完整的存储需要五个STORE总线周期。STORE总线周期的数量范围从一到八,传输存储在写缓冲项200中的缓冲区202中的全部的128字节的高速缓存块。外部存储器控制器缓冲ADD和STORE总线信息,并维护到外部存储器的写操作。从COMMIT总线上所收到的确认标识320指出存储器控制器已经收到并排序地址,也就是说,地址已被发送到外部存储器。
在从COMMIT总线收到的确认指示320之后,确认计数器302减少。确认标识320指出存储数据对一致性存储器总线132的所有用户都是可见的。确认标识320可能在现行的存储操作完全结束前被发送。举例来说,假定任何随后的一致性存储器总线操作可以看到更新的存储信息,外部存储器控制器将确认标识320通过COMMIT总线发送到处理器用于存储操作,即使数据并没有被写到外部存储器。
排序序列控制逻辑306一旦检测到确认计数器等于0时,即,先前的存储周期已经完成,可以请求一致性总线仲裁逻辑在一致性存储器总线上开始另一个存储周期。
存储器排序指令在很多高性能的存储器系统中是很有必要的,因为指令的执行的无次序的。具体地,高性能存储器排序指令对高信息包处理性能是很重要的,因为很多操作可以通过信息包处理应用程序保持在正在处理中。
图7是包括网络服务处理器700的安全应用软件702的方框图,其中所述的网络服务处理器700包括附图1中所示的至少一个处理器。
安全应用软件102是单独的系统,它可以将以太网端口上收到信息包转换到另一个以太网端口并且在转寄信息包之前对收到信息包执行多个安全功能。例如,安全应用702可以被用来对广域网上接收到的信息包在将被处理的信息包转寄给局域网上之前进行安全处理。
网络服务处理器700包含硬件信息包处理、缓冲作用、工作调度、有序化、同步化、对加速所有信息包处理任务的一致性支持。网络服务处理器700处理封装在接收到的信息包中的开放系统互连网络的L2-L7层协议。
网络服务处理器700通过物理界面PHY704a、704b从以太网端口(Gig E)接收信息包,对接收到的信息包执行L2-L7网络协议处理,并通过物理界面704a、704b或PCI总线706转寄处理的信息包。网络协议的处理可以包含对网络安全协议的处理,如防火墙、防火墙的应用、包括IP安全(IPSEC)和/或安全套接字层的虚拟专用网络(VPN)、入侵侦查系统(IDS)和反病毒(AV)。
在网络处理器700内的动态随机访问存储器(DRAM)控制器控制到外部DRAM708的访问,该DRAM708是与网络服务处理器700耦合的。DRAM708在网络服务处理器700的外部。DRAM708存储从PHY界面704a、706b或外部设备互连扩展(PCI-X)接口706的所接收到的数据信息包用于由网络服务处理器700的处理。
网络服务处理器700包含另外一个用来控制低延时DRAM718的存储控制器。低延时DRAM718是用在网络服务和网络安全上的,所述的网络服务和网络安全允许快速查找和包含入侵检测系统(IDS)或反病毒软件所要求的模块匹配。
图8是图7中所示的网络服务处理器700的方块图。网络处理器700通过采用最少一个处理器内核(图1所示)的方式来呈现其高执行性能。网络应用可以被分为为数据平面和控制平面操作。数据平面操作包括用于转寄信息包的信息包操作。控制平面操作包含复杂的高层协议部分的处理,如网络协议安全性(EPsec)、传输控制协议(TCP)和加密套接字协议层(SSL)。数据平面操作可以包含这些复杂的高层协议其它部分的处理。每一个处理器内核100可以实现完全的操作系统,即执行控制平面处理或者运行调谐的数据平面的代码,这些都是执行数据平面处理。例如,所有的处理器内核都能运行调谐的数据平面的代码,全部的处理器内核每一个可以执行全部的操作系统或者一些处理器内容可以执行操作系统而剩下的处理器内容运行数据平面代码。
SYNCW指令典型地被用在并行程序中,这些程序有能够在不同的处理器中同时执行的多个指令流。顺序(在其中存储指令的结果被其它的处理器所观测)确定在并行程序中可靠地共享数据的必要的动作。
被一个处理器所执行的存储指令的结果被其它处理器不按照程序顺序而观测,因此并行程序采取明确的动作以可靠共享数据。在程序的关键处,发生于指令流的结果一定在所有处理器内以相同顺序出现的。在SYNCW指令被执行之后的任何存储的结果之前,SYNCW指令允许在SYNCW指令的执行之前的所有存储的结果对所有的处理器都是能够看得见的。当SYNCW指令被执行时,SYNCW指令就会按照其存储指令的严格顺序来执行。
如下表1的代码段示出SYNCW指令是如何在单独的写和读处理器的指令流之间来协调共享数据的使用的。
L1R2,1
SYNCW
SW R2,FLAG
SYNCW
LI R2,1
1:LW R1,FLAG
BNE R2.R1,1
NOP
LW R1,DATA
表1
标记(FLAG)被指令流使用来确定共享数据项DATA是否是有效的。第一个被复写器执行的SYNCW强制数据的存储在FLAG完成之前被执行到外部存储器。第二个被复写器执行的SYNCW确保了存储标记在它被处理器内核识别之前是不在写缓冲区逗留的。
通过SPI-4.2或RGM II界面,信息包被接收用于GMX/SPX单元810a,810b处理。通过PCI界面也可以收到数据包。GMX/SPX单元通过检查包括在接收的信息包中的L2网络协议包头各种区域执行收到的信息包的预处理,然后把该信息包转寄到信息包输入单元814。
信息包输入单元814对包含在信息包里的协议报头(L3,L4)执行进一步的预处理。预处理包含对TCP和用户数据报协议(UDP)(L3网络协议)的校验和检查。
空闲库分配器(FPA)836维持着指向二级高速缓冲区812内的自由存储区和DRAM的指针。输入信息包处理单元814使用指针库中的一个以将接收的信息包数据存储在二级高速缓冲存储器或DRAM中,以及使用指针库的另一个库分配用于处理器内核的工作序列项。
然后信息包输入单元814以一种格式将信息包数据写入到二级高速缓冲区812或者DRAM中的缓冲区中,所述的格式便于执行在至少一个处理器内核100中的更高层软件用于更高级的网络协议的进一步处理。
网络服务处理器100也包含了卸载处理器内核100的应用程序专用联合处理器,以致网络服务处理器达到高处理能力。压缩/解压联合处理器808则致力于处理对收到的数据包进行解压和压缩。DFA模块844包括专用的DFA发动机以加速用于反病毒(AV),侵入检测系统(IDS)和其它处理应用的模式和标记达到4Gbps。
I/O桥(IOB)832管理所有的协议及仲裁,并提供一致性I/O的划分。IOB 832包含桥838和提取和增加单元(FAU)840。在FAU840内的寄存器被用作维持输出序列的长度,而该输出序列通过信息包输出单元818被用来转寄处理过的信息包。桥838包括用于存储将在I/O总线、一致性存储器总线、信息包输入单元814和信息包输出单元818之间传输的信息的缓冲序列。
信息包顺序/工作(POW)模块828为处理器100内核做排序和调度工作。工作就是通过增加工作序列项到序列里被排序。例如,为了每一个数据包的通过,通过信息包输入单元814增加工作序列项。计时单元842用来为处理器内核完成调度的功能。
处理器内核100从POW模块828得到工作。POW模块828为处理器内核100选择(即,调度)工作,并返回指向工作序列项的指针来描述给处理器内核100的工作。
处理器内核100包含指令高速缓冲区126、一级数据高速缓冲区128和密码加速器124。在一个实施方案中,网络服务处理器100包含16个RISC(精简指令集计算机)型处理器内核。在一个实施方案中,每一个超标量体系结构的RISC型处理器内核都是MIPS64版双核处理器内核的扩展。
二级高速缓冲区812和DRAM存储器都是对所有的处理器内核100和I/O联合处理器设备共享的。每一个处理器内核100通过一致性存储总线132耦合到二级高速缓冲区812上。该一致性存储总线132对所有的存储器以及处理器内核100、I/O桥(IOB832)、二级高速缓冲区和控制器812之间的I/O事务处理都是通讯信道。在一个实施方案中,存储总线132对与支持全部一级数据高速缓冲区128写功能的16位的处理器内核来说是可以升级的,有高速的缓冲速度,也能优化I/O。
二级高速缓冲存储控制器812维持着存储器基准的一致性。它对每一个添写要求返回最新的模块拷贝,反应了是存储在二级高速缓存还是DRAM还是正在传输过程中。它同样存储了每一个处理器内核100内的数据高速缓冲区128的标签的复件。它把数据缓冲区标签同高速缓冲模块存储所需的地址进行比较,同时当存储指令从另外的处理器内核或I/O组件发出并经过IOB832时,它就会使数据缓冲标签失效。当完成对数据包的处理之后,PKO818就会从存储区读取数据包的数据,用L4网络协议进行再处理(如产生一个TCP/UDP求和验证),然后通过GMX/SPC单元810a,810b往前移位,最后释放在数据包采用的L2缓存/DRAM。
本发明已经为被包括在安全应用中的处理器内核作以描述。然而,本发明并没有限制在安全应用中的处理器内核。本发明应用在廉线处理器中的存储指令的排序。虽然本发明结合其优选的实施方案已经被具体地显示和描述,但是本领域技术人员能够理解的是,任何形式上和细节上的各种各样的变化都没有超出权利要求书所限定的本发明的保护范围。

Claims (20)

1.一种处理器,包括:
写缓冲区,该写缓冲区具有用于把将被存储的数据存储到外部存储区的多个写缓冲项;
系统接口,该系统接口包括:
排序序列,存储在写缓冲区内的数据经过排序序列中的排序序列项被发送到外部存储器;
排序序列逻辑,该排序序列逻辑一旦检测到存储排序指令的执行,则确保由排序序列中的排序序列项所标识的写缓冲区地址在用于随后发布的存储指令的地址之前被发送到外部存储器,排序序列项的数量大于写缓冲区中的项的数量,以致至少一个排序序列项在存储排序指令被执行时是有效的,从而消除存储排序指令的延迟。
2.根据权利要求1的处理器,其中排序序列逻辑通过监控从用于每个写缓冲区地址的外部存储器中返回的确认标识符确保写缓冲区地址被发送。
3.根据权利要求1的处理器,一旦在写缓冲区中检测到有效写缓冲项,系统接口分配排序序列项并在排序序列项中识别有效写缓冲项。
4.根据权利要求1的处理器,其中一旦在写缓冲区中没有检测到有效写缓冲项以及在排序序列中检测到至少一个排序序列项,系统接口在最后排序序列项中设置存储排序指令执行标识。
5.根据权利要求1的处理器,一旦检测到在写缓冲区中没有有效的写缓冲项以及在排序序列中没有排序序列项,系统接口分配排序序列项并在分配的排序序列项中设置存储排序指令执行标识。
6.根据权利要求1的处理器,写缓冲区有N个写缓冲项,并且排序序列有N+1个排序序列项。
7.根据权利要求6的处理器,其中N=16。
8.根据权利要求1的处理器,写缓冲项包括用于存储将被存储到外部存储器中的数据的缓冲区以及具有与缓冲区中的每一个字节相对应的位的掩码。
9.根据权利要求1的处理器,排序序列项包括存储排序指令执行标识符和具有与每个写缓冲项相对应的位的排序掩码。
10.一种用于在处理器中排序存储数据的方法:
将待存储到外部存储器中的数据存储到写缓冲区中的写缓冲项中;
借助排序序列内的排序序列项把存储在缓冲区内的数据发送到外部存储器;
一旦检测到存储排序指令的执行,则确保由排序序列中的排序序列项所标识的写缓冲地址在后续被发布的存储指令之前发送到外部存储器,排序序列项的数量大于写缓冲区中的项的数量,以致至少一个排序序列项在存储排序指令被执行时是有效的,从而消除存储排序指令的延迟。
11.根据权利要求10的方法,确保包括监控从外部存储器返回的用于每个写缓冲地址的确认指示符。
12.根据权利要求10的方法,进一步包括:
一旦检测到写缓冲区中具有有效的写缓冲项,则分配排序序列项并在排序序列项标识有效写缓冲项。
13.根据权利要求10的方法,进一步包括:
一旦检测到在写缓冲区中没有有效写缓冲项以及在排序序列中有至少一个排序序列项,则在最后的序列项中设置存储排序指令标识符。
14.根据权利要求10的方法,进一步包括:
一旦检测到在写缓冲区中没有有效的写缓冲项以及在排序序列中没有排序序列项,则分配排序序列项并在分配的排序序列项中设置存储排序指令执行标识符。
15.根据权利要求10的方法,其中写缓冲项包括用于存储将被存储在外部存储器中的数据的缓冲区以及具有与缓冲区中每个字节相对应的位的掩码。
16.根据权利要求10的方法,其中排序序列项包括存储排序指令执行标识符以及具有与每个写缓冲项相对应的位的排序掩码。
17.根据权利要求10的方法,其中写缓冲区具有N个写缓冲项,以及排序序列具有N+1个排序序列项。
18.根据权利要求17的方法,其中N=16。
19.一种处理器,其包括:
写缓冲区,该写缓冲区具有用于存储待存储到外部存储器中的数据的多个写缓冲项;
用于将存储到写缓冲区中的数据借助排序序列中的排序序列项发送到外部存储器的装置;
一旦检测到存储排序指令的执行,用于确保由排序序列中的排序序列项所标识的写缓冲地址在用于后续发布的存储指令的地址之前被发送到外部存储器的装置,排序序列项的数量大于写缓冲区中的项的数量,以致至少一个排序序列项在存储排序指令被执行时是有效的,从而消除存储排序指令的延迟。
20.一种网络服务处理器,其包括:
高速缓冲存储区;以及
至少一个处理器内核,该处理器内核包含:
写缓冲区,该写缓冲区具有用于存储将被存储到高速缓冲存储区中的数据的多个写缓冲项;
系统接口,所述的系统接口包括:
排序序列,存储在写缓冲区的数据经过排序序列内的排序序列项被发送到高速缓冲存储器;
排序序列逻辑,该排序序列逻辑一旦检测到存储排序指令的执行则确保由排序序列中的排序序列项所标识的写缓冲区地址在用于后续发布的存储指令的地址之前被发送到高速缓冲存储器,排序序列项的数量大于写缓冲区中的项的数量,以致至少一个排序序列项在存储排序指令被执行时是有效的,从而消除存储排序指令的延迟。
CNB2005800346066A 2004-09-10 2005-09-01 用于多核处理器的存储指令排序 Expired - Fee Related CN100533372C (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US60921104P 2004-09-10 2004-09-10
US60/609,211 2004-09-10
US11/002,728 2004-11-30

Publications (2)

Publication Number Publication Date
CN101040256A CN101040256A (zh) 2007-09-19
CN100533372C true CN100533372C (zh) 2009-08-26

Family

ID=38731731

Family Applications (5)

Application Number Title Priority Date Filing Date
CNB2005800346066A Expired - Fee Related CN100533372C (zh) 2004-09-10 2005-09-01 用于多核处理器的存储指令排序
CN2005800346009A Active CN101069170B (zh) 2004-09-10 2005-09-01 一种网络服务处理器以及处理数据包的装置和方法
CN2005800334834A Expired - Fee Related CN101036117B (zh) 2004-09-10 2005-09-01 低延时存储器的直接存取
CN200580034214XA Expired - Fee Related CN101053234B (zh) 2004-09-10 2005-09-08 用于越过具有进入的分组数据的dfa图像的方法和装置
CN2005800304519A Expired - Fee Related CN101128804B (zh) 2004-09-10 2005-09-09 在低延时存储器中数据结构的选择性复制

Family Applications After (4)

Application Number Title Priority Date Filing Date
CN2005800346009A Active CN101069170B (zh) 2004-09-10 2005-09-01 一种网络服务处理器以及处理数据包的装置和方法
CN2005800334834A Expired - Fee Related CN101036117B (zh) 2004-09-10 2005-09-01 低延时存储器的直接存取
CN200580034214XA Expired - Fee Related CN101053234B (zh) 2004-09-10 2005-09-08 用于越过具有进入的分组数据的dfa图像的方法和装置
CN2005800304519A Expired - Fee Related CN101128804B (zh) 2004-09-10 2005-09-09 在低延时存储器中数据结构的选择性复制

Country Status (2)

Country Link
US (4) US7941585B2 (zh)
CN (5) CN100533372C (zh)

Families Citing this family (209)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7941585B2 (en) * 2004-09-10 2011-05-10 Cavium Networks, Inc. Local scratchpad and data caching system
WO2006031551A2 (en) * 2004-09-10 2006-03-23 Cavium Networks Selective replication of data structure
US7594081B2 (en) * 2004-09-10 2009-09-22 Cavium Networks, Inc. Direct access to low-latency memory
US8316431B2 (en) * 2004-10-12 2012-11-20 Canon Kabushiki Kaisha Concurrent IPsec processing system and method
US7650542B2 (en) * 2004-12-16 2010-01-19 Broadcom Corporation Method and system of using a single EJTAG interface for multiple tap controllers
US7549026B2 (en) * 2005-03-30 2009-06-16 Intel Corporation Method and apparatus to provide dynamic hardware signal allocation in a processor
US8881114B2 (en) * 2005-05-16 2014-11-04 Texas Instruments Incorporated Stored program writing stall information when a processor stalls waiting for another processor
US7840000B1 (en) * 2005-07-25 2010-11-23 Rockwell Collins, Inc. High performance programmable cryptography system
US20070067567A1 (en) * 2005-09-19 2007-03-22 Via Technologies, Inc. Merging entries in processor caches
US20080282034A1 (en) * 2005-09-19 2008-11-13 Via Technologies, Inc. Memory Subsystem having a Multipurpose Cache for a Stream Graphics Multiprocessor
US8799687B2 (en) 2005-12-30 2014-08-05 Intel Corporation Method, apparatus, and system for energy efficiency and energy conservation including optimizing C-state selection under variable wakeup rates
US7725791B2 (en) 2006-10-20 2010-05-25 Texas Instruments Incorporated Single lead alternating TDI/TMS DDR JTAG input
US20080184150A1 (en) * 2007-01-31 2008-07-31 Marc Minato Electronic circuit design analysis tool for multi-processor environments
US8111707B2 (en) 2007-12-20 2012-02-07 Packeteer, Inc. Compression mechanisms for control plane—data plane processing architectures
US7813277B2 (en) * 2007-06-29 2010-10-12 Packeteer, Inc. Lockless bandwidth management for multiprocessor networking devices
US8059532B2 (en) * 2007-06-21 2011-11-15 Packeteer, Inc. Data and control plane architecture including server-side triggered flow policy mechanism
US9419867B2 (en) * 2007-03-30 2016-08-16 Blue Coat Systems, Inc. Data and control plane architecture for network application traffic management device
US8279885B2 (en) * 2007-09-25 2012-10-02 Packeteer, Inc. Lockless processing of command operations in multiprocessor systems
EP2176773B1 (en) * 2007-07-09 2015-09-02 Hewlett-Packard Development Company, L. P. Data packet processing method for a multi core processor
US8375449B1 (en) 2007-08-10 2013-02-12 Fortinet, Inc. Circuits and methods for operating a virus co-processor
US8079084B1 (en) 2007-08-10 2011-12-13 Fortinet, Inc. Virus co-processor instructions and methods for using such
US8286246B2 (en) * 2007-08-10 2012-10-09 Fortinet, Inc. Circuits and methods for efficient data transfer in a virus co-processing system
US7836283B2 (en) * 2007-08-31 2010-11-16 Freescale Semiconductor, Inc. Data acquisition messaging using special purpose registers
US20090106501A1 (en) * 2007-10-17 2009-04-23 Broadcom Corporation Data cache management mechanism for packet forwarding
US20090150696A1 (en) * 2007-12-10 2009-06-11 Justin Song Transitioning a processor package to a low power state
US8024590B2 (en) * 2007-12-10 2011-09-20 Intel Corporation Predicting future power level states for processor cores
CN101272334B (zh) * 2008-03-19 2010-11-10 杭州华三通信技术有限公司 使用多核CPU处理QoS业务的方法、装置和设备
CN101282303B (zh) * 2008-05-19 2010-09-22 杭州华三通信技术有限公司 业务报文处理方法和装置
JP5202130B2 (ja) * 2008-06-24 2013-06-05 株式会社東芝 キャッシュメモリ、コンピュータシステム、及びメモリアクセス方法
CN101299194B (zh) * 2008-06-26 2010-04-07 上海交通大学 基于可配置处理器的异构多核系统线程级动态调度方法
US8041899B2 (en) * 2008-07-29 2011-10-18 Freescale Semiconductor, Inc. System and method for fetching information to a cache module using a write back allocate algorithm
US8572433B2 (en) * 2010-03-10 2013-10-29 Texas Instruments Incorporated JTAG IC with commandable circuit controlling data register control router
US8996812B2 (en) * 2009-06-19 2015-03-31 International Business Machines Corporation Write-back coherency data cache for resolving read/write conflicts
US8407528B2 (en) * 2009-06-30 2013-03-26 Texas Instruments Incorporated Circuits, systems, apparatus and processes for monitoring activity in multi-processing systems
US8595425B2 (en) * 2009-09-25 2013-11-26 Nvidia Corporation Configurable cache for multiple clients
JP5321691B2 (ja) * 2009-11-16 2013-10-23 富士通株式会社 並列計算装置、並列計算方法、および並列計算プログラム
WO2011067408A1 (en) * 2009-12-04 2011-06-09 Napatech A/S An apparatus and a method of receiving and storing data packets controlled by a central controller
US8452835B2 (en) 2009-12-23 2013-05-28 Citrix Systems, Inc. Systems and methods for object rate limiting in multi-core system
US8850404B2 (en) * 2009-12-23 2014-09-30 Intel Corporation Relational modeling for performance analysis of multi-core processors using virtual tasks
US8914672B2 (en) * 2009-12-28 2014-12-16 Intel Corporation General purpose hardware to replace faulty core components that may also provide additional processor functionality
CN102141905B (zh) 2010-01-29 2015-02-25 上海芯豪微电子有限公司 一种处理器体系结构
US8112677B2 (en) * 2010-02-26 2012-02-07 UltraSoC Technologies Limited Method of debugging multiple processes
US8601056B2 (en) * 2010-03-09 2013-12-03 Avistar Communications Corporation Scalable high-performance interactive real-time media architectures for virtual desktop environments
CN101840328B (zh) 2010-04-15 2014-05-07 华为技术有限公司 一种数据处理方法及系统以及相关设备
US8683128B2 (en) 2010-05-07 2014-03-25 International Business Machines Corporation Memory bus write prioritization
US8838901B2 (en) 2010-05-07 2014-09-16 International Business Machines Corporation Coordinated writeback of dirty cachelines
CN102279802A (zh) * 2010-06-13 2011-12-14 中兴通讯股份有限公司 提高同步动态随机存储控制器的读操作效率的方法和装置
TW201145016A (en) * 2010-06-15 2011-12-16 Nat Univ Chung Cheng Non-intrusive debugging framework for parallel software based on super multi-core framework
CN102346661A (zh) * 2010-07-30 2012-02-08 国际商业机器公司 一种用于对硬件加速器的请求队列维护状态的方法和系统
US8661227B2 (en) * 2010-09-17 2014-02-25 International Business Machines Corporation Multi-level register file supporting multiple threads
US8943334B2 (en) 2010-09-23 2015-01-27 Intel Corporation Providing per core voltage and frequency control
CN103270504B (zh) * 2010-12-22 2016-05-25 英特尔公司 调试复杂多核和多插座系统
US9069555B2 (en) 2011-03-21 2015-06-30 Intel Corporation Managing power consumption in a multi-core processor
CN102149207B (zh) * 2011-04-02 2013-06-19 天津大学 提高wlan的tcp短期公平性的接入点调度方法
CN102214132B (zh) * 2011-05-16 2014-07-02 曙光信息产业股份有限公司 一种调试龙芯cpu和南北桥芯片的方法和装置
US20120297147A1 (en) * 2011-05-20 2012-11-22 Nokia Corporation Caching Operations for a Non-Volatile Memory Array
US8793515B2 (en) 2011-06-27 2014-07-29 Intel Corporation Increasing power efficiency of turbo mode operation in a processor
US9936209B2 (en) * 2011-08-11 2018-04-03 The Quantum Group, Inc. System and method for slice processing computer-related tasks
US8769316B2 (en) 2011-09-06 2014-07-01 Intel Corporation Dynamically allocating a power budget over multiple domains of a processor
US8688883B2 (en) 2011-09-08 2014-04-01 Intel Corporation Increasing turbo mode residency of a processor
US8914650B2 (en) 2011-09-28 2014-12-16 Intel Corporation Dynamically adjusting power of non-core processor circuitry including buffer circuitry
US8954770B2 (en) 2011-09-28 2015-02-10 Intel Corporation Controlling temperature of multiple domains of a multi-domain processor using a cross domain margin
US9074947B2 (en) 2011-09-28 2015-07-07 Intel Corporation Estimating temperature of a processor core in a low power state without thermal sensor information
US8898244B2 (en) * 2011-10-20 2014-11-25 Allen Miglore System and method for transporting files between networked or connected systems and devices
US8850125B2 (en) 2011-10-25 2014-09-30 Cavium, Inc. System and method to provide non-coherent access to a coherent memory system
US8473658B2 (en) * 2011-10-25 2013-06-25 Cavium, Inc. Input output bridging
US8560757B2 (en) * 2011-10-25 2013-10-15 Cavium, Inc. System and method to reduce memory access latencies using selective replication across multiple memory ports
US9026815B2 (en) 2011-10-27 2015-05-05 Intel Corporation Controlling operating frequency of a core domain via a non-core domain of a multi-domain processor
US8832478B2 (en) 2011-10-27 2014-09-09 Intel Corporation Enabling a non-core domain to control memory bandwidth in a processor
US8943340B2 (en) 2011-10-31 2015-01-27 Intel Corporation Controlling a turbo mode frequency of a processor
US9330002B2 (en) * 2011-10-31 2016-05-03 Cavium, Inc. Multi-core interconnect in a network processor
US9158693B2 (en) 2011-10-31 2015-10-13 Intel Corporation Dynamically controlling cache size to maximize energy efficiency
FR2982683B1 (fr) * 2011-11-10 2014-01-03 Sagem Defense Securite Procede de sequencement sur un processeur multicoeur.
US8972763B2 (en) 2011-12-05 2015-03-03 Intel Corporation Method, apparatus, and system for energy efficiency and energy conservation including determining an optimal power state of the apparatus based on residency time of non-core domains in a power saving state
US9239611B2 (en) 2011-12-05 2016-01-19 Intel Corporation Method, apparatus, and system for energy efficiency and energy conservation including balancing power among multi-frequency domains of a processor based on efficiency rating scheme
US9052901B2 (en) 2011-12-14 2015-06-09 Intel Corporation Method, apparatus, and system for energy efficiency and energy conservation including configurable maximum processor current
US9372524B2 (en) 2011-12-15 2016-06-21 Intel Corporation Dynamically modifying a power/performance tradeoff based on processor utilization
US9098261B2 (en) 2011-12-15 2015-08-04 Intel Corporation User level control of power management policies
CN116414459A (zh) 2011-12-23 2023-07-11 英特尔公司 在不同的粒度水平下对数据值进行广播和掩码的指令执行
US9336000B2 (en) * 2011-12-23 2016-05-10 Intel Corporation Instruction execution unit that broadcasts data values at different levels of granularity
WO2013137862A1 (en) 2012-03-13 2013-09-19 Intel Corporation Dynamically controlling interconnect frequency in a processor
WO2013137859A1 (en) 2012-03-13 2013-09-19 Intel Corporation Providing energy efficient turbo operation of a processor
WO2013137860A1 (en) 2012-03-13 2013-09-19 Intel Corporation Dynamically computing an electrical design point (edp) for a multicore processor
US9547027B2 (en) 2012-03-30 2017-01-17 Intel Corporation Dynamically measuring power consumption in a processor
US10185566B2 (en) 2012-04-27 2019-01-22 Intel Corporation Migrating tasks between asymmetric computing elements of a multi-core processor
US9411770B2 (en) * 2012-07-10 2016-08-09 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Controlling a plurality of serial peripheral interface (‘SPI’) peripherals using a single chip select
US9063727B2 (en) 2012-08-31 2015-06-23 Intel Corporation Performing cross-domain thermal control in a processor
US8984313B2 (en) 2012-08-31 2015-03-17 Intel Corporation Configuring power management functionality in a processor including a plurality of cores by utilizing a register to store a power domain indicator
US9342122B2 (en) 2012-09-17 2016-05-17 Intel Corporation Distributing power to heterogeneous compute elements of a processor
US9423858B2 (en) 2012-09-27 2016-08-23 Intel Corporation Sharing power between domains in a processor package using encoded power consumption information from a second domain to calculate an available power budget for a first domain
US9575543B2 (en) 2012-11-27 2017-02-21 Intel Corporation Providing an inter-arrival access timer in a processor
US9183144B2 (en) 2012-12-14 2015-11-10 Intel Corporation Power gating a portion of a cache memory
US9405351B2 (en) 2012-12-17 2016-08-02 Intel Corporation Performing frequency coordination in a multiprocessor system
US9292468B2 (en) 2012-12-17 2016-03-22 Intel Corporation Performing frequency coordination in a multiprocessor system based on response timing optimization
US8619800B1 (en) * 2012-12-20 2013-12-31 Unbound Networks Parallel processing using multi-core processor
US9235252B2 (en) 2012-12-21 2016-01-12 Intel Corporation Dynamic balancing of power across a plurality of processor domains according to power policy control bias
US9075556B2 (en) 2012-12-21 2015-07-07 Intel Corporation Controlling configurable peak performance limits of a processor
US9164565B2 (en) 2012-12-28 2015-10-20 Intel Corporation Apparatus and method to manage energy usage of a processor
US9274826B2 (en) * 2012-12-28 2016-03-01 Futurewei Technologies, Inc. Methods for task scheduling through locking and unlocking an ingress queue and a task queue
US9081577B2 (en) 2012-12-28 2015-07-14 Intel Corporation Independent control of processor core retention states
US9606888B1 (en) * 2013-01-04 2017-03-28 Marvell International Ltd. Hierarchical multi-core debugger interface
US9335803B2 (en) 2013-02-15 2016-05-10 Intel Corporation Calculating a dynamically changeable maximum operating voltage value for a processor based on a different polynomial equation using a set of coefficient values and a number of current active cores
US9367114B2 (en) 2013-03-11 2016-06-14 Intel Corporation Controlling operating voltage of a processor
US9395784B2 (en) 2013-04-25 2016-07-19 Intel Corporation Independently controlling frequency of plurality of power domains in a processor system
US9377841B2 (en) 2013-05-08 2016-06-28 Intel Corporation Adaptively limiting a maximum operating frequency in a multicore processor
US9823719B2 (en) 2013-05-31 2017-11-21 Intel Corporation Controlling power delivery to a processor via a bypass
US9348401B2 (en) 2013-06-25 2016-05-24 Intel Corporation Mapping a performance request to an operating frequency in a processor
US9471088B2 (en) 2013-06-25 2016-10-18 Intel Corporation Restricting clock signal delivery in a processor
US9348407B2 (en) 2013-06-27 2016-05-24 Intel Corporation Method and apparatus for atomic frequency and voltage changes
US9377836B2 (en) 2013-07-26 2016-06-28 Intel Corporation Restricting clock signal delivery based on activity in a processor
US9495001B2 (en) 2013-08-21 2016-11-15 Intel Corporation Forcing core low power states in a processor
US9563399B2 (en) 2013-08-30 2017-02-07 Cavium, Inc. Generating a non-deterministic finite automata (NFA) graph for regular expression patterns with advanced features
US10386900B2 (en) 2013-09-24 2019-08-20 Intel Corporation Thread aware power management
US9405345B2 (en) 2013-09-27 2016-08-02 Intel Corporation Constraining processor operation based on power envelope information
US9594560B2 (en) 2013-09-27 2017-03-14 Intel Corporation Estimating scalability value for a specific domain of a multicore processor based on active state residency of the domain, stall duration of the domain, memory bandwidth of the domain, and a plurality of coefficients based on a workload to execute on the domain
TWI625622B (zh) 2013-10-31 2018-06-01 聯想企業解決方案(新加坡)有限公司 在多核心處理器系統與運作多核心處理器系統的電腦實施方法
US20160299859A1 (en) * 2013-11-22 2016-10-13 Freescale Semiconductor, Inc. Apparatus and method for external access to core resources of a processor, semiconductor systems development tool comprising the apparatus, and computer program product and non-transitory computer-readable storage medium associated with the method
US9494998B2 (en) 2013-12-17 2016-11-15 Intel Corporation Rescheduling workloads to enforce and maintain a duty cycle
US9459689B2 (en) 2013-12-23 2016-10-04 Intel Corporation Dyanamically adapting a voltage of a clock generation circuit
US9811467B2 (en) * 2014-02-03 2017-11-07 Cavium, Inc. Method and an apparatus for pre-fetching and processing work for procesor cores in a network processor
US9323525B2 (en) 2014-02-26 2016-04-26 Intel Corporation Monitoring vector lane duty cycle for dynamic optimization
US9431105B2 (en) 2014-02-26 2016-08-30 Cavium, Inc. Method and apparatus for memory access management
US9372800B2 (en) 2014-03-07 2016-06-21 Cavium, Inc. Inter-chip interconnect protocol for a multi-chip system
US9529532B2 (en) 2014-03-07 2016-12-27 Cavium, Inc. Method and apparatus for memory allocation in a multi-node system
US9411644B2 (en) 2014-03-07 2016-08-09 Cavium, Inc. Method and system for work scheduling in a multi-chip system
US10592459B2 (en) * 2014-03-07 2020-03-17 Cavium, Llc Method and system for ordering I/O access in a multi-node environment
US9665153B2 (en) 2014-03-21 2017-05-30 Intel Corporation Selecting a low power state based on cache flush latency determination
US10108454B2 (en) 2014-03-21 2018-10-23 Intel Corporation Managing dynamic capacitance using code scheduling
US10002326B2 (en) 2014-04-14 2018-06-19 Cavium, Inc. Compilation of finite automata based on memory hierarchy
US10110558B2 (en) 2014-04-14 2018-10-23 Cavium, Inc. Processing of finite automata based on memory hierarchy
US9443553B2 (en) 2014-04-28 2016-09-13 Seagate Technology Llc Storage system with multiple media scratch pads
US8947817B1 (en) 2014-04-28 2015-02-03 Seagate Technology Llc Storage system with media scratch pad
US9760158B2 (en) 2014-06-06 2017-09-12 Intel Corporation Forcing a processor into a low power state
US10417149B2 (en) 2014-06-06 2019-09-17 Intel Corporation Self-aligning a processor duty cycle with interrupts
US9606602B2 (en) 2014-06-30 2017-03-28 Intel Corporation Method and apparatus to prevent voltage droop in a computer
US9513689B2 (en) 2014-06-30 2016-12-06 Intel Corporation Controlling processor performance scaling based on context
US9575537B2 (en) 2014-07-25 2017-02-21 Intel Corporation Adaptive algorithm for thermal throttling of multi-core processors with non-homogeneous performance states
US9760136B2 (en) 2014-08-15 2017-09-12 Intel Corporation Controlling temperature of a system memory
US9671853B2 (en) 2014-09-12 2017-06-06 Intel Corporation Processor operating by selecting smaller of requested frequency and an energy performance gain (EPG) frequency
US10339023B2 (en) 2014-09-25 2019-07-02 Intel Corporation Cache-aware adaptive thread scheduling and migration
US9977477B2 (en) 2014-09-26 2018-05-22 Intel Corporation Adapting operating parameters of an input/output (IO) interface circuit of a processor
US9684360B2 (en) 2014-10-30 2017-06-20 Intel Corporation Dynamically controlling power management of an on-die memory of a processor
US9703358B2 (en) 2014-11-24 2017-07-11 Intel Corporation Controlling turbo mode frequency operation in a processor
US9710043B2 (en) 2014-11-26 2017-07-18 Intel Corporation Controlling a guaranteed frequency of a processor
US10048744B2 (en) 2014-11-26 2018-08-14 Intel Corporation Apparatus and method for thermal management in a multi-chip package
US20160147280A1 (en) 2014-11-26 2016-05-26 Tessil Thomas Controlling average power limits of a processor
US10877530B2 (en) 2014-12-23 2020-12-29 Intel Corporation Apparatus and method to provide a thermal parameter report for a multi-chip package
JP5917678B1 (ja) 2014-12-26 2016-05-18 株式会社Pfu 情報処理装置、方法およびプログラム
US20160224098A1 (en) 2015-01-30 2016-08-04 Alexander Gendler Communicating via a mailbox interface of a processor
US9639134B2 (en) 2015-02-05 2017-05-02 Intel Corporation Method and apparatus to provide telemetry data to a power controller of a processor
US9910481B2 (en) 2015-02-13 2018-03-06 Intel Corporation Performing power management in a multicore processor
US10234930B2 (en) 2015-02-13 2019-03-19 Intel Corporation Performing power management in a multicore processor
US9874922B2 (en) 2015-02-17 2018-01-23 Intel Corporation Performing dynamic power control of platform devices
US9971686B2 (en) 2015-02-23 2018-05-15 Intel Corporation Vector cache line write back processors, methods, systems, and instructions
US9842082B2 (en) 2015-02-27 2017-12-12 Intel Corporation Dynamically updating logical identifiers of cores of a processor
US9710054B2 (en) 2015-02-28 2017-07-18 Intel Corporation Programmable power management agent
US9760160B2 (en) 2015-05-27 2017-09-12 Intel Corporation Controlling performance states of processing engines of a processor
US9710041B2 (en) 2015-07-29 2017-07-18 Intel Corporation Masking a power state of a core of a processor
GB2540948B (en) * 2015-07-31 2021-09-15 Advanced Risc Mach Ltd Apparatus with reduced hardware register set
CN105072050A (zh) * 2015-08-26 2015-11-18 联想(北京)有限公司 一种数据传输方法及装置
US10001822B2 (en) 2015-09-22 2018-06-19 Intel Corporation Integrating a power arbiter in a processor
CN105354136B (zh) * 2015-09-25 2018-06-15 华为技术有限公司 一种调试方法、多核处理器和调试设备
CN105224454B (zh) * 2015-09-25 2018-06-05 华为技术有限公司 一种调试方法、多核处理器和调试设备
US9983644B2 (en) 2015-11-10 2018-05-29 Intel Corporation Dynamically updating at least one power management operational parameter pertaining to a turbo mode of a processor for increased performance
US10303372B2 (en) 2015-12-01 2019-05-28 Samsung Electronics Co., Ltd. Nonvolatile memory device and operation method thereof
US9910470B2 (en) 2015-12-16 2018-03-06 Intel Corporation Controlling telemetry data communication in a processor
US10146286B2 (en) 2016-01-14 2018-12-04 Intel Corporation Dynamically updating a power management policy of a processor
US10223295B2 (en) * 2016-03-10 2019-03-05 Microsoft Technology Licensing, Llc Protected pointers
CN107315563B (zh) * 2016-04-26 2020-08-07 中科寒武纪科技股份有限公司 一种用于执行向量比较运算的装置和方法
US10289188B2 (en) 2016-06-21 2019-05-14 Intel Corporation Processor having concurrent core and fabric exit from a low power state
US10324519B2 (en) 2016-06-23 2019-06-18 Intel Corporation Controlling forced idle state operation in a processor
US10281975B2 (en) 2016-06-23 2019-05-07 Intel Corporation Processor having accelerated user responsiveness in constrained environment
US10649914B1 (en) * 2016-07-01 2020-05-12 The Board Of Trustees Of The University Of Illinois Scratchpad-based operating system for multi-core embedded systems
US10379596B2 (en) 2016-08-03 2019-08-13 Intel Corporation Providing an interface for demotion control information in a processor
US10379904B2 (en) 2016-08-31 2019-08-13 Intel Corporation Controlling a performance state of a processor using a combination of package and thread hint information
US10234920B2 (en) 2016-08-31 2019-03-19 Intel Corporation Controlling current consumption of a processor based at least in part on platform capacitance
US10423206B2 (en) 2016-08-31 2019-09-24 Intel Corporation Processor to pre-empt voltage ramps for exit latency reductions
US10168758B2 (en) 2016-09-29 2019-01-01 Intel Corporation Techniques to enable communication between a processor and voltage regulator
US10877509B2 (en) 2016-12-12 2020-12-29 Intel Corporation Communicating signals between divided and undivided clock domains
US10534682B2 (en) * 2016-12-28 2020-01-14 Arm Limited Method and diagnostic apparatus for performing diagnostic operations upon a target apparatus using transferred state and emulated operation of a transaction master
US11853244B2 (en) * 2017-01-26 2023-12-26 Wisconsin Alumni Research Foundation Reconfigurable computer accelerator providing stream processor and dataflow processor
US10740256B2 (en) * 2017-05-23 2020-08-11 Marvell Asia Pte, Ltd. Re-ordering buffer for a digital multi-processor system with configurable, scalable, distributed job manager
US10678674B2 (en) * 2017-06-15 2020-06-09 Silicon Laboratories, Inc. Wireless debugging
US10429919B2 (en) 2017-06-28 2019-10-01 Intel Corporation System, apparatus and method for loose lock-step redundancy power management
EP3673344A4 (en) 2017-08-23 2021-04-21 INTEL Corporation SYSTEM, DEVICE AND METHOD FOR ADAPTIVE OPERATING VOLTAGE IN A FIELD-PROGRAMMABLE GATE ARRAY (FPGA)
US10620266B2 (en) 2017-11-29 2020-04-14 Intel Corporation System, apparatus and method for in-field self testing in a diagnostic sleep state
US10620682B2 (en) 2017-12-21 2020-04-14 Intel Corporation System, apparatus and method for processor-external override of hardware performance state control of a processor
US10620969B2 (en) 2018-03-27 2020-04-14 Intel Corporation System, apparatus and method for providing hardware feedback information in a processor
US10739844B2 (en) 2018-05-02 2020-08-11 Intel Corporation System, apparatus and method for optimized throttling of a processor
EP3570499B1 (de) 2018-05-15 2021-04-07 Siemens Aktiengesellschaft Verfahren zur funktional sicheren verbindungsidentifizierung
US10955899B2 (en) 2018-06-20 2021-03-23 Intel Corporation System, apparatus and method for responsive autonomous hardware performance state control of a processor
US10976801B2 (en) 2018-09-20 2021-04-13 Intel Corporation System, apparatus and method for power budget distribution for a plurality of virtual machines to execute on a processor
US10860083B2 (en) 2018-09-26 2020-12-08 Intel Corporation System, apparatus and method for collective power control of multiple intellectual property agents and a shared power rail
CN109542348B (zh) * 2018-11-19 2022-05-10 郑州云海信息技术有限公司 一种数据下刷方法及装置
US11656676B2 (en) 2018-12-12 2023-05-23 Intel Corporation System, apparatus and method for dynamic thermal distribution of a system on chip
US11256657B2 (en) 2019-03-26 2022-02-22 Intel Corporation System, apparatus and method for adaptive interconnect routing
US11442529B2 (en) 2019-05-15 2022-09-13 Intel Corporation System, apparatus and method for dynamically controlling current consumption of processing circuits of a processor
US11106583B2 (en) * 2019-05-24 2021-08-31 Texas Instmments Incorporated Shadow caches for level 2 cache controller
CN110262888B (zh) * 2019-06-26 2020-11-20 京东数字科技控股有限公司 任务调度方法和装置及计算节点执行任务的方法和装置
US11698812B2 (en) 2019-08-29 2023-07-11 Intel Corporation System, apparatus and method for providing hardware state feedback to an operating system in a heterogeneous processor
US11132283B2 (en) * 2019-10-08 2021-09-28 Renesas Electronics America Inc. Device and method for evaluating internal and external system processors by internal and external debugger devices
DE102020127704A1 (de) 2019-10-29 2021-04-29 Nvidia Corporation Techniken zum effizienten transferieren von daten an einem prozessor
US11803380B2 (en) 2019-10-29 2023-10-31 Nvidia Corporation High performance synchronization mechanisms for coordinating operations on a computer system
CN111045960B (zh) * 2019-11-21 2023-06-13 中国航空工业集团公司西安航空计算技术研究所 一种多像素格式存储的Cache电路
US11366506B2 (en) 2019-11-22 2022-06-21 Intel Corporation System, apparatus and method for globally aware reactive local power control in a processor
US11341066B2 (en) * 2019-12-12 2022-05-24 Electronics And Telecommunications Research Institute Cache for artificial intelligence processor
US11132201B2 (en) 2019-12-23 2021-09-28 Intel Corporation System, apparatus and method for dynamic pipeline stage control of data path dominant circuitry of an integrated circuit
US11513835B2 (en) * 2020-06-01 2022-11-29 Micron Technology, Inc. Notifying memory system of host events via modulated reset signals
US11921564B2 (en) 2022-02-28 2024-03-05 Intel Corporation Saving and restoring configuration and status information with reduced latency

Family Cites Families (108)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4415970A (en) 1980-11-14 1983-11-15 Sperry Corporation Cache/disk subsystem with load equalization
JPS5969826A (ja) 1982-10-15 1984-04-20 Hitachi Ltd バツフア制御方式
US4755930A (en) 1985-06-27 1988-07-05 Encore Computer Corporation Hierarchical cache memory system and method
US5091846A (en) 1986-10-03 1992-02-25 Intergraph Corporation Cache providing caching/non-caching write-through and copyback modes for virtual addresses and including bus snooping to maintain coherency
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
US5119485A (en) 1989-05-15 1992-06-02 Motorola, Inc. Method for data bus snooping in a data processing system by selective concurrent read and invalidate cache operation
US5471593A (en) * 1989-12-11 1995-11-28 Branigin; Michael H. Computer processor with an efficient means of executing many instructions simultaneously
US5193187A (en) * 1989-12-29 1993-03-09 Supercomputer Systems Limited Partnership Fast interrupt mechanism for interrupting processors in parallel in a multiprocessor system wherein processors are assigned process ID numbers
US5404483A (en) 1990-06-29 1995-04-04 Digital Equipment Corporation Processor and method for delaying the processing of cache coherency transactions during outstanding cache fills
US5432918A (en) * 1990-06-29 1995-07-11 Digital Equipment Corporation Method and apparatus for ordering read and write operations using conflict bits in a write queue
US5347648A (en) * 1990-06-29 1994-09-13 Digital Equipment Corporation Ensuring write ordering under writeback cache error conditions
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
US5276852A (en) 1990-10-01 1994-01-04 Digital Equipment Corporation Method and apparatus for controlling a processor bus used by multiple processor components during writeback cache transactions
US5613128A (en) * 1990-12-21 1997-03-18 Intel Corporation Programmable multi-processor interrupt controller system with a processor integrated local interrupt controller
US6446164B1 (en) * 1991-06-27 2002-09-03 Integrated Device Technology, Inc. Test mode accessing of an internal cache memory
US5408644A (en) 1992-06-05 1995-04-18 Compaq Computer Corporation Method and apparatus for improving the performance of partial stripe operations in a disk array subsystem
US5590368A (en) 1993-03-31 1996-12-31 Intel Corporation Method and apparatus for dynamically expanding the pipeline of a microprocessor
US5623633A (en) * 1993-07-27 1997-04-22 Dell Usa, L.P. Cache-based computer system employing a snoop control circuit with write-back suppression
US5551006A (en) 1993-09-30 1996-08-27 Intel Corporation Low cost writethrough cache coherency apparatus and method for computer systems without a cache supporting bus
US5509129A (en) * 1993-11-30 1996-04-16 Guttag; Karl M. Long instruction word controlling plural independent processor operations
US5623627A (en) * 1993-12-09 1997-04-22 Advanced Micro Devices, Inc. Computer memory architecture including a replacement cache
US5754819A (en) 1994-07-28 1998-05-19 Sun Microsystems, Inc. Low-latency memory indexing method and structure
GB2292822A (en) * 1994-08-31 1996-03-06 Hewlett Packard Co Partitioned cache memory
US5619680A (en) 1994-11-25 1997-04-08 Berkovich; Semyon Methods and apparatus for concurrent execution of serial computing instructions using combinatorial architecture for program partitioning
JPH08278916A (ja) 1994-11-30 1996-10-22 Hitachi Ltd マルチチャネルメモリシステム、転送情報同期化方法及び信号転送回路
JP3872118B2 (ja) 1995-03-20 2007-01-24 富士通株式会社 キャッシュコヒーレンス装置
US5737547A (en) 1995-06-07 1998-04-07 Microunity Systems Engineering, Inc. System for placing entries of an outstanding processor request into a free pool after the request is accepted by a corresponding peripheral device
US5742840A (en) * 1995-08-16 1998-04-21 Microunity Systems Engineering, Inc. General purpose, multiple precision parallel operation, programmable media processor
US6598136B1 (en) * 1995-10-06 2003-07-22 National Semiconductor Corporation Data transfer with highly granular cacheability control between memory and a scratchpad area
US6532531B1 (en) * 1996-01-24 2003-03-11 Sun Microsystems, Inc. Method frame storage using multiple memory circuits
US5848164A (en) * 1996-04-30 1998-12-08 The Board Of Trustees Of The Leland Stanford Junior University System and method for effects processing on audio subband data
US5778236A (en) * 1996-05-17 1998-07-07 Advanced Micro Devices, Inc. Multiprocessing interrupt controller on I/O bus
US6021473A (en) 1996-08-27 2000-02-01 Vlsi Technology, Inc. Method and apparatus for maintaining coherency for data transaction of CPU and bus device utilizing selective flushing mechanism
US5897656A (en) 1996-09-16 1999-04-27 Corollary, Inc. System and method for maintaining memory coherency in a computer system having multiple system buses
US5860158A (en) 1996-11-15 1999-01-12 Samsung Electronics Company, Ltd. Cache control unit with a cache request transaction-oriented protocol
US6134634A (en) 1996-12-20 2000-10-17 Texas Instruments Incorporated Method and apparatus for preemptive cache write-back
US5895485A (en) 1997-02-24 1999-04-20 Eccs, Inc. Method and device using a redundant cache for preventing the loss of dirty data
JP3849951B2 (ja) 1997-02-27 2006-11-22 株式会社日立製作所 主記憶共有型マルチプロセッサ
US5991855A (en) 1997-07-02 1999-11-23 Micron Electronics, Inc. Low latency memory read with concurrent pipe lined snoops
US6018792A (en) 1997-07-02 2000-01-25 Micron Electronics, Inc. Apparatus for performing a low latency memory read with concurrent snoop
US6009263A (en) * 1997-07-28 1999-12-28 Institute For The Development Of Emerging Architectures, L.L.C. Emulating agent and method for reformatting computer instructions into a standard uniform format
US6760833B1 (en) 1997-08-01 2004-07-06 Micron Technology, Inc. Split embedded DRAM processor
US7076568B2 (en) 1997-10-14 2006-07-11 Alacritech, Inc. Data communication apparatus for computer intelligent network interface card which transfers data between a network and a storage device according designated uniform datagram protocol socket
US6070227A (en) 1997-10-31 2000-05-30 Hewlett-Packard Company Main memory bank indexing scheme that optimizes consecutive page hits by linking main memory bank address organization to cache memory address organization
US6026475A (en) * 1997-11-26 2000-02-15 Digital Equipment Corporation Method for dynamically remapping a virtual address to a physical address to maintain an even distribution of cache page addresses in a virtual address space
US6253311B1 (en) * 1997-11-29 2001-06-26 Jp First Llc Instruction set for bi-directional conversion and transfer of integer and floating point data
US6560680B2 (en) 1998-01-21 2003-05-06 Micron Technology, Inc. System controller with Integrated low latency memory using non-cacheable memory physically distinct from main memory
JP3751741B2 (ja) 1998-02-02 2006-03-01 日本電気株式会社 マルチプロセッサシステム
US6115763A (en) * 1998-03-05 2000-09-05 International Business Machines Corporation Multi-core chip providing external core access with regular operation function interface and predetermined service operation services interface comprising core interface units and masters interface unit
US6643745B1 (en) 1998-03-31 2003-11-04 Intel Corporation Method and apparatus for prefetching data into cache
DE59906194D1 (de) 1998-05-07 2003-08-07 Infineon Technologies Ag Cache-speicher für zweidimensionale datenfelder
TW501011B (en) 1998-05-08 2002-09-01 Koninkl Philips Electronics Nv Data processing circuit with cache memory
US20010054137A1 (en) * 1998-06-10 2001-12-20 Richard James Eickemeyer Circuit arrangement and method with improved branch prefetching for short branch instructions
GB9818377D0 (en) * 1998-08-21 1998-10-21 Sgs Thomson Microelectronics An integrated circuit with multiple processing cores
US6483516B1 (en) * 1998-10-09 2002-11-19 National Semiconductor Corporation Hierarchical texture cache
US6718457B2 (en) 1998-12-03 2004-04-06 Sun Microsystems, Inc. Multiple-thread processor for threaded software applications
US6526481B1 (en) 1998-12-17 2003-02-25 Massachusetts Institute Of Technology Adaptive cache coherence protocols
US6563818B1 (en) 1999-05-20 2003-05-13 Advanced Micro Devices, Inc. Weighted round robin cell architecture
US6598178B1 (en) * 1999-06-01 2003-07-22 Agere Systems Inc. Peripheral breakpoint signaler
US6279080B1 (en) 1999-06-09 2001-08-21 Ati International Srl Method and apparatus for association of memory locations with a cache location having a flush buffer
US6188624B1 (en) 1999-07-12 2001-02-13 Winbond Electronics Corporation Low latency memory sensing circuits
US6496880B1 (en) * 1999-08-26 2002-12-17 Agere Systems Inc. Shared I/O ports for multi-core designs
US6606704B1 (en) 1999-08-31 2003-08-12 Intel Corporation Parallel multithreaded processor with plural microengines executing multiple threads each microengine having loadable microcode
US6401175B1 (en) 1999-10-01 2002-06-04 Sun Microsystems, Inc. Shared write buffer for use by multiple processor units
US6661794B1 (en) * 1999-12-29 2003-12-09 Intel Corporation Method and apparatus for gigabit packet assignment for multithreaded packet processing
US6539522B1 (en) * 2000-01-31 2003-03-25 International Business Machines Corporation Method of developing re-usable software for efficient verification of system-on-chip integrated circuit designs
US6718294B1 (en) * 2000-05-16 2004-04-06 Mindspeed Technologies, Inc. System and method for synchronized control of system simulators with multiple processor cores
US20020029358A1 (en) * 2000-05-31 2002-03-07 Pawlowski Chester W. Method and apparatus for delivering error interrupts to a processor of a modular, multiprocessor system
US6438658B1 (en) 2000-06-30 2002-08-20 Intel Corporation Fast invalidation scheme for caches
US6654858B1 (en) 2000-08-31 2003-11-25 Hewlett-Packard Development Company, L.P. Method for reducing directory writes and latency in a high performance, directory-based, coherency protocol
US6665768B1 (en) 2000-10-12 2003-12-16 Chipwrights Design, Inc. Table look-up operation for SIMD processors with interleaved memory systems
US6587920B2 (en) 2000-11-30 2003-07-01 Mosaid Technologies Incorporated Method and apparatus for reducing latency in a memory system
US6662275B2 (en) 2001-02-12 2003-12-09 International Business Machines Corporation Efficient instruction cache coherency maintenance mechanism for scalable multiprocessor computer system with store-through data cache
US6647456B1 (en) 2001-02-23 2003-11-11 Nvidia Corporation High bandwidth-low latency memory controller
US6725336B2 (en) * 2001-04-20 2004-04-20 Sun Microsystems, Inc. Dynamically allocated cache memory for a multi-processor unit
US6785677B1 (en) 2001-05-02 2004-08-31 Unisys Corporation Method for execution of query to search strings of characters that match pattern with a target string utilizing bit vector
US7133971B2 (en) * 2003-11-21 2006-11-07 International Business Machines Corporation Cache with selective least frequently used or most frequently used cache line replacement
JP2002358782A (ja) * 2001-05-31 2002-12-13 Nec Corp 半導体記憶装置
GB2378779B (en) 2001-08-14 2005-02-02 Advanced Risc Mach Ltd Accessing memory units in a data processing apparatus
US6877071B2 (en) 2001-08-20 2005-04-05 Technology Ip Holdings, Inc. Multi-ported memory
US20030110208A1 (en) 2001-09-12 2003-06-12 Raqia Networks, Inc. Processing data across packet boundaries
US6757784B2 (en) 2001-09-28 2004-06-29 Intel Corporation Hiding refresh of memory and refresh-hidden memory
US7072970B2 (en) 2001-10-05 2006-07-04 International Business Machines Corporation Programmable network protocol handler architecture
US6901491B2 (en) 2001-10-22 2005-05-31 Sun Microsystems, Inc. Method and apparatus for integration of communication links with a remote direct memory access protocol
US6944731B2 (en) 2001-12-19 2005-09-13 Agere Systems Inc. Dynamic random access memory system with bank conflict avoidance feature
US6789167B2 (en) 2002-03-06 2004-09-07 Hewlett-Packard Development Company, L.P. Method and apparatus for multi-core processor integrated circuit having functional elements configurable as core elements and as system device elements
US7200735B2 (en) * 2002-04-10 2007-04-03 Tensilica, Inc. High-performance hybrid processor with configurable execution units
GB2388447B (en) * 2002-05-09 2005-07-27 Sun Microsystems Inc A computer system method and program product for performing a data access from low-level code
CN1387119A (zh) * 2002-06-28 2002-12-25 西安交通大学 一种适应于快速数据查找的树形链表及其生成算法
US6814374B2 (en) * 2002-06-28 2004-11-09 Delphi Technologies, Inc. Steering column with foamed in-place structure
US6970985B2 (en) * 2002-07-09 2005-11-29 Bluerisc Inc. Statically speculative memory accessing
GB2390950A (en) * 2002-07-17 2004-01-21 Sony Uk Ltd Video wipe generation based on the distance of a display position between a wipe origin and a wipe destination
US6957305B2 (en) * 2002-08-29 2005-10-18 International Business Machines Corporation Data streaming mechanism in a microprocessor
US20040059880A1 (en) 2002-09-23 2004-03-25 Bennett Brian R. Low latency memory access method using unified queue mechanism
US6952150B2 (en) * 2002-10-02 2005-10-04 Pass & Seymour, Inc. Protective device with end of life indicator
US7146643B2 (en) * 2002-10-29 2006-12-05 Lockheed Martin Corporation Intrusion detection accelerator
US7093153B1 (en) * 2002-10-30 2006-08-15 Advanced Micro Devices, Inc. Method and apparatus for lowering bus clock frequency in a complex integrated data processing system
US7055003B2 (en) * 2003-04-25 2006-05-30 International Business Machines Corporation Data cache scrub mechanism for large L2/L3 data cache structures
US20050138276A1 (en) 2003-12-17 2005-06-23 Intel Corporation Methods and apparatus for high bandwidth random access using dynamic random access memory
US7159068B2 (en) * 2003-12-22 2007-01-02 Phison Electronics Corp. Method of optimizing performance of a flash memory
US20050138297A1 (en) * 2003-12-23 2005-06-23 Intel Corporation Register file cache
US7380276B2 (en) * 2004-05-20 2008-05-27 Intel Corporation Processor extensions and software verification to support type-safe language environments running with untrusted code
US7353341B2 (en) * 2004-06-03 2008-04-01 International Business Machines Corporation System and method for canceling write back operation during simultaneous snoop push or snoop kill operation in write back caches
WO2006031551A2 (en) 2004-09-10 2006-03-23 Cavium Networks Selective replication of data structure
US7594081B2 (en) 2004-09-10 2009-09-22 Cavium Networks, Inc. Direct access to low-latency memory
US7941585B2 (en) * 2004-09-10 2011-05-10 Cavium Networks, Inc. Local scratchpad and data caching system
US20060143396A1 (en) 2004-12-29 2006-06-29 Mason Cabot Method for programmer-controlled cache line eviction policy
US9304767B2 (en) * 2009-06-02 2016-04-05 Oracle America, Inc. Single cycle data movement between general purpose and floating-point registers

Also Published As

Publication number Publication date
CN101036117B (zh) 2010-12-08
US20060059310A1 (en) 2006-03-16
CN101040256A (zh) 2007-09-19
CN101069170A (zh) 2007-11-07
CN101053234A (zh) 2007-10-10
US20140317353A1 (en) 2014-10-23
CN101069170B (zh) 2012-02-08
US9141548B2 (en) 2015-09-22
US7941585B2 (en) 2011-05-10
US20060059316A1 (en) 2006-03-16
CN101036117A (zh) 2007-09-12
CN101128804B (zh) 2012-02-01
CN101053234B (zh) 2012-02-29
US20060059286A1 (en) 2006-03-16
CN101128804A (zh) 2008-02-20

Similar Documents

Publication Publication Date Title
CN100533372C (zh) 用于多核处理器的存储指令排序
US7606998B2 (en) Store instruction ordering for multi-core processor
JP6969853B2 (ja) ノンブロッキング高性能トランザクションクレジットシステムを備えるマルチコアバスアーキテクチャ
US10579524B1 (en) Computing in parallel processing environments
CN101083525B (zh) 密码处理单元以及乘法器
US7594081B2 (en) Direct access to low-latency memory
US8392590B2 (en) Deterministic finite automata (DFA) processing
US7509463B2 (en) Cell processor atomic compare and swap using dedicated synergistic processor element
US5349651A (en) System for translation of virtual to physical addresses by operating memory management processor for calculating location of physical address in memory concurrently with cache comparing virtual addresses for translation
US20230027329A1 (en) Cryptographic computing in multitenant environments
CN108334400B (zh) 为安全飞地管理存储器
US7240164B2 (en) Folding for a multi-threaded network processor
JP2018509680A (ja) セキュアエンクレーブのプロセスを分岐してセキュアエンクレーブページキャッシュに子エンクレーブを確立する命令及びロジック
CN109643283B (zh) 用于管理飞地存储器页的设备、方法和装置
JP2000259412A (ja) ストア命令転送方法およびプロセッサ
US20110087895A1 (en) Apparatus and method for local operand bypassing for cryptographic instructions
CN110321729A (zh) 使用信任域支持虚拟化系统中的存储器分页
CN111355574A (zh) 信任域中的安全加密密钥管理
CN109690546B (zh) 支持对客户机飞地存储器页的超额订阅
US7536692B2 (en) Thread-based engine cache partitioning
US8635384B2 (en) Managing data movement in a cell broadband engine processor
EP4209915A1 (en) Register file prefetch
CN115129442A (zh) 用于调度元数据请求的系统、装置和方法
US20060253660A1 (en) Method and apparatus to provide dynamic hardware signal allocation in a processor
WO2023239671A1 (en) Virtual memory paging system and translation lookaside buffer with pagelets

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
C56 Change in the name or address of the patentee

Owner name: KAWEM CO., LTD.

Free format text: FORMER NAME: CAVIUM NETWORKS

CP01 Change in the name or title of a patent holder

Address after: California, USA

Patentee after: Kawem Ltd.

Address before: California, USA

Patentee before: Cavium Networks

CP01 Change in the name or title of a patent holder

Address after: California, USA

Patentee after: Kawim Co.,Ltd.

Address before: California, USA

Patentee before: Kawem Ltd.

CP01 Change in the name or title of a patent holder
TR01 Transfer of patent right

Effective date of registration: 20201120

Address after: Ford street, Grand Cayman, Cayman Islands

Patentee after: Kaiwei international Co.

Address before: California, USA

Patentee before: Kawim Co.,Ltd.

Effective date of registration: 20201120

Address after: Singapore City

Patentee after: Marvell Asia Pte. Ltd.

Address before: Ford street, Grand Cayman, Cayman Islands

Patentee before: Kaiwei international Co.

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

Granted publication date: 20090826

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