CN1437727A - 多线程环境中的读锁定丢失控制 - Google Patents
多线程环境中的读锁定丢失控制 Download PDFInfo
- Publication number
- CN1437727A CN1437727A CN00819180A CN00819180A CN1437727A CN 1437727 A CN1437727 A CN 1437727A CN 00819180 A CN00819180 A CN 00819180A CN 00819180 A CN00819180 A CN 00819180A CN 1437727 A CN1437727 A CN 1437727A
- Authority
- CN
- China
- Prior art keywords
- read lock
- formation
- access request
- memory access
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
Abstract
管理存储器访问随机访问存储器,包括取得读锁定存储器访问请求和当读锁定存储器访问请求正在请求访问开锁的存储器位置并且读锁定丢失队列包含至少一个读锁定存储器访问请求时,将所述读锁定存储器访问请求放置在读锁定丢失队列的末尾。
Description
技术领域
本发明涉及读锁定(read lock)存储器访问。
背景技术
当计算机指令(线程)需要访问计算机中一个存储器位置时,就进入到存储器控制器。存储器访问指令可以请求对一个特别的存储器位置的读锁定。这种读锁定能防止其它指令访问该存储器位置,直到得到授予该存储器位置的读开锁指令。
发明概述
根据本发明的一个方面,管理存储器访问随机访问存储器的方法,包括
取得读锁定存储器访问请求,和
当读锁定存储器访问请求正在请求访问未锁定(unlock)的存储器位置和读锁定丢失队列(miss queue)包含至少一个读锁定存储器访问请求时,将读锁定存储器访问请求放置在读锁定丢失队列的末尾。
由以下的说明和权利要求书,其它的优点成为显然。
附图简要说明
图1表示使用基于硬件的多线程处理器的通信系统的方框图。
图2表示在基于硬件的多线程处理器中使用的等待时间有限操作的存储器控制器的方框图。
图3表示在基于硬件的多线程处理器中存储器控制器的操作流程图。
图4表示在基于硬件的多线程处理器中存储器控制器的操作流程图。
实施发明的最佳形态
参照图1,通信系统10包括平行的基于硬件的多线程处理器12。所述基于硬件的多线程处理器12耦合到总线、例如外设元件接口(PCI:peripheralcomponent interconnect)总线14,存储器系统16,第2总线18。这种系统10对于能分解成平行子任务或者功能的任务特别有用。特别,基于硬件的多线程处理器12对于面向带宽而不是面向等待的任务是有用的。所述基于硬件的多线程处理器12具有多个微引擎22a-22f,每个具有多硬件控制的线程能同时激活,并能关于任务独立地工作。
基于硬件的多线程处理器12还包括中央控制器20,帮助装载用于所述基于硬件的多线程处理器12的其它资源的微码控制,并执行其它的通用计算机类型功能,例如处理协议、异常和对于数据包处理的额外支持,其中微引擎22a-22f对数据顺利完成用于例如边界条件的更加详细的处理。在一个实施例中,处理器20是基于Strong Arm(Arm是Arm Limited,United Kingdom的商标)的结构。通用微处理器20具有操作系统。通过所述操作系统,所述处理器20能调用函数以便在微引擎22a-22f上运行。所述处理器20能使用任何支持的操作系统,最好是实时操作系统。对于执行例如Strong Arm结构的核心处理器,能使用例如MicrosofttNT的实时操作、VXWork和μCUS、以及因特网(Internet)上可得到的免费件操作系统那样的操作系统。
基于硬件的多线程处理器12还包括多个功能微引擎22a-22f。每个功能微引擎(微引擎)22a-22f保存多个硬件方式的程序计数器以及与程序计数器相关的状态。有效的是,相应的多个线程组能同时在每个微引擎22a-22f上激活,而在任何时刻仅有一个实际上运行。
在一个实施例中,如图所示有6个微引擎22a-22f。每个微引擎22a-22f能处理4个硬件线程。所述6个微引擎22a-22f用共享资源操作,包括存储器系统16和总线接口24和28。所述存储器系统16包括同步动态随机访问存储器(SDRAM)控制器26a和静态随机访问存储器(SRAM)控制器26b。SDRAM16a和SDRAM控制器26a典型地用于处理大的数据量,例如处理来自网络数据包的网络有效负载。SRAM16b和SRAM控制器26b用于在网络中执行低等待、快速访问任务,例如访问查找表、用于核心处理器20的存储器等。
所述6个微引擎22a-22f基于数据特征,对于SDRAM16a或者SRAM16b都能进行访问。因此,低等待、低带宽数据存储到和取自SRAM16b,而对于等待时间不重要的高带宽数据存储到和取自SDRAM16a。所述微引擎22a-22f对于SDRAM控制器26a或SRAM控制器26b都能执行存储器访问指令。
基于硬件多线程处理器优点能由对SRAM或者SDRAM存储器的访问进行说明。例如,从微引擎22a-22f由线程_0请求的SRAM访问,使SRAM控制器26b初始化对SRAM16b的访问。SRAM控制器26b控制对SRAM总线27的仲裁、访问SRAM16b、从SRAM16b取得数据、以及将数据返回到请求的微引擎22a-22f。当SRAM16b访问时,如果微引擎、例如22a仅有能够运行的单个线程,则微引擎休止,直到数据从SRAM16b返回。在每个微引擎22a-22f中的硬件环境交换,使具有唯一程序计数器的其它环境在相同的微引擎中执行。因此,另一个线程、例如线程_1能在第1线程、例如线程_0等待读数据返回时起作用。在执行期间,线程_1能访问SDRAM存储器16a。当线程_1运行在SDRAM单元26a和线程_0运行在SRAM单元26b时,新的线程、例如线程_2能在微引擎22a中运行。线程_2能运行一定的时间,直到它需要访问存储器或者进行某些其它长的等待时间操作、例如对总线接口的访问。因此,处理器12能同时地具有总线操作、SRAM操作和SDRAM操作,并由一个微引擎22a完成全部或者进行操作,以及再使多一个线程可用于在数据通道中处理更多的工作。
硬件环境交换也同步任务的完成、例如,2个线程能命中相同的共享资源、例如SRAM16b。当它们完成来自一个微引擎线程环境请求的任务时,每个这些分离的功能单元、例如FBUS接口28、SRAM控制器26b和SDRAM控制器26a报告返回运行完成的信号标记。当微引擎22a-22f收到标记时,微引擎22a-22f能决定打开哪一个线程。
基于硬件多线程处理器12的应用的一个例子是用作网络处理器。作为网络处理器,基于硬件多线程处理器12接口到网络器件,例如介质访问控制器器件、例如10/100BaseT八进制的MAC 13a或者千兆位因特网器件13b。一般地说,作为网络处理器,基于硬件多线程处理器12能接口到任何类型的通信器件或者接收/发送大量的数据的接口。如果通信系统10在网络应用中起作用,则能从器件13a、13b接收多个网络数据包,并以平行方式处理这些数据包。用基于硬件多线程处理器12能独立地处理每个网络数据包。
处理器12的应用的另一个例子是作为页面打印引擎处理器,或者作为例如RAID盘存储的存储子系统。进一步的应用还包括匹配引擎。例如在证券业中,电子交易的出现要求使用电子匹引擎,以便匹配买卖之间的定单。在系统10上能完成这些和其它的平行型任务。
将每个功能单元,例如、FBUS接口28、SRAM控制器26b和SDRAM控制器26a。耦合到一个或者多个内部总线。内部总线是双32位总线(例如一条总线用于读和一条总线用于写)。还构成基于硬件多线程处理器12,使得在处理器12中的内部总线的带宽的和超过耦合到处理器12的外部总线的带宽。处理器12包括内部核心处理器总线32、例如ASB(Advanced System Bus)总线,将处理器核心20耦合到存储器控制器26a、26b和耦合到ASB变换器30。前述ASB总线32是与Strong Arm处理器核心一起使用的所谓的AMBA总线的子集。前述处理器12还包括个人总线34,将微引擎单元耦合到SRAM控制器26b、ASB变换器30和FBUS接口28。存储器总线38将存储器控制器26a、26b耦合到总线接口24和28,存储器系统16包括用于引导操作等的快闪只读存储器16c。
参照图2,示出了用于SRAM16b的SRAM控制器26b。SRAM控制器26b包括地址和命令队列120。根据存储器操作的类型、例如读或者写,优化SRAM控制器26b。地址和命令队列120包括高优先级队列120a(保持来自高优先级任务的存储器访问请求)、读队列120b(保存读存储器访问请求,它们是SRAM执行的主存储器访问功能)以及次序队列120c(一般地保存所有的对SRAM16b的写和非优化的读)。虽然未图示,地址和命令队列120还包括写队列。控制逻辑的插入队列控制单元132,确定把来自微引擎22a-22f的每个存储器请求在哪里排队。在控制逻辑的移去除队列仲裁单元124中的仲裁方案确定了在队列120中的存储器访问请求的处理次序。
SRAM控制器26b还包括核心总线接口逻辑、例如ASB总线122。ASB总线接口逻辑122将核心处理器20接口到SRAM控制器26b。ASB总线122是包括32位数据通道和28位地址通道的总线。通过MEM(microelectromechanical)ASB数据器件128、例如缓冲器,数据可被存储器16b访问。MEM ASB数据器件128是用于写数据的队列。如果有从核心处理器20通过接口122进入的数据,则数据被存储在MEM ASB数据器件128中,并接着从MEM ASB数据器件128被移去,通过SRAM接口140进入SRAM存储器16b。虽然未图示,对于读能提供相同的队列结构。
通过多路复用器126将存储器请求送到SRAM接口140。利用SRAM仲裁器131控制多路复用器126,SRAM仲裁器131检测每个队列的满列和请求的状态,并由此根据存储在优先级服务控制寄存器130中的可编程值决定优先级。一旦对多路复用器126的控制选择存储器访问请求,就将存储器访问请求送到命令解码器和地址发生器138,进行解码和产生地址。
SRAM控制器26b保持存储器映射的片处SRAM和扩展ROM的控制。SRAM控制器26b能寻址例如16兆,其中8兆用于SRAM16b映射,8兆保留用于特殊功能,包括:例如通过快闪只读存储器16c引导空间,用于MAC器件13a、13b的控制台端口访问,以及相应的(RMON)计数器的访问。SRAM用于局部查找表和队列管理功能。
SRAM控制器26b支持以下的交互动作:
微引擎请求(通过个人总线)到/从SRAM
核心处理器(通过ASB总线)到/从SRAM
SRAM控制器26b执行在从SRAM接口140到存储器16b的管线中的对最小延迟(泡孔:bubbles)排序的存储器访问。SRAM控制器26b进行根据读功能的存储器访问。基于使用的存储器器件类型,泡孔可以是1个或者2个周期。
SRAM控制器26b包括锁定查找表器件142,用于查找读锁定的8输入项地址内容可寻址的存储器(CAM)。每个位置包括一个由接着的读锁定请求检查的有效位。地址和命令队列120还包括读锁定丢失(故障)队列120d。读锁定丢失队列120d用于保存由于存在于被请求读的存储器位置上的锁定而失败的24个读请求。微型引擎22a-22f中的一个,发出在地址和控制队列120中处理的读锁定存储器访问请求。
参照图3,利用控制器26b,处理存储器访问请求51。控制器26b对于次序队列120c或者读队列120b接收存储器访问请求50。命令解码器和地址发生器138确定是否存储器请求是“读”请求、写请求、“读锁定请求”或者写开锁(“开锁”)请求52。如果命令解码器和地址发生器138确定请求是读请求52,则命令解码器和地址发生器138输入54该锁定到锁定查找器件142中,使得接着的读锁定请求发现存储器位置被锁定。锁定请求在被锁定的存储器位置上不能处理,直到来自微引擎22a-22f的开锁请求对该存储器位置开锁58。
如果命令解码器和地址发生器138确定存储器访问请求52是读锁定请求,则控制器26b访问锁定查找器件142,以便确定该存储器位置是否已被锁定。这种访问56确定是否读锁定请求得到执行62或者进入读锁定丢失队列120d,等待存储器位置被开锁。
如果存储器位置由任何优先锁定请求锁定,则读锁定请求失败,并被存储在读锁定丢失队列120d的末尾64。控制器26b进到接收50下一请求。
如果存储器位置被开锁,则锁定查找器件142检查60是否读锁定丢失队列120d为空。如果读锁定丢失队列120d为空,则表示没有先前的读锁定请求等待处理。因此,处理读锁定请求:由SRAM接口140用作存储器访问的地址,执行62对存储器16b的SRAM地址读/写请求,并接着锁定存储器位置。然后,控制器26b接收50下一个请求。
如果读锁定丢失请求120d非空,则表示至少有一个优先读锁定请求等待处理。为了保证处理读锁定请求的先进/先出的次序,将读锁定请求存储64在读锁定丢失请求队列120d的末尾。读锁定请求继续在读锁定丢失队列120d中排队,直到控制器26b接收50到一个开锁请求并识别52是开锁请求。在需要末尾锁定后,由程序中的微型控制指令的操作,对存储器位置进行开锁。一旦接收50到开锁请求,通过清除CAM142中的有效位对存储器位置开锁58。在开锁后58,读锁定故障队列120d成为最高优先级队列120,给予所有排队的读锁定丢失以机会,以便发出存储器锁定请求。
参照图4,对读锁定丢失队列120d进行测试69,以便确定读锁定丢失队列120d的头是否允许锁定。继续测试69,直到读锁定丢失队列120d不能提供允许,或者直到在读锁定丢失队列120d中没有输入项。通过使其赢得70在移去队列仲裁单元124中的下一个仲裁70,给予读锁定丢失队列120d以最高优先级。锁定查找表器件143进行检查72,以便确定是否最高读锁定请求(在读锁定丢失队列120d中第1个存储的)正在请求读一已开锁的存储器位置。如果读锁定请求是用于锁定的位置,则读锁定丢失队列120d保留为保证前述的先进/先出次序,并且测试69末尾78。如果读锁定请求是用于开锁的位置,则由SRAM接口140使用存储器访问的地址,以便对存储器16b执行74 SRAM地址读/写请求。在执行74后,锁定查找表器件142进行检查76,以便确定读锁定丢失队列120d是否为空。如果定读锁定丢失队列120d为空,则测试69末尾78。否则,测试69继续,直到读锁定丢失队列120d赢得在移去队列仲裁单元124中的另一个仲裁70。
其它的实施例在以下的权利要求书的范围内。
Claims (24)
1.一种管理存储器访问随机访问存储器的方法,其特征在于,包括
取得读锁定存储器访问请求,和
当读锁定存储器访问请求正在请求访问开锁的存储器位置并且读锁定丢失队列包含至少一个读锁定存储器访问请求时,将所述读锁定存储器访问请求放置在读锁定丢失队列的末尾。
2.如权利要求1所述的方法,其特征在于,
所述随机访问存储器位于平行的基于硬件的多线程处理器中。
3.如权利要求1所述的方法,其特征在于,
所述随机访问存储器包括静态随机访问存储器。
4.如权利要求1所述的方法,其特征在于,还包括
当读锁定存储器访问请求正在请求访问锁定的存储器位置时,将所述读锁定存储器访问请求放置在读锁定丢失队列的末尾。
5.如权利要求1所述的方法,其特征在于,还包括
从读锁定丢失队列中,移去依次放置在所述读锁定丢失队列中的读锁定存储器访问请求。
6.如权利要求1所述的方法,其特征在于,
从读队列取得所述读锁定存储器访问请求。
7.如权利要求1所述的方法,其特征在于,
从次序队列取得所述读锁定存储器访问请求。
8.如权利要求1所述的方法,其特征在于,
所述读锁定丢失队列包含的进入项数,等于执行所述读锁定存储器访问请求的环境数减1。
9.如权利要求1所述的方法,其特征在于,还包括
将读锁定存储器访问请求,放置在包含正在请求访问相同的存储器位置的读锁定存储器访问请求的队列中。
10.一种产品,其特征在于,包括
计算机可读媒体,存储用于管理存储器访问随机访问存储器的计算机可执行指令,所述指令使计算机:
取得读锁定存储器访问请求,和
当读锁定存储器访问请求正在请求访问开锁的存储器位置并且读锁定丢失队列包含至少一个读锁定存储器访问请求时,将所述读锁定存储器访问请求放置在读锁定丢失队列的末尾。
11.如权利要求10所述的产品,其特征在于,
所述随机访问存储器位于平行的基于硬件的多线程处理器中。
12.如权利要求10所述的产品,其特征在于,
所述随机访问存储器包括静态随机访问存储器。
13.如权利要求10所述的产品,其特征在于,
所述指令还使计算机:
当读锁定存储器访问请求正在请求访问锁定的存储器位置时,将所述读锁定存储器访问请求放置在读锁定丢失队列的末尾。
14.如权利要求10所述的产品,其特征在于,
所述指令还使计算机:
从读锁定丢失队列中,移去依次放置在所述读锁定丢失队列中的读锁定存储器访问请求。
15.如权利要求10所述的产品,其特征在于,
从读队列取得所述读锁定存储器访问请求。
16.如权利要求10所述的产品,其特征在于,
从次序队列取得所述读锁定存储器访问请求。
17.如权利要求10所述的产品,其特征在于,
所述读锁定丢失队列包含的输入项数,等于执行所述读锁定存储器访问请求的环境数减1。
18.如权利要求10所述的产品,其特征在于,
所述指令还使计算机:
将读锁定存储器访问请求,放置在包含正在请求访问相同的存储器位置的读锁定存储器访问请求的队列中。
19.一种管理访问随机访问存储器的控制器,其特征在于,包括
地址内容可寻址存储器,支持存储器中锁定的位置,和
读锁定丢失队列,当所述读锁定丢失队列包含至少1个输入项时,存储在地址内容可寻址存储器中开锁的存储器位置请求访问的读锁定存储器访问请求。
20.如权利要求19所述的控制器,其特征在于,
所述随机访问存储器位于平行的基于硬件的多线程处理器中。
21.如权利要求19所述的控制器,其特征在于,
所述随机访问存储器包括静态随机访问存储器。
22.如权利要求19所述的控制器,其特征在于,
当读锁定存储器访问请求正在请求访问锁定的存储器位置时,将所述读锁定存储器访问请求存储在读锁定丢失队列的末尾。
23.如权利要求19所述的控制器,其特征在于,
从读锁定丢失队列中,移去依次放置在所述读锁定丢失队列中的读锁定存储器访问请求。
24.如权利要求19所述的控制器,其特征在于,
所述读锁定丢失队列包含的输入项数,等于执行所述读锁定存储器访问请求的环境数减1。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/473,798 US6324624B1 (en) | 1999-12-28 | 1999-12-28 | Read lock miss control and queue management |
US09/473,798 | 1999-12-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1437727A true CN1437727A (zh) | 2003-08-20 |
CN1210651C CN1210651C (zh) | 2005-07-13 |
Family
ID=23881019
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB008191808A Expired - Fee Related CN1210651C (zh) | 1999-12-28 | 2000-12-08 | 多线程环境中的读锁定失败控制 |
Country Status (8)
Country | Link |
---|---|
US (2) | US6324624B1 (zh) |
EP (1) | EP1244959A2 (zh) |
CN (1) | CN1210651C (zh) |
AU (1) | AU2078301A (zh) |
HK (1) | HK1047490A1 (zh) |
SG (1) | SG110044A1 (zh) |
TW (1) | TW544584B (zh) |
WO (1) | WO2001048596A2 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102622276A (zh) * | 2004-12-29 | 2012-08-01 | 英特尔公司 | 多处理器环境中基于事务的共享数据操作 |
CN101615138B (zh) * | 2004-06-03 | 2013-03-13 | 英特尔公司 | 维持对象的锁的乐观平衡同步的状态信息的方法、设备和系统 |
CN104750720A (zh) * | 2013-12-30 | 2015-07-01 | 中国银联股份有限公司 | 多线程并发访问环境下高性能数据处理的实现 |
CN112000019A (zh) * | 2020-07-24 | 2020-11-27 | 青岛海尔空调器有限总公司 | 用于共享设备指令控制的方法、装置及设备 |
CN112965829A (zh) * | 2021-02-22 | 2021-06-15 | 电子科技大学 | 一种在并行任务分组调度下使用锁协议的方法 |
Families Citing this family (55)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6668317B1 (en) * | 1999-08-31 | 2003-12-23 | Intel Corporation | Microengine for parallel processor architecture |
US6983350B1 (en) * | 1999-08-31 | 2006-01-03 | Intel Corporation | SDRAM controller for parallel processor architecture |
US6606704B1 (en) * | 1999-08-31 | 2003-08-12 | Intel Corporation | Parallel multithreaded processor with plural microengines executing multiple threads each microengine having loadable microcode |
US6427196B1 (en) * | 1999-08-31 | 2002-07-30 | Intel Corporation | SRAM controller for parallel processor architecture including address and command queue and arbiter |
US7546444B1 (en) | 1999-09-01 | 2009-06-09 | Intel Corporation | Register set used in multithreaded parallel processor architecture |
US6532509B1 (en) | 1999-12-22 | 2003-03-11 | Intel Corporation | Arbitrating command requests in a parallel multi-threaded processing system |
US6694380B1 (en) | 1999-12-27 | 2004-02-17 | Intel Corporation | Mapping requests from a processing unit that uses memory-mapped input-output space |
US6625654B1 (en) * | 1999-12-28 | 2003-09-23 | Intel Corporation | Thread signaling in multi-threaded network processor |
US6324624B1 (en) * | 1999-12-28 | 2001-11-27 | Intel Corporation | Read lock miss control and queue management |
US6631430B1 (en) * | 1999-12-28 | 2003-10-07 | Intel Corporation | Optimizations to receive packet status from fifo bus |
US6307789B1 (en) * | 1999-12-28 | 2001-10-23 | Intel Corporation | Scratchpad memory |
US6661794B1 (en) | 1999-12-29 | 2003-12-09 | Intel Corporation | Method and apparatus for gigabit packet assignment for multithreaded packet processing |
US6584522B1 (en) * | 1999-12-30 | 2003-06-24 | Intel Corporation | Communication between processors |
US6631462B1 (en) * | 2000-01-05 | 2003-10-07 | Intel Corporation | Memory shared between processing threads |
US6615324B1 (en) * | 2000-01-07 | 2003-09-02 | Cygnal Integrated Products, Inc. | Embedded microprocessor multi-level security system in flash memory |
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 |
US6718448B1 (en) * | 2000-11-28 | 2004-04-06 | Emc Corporation | Queued locking of a shared resource using multimodal lock types |
US6725347B2 (en) * | 2001-01-16 | 2004-04-20 | Sun Microsystems, Inc. | Spin-wheel SDRAM access scheduler for high performance microprocessors |
US6868476B2 (en) * | 2001-08-27 | 2005-03-15 | Intel Corporation | Software controlled content addressable memory in a general purpose execution datapath |
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 |
US7126952B2 (en) * | 2001-09-28 | 2006-10-24 | Intel Corporation | Multiprotocol decapsulation/encapsulation control structure and packet protocol conversion method |
DE60127416T2 (de) | 2001-11-05 | 2007-11-29 | Avago Technologies Fiber Ip (Singapore) Pte. Ltd. | Verfahren und System zum Erzeugen schmaler optischer Pulse |
US7895239B2 (en) | 2002-01-04 | 2011-02-22 | Intel Corporation | Queue arrays in network devices |
US6934951B2 (en) * | 2002-01-17 | 2005-08-23 | Intel Corporation | Parallel processor with functional pipeline providing programming engines by supporting multiple contexts and critical section |
US7280752B2 (en) | 2002-02-22 | 2007-10-09 | Intel Corporation | Network address routing using multiple routing identifiers |
US7471688B2 (en) * | 2002-06-18 | 2008-12-30 | Intel Corporation | Scheduling system for transmission of cells to ATM virtual circuits and DSL ports |
US6973550B2 (en) | 2002-10-02 | 2005-12-06 | Intel Corporation | Memory access control |
US20040068607A1 (en) * | 2002-10-07 | 2004-04-08 | Narad Charles E. | Locking memory locations |
US7433307B2 (en) * | 2002-11-05 | 2008-10-07 | Intel Corporation | Flow control in a network environment |
US20040153611A1 (en) * | 2003-02-04 | 2004-08-05 | Sujat Jamil | Methods and apparatus for detecting an address conflict |
US7769097B2 (en) * | 2003-09-15 | 2010-08-03 | Intel Corporation | Methods and apparatus to control transmission of a multicarrier wireless communication channel through multiple antennas |
US20050120195A1 (en) * | 2003-11-13 | 2005-06-02 | Alok Kumar | Allocating memory |
US7213099B2 (en) * | 2003-12-30 | 2007-05-01 | Intel Corporation | Method and apparatus utilizing non-uniformly distributed DRAM configurations and to detect in-range memory address matches |
US20050216655A1 (en) * | 2004-03-25 | 2005-09-29 | Rosenbluth Mark B | Content addressable memory constructed from random access memory |
US7181568B2 (en) * | 2004-03-25 | 2007-02-20 | Intel Corporation | Content addressable memory to identify subtag matches |
US7418540B2 (en) * | 2004-04-28 | 2008-08-26 | Intel Corporation | Memory controller with command queue look-ahead |
US20060067348A1 (en) * | 2004-09-30 | 2006-03-30 | Sanjeev Jain | System and method for efficient memory access of queue control data structures |
US7277990B2 (en) | 2004-09-30 | 2007-10-02 | Sanjeev Jain | Method and apparatus providing efficient queue descriptor memory access |
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 |
US7418543B2 (en) | 2004-12-21 | 2008-08-26 | Intel Corporation | Processor having content addressable memory with command ordering |
US20060140203A1 (en) * | 2004-12-28 | 2006-06-29 | Sanjeev Jain | System and method for packet queuing |
US7467256B2 (en) | 2004-12-28 | 2008-12-16 | Intel Corporation | Processor having content addressable memory for block-based queue structures |
US20060236011A1 (en) * | 2005-04-15 | 2006-10-19 | Charles Narad | Ring management |
US7752620B2 (en) * | 2005-06-06 | 2010-07-06 | International Business Machines Corporation | Administration of locks for critical sections of computer programs in a computer that supports a multiplicity of logical partitions |
US20070044103A1 (en) * | 2005-07-25 | 2007-02-22 | Mark Rosenbluth | Inter-thread communication of lock protected data |
US7853951B2 (en) * | 2005-07-25 | 2010-12-14 | Intel Corporation | Lock sequencing to reorder and grant lock requests from multiple program threads |
US20070124728A1 (en) * | 2005-11-28 | 2007-05-31 | Mark Rosenbluth | Passing work between threads |
US20070245074A1 (en) * | 2006-03-30 | 2007-10-18 | Rosenbluth Mark B | Ring with on-chip buffer for efficient message passing |
US7926013B2 (en) * | 2007-12-31 | 2011-04-12 | Intel Corporation | Validating continuous signal phase matching in high-speed nets routed as differential pairs |
US20090198920A1 (en) * | 2008-02-01 | 2009-08-06 | Arimilli Lakshminarayana B | Processing Units Within a Multiprocessor System Adapted to Support Memory Locks |
US8055856B2 (en) * | 2008-03-24 | 2011-11-08 | Nvidia Corporation | Lock mechanism to enable atomic updates to shared memory |
US10360039B2 (en) * | 2009-09-28 | 2019-07-23 | Nvidia Corporation | Predicted instruction execution in parallel processors with reduced per-thread state information including choosing a minimum or maximum of two operands based on a predicate value |
KR101993028B1 (ko) * | 2015-02-05 | 2019-06-26 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 |
JP6862951B2 (ja) * | 2017-03-15 | 2021-04-21 | 富士通株式会社 | メモリ制御装置、情報処理装置およびメモリ制御方法 |
US11347514B2 (en) | 2019-02-15 | 2022-05-31 | Apple Inc. | Content-addressable memory filtering based on microarchitectural state |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4400770A (en) * | 1980-11-10 | 1983-08-23 | International Business Machines Corporation | Cache synonym detection and handling means |
DE68913629T2 (de) * | 1988-03-14 | 1994-06-16 | Unisys Corp | Satzverriegelungsprozessor für vielfachverarbeitungsdatensystem. |
US5175837A (en) * | 1989-02-03 | 1992-12-29 | Digital Equipment Corporation | Synchronizing and processing of memory access operations in multiprocessor systems using a directory of lock bits |
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 |
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 |
US5347648A (en) * | 1990-06-29 | 1994-09-13 | Digital Equipment Corporation | Ensuring write ordering under writeback cache error conditions |
AU633724B2 (en) * | 1990-06-29 | 1993-02-04 | Digital Equipment Corporation | Interlock queueing |
US6311286B1 (en) * | 1993-04-30 | 2001-10-30 | Nec Corporation | Symmetric multiprocessing system with unified environment and distributed system functions |
US5809530A (en) * | 1995-11-13 | 1998-09-15 | Motorola, Inc. | Method and apparatus for processing multiple cache misses using reload folding and store merging |
US5745913A (en) * | 1996-08-05 | 1998-04-28 | Exponential Technology, Inc. | Multi-processor DRAM controller that prioritizes row-miss requests to stale banks |
US6145054A (en) * | 1998-01-21 | 2000-11-07 | Sun Microsystems, Inc. | Apparatus and method for handling multiple mergeable misses in a non-blocking cache |
US6073215A (en) * | 1998-08-03 | 2000-06-06 | Motorola, Inc. | Data processing system having a data prefetch mechanism and method therefor |
US6427196B1 (en) * | 1999-08-31 | 2002-07-30 | Intel Corporation | SRAM controller for parallel processor architecture including address and command queue and arbiter |
US6324624B1 (en) * | 1999-12-28 | 2001-11-27 | Intel Corporation | Read lock miss control and queue management |
-
1999
- 1999-12-28 US US09/473,798 patent/US6324624B1/en not_active Expired - Lifetime
-
2000
- 2000-12-08 CN CNB008191808A patent/CN1210651C/zh not_active Expired - Fee Related
- 2000-12-08 WO PCT/US2000/033395 patent/WO2001048596A2/en not_active Application Discontinuation
- 2000-12-08 SG SG200302505A patent/SG110044A1/en unknown
- 2000-12-08 AU AU20783/01A patent/AU2078301A/en not_active Abandoned
- 2000-12-08 EP EP00984105A patent/EP1244959A2/en not_active Withdrawn
-
2001
- 2001-03-16 TW TW089128125A patent/TW544584B/zh not_active IP Right Cessation
- 2001-10-02 US US09/969,436 patent/US6681300B2/en not_active Expired - Lifetime
-
2002
- 2002-12-16 HK HK02109093.5A patent/HK1047490A1/zh unknown
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101615138B (zh) * | 2004-06-03 | 2013-03-13 | 英特尔公司 | 维持对象的锁的乐观平衡同步的状态信息的方法、设备和系统 |
CN102622276A (zh) * | 2004-12-29 | 2012-08-01 | 英特尔公司 | 多处理器环境中基于事务的共享数据操作 |
CN102622276B (zh) * | 2004-12-29 | 2015-09-23 | 英特尔公司 | 多处理器环境中基于事务的共享数据操作 |
CN104750720A (zh) * | 2013-12-30 | 2015-07-01 | 中国银联股份有限公司 | 多线程并发访问环境下高性能数据处理的实现 |
CN104750720B (zh) * | 2013-12-30 | 2018-04-27 | 中国银联股份有限公司 | 多线程并发访问环境下高性能数据处理的实现 |
CN112000019A (zh) * | 2020-07-24 | 2020-11-27 | 青岛海尔空调器有限总公司 | 用于共享设备指令控制的方法、装置及设备 |
CN112965829A (zh) * | 2021-02-22 | 2021-06-15 | 电子科技大学 | 一种在并行任务分组调度下使用锁协议的方法 |
CN112965829B (zh) * | 2021-02-22 | 2023-08-11 | 电子科技大学 | 一种在并行任务分组调度下使用锁协议的方法 |
Also Published As
Publication number | Publication date |
---|---|
HK1047490A1 (zh) | 2003-02-21 |
WO2001048596A2 (en) | 2001-07-05 |
US20020038403A1 (en) | 2002-03-28 |
US6681300B2 (en) | 2004-01-20 |
AU2078301A (en) | 2001-07-09 |
CN1210651C (zh) | 2005-07-13 |
WO2001048596A3 (en) | 2002-03-21 |
WO2001048596A9 (en) | 2002-07-04 |
SG110044A1 (en) | 2005-04-28 |
US6324624B1 (en) | 2001-11-27 |
TW544584B (en) | 2003-08-01 |
EP1244959A2 (en) | 2002-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1210651C (zh) | 多线程环境中的读锁定失败控制 | |
US6470380B1 (en) | Signal processing device accessible as memory | |
EP1247168B1 (en) | Memory shared between processing threads | |
US7200695B2 (en) | Method, system, and program for processing packets utilizing descriptors | |
US6532509B1 (en) | Arbitrating command requests in a parallel multi-threaded processing system | |
CA1324837C (en) | Synchronizing and processing of memory access operations in multiprocessor systems | |
US8166146B2 (en) | Providing improved message handling performance in computer systems utilizing shared network devices | |
US6105085A (en) | Lock mechanism for shared resources having associated data structure stored in common memory include a lock portion and a reserve portion | |
US20090133023A1 (en) | High Performance Queue Implementations in Multiprocessor Systems | |
JP2002544620A (ja) | 論理区分化コンピュータのイベント・ドリブン通信インタフェース | |
US20080148008A1 (en) | Moving, Resizing, and Memory Management for Producer-Consumer Queues | |
EP1960878A2 (en) | Coordinating access to memory locations for hardware transactional memory transactions and software transactional memory transactions | |
WO2009020970A2 (en) | Parallelism-aware memory request scheduling in shared memory controllers | |
CN1347041A (zh) | 多处理器系统中存储器访问的动态串行化 | |
US20050166206A1 (en) | Resource management in a processor-based system using hardware queues | |
US20080065838A1 (en) | Data processing system with memory access | |
JP3757904B2 (ja) | 通信制御装置 | |
US6389519B1 (en) | Method and apparatus for providing probe based bus locking and address locking | |
JP2003348183A (ja) | 通信制御装置 | |
CN1584855A (zh) | 用于在多处理器系统中保持一致性的方法和设备 | |
US20080209427A1 (en) | Hardware Register Access Via Task Tag Id | |
Parson | Real-time resource allocators in network processors using FIFOs | |
KR20020063365A (ko) | 다중 프로세서의 공유메모리 실시간 공유 사용방법 | |
CN109308247A (zh) | 一种日志处理方法、装置、设备及一种网络设备 | |
JPH08297647A (ja) | 並列計算機 |
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: 20050713 Termination date: 20171208 |
|
CF01 | Termination of patent right due to non-payment of annual fee |