CN101236547A - 提供动态存储库页面策略的系统和方法 - Google Patents
提供动态存储库页面策略的系统和方法 Download PDFInfo
- Publication number
- CN101236547A CN101236547A CNA2008100037636A CN200810003763A CN101236547A CN 101236547 A CN101236547 A CN 101236547A CN A2008100037636 A CNA2008100037636 A CN A2008100037636A CN 200810003763 A CN200810003763 A CN 200810003763A CN 101236547 A CN101236547 A CN 101236547A
- Authority
- CN
- China
- Prior art keywords
- memory device
- memory
- selection
- page policy
- analysis
- 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.)
- Pending
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/1668—Details of memory controller
- G06F13/1694—Configuration of memory controller to different memory types
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0215—Addressing or allocation; Relocation with look ahead addressing means
-
- 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/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
-
- 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/1668—Details of memory controller
- G06F13/1684—Details of memory controller using multiple buses
Abstract
用于提供动态存储缓冲器库策略的系统和方法。实施例包括用于选择库页面策略的集线器件。集线器件包括输入命令流接口和库页面策略模块。输入命令流接口检测从存储控制器送往与该集线器件相连的一个或多个存储器件的命令。库页面策略模块独立地分析所述命令以确定对存储器件的存取图案,以及基于所述分析,对存储器件在开放库页面策略与闭合库页面策略之间进行动态地选择。
Description
技术领域
本发明一般地涉及计算机存储器,更具体地涉及提供动态存储库(bank)页面策略。
背景技术
当今高性能计算主存储系统通常包括一个或多个动态随机存取存储(DRAM)器件,它们通过一个或多个存储控制元件连接到一个或多个处理器。总体计算机系统性能受计算机结构的每个关键元件影响,包括处理器、任何高速缓冲存储器、输入/输出(I/O)子系统的性能/结构、存储控制功能、主存储器件的效率、以及存储器互连接口的类型和结构。
业界正在投入精力进行广泛的研究和开发,以创建改进和/或创新的解决方案,通过改进存储系统/子系统设计和/或结构来最大化总体系统性能和密度。由于消费者期望新的计算机系统除了提供额外的功能、增加的性能、增加的存储量、更低的运行成本等外,在平均故障间隔时间(MTBF)方面也大大超越现有系统,因此高可用性的系统进一步在总体系统可靠性方面提出了挑战。其它频繁的消费者需求进一步加剧了存储系统设计的挑战,并且包括如易于升级以及减少系统环境影响(如空间、功率和冷却)这些项目。
图1涉及这里共同转让的、Dell等人的美国专利号5513135,并且描述了早期的同步存储模块。图1中描述了的存储模块是双列直插存储模块(DIMM)。该模块包括同步DRAM 8、缓冲器件12、优化的引线、以及便于高性能操作的互连和容性耦合方法。该专利还描述了在该模块上使用时钟重驱动(re-drive),使用这些器件作为锁相环(PLL)。
图2涉及这里共同转让的、Dell等人的美国专利号6173382,并且描述了包括同步存储模块220的计算机系统10,同步存储模块220经由总线240直接(即,点到点)连接到存储控制器14,并且进一步包括逻辑电路24(如专用集成电路,或“ASIC”),逻辑电路24对从存储控制器14接收的地址、数据和控制信息进行缓冲、寄存或其它操作。存储模块220可以被编程来作为存储器初始化过程的一部分或者在正常操作期间,经由独立总线,如集成电路间(I2C)控制总线34,在多个可选择或可编程模式下操作。当在要求不止一个直接连接到存储控制器的存储模块的应用中使用时,该专利注意到可以通过使用场效应晶体管(FET)开关将各模块在电气上与总线断开,来最小化得到的短截线(stub)。
相对于美国专利号5513135,美国专利号6173382进一步证明了将所有定义的功能(地址、命令、数据、存在检测等)集成到单个器件中的能力。功能的集成是共同的行业实践,其通过技术改进而成为可能,在这种情况下,使额外的模块密度和/或功能性成为可能。
图3来自这里共同转让的、Grundon等人的美国专利号6510100,其描述了存储系统10的简化图和说明,存储系统10包括在传统的多点短截线总线上的多达四个寄存的DIMM40。该子系统包括存储控制器20、外部时钟缓冲器30、寄存的DIMM40、地址总线50、控制总线60和数据总线70,在地址总线50和数据总线70上有端接器(terminator)95。尽管图3中仅示出了单个存储通道,但配有这些模块的系统常常包括来自存储控制器的不止一个分离的存储通道,每个存储通道单独地(当各模块置入单个通道时)或者并行地(当各模块置入两个或多个通道时)操作,以实现期望的系统功能和/或性能。
图4是来自Bonella等人的美国专利号6587912,其描述了同步存储模块410和系统结构,其中中继集线器320包括通过总线321和322将地址、命令和数据本地重驱动到本地存储器件301和302;本地时钟的生成(如其它图和专利文本中所描述的);以及通过总线300将适当的存储器接口信号重驱动到系统中的下一模块或组件。
图5描述了包括集成处理器芯片500的当前系统,它包括一个或多个处理器元件和集成存储控制器510。在图5描述了的配置中,多个独立的级联存储器总线506被逻辑汇聚在一起协调一致地工作,以使用在并行总线和相关器件之间分发或“剥去(strip)”的数据和错误检测/校正信息,支持在更高带宽的单个独立存取请求。存储控制器510附连到四个窄/高速点到点存储器总线506,每个总线506将若干唯一存储控制器接口通道连接到级联的存储子系统503(或存储模块),后者至少包括集线器件504和一个或多个存储器件509。一些系统还允许当存储器总线506的子集置入存储子系统503时的操作。在这种情况下,一个或多个置入的存储器总线508可以协调一致地工作,来支持单个存取请求。
图6描述了存储集线器件504的框图,它包括链路接口604,用于提供机制来将高速存储存取信息再同步、转化和重驱动到相关DRAM器件509和/或基于存储系统协议将该信息在可应用的存储器总线506上向下游重驱动。该链路接口604经由存储器总线506从上游的存储集线器件504或者从存储控制器510(直接或者通过上游的存储集线器件504)接收该信息。存储器件数据接口615管理与存储器件509的特定技术数据接口,并且控制双向存储器件数据总线608。存储集线控制器613通过响应地驱动存储器件509特定技术地址和控制总线614(对于RANK0501中的存储器件)或者地址和控制总线614’(对于RANK1616中的存储器件),并且引导读取数据流选择器607和写入数据流选择器610,来对存取请求分组做出响应。
图6中的链路接口604将分组解码并将送往本地集线器件504的地址和命令信息送往存储集线控制器613。来自链路接口604的存储器写入数据可以被临时存储在写入数据队列611中,或者通过写入数据流选择器610和内部总线612直接驱动到存储器件509,然后通过内部总线609和存储器件数据接口615发送到存储器件数据总线608。来自存储器件(一个或多个)509的存储器读取数据可以在读取数据队列606中排队,或者通过内部总线605和读取数据选择器607直接传送到链路接口604,以便作为读取应答分组在上游总线506上发送。
在高性能存储子系统设计中,希望利用存储器总线上的最大可用带宽来最大化总体系统性能,以及减少读取命令的延迟(只要有可能),使得可以在最小量的时间内完成任何给定操作。在行业内利用许多方法尝试实现这些目标,包括使用非常高性能的存储器件,使用非常宽的存储器总线来连接存储器件与存储控制器,使用放置得尽可能接近处理器和/或存储控制器的一级或多级高速缓冲存储器,使用基于系统设计和软件优化的库开放或库闭合页面,由存储控制器使用存储器预取算法(memory pre-fetch algorithms)等。尽管所有这些方法提供了不同的总体系统性能提升,但许多被证明在总体系统成本、物理系统大小、系统功率/冷却等方面实现起来非常昂贵。
当前主要的存储系统解决方案可以利用“静态”(例如,不改变的)库页面策略(“开放”或“闭合”页面),一旦系统运行在正常操作模式下,该策略就不改变。此外,库页面策略功能在存储控制器电路中实现,存储子系统用作对来自存储控制器的显式命令进行响应的从属器件。当前解决方案的另一特点是,来自存储子系统的存储器存取本质上是“确定性”的,因为与每个存储操作相关的时间进展可以由存储控制器准确地预测,存储控制器负责调度所有存储操作,使得不发生数据破坏,并且在正常操作期间满足所有存储规范。
当前静态方案的缺点包括这样的事实:当存在最好由另一方法服务的命令流时,集线器芯片不能改变库开放/库闭合页面策略。在计算机存储系统中,很可能在某些时间,库开放页面策略能产生最优性能(例如,当以顺序方式存取存储器时),而在其它时间,库闭合页面策略能产生最优性能(例如,当以随机方式存取存储器时)。期望能够基于在存储集线器件接收的命令流的分析,在库开放页面策略和库闭合页面策略之间动态切换。
发明内容
实施例包括一种用于选择库页面策略的集线器件。该集线器件包括输入命令流接口和库页面策略模块。输入命令流接口检测从存储控制器送往与该集线器件相连的一个或多个存储器件的命令。库页面策略模块独立地分析所述命令以确定对存储器件的存取图案,以及基于所述分析,对存储器件在开放库页面策略与闭合库页面策略之间进行动态地选择。
实施例还包括一种用于选择库页面策略的方法。该方法包括检测从存储控制器送往一个或多个存储器件的命令。分析所述命令来确定对存储器件的存取图案。该方法还基于所述分析,对存储器件在开放库页面策略与闭合库页面策略之间进行动态地选择。
实施例还包括一种存储系统,包括存储控制器、一个或多个存储器件和与所述存储控制器和存储器件通信的存储集线器件。所述存储集线器件包括输入命令流接口,用于检测从存储控制器送往存储器件的命令。该存储集线器件还包括库页面策略模块,用于独立地分析所述命令以确定对存储器件的存取图案,以及用于基于所述分析,对存储器件在开放库页面策略与闭合库页面策略之间进行动态地选择。
其它实施例包括一种存储子系统,包括一个或多个存储器件和存储集线器件。所述存储集线器件包括输入命令流接口,用于检测从存储控制器送往存储器件的命令。所述存储集线器件还包括库页面策略模块,用于独立地分析所述命令以确定对存储器件的存取图案,以及用于基于所述分析,对存储器件在开放库页面策略与闭合库页面策略之间进行动态地选择。
其它实施例包括一种用于接收和响应存储器存取请求的存储控制器。该存储控制器包括输入命令流接口,用于检测送往所选存储器件的命令。该存储控制器还包括库页面策略模块,用于独立地分析所述命令以确定对所选存储器件的存取图案,以及用于基于所述分析,对所选存储器件在开放库页面策略与闭合库页面策略之间进行动态地选择。
在阅读下面附图和详细描述后,根据实施例的其它系统、方法和/或计算机程序产品对于本领域技术人员来说将变得明显。意图使所有这些额外系统、方法和/或计算机程序产品被包括在该描述内,在本发明的范围内,并且由所附的权利要求来保护。
附图说明
现在参照附图,其中在若干附图中相同的元件被相同地标号:
图1描述了示例性早期同步存储模块;
图2描述了示例性计算机系统,具有直接连接到存储控制器的完全缓冲的同步存储模块;
图3描述了示例性存储系统,显示具有单个传统多点短截线(multi-dropstub)总线;
图4描述了完全缓冲的同步存储模块和系统结构,其中完全缓冲的同步存储模块包括中继器功能;
图5描述了包括多个独立的级联存储器接口总线的计算机存储系统的框图,各接口总线协调一致地工作来支持单个数据存取请求;
图6是存储子系统中的示例性集线器件的框图;
图7是示例性集线器件的框图,该示例性集线器件包括可以通过示例性实施例实现的库页面策略模块;
图8描述了可以通过示例性实施例实现的处理流程;
图9描述了可以通过示例性实施例实现的、用于计算连续页面存取计数的处理流程;以及
图10描述了用于实现示例性实施例的系统的框图。
具体实施方式
示例性实施例通过基于在集线器件从存储控制器接收的存储器存取请求,在运行时期间在开放库页面策略和闭合库页面策略之间动态地选择,来提高存储性能。在集线器件上独立地分析存储器存取请求来确定对与集线器件附连的存储器件的存取图案。基于该分析,对存储器件(例如,对所有存储器件、对个别存储器件和/或对个别存储器件上的库)选择库页面策略。示例性实施例减少了静态页面策略实施所固有的存储系统低效。由于需要打开最近存取和关闭的页面、或者由于需要关闭之前保持打开的页面以允许存取不同的页面,这些低效常常引起的额外的存储延迟。
存储系统设计的一个关键元素与所使用的库页面策略(库开放或库闭合)有关。关闭或重新打开页面的等待时间相对较长,因此,选择与应用命令流不一致的库页面策略可能导致系统性能比使用交替页面策略所能实现的系统性能要大打折扣。通过动态选择对给定命令流的最优页面策略,由于必须发出的预充电和/或行启用命令序列减少,可以减少存储器件地址和控制总线614614’带宽要求,这是因为存储器将更经常地已经处于下一存取的最佳状态。
这里使用的术语“页面”是指随着接收到行地址而启用的多路复用地址DRAM的一部分。这里使用的短语“库闭合页面策略”是指这样的操作存储器的方法,其中存储器件509在完成诸如“读取”或“写入”的存储操作时返回到预充电(例如,待用)状态。这样,可以对存储器内的任何地址进行下一次存取。这里使用的短语“库开放页面策略”是指这样的操作存储器的方法,其中存储器件509保留在行地址(页面)仍被选中的状态。该状态也称为“启用/待用”状态,并且可以在接收到列地址时存取存储器件509。这样,只能对所选页面内的地址进行存取,直到该存储器被预充电为止。这里使用的短语“库开放/闭合逻辑单元”(BOCLU)是指用于记录当前存储库页面策略状态的电路和/或软件指令。BOCLU内的电路和/或软件指令包括用于记录对库内的页面的连续存取次数的计数器,以及用于记录存取的最后地址的寄存器。
为了使能动态库开放/闭合策略,利用至少一个BOCLU,其数量是存储系统中的每个存储库有一个BOCLU。在具有最少控制粒度的示例性实施例中,有一个通用BOCLU引擎,其监视作用于它连接到的整个存储子系统503的地址流(或输入命令流)。在其它示例性实施例中,每个存储库利用一个BOCLU,提供最优的灵活性和存储性能。此外,存储子系统503中的一些存储器件509可以每个存储库具有一个BOCLU,而同一存储子系统503中的其它存储器件509可以由每个存储器件509的一个BOCLU监视。其它实施例可以包括每个存储器件地址和控制总线614614’有一个BOCLU。这些和其它实施例可以基于在确定是否在库开放页面策略和库闭合页面策略之间切换时所要求的粒度来实现。这些示例本质上是示例性的,并且许多其它组合是有可能的。
图7是可由示例性实施例使用的示例性存储集线器件704的框图。集线器件704包括输入命令流接口706,用于检测来自存储控制器510的、送往与集线器件704相连的一个或多个存储器件509的命令。集线器件704还包括库页面策略模块702(包括一个或多个BOCLU),用于独立地分析各个命令以确定对存储器件509的存取图案,并且基于分析,对所选存储器件在开放库页面策略和闭合库页面策略之间进行动态选择。
图7中的集线器件704执行与上面参照图6所述的相同功能,还有执行动态库开放/库闭合页面策略的附加功能。图7描述了库页面策略模块702,它通过一个或多个用于执行这里所述的存储库页面策略功能的BOCLU实现。每个BOCLU对应于一个或多个存储器件509(每个存储器件509内的所有库和/或每个存储器件509内的一个或多个特定库)。在示例性实施例中,每个BOCLU监视来自存储控制器510的输入命令流(例如,通过例如在链路接口604或存储集线控制器713“探听”输入命令流的输入命令流接口706),来检测送往与对应于BOCLU的存储器件509相关的地址的命令。当检测到这样的命令时,BOCLU执行对命令的独立分析(例如,在集线器件704),以确定存取图案(例如,存取是随机或顺序的),然后BOCLU动态地(在运行期间)为对应于BOCLU的存储器件509选择开放库页面策略或者闭合库页面策略。将该选择发送到存储集线控制器713,并且当存取存储器件509时,存储集线控制器713应用该库页面策略(例如,当库页面策略是闭合库页面策略时,发出预充电命令)。
在示例性实施例中,每个BOCLU监视来自存储控制器510的输入命令流(例如,通过“探听”输入命令流的输入命令流接口706),来检测送往与对应于BOCLU的存储器件509相关的地址的命令。在替代示例性实施例中,在库页面策略模块702内使用单个输入命令流接口706来检测送往与连接到集线器件704的所有存储器件509相关联的地址的命令。然后,输入命令流接口706基于被每个命令存取的地址,将这些命令送往(例如通过多路复用器)正确的BOCLU。在示例性实施例中,库页面策略模块702中(或库页面策略模块702内的每个BOCLU内)的输入命令流接口706监视通过链路接口604解码的地址和命令信息(在它被发送到存储集线控制器713时)。在其它示例性实施例中,来自位于存储集线控制器713中的、“探听”输入命令流的模块的输出被BOCLU使用。因此,命令流接口706可以位于库页面策略模块702中的每个BOCLU内,位于库页面策略模块702内或者位于存储集线控制器713内。
位于库页面策略模块702中的BOCLU可以使用任何数量的分析算法来确定在“闭合库页面策略”与“开放库页面策略”之间切换库页面策略模式是否是有利的。同一集线器件704内的不同BOCLU可以使用不同的分析算法。在最小的情况下,算法测试是否发生了对同一页面的“N”(N是大于1的正整数)个连续行存取。如果N大于或等于2,则库页面策略将切换到库开放页面策略,因为存储系统将不必等待库的预充电时间。同样,如果N个连续行地址并非指向同一页面,则库页面策略将切换到操作的库闭合页面策略。在其它示例性实施例中,连续行地址的数量可以在库页面策略改变之前超过2,并且基于由BOCLU监视的最近的存取历史,可以是可变的数量。其它示例性实施例可以利用更复杂的算法(默认或可选择的),使用阈值、预测和/或滞后,作为用于确定是否和何时动态切换存储控制器、集线器件和/或存储器件的库策略的处理的一部分。
在其它示例性实施例中,动态库开放/闭合页面策略是基于存储命令缓冲器或者命令堆栈(通常是包含已接收但尚未执行的待决未来命令的FIFO寄存器)来设置的,由此通过存储集线控制器713中的BOCLU或其它逻辑“探听”寄存器内容,以识别对一个或多个页面的存取。如果存在对共同页面的任何读取存取请求,则在这些存取的持续期间内建立开放库页面策略,并且对各个存取重新排序(例如,以不同于最初接收的顺序执行),使得共同库存取不包括要求该页面被关闭并再打开到另一页面的其它存取,同时该页面内的这些存取可用来被服务。在另一示例性实施例中,在例如当由“标签”标识、被预指定地址范围、存取完成定时器或其它部件的一个或多个高优先级存取会被该动作延迟时的情况下,可以不重新排序这些存取。
本领域技术人员所公知的是,写入操作的重新排序也是有可能的,但这要求对被写入的存储位置的任何随后读取存取继写入操作之后完成,以便保持数据完整性。当存取被重新排序时,示例性实施例包括使用与到存储控制器510的所有存储器读取传输相关的“标签”位,使得存储数据能早于或晚于在传统存储子系统结构中所预期的情况,被返回到存储控制器510。除了将读取存取传输与存取请求相关联的其它方法之外,一个示例是使用这里共同转让的、于2006年5月22日提交的美国专利申请号11/419586中所描述的标签位,通过引用将该申请全部并入这里。
在其它示例性实施例中,动态库开放/库闭合页面策略是基于输入命令流的探听(例如,通过存储集线控制器713中的BOCLU或其它逻辑)而设置的,其中输入命令流可以或不可以存储在存储命令缓冲器、命令堆栈或类似的寄存器中。该解决方案与包括命令堆栈的系统的解决方案非常相似,然而可用的命令通常限于最近接收的命令(可以以接收的形式或压缩的形式存储)、当前命令和有可能的下一命令。在这种情况下,输入命令流的分析通常本质上是历史性的,而命令堆栈的可用性允许对近期存取的更精确的标识。
总体来说,如果对存储库的下一存取是对于同一页面的,则该页面应当保持打开,而如果对存储库的下一存取是对于不同页面的,则该页面应当被关闭。
在另一示例性实施例中,存储集线器件704周期性地从存储控制器510接收关于未来地址流的提示和/或其它控制信息。基于该“提示”信息,集线器件704可以对一个或多个库来确定存取图案并修改库页面策略。在其它实施例中,存储控制器510通知集线器件704,将存取同一存储页面的一个或多个另外的命令正要到来(例如,在存储控制器调度器或缓冲器中)。响应于接收到该命令,集线器件704修改库页面策略(如果需要的话),以与利用当前存储命令接收的信息相一致,使得可以优化随后存取的执行。
这些方法的每一个可以单独地实现,或者一个或多个方法可以如图8所描绘的那样结合在一起。图8描述了可以在示例性实施例中通过库页面策略模块702实现的处理流程。在方框802,启用库页面策略模块702。在示例性实施例中,这里描述的库页面策略模块处理是通过一个或多个BOCLU(例如,每存储库有一个)实现的。在方框804,库页面策略被默认为闭合页面策略模式。方框806监视到存储集线器件704的命令输入流(例如,通过输入命令流接口706),以检测对与存储集线器件704相连的存储器件509的读取和写入命令。方框806继续监视输入流,直到检测到读取或写入命令为止。当检测到读取或写入命令时,执行方框806-818来分析命令,以确定对存储器件509的存取图案。基于该分析,执行方框804和/或方框818,以在开放库策略和闭合库页面策略之间动态地选择。
当在方框806检测到读取或写入命令时,处理在方框808继续,以确定在存储集线控制器713中的命令寄存器中是否存在(或者正在接收)对同一库的另一命令。如果在方框808确定确实存在对同一库的另一命令,则执行方框810以确定对当前库的所述另一命令是否将是对同一页面的。如果是,则执行方框818,并且库策略切换到开放库策略,并且在完成第一存取时保持该库打开。如果所述另一命令是对同一库的、但并不是存取同一页面,则保持闭合库策略,并且在完成当前存取时关闭该库。处理然后在方框804继续,启用闭合库策略。
如果在方框808确定尚未接收到和/或集线命令缓冲器中不存在对同一库的另一命令,则在方框812进行检查,以确定存储控制器510是否发送了保持页面打开或关闭的提示。如果在方框812确定未接收到提示,则执行方框814,以利用当前命令和之前的命令来确定库页面策略的值。在方框814进行检查,以确定相应BOCLU中的连续页面存取计数是否大于或等于预定义的阈值(例如,2、4、6)。预定义的阈值在各BOCLU之间可以是不同的,并且可以在存储子系统操作期间动态调整。如果连续页面存取计数大于或等于预定义的阈值,则执行方框818,并且库页面策略切换到库开放页面策略。处理然后在方框806继续,以监视输入命令流。如果在方框814确定连续页面存取计数不大于或等于预定义的阈值,则处理在方框804继续,策略继续为库闭合策略。如果在方框812接收到提示,则处理将继续到方框816。在方框816,执行存储控制器提示的检查。如果来自存储控制器的提示要求页面必须被打开,则处理继续到方框818。如果提示要求页面必须被关闭,则处理继续到方框804。
本领域技术人员可以看出,可以对默认“开放页面”策略应用相同的处理。
图9描述了在图8的方框814使用的、计算连续页面存取计数的示例性处理,用以确定是否存在输入命令流中的命令存取的连续页面的存取图案。在方框902,BOCLU等待下一命令。在方框904进行检查,以确定是否检测到了新命令。当BOCLU检测到新存储器存取(例如,读取或写入)命令时,则执行方框906,并且将新存取的地址(包括行(页面)地址)与当前地址(包括行地址)比较,来确定它们是否相等。如果正在存取存储器中的同一页面,则执行方框908,并且递增连续页面存取计数。处理在方框912继续。如果两个地址不相等,则执行方框910,并且连续页面存取计数被复位到零。在替代示例性实施例中,计数被复位到1,被递减或者被设置到任何其它数。处理在方框912继续。在方框912,记录当前地址,并且处理在方框902继续,以等待接收下一存储命令。
在其它示例性实施例中,例如图10所示的实施例中,在存储控制器1002中实现这里所述的功能,并且库页面策略是基于存储控制器1002中使用的算法而动态设置的,并且存储控制器1002利用发送到存储器总线506上的集线器的命令、或者利用允许在存储控制器1002和/或集成处理器与集线器件504之间通信的第二(低速)总线(如SMBus和I2C总线或其它总线),修改集线器操作模式。图10描述了接收和响应存储器存取请求的存储控制器1002。存储控制器1002包括输入命令流接口1004,用于检测送往所选存储器件509的命令。存储控制器1002还包括库页面策略模块1006,用于独立地分析各个命令,以确定对所选存储器件509的存取图案,以及基于所述分析,对所选存储器件509在开放库页面策略与闭合库页面策略之间进行动态选择。
示例性实施例包括具有处理器和I/O单元(例如,请求器)的计算系统,处理器和I/O单元与包括存储控制器和存储器件的存储系统互连。在示例性实施例中,存储系统包括与一组集线器件(又称为“集线器芯片”)相接的处理器或存储控制器。集线器件与存储器件相连和相接。在示例性实施例中,计算机存储系统包括物理存储器阵列,其具有用于存储数据和指令的多个存储器件。这些存储器件可以直接连接到存储控制器和/或通过集线器件间接耦接到存储控制器。在示例性实施例中,基于集线器的计算机存储系统具有附连到通信集线器件的存储器件,该通信集线器件连接到存储控制器件(例如,存储控制器)。另外在示例性实施例中,集线器件位于存储模块(例如,单个衬底或物理器件)上,后者包括通过存储器总线彼此级联(并且有可能级联到位于另一存储模块上的另一集线器件)的两个或多个集线器件。
集线器件可以通过多点(multi-drop)或点到点结构(还可以包括到一个或多个附加集线器件的级联)连接到存储控制器。存储控制器通过总线结构(例如存储器总线)将存储器存取请求发送到所选集线器(一个或多个)。响应于接收到存储器存取请求,集线器件转换存储器存取请求,以控制存储器件存储来自集线器件的写入数据或者将读取数据提供给集线器件。读取数据被编码成一个或多个通信分组,并通过存储器总线发送到存储控制器。
在替代示例性实施例中,存储控制器可以与一个或多个处理器芯片和支持逻辑集成在一起,封装在分离的芯片中(通称为“北桥”芯片),被包括在具有一个或多个处理器和/或支持逻辑的多芯片载体中,或者以最适合应用/环境的各种替代形式来封装。这些解决方案中的任一个都可以采用或可以不采用一个或多个窄/高速链路来连接一个或多个集线器芯片和/或存储器件。
存储模块可以通过多种技术实现,包括DIMM、单列直插存储模块(SIMM)和/或其它存储模块或卡结构。一般而言,DIMM是指小电路板,其主要包括一侧或两侧上的随机存取存储器(RAM)集成电路或者管芯(die),板的两侧上有信号和/或电源引脚。这可能与SIMM相反,后者是小电路板或衬底,主要包括一侧或两侧上的RAM集成电路或管芯以及沿着一个长边沿的单行引脚。在示例性实施例中,图1中描述的DIMM包括168个引脚,而后来的DIMM被构造具有从100个引脚到超过300个引脚的引脚数。在这里所述的示例性实施例中,存储模块可以包括两个或多个集线器件。
在示例性实施例中,存储器总线是使用到存储模块上的存储器件的多点连接和/或使用点到点连接来构造的。控制器接口(或存储器总线)的下游部分被称为下游总线,其可以包括发送到存储模块上的集线器件的命令、地址、数据和其它操作、初始化或状态信息。在示例性实施例中,下游存储器总线将存储控制器连接到集线器件,或者将集线器件连接到距离存储控制器更远的另一集线器件。每个集线器件可以通过旁路电路将信息简单地转发到后续的存储器件;如果确定目标是下游集线器件,则接收、解释并重驱动该信息;重驱动一些或全部信息,而不首先解释该信息来确定预期接收者;或者执行这些选项的子集或组合。在示例性实施例中,下游总线具有用于控制存储系统的协议。
存储器总线的上游部分被称为上游总线,其返回所请求的读取数据和/或错误、状态或其它操作信息,并且可以通过旁路电路将该信息转发到后续的集线器件;如果确定目标是上游集线器件和/或处理器联合体中的存储控制器,则接收、解释和重驱动该信息;部分或全部地重驱动该信息,而不首先解释该信息来确定预期接收者;或者执行这些选项的子集或组合。在示例性实施例中,上游总线具有用于从存储系统接收响应的协议。
在替代示例性实施例中,点到点总线包括开关或旁路机制,使得在下游通信(从存储控制器到存储模块上的集线器件的通信)期间,总线信息被送往两个或多个可能的集线器件中的一个,以及指引上游信息(从存储模块上的集线器件到存储控制器的通信),常常经过一个或多个上游集线器件。另外的实施例包括使用连续性模块(如本领域所知道的那些模块),连续性模块例如可以在级联存储系统中放置在存储控制器和第一个置入的集线器件(即,与一个或多个存储器件通信的集线器件)之间,使得存储控制器和第一个置入的集线器件之间的任何中间集线器件位置包括这样的机制:即使这一个或多个中间集线器件位置不包括集线器件,也可以通过该机制接收存储控制器与第一个置入的集线器件之间传递的信息。连续性模块可以安装在任何模块位置上,受到任何总线约束,包括(离主存储控制器最近的)第一位置、(在任何包括的末端之前的)最后位置或者任何中间位置。使用连续性模块可能在多模块级联总线结构中是特别有益的,其中存储模块上的中间集线器件被移除并被连续性模块代替,使得系统在移除中间集线器件之后继续操作。在更一般的实施例中,连续性模块包括互连导线来将所有需要的信号从输入端转送到对应的输出端,或者通过中继器件来重驱动。连续性模块还可以包括非易失性存储器件(如EEPROM),但不包括主存储储存器件。
在示例性实施例中,存储系统包括在通过级联存储器总线连接到存储控制器的一个或多个存储模块上的一个或多个集线器件,然而也可以实现其它存储结构,如点到点总线、多点存储器总线或共享总线。取决于使用的信号传输方法、目标工作频率、空间、功率、成本以及其它制约,可以考虑各种替代总线结构。点到点总线可以提供由电子互连产生的系统最优性能,这是由于与具有分支信号线、开关器件或短截线的总线结构相比,减少了可能发生的信号恶化。然而,当在要求与多个器件或子系统通信的系统中使用时,该方法常常会引起大大增加的组件成本以及增加的系统功率,并且可能由于需要中间缓冲和/或重驱动而减少可能的存储器密度。
尽管图中未示出,但存储模块或集线器件还可以包括单独的总线,如“存在检测(presence detect)”总线、I2C总线和/或SMBus,用于以下一个或多个目的:确定集线器件和/或存储模块属性(通常在加电后)、向系统报告故障或状态信息、在加电后或在正常工作期间配置集线器件和/或存储子系统、或者其它目的。取决于总线特性,该总线还可以提供一种机制,通过该机制,集线器件和/或存储模块可以向存储控制器报告操作的有效完成,或者标识在主存储控制器请求的执行期间发生的故障。
可以通过添加开关器件,获得与点到点总线结构所获得的性能相似的性能。这些和其它解决方案以较低的功率提供了增加的存储器封装密度,同时保持了点到点总线的许多特性。多点总线提供替代的解决方案,虽然常常受到较低的工作频率限制,但在成本/性能点上可能对于许多应用是有利的。光总线解决方案不管在点到点还是多点应用中都大大增加了频率和带宽潜力,但可能带来成本和空间方面的影响。
这里使用的术语“缓冲器”或“缓冲器件”是指(计算机中的)临时存储单元,特别是以一个速率接受信息并且以另一速率送出该信息的临时存储单元。在示例性实施例中,缓冲器是提供两个信号之间的兼容性(例如,改变电压电平或电流容量)的电子器件。术语“集线器”有时与术语“缓冲器”互换地使用。集线器是包含多个端口、与若干其它器件相连的器件。端口是接口的一部分,其提供适合的I/O功能(例如,端口可以用于在一个点到点链路或总线上发送和接收数据、地址和控制信息)。集线器可以是将若干系统、子系统或网络连接在一起的中心器件。被动型集线器可以简单地转发消息,而主动型集线器或者中继器放大和刷新(要不然会随着距离而恶化的)数据流。这里使用的术语集线器件是指集线器芯片,其包括用于执行存储器功能的逻辑(硬件和/或软件)。
这里还使用的术语“总线”是指计算机中连接两个或多个功能单元的导体的集合(例如,集成电路中的导线和印刷电路板线路或连接)之一。数据总线、地址总线和控制信号构成单条总线(尽管它们名字不同),因为每一个在没有其它总线的情况下常常是无用的。总线可以包括多个信号线,每个信号线具有两个或多个连接点,它们形成电连接两个或多个收发器、发送器和/或接收器的主传输路径。术语“总线”是与术语“通道”相对照的,后者常常用于描述与存储系统中的存储控制器相关的“端口”的功能,并且其可以包括一个或多个总线或总线的集合。这里使用的术语“通道”是指存储控制器上的端口。要注意,该术语常常与I/O或其它外围设备结合使用,然而术语通道也可以用来描述处理器或存储控制器与一个或多个存储子系统之间的接口。
此外,这里使用的术语“菊花链”是指一种总线布线结构,其中,例如器件A线连(wire)到器件B,器件B线连到器件C,等等。最后的器件典型地线连到电阻器或端接器。所有器件可以接收相同的信号,或者与简单的总线不同,每个器件可以在将一个或多个信号传递之前对其进行修改。这里使用的“级联”或“互相级联”是指一连串的级或单元、或者互连的网络器件(典型的是集线器)的集合,其中集线器用作逻辑中继器,进一步允许将合并的数据集中到现有的数据流中。此外,这里使用的术语“点到点”总线和/或链路是指多个一个或多个信号线,每一个可能包括一个或多个端接器。在点到点总线和/或链路中,每个信号线具有两个收发器连接点,每个收发器连接点耦接到发送器电路、接收器电路或收发器电路。信号线是指一个或多个电导体或光载体,通常配置为以缠绕、平行或同心布置的单个载体或者两个或多个载体,用于传输至少一个逻辑信号。
存储器件通常被定义为主要包括存储(储存)单元的集成电路,如DRAM(动态随机存取存储器)、SRAM(静态随机存取存储器)、FeRAM(铁-电RAM)、MRAM(磁随机存取存储器)、闪速存储器和其它形式的随机存取和相关存储器,以电、光、磁、生物学的形式或其它方式存储信息。动态存储器件类型可以包括异步存储器件,如FPM DRAM(快速页面模式动态随机存取存储器)、EDO(扩展数据输出)DRAM、BEDO(突发EDO)DRAM、SDR(单一数据速率)同步DRAM、DDR(双数据速率)同步DRAM,或者任何预期的后继器件,如DDR2、DDR3、DDR4和相关技术(常常是基于相关DRAM上找到的基础功能、特征和/或接口),如图形RAM、视频RAM、LP
RAM(低功率DRAM)。
存储器件可以以芯片(管芯)和/或各种类型和配置的单或多芯片封装的形式使用。在多芯片封装中,存储器件可以与其它类型器件(如其它存储器件、逻辑芯片、模拟器件和可编程器件)封装在一起,并且还可以包括如电阻器、电容器和电感器之类的无源器件。这些封装可以包括集成散热器或者其它冷却增强,它们可以进一步附连到中间载体或者另一附近的载体或者热量排除系统。
根据技术、功率、空间、成本和其它折中,模块支持器件(如缓冲器、集线器、集线器逻辑芯片、寄存器、PLL、DLL、非易失性存储器等)可以包括多个单独的芯片和/或组件,可以作为多个单独芯片而被组合到一个或多个衬底上,可以组合到单个封装上或者甚至集成到单个器件上。此外,根据技术、功率、空间、成本和其它折中,各种无源器件(如电阻器、电容器)中的一个或多个可以集成到支持芯片封装中,或者集成到衬底、板或者原始卡自身中。这些封装可以包括集成散热器或其它冷却增强,它们可以进一步附连到中间载体或者另一附近的载体或者热量排除系统。
存储器件、集线器、缓冲器、寄存器、时钟器件、无源器件和其它存储支持器件和/或组件可以通过各种方法附连到存储子系统和/或集线器件,这些方法包括焊接互连、导电粘合剂、插槽结构、压力触点和通过电、光或其它方式允许在两个或多个器件之间通信的其它方法。
一个或多个存储模块(或存储子系统)和/或集线器件可以通过一种或多种方法,如焊接互连、连接器、压力触点、导电粘合剂、光互连和其它通信和电力传送方法,连接到存储系统、处理器联合体、计算机系统或其它系统环境。连接器系统可以包括配对连接器(凸/凹)、与凸或凹连接器配对的一个载体上的导电触点和/或引脚、光连接、压力触点(常常与保持机构结合)和/或一个或多个各种其它通信和电力传送方法。互连可以沿着存储器组件的一个或多个边沿放置,和/或与存储子系统的边沿相距一距离放置,这取决于这种应用要求,如容易升级/修理、可用的空间/容积、热传输、部件大小和形状以及其它相关的物理、电、光、视觉/物理存取等。
这里使用的术语“存储子系统”是指(但不限于):一个或多个存储器件;一个或多个存储器件和相关的接口和/或定时/控制电路;和/或与存储缓冲器、集线器件和/或开关结合的一个或多个存储器件。除了任何相关的接口和/或定时/控制电路和/或存储缓冲器、集线器件或开关外,术语存储子系统还可以指装入衬底、卡、模块或相关组件的一个或多个存储器件,其也可以包括连接器或将存储子系统与其它电路电连接的类似机制。这里所述的存储模块可以称为存储子系统,因为它们包括一个或多个存储器件和集线器件。
可能本地驻留到存储子系统和/或集线器件的额外功能包括写入和/或读取缓冲器、一级或多级高速缓冲存储器、本地预取(pre-fetch)逻辑、数据加密/解密、压缩/解压缩、协议转换、命令区分优先次序逻辑、电压和/或电平转换、检错和/或校正电路、数据清除、本地功率管理电路和/或报告、操作和/或状态寄存器、初始化电路、性能监视和/或控制、一个或多个协处理器、搜索引擎和其它可能已经预先驻留在其它存储子系统中的功能。通过替换存储子系统本地的功能,常常在利用子系统内的未使用的电路的同时,获得与该特定功能相关的额外性能。
存储子系统支持器件可以直接附连到存储器件所附连到的同一衬底或组件,或者可以安装到使用一个或多个各种塑料、硅、陶瓷或其它材料(包括电、光或其它通信路径来将支持器件与存储器件和/或存储器或计算机系统的其它元件功能互连)生产的单独的介入器或衬底。
沿着总线、信道、链路或其它对互连方法应用的命名约定的信息传输(例如分组)可以使用许多信号传输选项中的一个或多个来完成。这些信号传输选项可以包括诸如单端、差分、光学或其它方式之类的方法,电子信号传输还包括诸如使用单电平或多电平的电压或电流信号传输方式之类的方法。信号还可以使用诸如时间或频率、不归零、相移键控、幅度调制和其它之类的方法来调制。电压电平预期继续降低,预期1.5V、1.2V、1V和更低的信号电压与相关联的集成电路自身操作所需的减少的电源电压相一致(但常常是独立于后者)。
在存储子系统和存储系统自身内可以利用一个或多个时钟控制方法,包括全局时钟控制、源同步时钟控制、编码时钟控制或者这些和其它方法的组合。时钟信号传输可以与信号线自身的时钟信号传输相同,或者可以利用所列出的或替代方法中对于各种子系统内计划的计划时钟频率和时钟数传导更好的方法。单个时钟可以与去往和来自存储器的所有通信以及存储子系统内的所有时钟功能相关联,或者可以使用之前所述的一个或多个方法来产生多个时钟。当使用多个时钟时,存储子系统内的功能可以与对子系统唯一产生的时钟相关联,或者可以基于从与送往和来自存储子系统的信息相关的时钟得到的时钟(如与编码时钟相关联的时钟)。或者,对于传送到存储子系统的信息可以使用唯一的时钟,而对于由存储子系统之一(或多个)产生的信息使用单独的时钟。时钟本身可以工作在与通信或运行频率相同的频率或者频率倍数上,并且可以边沿对齐、中心对齐或者位于相对于数据、命令或地址信息的交替定时位置上。
传送给存储子系统的信息通常将包括地址、命令和数据以及一般与请求或报告状态或错误状况、复位存储器、完成存储器或逻辑初始化和其它功能、配置相关联的其它信号、或者相关信息。从存储子系统传送的信息可以包括送往存储子系统的信息中的任何或全部,然而通常将不包括地址和命令信息。该信息可以使用符合正常存储器件接口规范(通常本质上是并行的)的通信方法来通信,该信息可以被编码成“分组”结构,该分组结构可以符合未来存储器接口或者简单开发,以通过将接收的信息转换成接收器件所要求的格式来增加通信带宽和/或使子系统能够独立于存储技术而操作。
可以基于可用的接口总线、期望的初始化速度、可用空间、成本/复杂度目标、子系统互连结构、可用于此以及其它目的的替代处理器(如服务处理器)的使用,通过一个或多个方法完成存储子系统的初始化。在一个实施例中,可以使用高速总线来完成存储子系统的初始化,通常是首先完成用于建立可靠通信的训练处理,然后询问与各个组件相关的属性或“存在检测”数据和/或与该子系统相关的特性,最后用与该系统内的期望操作相关的信息编程适当器件。在级联的系统中,通常首先建立与第一存储子系统的通信,然后是那些符合它们在级联互连总线上的位置的顺序的后继(下游)子系统。
第二初始化方法包括这样的方法:高速总线在初始化处理期间工作在一个频率上,然后在正常操作期间工作在第二(通常是更高)频率上。在该实施例中,由于与较低频率工作相关的定时余量增加,有可能在完成每个子系统的询问和/或编程之前,发起与级联互连总线上的所有存储子系统的通信。
第三初始化方法可以包括在增加与每个地址、命令和/或数据传输相关的周期数的同时,级联互连总线工作在正常操作频率上。在一个实施例中,在正常操作期间,可以在一个时钟周期中传输包含地址、命令和/或数据信息的全部或一部分的分组,但在初始化期间,可以在两个、三个或多个周期上传输相同量和/或类型的信息。因此该初始化处理使用“慢”命令而不是“正常”命令的形式,并且可以在子系统和存储控制器的每一个加电和/或重启动之后的某个点,通过这些子系统的每一个中包括的POR(加电复位)逻辑自动进入这种模式。
第四初始化方法可以利用不同的总线,如存在检测总线(如这里共同转让的、Dell等人的美国专利号5513135中所定义的)、I2C总线(如公布的JEDEC标准中所定义的,如168Pin DIMM family in publication 21-C revision
7R8)和/或SMBUS,这在使用这些存储模块的计算机系统中被广泛利用和证明。该总线可以以菊花链/级联互连、多点或其它结构来连接到存储系统内的一个或多个模块,提供独立机制,来询问存储子系统,编程一个或多个存储子系统中的每一个来在整个系统环境内操作,以及基于系统环境中期望或检测的性能、热、配置或其它改变,在正常系统操作期间的其它时刻调整运行特性。
也可以结合或独立于这些所列出的方法,使用其它初始化方法。使用如上面第四实施例中所述的独立总线还给出了这样的优点:提供了独立的机制用于初始化和初始化之外的用途(如这里共同转让的、Dell等人的美国专利号6381685中所述的),包括实时改变到子系统运行特性、以及对运行子系统信息(如使用率、温度数据、故障信息或其它目的)的报告和响应。
随着光刻的改进、更好的工艺控制、使用更低电阻的材料、增加的场大小和其它半导体工艺改进,器件电路密度的增加(常常伴随着管芯尺寸的增加)将有助于增加集成器件上的功能以及之前在独立的器件上实现的功能的集成。该集成将有助于提高期望功能的总体性能,并且促进增加的存储密度、减少的功率、减少的空间需求、降低的成本以及其它制造商和消费者好处。该集成是自然的演进过程,并且可能引起对与系统相关的基础构建块的结构改变的需求。
使用一个或多个故障检测和/或校正方法,可以将通信路径、数据存储内容和所有与存储系统或子系统的每个元件相关联的功能操作的整体性确保为高的程度。任何或所有各种元件可以包括检错和/或纠错方法,如CRC(循环冗余码)、EDC(错误检测和纠正)、奇偶校验或适于该目的的其它编码/解码方法。进一步的可靠性增强可以包括操作重试(以克服诸如与信息传输相关的间歇故障)、使用一个或多个替代或替换通信路径来替换故障路径和/或线路、补码或再补码技术或者计算机、通信和相关系统中使用的替代方法。
在与点到点链路一样简单或者与多点结构一样复杂的总线上使用总线端接正变得更加符合增长的性能需求。可以标识和/或考虑广泛的多种端接方法,包括使用如电阻器、电容器、电感器之类的器件或者这些器件的任何组合,这些器件连接在信号线和电源电压或地电压、端接电压或另一信号之间。端接器件可以是无源或有源端接结构的一部分,并且可以驻留在沿着一条或多条信号线的一个或多个位置中,和/或作为发送器和/或接收器件的一部分。可以选择端接器来匹配传输线路的阻抗,或者通过其它途径选择端接器,以在成本、空间、功率和其它约束内最大化可使用的频率、运行余量和相关属性。
新出现的高性能系统采用新的总线结构来解决系统成本和存储密度方面的一些问题,包括使用级联互连的存储子系统,该存储子系统包括存储模块上的一个或多个集线器件。在包括能够对存储器件使用的命令、数据和地址信息而操作的集线器件的情况下,可以考虑最大化总体系统性能的新解决方案。示例性实施例的技术效果包括减少总体存储系统延迟,从而提高系统性能。在示例性实施例中,改进的特别方面涉及最大化存储控制器与存储子系统之间的存储器总线的利用率,以及减少从存储子系统的总体读取存取延迟。
如上所述,本发明的实施例可以以计算机实施的处理或用于实践这些处理的设备的形式来实现。本发明的实施例也可以以计算机程序代码的形式实现,其中包括在有形介质中包含的指令,所述有形介质如软盘、CD-ROM、硬盘或任何其它计算机可读存储介质,其中当计算机程序代码被装到计算机并且由计算机执行时,计算机变成用于实践本发明的装置。本发明也可以被实现为计算机程序代码的形式,例如,不论是被存储在存储介质中、被装到计算机和/或由计算机执行、还是经由一些传输介质被传输,所述经由一些传输介质例如通过电线或电缆布线、通过光纤或经由电磁辐射,其中,当计算机程序代码被装入计算机中并由计算机执行的时候,计算机变成用于实践本发明的装置。当在通用微处理器上被实现的时候,计算机程序代码段配置微处理器以创建特定的逻辑电路。
虽然已经参照示例性实施例描述了本发明,但本领域技术人员将理解,在不脱离本发明的范围的情况下,可以对其元件进行各种改变以及可以进行等效替换。此外,可以在不脱离本发明的基本范围的情况下,进行许多修改来使特定情形或材料适合本发明的教导。因此,期望本发明并不限于作为构思来实施本发明的最佳模式而披露的具体实施例,相反本发明将包括落入所附权利要求的范围内的所有实施例。此外,使用的术语第一、第二等并不表示顺序或重要性,相反,术语第一、第二等用于将元件彼此区分开来。
Claims (35)
1.一种集线器件,包括:
输入命令流接口,用于检测从存储控制器送往与该集线器件相连的一个或多个存储器件的命令;和
库页面策略模块,用于独立地分析所述命令以确定对所述存储器件的存取图案,以及用于基于所述分析,对所述存储器件在开放库页面策略与闭合库页面策略之间进行动态地选择。
2.如权利要求1所述的集线器件,其中所述存取图案是读取存取图案。
3.如权利要求1所述的集线器件,其中对所述存储器件之一上的一个库应用所述分析和选择。
4.如权利要求1所述的集线器件,其中对所述存储器件之一应用的所述分析和选择独立于对所述存储器件中的另一个应用的所述分析和选择。
5.如权利要求1所述的集线器件,其中对所述存储器件之一中的一个库应用的所述分析和选择独立于对所述存储器件中的另一个库应用的所述分析和选择。
6.如权利要求1所述的集线器件,其中对所有所述存储器件应用所述分析和选择。
7.如权利要求1所述的集线器件,其中所述命令包括位于存储命令缓冲器中的待决将来命令。
8.如权利要求7所述的集线器件,其中库页面策略模块还将存储命令缓冲器中的待决将来命令重新排序,以改变将来的存取图案。
9.如权利要求1所述的集线器件,其中对所述分析的输入包括从存储控制器接收的提示。
10.如权利要求1所述的集线器件,其中所述分析包括使用连续页面存取计数器在开放库页面策略与闭合库页面策略之间进行选择。
11.一种用于选择库页面策略的方法,该方法包括:
检测从存储控制器送往一个或多个存储器件的命令;
分析所述命令来确定对所述存储器件的存取图案;以及
基于所述分析,对所述存储器件在开放库页面策略与闭合库页面策略之间进行动态地选择。
12.如权利要求11所述的方法,还包括在检测所述命令之前对所述存储器件选择闭合库页面策略。
13.如权利要求11所述的方法,还包括在检测所述命令之前对所述存储器件选择开放库页面策略。
14.如权利要求11所述的方法,还包括存取待决将来命令的存储命令缓冲器,其中所述待决将来命令被输入给所述分析。
15.如权利要求14所述的方法,还包括将存储命令缓冲器中的待决将来命令重新排序,以改变将来的存取图案。
16.如权利要求11所述的方法,其中所述分析包括:如果连续页面存取计数高于或等于阈值,则对所述存储器件选择开放库页面策略。
17.如权利要求11所述的方法,还包括从存储控制器接收存取提示,其中所述存取提示被输入给所述分析。
18.如权利要求11所述的方法,其中存取图案是读取存取图案。
19.如权利要求11所述的方法,其中对所述存储器件之一上的一个库应用所述分析和选择。
20.如权利要求11所述的方法,其中对所述存储器件之一应用的所述分析和选择独立于对所述存储器件中的另一个应用的所述分析和选择。
21.如权利要求11所述的方法,其中对所述存储器件之一中的一个库应用的所述分析和选择独立于对所述存储器件中的另一个库应用的所述分析和选择。
22.如权利要求11所述的方法,其中对所有所述存储器件应用所述分析和选择。
23.如权利要求11所述的方法,其中所述检测、选择和分析是在集线器件上执行的。
24.一种存储系统,包括:
存储控制器;
一个或多个存储器件;和
与所述存储控制器和存储器件通信的存储集线器件,所述存储集线器件包括:
输入命令流接口,用于检测从存储控制器送往存储器件的命令;和
库页面策略模块,用于独立地分析所述命令以确定对所述存储器件的存取图案,以及用于基于所述分析,对所述存储器件在开放库页面策略与闭合库页面策略之间进行动态地选择。
25.如权利要求24所述的存储系统,其中对所述存储器件之一上的一个库应用所述分析和选择。
26.如权利要求24所述的存储系统,其中对所述存储器件之一应用的所述分析和选择独立于对所述存储器件中的另一个应用的所述分析和选择。
27.如权利要求24所述的存储系统,其中对所述存储器件之一中的一个库应用的所述分析和选择独立于对所述存储器件中的另一库应用的所述分析和选择。
28.如权利要求24所述的存储系统,其中对所有所述存储器件应用所述分析和选择。
29.一种存储子系统,包括:
多个存储器件;和
存储集线器件,所述存储集线器件包括:
输入命令流接口,用于检测从存储控制器送往存储器件的命令;和
库页面策略模块,用于独立地分析所述命令以确定对所述存储器件的存取图案,以及用于基于所述分析,对所述存储器件在开放库页面策略与闭合库页面策略之间进行动态地选择。
30.如权利要求29所述的存储子系统,其中对所述存储器件之一上的一个库应用所述分析和选择。
31.如权利要求29所述的存储子系统,其中对所述存储器件之一应用的所述分析和选择独立于对所述存储器件中的另一个应用的所述分析和选择。
32.如权利要求29所述的存储子系统,其中对所述存储器件之一中的一个库应用的所述分析和选择独立于对所述存储器件中的另一库应用的所述分析和选择。
33.如权利要求29所述的存储子系统,其中对所有所述存储器件应用所述分析和选择。
34.一种用于接收和响应存储器存取请求的存储控制器,该存储控制器包括:
输入命令流接口,用于检测送往所选存储器件的命令;和
库页面策略模块,用于独立地分析所述命令以确定对所选存储器件的存取图案,以及用于基于所述分析,对所选存储器件在开放库页面策略与闭合库页面策略之间进行动态地选择。
35.如权利要求34所述的存储控制器,其中对所选存储器件之一上的一个库应用所述分析和选择。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/668,093 | 2007-01-29 | ||
US11/668,093 US7606988B2 (en) | 2007-01-29 | 2007-01-29 | Systems and methods for providing a dynamic memory bank page policy |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101236547A true CN101236547A (zh) | 2008-08-06 |
Family
ID=39669264
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2008100037636A Pending CN101236547A (zh) | 2007-01-29 | 2008-01-22 | 提供动态存储库页面策略的系统和方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7606988B2 (zh) |
CN (1) | CN101236547A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103136120A (zh) * | 2012-12-31 | 2013-06-05 | 北京北大众志微系统科技有限责任公司 | 行缓冲管理策略确定方法和装置、bank划分方法和装置 |
CN104346353A (zh) * | 2013-07-29 | 2015-02-11 | 国际商业机器公司 | 一种用于进行异步存取的方法和系统 |
CN104903962A (zh) * | 2013-01-08 | 2015-09-09 | 高通股份有限公司 | 具有自适应数量的打开行的存储器设备 |
CN106874106A (zh) * | 2016-12-23 | 2017-06-20 | 北京北大众志微系统科技有限责任公司 | 一种主存bank划分方法及装置 |
CN113168863A (zh) * | 2018-12-19 | 2021-07-23 | 美光科技公司 | 用于多库刷新时序的设备及方法 |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080282029A1 (en) * | 2007-05-09 | 2008-11-13 | Ganesh Balakrishnan | Structure for dynamic optimization of dynamic random access memory (dram) controller page policy |
US7761656B2 (en) * | 2007-08-22 | 2010-07-20 | Advanced Micro Devices, Inc. | Detection of speculative precharge |
US20090193187A1 (en) * | 2008-01-25 | 2009-07-30 | International Business Machines Corporation | Design structure for an embedded dram having multi-use refresh cycles |
US20090193186A1 (en) * | 2008-01-25 | 2009-07-30 | Barth Jr John E | Embedded dram having multi-use refresh cycles |
US8347020B2 (en) * | 2009-03-20 | 2013-01-01 | Qualcomm Incorporated | Memory access controller, systems, and methods for optimizing memory access times |
US20120059983A1 (en) * | 2010-09-03 | 2012-03-08 | David Wilkins Nellans | Predictor-based management of dram row-buffers |
US8615638B2 (en) * | 2010-10-08 | 2013-12-24 | Qualcomm Incorporated | Memory controllers, systems and methods for applying page management policies based on stream transaction information |
TWI552150B (zh) * | 2011-05-18 | 2016-10-01 | 半導體能源研究所股份有限公司 | 半導體儲存裝置 |
JP5759276B2 (ja) * | 2011-06-09 | 2015-08-05 | キヤノン株式会社 | 処理装置及び情報処理方法 |
US9336164B2 (en) * | 2012-10-04 | 2016-05-10 | Applied Micro Circuits Corporation | Scheduling memory banks based on memory access patterns |
US10181979B2 (en) * | 2012-11-09 | 2019-01-15 | California Institute Of Technology | Inter-network policy |
CN103384209B (zh) * | 2013-06-07 | 2017-02-22 | 曙光信息产业(北京)有限公司 | 一种Parastor200并行存储运行环境问题检查方法 |
US9378127B2 (en) * | 2013-06-21 | 2016-06-28 | Intel Corporation | Dynamic memory page policy |
US10169258B2 (en) * | 2015-06-09 | 2019-01-01 | Rambus Inc. | Memory system design using buffer(s) on a mother board |
US10942854B2 (en) | 2018-05-09 | 2021-03-09 | Micron Technology, Inc. | Prefetch management for memory |
US11010092B2 (en) * | 2018-05-09 | 2021-05-18 | Micron Technology, Inc. | Prefetch signaling in memory system or sub-system |
US10714159B2 (en) | 2018-05-09 | 2020-07-14 | Micron Technology, Inc. | Indication in memory system or sub-system of latency associated with performing an access command |
US10754578B2 (en) | 2018-05-09 | 2020-08-25 | Micron Technology, Inc. | Memory buffer management and bypass |
Family Cites Families (140)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
NL220449A (zh) | 1956-09-04 | |||
US3333253A (en) | 1965-02-01 | 1967-07-25 | Ibm | Serial-to-parallel and parallel-toserial buffer-converter using a core matrix |
US3395400A (en) | 1966-04-26 | 1968-07-30 | Bell Telephone Labor Inc | Serial to parallel data converter |
US4028675A (en) | 1973-05-14 | 1977-06-07 | Hewlett-Packard Company | Method and apparatus for refreshing semiconductor memories in multi-port and multi-module memory system |
US3825904A (en) | 1973-06-08 | 1974-07-23 | Ibm | Virtual memory system |
US4135240A (en) | 1973-07-09 | 1979-01-16 | Bell Telephone Laboratories, Incorporated | Protection of data file contents |
US4150428A (en) | 1974-11-18 | 1979-04-17 | Northern Electric Company Limited | Method for providing a substitute memory in a data processing system |
US4472780A (en) | 1981-09-28 | 1984-09-18 | The Boeing Company | Fly-by-wire lateral control system |
US4453215A (en) | 1981-10-01 | 1984-06-05 | Stratus Computer, Inc. | Central processing apparatus for fault-tolerant computing |
US4475194A (en) | 1982-03-30 | 1984-10-02 | International Business Machines Corporation | Dynamic replacement of defective memory words |
US4641263A (en) | 1982-05-17 | 1987-02-03 | Digital Associates Corporation | Controller system or emulating local parallel minicomputer/printer interface and transferring serial data to remote line printer |
US4486739A (en) | 1982-06-30 | 1984-12-04 | International Business Machines Corporation | Byte oriented DC balanced (0,4) 8B/10B partitioned block transmission code |
US4833605A (en) | 1984-08-16 | 1989-05-23 | Mitsubishi Denki Kabushiki Kaisha | Cascaded information processing module having operation unit, parallel port, and serial port for concurrent data transfer and data processing |
US4683555A (en) | 1985-01-22 | 1987-07-28 | Texas Instruments Incorporated | Serial accessed semiconductor memory with reconfigureable shift registers |
US4740916A (en) | 1985-12-19 | 1988-04-26 | International Business Machines Corporation | Reconfigurable contiguous address space memory system including serially connected variable capacity memory modules and a split address bus |
US4723120A (en) | 1986-01-14 | 1988-02-02 | International Business Machines Corporation | Method and apparatus for constructing and operating multipoint communication networks utilizing point-to point hardware and interfaces |
EP0269812B1 (de) | 1986-10-16 | 1991-02-06 | Siemens Aktiengesellschaft | Verfahren und Anordnung zur Versorgung einer Taktleitung mit einem von zwei Taktsignalen in Abhängigkeit vom Pegel eines der beiden Taktsignale |
JPS63231550A (ja) | 1987-03-19 | 1988-09-27 | Hitachi Ltd | 多重仮想空間制御方式 |
US4803485A (en) | 1987-03-23 | 1989-02-07 | Amp Incorporated | Lan communication system and medium adapter for use therewith |
US4943984A (en) | 1988-06-24 | 1990-07-24 | International Business Machines Corporation | Data processing system parallel data bus having a single oscillator clocking apparatus |
JP3038781B2 (ja) | 1989-04-21 | 2000-05-08 | 日本電気株式会社 | メモリアクセス制御回路 |
US5053947A (en) | 1989-09-29 | 1991-10-01 | Allegro Microsystems, Inc. | Extended multistation bus system and method |
US5206946A (en) | 1989-10-27 | 1993-04-27 | Sand Technology Systems Development, Inc. | Apparatus using converters, multiplexer and two latches to convert SCSI data into serial data and vice versa |
JP2724893B2 (ja) | 1989-12-28 | 1998-03-09 | 三菱電機株式会社 | 半導体集積回路装置 |
IL96808A (en) | 1990-04-18 | 1996-03-31 | Rambus Inc | Introductory / Origin Circuit Agreed Using High-Performance Brokerage |
US5517626A (en) | 1990-05-07 | 1996-05-14 | S3, Incorporated | Open high speed bus for microcomputer system |
GB2246494B (en) | 1990-05-25 | 1994-08-31 | Silicon Systems Inc | Method and apparatus for serial communications |
CA2045790A1 (en) | 1990-06-29 | 1991-12-30 | Richard Lee Sites | Branch prediction in high-performance processor |
CA2045789A1 (en) | 1990-06-29 | 1991-12-30 | Richard Lee Sites | Granularity hint for translation buffer in high performance processor |
US5357621A (en) | 1990-09-04 | 1994-10-18 | Hewlett-Packard Company | Serial architecture for memory module control |
US5522064A (en) | 1990-10-01 | 1996-05-28 | International Business Machines Corporation | Data processing apparatus for dynamically setting timings in a dynamic memory system |
US5287531A (en) | 1990-10-31 | 1994-02-15 | Compaq Computer Corp. | Daisy-chained serial shift register for determining configuration of removable circuit boards in a computer system |
US5214747A (en) | 1990-12-24 | 1993-05-25 | Eastman Kodak Company | Segmented neural network with daisy chain control |
JP2999845B2 (ja) | 1991-04-25 | 2000-01-17 | 沖電気工業株式会社 | シリアルアクセスメモリの倍速コントロール方式 |
FR2683924B1 (fr) * | 1991-11-18 | 1997-01-03 | Bull Sa | Memoire integree, son procede de gestion et systeme informatique en resultant. |
US5347270A (en) | 1991-12-27 | 1994-09-13 | Mitsubishi Denki Kabushiki Kaisha | Method of testing switches and switching circuit |
US5387911A (en) | 1992-02-21 | 1995-02-07 | Gleichert; Marc C. | Method and apparatus for transmitting and receiving both 8B/10B code and 10B/12B code in a switchable 8B/10B transmitter and receiver |
US5715407A (en) | 1992-03-06 | 1998-02-03 | Rambus, Inc. | Process and apparatus for collision detection on a parallel bus by monitoring a first line of the bus during even bus cycles for indications of overlapping packets |
US5375127A (en) | 1992-03-25 | 1994-12-20 | Ncr Corporation | Method and apparatus for generating Reed-Soloman error correcting code across multiple word boundaries |
US5265212A (en) | 1992-04-01 | 1993-11-23 | Digital Equipment Corporation | Sharing of bus access among multiple state machines with minimal wait time and prioritization of like cycle types |
EP0567707A1 (en) | 1992-04-30 | 1993-11-03 | International Business Machines Corporation | Implementation of column redundancy in a cache memory architecture |
US5270964A (en) | 1992-05-19 | 1993-12-14 | Sun Microsystems, Inc. | Single in-line memory module |
DE69331061T2 (de) | 1992-08-10 | 2002-06-06 | Monolithic System Tech Inc | Fehlertolerantes hierarchisiertes Bussystem |
US5594925A (en) | 1993-01-05 | 1997-01-14 | Texas Instruments Incorporated | Method and apparatus determining order and identity of subunits by inputting bit signals during first clock period and reading configuration signals during second clock period |
US5544309A (en) | 1993-04-22 | 1996-08-06 | International Business Machines Corporation | Data processing system with modified planar for boundary scan diagnostics |
JP3489147B2 (ja) | 1993-09-20 | 2004-01-19 | 株式会社日立製作所 | データ転送方式 |
DE69422678T2 (de) | 1993-10-12 | 2001-02-22 | Matsushita Electric Ind Co Ltd | Verschlüsselungssystem, Verschlüsselungsgerät und Entschlüsselungsgerät |
US5845310A (en) | 1993-12-15 | 1998-12-01 | Hewlett-Packard Co. | System and methods for performing cache latency diagnostics in scalable parallel processing architectures including calculating CPU idle time and counting number of cache misses |
US5822749A (en) | 1994-07-12 | 1998-10-13 | Sybase, Inc. | Database system with methods for improving query performance with cache optimization strategies |
JPH0887451A (ja) | 1994-09-09 | 1996-04-02 | Internatl Business Mach Corp <Ibm> | アドレス変換を管理する方法およびアドレス変換マネージャ |
US5611055A (en) | 1994-09-27 | 1997-03-11 | Novalink Technologies | Method and apparatus for implementing a PCMCIA auxiliary port connector for selectively communicating with peripheral devices |
US5475690A (en) | 1994-11-10 | 1995-12-12 | Digital Equipment Corporation | Delay compensated signal propagation |
US6170047B1 (en) | 1994-11-16 | 2001-01-02 | Interactive Silicon, Inc. | System and method for managing system memory and/or non-volatile memory using a memory controller with integrated compression and decompression capabilities |
US5513135A (en) | 1994-12-02 | 1996-04-30 | International Business Machines Corporation | Synchronous memory packaged in single/dual in-line memory module and method of fabrication |
JP3467880B2 (ja) | 1994-12-26 | 2003-11-17 | ソニー株式会社 | クロック信号発生装置 |
US5881154A (en) | 1995-01-17 | 1999-03-09 | Kokusai Denshin Denwa Co., Ltd. | Data scramble transmission system |
US5629685A (en) | 1995-02-23 | 1997-05-13 | International Business Machines Corporation | Segmentable addressable modular communication network hubs |
IN188196B (zh) | 1995-05-15 | 2002-08-31 | Silicon Graphics Inc | |
US5546023A (en) | 1995-06-26 | 1996-08-13 | Intel Corporation | Daisy chained clock distribution scheme |
US5852617A (en) | 1995-12-08 | 1998-12-22 | Samsung Electronics Co., Ltd. | Jtag testing of buses using plug-in cards with Jtag logic mounted thereon |
US5754804A (en) | 1996-01-30 | 1998-05-19 | International Business Machines Corporation | Method and system for managing system bus communications in a data processing system |
JPH09231130A (ja) | 1996-02-26 | 1997-09-05 | Mitsubishi Electric Corp | マイクロコンピュータ |
US5764155A (en) | 1996-04-03 | 1998-06-09 | General Electric Company | Dynamic data exchange server |
JP3710198B2 (ja) | 1996-04-18 | 2005-10-26 | 沖電気工業株式会社 | Stm−n信号の誤り訂正符号化・復号化方法、stm−n信号の誤り訂正符号化回路及びstm−n信号の誤り訂正復号化回路 |
US5661677A (en) | 1996-05-15 | 1997-08-26 | Micron Electronics, Inc. | Circuit and method for on-board programming of PRD Serial EEPROMS |
US5917760A (en) | 1996-09-20 | 1999-06-29 | Sldram, Inc. | De-skewing data signals in a memory system |
JPH10173122A (ja) | 1996-12-06 | 1998-06-26 | Mitsubishi Electric Corp | メモリモジュール |
US20020103988A1 (en) * | 1996-12-18 | 2002-08-01 | Pascal Dornier | Microprocessor with integrated interfaces to system memory and multiplexed input/output bus |
US5926838A (en) | 1997-03-19 | 1999-07-20 | Micron Electronics | Interface for high speed memory |
US5870320A (en) | 1997-06-23 | 1999-02-09 | Sun Microsystems, Inc. | Method for reducing a computational result to the range boundaries of a signed 16-bit integer in case of overflow |
US6138213A (en) | 1997-06-27 | 2000-10-24 | Advanced Micro Devices, Inc. | Cache including a prefetch way for storing prefetch cache lines and configured to move a prefetched cache line to a non-prefetch way upon access to the prefetched cache line |
US6292903B1 (en) | 1997-07-09 | 2001-09-18 | International Business Machines Corporation | Smart memory interface |
US6011732A (en) | 1997-08-20 | 2000-01-04 | Micron Technology, Inc. | Synchronous clock generator including a compound delay-locked loop |
US6128746A (en) | 1997-08-26 | 2000-10-03 | International Business Machines Corporation | Continuously powered mainstore for large memory subsystems |
US6230236B1 (en) | 1997-08-28 | 2001-05-08 | Nortel Networks Corporation | Content addressable memory system with cascaded memories and self timed signals |
JP3445476B2 (ja) | 1997-10-02 | 2003-09-08 | 株式会社東芝 | 半導体メモリシステム |
US6085276A (en) | 1997-10-24 | 2000-07-04 | Compaq Computers Corporation | Multi-processor computer system having a data switch with simultaneous insertion buffers for eliminating arbitration interdependencies |
US5917780A (en) | 1997-12-03 | 1999-06-29 | Daniel Robbins | Watch having a multiplicity of band attachment positions and wristband for use therewith |
US6145028A (en) | 1997-12-11 | 2000-11-07 | Ncr Corporation | Enhanced multi-pathing to an array of storage devices |
US7373440B2 (en) * | 1997-12-17 | 2008-05-13 | Src Computers, Inc. | Switch/network adapter port for clustered computers employing a chain of multi-adaptive processors in a dual in-line memory module format |
US7024518B2 (en) * | 1998-02-13 | 2006-04-04 | Intel Corporation | Dual-port buffer-to-memory interface |
US6198304B1 (en) | 1998-02-23 | 2001-03-06 | Xilinx, Inc. | Programmable logic device |
US6096091A (en) | 1998-02-24 | 2000-08-01 | Advanced Micro Devices, Inc. | Dynamically reconfigurable logic networks interconnected by fall-through FIFOs for flexible pipeline processing in a system-on-a-chip |
US6185718B1 (en) | 1998-02-27 | 2001-02-06 | International Business Machines Corporation | Memory card design with parity and ECC for non-parity and non-ECC systems |
US5959914A (en) | 1998-03-27 | 1999-09-28 | Lsi Logic Corporation | Memory controller with error correction memory test application |
US5870325A (en) | 1998-04-14 | 1999-02-09 | Silicon Graphics, Inc. | Memory system with multiple addressing and control busses |
US6173382B1 (en) * | 1998-04-28 | 2001-01-09 | International Business Machines Corporation | Dynamic configuration of memory module using modified presence detect data |
US6003121A (en) | 1998-05-18 | 1999-12-14 | Intel Corporation | Single and multiple channel memory detection and sizing |
JPH11353228A (ja) | 1998-06-10 | 1999-12-24 | Mitsubishi Electric Corp | メモリモジュールシステム |
US6170059B1 (en) | 1998-07-10 | 2001-01-02 | International Business Machines Corporation | Tracking memory modules within a computer system |
US6260127B1 (en) | 1998-07-13 | 2001-07-10 | Compaq Computer Corporation | Method and apparatus for supporting heterogeneous memory in computer systems |
US6587912B2 (en) * | 1998-09-30 | 2003-07-01 | Intel Corporation | Method and apparatus for implementing multiple memory buses on a memory module |
US5995405A (en) | 1998-10-27 | 1999-11-30 | Micron Technology, Inc. | Memory module with flexible serial presence detect configuration |
US6226729B1 (en) * | 1998-11-03 | 2001-05-01 | Intel Corporation | Method and apparatus for configuring and initializing a memory device and a memory channel |
US6233639B1 (en) | 1999-01-04 | 2001-05-15 | International Business Machines Corporation | Memory card utilizing two wire bus |
US6349390B1 (en) | 1999-01-04 | 2002-02-19 | International Business Machines Corporation | On-board scrubbing of soft errors memory module |
US6357018B1 (en) | 1999-01-26 | 2002-03-12 | Dell Usa, L.P. | Method and apparatus for determining continuity and integrity of a RAMBUS channel in a computer system |
US6115278A (en) | 1999-02-09 | 2000-09-05 | Silicon Graphics, Inc. | Memory system with switching for data isolation |
US6341315B1 (en) * | 1999-02-26 | 2002-01-22 | Crossroads Systems, Inc. | Streaming method and system for fiber channel network devices |
US6460107B1 (en) * | 1999-04-29 | 2002-10-01 | Intel Corporation | Integrated real-time performance monitoring facility |
US6425044B1 (en) * | 1999-07-13 | 2002-07-23 | Micron Technology, Inc. | Apparatus for providing fast memory decode using a bank conflict table |
US7017020B2 (en) * | 1999-07-16 | 2006-03-21 | Broadcom Corporation | Apparatus and method for optimizing access to memory |
US6393512B1 (en) * | 1999-09-27 | 2002-05-21 | Ati International Srl | Circuit and method for detecting bank conflicts in accessing adjacent banks |
US6262493B1 (en) | 1999-10-08 | 2001-07-17 | Sun Microsystems, Inc. | Providing standby power to field replaceable units for electronic systems |
JP2001167077A (ja) * | 1999-12-09 | 2001-06-22 | Nec Kofu Ltd | ネットワークシステムにおけるデータアクセス方法、ネットワークシステムおよび記録媒体 |
US6601149B1 (en) * | 1999-12-14 | 2003-07-29 | International Business Machines Corporation | Memory transaction monitoring system and user interface |
US6307789B1 (en) * | 1999-12-28 | 2001-10-23 | Intel Corporation | Scratchpad memory |
US6408398B1 (en) * | 1999-12-29 | 2002-06-18 | Intel Corporation | Method and apparatus for detecting time domains on a communication channel |
KR100575864B1 (ko) * | 1999-12-30 | 2006-05-03 | 주식회사 하이닉스반도체 | 램버스 디램 |
US6219288B1 (en) | 2000-03-03 | 2001-04-17 | International Business Machines Corporation | Memory having user programmable AC timings |
US6317352B1 (en) | 2000-09-18 | 2001-11-13 | Intel Corporation | Apparatus for implementing a buffered daisy chain connection between a memory controller and memory modules |
US6285172B1 (en) | 2000-11-13 | 2001-09-04 | Texas Instruments Incorporated | Digital phase-locked loop circuit with reduced phase jitter frequency |
US6590827B2 (en) * | 2000-11-21 | 2003-07-08 | Via Technologies, Inc. | Clock device for supporting multiplicity of memory module types |
US6834355B2 (en) * | 2000-12-15 | 2004-12-21 | Intel Corporation | Circuit in which the time delay of an input clock signal is dependent only on its logic phase width and a ratio of capacitances |
US6934785B2 (en) * | 2000-12-22 | 2005-08-23 | Micron Technology, Inc. | High speed interface with looped bus |
US6754762B1 (en) * | 2001-03-05 | 2004-06-22 | Honeywell International Inc. | Redundant bus switching |
US6882082B2 (en) * | 2001-03-13 | 2005-04-19 | Micron Technology, Inc. | Memory repeater |
CA2447555A1 (en) * | 2001-06-04 | 2002-12-12 | Nct Group, Inc. | System and method for increasing the effective bandwidth of a communications network |
US6675280B2 (en) * | 2001-11-30 | 2004-01-06 | Intel Corporation | Method and apparatus for identifying candidate virtual addresses in a content-aware prefetcher |
US6865646B2 (en) * | 2001-12-31 | 2005-03-08 | Intel Corporation | Segmented distributed memory module cache |
US6799241B2 (en) * | 2002-01-03 | 2004-09-28 | Intel Corporation | Method for dynamically adjusting a memory page closing policy |
US7133972B2 (en) * | 2002-06-07 | 2006-11-07 | Micron Technology, Inc. | Memory hub with internal cache and/or memory access prediction |
US6922658B2 (en) * | 2003-03-31 | 2005-07-26 | International Business Machines Corporation | Method and system for testing the validity of shared data in a multiprocessing system |
US7016213B2 (en) * | 2003-05-13 | 2006-03-21 | Advanced Micro Devices, Inc. | Method for initializing a system including a host and plurality of memory modules connected via a serial memory interconnect |
US7260685B2 (en) * | 2003-06-20 | 2007-08-21 | Micron Technology, Inc. | Memory hub and access method having internal prefetch buffers |
US7433258B2 (en) * | 2003-10-10 | 2008-10-07 | Datasecure Llc. | Posted precharge and multiple open-page RAM architecture |
US7177211B2 (en) * | 2003-11-13 | 2007-02-13 | Intel Corporation | Memory channel test fixture and method |
US7216196B2 (en) * | 2003-12-29 | 2007-05-08 | Micron Technology, Inc. | Memory hub and method for memory system performance monitoring |
US7321979B2 (en) * | 2004-01-22 | 2008-01-22 | International Business Machines Corporation | Method and apparatus to change the operating frequency of system core logic to maximize system memory bandwidth |
US7213082B2 (en) * | 2004-03-29 | 2007-05-01 | Micron Technology, Inc. | Memory hub and method for providing memory sequencing hints |
US7162567B2 (en) * | 2004-05-14 | 2007-01-09 | Micron Technology, Inc. | Memory hub and method for memory sequencing |
US8621304B2 (en) * | 2004-10-07 | 2013-12-31 | Hewlett-Packard Development Company, L.P. | Built-in self-test system and method for an integrated circuit |
US7360027B2 (en) * | 2004-10-15 | 2008-04-15 | Intel Corporation | Method and apparatus for initiating CPU data prefetches by an external agent |
US20060095679A1 (en) * | 2004-10-28 | 2006-05-04 | Edirisooriya Samantha J | Method and apparatus for pushing data into a processor cache |
US7331010B2 (en) * | 2004-10-29 | 2008-02-12 | International Business Machines Corporation | System, method and storage medium for providing fault detection and correction in a memory subsystem |
US20060161733A1 (en) * | 2005-01-19 | 2006-07-20 | Emulex Design & Manufacturing Corporation | Host buffer queues |
US20060168407A1 (en) * | 2005-01-26 | 2006-07-27 | Micron Technology, Inc. | Memory hub system and method having large virtual page size |
US20060195631A1 (en) * | 2005-01-31 | 2006-08-31 | Ramasubramanian Rajamani | Memory buffers for merging local data from memory modules |
US20070025304A1 (en) * | 2005-07-26 | 2007-02-01 | Rangsan Leelahakriengkrai | System and method for prioritizing transmission legs for precaching data |
US20080162807A1 (en) * | 2006-12-29 | 2008-07-03 | Rothman Michael A | Method and apparatus for redundant memory arrays |
-
2007
- 2007-01-29 US US11/668,093 patent/US7606988B2/en not_active Expired - Fee Related
-
2008
- 2008-01-22 CN CNA2008100037636A patent/CN101236547A/zh active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103136120A (zh) * | 2012-12-31 | 2013-06-05 | 北京北大众志微系统科技有限责任公司 | 行缓冲管理策略确定方法和装置、bank划分方法和装置 |
CN103136120B (zh) * | 2012-12-31 | 2016-01-27 | 北京北大众志微系统科技有限责任公司 | 行缓冲管理策略确定方法和装置、bank划分方法和装置 |
CN104903962A (zh) * | 2013-01-08 | 2015-09-09 | 高通股份有限公司 | 具有自适应数量的打开行的存储器设备 |
CN104903962B (zh) * | 2013-01-08 | 2017-08-25 | 高通股份有限公司 | 具有自适应数量的打开行的存储器设备 |
CN104346353A (zh) * | 2013-07-29 | 2015-02-11 | 国际商业机器公司 | 一种用于进行异步存取的方法和系统 |
CN106874106A (zh) * | 2016-12-23 | 2017-06-20 | 北京北大众志微系统科技有限责任公司 | 一种主存bank划分方法及装置 |
CN113168863A (zh) * | 2018-12-19 | 2021-07-23 | 美光科技公司 | 用于多库刷新时序的设备及方法 |
Also Published As
Publication number | Publication date |
---|---|
US20080183977A1 (en) | 2008-07-31 |
US7606988B2 (en) | 2009-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101236547A (zh) | 提供动态存储库页面策略的系统和方法 | |
CN101236540B (zh) | 选择预取模式的方法、集线器器件、存储器系统及子系统 | |
CN101410811B (zh) | 提供远程预取缓冲器的计算机存储器系统 | |
US7594055B2 (en) | Systems and methods for providing distributed technology independent memory controllers | |
CN101118782B (zh) | 存储和检索处理系统的数据的存储器系统和性能监视方法 | |
US7584336B2 (en) | Systems and methods for providing data modification operations in memory subsystems | |
US7581073B2 (en) | Systems and methods for providing distributed autonomous power management in a memory system | |
US7640386B2 (en) | Systems and methods for providing memory modules with multiple hub devices | |
US8151042B2 (en) | Method and system for providing identification tags in a memory system having indeterminate data response times | |
US7669086B2 (en) | Systems and methods for providing collision detection in a memory system | |
CN101217060B (zh) | 用于识别故障存储器元件的系统和方法 | |
US7529112B2 (en) | 276-Pin buffered memory module with enhanced fault tolerance and a performance-optimized pin assignment | |
US7952944B2 (en) | System for providing on-die termination of a control signal bus | |
CN104025060B (zh) | 支持近存储器和远存储器访问的存储器通道 | |
CN107111566B (zh) | 用于存储器模块的动态随机存取存储器(dram)部件 | |
US8015426B2 (en) | System and method for providing voltage power gating | |
CN102084341A (zh) | 用于在高速串行链路中使用的循环冗余码 | |
CN104916308B (zh) | 半导体器件 | |
US20220108743A1 (en) | Per bank refresh hazard avoidance for large scale memory | |
US20210279128A1 (en) | Buffer that supports burst transfers having parallel crc and data transmissions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20080806 |