CN1961302A - 具有命令前瞻的存储器控制器 - Google Patents

具有命令前瞻的存储器控制器 Download PDF

Info

Publication number
CN1961302A
CN1961302A CNA2005800172721A CN200580017272A CN1961302A CN 1961302 A CN1961302 A CN 1961302A CN A2005800172721 A CNA2005800172721 A CN A2005800172721A CN 200580017272 A CN200580017272 A CN 200580017272A CN 1961302 A CN1961302 A CN 1961302A
Authority
CN
China
Prior art keywords
memory access
access command
circuit
select
command
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2005800172721A
Other languages
English (en)
Other versions
CN1961302B (zh
Inventor
罗伊特·纳塔拉詹
黛布拉·伯恩斯坦
吉尔伯特·沃尔里奇
C-M·林
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 CN1961302A publication Critical patent/CN1961302A/zh
Application granted granted Critical
Publication of CN1961302B publication Critical patent/CN1961302B/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
    • 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/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement

Abstract

一般地,在一个方面,本公开描述了从多个存储器访问命令队列中的一个访问多个存储器访问命令,所述多个存储器访问命令队列与随机访问存储器(RAM)的分别的区块相关联,以及至少部分地基于由所述命令标识的存储器访问操作和之前被选择的存储器访问命令的存储器访问操作,选择所述命令中的一个。

Description

具有命令前瞻的存储器控制器
相关申请的引用:本文与在2004年3月10日递交、标题为“Command Scheduling forDual Data Rate Two(DDR2)Memory Devices(用于双倍数据速率2(DDR2)存储器设备的命令调度)”的同时待审定美国专利申请No.10/798,600有关。
背景
许多电子设备使用被称为随机访问存储器(RAM)的存储器来储存数据。各种RAM体系结构已经被开发出来。一般地,这些体系结构以标识正被访问的存储器地址的地址总线和传送正被写到存储器或正从存储器被读取的数据的数据总线为特征。
一些RAM体系结构以这样的双向数据总线为特征,所述双向数据总线可以基于数据是正被读还是正被写来改变方向。切换该总线的方向可能花费少量但却具有实际意义的时间。
为了避免与切换总线方向相关联的时间损失(penalty),其他RAM体系结构以多总线为特征。例如,存储器可以以读数据总线和分离的写总线为特征,所述读总线传送从存储器获取的数据,所述写总线传送正被写的数据。
附图简要说明
图1A-1C图示存储器控制器的操作。
图2是图示存储器控制器操作的表。
图3是存储器控制器操作的流程图。
图4是存储器控制器图。
图5是多引擎处理器图。
图6是网络转发设备图。
详细说明
图1A示出接收用于随机访问存储器(RAM)112的存储器访问命令的存储器控制器100。这些命令包括指定要读取的存储器112地址的读命令和指定要被写的地址和数据两者的写命令。
潜在地,在给定时间段内,控制器100可以接收比RAM 112可以响应的命令要多的命令。因此,控制器100以队列104a-104n的集合为特征,所述队列104a-104n缓冲接收到的命令,直到所述命令可以被RAM 112服务。
如图所示,RAM 112在不同的内部存储区块(bank)114a-114n之间划分储存空间。对于RAM 112的每一个区块114a-114n,控制器100维护分别的队列104a-104n。一旦接收到命令,控制器100电路102(例如基于该命令的地址)将该命令添加到适当的队列104a-104n的末尾。
如图所示,控制器100包括电路110,所述电路110“消耗(drain)”命令队列114a-114n,并且发起RAM 112中的对应的操作。例如,如图1B中示出的,电路110从队列104a“弹出”读命令106a(被标记为“R”),并且发起对应的RAM 112的读操作。响应于此,RAM 112可以将读数据(未示出)返回到存储器控制器100,所述存储器控制器100又可以将所述读数据返回到曾发射该读命令的任何实体。
RAM 112对给定操作的响应时间依赖于RAM 112的体系结构和被进行的操作序列两者。例如,由于切换数据总线的方向所花费的时间,以双向总线为特征的RAM 112(例如双倍数据速率II(DDRII)同步动态随机访问存储器(SDRAM)存储器芯片或缩短延时动态随机访问存储器(RLDRAM)公共I/O(CIO)存储器芯片)可以惩罚(penalize)紧跟写的读操作。类似地,通过利用读和写总线两者的交替的读和写操作,以双总线为特征的RAM 112(例如缩短延时动态随机访问存储器(RLDRAM)分离输入/输出(SIO)存储器芯片)可以被更高效地使用。
如图1C中示出的,控制器100电路110可以访问队列104b的顶部的两个命令106b-106c,并且选择可以更好地利用RAM 112能力的命令,而不是严格地基于队列中命令的顺序来处理所述命令。例如,如图所示,如果之前的RAM 112操作是读(在图1B中的106a),并且RAM 112体系结构惩罚读之后的写,那么即使写命令106b排在读命令106c之前,控制器110仍可以选择读命令106c,并且发起对应的存储器112操作。通过“查看”多个命令,控制器100增加了找到可以提高存储器112吞吐量的命令的机会。对于一些RAM 112,控制器100用来选择命令的短暂的时间量可以被隐藏在另外被花费来等待RAM 112的时段(例如对同一区块的连续激活操作之间的最短时间)中。
通常,存储器控制器100保证读操作反映之前的写操作。例如,在图1C中,如果写命令106b要用值“y”覆写(overwrite)在给定地址的值“x”,并且读命令106c要读同一地址,那么在排在前面的命令106b之前选择命令106c将错误地导致命令106c读值“x”。为了避免这种情形,控制器100可以比较正被考虑以进行选择的命令的地址。例如,如果命令106b和106c两者指定了同一地址,控制器100可以基于队列顺序来选择命令106b以保持数据完整性。
潜在地,命令可能指定不同的、但会导致对存储器112的重叠部分访问的地址。例如,命令106b可以从地址“1”开始写8字节数据,而命令106c从地址“5”开始读8字节数据。因此,两个命令都访问字节“5”到“8”。为了避免这样的命令106b-106c的乱序(out-of-order)执行,由控制器100进行的地址比较可以基于地址位的子集(例如最高的N位),而不是基于针对以完全一致的方式来匹配地址的测试。
图1A-1C中示出的控制器100仅仅是实施例,并且各种变化是可能的。例如,控制器100可以从队列的前N个命令中选择,而不是从给定队列104a-104n的前两个命令中选择。此外,示范性的控制器100是基于命令所请求的访问类型来选择命令的。然而,控制器100还可以基于其他考虑、依赖于RAM 112体系结构来进行选择。此外,尽管图1A-1C图示了队列104a-104n和区块114a之间严格的一一对应,但在其他实现中,给定队列可以缓冲针对多于一个区块的命令,并且给定区块可以由多于一个队列来馈入。
图2示出了图示示范性控制器100的逻辑的表。所述表标识由存储器的控制器做出的不同的命令选择,所述存储器以读后写和写后读损失为特征。如图所示,如果队列以单个命令为特征(120),那么所述单个命令被选择。如果不同命令影响重叠的地址(122),那么控制器可以选择更早被排队的命令。
如在表中示出的,对于读紧跟读(124)或写紧跟写(128),控制器100可以选择更早被排队的命令。在控制器100具有不同类型的命令要从中选择的情况(126-130)下,控制器100可以选择这样的命令,所述命令请求与之前被选择的命令(例如,最近被发射到存储器或被添加到存储器命令调度计划(schedule)以进行发射的一个命令)相同的访问类型。
再次重申,示出的表仅仅是实施例,并且其他控制器可以实现不同逻辑。例如,对于惩罚写后写或读后读序列的存储器112,控制器112可以改为选择这样的命令,所述命令请求与之前被选择的存储器112操作不同的访问类型。此外,控制器100可以改为在必要时(例如读紧跟写时)进行地址比较,而不是总是进行该比较。此外,在一些情况下,命令的选择可以是任意的。例如,在图2中的所述表反映出,当评估一对读命令时(122),选择了更早接收的读命令。存储器112进行这些读操作的顺序不影响所储存的数据。因此,可以选择第二命令而不是第一命令,而不会有不利影响。
图3示出控制器100的操作的示范性流程图。如图所示,控制器100选择(150)要服务的队列。例如,控制器100可以进行依次服务每个队列的轮转。可替换地,控制器100可以(例如基于队列中挂起的命令的数量或使用优先权机制)实现一些其他的服务算法。
对于被选择的队列,控制器100访问(152)多个命令。如果所述多个命令访问重叠的地址(154),那么控制器100可以基于所述多个命令的排队顺序来选择(156)命令。否则,控制器100可以基于命令和之前被选择的命令所指定的操作来选择(158)所述命令。控制器100可以随后为被选择的命令发起(160)或调度对应的存储器操作。
图4描绘了控制器100的示范性实现的示意图。被示出的示意图以电路框170x为特征,所述电路框170x缓冲来自给定队列114x的命令。框170x可以被复制来用于被服务的每个队列。
队列114x可以以各种方式来实现。例如,队列114x可以通过使用数据阵列以及队列寄存器头部和队列寄存器尾部(未示出)以硬件来实现。当命令被排队或出队时,由这些寄存器指向的阵列位置可以“绕回”所述数据阵列。
如图所示,框170x以多个触发器172a-172b为特征,所述多个触发器172a-172b可以缓冲(172a-172b)从队列114x弹出的命令。可以由电路174来选择被用来缓冲给定命令的触发器172a-172b。例如,如果被给定触发器缓冲的命令在一个选择轮中被选择,那么该触发器可以被认为“可用”,并且在下一轮中被用来储存新“弹出”的命令。因此,尽管所述框缓冲两个命令,但在给定时间只有一个命令需要从队列中被弹出。
除了将队列命令路由到可用的缓冲器172a-172b之外,电路174被馈入所缓冲的命令,以进行如上面描述的命令选择操作(例如地址比较和/或基于访问类型的命令选择)。为了选择命令,电路174可以选择由该170x的缓冲器172和其他框(未示出)馈入的复用器180的哪个输入被输出到存储器112。可替换地,控制器100可以随着时间的进展来构造要从不同队列发射的命令调度,而不是在选择后发射被选择的命令。
上面描述的技术可以以各种设备来实现。例如,图5描绘了包括这样的控制器100的网络处理器200的实施例。被示出的网络处理器200是Intel因特网交换网络处理器(IXP)。其他网络处理器以不同的设计为特征。
被示出的网络处理器200以在单个集成半导体管芯上的一组处理引擎202为特征。每个引擎202可以是被定制为用于分组处理的精简指令集计算(RISC)处理器。例如,引擎202可以不提供通常由通用处理器的指令集提供的浮点或整除指令。各个引擎202可以提供多个执行线程。例如,引擎202可以为不同线程储存多个程序计数器和其他上下文(context)数据。网络处理器200还包括“核心”处理器210(例如StrongARMXScale),所述“核心”处理器210常常被编程以进行网络操作中涉及到的“控制面”任务。然而,核心处理器210还可以处理“数据面”任务。
如图所示,网络处理器200还以至少一个接口202为特征,所述至少一个接口可以在处理器200和其他网络组件之间传送分组。例如,处理器200可以以交换结构接口202(例如通用交换接口(CSIX))为特征,所述交换结构接口使得处理器200能够将分组传输到连接到该结构的其他一个或多个处理器或电路。处理器200还可以以接口202(例如系统分组接口(SPI)接口)为特征,所述接口使得处理器200能够与物理层(PHY)和/或链路层设备(例如MAC或成帧器设备)通信。处理器200还可以包括接口208(例如外设部件互联(PCI)总线接口)以便例如与主机或其他网络处理器通信。
如图所示,处理器200还可以包括由引擎202共享的其他组件,例如由所述引擎共享的哈希引擎和内部便笺式存储器。存储器控制器100、212提供对由所述引擎共享的外部存储器的访问。如图所示,存储器控制器100通过总线116从引擎202和所述核心接收命令。
图6描绘了可以使用上面描述的存储器控制器处理分组的网络设备。如图所示,所述设备以一组通过交换结构310(例如纵横结构或共享的存储器交换结构)互连的线卡300(“刀片(blade)”)为特征。所述交换结构例如可以遵守CSIX或其他结构技术,例如HyperTansport、Infiniband、PCI、Packet-Over-SONET、RapidIO和/或UTOPIA(用于ATM的通用测试和操作PHY接口)。
单独的线卡(例如300a)可以包括一个或更多个处理网络连接上的通信的物理层(PHY)设备302(例如光、有线和无线PHY)。PHY在不同网络介质传送的物理信号和数字系统所使用的位(例如“0”和“1”)之间进行翻译。线卡300还可以包括成帧器设备(例如,以太网、同步光网络(SONET)、高级数据链路(HDLC)成帧器或其他的“层2”设备)304,所述成帧器设备可以对帧进行例如检错和/或纠错的操作。示出的线卡300还可以包括一个或更多个网络处理器306,所述网络处理器306对通过一个或多个PHY 302接收到的分组进行分组处理操作,并且通过交换结构310将该分组导向到提供出口接口的线卡以转发该分组。潜在地,一个或多个网络处理器306可以代替成帧器设备304来履行“层2”的职责。如上面描述的,一个或多个网络处理器306可以包括使用上面描述的技术的一个或更多个存储器控制器100。可替换地,设备300中的其他组件可以包括这样的存储器控制器100。
尽管在图5和图6中描述了网络处理器和包括网络处理器的设备的具体的实施例,但是所述技术可以以各种体系结构来实现,所述体系结构包括具有与那些被示出的设计不同的设计的处理器和设备。此外,可以在各种网络设备(例如,路由器、交换机、网桥、网络中心、流量生成器等)中使用这些技术。
本文用到的术语电路包括硬连线电路、数字电路、模拟电路、可编程电路等。可编程电路可以基于计算机程序工作。例如,控制器电路可以由包括用于有限状态机的逻辑的专用集成电路(ASIC)来实现。
其他实施方案落入所附权利要求书的范围之内。

Claims (36)

1.一种方法,包括:
从多个存储器访问命令队列中的一个访问多个存储器访问命令,所述多个存储器访问命令队列与随机访问存储器(RAM)的分别的区块相关联;
至少部分地基于由所述多个存储器访问命令标识的存储器访问操作和之前被选择的存储器访问命令的存储器访问操作,选择所述多个存储器访问命令中的一个。
2.如权利要求1所述的方法,其中,
选择所述多个存储器访问命令中的所述一个的操作包括如果所述之前被选择的存储器访问命令是读操作时选择请求读操作的存储器访问命令。
3.如权利要求2所述的方法,其中所述随机访问存储器包括选自由以下组成的组中的一种:双倍数据速率动态随机访问存储器(DDRDRAM)和缩短延时动态随机访问存储器(RLDRAM)公共I/O(CIO)。
4.如权利要求1所述的方法,其中,
选择所述多个存储器访问命令中的所述一个的操作包括如果所述之前被发射的存储器访问命令是读操作时选择请求写操作的存储器访问命令。
5.如权利要求4所述的方法,其中所述随机访问存储器包括缩短延时动态随机访问存储器(RLDRAM)分离I/O(SIO)。
6.如权利要求1所述的方法,还包括基于所述被选择的命令来发起存储器访问操作。
7.如权利要求1所述的方法,还包括,比较所述多个存储器访问命令的地址的至少一部分。
8.如权利要求1所述的方法,其中所述多个存储器访问命令包括两个命令。
9.如权利要求1所述的方法,还包括对所述队列的轮转服务。
10.一种设备,包括:
总线接口;
随机访问存储器接口;以及
电路,所述电路用于:
从多个存储器访问命令队列中的一个访问多个存储器访问命令,所述多个存储器访问命令队列与随机访问存储器(RAM)的分别的区块相关联;
至少部分地基于由所述多个存储器访问命令标识的存储器访问操作和之前被选择的存储器访问命令的存储器访问操作,选择所述多个存储器访问命令中的一个。
11.如权利要求10所述的设备,其中,
选择所述多个存储器访问命令中的所述一个的所述电路包括如果所述之前被选择的存储器访问命令是读操作时选择请求读操作的存储器访问命令的电路。
12.如权利要求11所述的设备,其中所述随机访问存储器包括选自由以下组成的组中的一种:双倍数据速率动态随机访问存储器(DDRDRAM)和缩短延时动态随机访问存储器(RLDRAM)公共I/O(CIO)。
13.如权利要求10所述的设备,其中,
选择所述多个存储器访问命令中的所述一个的所述电路包括如果所述之前被选择的存储器访问命令是读操作时选择请求写操作的存储器访问命令的电路。
14.如权利要求13所述的设备,其中所述随机访问存储器包括缩短延时动态随机访问存储器(RLDRAM)分离I/O(SIO)。
15.如权利要求10所述的设备,还包括基于所述被选择的命令来发起存储器访问操作。
16.如权利要求10所述的设备,其中所述电路还包括进行以下操作的电路:
比较所述存储器访问命令的地址的至少一部分。
17.如权利要求10所述的设备,其中所述多个存储器访问命令包括两个命令。
18.如权利要求10所述的设备,其中所述总线接口包括到被集成在单个集成管芯上的多个可编程多线程引擎共享的总线的接口。
19.一种被设置在计算机可读介质上的计算机程序产品,所述程序包括指令,所述指令导致处理器:
从多个存储器访问命令队列中的一个访问多个存储器访问命令,所述多个存储器访问命令队列与随机访问存储器(RAM)的分别的区块相关联;
至少部分地基于由所述多个存储器访问命令标识的存储器访问操作和之前被发射的存储器访问命令的存储器访问操作,选择所述多个存储器访问命令中的一个。
20.如权利要求19所述的程序,其中
导致所述处理器选择所述多个存储器访问命令中的所述一个的所述指令包括如果所述之前被发射的存储器访问命令是读操作时导致所述处理器选择请求读操作的存储器访问命令的指令。
21.如权利要求19所述的程序,其中,
导致所述处理器选择所述多个存储器访问命令中的所述一个的所述指令包括如果所述之前被发射的存储器访问命令是读操作时导致所述处理器选择请求写操作的存储器访问命令的指令。
22.如权利要求19所述的程序,还包括基于所述被选择的命令来发起存储器访问操作。
23.如权利要求19所述的程序,
还包括导致所述处理器比较所述存储器访问命令的地址的至少一部分的指令。
24.如权利要求19所述的程序,其中所述多个存储器访问命令包括两个命令。
25.如权利要求19所述的程序,还包括导致所述处理器以轮转的方式服务所述队列的指令。
26.一种处理器,包括:
集成在单个管芯内的多个可编程多线程引擎;以及
耦合到所述引擎的至少一些的总线;
耦合到所述总线的存储器控制器,所述存储器控制器包括:
随机访问存储器接口;以及
电路,所述电路用于:
从多个存储器访问命令队列中的一个访问多个存储器访问命令,所述多个存储器访问命令队列与随机访问存储器(RAM)的分别的区块相关联;
至少部分地基于由所述多个存储器访问命令标识的存储器访问操作和之前被选择的存储器访问命令的存储器访问操作,选择所述多个存储器访问命令中的一个。
27.如权利要求26所述的处理器,其中
选择所述多个存储器访问命令中的所述一个的所述电路包括如果所述之前被选择的存储器访问命令是读操作时选择请求读操作的存储器访问命令的电路。
28.如权利要求26所述的处理器,其中
选择所述多个存储器访问命令中的所述一个的所述电路包括如果所述之前被选择的存储器访问命令是读操作时选择请求写操作的存储器访问命令的电路。
29.如权利要求26所述的处理器,其中所述电路还包括进行以下操作的电路:
比较所述存储器访问命令的子集的地址的至少一部分。
30.如权利要求26所述的处理器,其中所述多个存储器访问命令包括两个命令。
31.如权利要求26所述的处理器,还包括选自由以下组成的组中的至少一种:交换结构接口和到介质访问控制设备的接口。
32.一种网络转发设备,包括:
交换结构;
通过所述交换结构互连的线卡,所述线卡包括:
至少一个网络处理器,所述网络处理器包括:
集成在单个管芯内的多个可编程多线程引擎;以及
耦合到所述引擎的至少一些的总线;
耦合到所述总线的存储器控制器,所述存储器控制器包括:
随机访问存储器接口;以及
电路,所述电路用于:
从多个存储器访问命令队列中的一个访问多个存储器访问命令,所述多个存储器访问命令队列与随机访问存储器(RAM)的分别的区块相关联;
至少部分地基于由所述多个存储器访问命令标识的存储器访问操作和之前被选择的存储器访问命令的存储器访问操作,选择所述多个存储器访问命令中的一个。
33.如权利要求32所述的网络转发设备,其中
选择所述多个存储器访问命令中的所述一个的所述电路包括如果所述之前被选择的存储器访问命令是读操作时选择请求读操作的存储器访问命令的电路。
34.如权利要求32所述的网络转发设备,其中
选择所述多个存储器访问命令中的所述一个的所述电路包括如果所述之前被选择的存储器访问命令是读操作时选择请求写操作的存储器访问命令的电路。
35.如权利要求32所述的网络转发设备,其中所述电路还包括进行以下操作的电路:
比较所述存储器访问命令的子集的地址的至少一部分。
36.如权利要求32所述的网络转发设备,其中所述多个存储器访问命令包括两个命令。
CN2005800172721A 2004-04-28 2005-04-08 具有命令前瞻的存储器控制器 Expired - Fee Related CN1961302B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/834,597 US7418540B2 (en) 2004-04-28 2004-04-28 Memory controller with command queue look-ahead
US10/834,597 2004-04-28
PCT/US2005/012089 WO2005109218A1 (en) 2004-04-28 2005-04-08 Memory controller with command look-ahead

Publications (2)

Publication Number Publication Date
CN1961302A true CN1961302A (zh) 2007-05-09
CN1961302B CN1961302B (zh) 2010-06-16

Family

ID=34966033

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2005800172721A Expired - Fee Related CN1961302B (zh) 2004-04-28 2005-04-08 具有命令前瞻的存储器控制器

Country Status (4)

Country Link
US (1) US7418540B2 (zh)
EP (1) EP1769369A1 (zh)
CN (1) CN1961302B (zh)
WO (1) WO2005109218A1 (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101916227A (zh) * 2010-08-13 2010-12-15 中兴通讯股份有限公司 一种rldram sio存储器访问控制方法和装置
CN102763090A (zh) * 2010-01-28 2012-10-31 索尼爱立信移动通讯有限公司 用于利用nand存储器件同时读写的系统和方法
CN102053913B (zh) * 2009-10-30 2013-04-17 慧荣科技股份有限公司 记忆装置以及记忆装置的数据存取方法
CN106575205A (zh) * 2014-09-23 2017-04-19 英特尔公司 可选择的存储访问时间
CN110825437A (zh) * 2018-08-10 2020-02-21 北京百度网讯科技有限公司 用于处理数据的方法和装置
CN111742305A (zh) * 2017-12-22 2020-10-02 超威半导体公司 调度具有不统一等待时间的存储器请求
CN113076070A (zh) * 2021-06-04 2021-07-06 牛芯半导体(深圳)有限公司 数据处理方法和装置

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7656891B1 (en) * 2004-08-04 2010-02-02 Intel Corporation Method and apparatus enabling concurrent processing of contiguously and virtually concatenated payloads
JP4847036B2 (ja) * 2005-03-30 2011-12-28 キヤノン株式会社 バスアクセスを調停する制御装置およびデータ処理装置の制御方法
US7698498B2 (en) * 2005-12-29 2010-04-13 Intel Corporation Memory controller with bank sorting and scheduling
US8078848B2 (en) * 2009-01-09 2011-12-13 Micron Technology, Inc. Memory controller having front end and back end channels for modifying commands
US8392621B2 (en) * 2010-06-22 2013-03-05 International Business Machines Corporation Managing dataflow in a temporary memory
US8560803B2 (en) 2010-06-23 2013-10-15 International Business Machines Corporation Dynamic cache queue allocation based on destination availability
US10310923B1 (en) 2014-08-28 2019-06-04 Seagate Technology Llc Probabilistic aging command sorting
US9836215B2 (en) * 2014-11-19 2017-12-05 Western Digital Technologies, Inc. Real time protocol generation
KR20170001235A (ko) * 2015-06-26 2017-01-04 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
KR20180045102A (ko) * 2016-10-24 2018-05-04 삼성전자주식회사 메모리 컨트롤러의 동작 방법 및 메모리 컨트롤러를 포함하는 저장 장치의 동작 방법
US10831403B2 (en) 2017-05-19 2020-11-10 Seagate Technology Llc Probabalistic command aging and selection
US10628072B2 (en) * 2018-08-21 2020-04-21 Samsung Electronics Co., Ltd. Scalable architecture enabling large memory system for in-memory computations
US10877906B2 (en) 2018-09-17 2020-12-29 Micron Technology, Inc. Scheduling of read operations and write operations based on a data bus mode
US20210200695A1 (en) * 2019-12-27 2021-07-01 Advanced Micro Devices, Inc. Staging memory access requests

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5903916A (en) * 1996-12-16 1999-05-11 Intel Corporation Computer memory subsystem and method for performing opportunistic write data transfers during an access latency period within a read or refresh operation
US6269433B1 (en) * 1998-04-29 2001-07-31 Compaq Computer Corporation Memory controller using queue look-ahead to reduce memory latency
KR100578112B1 (ko) * 1998-10-16 2006-07-25 삼성전자주식회사 메모리 클럭 신호를 제어하는 컴퓨터 시스템 및그 방법
US6172893B1 (en) * 1999-01-05 2001-01-09 Micron Technology, Inc. DRAM with intermediate storage cache and separate read and write I/O
US6370668B1 (en) * 1999-07-23 2002-04-09 Rambus Inc High speed memory system capable of selectively operating in non-chip-kill and chip-kill modes
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
US6895482B1 (en) * 1999-09-10 2005-05-17 International Business Machines Corporation Reordering and flushing commands in a computer memory subsystem
US6687247B1 (en) * 1999-10-27 2004-02-03 Cisco Technology, Inc. Architecture for high speed class of service enabled linecard
US6532509B1 (en) * 1999-12-22 2003-03-11 Intel Corporation Arbitrating command requests in a parallel multi-threaded processing system
US6324624B1 (en) * 1999-12-28 2001-11-27 Intel Corporation Read lock miss control and queue management
US6463072B1 (en) * 1999-12-28 2002-10-08 Intel Corporation Method and apparatus for sharing access to a bus
US6560667B1 (en) * 1999-12-28 2003-05-06 Intel Corporation Handling contiguous memory references in a multi-queue system
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
US6470433B1 (en) * 2000-04-29 2002-10-22 Hewlett-Packard Company Modified aggressive precharge DRAM controller
AU2001293027A1 (en) 2000-10-19 2002-04-29 Sun Microsystems, Inc. Dynamic queuing structure for a memory controller
US6868476B2 (en) * 2001-08-27 2005-03-15 Intel Corporation Software controlled content addressable memory in a general purpose execution datapath
US7151744B2 (en) * 2001-09-21 2006-12-19 Slt Logic Llc Multi-service queuing method and apparatus that provides exhaustive arbitration, load balancing, and support for rapid port failover
US6938133B2 (en) * 2001-09-28 2005-08-30 Hewlett-Packard Development Company, L.P. Memory latency and bandwidth optimizations
US6738831B2 (en) * 2001-12-12 2004-05-18 Intel Corporation Command ordering
US7269179B2 (en) * 2001-12-18 2007-09-11 Intel Corporation Control mechanisms for enqueue and dequeue operations in a pipelined network processor
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
US6801528B2 (en) * 2002-07-03 2004-10-05 Ericsson Inc. System and method for dynamic simultaneous connection to multiple service providers
US20040095948A1 (en) * 2002-11-18 2004-05-20 Chang-Ming Lin Data return arbitration
US6941438B2 (en) * 2003-01-10 2005-09-06 Intel Corporation Memory interleaving
US7149841B2 (en) * 2003-03-31 2006-12-12 Micron Technology, Inc. Memory devices with buffered command address bus
US7127574B2 (en) * 2003-10-22 2006-10-24 Intel Corporatioon Method and apparatus for out of order memory scheduling
US7210008B2 (en) * 2003-12-18 2007-04-24 Intel Corporation Memory controller for padding and stripping data in response to read and write commands
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
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
US7529924B2 (en) * 2003-12-30 2009-05-05 Intel Corporation Method and apparatus for aligning ciphered data
US20050204111A1 (en) * 2004-03-10 2005-09-15 Rohit Natarajan Command scheduling for dual-data-rate two (DDR2) memory devices

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102053913B (zh) * 2009-10-30 2013-04-17 慧荣科技股份有限公司 记忆装置以及记忆装置的数据存取方法
CN102763090A (zh) * 2010-01-28 2012-10-31 索尼爱立信移动通讯有限公司 用于利用nand存储器件同时读写的系统和方法
CN102763090B (zh) * 2010-01-28 2015-04-29 索尼爱立信移动通讯有限公司 用于利用nand存储器件同时读写的系统和方法
CN101916227A (zh) * 2010-08-13 2010-12-15 中兴通讯股份有限公司 一种rldram sio存储器访问控制方法和装置
WO2012019475A1 (zh) * 2010-08-13 2012-02-16 中兴通讯股份有限公司 一种rldramsio访问控制方法和装置
CN101916227B (zh) * 2010-08-13 2015-04-01 中兴通讯股份有限公司 一种rldram sio存储器访问控制方法和装置
CN106575205A (zh) * 2014-09-23 2017-04-19 英特尔公司 可选择的存储访问时间
CN106575205B (zh) * 2014-09-23 2020-06-23 英特尔公司 可选择的存储访问时间
CN111742305A (zh) * 2017-12-22 2020-10-02 超威半导体公司 调度具有不统一等待时间的存储器请求
CN110825437A (zh) * 2018-08-10 2020-02-21 北京百度网讯科技有限公司 用于处理数据的方法和装置
CN110825437B (zh) * 2018-08-10 2022-04-29 昆仑芯(北京)科技有限公司 用于处理数据的方法和装置
CN113076070A (zh) * 2021-06-04 2021-07-06 牛芯半导体(深圳)有限公司 数据处理方法和装置

Also Published As

Publication number Publication date
US20050246481A1 (en) 2005-11-03
US7418540B2 (en) 2008-08-26
CN1961302B (zh) 2010-06-16
WO2005109218A1 (en) 2005-11-17
EP1769369A1 (en) 2007-04-04

Similar Documents

Publication Publication Date Title
CN1961302B (zh) 具有命令前瞻的存储器控制器
US7574573B2 (en) Reactive placement controller for interfacing with banked memory storage
US5381538A (en) DMA controller including a FIFO register and a residual register for data buffering and having different operating modes
EP0993680B1 (en) Method and apparatus in a packet routing switch for controlling access at different data rates to a shared memory
US5548786A (en) Dynamic bus sizing of DMA transfers
US6119196A (en) System having multiple arbitrating levels for arbitrating access to a shared memory by network ports operating at different data rates
JP3360700B2 (ja) 多重プロセッサ・システム
US6154419A (en) Method and apparatus for providing compatibility with synchronous dynamic random access memory (SDRAM) and double data rate (DDR) memory
EP0542417B1 (en) Method and direct memory access controller for asynchronously reading/writing data from/to a memory with improved throughput
US6732247B2 (en) Multi-ported memory having pipelined data banks
US20050144416A1 (en) Data alignment systems and methods
JP4621604B2 (ja) バス装置、バスシステムおよび情報転送方法
CN104599698A (zh) 多个独立的串行链接存储器
US9304952B2 (en) Memory control device, storage device, and memory control method
JP2010501915A (ja) メモリ用モジュールコマンド構造およびメモリシステム
US7444442B2 (en) Data packing in a 32-bit DMA architecture
US20090089551A1 (en) Apparatus and method of avoiding bank conflict in single-port multi-bank memory system
US8667199B2 (en) Data processing apparatus and method for performing multi-cycle arbitration
US5551009A (en) Expandable high performance FIFO design which includes memory cells having respective cell multiplexors
US20050278491A1 (en) Memory interleaving
JP2005508549A (ja) アンキャッシュ素子のための帯域幅の向上
CN1574752A (zh) 供双缓存tdm交换机使用的数据存储器扩展
JP5383159B2 (ja) バス中継装置及び制御方法
JP7199493B2 (ja) 非順次的ページ連続リード
JP2003108434A (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: 20100616

Termination date: 20190408

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