CN101313288A - 具有单命令和合并命令的存储系统 - Google Patents
具有单命令和合并命令的存储系统 Download PDFInfo
- Publication number
- CN101313288A CN101313288A CNA2006800439332A CN200680043933A CN101313288A CN 101313288 A CN101313288 A CN 101313288A CN A2006800439332 A CNA2006800439332 A CN A2006800439332A CN 200680043933 A CN200680043933 A CN 200680043933A CN 101313288 A CN101313288 A CN 101313288A
- Authority
- CN
- China
- Prior art keywords
- command
- pattern
- chip
- circuit
- order
- 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
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1642—Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Dram (AREA)
- Read Only Memory (AREA)
- Memory System (AREA)
- Microcomputers (AREA)
Abstract
在一些实施例中,芯片包括请求队列和调度电路,该请求队列包含写请求,该调度电路用于调度命令,所述命令包括对写请求进行响应的命令。该芯片还包括模式选择电路,用来监视请求队列并对其进行响应从而为调度电路选择第一或者第二模式,其中,在第一模式中,调度电路将某些命令作为单独的单命令进行调度,在第二模式中,调度电路调度合并命令来表示多于一个的单独的单命令。还描述了其它实施例。
Description
技术领域
本发明的实施例涉及存储系统,其中,存储器控制器在第一模式和第二模式之间动态改变,在第一模式中,存储器控制器以单独的单命令(singlecommand)来提供某些命令,而在第二模式中,存储器控制器提供一合并命令(consolidated command)来表示多个单命令。
背景技术
对于存储系统中的存储设备,已经提出了多种方案。例如,在典型的同步动态随机存取存储器(SDRAM)系统中,存储设备通过双向数据总线来传递数据,并通过命令和地址总线来接收命令和地址。在多点配置(耦合三个或更多的点)中,存储设备具有连接到总线的短线(stub)。其它设计包括点对点信号传输(两点耦合)。点对点信号传输可以是单向或双向的。信号传输可以是单端的(single ended)或者差分的(differential)。在一些系统中,地址、命令以及写数据可能在同一导线上。
存储器控制器给存储设备提供各种命令。这些命令包括激活命令(ACT)、预充电命令(PRE)、读命令(RD)和写命令(WR)。读命令和写命令有时被称为CAS命令。
存储模块包括基板(substrate),其上布置有多个存储设备。存储设备可以位于基板的仅一侧或者基板的两侧。在某些系统中,基板上还可以布置缓冲器。对于至少一些信号,缓冲器在存储器控制器(或者另一个缓冲器)和模块上的存储设备之间充当接口。在这样的有缓冲系统中,在存储器控制器和缓冲器之间使用的信号传输可以不同于在缓冲器和存储设备之间所使用的。双列直插存储模块(DIMM)是存储模块的一个例子。多个模块可以是串行的和/或并行的。一个系统可以包括一个或多于一个的存储通道。
一些计算机系统中,一些存储设备在主板上,而其它存储设备在主板上的连接器中的存储模块或者其它插卡上。
在一些存储系统中,存储设备接收信号并将其中继到其它存储设备,并且向下一个存储设备提供所请求的数据信号。通过点对点单向返回链路,从环状的一连串存储设备中的最后一个存储设备、或者从并非是该一连串中最后一个存储设备的那个存储设备,可以将读数据信号提供给存储器控制器。
存储器控制器已被用于芯片组中枢(hub)中以及包含处理器核心的芯片中。一些计算机系统包括无线发射机和接收机电路。
附图说明
从下面给出的详细说明中,以及从本发明的实施例的附图中,将会更完整地理解本发明,然而,不应将这些当作把本发明限制到所述的具体实施例,而是仅用于解释和理解。
图1是根据本发明一些实施例,包括了存储器控制器和存储设备的系统的方框图。
图2是根据本发明一些实施例,图1中的存储器控制器的某些细节的方框图。
图3是说明本发明一些实施例的某些方面的流程图。
图4是根据本发明一些实施例,图1中的存储器控制器的某些细节的方框图。
图5是根据本发明一些实施例,图1中的存储设备的某些细节的方框图。
图6是根据本发明一些实施例,图5中的一部分的某些细节的方框图。
图7和8每个都是说明本发明一些实施例的某些方面的时序图。
图9至13每个都是根据本发明一些实施例的系统的方框图。
具体实施方式
参见图1,系统10包括存储器控制器12以及存储设备14。在图1的特定实施例中,信号通过单向点对点链路18从存储器控制器12传送到存储设备14,以及通过单向点对点链路20从存储设备14传送到存储器控制器12。在一些实施例中,链路18上的信号包括命令、地址和写数据信号,链路20上的信号是读数据。例如,链路18包括6个导线路径(conductorlane),链路20包括8个导线路径,每一个可以包括一条导线或者具有差分信号传输的两条导线。按照惯例,从存储器控制器12到存储设备14的信号被称为往南的(SB),而从存储设备14到存储器控制器12的信号被称为往北的(NB),但这种惯例并非必须。存储设备12可以是DRAM或者其它类型的存储设备。
存储器控制器12的一些不同的实施例提供不同的命令给存储设备14。这些命令包括单命令(单个的激活命令(ACT)、预充电命令(PRE)、单个的读命令(RD)、单个的写命令(WR))以及合并命令(合并的激活/读命令(ACT/RD)、合并的激活/写命令(ACT/WR))。读命令和写命令有时被称为CAS命令。因此,ACT/RD和ACT/WR命令可以更一般地称为ACT/CAS命令。也可以有其它的命令。
在图1的例子中,更多的路径专用于读数据而非命令、地址和写数据的一个原因就是,希望保持路径总数小于一个特定数目,并且大部分应用趋向于更加是读密集型的而非写密集型的。尽管如此,在一些情况下,SB链路18的可用带宽(BW)可能被严格限制。一种释放链路18的容量的方式就是提供合并命令。
单命令的优点之一就是它们更可能被最优地调度。(本文中,“最优的”并不一定表示数学上的最优,而是表示至少一般上接近于数学上的最优)。在一些实施例中,利用即时(JIT)调度,命令次序可以在稍后的时间决定,甚至在可能的最后时间决定,结果是最优的调度。此外,利用JIT调度,围绕存储设备核心定时约束而进行的调度可以更具灵活性。然而,这些单命令潜在的不足就是链路18上的命令通信量可能增加,从而降低可用的写数据BW,并且在某些情况下加剧了写BW限制问题。
为解决这一问题,调度电路32可以在写数据通信量不是特别高的时候调度单命令,而在写数据通信量特别高的时候调度合并命令。
图2说明了包括在存储器控制器12的一些实施例中的某些细节,但本发明并不受限于这些细节。图12包括读请求队列26和写请求队列28。来自读请求队列26的读请求和来自写请求队列28的写请求被提供给调度电路32,该调度电路可以响应于这些请求为存储设备14调度读和写命令。命令状态选择电路30至少部分地基于对写请求队列28的分析,决定调度电路32应处于第一还是第二模式。在第一模式中,调度电路32将激活命令和读命令作为分别的单命令来进行调度,将激活命令和写命令作为分别的单命令来进行调度。在第二模式中,调度电路32调度相应的合并的激活/读命令和激活/写命令。调度电路32调度的命令由发射机36提供给链路18。存储器控制器12还包括接收机38,用于接收链路20上的信号。存储器控制器12包括图2中未示出的其它电路。
图3是说明一些实施例中存储器控制器12的某些方面的流程图。在其它实施例中,存储器控制器12的操作可以稍有不同。参见图3,调度电路32考虑要调度的下一条命令(框40)。如果下一条命令是预充电命令或者带有页面命中的CAS(读或写)命令,则调度电路32把预充电、读或写命令作为单命令进行调度。
如果要考虑的下一条命令是激活命令,这意味着随后跟着的会是读命令或写命令。这时,如果存储器控制器12处于第一模式,调度电路32把激活命令作为单命令进行调度(框42),如果存储器控制器12处于第二模式,调度电路32把激活命令作为一合并命令(ACT/RD或ACT/WR)的一部分进行调度(框46)。判定框44表示判断存储器控制器12处于第一还是第二模式。
模式选择电路30决定调度电路32将处于第一还是第二模式。模式选择电路30作出决定的方式是多样的。一种就是设定关于写请求队列的填满程度的一个阈值。该阈值可以是写请求队列28中的写请求的数目。在一些实施例中,如果写请求队列28中的写请求的数目与该阈值有第一关系,那么模式选择电路30令调度电路32处于第一模式。如果队列28中的写请求的数目与该阈值有第二关系,那么模式选择电路30令存储器控制器12处于第二模式。在一些实施例中,第一关系是小于,第二关系是大于或等于。在另一些实施例中,第一关系是小于或等于,第二关系是大于。然而,本发明并不局限于将写请求的实际数目与阈值进行比较。
模式选择电路30可以采用其它方式来决定存储器控制器12应处于哪个模式。例如,模式选择电路30可以监视没有被有效的写请求占用的队列空间的数目,而不是被占用的队列空间的数目。这时,第一和第二关系可能有所不同。还可以使用其它方式。例如,如果写请求的类型超过一种,模式选择电路30可以对不同的指令提供不同的权重。例如,在一些实施例中,模式选择电路30可以依据写请求是涉及页缺失还是页命中来赋予写请求不同的权值。而且,加权系统中可以有一个或两个阈值。在一些实施例中,模式选择电路30在决定模式时可以考虑其它因素,例如存储设备14的热度。在一些实施例中,调度电路32默认处于第一模式。
写请求的数目可能很快地超过或低于阈值。在一些实施例中,有多于一个的阈值。例如,有一个阈值用来从第一模式切换至第二模式,而另一个阈值用来从第二模式切换至第一模式。
图4与图2类似,不同的是有一个包含读/写字段50的组合的读和写请求队列48。在这些实施例中,模式选择电路30可以基于针对队列48中的有效项的字段50的内容,考虑队列48中有多少写请求。还可以使用其它方式。
图5说明了根据一些实施例的存储设备14的细节,但本发明并不局限于这些细节。在图5中,来自链路18的信号由接收机52接收并提供给信号分离电路54。写数据被提供给写缓冲器62,而命令被提供给命令处理电路56。写缓冲器62可以按如下使用。在一些协议中,对于写请求,写数据被首先提供。写命令和地址被随后提供。写数据停留在写缓冲器62中,直到相关的命令和地址使其被写入核心64(或者被中继至下一个存储设备(见图9))。核心64可以包括多个存储体(bank)和各种其它电路,例如解码器。解码器也可以位于核心64之前。在一些实施例中,并不像这样包含写缓冲器来保存写数据。
核心64把读数据返回至内部数据链路70。发射机72从链路70接收读数据并将其提供给外部链路20。
图6示出了命令处理电路56的一些实施例的其它细节,但在其它实施例中,电路是不同的并且附加的电路可以被包括在图6的实施例中。在图6中,命令处理电路56包括:命令缓冲器86,用于保存命令;以及逻辑88,用于确定该命令是否是一个合并命令,以及如果是的话,要将其转换成哪些单命令。
再参见图5,如果特定的接收到的命令是单个的激活命令、单个的读命令或者单个的写命令,则命令处理电路56将该特定命令作为单命令提供给核心64。然而,如果读或者写命令是一条合并命令,则命令处理电路56把该合并命令转换成两个单命令以提供给核心64。图7和图8提供了这些情况的例子,但本发明并不局限于图7和图8的这些细节。
图7说明了在外部链路18上提供两条单命令(ACT和RD)的情形。在时间tPropSB后,它们被提供给内部命令链路60。因为它们是两条单命令,命令处理电路56会让它们通过。时间tRCD是激活命令和读命令之间的最小时间量。时间tCL是从核心63接收到读命令到读数据被放在内部数据链路70上之间的时间。时间tpropNB是从读数据被放到内部数据链路70上到它们被存储器控制器12通过外部数据链路20接收这一段时间。注意,tRCD、tCL、tpropNB、命令和读数据的相对长度是经过选择以便于绘制图7,它们并非精确的。
图8说明了在外部链路18上提供合并命令ACT/RD的情形。命令处理电路56把合并命令ACT/RD转换成两条单命令ACT和RD,并把它们提供给内部数据总线60。之后,读数据被核心64提供给内部链路70,如图7所示。
在一些实施例中,图7中每条单独的命令占用一个命令帧。在一些实施例中,没有被命令占用的任何命令帧可以具有被调度到其中的写数据。
除了在链路18上提供更多的可用帧,合理使用合并命令可以减少存储设备的总的输入/输出功率。然而,如上文所述,使用合并命令可能导致次优的调度,这又可能导致更多命令被调度。问题出现在当ACT和CAS命令同时被调度到链路18上时。ACT命令部分依然是以JIT的形式来调度,而CAS部分是在它被以JIT的形式调度之前tRCD时间时调度的。随着经过了tRCD时间,对CAS的调度可能不是最优的。次优的调度可能导致命令数目的增加而非减少。例如,对于非最优的调度,可能发生更多的页缺失,这导致更多的命令。这又将更多地限制写带宽。而且,在一些实施例中,ACT和CAS的接收间隔须至少是tRCD。因此,因为这些限制,调度ACT的唯一方式就是存储器控制器是否可以在一时间调度ACT并在至少tRCD之后调度CAS。相比于只调度一条命令,一次调度两条命令不大可能是最优的。
在这里描述的基于要求的调度器可以在调度单命令和调度合并命令之间切换。在一些实施例里,该要求可以是基于当前工作负荷所需的写BW的数目,这可以由写请求队列的瞬时深度来决定。当写BW超过某一阈值时,存储器控制器可以开始调度合并命令。否知,它只会调度单命令。因此,对于读密集的应用,所需的写BW会很低并且写请求队列的深度会很小,所以,调度器可以调度单命令。然而,对于其中系统通常受单命令的写BW限制的写密集的应用,写请求队列趋向于被填满,存储器控制器会开始合并命令,以试图满足更多的写BW。
自适应合并调度协议可以允许利用由合并命令带来的功率和命令BW上的节约,而不会损失太多的性能。如果只调度了合并命令,那么性能会降低,这是由于合并命令不大可能被最优地调度。如果只调度了单命令,那么性能会降低,这是由于潜在限制的写BW。自适应合并调度算法通过仅基于所测量或预测的写BW来进行合并,以尝试解决这些不足。
图7和8中的命令的地址可以与命令一起在分组中被提供或者被分开提供。尽管并非必须,写数据也可以与命令一起在分组中被提供。如果写数据与命令一起在分组中被提供,该命令并非必须是针对该写数据的。
利用单个的或合并的写命令对存储设备14进行的操作类似于图7和图8所示,不同之处在于读数据并不由核心64响应于写命令来提供,并且在一些实施例中,写数据在相关的写命令被提供之前被提供给写缓冲器62。
存储器控制器12和存储设备14可以应用于多种系统。每个存储设备可以是单独的芯片,或者多于一个的存储设备可以被包含在一个芯片上。如图9所示,存储器控制器112可以与存储器控制器12相同或不同。存储设备120-1…120-N可以与存储设备14相同或不同。在一些实施例中,存储设备120-1…120-N每个都是包括在存储模块122的基板124上的单独的芯片。这些芯片可以在基板124的单侧或者每一侧。存储设备130-1…130-N位于存储模块132的基板134上。导线116-1…116-N在存储器控制器112和存储设备120-1…120-N之间传递各种信号。导线126-1…126-N在存储设备120-1…120-N和存储设备130-1…130-N之间传递各种信号。在一些实施例中,导线128-1…128-N以环状形式从存储设备130-1…130-N向存储器控制器12提供信号,但这并非必须。还可以有没有示出的其它导线。
在一些实施例中,导线116-1…116-N和126-1…126-N在每个方向都包含单向导线(如图1),而在其它实施例里,它们只包含其信号远离存储器控制器112的方向的单向导线。在其它实施例里,它们包含一些双向导线。信号可以从存储器控制器112发送至存储设备120-1…120-N并且随后被存储设备120-1…120-N中继到存储设备130-1…130-N。导线116-1…116-N、126-1…126-N和128-1…128-N中的每一个都包含多个路径,每个路径可以是一条或两条导线。在其它一些实施例中,存储设备120-1…120-N并不在存储模块的基板上,而是在主板上。这时,基板124可以表示主板而不是存储模块的基板。图9或者其它图示出了单个存储设备,但是也可以有一个存储设备链。
图10说明了一个系统,其中存储设备170-1…170-N位于存储模块基板160上,而存储设备190-1…190-N位于存储模块基板180上。这些存储设备中的每一个可以与存储设备14相同或不同。存储器控制器150可以与存储器控制器12相同或不同。在一些实施例中,存储器控制器150和存储设备170-1…170-N通过缓冲器162进行通信,而存储器控制器150和存储设备190-1…190-N通过缓冲器162和182进行通信。在这样的有缓冲的系统,存储器控制器和缓冲器之间使用的信号传输可以不同于缓冲器和存储设备之间所使用的。一些实施例可以包括未在图10中示出的其它导线。
图11说明了与存储器控制器202耦合的第一通道206和第二通道216,存储器控制器202可以与存储器控制器12相同或不同。通道206和通道216分别耦合到包含如本文所述的存储设备的存储模块208和218。
在图12中,存储器控制器252(表示如前述的任一存储器控制器)被包含在芯片250中,芯片250还包含一个或多个处理器核心254。输入/输出控制器芯片256耦合到与芯片250,并且还耦合到无线发射机电路和无线接收机电路258。在图13中,存储器控制器252被包含在中枢芯片274中。中枢芯片274耦合于芯片270(包含一个或多个处理器核心272)和输入/输出控制器芯片278之间。输入/输出控制器芯片278耦合到无线发射机电路和无线接收机电路258。
附加的信息和实施例
本发明并不限于图1所示的芯片间互连。在一个可选系统中,存储器控制器12通过链路18耦合到存储设备14,而链路20耦合到下一个存储设备(例如,类似于图9中的存储设备130-1)而非存储器控制器12。读数据通过其它导线(例如图9中的128-1)被提供给存储器控制器12。还可以采用其它方案。
还可以有本文所述之外的其它的单命令或合并命令。在一些实施例中,可以有一些合并命令(本文没有具体描述)同时出现在第一或第二模式中。可以有一些合并命令(本文没有具体描述)被转换成三个单命令。
本发明并不局限于任何特定的信号传输技术或者协议。例如,信号传输可以是单端的或者差分的。信号传输可以包括仅两个电压电平或者两个以上的电压电平。信号传输可以是单倍数据速率、双倍数据速率、四倍数据速率或八倍数据速率。信号传输可以包含编码符号和/或分组符号。时钟(或选通)信号可以与上述信号分开传送,也可嵌入于上述信号中。可以采用各种编码技术。本发明并不局限于特定类型的发射机和接收机。发射机和接收机以及其它电路中可以采用各种计时技术。图中的接收机符号可以包括初始接收电路和相关的锁存及计时电路。芯片间的导线每个都可以是点对点的,或者每个都可以是多点布置的,或者有些是点对点的而其它的是多点布置的。
在示出一个或多个模块的图中,还可以有一个或多个另外的模块与所示的模块并行和/或串行。
在图中的系统的实际实现中,还可以有其它的电路、控制线以及可能互连,这些并未示出。当图中显示两个块通过导线连接时,可能有未示出的中间电路。块的形状和相对大小并不一定对应实际的形状和相对大小。
实施例是本发明的具体实现或者例子。说明书中对“一实施例”、“一个实施例”、“一些实施例”或者“其它实施例”的引用表示:结合这些实施例而描述的特定的特征、结构或特性至少是包含在一些实施例中,但并不必然包含在本发明的所有实施例中。各处出现的“一实施例”、“一个实施例”或者“一些实施例”并不必然都是指同一个实施例。
当叙述元件“A”耦合到元件“B”时,元件A可以直接耦合到元件B,也可以是间接耦合,例如,通过元件C。
当说明书或权利要求书记载组件、特征、结构、处理或特性A“引起”组件、特征、结构、处理或特性B时,表示“A”至少部分地引起“B”,但还可以有至少一个其它组件、特征、结构、处理或特性参与引起“B”。
如果说明书记载一组件、特征、结构、处理或特性“可以”、“可能”或“能够”被包括,则该特定组件、特征、结构、处理或特性并不必须被包括。当说明书或权利要求书引用“一”元件时,并不表示只能有一个该元件。
本发明并不局限于这里所述的具体细节。事实上,可以在本发明的范围内对上述说明书和附图进行许多其它的变更。因此,是下述权利要求,包括其任意变型,定义了本发明的范围。
Claims (20)
1、一种芯片,包括:
请求队列,包含写请求;
调度电路,用于调度命令,所述命令包括对所述写请求进行响应的命令;以及
模式选择电路,用于监视所述请求队列,并响应于该请求队列而为所述调度电路选择第一或者第二模式,其中,在所述第一模式中,所述调度电路将某些命令当作单独的单命令进行调度,在所述第二模式中,所述调度电路调度合并命令来表示多于一个的单独的单命令。
2、如权利要求1所述的芯片,其中,所述合并命令包括一激活/读命令,其表示单独的单个激活命令和单个读命令,并且所述合并命令包括一激活/写命令,其表示单独的单个激活命令和单个写命令。
3、如权利要求1所述的芯片,其中,所述监视操作包括,确定所述请求队列中的写请求的数目与阈值有第一还是第二关系,如果该数目与所述阈值有所述第一关系,那么所述模式选择电路选择所述第一模式,如果该数目与所述阈值有所述第二关系,那么所述模式选择电路选择所述第二模式。
4、如权利要求1所述的芯片,其中,所述第一关系是小于,而所述第二关系是大于或等于。
5、如权利要求1所述的芯片,其中,所述模式选择电路响应于第一阈值被越过,从所述第一模式切换到所述第二模式,以及响应于第二阈值被越过,从所述第二模式切换到所述第一模式。
6、如权利要求1所述的芯片,其中,所述监视操作包括,取决于写请求涉及页缺失还是页命中,给所述写请求赋予不同的权值。
7、如权利要求1所述的芯片,其中,如果所述调度电路处于所述第一模式并且所述模式选择电路选择了所述第一模式,那么所述调度电路保持不变。
8、如权利要求1所述的芯片,其中,如果所述调度电路处于所述第一模式并且所述模式选择电路选择了所述第二模式,那么所述调度电路被从所述第一模式切换至所述第二模式。
9、如权利要求1所述的芯片,其中,如果所述调度电路处于所述第二模式并且所述模式选择电路选择了所述第一模式,那么所述调度电路被从所述第二模式切换至所述第一模式。
10、如权利要求1所述的芯片,其中,在所述第一模式中,所述调度电路执行即时调度。
11、如权利要求1所述的芯片,其中,所述调度电路默认处于所述第一模式,并且所述模式选择电路提供信号将所述调度电路改变至所述第二模式。
12、如权利要求1所述的芯片,其中,所述请求队列是写请求队列,并且所述芯片还包括读请求队列。
13、一种芯片,包括:
接收机,用于接收包括命令在内的信号;
命令处理电路,用于将合并命令转换成相应的单独的单命令;以及
存储器核心,用于接收所述单独的单命令。
14、如权利要求13所述的芯片,其中,所述合并命令包括一激活/读命令,而所述相应的单命令为激活命令和读命令;并且所述合并命令包括一激活/写命令,而所述相应的单命令为激活命令和写命令。
15、如权利要求13所述的芯片,其中,所述命令处理电路包括命令缓冲器和逻辑,该逻辑用于检测哪些命令是合并命令、将所述合并命令转换成所述相应的单命令、并检测作为单命令被传送到所述存储器核心的单命令。
16、一种系统,包括:
第一芯片,其包括:
写请求的请求队列;
调度电路,用于调度命令,所述命令包括对所述写请求进行响应的命令;
模式选择电路,用于监视所述请求队列,并响应于该请求队列而为所述调度电路选择第一或者第二模式,其中,在所述第一模式中,所述调度电路将某些命令当作单独的单命令进行调度,在所述第二模式中,所述调度电路调度合并命令来表示多于一个的单独的单命令;以及
发射机,用于发送所调度的命令;
链路,其耦合到所述发射机;
第二芯片,其包括:
接收机,其耦合到所述链路,用于接收包括所调度的命令在内的信号;
命令处理电路,用于将所述合并命令转换成单独的单命令;以及
存储器核心,用于接收所述单独的单命令。
17、如权利要求16所述的系统,其中,所述某些命令包括激活命令和读命令,其被合并为一激活/读命令,并且所述某些命令包括激活命令和写命令,其被合并为一激活/写命令。
18、如权利要求16所述的系统,其中,如果所述调度电路处于所述第一模式并且所述模式选择电路选择了所述第一模式,那么所述调度电路保持不变。
19、如权利要求16所述的系统,其中,所述第一芯片包括至少一个处理器核心。
20、如权利要求16所述的系统,其中,所述第一芯片耦合到无线发射机电路和无线接收机电路。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/318,028 | 2005-12-23 | ||
US11/318,028 US7673111B2 (en) | 2005-12-23 | 2005-12-23 | Memory system with both single and consolidated commands |
PCT/US2006/047148 WO2007075316A1 (en) | 2005-12-23 | 2006-12-07 | Memory system with both single and consolidated commands |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101313288A true CN101313288A (zh) | 2008-11-26 |
CN101313288B CN101313288B (zh) | 2014-12-10 |
Family
ID=37898834
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200680043933.2A Expired - Fee Related CN101313288B (zh) | 2005-12-23 | 2006-12-07 | 具有单命令和合并命令的存储系统 |
Country Status (6)
Country | Link |
---|---|
US (2) | US7673111B2 (zh) |
EP (1) | EP1963978A1 (zh) |
KR (1) | KR101032550B1 (zh) |
CN (1) | CN101313288B (zh) |
TW (1) | TWI335516B (zh) |
WO (1) | WO2007075316A1 (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106796560A (zh) * | 2014-09-26 | 2017-05-31 | 英特尔公司 | 用于管理隐式预充电命令信令的方法、设备和系统 |
CN107111440A (zh) * | 2015-01-15 | 2017-08-29 | 夏普株式会社 | 信息处理装置及其控制方法 |
CN107729267A (zh) * | 2011-05-20 | 2018-02-23 | 英特尔公司 | 资源的分散分配以及用于支持由多个引擎执行指令序列的互连结构 |
US10740126B2 (en) | 2013-03-15 | 2020-08-11 | Intel Corporation | Methods, systems and apparatus for supporting wide and efficient front-end operation with guest-architecture emulation |
US11163720B2 (en) | 2006-04-12 | 2021-11-02 | Intel Corporation | Apparatus and method for processing an instruction matrix specifying parallel and dependent operations |
US11204769B2 (en) | 2011-03-25 | 2021-12-21 | Intel Corporation | Memory fragments for supporting code block execution by using virtual cores instantiated by partitionable engines |
US11656875B2 (en) | 2013-03-15 | 2023-05-23 | Intel Corporation | Method and system for instruction block to execution unit grouping |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8271746B1 (en) * | 2006-11-03 | 2012-09-18 | Nvidia Corporation | Tiering of linear clients |
KR101490327B1 (ko) | 2006-12-06 | 2015-02-05 | 퓨전-아이오, 인크. | 뱅크 인터리브를 이용한 솔리드-스테이트 스토리지의 명령 관리 장치, 시스템 및 방법 |
US20090019238A1 (en) * | 2007-07-10 | 2009-01-15 | Brian David Allison | Memory Controller Read Queue Dynamic Optimization of Command Selection |
US7761669B2 (en) * | 2007-07-10 | 2010-07-20 | International Business Machines Corporation | Memory controller granular read queue dynamic optimization of command selection |
US7836226B2 (en) | 2007-12-06 | 2010-11-16 | Fusion-Io, Inc. | Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment |
US8239875B2 (en) * | 2007-12-21 | 2012-08-07 | Spansion Llc | Command queuing for next operations of memory devices |
US8914340B2 (en) * | 2008-02-06 | 2014-12-16 | International Business Machines Corporation | Apparatus, system, and method for relocating storage pool hot spots |
US8423739B2 (en) * | 2008-02-06 | 2013-04-16 | International Business Machines Corporation | Apparatus, system, and method for relocating logical array hot spots |
US8055835B2 (en) * | 2008-06-23 | 2011-11-08 | International Business Machines Corporation | Apparatus, system, and method for migrating wear spots |
EP2414944A4 (en) * | 2009-03-30 | 2012-10-17 | Rambus Inc | MEMORY SYSTEM, CONTROL UNIT AND DEVICE SUPPORTING A FUSED MEMORY CONTROL PROTOCOL |
US8140767B2 (en) * | 2009-06-04 | 2012-03-20 | International Business Machines Corporation | Cache management through delayed writeback |
KR20120092220A (ko) * | 2011-02-11 | 2012-08-21 | 삼성전자주식회사 | 인터페이스 장치 및 이를 포함하는 시스템 |
KR101804521B1 (ko) * | 2011-08-16 | 2017-12-07 | 에스케이하이닉스 주식회사 | 집적회로 칩, 이를 포함하는 시스템 및 동작방법, 메모리 및 메모리 시스템 |
US9251086B2 (en) | 2012-01-24 | 2016-02-02 | SanDisk Technologies, Inc. | Apparatus, system, and method for managing a cache |
KR102025088B1 (ko) * | 2012-09-03 | 2019-09-25 | 삼성전자 주식회사 | 메모리 컨트롤러 및 상기 메모리 컨트롤러를 포함하는 전자장치 |
US9754648B2 (en) | 2012-10-26 | 2017-09-05 | Micron Technology, Inc. | Apparatuses and methods for memory operations having variable latencies |
US9740485B2 (en) | 2012-10-26 | 2017-08-22 | Micron Technology, Inc. | Apparatuses and methods for memory operations having variable latencies |
US9734097B2 (en) | 2013-03-15 | 2017-08-15 | Micron Technology, Inc. | Apparatuses and methods for variable latency memory operations |
KR102114453B1 (ko) * | 2013-07-19 | 2020-06-05 | 삼성전자주식회사 | 모바일 장치 및 그것의 제어 방법 |
US9727493B2 (en) | 2013-08-14 | 2017-08-08 | Micron Technology, Inc. | Apparatuses and methods for providing data to a configurable storage area |
KR102157769B1 (ko) | 2013-10-28 | 2020-09-18 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 이의 동작 방법 |
US10365835B2 (en) | 2014-05-28 | 2019-07-30 | Micron Technology, Inc. | Apparatuses and methods for performing write count threshold wear leveling operations |
US10310923B1 (en) | 2014-08-28 | 2019-06-04 | Seagate Technology Llc | Probabilistic aging command sorting |
US10831403B2 (en) | 2017-05-19 | 2020-11-10 | Seagate Technology Llc | Probabalistic command aging and selection |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0164735A3 (en) | 1984-06-11 | 1988-11-09 | Nec Corporation | A microprocessor having a dynamic memory refresh circuit |
US6023745A (en) | 1996-08-08 | 2000-02-08 | Neomagic Corporation | Scoreboarding for DRAM access within a multi-array DRAM device using simultaneous activate and read/write accesses |
US5991819A (en) | 1996-12-03 | 1999-11-23 | Intel Corporation | Dual-ported memory controller which maintains cache coherency using a memory line status table |
US6098133A (en) | 1997-11-28 | 2000-08-01 | Motorola, Inc. | Secure bus arbiter interconnect arrangement |
US5948081A (en) | 1997-12-22 | 1999-09-07 | Compaq Computer Corporation | System for flushing queued memory write request corresponding to a queued read request and all prior write requests with counter indicating requests to be flushed |
US7024518B2 (en) | 1998-02-13 | 2006-04-04 | Intel Corporation | Dual-port buffer-to-memory interface |
US6295586B1 (en) * | 1998-12-04 | 2001-09-25 | Advanced Micro Devices, Inc. | Queue based memory controller |
JP2000252795A (ja) | 1999-02-26 | 2000-09-14 | Oki Micro Design Co Ltd | 移動平均フィルタ |
US6430683B1 (en) | 1999-06-25 | 2002-08-06 | International Business Machines Corporation | Processor and method for just-in-time delivery of load data via time dependency field |
US6273759B1 (en) | 2000-04-18 | 2001-08-14 | Rambus Inc | Multi-slot connector with integrated bus providing contact between adjacent modules |
US6470433B1 (en) | 2000-04-29 | 2002-10-22 | Hewlett-Packard Company | Modified aggressive precharge DRAM controller |
US6831924B1 (en) | 2000-07-20 | 2004-12-14 | Silicon Graphics, Inc. | Variable mode bi-directional and uni-directional computer communication system |
JP2002063791A (ja) | 2000-08-21 | 2002-02-28 | Mitsubishi Electric Corp | 半導体記憶装置およびメモリシステム |
US6799254B2 (en) | 2001-03-14 | 2004-09-28 | Hewlett-Packard Development Company, L.P. | Memory manager for a common memory |
US6674648B2 (en) | 2001-07-23 | 2004-01-06 | Intel Corporation | Termination cards and systems therefore |
US6877071B2 (en) | 2001-08-20 | 2005-04-05 | Technology Ip Holdings, Inc. | Multi-ported memory |
US6769050B1 (en) | 2001-09-10 | 2004-07-27 | Rambus Inc. | Techniques for increasing bandwidth in port-per-module memory systems having mismatched memory modules |
US6615326B1 (en) | 2001-11-09 | 2003-09-02 | Lsi Logic Corporation | Methods and structure for sequencing of activation commands in a high-performance DDR SDRAM memory controller |
US6766385B2 (en) | 2002-01-07 | 2004-07-20 | Intel Corporation | Device and method for maximizing performance on a memory interface with a variable number of channels |
US20030217223A1 (en) * | 2002-05-14 | 2003-11-20 | Infineon Technologies North America Corp. | Combined command set |
US7043599B1 (en) | 2002-06-20 | 2006-05-09 | Rambus Inc. | Dynamic memory supporting simultaneous refresh and data-access transactions |
US6954822B2 (en) | 2002-08-02 | 2005-10-11 | Intel Corporation | Techniques to map cache data to memory arrays |
US6785190B1 (en) | 2003-05-20 | 2004-08-31 | Intel Corporation | Method for opening pages of memory with a single command |
US20040236921A1 (en) | 2003-05-20 | 2004-11-25 | Bains Kuljit S. | Method to improve bandwidth on a cache data bus |
US7519762B2 (en) | 2003-09-30 | 2009-04-14 | Intel Corporation | Method and apparatus for selective DRAM precharge |
US7167946B2 (en) | 2003-09-30 | 2007-01-23 | Intel Corporation | Method and apparatus for implicit DRAM precharge |
US7127574B2 (en) | 2003-10-22 | 2006-10-24 | Intel Corporatioon | Method and apparatus for out of order memory scheduling |
US7243205B2 (en) | 2003-11-13 | 2007-07-10 | Intel Corporation | Buffered memory module with implicit to explicit memory command expansion |
US7281079B2 (en) | 2003-12-31 | 2007-10-09 | Intel Corporation | Method and apparatus to counter mismatched burst lengths |
KR100689746B1 (ko) * | 2005-02-16 | 2007-03-08 | 주식회사 부강샘스 | 무선 하드 디스크 드라이브 |
-
2005
- 2005-12-23 US US11/318,028 patent/US7673111B2/en not_active Expired - Fee Related
-
2006
- 2006-07-21 US US11/491,312 patent/US7752411B2/en not_active Expired - Fee Related
- 2006-12-07 CN CN200680043933.2A patent/CN101313288B/zh not_active Expired - Fee Related
- 2006-12-07 EP EP06839286A patent/EP1963978A1/en not_active Withdrawn
- 2006-12-07 WO PCT/US2006/047148 patent/WO2007075316A1/en active Application Filing
- 2006-12-07 KR KR1020087015261A patent/KR101032550B1/ko not_active IP Right Cessation
- 2006-12-15 TW TW095147149A patent/TWI335516B/zh not_active IP Right Cessation
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11163720B2 (en) | 2006-04-12 | 2021-11-02 | Intel Corporation | Apparatus and method for processing an instruction matrix specifying parallel and dependent operations |
US11204769B2 (en) | 2011-03-25 | 2021-12-21 | Intel Corporation | Memory fragments for supporting code block execution by using virtual cores instantiated by partitionable engines |
CN107729267A (zh) * | 2011-05-20 | 2018-02-23 | 英特尔公司 | 资源的分散分配以及用于支持由多个引擎执行指令序列的互连结构 |
CN107729267B (zh) * | 2011-05-20 | 2022-01-25 | 英特尔公司 | 资源的分散分配以及用于支持由多个引擎执行指令序列的互连结构 |
US10740126B2 (en) | 2013-03-15 | 2020-08-11 | Intel Corporation | Methods, systems and apparatus for supporting wide and efficient front-end operation with guest-architecture emulation |
US11656875B2 (en) | 2013-03-15 | 2023-05-23 | Intel Corporation | Method and system for instruction block to execution unit grouping |
CN106796560A (zh) * | 2014-09-26 | 2017-05-31 | 英特尔公司 | 用于管理隐式预充电命令信令的方法、设备和系统 |
CN106796560B (zh) * | 2014-09-26 | 2019-08-23 | 英特尔公司 | 用于管理隐式预充电命令信令的方法、设备和系统 |
CN107111440A (zh) * | 2015-01-15 | 2017-08-29 | 夏普株式会社 | 信息处理装置及其控制方法 |
Also Published As
Publication number | Publication date |
---|---|
TW200732916A (en) | 2007-09-01 |
TWI335516B (en) | 2011-01-01 |
EP1963978A1 (en) | 2008-09-03 |
KR101032550B1 (ko) | 2011-05-06 |
US20070150688A1 (en) | 2007-06-28 |
US20070150687A1 (en) | 2007-06-28 |
CN101313288B (zh) | 2014-12-10 |
WO2007075316A1 (en) | 2007-07-05 |
US7673111B2 (en) | 2010-03-02 |
US7752411B2 (en) | 2010-07-06 |
KR20080069272A (ko) | 2008-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101313288B (zh) | 具有单命令和合并命令的存储系统 | |
US7337293B2 (en) | Streaming reads for early processing in a cascaded memory subsystem with buffered memory devices | |
US7934070B2 (en) | Streaming reads for early processing in a cascaded memory subsystem with buffered memory devices | |
US7451273B2 (en) | System, method and storage medium for providing data caching and data compression in a memory subsystem | |
US8935505B2 (en) | System and method for controlling memory command delay | |
US8149874B2 (en) | Adaptive-allocation of I/O bandwidth using a configurable interconnect topology | |
CN101176160B (zh) | 一种芯片、使用该芯片的存储系统及方法 | |
CN103999159A (zh) | 用于对存储器响应进行排序的存储器设备、计算机系统及方法 | |
JP2006318480A (ja) | メモリシステム、および、メモリシステムのメモリチップにアクセスする方法 | |
CN101427224A (zh) | 用于提供存储器定序提示的存储器集线器和方法 | |
CN101300558B (zh) | 具有映射到存储体组的端口的多端口存储器 | |
CN102971795A (zh) | 使用单个缓冲区同时读取多个存储器装置的方法和设备 | |
US7349233B2 (en) | Memory device with read data from different banks | |
CN101300557A (zh) | 具有上下存储器芯片的存储器系统 | |
CN103064791A (zh) | 用于短数据突发长度存储器设备的有效命令映射方案 | |
CN101868788B (zh) | 基于周转事件的调度 | |
JP2012522311A (ja) | マージドメモリコマンドプロトコルをサポートするメモリシステム、コントローラ、およびデバイス | |
US20070016698A1 (en) | Memory channel response scheduling | |
JP4786941B2 (ja) | ハブ、メモリモジュール、及びメモリシステムとこれを通じた読み込み方法及び書き込み方法 | |
CN102237867A (zh) | 包括模块控制电路的半导体模块及其控制方法 | |
CN100547569C (zh) | 用于经由总线传送打包字的电子数据处理电路以及处理数据的方法 | |
US20070005834A1 (en) | Memory chips with buffer circuitry | |
CN115658566B (zh) | 一种实现多通道数据流均衡的方法和系统 | |
CN103544123A (zh) | Sdram控制器及对sdram存储空间的访问方法 | |
KR20070023598A (ko) | 반도체 메모리 시스템 및 반도체 메모리 칩 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20141210 Termination date: 20191207 |