CN101027634B - 数据传送机制 - Google Patents

数据传送机制 Download PDF

Info

Publication number
CN101027634B
CN101027634B CN03802115.3A CN03802115A CN101027634B CN 101027634 B CN101027634 B CN 101027634B CN 03802115 A CN03802115 A CN 03802115A CN 101027634 B CN101027634 B CN 101027634B
Authority
CN
China
Prior art keywords
data
programming engine
memory resource
bus
pull
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
CN03802115.3A
Other languages
English (en)
Other versions
CN101027634A (zh
Inventor
M·阿迪尔塔
D·伯恩斯坦
M·罗森布鲁斯
G·沃里其
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN101027634A publication Critical patent/CN101027634A/zh
Application granted granted Critical
Publication of CN101027634B publication Critical patent/CN101027634B/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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/38Information transfer, e.g. on bus
    • 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming

Abstract

一种用于在程序主体和存储器资源之间传送数据的方法。该方法包括在一个数据处理主体和一个存储器资源之间传送数据,指定这个存储器资源用于经由一根推入总线将数据推入该数据处理代理中,并指定这个存储器资源用于经由一根拉出总线接收来自该数据处理代理的数据,其中,该推入总线具有若干仲裁其使用的信号源,该拉出总线具有若干仲裁其使用的目标。

Description

数据传送机制
背景
典型的计算机处理系统具有使不同的组件之间能够互相通信的总线。这些组件之间的总线通信允许公共地通过一条数据通路的数据传送。一般说来,该数据通路使一个数据处理代理,例如,中央处理器(CPU)或处理器,与像硬磁盘驱动器、设备适配器、等等这样的其它的组件互连。
附图的简要说明
图1是一个数据处理系统的框图。
图2是图1中的数据处理系统的详细框图。
图3是图1中的数据处理系统中的读出过程的流程图。
图4是图1中的数据处理系统中的写入过程的流程图。
图5是图1中的数据处理系统的推入操作的流程图。
图6是图1中的数据处理系统的拉出操作的流程图。
说明
结构:
参考图1,计算机处理系统10包括一个并行的、基于硬件的多线程网络处理器12。基于硬件的多线程网络处理器12与存储系统或存储器资源14耦合。存储系统14包括动态随机存储器(DRAM)14a和静态随机存储器14b(SRAM)。处理系统10对于可分成并行的子任务或函数的任务特别有用。尤其是,基于硬件的多线程网络处理器12对于基于带宽而不是基于等待时间的任务特别有用。基于硬件的多线程网络处理器12具有若干微引擎或编程引擎16,它们中的每一个都具有若干硬件控制的线程,其中,这些线程同时有效并且独立地对一个特定的任务起作用。
每一个编程引擎16在与该程序计数器相关的硬件和状态中维持程序计数器。有效地,相应的上下文或线程集合能够在每一个编程引擎16上同时有效,虽然在任何一个时间实际上只有一个在运行。
在这个例子中,八个编程引擎16在图1被示出了。每一个编程引擎16具有处理八个硬件线程或上下文的能力。这八个编程引擎16和包括存储器资源14和总线接口的共享的资源一起运行。基于硬件的多线程网络处理器12包括一个动态随机存储器(DRAM)控制器18a和一个静态随机存储器(SRAM)控制器18b。DRAM存储器14a和DRAM控制器18a通常用于处理大量数据,例如,处理来自网络数据包的有效负载的处理。SRAM存储器14b和SRAM控制器18b被用在用于低等待时间、快速访问的任务的网络实现中,例如访问查找表、用于核心处理器20的存储器,等等。
推入总线26a-26b和拉出总线28a-28b被用来在编程引擎16与DRAM存储器14a和SRAM存储器14b之间传送数据。特别地,推入总线26a-26b是单向总线,它将来自存储器资源14的数据传送到编程引擎16,而拉出总线28a-28b将来自编程引擎16的数据传送到存储器资源14。
这八个编程引擎16根据数据的特性访问DRAM存储器14a或是SRAM存储器14b。因此,低等待时间、低带宽的数据存储在SRAM存储器14b中并从其中读取,而那些等待时间对它们不是那么重要的高带宽数据,存储在DRAM存储器14a中并从其中读取。编程引擎16可以对DRAM控制器18a或是SRAM控制器18b执行存储器访问指令。
基于硬件的多线程处理器12还包括一个用于对基于硬件的多线程处理器12的其它资源载入微指令控制的核心处理器20,。在这个例子中,核心处理器20是基于XScaleTM的结构。
核心处理器20执行通用计算机类型的函数,例如处理协议、异常事件以及对数据包处理的额外支持,其中,在数据包处理中,编程引擎16把数据包当作像是在边界条件中那样的更复杂的数据处理。核心处理器20具有一个操作系统(未示出)。通过操作系统(OS),核心处理器20可以调用函数来对编程引擎16进行操作。核心处理器20可以使用任何支持的OS,特别是实时OS。对于作为XScaleTM的结构来实现的核心处理器20来说,可以使用像Microsoft NT实时、VXWorks和μCOS,或能在因特网上使用的免费软件OS这样的操作系统。
硬件多线程的优点可以通过SRAM或DRAM存储器的访问来说明。作为一个例子,来自编程引擎16之一的,一个通过上下文(例如,Thread_0)来请求的SRAM访问,会使该SRAM控制器18b启动一个对SRAM存储器14b的访问。SRAM控制器18b访问SRAM存储器14b,读取来自SRAM存储器14b的数据,并将数据返回给请求的编程引擎16。
在SRAM的访问过程中,如果编程引擎16中的一个仅有单独的一个可以操作的线程,那么编程引擎便会处于睡眠状态直到数据从SRAM存储器14b返回。
通过使用在编程引擎16中间的每一个之内的硬件上下文对换,该硬件上下文对换使得在那同一个编程引擎中,其它具有唯一程序计数器的上下文能够运行。因此,在第一个线程,Thread_0,在等待要返回所读取的数据时,另一个线程,例如,Thread_1可以运行。在运行过程中,Thread_1可以访问DRAM存储器14a。在Thread_1对DRAM单元进行操作,并且Thread_0正在对SRAM单元进行操作的时候,一个新的线程,例如,Thread_2现在可以在编程引擎16中进行操作。Thread_2可以操作某一数量的时间,直到它需要访问存储器或是执行一些其它长等待时间的操作,例如对总线接口进行访问。因此,同时地,处理器12可以具有总线操作、全部由编程引擎16中的一个完成或对其进行操作的SRAM操作以及DRAM操作,以及具有一个以上的可以用来处理更多工作的线程。
硬件上下文对换也使任务的完成同步。例如,两个线程可以命中共享的存储器资源,例如,SRAM存储器14b。分开的功能装置中的每一个,例如,SRAM控制器18b,以及DRAM控制器18a,当他们完成一个来自编程引擎线程或上下文的请求的任务的时候,报告返回一个通知操作完成的标志。当编程引擎16接收到这个标志的时候,编程引擎16可以决定启动哪一个线程。
一个用于该基于硬件的多线程处理器12的应用的例子是作为网络处理器。作为网络处理器,该基于硬件的多线程处理器12连接到像媒体访问控制器(MAC)设备,例如,10/100BaseT Octal MAC13a或吉比特以太网(未示出)这样的网络设备。总之,作为网络处理器,基于硬件的多线程处理器12可以连接到任何类型的通信设备或是接收或发送大量数据的接口。在网络应用中运行的计算机处理系统10可以接收网络数据包并以并行方式处理它们。
编程引擎上下文:
如上所述,编程引擎16中的每一个都支持八个上下文的多线程运行。这允许一个线程可以正好在另一个线程发出了存储器访问,并且在进行更多工作之前必须等待直到访问结束之后开始运行。多线程运行是维持编程引擎16的高效率的硬件运行的关键,因为存储器的等待时间非常重要。多线程运行允许编程引擎16通过执行跨越几个线程的有效的独立的工作来隐藏存储器的等待时间。
这编程引擎16的八个上下文中的每一个,为了允许高效率的上下文对换,具有它自己的寄存器组、程序计数器、以及上下文具体的本地寄存器。具有一个副本的每一个上下文消除了为每一个上下文对换,将上下文具体的信息传送到共享存储器和编程引擎并从它们中传送上下文具体的信息的需要。快速上下文对换允许上下文执行计算当其它上下文等待输出输入(I/O),通常是,外部存储器访问结束或是等待来自其它上下文或硬件装置的信号时执行计算。
例如,编程引擎16通过提供八个程序计数器和八个上下文相关的寄存器组来运行八个上下文。有许多不同类型的上下文相关寄存器,例如通用寄存器(GPRs)、交互编程代理寄存器、静态随机存储器(SRAM)输入传送寄存器、动态随机存储器(DRAM)输入传送寄存器、SRAM输出传送寄存器、DRAM输出传送寄存器。也可以使用本地存储器寄存器。
例如,GPRs被用于通用编程用途。只能在程序控制下读写GPRs。该GPRs,当在指令中用作一个源的时候,提供操作数给一个运行数据通路(未示出)。当GPRs在指令中用作一个目标的时候,用运行逻辑单元数据通路的结果写入它。如前所述,编程引擎16也包括IO传送寄存器。IO传送寄存器被用于传送数据到编程引擎16并从中读取以及其外部的位置,例如DRAM存储器14a和SRAM存储器14b等,
总线的结构:
参考图2,基于硬件的多线程处理器12被非常详细地示出了。DRAM存储器14a和SRAM存储器14b分别连接到DRAM存储器控制器18a和SRAM存储器控制器18b。DRAM存储器控制器18a被连接到与编程引擎16a连在一起的拉出总线仲裁器30a和推入总线仲裁器32a。SRAM存储器控制器18b被连接到与编程引擎16b连在一起的拉出总线仲裁器30b和推入总线仲裁器32b。总线26a-26b和28a-28b组成了用于在编程引擎16a-16b与DRAM存储器14a和SRAM存储器14b之间传送数据的主总线。来自编程引擎16a-16b的任何线程都可以访问DRAM控制器18a和SRAM控制器18b。
特别地,推入总线26a-26b具有多个像存储器控制器通道和内部读寄存器(未示出)这样的存储器源,它们经由推入仲裁器32a-32b仲裁来使用推入总线26a-26b。任何推入数据传送的目标(例如,编程引擎16)通过对随推入数据一起被驱动或发送的Push_ID进行解码,来识别该数据是什么时候被“推入”到它里面的。该拉出总线28a-28b也具有为了使用拉出总线28a-28b而进行仲裁的多个目标(例如,将数据写入不同的存储器控制器通道或是可写入的内部寄存器)。该拉出总线28a-28b具有一个Pull_ID,例如是在拉出数据两周期之前被驱动或发送的。
数据函数分布在编程引擎16之中。DRAM储器14a和SRAM存储器14b的连接是通过命令请求来实现的。一个命令请求可以是一个存储器请求。例如,命令请求可以将数据从位于编程引擎16a中的寄存器传送到一个共享资源中,例如DRAM存储器14a、SRAM存储器14b。命令或请求被发送到功能单元和共享资源中的每一个。像I/O命令(例如,SRAM的读出、SRAM的写入、DRAM的读出、DRAM的写入、载入来自接收存储缓冲器的数据、将数据传送到发送存储缓冲器)这样的命令指定在编程引擎16中的上下文相关源或是目标寄存器。
总之,编程引擎和存储器资源之间的数据传送指定了用于经由推入总线来将数据推入到一个数据处理代理的存储器资源,并指定了用于经由拉出总线来接收来自该数据处理代理的数据的存储器资源,其中,该推入总线具有若干仲裁其使用的信号源,该拉出总线具有若干仲裁其使用的目标。
读出过程:
参考图3,数据读出过程50是由推入总线26a-26b在编程引擎16的读出阶段期间来执行的。作为读出过程50的一部分,编程引擎执行(52)一个上下文。编程引擎16发出(54)一个读出命令到存储器控制器18a-18b,而存储器控制器18a-18b处理(56)关于存储器资源中的一个的请求,该存储器资源也就是DRAM存储器14a或SRAM存储器14b。在读出指令发出后(54),编程引擎16就检查(58)该读出命令所读出数据是否需要来继续该程序上下文。如果需要该读出数据来继续该程序上下文或线程,就换出该上下文(60)。编程引擎16检查(62)以保证存储器控制器18a-18b已经完成了该请求。当存储器控制器已经完成了该请求的时候,将该上下文换回进来(64)。
如果不需要该请求来继续该上下文的执行,编程引擎16检查(68)存储器控制器18a-18b是否已经完成了该请求。如果存储器控制器18a-18b还没有完成该请求,回送发生并且进行进一步的检查(58)。如果存储器控制器18a-18b已经完成了该请求,当读取数据已经从存储器资源中获得的时候,存储器控制器18a-18b将该数据推入(70)到由该读出命令指定的上下文相关的输入传送寄存器中。存储器控制器在编程引擎16中设置一个使发出该读出命令的上下文变得有效的信号。编程引擎16读出(72)在输入传送寄存器中的被请求数据,并继续(74)该上下文的执行。
写入过程:
参考图4,数据写入过程80是由拉出总线28a-28b在编程引擎16的写入阶段期间来执行的。在写入过程80期间,编程引擎执行(82)一个上下文。编程引擎16将该数据载入(84)到输出传送寄存器中并发出(86)一个写入命令或请求到存储器控制器18a-18b。将输出传送寄存器设置(88)为只读状态。在将输出传送寄存器设置(88)为只读状态后,编程引擎16检查来自编程引擎16的写入命令是否需要该请求来继续该程序上下文或线程。如果是,就换出(92)该上下文。
如果不需要该请求来继续该上下文或线程,存储器控制器18a-18b从输出传送寄存器中提取或拉出(94)数据,并用信号来通知(96)编程引擎16对输出传送寄存器进行解锁。然后编程引擎16检查(98)该上下文是否被换出了。如果是被换出了,将该上下文换回来,而如果不是这样的话,编程引擎16继续(102)该上下文的执行。从而,该发出信号的上下文可以再使用输出传送寄存器。该信号也可以用来使该上下文变得有效,如果它在写入命令中被换出了。
数据推入操作:
参考图5,发生在计算机处理系统10的推入总线26a-26b中的数据推入操作110,被以不同处理周期的方式示出了,例如周期0至周期5。每一个目标,例如,DRAM存储器14a或SRAM存储器14b,发送或驱动(112)一个Target_#_Push_ID到推入仲裁器中,在这里#表示不同上下文的编号,像上下文#0至上下文#7这样。该Target_#_Push_ID是从该读出命令和一个关于它要推入到推入仲裁器32a-32b中的信息的数据差错位(例如,在Push_ID中,跟在目标后,表示信号源地址递增的编号)中得到的。至于Push_ID,每一个字母表示一个对特定目标的推入操作。目标的Push_ID“无”表赤Push_ID为空值。目标也将该Target_#_Push_Data发送到推入仲裁器。
Push_ID和Push_IData被登记(114)并入队(116)到推入仲裁器32a-32b中的先进先出(FIFOs)中,除非确定了Target_#_Push_Q_Full信号。这个信号表示,在推入仲裁器32a-32b中,用于那个特定目标的Push_ID和Push_Data FIFOs差不多满了。在这种情况中,推入仲裁器32a-32b不曾登记一个Push_ID或Push_Data,并且该目标不改变它。这个通道将由推入仲裁器32a-32b占有的Push_ID和Push_Data变换为用于下一个字传送的那些,或空值如果它没有其它有效的传送。由于在Push_Q_Full信号中的等待时间,推入仲裁器32a-32b必须适应每个目标正在处理的Push_ID和Push_Data的编号的最坏情况。
推入仲裁器32a-32b可以在每一个周期在所有有Push_IDs之间进行仲裁(118)并发送中间Push_ID。仲裁策略可以是循环的,一个优先方案或甚至是可编程的。若干从推入仲裁器32a-32b到目标的数据推入并不保证在连续的周期内。推入仲裁器32a-32b发送(12)中间Push_Data,而Push_ID被转发(120)到该目标。是由该目标来更新每一个它为每一个它想要推入的数据字发出的Push_ID的目的地址。Push_Data被转发(122)到该目标。在该目标,从目标得到Push_ID到目标得到Push_Data的时间是通过一个处理周期来固定的。
数据拉出操作:
参考图6,发生在计算机处理系统10的拉出总线28a-28b中的数据拉出操作130,被以不同处理周期的方式示出了,(例如周期0至周期7)。每一个目标,例如,DRAM存储器14a或SRAM存储器14b,将关于它要拉出的信息的完整的Target_#_Pull_ID(例如,在Pull_ID中,跟在目标后,表示信号源地址递增的编号)和长度(从写命令中得到的)发送或驱动(132)到目标。对于Pull_ID,每一个字母表示一个来自例如存储器资源14这样的特定信号源的拉出操作。信号源的Pull_ID“无”表示Pull_ID为空值。当该目标确定它的Pull_ID的时候,它必须具有供拉出数据用的缓冲空间。
Pull_ID被登记(134)并入队(136)到拉出仲裁器30a-30b中的先进先出(FIFO)中,除非确定了Target_#_Pull_Q_Full信号。这个信号表示,在拉出仲裁器30a-30b中,用于那个特定目标的Pull_ID的队差不多满了。在这种情况中,拉出仲裁器30a-30b不曾登记一个Pull_ID,并且该目标不改变它。这个目标将由拉出仲裁器30a-30b占有的Pull_ID,变换为用于下一个字符组传送的那些,或空值如果它没有其它有效的Pull_ID。由于在Pull_Q_Full信号中的等待时间,拉出仲裁器30a-30b必须适应每个目标正在处理的Pull_ID的编号的最坏情况。
拉出仲裁器30a-30b可以仲裁(138)当前有效的Pull_ID中的每个周期。仲裁策略可以是循环的,一个优先方案或甚至是可编程的。
拉出仲裁器30a-30b转发(140)选中的Pull_ID到该信号源。从拉出仲裁器30a-30b发送Pull_ID到该信号源提供数据的时间被固定为在三个处理周期内。拉出仲裁器30a-30b为每一个新的数据条目更新该Pull_ID的“源地址”字段。该Pull_Data被从该源拉出(142)并被发送到目标。
拉出仲裁器30a-30b也确定(146)一个关于选中的目标的Target_#_Take_Data。确定该信号是为了在每一个周期一个有效数据字被发送到目标。然而,该确定并不保证是在连续的处理周期中。拉出仲裁器30a-30b每次仅确定至多一个Target_#_Take_Data信号。
对于在具有不同总线宽度的目标和主导装置之间的传送,需要拉出仲裁器30a-30b来进行调整。例如,SRAM控制器18b可以每个处理周期接收八个字节的数据,但是编程引擎16可以每个周期仅输送四个字节。假若这样,拉出仲裁器30a-30b可以用来每个处理周期接受四个字节,将它们合并组装为八个字节,并将该数据发送到DRAM控制器18a。
其它实施方式:
可以理解,只要已经结合其中详细的说明来说明了上面的例子,上述的描述是用来说明而不是限制发明的范围,该发明的范围由附加的权利要求的范围来规定。其它的方面、优点、以及修改是在接下来的权利要求的范围内的。

Claims (27)

1.一种用于数据传送的方法,包括:
识别多个存储器资源将数据推入编程引擎和将数据从该编程引擎拉出;
在将数据推入编程引擎时,
使用一推入总线仲裁器来仲裁所述存储器资源使用推入总线的请求,其中所述使用推入总线的请求从所述存储器资源发送,以及;
通过所述推入总线将所述数据从所述存储器资源推入所述编程引擎,所述存储器资源基于所述推入总线仲裁器的仲裁获得对所述推入总线的访问;以及
当将数据从编程引擎拉出时,
使用一拉出总线仲裁器来仲裁所述存储器资源使用拉出总线的请求,其中所述使用拉出总线的请求从所述存储器资源发送;以及
通过所述拉出总线将所述数据从所述编程引擎拉出并传送到所述存储器资源,所述存储器资源基于所述拉出总线仲裁器的仲裁获得对所述拉出总线的访问。
2.如权利要求1所述的方法,其中,还包括:
在编程引擎上建立多个上下文并维持程序计数器和上下文相关寄存器。
3.如权利要求2所述的方法,其中,在读出阶段,编程引擎执行上下文并发出读出命令到存储器控制器。
4.如权利要求3所述的方法,其中,存储器控制器处理要发送到所述存储器资源之一的读出命令。
5.如权利要求4所述的方法,其中,如果需要读出数据来继续上下文的执行,就换出上下文。
6.如权利要求5所述的方法,其中,在存储器控制器已完成了读出命令的处理之后,存储器控制器将数据推入到该编程引擎的输入传送寄存器。
7.如权利要求6所述的方法,其中,在数据已经被推入之后,该编程引擎读出在输入传送寄存器中的数据,并且该编程引擎继续上下文的执行。
8.如权利要求1所述的方法,其中,在写入阶段中,该编程引擎执行一上下文并将数据载入编程引擎的输出传送寄存器。
9.如权利要求8所述的方法,其中,编程引擎发出一写入命令到存储器控制器,并且输出传送寄存器被设置为只读状态。
10.如权利要求9所述的方法,其中,如果需要写入命令来继续上下文的执行,就换出上下文。
11.如权利要求10所述的方法,其中,存储器控制器推入来自输出传送寄存器的数据,且存储器控制器发送一信号到编程引擎来对输出传送寄存器进行解锁。
12.如权利要求11所述的方法,其中,如果在输出传送寄存器已经被解锁之后,该上下文已经被换出,那么就将该上下文换回进去,并且编程引擎继续该上下文的执行。
13.如权利要求1所述的方法,其特征在于,所述存储器资源包括存储器控制器通道。
14.一种用于数据传送的系统,包括:
多个存储器资源,每个存储器资源与一存储器控制器相关联;
编程引擎,被配置为用于访问所述存储器资源;
推入总线,被配置为用于将数据从所述存储器资源推入所述编程引擎;
推入总线仲裁器,被配置为用于仲裁所述存储器资源使用所述推入总线的请求,其中所述使用推入总线的请求从所述存储器资源发送,所述存储器资源基于所述推入总线仲裁器作出的仲裁获得对所述推入总线的访问;
一拉出总线,被配置为用于从所述编程引擎接收数据并用于将该数据传送到所述存储器资源;以及
一拉出总线仲裁器,被配置为用于仲裁所述存储器资源使用所述拉出总线的请求,其中所述使用拉出总线的请求从所述存储器资源发送,所述存储器资源基于所述拉出总线仲裁器作出的仲裁获得对所述拉出总线的访问。
15.如权利要求14所述的系统,其中在一读出阶段期间所述存储器资源之一将数据单向地传送到所述编程引擎。
16.如权利要求14所述的系统,其中在一写入阶段期间所述编程引擎将数据单向地传送到所述存储器资源之一。
17.如权利要求14所述的系统,进一步包括:
若干程序计数器;以及
若干上下文相关寄存器。
18.如权利要求17所述的系统,其中,上下文相关寄存器是从包括通用寄存器、交互编程代理寄存器、静态随机访问存储器(SRAM)输入传送寄存器、动态随机访问存储器(DRAM)输入传送寄存器、SRAM输出传送寄存器、DRAM输出传送寄存器以及本地存储器寄存器的组中选择出来的。
19.如权利要求18所述的系统,其中,编程引擎被配置用来执行上下文,并发出读出命令到存储器控制器。
20.如权利要求19所述的系统,其中,存储器控制器被配置用来处理要发送到存储器资源的读出命令。
21.如权利要求20所述的系统,其中,编程引擎被配置成如果需要读出命令来继续上下文的执行,则将上下文换出来。
22.如权利要求21所述的系统,其中,在处理了读出命令之后,该存储器控制器被配置为将数据推入到编程引擎的输入传送寄存器,而该编程引擎被配置为读出输入传送寄存器中的数据并继续上下文的执行。
23.如权利要求16所述的系统,其中,编程引擎被配置为执行上下文并将数据载入到编程引擎的一个输出传送寄存器中。
24.如权利要求23所述的系统,其中,编程引擎被配置为发出写入命令到存储器控制器,且其中,该输出传送寄存器被设置为只读状态。
25.如权利要求24所述的系统,其中,如果需要写入命令来继续上下文的执行,则编程引擎被配置为换出上下文。
26.如权利要求25所述的系统,其中,存储器控制器被配置为推入来自输出传送寄存器的数据并发送信号到编程引擎来对输出传送寄存器进行解锁。
27.如权利要求14所述的系统,其特征在于,所述存储器资源包括存储器控制器通道。
CN03802115.3A 2002-01-25 2003-01-16 数据传送机制 Expired - Fee Related CN101027634B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/057,738 2002-01-25
US10/057,738 US7610451B2 (en) 2002-01-25 2002-01-25 Data transfer mechanism using unidirectional pull bus and push bus
PCT/US2003/001579 WO2003065205A2 (en) 2002-01-25 2003-01-16 Data transfer mechanism

Publications (2)

Publication Number Publication Date
CN101027634A CN101027634A (zh) 2007-08-29
CN101027634B true CN101027634B (zh) 2015-09-09

Family

ID=27609479

Family Applications (1)

Application Number Title Priority Date Filing Date
CN03802115.3A Expired - Fee Related CN101027634B (zh) 2002-01-25 2003-01-16 数据传送机制

Country Status (10)

Country Link
US (1) US7610451B2 (zh)
EP (1) EP1493081B1 (zh)
KR (1) KR100895536B1 (zh)
CN (1) CN101027634B (zh)
AT (1) ATE487179T1 (zh)
CA (1) CA2473548A1 (zh)
DE (1) DE60334784D1 (zh)
HK (1) HK1070704A1 (zh)
TW (1) TWI236595B (zh)
WO (1) WO2003065205A2 (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US7487505B2 (en) * 2001-08-27 2009-02-03 Intel Corporation Multithreaded microprocessor with register allocation based on number of active threads
US20040034858A1 (en) * 2002-08-14 2004-02-19 Kushlis Robert J. Programming a multi-threaded processor
US7185153B2 (en) * 2003-12-18 2007-02-27 Intel Corporation Packet assembly
US20050198361A1 (en) * 2003-12-29 2005-09-08 Chandra Prashant R. Method and apparatus for meeting a given content throughput using at least one memory channel
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
EP1825433A4 (en) * 2004-11-23 2010-01-06 Efficient Memory Technology METHOD AND APPARATUS FOR MULTIPLE INTERLAYING ADDRESSING INTERLACES OF PAGINATED MEMORIES AND INTELLIGENT MEMORY BANKS
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
JP2007066109A (ja) * 2005-08-31 2007-03-15 Fujitsu Ltd データ送受信制御装置およびデータ送受信制御方法
US8127113B1 (en) 2006-12-01 2012-02-28 Synopsys, Inc. Generating hardware accelerators and processor offloads
US8289966B1 (en) 2006-12-01 2012-10-16 Synopsys, Inc. Packet ingress/egress block and system and method for receiving, transmitting, and managing packetized data
US8706987B1 (en) 2006-12-01 2014-04-22 Synopsys, Inc. Structured block transfer module, system architecture, and method for transferring
US8914417B2 (en) * 2009-01-07 2014-12-16 International Business Machines Corporation Apparatus, system, and method for maintaining a context stack
US9125005B2 (en) * 2010-04-30 2015-09-01 Nokia Technologies Oy Method and apparatus for providing mobile services outside of cellular coverage
CN102377790B (zh) * 2010-08-04 2016-02-24 腾讯科技(深圳)有限公司 一种推送数据的方法和装置
US9524114B2 (en) * 2015-01-27 2016-12-20 Futurewei Technologies, Inc. Optimizing synchronous write via speculation

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5978874A (en) * 1996-07-01 1999-11-02 Sun Microsystems, Inc. Implementing snooping on a split-transaction computer system bus

Family Cites Families (166)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3373408A (en) 1965-04-16 1968-03-12 Rca Corp Computer capable of switching between programs without storage and retrieval of the contents of operation registers
US3478322A (en) 1967-05-23 1969-11-11 Ibm Data processor employing electronically changeable control storage
BE795789A (fr) 1972-03-08 1973-06-18 Burroughs Corp Microprogramme comportant une micro-instruction de recouvrement
US3881173A (en) 1973-05-14 1975-04-29 Amdahl Corp Condition code determination and data processing
IT986411B (it) 1973-06-05 1975-01-30 Olivetti E C Spa Sistema per trasferire il control lo delle elaborazioni da un primo livello prioritario ad un secondo livello prioritario
FR2253415A5 (zh) 1973-12-04 1975-06-27 Cii
US3913074A (en) 1973-12-18 1975-10-14 Honeywell Inf Systems Search processing apparatus
US4045782A (en) 1976-03-29 1977-08-30 The Warner & Swasey Company Microprogrammed processor system having external memory
US4130890A (en) 1977-06-08 1978-12-19 Itt Industries, Inc. Integrated DDC memory with bitwise erase
US4392758A (en) 1978-05-22 1983-07-12 International Business Machines Corporation Underscore erase
US4189767A (en) 1978-06-05 1980-02-19 Bell Telephone Laboratories, Incorporated Accessing arrangement for interleaved modular memories
JPS56164464A (en) 1980-05-21 1981-12-17 Tatsuo Nogi Parallel processing computer
US4400770A (en) 1980-11-10 1983-08-23 International Business Machines Corporation Cache synonym detection and handling means
CA1179069A (en) 1981-04-10 1984-12-04 Yasushi Fukunaga Data transmission apparatus for a multiprocessor system
US4569016A (en) 1983-06-30 1986-02-04 International Business Machines Corporation Mechanism for implementing one machine cycle executable mask and rotate instructions in a primitive instruction set computing system
US4868735A (en) 1984-05-08 1989-09-19 Advanced Micro Devices, Inc. Interruptible structured microprogrammed sixteen-bit address sequence controller
US4742451A (en) 1984-05-21 1988-05-03 Digital Equipment Corporation Instruction prefetch system for conditional branch instruction for central processor unit
US4777587A (en) 1985-08-30 1988-10-11 Advanced Micro Devices, Inc. System for processing single-cycle branch instruction in a pipeline having relative, absolute, indirect and trap addresses
JPS62103893A (ja) 1985-10-30 1987-05-14 Toshiba Corp 半導体メモリ及び半導体メモリシステム
US5021945A (en) 1985-10-31 1991-06-04 Mcc Development, Ltd. Parallel processor system for processing natural concurrencies and method therefor
US4745544A (en) 1985-12-12 1988-05-17 Texas Instruments Incorporated Master/slave sequencing processor with forced I/O
US4724521A (en) 1986-01-14 1988-02-09 Veri-Fone, Inc. Method for operating a local terminal to execute a downloaded application program
US5297260A (en) 1986-03-12 1994-03-22 Hitachi, Ltd. Processor having a plurality of CPUS with one CPU being normally connected to common bus
US4992934A (en) 1986-12-15 1991-02-12 United Technologies Corporation Reduced instruction set computing apparatus and methods
US5073864A (en) 1987-02-10 1991-12-17 Davin Computer Corporation Parallel string processor and method for a minicomputer
US5142683A (en) 1987-03-09 1992-08-25 Unisys Corporation Intercomputer communication control apparatus and method
US4866664A (en) 1987-03-09 1989-09-12 Unisys Corporation Intercomputer communication control apparatus & method
WO1989008883A1 (en) 1988-03-14 1989-09-21 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
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
CA2045790A1 (en) * 1990-06-29 1991-12-30 Richard Lee Sites Branch prediction in high-performance processor
US5347648A (en) 1990-06-29 1994-09-13 Digital Equipment Corporation Ensuring write ordering under writeback cache error conditions
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
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
US5442756A (en) 1992-07-31 1995-08-15 Intel Corporation Branch prediction and resolution apparatus for a superscalar computer processor
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
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
ATE188559T1 (de) 1992-12-23 2000-01-15 Centre Electron Horloger Multi-tasking-steuerungsgerät mit geringem energieverbrauch
US5404464A (en) 1993-02-11 1995-04-04 Ast Research, Inc. Bus control system and method that selectively generate an early address strobe
US5448702A (en) 1993-03-02 1995-09-05 International Business Machines Corporation Adapters with descriptor queue management capability
US5522069A (en) 1993-04-30 1996-05-28 Zenith Data Systems Corporation Symmetric multiprocessing system with unified environment and distributed system functions
WO1994027216A1 (en) 1993-05-14 1994-11-24 Massachusetts Institute Of Technology Multiprocessor coupling system with integrated compile and run time scheduling for parallelism
CA2122182A1 (en) 1993-05-20 1994-11-21 Rene Leblanc Method for rapid prototyping of programming problems
US5363448A (en) 1993-06-30 1994-11-08 United Technologies Automotive, Inc. Pseudorandom number generation and cryptographic authentication
CA2107299C (en) 1993-09-29 1997-02-25 Mehrad Yasrebi High performance machine for switched communications in a heterogenous data processing network gateway
US5446736A (en) 1993-10-07 1995-08-29 Ast Research, Inc. Method and apparatus for connecting a node to a wireless network using a standard protocol
US5450351A (en) 1993-11-19 1995-09-12 International Business Machines Corporation Content addressable memory implementation with random access memory
US6079014A (en) * 1993-12-02 2000-06-20 Intel Corporation Processor that redirects an instruction fetch pipeline immediately upon detection of a mispredicted branch while committing prior instructions to an architectural state
US5487159A (en) 1993-12-23 1996-01-23 Unisys Corporation System for processing shift, mask, and merge operations in one instruction
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
FR2722041B1 (fr) 1994-06-30 1998-01-02 Samsung Electronics Co Ltd Decodeur de huffman
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
US5640538A (en) 1994-08-22 1997-06-17 Adaptec, Inc. Programmable timing mark sequencer for a disk drive
US5717760A (en) 1994-11-09 1998-02-10 Channel One Communications, Inc. Message protection system and method
US5610864A (en) 1994-12-23 1997-03-11 Micron Technology, Inc. Burst EDO memory device with maximized write cycle timing
US5550816A (en) 1994-12-29 1996-08-27 Storage Technology Corporation Method and apparatus for virtual switching
US5649157A (en) 1995-03-30 1997-07-15 Hewlett-Packard Co. Memory controller with priority queues
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
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
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
US6058465A (en) * 1996-08-19 2000-05-02 Nguyen; Le Trong Single-instruction-multiple-data processing in a multimedia signal processor
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
EP0898819B1 (en) * 1997-01-10 2004-08-04 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
US6381668B1 (en) * 1997-03-21 2002-04-30 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
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
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
US6505229B1 (en) * 1998-09-25 2003-01-07 Intelect Communications, Inc. Method for allowing multiple processing threads and tasks to execute on one or more processor units for embedded real-time processor systems
US6356962B1 (en) * 1998-09-30 2002-03-12 Stmicroelectronics, Inc. Network device and method of controlling flow of data arranged in frames in a data-based network
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
US6351808B1 (en) * 1999-05-11 2002-02-26 Sun Microsystems, Inc. Vertically and horizontally threaded processor with multidimensional storage for storing thread data
US6643726B1 (en) * 1999-08-18 2003-11-04 Ati International Srl Method of manufacture and apparatus of an integrated computing system
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
US6606704B1 (en) * 1999-08-31 2003-08-12 Intel Corporation Parallel multithreaded processor with plural microengines executing multiple threads each microengine having loadable microcode
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
US6357016B1 (en) * 1999-12-09 2002-03-12 Intel Corporation Method and apparatus for disabling a clock signal 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
US6625654B1 (en) * 1999-12-28 2003-09-23 Intel Corporation Thread signaling in multi-threaded network processor
US6307789B1 (en) * 1999-12-28 2001-10-23 Intel Corporation Scratchpad memory
US6631462B1 (en) * 2000-01-05 2003-10-07 Intel Corporation Memory shared between processing threads
US6513089B1 (en) * 2000-05-18 2003-01-28 International Business Machines Corporation Dual burst latency timers for overlapped read and write data transfers
US6654836B1 (en) * 2000-06-20 2003-11-25 International Business Machines Corporation Dual master device for improved utilization of a processor local bus
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
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
US20020053017A1 (en) * 2000-09-01 2002-05-02 Adiletta Matthew J. Register instructions for a multithreaded processor
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
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 日本電気株式会社 パケット処理装置
US7216204B2 (en) * 2001-08-27 2007-05-08 Intel Corporation Mechanism for providing early coherency detection to enable high performance memory updates in a latency sensitive multithreaded environment
US7225281B2 (en) * 2001-08-27 2007-05-29 Intel Corporation Multiprocessor infrastructure for providing flexible bandwidth allocation via multiple instantiations of separate data buses, control buses and support mechanisms
US7487505B2 (en) * 2001-08-27 2009-02-03 Intel Corporation Multithreaded microprocessor with register allocation based on number of active threads
US6868476B2 (en) * 2001-08-27 2005-03-15 Intel Corporation Software controlled content addressable memory in a general purpose execution datapath
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
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5978874A (en) * 1996-07-01 1999-11-02 Sun Microsystems, Inc. Implementing snooping on a split-transaction computer system bus

Also Published As

Publication number Publication date
HK1070704A1 (en) 2005-06-24
WO2003065205A8 (en) 2004-10-28
TWI236595B (en) 2005-07-21
EP1493081B1 (en) 2010-11-03
ATE487179T1 (de) 2010-11-15
CN101027634A (zh) 2007-08-29
CA2473548A1 (en) 2003-08-07
US20030145155A1 (en) 2003-07-31
TW200302417A (en) 2003-08-01
KR100895536B1 (ko) 2009-04-30
DE60334784D1 (de) 2010-12-16
US7610451B2 (en) 2009-10-27
KR20040017822A (ko) 2004-02-27
WO2003065205A2 (en) 2003-08-07
EP1493081A2 (en) 2005-01-05

Similar Documents

Publication Publication Date Title
CN101027634B (zh) 数据传送机制
US6667920B2 (en) Scratchpad memory
US5418913A (en) System of two-way communication between processors using a single queue partitioned with pointers and limited overwrite privileges
EP0991999B1 (en) Method and apparatus for arbitrating access to a shared memory by network ports operating at different data rates
EP0993680B1 (en) Method and apparatus in a packet routing switch for controlling access at different data rates to a shared memory
US7802025B2 (en) DMA engine for repeating communication patterns
US20080109569A1 (en) Remote DMA systems and methods for supporting synchronization of distributed processes in a multi-processor system using collective operations
US6868087B1 (en) Request queue manager in transfer controller with hub and ports
US20080109573A1 (en) RDMA systems and methods for sending commands from a source node to a target node for local execution of commands at the target node
CN100440151C (zh) 用于并行多线程处理的方法和装置
JPS62221057A (ja) ポインタアドレスを発生するための装置および方法
JP2001092772A (ja) 同期固定レイテンシループを使用するデータバス
US20080109604A1 (en) Systems and methods for remote direct memory access to processor caches for RDMA reads and writes
US6801985B1 (en) Data bus using synchronous fixed latency loop including read address and data busses and write address and data busses
US9703739B2 (en) Return available PPI credits command
EP1504349B1 (en) Signal aggregation
JP2006268215A (ja) ストレージシステム
JP2001067298A (ja) ハブ及びポート・アーキテクチャーを有する転送制御装置における低速ポートについての障害を防止するための書込み要求キューの使用
US7047284B1 (en) Transfer request bus node for transfer controller with hub and ports
CN112783663B (zh) 一种可扩展的栅栏同步方法及设备
JP2690146B2 (ja) 割込み通知方式
JPH0410050A (ja) 計算機システム
Gaizauskas et al. Formation of multiple filaments in transparent solids
JP2001056750A (ja) アレイ記憶装置
Hersch et al. The video-ram multiprocessor architecture

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

Termination date: 20180116

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