CN101236540B - 选择预取模式的方法、集线器器件、存储器系统及子系统 - Google Patents

选择预取模式的方法、集线器器件、存储器系统及子系统 Download PDF

Info

Publication number
CN101236540B
CN101236540B CN2008100038963A CN200810003896A CN101236540B CN 101236540 B CN101236540 B CN 101236540B CN 2008100038963 A CN2008100038963 A CN 2008100038963A CN 200810003896 A CN200810003896 A CN 200810003896A CN 101236540 B CN101236540 B CN 101236540B
Authority
CN
China
Prior art keywords
storage component
memory
component part
looking ahead
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.)
Expired - Fee Related
Application number
CN2008100038963A
Other languages
English (en)
Other versions
CN101236540A (zh
Inventor
D·J·范斯蒂
K·C·高尔
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN101236540A publication Critical patent/CN101236540A/zh
Application granted granted Critical
Publication of CN101236540B publication Critical patent/CN101236540B/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

本发明涉及一种用于提供动态存储器预取的系统和方法。实施例包括一种集线器器件,该集线器器件包括输入命令流接口和自适应预取逻辑单元(APLU)。该输入命令流接口检测从存储器控制器导向与该集线器器件相连的一个或多个存储器器件的命令。该APLU独立地分析命令以确定对存储器器件的存取样式。该APLU还基于分析的结果动态地在针对存储器器件启动预取功能和停用预取功能之间做出选择。

Description

选择预取模式的方法、集线器器件、存储器系统及子系统
技术领域
本发明一般涉及计算机存储器,并且更特别地涉及提供动态存储器预取。
背景技术
现代高性能计算主存储器系统一般包括一个或多个动态随机存取存储器(DRAM)器件,动态随机存取存储器(DRAM)器件经由一个或多个存储器控制元件连接到一个或多个处理器。整体计算机系统性能受计算机结构中的每个关键元件的影响,其包括处理器的性能/结构、任何存储器高速缓存、输入/输出(I/O)子系统、存储器控制功能的效率、主存储器器件、以及存储器互连接口的类型和结构。
工业界持续地进行大量研究和开发努力来创建改善的和/或创新的解决方案以通过改进存储器系统/子系统的设计和/或结构来使整体系统性能和密度达到最大。由于客户期望新的计算机系统除了提供附加的功能、增强的性能、增大的存储装置、更低的成本等等之外还在平均故障时间(MTBF)方面明显超越现有系统,高可用性系统对整体系统可靠性提出了更进一步的挑战。其它常见的客户需求进一步加剧了对存储器系统设计的挑战,并且包括诸如易于升级和减小系统环境影响(诸如空间、功率和散热)之类的项目。
图1涉及与此共同转让的授予Dell等人的美国专利No.5513135,并且描绘了早期的同步存储器模块。图1中所描绘的存储器模块是双列直插式存储器模块(DIMM)。该模块包括同步DRAM 8、缓存器器件12、优化的管脚以及用以利于高性能操作的互连和电容性解耦合方法。该专利还描绘了通过使用诸如锁相环(PLL)之类的器件在该模块上使 用时钟重驱动(re-drive)。
图2涉及与此共同转让的授予Dell等人的美国专利No.6173382,并且描绘了计算机系统10,计算机系统10包括经由总线240直接(也即点到点)连接到存储器控制器14的同步存储器模块220,并且还包括对从存储器控制器14接收到的地址、数据和控制信息进行缓存、寄存或其它行为的逻辑电路24(诸如专用集成电路,或“ASIC”)。可以借助诸如集成电路间(I2C)控制总线34之类的独立总线,作为存储器初始化过程的一部分或者在正常操作期间,将存储器模块220编程为以多个可选的或可编程的模式操作。当在需要不止一个直接连接到存储器控制器的存储器模块的应用中使用该专利时,该专利注明可以通过使用场效应晶体管(FET)开关以电子地断开模块与总线的连接来使所得的分支线(stub)减到最短。
相对于美国专利No.5513135,美国专利No.6173382还展示了将所有限定的功能(地址、命令、数据、在线检测,等等)集成进单个器件的能力。对功能的集成是通过技术改进实现的常见的工业实践,并且在这种情况下实现了附加的模块密度和/或功能。
图3来自与此共同转让的授予Grundon等人的美国专利No.6510100,其描绘了存储器系统10的简化图和描述,存储器系统10包括在传统的多点分支线总线上的多至四个已注册的DIMM 40。该子系统包括存储器控制器20、外部时钟缓存器30、已注册的DIMM 40、地址总线50、控制总线60和数据总线70,其中终端95位于地址总线50和数据总线70上。虽然在图3中仅示出了单个存储器通道,但用这些模块制造的系统常包括不止一个来自存储器控制器的分立存储器通道,其中每个存储器通道单个地(当单个通道被组装有模块时)或者并行地(当两个或多个通道被组装有模块时)操作以实现预期的系统功能和/或性能。
图4来自与此共同转让的授予Bonella等人的美国专利No.6587912,其描绘了同步存储器模块410和系统结构,其中转发器集线器320包括:经由总线321和322将地址、命令和数据本地重驱动至本地存储器器件 301和302;生成本地时钟(如在其它图和专利正文中所描述那样);以及经由总线300将适当的存储器接口信号重驱动至系统中的下一个模块或部件。
图5描绘包括集成处理器芯片500的现代系统,该集成处理器芯片500包含一个或多个处理器元件和集成存储器控制器510。在图5所描绘的配置中,多个独立的级联互连的存储器总线506逻辑地聚集起来一致地操作以在更高的带宽上支持单个独立的存取请求,其中数据和错误检测/纠正信息分布或“划分(striped)”在并行总线和相关联的器件上。存储器控制器510附接到四个窄的/高速点到点存储器总线506,其中每个总线506将若干唯一的存储器控制器接口通道之一连接到级联互连的存储器子系统503(或存储器模块),存储器子系统503至少包括集线器器件504和一个或多个存储器器件509。某些系统还在存储器总线506的子集被组装有存储器子系统503时启动操作。在这种情况下,一个或多个已组装的存储器总线508可以一致地操作以支持单个存取请求。
图6描绘了存储器集线器器件504的框图,存储器集线器器件504包括链路接口604,用于提供将高速存储器存取信息重新同步、翻译并重驱动至相关联的DRAM器件509或者像基于存储器系统协议可应用的那样在存储器总线506上下行地重驱动信息的装置。信息是通过链路接口604经由存储器总线506从上游存储器集线器器件504或者从存储器控制器510(直接地或者经由上游存储器集线器器件504)接收的。存储器器件数据接口615管理接口到存储器器件509的专用技术数据接口并且控制双向存储器器件数据总线608。存储器集线器控制613响应于存取请求分组,相应地驱动存储器器件509的专用技术地址和控制总线614(用于第0排中的存储器器件501)或地址和控制总线614’(用于第1排中的存储器器件616)并且指导读数据流607和写数据流610选择器。
图6中的链路接口604解码分组并将原来导向本地集线器器件504的地址和命令信息导向存储器集线器控制613。来自链路接口604的存储器写数据可以临时存储在写数据队列611中或者经由写数据流选择器 610和内部总线612直接驱动至存储器器件509,并且接着经由内部总线609和存储器器件的数据接口615发送至存储器器件的数据总线608。来自存储器器件509的存储器读数据可以在读数据队列606中排队或者经由内部总线605和读数据选择器607直接传送至链路接口604,以在上行总线506上作为读应答分组传输。
在高性能存储器子系统设计中,期望在任何可能的时候都利用存储器总线上的最大可用带宽以使整体系统性能达到最大,并且也减小读命令的等待时间,从而任何给定的操作都可以在最小的时间量中完成。在工业界采用许多方法试图实现这些目标,这些方法包括使用很高性能的存储器器件、使用非常宽的存储器总线将存储器器件连接到存储器控制器、使用被放置到尽可能地靠近处理器和/或存储器控制器的一级或多级存储器高速缓存、基于系统设计和软件优化来使用或者簇(bank)开或簇闭页面策略、由存储器控制器来使用存储器预取算法,等等。尽管所有这些方法提供了多样化的整体系统性能好处,但是其中许多方法在整体系统成本、物理系统尺寸、系统电源/散热方面可以证明是非常昂贵的。
当前的主存储器系统解决方案可以在存储器控制器中使用“静态的”(例如不变的)预取算法,一旦系统运行在正常操作模式则该预取算法就不再改变。另外,响应于来自存储器控制器的明确命令,在存储器控制器电路中实现预取功能,其中存储器子系统充当从属器件。当前方法的另一特性是来自存储器子系统的存储器存取实际上是“确定性的”,因为与每个存储器操作相关联的时间演变可以由存储器控制器精确地预测,存储器控制器负责所有存储器操作从而没有任何数据损坏发生并且在正常操作期间满足所有存储器规范。
当前的静态方法的缺点包括这样的事实,即针对另一方法可能能够更好地服务的输入命令流,预取策略不能动态地进行改变(例如,当存储器系统正运行在正常操作模式中)。在计算机存储器系统中,可能是这样的:通过使用预取功能,某些类型的命令流被更好地服务,而其它流涉及更随机的存储器地址并且将不会从存储器预取中受益。在随机存储器地址的情况下,由于预取功能可产生增加的存储器存取和总线流量 的原因,使用预取功能实际上可能妨碍针对命令流的整体性能。期望能够基于对存储器集线器器件处所接收到的输入命令流的分析,动态地在使用预取功能和不使用预取功能之间进行切换。
发明内容
实施例包括一种集线器器件,该集线器器件包括输入命令流接口和自适应预取逻辑单元(APLU)。输入命令流接口检测从存储器控制器导向与集线器器件相连的一个或多个存储器器件的命令。APLU独立地分析命令以确定对存储器器件的存取样式。APLU还基于分析的结果动态地在针对存储器器件启动预取功能和停用预取功能之间做出选择。
实施例还包括一种用于选择预取模式的方法。该方法包括检测从存储器控制器导向与集线器器件相连的一个或多个存储器器件的命令。分析该命令以确定对存储器器件的存取样式。基于分析的结果动态地在针对存储器器件启动预取功能和停用预取功能之间做出选择。
实施例还包括一种存储器系统,该存储器系统包括存储器控制器、一个或多个存储器器件以及存储器集线器器件。存储器集线器器件与存储器控制器和存储器器件进行通信。存储器集线器器件包括输入命令流接口和APLU。输入命令流接口检测从存储器控制器导向存储器器件的命令。APLU独立地分析命令以确定对存储器器件的存取样式。APLU还基于所述分析的结果动态地在针对存储器器件启动预取功能和停用预取功能之间做出选择。
另外的实施例还包括一种存储器子系统,该存储器子系统包括一个或多个存储器器件和存储器集线器器件。该存储器集线器器件包括输入命令流接口和APLU。输入命令流接口检测从存储器控制器导向存储器器件的命令。APLU独立地分析命令以确定对存储器器件的存取样式。APLU还基于所述分析的结果动态地在针对存储器器件启动预取功能和停用预取功能之间做出选择。
当浏览以下附图和详细描述时,本领域的普通技术人员将明白根据各实施例的其它系统、方法和/或计算机程序产品。它的主旨在于所有这 种附加系统、方法和/或计算机程序产品都应当被包括在这种描述内,属于本发明的范围,并且由所附权利要求书保护。
附图说明
现在,参考各图,其中在若干图中对相同的元件进行相同地编号:
图1描绘了示例性的早期的同步存储器模块;
图2描绘了具有直接连接到存储器控制器的全缓存的同步存储器模块的示例性计算机系统;
图3描绘了具有单个传统多点分支线总线的示例性存储器系统;
图4描绘了全缓存的同步存储器模块和系统结构,其中该全缓存的同步存储器模块包括转发器功能;
图5描绘了包括多个独立级联互连存储器接口总线的计算机存储器系统的框图,该多个独立级联互连存储器接口总线一致地操作以支持单个数据存取请求;
图6是存储器子系统中的示例性集线器器件的框图;
图7是示例性实施例可实现的包括自适应预取逻辑单元的示例性集线器器件的框图;以及
图8包括图8A和图8B,并且描绘了示例性实施例可实现的处理流程。
具体实施方式
示例性实施例可用于减少存储器系统的等待时间,这是通过以下方式来实现的:使用预测技术在需要存储器子系统中的数据之前读取这些数据,并且基于预取对当前的输入命令流是否有利的评估来动态地激活(此处也称为启动)预取功能或去激活(此处也称为停用)预取功能。虽然存储器预取已经用在存储器体系的各种级别中,但当与主存储器相关联时,常是一直被启动或者一直被停用的静态功能。存储器预取的使用将更多的功率消耗引入存储器子系统503,并且使用存储器总线将预取数据传输给存储器控制器510。由此,期望仅在高度相信预取的数据 将是有用的时候才启动预取功能,否则整体系统性能将受损害。使用其中预取功能位于存储器集线器器件504上的示例性实施例,由于不需要由存储器控制器510发出预取请求,可以导致整体存储器功率节省。另外,在下行存储器总线506上更多的带宽可用于其它目的。在其它实施例中,由于减少了下行总线的活动,在设计阶段期间下行存储器总线管脚数稍有减少。
图7是示例性实施例可以利用的示例性存储器集线器器件504的框图。图7中的集线器器件708完成与上面参照图6所描述的功能相同的功能,还完成经由输入命令流接口706、自适应预取逻辑单元702(APLU)和一个或多个预取缓存器704执行动态预取功能的附加功能。图7中所描绘的集线器器件708包括输入命令流接口706,用于检测来自存储器控制器510的导向与集线器器件708相连的一个或多个存储器器件509的命令。集线器器件708还包括APLU702,用于独立地分析命令以确定对存储器器件509的存取样式,以及用于基于分析结果动态地在针对存储器器件509启动预取功能和停用预取功能之间做出选择。
如此处所使用,短语APLU702(“自适应预取逻辑单元”)是指用来控制启动/停用本地(例如在集线器器件708处)发起的存储器预取的电路和/或软件。APLU702分析输入命令流以寻找存取样式并且它接着基于分析结果来启动/停用预取功能。APLU702内的电路和/或软件基于一个或多个算法来预测与下一个命令相关联的地址,包括寄存器以记录以前的和当前的读命令的地址,以及包括预取启动计数器以确定是否应当针对APLU702正跟踪的(或者正对应于APLU702的)存储器器件509(例如,一个或多个存储器器件509上的所有簇、存储器器件509上的一个或多个簇)启动存储器预取。如此处所使用,短语“预取启动计数器”是指APLU702所拥有的用于跟踪APLU702已经正确预测下一个地址的次数的计数器。在示例性实施例中,当APLU702正确预测下一个地址时,预取启动计数器就递增,并且当APLU702没有正确预测下一个地址时,预取启动计数器就递减。因此,预取启动计数器是对预测的准确度的测量。如此处所使用,短语“停用预取阈值”是指这样 的可编程值,当预取计数器达到该值时导致预取功能被停用。如此处所使用,短语“启动预取阈值”是指这样的可编程值,当预取计数器达到该值时导致预取功能被启动。
在示例性实施例中,存储器集线器控制713监视输入命令流(例如经由输入命令流接口706)并传递已解码的命令(例如经由存储器总线506接收的命令)给APLU702中的命令流缓存器(或寄存器),该命令流缓存器存储当前的命令信息(地址和命令类型中的至少一部分中的一个或多个)。接着,APLU702中的逻辑考虑到其它近期的命令活动(例如存储在命令流缓存器中的以前的命令),分析该命令以寻找存取样式,从而确定最佳的预取模式。输入命令流被存入其中并由其监视的APLU702可以被多次复制,其中示例性实施例的范围是从操作在整个存储器上的单个APLU702到每个均操作在存储器子系统中的最小可选部分(例如存储器簇)上的一个或多个单元。在具有多个APLU702的示例性实施例中,基于命令所关联的地址将命令导向对应的APLU702。在示例性实施例中,所选的预取模式被通信传输给存储器集线器控制713,而存储器集线器控制713在存取存储器器件509时应用所选的预取模式。
为了便于描述,此处所描述的示例性实施例涉及针对一个算法和一个簇来实现的APLU702,然而它可以被复制以独立地控制存储器子系统503中的所有簇。在此处所描述的例子中,缺省地预取功能被停用(也即,预取模式被停用)。可以基于集线器器件708处所接收的输入命令流来实现现有技术中所公知的独立于所控制的存储器的大小的预取算法以确定最优的预取模式。可用于确定是否应当启动预取模式的簇算法的例子是基于以前的存取的行跨距(stride)来生成“下一个地址”。通过保存以前的行地址,接着计算以前的行地址和当前的行地址之间的差值,以及通过将以前的行地址和当前的行地址之间的差值加到当前的行地址上来计算该跨距。这可以表示为:
下一个行地址=当前的行地址+(当前的行地址-以前的行地址)。
图8针对APLU702的操作描绘了该算法的示例性使用。图8中所描绘的过程是独立地(例如在集线器器件708处)分析命令以确定存取样式以及动态地在启动和停用预取功能之间做出选择的示例性实施例。图8已经被分解成两个图表,并包括框图8A中的框802-818和图8B中的框820-842。图8A和8B此处被统称为图8。在示例性实施例中,预取功能是本地的,因为启动它的判决是在集线器器件708处做出的。图8描述了用于选择APLU702可实现的预取模式的示例性方法。该方法包括检测从存储器控制器510(例如经由输入命令流接口706)导向与集线器器件708附接的一个或多个存储器器件509的命令。这些命令被分析以确定对存储器器件509的存取样式。接着,APLU702基于分析结果动态地在针对存储器器件509的启动预取功能和停用预取功能之间做出选择。
在图8中的框802处,集线器器件708经由例如输入命令流接口706来监视与该子系统中的存储器器件相关联的存储器总线命令流。在示例性实施例中,输入命令流接口706“调查”输入命令流并将已解码的命令和地址传输到APLU702。在另一示例性实施例中,在向存储器集线器控制713传输已由链路接口604解码的地址和命令信息时,输入命令流接口706监视这些地址和命令信息。在其它示例性实施例中,命令流接口706使用来自位于存储器集线器控制713中正在“调查”输入命令流的模块的输出。输入命令流接口706可以位于存储器控制713中或者位于APLU702内。
当如框804所确定的那样收到命令时,完成框806以确定用于集线器器件708的“主预取启动”开关是否已经被设置。如果主预取启动开关已经被设置,则存储器子系统被启动在预取模式和非预取模式之间进动作态地切换,以及由此在集线器器件708上的预取缓存器704可包含先前在集线器器件708的指导下读取的预取数据。如果如框806处所确定的那样主预取启动模式还没启动,则不采取与预取电路(例如APLU702和预取缓存器704)相关联的任何动作。在示例性实施例中,当主预取启动模式还没启动时(也即主预取启动模式还没被设置),预取电 路保留在低功率状态以使存储器子系统功率消耗减到最小。
在示例性实施例中,在启动“主预取启动”开关(其可以在系统初始化期间或者在系统操作期间的任何其它点处进行设置)之前,复位预取缓存器704、APLU702和其它相关的预取电路,从而在该时刻之后接收的任何命令被恰当地执行并且数据完整性被维持。如果如框806处所确定的那样主预取启动开关已经被设置,则完成框808以确定该命令是否是读命令。如果它不是读命令,则完成框810以确定该命令是否是写命令。如果该命令不是读命令也不是写命令,则预取电路不受该命令的影响,并且处理在框802处继续进行,其中针对另外的命令来监视命令流。
如果如框810中所确定的那样该命令是写命令,则在框812处检查写命令的地址,以确定它是否匹配预取缓存器704中的任何读数据的地址。如果匹配,则完成框814并且用新数据重写针对该地址的预取缓存器704中的内容。在另一示例性实施例中,使预取缓存器704中的内容失效,通常通过设置一个或多个标签比特以反映该状态,或者通过将与存储位置相关联的地址设置到复位(例如零)状态,。
如果如框808中所确定的那样该命令是读命令,则完成框816并且读命令被发送到与读操作的地址相关联的APLU702(在这个例子中,基于每个簇来实现APLU电路)。在框818处,APLU702基于APLU算法来计算下一个地址(此处也称为未来的命令的预期地址),并且该地址和当前的地址被存储在寄存器中供APLU702在分析后续的存储器存取中用来确定存取样式是否存在。如果如框820中所确定的那样针对该APLU702启动了动态预取,则完成框830并且在下一个地址处的读作为低优先级读排队等待,供可能的执行。在示例性实施例中,预取命令的优先级低于在输入通道存储器总线506上接收到的主线芯片命令的优先级,并且在存储器集线器控制713所处理的命令中存在优先级指示符。
在框802处,确定当前地址是否匹配来自APLU702的预测地址。如果它不匹配预测地址,则完成框824并且APLU702的预取启动计数 器递减,除非它位于0(此刻它停留在0)。如果如在框826处所确定的那样预取启动计数器小于或等于停用预取阈值,则在框828处停用该APLU702的预取。接着,处理在框802处继续进行并且APLU702等待寻址到它的下一个读命令。
在示例性实施例中,不管是否接收到一个或多个中间的和无关的存取,对一个或多个不遵循与当前正被检测的以及对其发出预取的地址样式(例如跨距地址样式)相一致的存取样式的读存取的接收,将不妨碍APLU702稍后继续检测存储器存取样式。“跨距中断”计数器用来对紧随在由于预取计数器达到或超过预取阈值的原因启动动态预取之后的无关读操作的次数进行计数。如果在预取启动计数器达到可编程计数阈值之前接收到与以前所存储的“下一个读地址”相一致的命令,则将继续进行对与以前所检测的存取样式相一致的地址的预取。在示例性实施例中,跨距中断计数器深度与“当前”和“下一个地址”寄存器的深度相一致,从而在接收到与该存取样式相一致的命令时可以继续先前的预取存取样式。在另一示例性实施例中,当动态预取被启动时,一旦接收到预定数目(例如2、4、8等等)的无关存取,就使用“预测地址失败限度计数器”来立即停用动态预取模式并且/或者将预取计数器复位到低于预取启动阈值的值。
如果在框822处确定来自当前读命令的地址匹配来自先前读命令的预测(计算的)读地址,则在框832处预取启动计数器递增。如果在框834处确定启动了动态预取模式,则完成框836以将当前读命令与预取缓存器704中的对应的数据进行匹配。在其它示例性实施例中,在当前没有启动预取功能的情况下检查预取缓存器704中的内容,因为与以前的存取相关的预取可能已经完成了,并且预取缓存器704可以包含从以前的命令得到的一个或多个预取。在框838处,取消当前读命令(这不影响使用由APLU702所计算的“下一个地址”的任何待处理预取)。如果数据不在预取缓存器704中,则发出“当前”读命令,紧随着(以较低的优先级)是使用来自APLU702的“下一个地址”的预取命令。无论动态预取模式是否启动,完成框840,其中检查预取启动计数以弄 清楚它是否大于或等于启动阈值。如果它大于或等于启动阈值,则完成框842并且启动动态预取模式。接着,处理在框802处继续进行并且APLU702等待寻址到它的下一个读命令。
在示例性实施例中,预取缓存器704的大小将决定用来使更早的预取缓存器项失效的方法。具有可变缓存器大小的示例性实施例在接收到停用动态预取模式的命令时,使预取缓存器704中的内容失效。其它示例性实施例包括固定大小的预取缓存器704,其除了地址信息和指示预取缓存器704中的内容是否有效的标签之外还保留着预取计数(例如8)。一旦8个缓存器位置被填满,则第九个预取将替代预取缓存器704中的最老的项,预取缓存器704可以实现成FIFO储存器件,并且当更多的预取发生时该过程将继续进行。在示例性实施例中,在接收到对该地址的写操作时,如果不用该写数据来重写该地址的数据,则将该标签设置成“无效”。在示例性实施例中,在测试模式期间,当在存储器复位期间确定了数据错误时(诸如经由对数据的本地ECC检查),或其它模式中,使该标签失效。另外的示例性实施例中,一旦当前读命令已经读取了内容,就使缓存器项失效,由此持续释放缓存器空间。
以下描述旨在作为对等跨距地址(strided address)的读命令序列的例子,其与用于检测和预测等跨距地址或者确定存取样式的APLU分析算法相关联,在集线器器件708接收到若干读命令之后得到预取缓存器匹配。
第一个命令)接收针对地址“n”(为了简化起见,这是在初始化之后的第一个读命令)的读命令。动态预取未启动,预取启动计数器位于0,并且针对地址“n”执行读。基于缺省跨距值计算“下一个地址”。如框818所描述的那样,当前地址和预测地址存储在寄存器中。
第二个命令)接收针对地址“n+m”的读命令。APLU逻辑计算跨距地址“m”,接着计算下一个地址“n+m+m”(n+2m)并存储它。动态预取未启动,当前读与由先前的读所预测的“下一个地址”不匹配(因为该算法没有任何计算它的可行方法),因此预取计数器未递增。针对地址“n+m”执行读。
第三个命令)接收针对地址“n+2m”的读命令。APLU逻辑再次计算跨距地址“m”,接着计算下一个地址“n+3m”。此刻,启动预取计数器递增,因为在当前地址与先前所计算的“下一个地址”之间存在匹配。如果预取启动阈值被设置为1(可编程值),则该阈值被满足并且针对“n+3m”的预取将被安排在低优先级(例如,在执行已接收的读命令之后,其将具有优先级)。针对“n+2m”执行当前读并且随后执行对“n+3m”的预取。
第四个命令)接收针对“n+3m”的读命令。APLU逻辑再次计算跨距地址“m”,接着计算下一个地址“n+4m”。预取启动计数器递增,因为在当前地址与先前所计算的“下一个地址”之间存在匹配,并且如果启动预取计数器阈值被满足,则安排(在低优先级上)针对地址“n+4m”的预取。与此同时,在预取缓存器中找到“n+3m”的内容(因为第三个命令所发起的预取已经完成),因此取消针对当前地址“n+3m”的读。发出对“n+4m”的预取。
只要接收到与跨距距离“n”相一致的读请求,就将发生对下一个地址的预取,并且如果在接收到下一个地址之前已经完成了预取就可以在预取缓存器704中找到当前读请求。在示例性实施例中,如果针对当前读命令之后所请求的地址所安排的预取已经被发起但还未完成,则对预取命令的响应将由当前读命令使用。如果还没有将预取命令发送给存储器,则预取命令将被取消,并且当前读命令将被正常处理。
在其它示例性实施例中,一旦已经检测到等跨距的命令流,则将通过完成不止一个预取来获得更高的效率。在完成预取命令之前接收到下一个等跨距的读命令的情况下,这尤其重要。在这种情况下,APLU702将计算两个或更多的下一个读地址,并且顺次安排它们中的每一个以尝试针对等跨距的读命令使整体存储器性能达到最大。在上面的例子中,当接收到第三个命令时,因为知道已经接收到具有公共跨距长度(m)的第三个命令,APLU702将发出不止一个预取(例如发出针对至少“n+3m”和“n+4m”的预取),并且或者在该时刻处或者在已经一次或多次额外地确认该跨距的条件下,可以进一步增加预取计数。
虽然APLU预取引擎的粒度可以实现为高达每个算法每个簇,但是还可以基于每个簇、或每个存储器器件、或每个集线器来实现。APLU电路中的一部分可以由一个或多个APLU引擎共享,APLU引擎包括一个或多个命令响应和解码逻辑(例如如图8中所描述)以及对共享的预取缓存器存储器的使用。
当预取启动时,所预取的数据被存储在预取缓存器704中,其将还包括针对已预取数据的被存取的地址的至少一部分。地址匹配被用作用来确定当前读命令是否匹配预取缓存器704中的内容的示例性方法。在示例性实施例中,为了维持预取缓存器的一致性,对预取缓存器704中存在的地址的写命令将重写与该地址相关联的数据。
示例性实施例包括使用与至存储器控制器510的所有存储器读转移相关联的“标签”比特,从而可以比在常规存储器子系统结构中所预期的时间较早或较晚地将存储器数据返回给存储器控制器510。另外,标签比特可用于标识不是由存储器控制器510请求的而是由存储器子系统503基于本地算法来预取的存储器存取,该存取可以在也可以不在存储器控制器510的直接或间接控制之下。该标签比特包括足够的信息以由存储器控制器510进行储器存取与存储器请求的匹配。在示例性实施例中,标签比特包括与存储器存取相关联的整个地址,而在替代性的示例性实施例中,地址的子集就足够了。与此共同转让的在2006年5月22所提交的美国专利申请No.11/419586中描述了使用标签比特的例子,在此通过引用并入其全部内容。
图8描绘了可以完成(在集线器器件处)以确定何时启动/停用预取功能的示例性分析。还可以在集线器器件处实现其它分析方法,只要可以基于集线器器件可存取的信息来完成该分析就行。现有技术中存在许多公知的预取分析方法,并且在不偏离此处所描述的本发明的范围的条件下可以利用这些方法中的任何一个。
在其它示例性实施例中,在存储器控制器510中实现此处所描述的功能,并且基于存储器控制器510所使用的算法该预取模式的设置是动态的,以及存储器控制器510或者借助通过存储器总线506发送给集线 器的命令,或者借助诸如SMBus以及I2C总线或允许在存储器控制器510和/或集成处理器与集线器器件504之间进行通信的另外的总线之类的第二(更低速度)总线,来修改集线器操作模式。
示例性实施例包括计算系统,其中处理器和I/O单元(例如请求器)与包含存储器控制器和存储器器件的存储器系统互连。在示例性实施例中,存储器系统包括与一组集线器器件(也称为“集线器芯片”)接口连接的处理器或者存储器控制器。集线器器件连接并接口到存储器器件。在示例性实施例中,计算机存储器系统包括具有多个存储器器件的物理存储器阵列,用于存储数据和指令。这些存储器器件可以直接连接到存储器控制器和/或通过集线器器件间接耦合到存储器控制器。在示例性实施例中,基于集线器的计算机存储器系统具有附连到通信集线器器件的存储器器件,该通信集线器器件与存储器控制器件(例如存储器控制器)相连。同样,在示例性实施例中,集线器器件位于存储器模块(例如,单个基底或物理器件)上,该存储器模块包括经由存储器总线彼此(并且可能与位于另一存储器模块上的另一集线器器件)级联互连的两个或多个集线器器件。
集线器器件可以通过多点或点到点总线结构连接到存储器控制器(该总线结构还可包括至一个或多个另外的集线器器件的级联连接)。存储器控制器将存储器存取请求通过总线结构(例如存储器总线)传输到所选的集线器。响应于接收到存储器存取请求,集线器器件翻译存储器存取请求以控制存储器器件存储来自集线器器件的写数据或提供读数据给集线器器件。读数据被编码进一个或多个通信分组并通过存储器总线传输给存储器控制器。
在替代性的示例性实施例中,存储器控制器可以与一个或多个处理器芯片和支持逻辑集成在一起,封装在分立的芯片(通常被称为“北桥”芯片)中,包括在具有一个或多个处理器和/或支持逻辑的多芯片载体中,或封装在最佳地匹配应用/环境的各种替代形式中。这些解决方案中的任何一种可以使用或不使用一个或多个窄/高速链路来连接到一个或多个集线器芯片和/或存储器器件。
存储器模块可以通过包括DIMM、单列直插式存储器模块(SIMM)和/或其它存储器模块或卡结构的各种技术来实现。通常,DIMM是指这样的小型电路板,其主要包括位于一侧或两侧上的随机存取存储器(RAM)集成电路或管芯,其中在该电路板的两侧上具有信号和/或电源管脚。这可以与SIMM形成对比,SIMM是主要包括在一侧和两侧上的RAM集成电路或管芯以及沿着一个长边沿的单行管脚的小型电路板或基底。在示例性实施例中,图1中所描绘的DIMM包括168个管脚,而后续的DIMM已经被构建成具有的管脚数从100管脚到超过300个管脚。在示例性实施例中,存储器模块可以包括两个或多个集线器器件。
在示例性实施例中,使用至存储器模块上的集线器器件的多点连接以及/或者通过使用点到点连接来构建存储器总线。被称为下行总线的控制器接口(或存储器总线)的下行部分可以包括被发送给存储器模块上的集线器器件的命令、地址、数据和其它操作、初始化或状态信息。在示例性实施例中,下行存储器总线将存储器控制器连接到集线器器件,或者将集线器器件连接到远离存储器控制器的另一集线器器件。每个集线器器件可以经由旁路电路简单地转发信息至后续的集线器器件;在确定了信息的目标是下游集线器器件的条件下接收、解释并重驱动该信息;重驱动该信息中的某些或所有而无需首先解释信息以确定所期望的接收者;或者执行这些可选项的子集或组合。在示例性实施例中,下行总线具有用来控制存储器系统的协议。
被称为上行总线的存储器总线中的上行部分返回所请求的读数据和/或错误、状态或其它操作信息,并且该信息可以经由旁路电路转发到后续的集线器器件;在确定了信息的目标是处理器复合体中的上游器件和/或存储器控制器的条件下接收、解释并重驱动该信息;将信息部分地或整体地重驱动而无需首先解释信息以确定所期望的接收者;或者完成这些选项的子集或组合。在示例性实施例中,上行总线具有用来接收来自存储器系统的响应的协议。
在替代性的示例性实施例中,点到点总线包括开关或旁路机制,其导致总线信息在下行通信(从存储器控制器传递至存储器模块上的集线 器器件的通信)期间被导向两个或多个可能的集线器器件中的一个,也常常借助一个或多个上游集线器器件导向上行信息(从存储器模块上的集线器器件至存储器控制器的通信)。另外的实施例包括使用诸如现有技术中所认识到的那些连续性模块,例如该连续性模块在级联互连的存储器系统中可以位于存储器控制器与第一已组装的集线器器件(也即与一个或多个存储器器件进行通信的集线器器件)之间,从而在存储器控制器与第一已组装的集线器器件之间的任何中间集线器器件位置包括可以接收经由其在存储器控制器与第一已组装的集线器器件之间传递的信息的装置,即使一个或多个中间集线器器件位置不包括集线器器件。该连续性模块可以安装在任何模块位置,服从任何总线限制,包括第一位置(最靠近主存储器控制器)、最后的位置(在任何所包括的终端之前)或任何中间位置。在多模块级联互连总线结构中使用连续性模块还可能特别有益,在该结构中存储器模块上的中间集线器器件被移除并由连续性模块所替代,从而该系统在移除中间集线器器件之后继续操作。在更常见的实施例中,连续性模块将或者包括互连导线以将来自输入的所有需要的信号传送给对应的输出,或者通过转发器器件进行重驱动。该连续性模块还可以包括非易失性储存器件(诸如EEPROM),但是将不包括主存储器储存器件。
在示例性实施例中,存储器系统包括经由级联互连的存储器总线连接到存储器控制器的一个或多个存储器模块上的一个或多个集线器器件,然而也可以实现诸如点到点总线、多点存储器总线或共享总线之类的其它存储器结构。依赖于所使用的信令方法,目标操作频率、空间、功率、成本和其它约束,可以考虑各种替代性总线结构。由于与具有分支信号线、开关器件或分支线的总线结构相比可能出现信号衰减减小,点到点总线在用电连接生成的系统中可以提供最佳性能。然而,在需要与多个器件或子系统通信的系统中使用时,这种方法常常产生极大的额外部件成本和增加的系统功率,并且由于需要中间缓存和/或重驱动可能减小可能的存储器密度。
虽然未在图中示出,存储器模块或集线器器件还可以包括单独的总 线,诸如“在线检测”总线、I2C总线和/或SMBus,其被用于一个或多个目的,包括确定集线器器件和/或存储器模块属性(一般在上电之后)、汇报故障或状态信息给系统、在上电之后或在正常操作期间配置集线器器件和/或存储器子系统或者其它目的。依赖于总线特性,该总线还可以提供集线器器件和/或存储器模块可以通过其将有效的操作完成汇报给存储器控制器的装置,或者对在执行主存储器控制器请求期间发生的故障的识别。
通过添加开关器件可以获得与从点到点总线结构获得的那些性能相类似的性能。这些以及其它解决方案以更低的功率提供了增加的存储器封装密度,同时保留了点到点总线的许多特性。多点总线提供替代性的解决方案,该解决方案虽然常限于较低的操作频率,但是在成本/性能方面其可能对许多应用是有利的。无论在点到点应用或在多点应用中,光总线解决方案允许使用极大地增长的频率和可能的带宽,但是可能带来成本和空间的影响。
如此处所使用,术语“缓存器”或“缓存器器件”是指临时存储单元(其在计算机中),特别是指以一个速率接收信息并以另一速率递送信息的临时存储单元。在示例性实施例中,缓存器是在两个信号(例如,改变电平或电流能力)之间提供兼容性的电子器件。术语“集线器”有时可与术语“缓存器”互换使用。集线器是一种包含连接到若干其它器件的多个端口的器件。端口是用作适合的I/O功能的接口的一部分(例如,端口可用于在点到点链路或总线中的一个上发送和接收数据、地址以及控制信息)。集线器可以是中央器件,其将若干系统、子系统或网络连接到一起。无源集线器可以仅转发消息,而有源集线器或转发器放大并刷新数据流,数据流否则会随距离而恶化。如此处所使用,术语集线器器件是指包括用于完成存储器功能的逻辑(硬件和/或软件)的集线器芯片。
如此处所使用,术语“总线”是指连接计算机中的两个或多个功能单元的导体集之一(例如,导线、印刷电路板迹线或集成电路中的连接)。不论它们的名字如何,数据总线、地址总线和控制信号构成了单个总线, 因为在没有其他总线的条件下每个总线经常是无用的。总线可包括多个信号线,每个信号线具有两个或多个连接点,这多个信号线形成了电连接两个或多个收发器、发射器和/或接收器的主传输通路。术语“总线”与术语“通道”相对照,“通道”常用于描述与存储器系统中的存储器控制器相关的“端口”的功能,并且其可以包括一个或多个总线或总线集。如此处所使用,术语“通道”是指存储器控制器上的端口。注意,该术语常与I/O或其它外围设备结合起来使用,然而术语通道已被某些人采纳用来描述在处理器或存储器控制器与一个或多个存储器子系统之一之间的接口。
此外,如此处所使用,术语“菊花链”是指总线连线结构,例如其中器件A被连线到器件B,器件B被连线到器件C,等等。最后的器件通常被连线到电阻器或终端。所有的器件可接收同样的信号,或者与简单总线相反,每个器件可以在继续传递一个或多个信号之前修改这一个或多个信号。此处所使用的“级联”或“级联互连”是指连续的级或单元或者互连的联网器件的集合,该互连的联网器件通常是集线器,其中集线器作为逻辑转发器操作,还允许将待集中的数据合并进现有数据流中。同样如此处所描述,术语“点到点”总线和/或链路是指一个或多个信号线,其均可包括一个或多个终端。在点到点总线和/或链路中,每个信号线具有两个收发器连接点,其中每个收发器连接点都耦合到发射器电路、接收器电路或收发器电路。信号线是指一个或多个电导体或光载波,通常以双绞、并行或同轴排列配置成单载波或两个或多个载波,用于传送至少一个逻辑信号。
存储器器件通常被限定为主要包括存储器(存储)单元的集成电路,所述存储器单元诸如DRAM(动态随机存取存储器)、SRAM(静态随机存取存储器)、FeRAM(铁电RAM)、MRAM(磁随机存取存储器)、闪存和以电、光、磁、生物或其它方式来存储信息的其它形式的随机存取和相关的存储器。动态存储器器件类型可包括异步存储器器件,诸如FPM DRAM(快速翻页模式动态随机存取存储器)、EDO(扩展数据输出)DRAM、BEDO(突发EDO)DRAM、SDR(单数据速率)同步 DRAM、DDR(双数据速率)同步DRAM或诸如DDR2、DDR3、DDR4之类的预期后续器件中的任何一种、以及相关的技术,诸如图形RAM、视频RAM、LP RAM(低功率DRAM),它们常基于在相关DRAM上所发现的基本功能、特征和/或接口。
可以以芯片(管芯)和/或各种类型和配置的单片或多片封装的形式来使用存储器器件。在多片封装中,存储器器件可以与诸如其它的存储器器件、逻辑芯片、模拟器件和可编程器件之类的其它器件类型一起进行封装,并且还可包括诸如电阻器、电容器和电感器之类的无源器件。这些封装可以包括集成散热片或其它散热增强,其还可以附接到紧挨着的载体或另一附近的载体或热移除系统。
模块支持器件(诸如缓存器、集线器、集线器逻辑芯片、寄存器、PLL、DLL、非易失性存储器,等等)可以包括多个单独的芯片和/或部件,可以作为多个单独的芯片组合到一个或多个基底上,可以被组合到单个封装或者甚至被集成到单个器件上——这基于技术、功率、空间、成本和其它折衷。另外,基于技术、功率、空间、成本和其它折衷,诸如电阻器、电容器之类的各种无源器件中的一个或多个可以被集成进支持芯片封装中、或者被集成进基底、板或原料卡自身中。这些封装可以包括集成散热片或其它散热增强,其还可以附接到紧挨着的载体或另一附近的载体或热移除系统。
存储器器件、集线器、缓存器、寄存器、时钟器件、无源和其它存储器支持器件和/或部件可以经由各种方法附接到存储器子系统和/或集线器器件,这些方法包括焊接互连、导电胶、插槽结构、压力接触和经由电、光或替代性手段实现在两个或多个器件之间的通信的其它方法。
一个或多个存储器模块(或存储器子系统)和/或集线器器件可以经由一种或多种方法连接到存储器系统、处理器复合体、计算机系统或其它系统环境,这些方法包括焊接互连、连接器、压力接触、导电胶、光互连和其它通信和功率递送方法。连接器系统可以包括配对连接器(公/母)、导电接触和/或与公或母连接器配对的一个载体上的管脚、光连接、压力接触(常结合保留机制)、以及/或者各种其它通信和功率递送方法 中的一种或多种。依赖于诸如易于升级/维修、可用空间/体积、热转移、部件大小和形状和其它相关的物理、电、光、视觉/物理存取等等应用需求,可以沿着存储器组件的一个或多个边沿部署互连,和/或在距离存储器子系统的边沿一定距离放置互连。
如此处所使用,术语存储器子系统是指但不限于:一个或多个存储器器件;一个或多个存储器器件和相关联的接口和/或定时/控制电路;以及/或者一个或多个存储器器件结合存储器缓存器、集线器器件和/或开关。术语存储器子系统还可以指除了组装进基底、卡、模块或相关组件的任何相关联的接口和/或定时/控制电路和/或存储器缓存器、集线器器件或开关之外的一个或多个存储器,其还可以包括将存储器子系统与其它电路进行电附接的连接器或类似装置。此处所描述的存储器模块还可以被称为存储器子系统,因为它们包括一个或多个存储器器件和集线器器件。
可能本地驻留在存储器子系统和/或集线器器件的附加功能包括写和/或读缓存器、一个或多个级别的存储器高速缓存、数据加密/解密、压缩/解压缩、协议翻译、命令优先级逻辑、电压和/或电平转换、错误检测和/或纠正电路、数据擦除、本地电源管理电路和/或报告、操作和/或状态寄存器、初始化电路、性能监视和/或控制、一个或多个协处理器、搜索引擎和以前可以位于其它存储器子系统中的其他功能。通过将一个功能本地地放置到存储器子系统,可以获得与特定功能相关的附加性能,常常同时利用了该子系统中的未使用电路。
存储器子系统支持器件可以直接附接到存储器器件所附接到的相同的基底或组合装置,或者可以安装到也使用各种塑料、硅、陶瓷或其它材料中的一种或多种材料制造出的单独的插入机构或基底,其包括电、光或其它通信路径以将支持器件功能上互连到存储器器件和/或存储器或计算机系统的其它元件。
沿着总线、通道、链路或应用到互连方法的其它命名约定的信息传送可以通过使用许多信令选项中的一个或多个来完成。这些信令选项可以包括诸如单端、差分、光或其它途径之类的方法,其中电信令还包括 诸如使用单级或多级途径的电压或电流信令之类的方法。信号还可以用诸如时间或频率、非归零、相移键控、幅度调制和其它之类的方法来进行调制。期望电平能持续减少,1.5V、1.2V、1V以及更低的信号电压,预期与相关联的集成电路自身的操作所需要的降低的电源电压相一致(但是常常是独立的)。
在存储器子系统和存储器系统自身中可以利用一种或多种定时方法,包括全球定时、源同步定时、编码定时或这些和其它方法的组合。时钟信令可以与信号线自身的信令相同,或者可以使用对所计划的时钟频率和在各种子系统内所计划的时钟数目更好传导的所列出的或替代性方法中的一种方法。单个时钟可以与前往和来自存储器的所有通信以及存储器子系统内的所有定时功能相关联,或者可以通过使用像早些时候所描述的那些方法那样的一种或多种方法来提供多个时钟。当使用多个时钟时,存储器子系统内的功能可以与被唯一地提供给子系统的时钟相关联,或者可以基于从与正传送到存储器子系统的信息或从存储器子系统传送的信息相关的时钟中推导出的时钟(诸如与编码时钟相关联的时钟)。作为替代,可以针对传送给存储器子系统的信息使用唯一的时钟,而针对源自一个(或多个)存储器子系统的信息使用单独的时钟。时钟自身可以以通信或操作频率的相同频率或者倍频来操作,并且可以是边沿对齐、中央对齐或位于相对于数据、命令或地址信息的更替定时位置。
传递给存储器子系统的信息一般将包括地址、命令和数据,通常还包括与请求或报告状态或错误情况、复位存储器、完成存储器或逻辑初始化以及其它功能、配置或相关信息相关联的其它信号。从存储器子系统传递来的信息可以包括传递给存储器子系统的任何信息或所有信息,然而通常将不包括地址和命令信息。这种信息可以用与标准存储器器件接口规范相一致的(实际上通常是并行的)通信传输方法来传输,该信息可以被编码进“分组”结构,其可以与将来的存储器接口相一致或者仅被开发用来增加通信带宽和/或通过将接收到的信息转换成接收器件所需要的格式来使子系统能够独立于存储器技术操作。
基于可用接口总线、期望的初始化速度、可用空间、成本/复杂度目标、子系统互连结构、对可以用于此目的和其它目的的替代性处理器(诸如服务处理器)的使用等等,存储器子系统的初始化可以经由一种或多种方法来完成。在一个实施例中,高速总线可以用于完成存储器子系统的初始化,通常首先完成训练过程以建立可靠的通信,接着询问与各种部件相关联的属性或“在线检测”数据和/或与该子系统相关联的特性,以及最终用与该系统内所期望的操作相关联的信息对合适的器件进行编程。在级联系统中,通常将建立与第一存储器子系统的通信,随后是以与它们沿着级联互连总线的位置相一致的顺序中的后续(下行)子系统。
第二初始化方法将包括这样一种方法,其中高速总线在初始化过程中以一个频率操作,接着在正常操作期间以第二(通常是更高的)频率操作。在这个实施例中,由于与较低频率操作相关联的增加的定时容限的原因,可以在完成询问和/或编程每个子系统之前对与级联互连总线上的所有存储器子系统的通信进行初始化。
第三初始化方法可包括级联互连总线以正常操作频率操作,而增加与每个地址、命令和/或数据传送相关联的周期数。在一个实施例中,在正常操作期间,包含所有或部分的地址、命令和/或数据信息的分组可以在一个时钟周期中传送,但是在初始化期间相同量和/或类型的信息可以在两个、三个或更多的周期中传送。由此,这种初始化处理将使用“慢”命令而不是“正常”命令的形式,并且这种模式可以由每个子系统和存储器控制器通过这些子系统中的每个子系统中所包括的POR(上电复位)逻辑在在上电和/或重启之后的某个点处自动地输入。
第四初始化方法可以使用特殊的总线,诸如在线检测总线(诸如与此共同转让的授予Dell等人的美国专利No.5513135中所限定的总线)、I2C总线(如在所公布的JEDEC标准中所限定的总线,诸如出版物21-C版本7R8中的168管脚DIMM系列)、和/或SMBUS,其已经被广为使用并且记载在使用这种存储器模块的计算机系统中。这种总线可以通过菊花链/级联互连、多点或交替结构连接到存储器系统内的一个或多 个模块,提供询问存储器子系统的独立方式,对一个或多个存储器子系统中的每个进行编程以在整个系统环境中操作,以及在正常系统操作中的其它时间基于性能、热、配置或在系统环境中所期望的或所检测到的其它改变来调整操作特性。
初始化的其它方法还可以结合或独立于所列出的那些方法进行使用。使用单独的总线(如在上面的第四实施例中所描述的)还提供了针对初始化和除初始化以外的用途提供独立装置的优点,如在与此共同转让的授予Dell等人的美国专利No.6381685中所描述,其包括对子系统操作特性的实时(on the fly)改变和用于报告并响应诸如利用率、温度数据、故障信息之类的操作子系统信息或用于其它目的。
随着光刻法的改进、更好的工艺控制、具有更低阻抗材料的使用、增加的场大小以及其它半导体工艺改进,增大的器件电路密度(常结合增大的管芯尺寸)将有助于促进集成器件上的增强的功能和对以前在单独的器件上实现的功能的集成。这种集成将用于改善预期功能的整体性能,以及提升增大的存储密度、降低的功率、减小的空间需求、更低的成本和其它制造商和客户利益。这种集成是自然的演进过程,并且可能产生对与系统相关联的基础构建块的结构改变的需求。
通过使用一种或多种故障检测和/或纠正方法,可以很高程度上确保通信路径、数据存储内容和与存储器系统或子系统中的每个元件相关联的所有功能操作的完整性。各种元件中的任何一个或所有元件可以包括错误检测和/或纠正方法,诸如CRC(循环冗余码)、EDC(错误检测和纠正)、奇偶校验或适用于该目的的其它编码/解码方法。另外的可靠性强化可以包括:重试操作(以克服间歇的故障,诸如与信息传送相关联的那些故障);使用一个或多个交替或替代通信路径来替代故障路径和/或线路;在计算机、通信和相关的系统中所使用的互补(complement-re-complement)技术或交替方法。
与增长的性能需求相一致,在像点到点链路一样简单的总线或者像多点结构一样复杂的总线上,对总线终端的使用正变得更加普遍。各种终端方法可以被标识和/或被考虑,并且包括使用诸如电阻器、电容器、 电感器或它们的任何组合之类的器件,并且包括使用诸如电阻器、电容器、电感器或它们的任何组合之类的器件,其中在信号线与电源电压或地、终端电压或其它信号之间连接这些器件。终端器件可以是无源或有源终端结构的一部分,并且可以位于沿着一个或多个信号线的一个或多个位置,并且/或者作为发射器和/或接收器器件的一部分。终端可以被选择为匹配传输线的阻抗,或经由替代性的方法选择为使可用频率、操作余量和成本、空间、功率和其它约束内的相关属性达到最大。
新新高性能系统正采用新的总线结构以解决某些系统成本和存储器密度考虑,其包括使用级联互连的存储器子系统,该存储器子系统包括存储器模块上的一个或多个集线器器件。通过包括可以基于针对存储器器件的命令、数据和地址信息来动作的集线器器件,可以考虑使整体系统性能达到最大的新的解决方案。示例性实施例的技术效果包括减少整体存储器系统等待时间,由此改善系统性能。在示例性实施例中,特定的改善领域涉及由于消除存储器控制器发出的预取请求而带来的整体存储器系统功率节省。另外,由于减小了总线活动的原因,下行存储器总线上有更多的带宽可用于其它目的以及/或者下行存储器总线管脚数可以减少。
如上所述,本发明的实施例可以用计算机实现的处理和用于实现那些处理的装置的形式来具体实现。本发明的实施例还可以用包含着有形介质中所具体实现的指令的计算机程序代码的形式来具体实现,该有形介质诸如磁盘、CD-ROM、硬盘驱动器、或任何其它计算机可读存储介质,其中当该计算机程序代码被装载进计算机并由计算机执行时,该计算机就变成用于实现本发明的装置。本发明还可以用计算机程序代码的形式来具体实现,例如该计算机程序代码无论是存储在存储介质中、装载计算机并/或由计算机执行,还是诸如通过电线或电缆、通过光纤、或经由电磁辐射这样地通过某些传输介质传输,其中当该计算机程序代码被装载进计算机并由计算机执行时,该计算机就变成实现本发明的装置。当在通用微处理器上实现时,该计算机程序代码段配置微处理器以创建特定的逻辑电路。
尽管已经参考示例性实施例描述了本发明,但是本领域的普通技术人员应当理解在不偏离本发明的范围的条件下可以做出各种改变并且可以用等效物来替换其中的元件。另外,在不偏离本发明的范围的条件下可以做出许多修改以使本发明的教导适应特定的环境或材料。由此,主旨在于本发明不限于作为用于实现本发明的预期最佳模式而公开的特殊实施例,而是本发明将包括落入所附权利要求书的范围内的所有实施例。而且,术语“第一”、“第二”等等的使用不表明任何顺序或重要性,而是术语“第一”、“第二”等等被用于将一个元件与另一个元件区分开。

Claims (25)

1.一种集线器器件,包括
输入命令流接口,其用于检测从存储器控制器导向与所述集线器器件相连的一个或多个存储器器件的命令;以及
自适应预取逻辑单元,其用于独立地分析所述命令以确定对所述存储器器件的存取样式,以及用于基于所述分析的结果动态地在针对所述存储器器件启动预取功能和停用预取功能之间做出选择,
其中所述分析包括基于所述存取样式预测来自所述存储器控制器的未来命令的预期地址,其中当所述预测的准确度等于或高于启动预取阈值时启动所述预取功能,以及当所述预测的准确度等于或低于停用预取阈值时停用所述预取功能。
2.根据权利要求1所述的集线器器件,其中所述存取样式是读存取样式。
3.根据权利要求1所述的集线器器件,其中所述预取功能分派预取读命令,所述预取读命令具有的优先级低于来自所述存储器控制器的读命令的优先级。
4.根据权利要求1所述的集线器器件,还包括由所述预取功能利用来存储预取数据和地址的预取缓存器。
5.根据权利要求4所述的集线器器件,其中在写操作期间在所述预取缓存器中维持数据的一致性。
6.根据权利要求1所述的集线器器件,其中所述分析和选择应用到所述存储器器件之一上的一个簇。
7.根据权利要求1所述的集线器器件,其中应用到所述存储器器件之一的分析和选择独立于应用到另一个所述存储器器件的分析和选择。
8.根据权利要求1所述的集线器器件,其中应用到所述存储器器件之一中的一个簇的分析和选择独立于应用到该存储器器件中的另一个簇的分析和选择。
9.根据权利要求1所述的集线器器件,其中所述分析和选择应用到所有存储器器件。
10.根据权利要求1所述的集线器器件,其中所述命令包括位于存储器命令缓存器中的待处理命令。
11.根据权利要求10所述的集线器器件,其中所述自适应预取逻辑单元还在所述存储器命令缓存器中记录所述待处理命令以更改未来的存取样式。
12.一种用于选择预取模式的方法,所述方法包括:
检测从存储器控制器导向与集线器器件相连的一个或多个存储器器件的命令;
分析所述命令以确定对所述存储器器件的存取样式;以及
基于所述分析的结果动态地在针对所述存储器器件启动预取功能和停用预取功能之间做出选择,
其中所述分析包括基于所述存取样式预测来自所述存储器控制器的未来命令的预期地址,其中当所述预测的准确度等于或高于启动预取阈值时启动所述预取功能,以及当所述预测的准确度等于或低于停用预取阈值时停用所述预取功能。
13.根据权利要求12所述的方法,其中所述存取样式是读存取样式。
14.根据权利要求12所述的方法,其中所述预测是使用一种用于检测和预测跨距地址的算法来完成的。
15.根据权利要求12所述的方法,其中所述预取功能分派预取读命令,所述预取读命令具有的优先级低于来自所述存储器控制器的读命令的优选级。
16.根据权利要求12所述的方法,其中所述预取功能在预取缓存器中存储预取的数据和地址。
17.根据权利要求16所述的方法,其中在写操作期间在所述预取缓存器中维持数据的一致性。
18.根据权利要求12所述的方法,其中所述分析和选择应用到所述存储器器件之一上的一个簇。
19.根据权利要求12所述的方法,其中应用到所述存储器器件之一的分析和选择独立于应用到另一个所述存储器器件的分析和选择。
20.根据权利要求12所述的方法,其中应用到所述存储器器件之一中的一个簇的分析和选择独立于应用到该存储器器件中的另一个簇的分析和选择。
21.根据权利要求12所述的方法,其中所述分析和选择应用到所有存储器器件。
22.根据权利要求12所述的方法,其中所述命令包括位于存储器命令缓存器中的待处理命令。
23.根据权利要求22所述的方法,其中记录所述待处理命令以更改未来的存取样式。
24.一种存储器系统,其包括:
存储器控制器;
一个或多个存储器器件;以及
与所述存储器控制器和所述存储器器件通信的存储器集线器器件,所述存储器集线器器件包括:
输入命令流接口,其用于检测从所述存储器控制器导向所述存储器器件的命令;以及
自适应预取逻辑单元,其用于独立地分析所述命令以确定对所述存储器器件的存取样式,以及用于基于所述分析的结果动态地在针对所述存储器器件启动预取功能和停用预取功能之间做出选择,其中所述分析包括基于所述存取样式预测来自所述存储器控制器的未来命令的预期地址,其中当所述预测的准确度等于或高于启动预取阈值时启动所述预取功能,以及当所述预测的准确度等于或低于停用预取阈值时停用所述预取功能。
25.一种存储器子系统,其包括:
一个或多个存储器器件;以及
存储器集线器器件,其包括:
输入命令流接口,其用于检测从存储器控制器导向与所述存储器集线器器件相连的所述一个或多个存储器器件的命令;以及
自适应预取逻辑单元,其用于独立地分析所述命令以确定对所述存储器器件的存取样式,以及用于基于所述分析的结果动态地在针对所述存储器器件启动预取功能和停用预取功能之间做出选择,其中所述分析包括基于所述存取样式预测来自所述存储器控制器的未来命令的预期地址,其中当所述预测的准确度等于或高于启动预取阈值时启动所述预取功能,以及当所述预测的准确度等于或低于停用预取阈值时停用所述预取功能。
CN2008100038963A 2007-01-29 2008-01-28 选择预取模式的方法、集线器器件、存储器系统及子系统 Expired - Fee Related CN101236540B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/668,088 2007-01-29
US11/668,088 US7603526B2 (en) 2007-01-29 2007-01-29 Systems and methods for providing dynamic memory pre-fetch

Publications (2)

Publication Number Publication Date
CN101236540A CN101236540A (zh) 2008-08-06
CN101236540B true CN101236540B (zh) 2011-07-20

Family

ID=39669213

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008100038963A Expired - Fee Related CN101236540B (zh) 2007-01-29 2008-01-28 选择预取模式的方法、集线器器件、存储器系统及子系统

Country Status (3)

Country Link
US (1) US7603526B2 (zh)
JP (1) JP5571288B2 (zh)
CN (1) CN101236540B (zh)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7873791B1 (en) * 2007-09-28 2011-01-18 Emc Corporation Methods and systems for incorporating improved tail cutting in a prefetch stream in TBC mode for data storage having a cache memory
US8301928B2 (en) * 2008-01-18 2012-10-30 Texas Instruments Incorporated Automatic wakeup handling on access in shared memory controller
US8472199B2 (en) * 2008-11-13 2013-06-25 Mosaid Technologies Incorporated System including a plurality of encapsulated semiconductor chips
US8375173B2 (en) * 2009-10-09 2013-02-12 Qualcomm Incorporated Accessing a multi-channel memory system having non-uniform page sizes
US8438410B2 (en) * 2010-06-23 2013-05-07 Intel Corporation Memory power management via dynamic memory operation states
US8433852B2 (en) * 2010-08-30 2013-04-30 Intel Corporation Method and apparatus for fuzzy stride prefetch
US8977819B2 (en) * 2010-09-21 2015-03-10 Texas Instruments Incorporated Prefetch stream filter with FIFO allocation and stream direction prediction
US8755221B2 (en) * 2010-10-18 2014-06-17 Avalanche Technology, Inc. Emulation of static random access memory (SRAM) by magnetic random access memory (MRAM)
US8539163B1 (en) * 2010-12-17 2013-09-17 Amazon Technologies, Inc. Speculative reads
CN102023931B (zh) * 2010-12-17 2015-02-04 曙光信息产业(北京)有限公司 一种自适应缓存预取方法
US9092358B2 (en) * 2011-03-03 2015-07-28 Qualcomm Incorporated Memory management unit with pre-filling capability
US8595407B2 (en) * 2011-06-14 2013-11-26 Lsi Corporation Representation of data relative to varying thresholds
US20120331194A1 (en) * 2011-06-23 2012-12-27 Apple Inc. Interface extender for portable electronic devices
EP3364304B1 (en) * 2011-09-30 2022-06-15 INTEL Corporation Memory channel that supports near memory and far memory access
US9043579B2 (en) 2012-01-10 2015-05-26 International Business Machines Corporation Prefetch optimizer measuring execution time of instruction sequence cycling through each selectable hardware prefetch depth and cycling through disabling each software prefetch instruction of an instruction sequence of interest
US10057726B2 (en) 2012-10-02 2018-08-21 Razer (Asia-Pacific) Pte. Ltd. Managing user data on an electronic device
US8732355B1 (en) * 2012-10-02 2014-05-20 Nextbit Systems Inc. Dynamic data prefetching
US9106721B2 (en) 2012-10-02 2015-08-11 Nextbit Systems Application state synchronization across multiple devices
US9047173B2 (en) * 2013-02-21 2015-06-02 Advanced Micro Devices, Inc. Tracking and eliminating bad prefetches generated by a stride prefetcher
JP5971211B2 (ja) * 2013-08-06 2016-08-17 株式会社デンソー 電子制御装置
US10105593B2 (en) 2014-04-08 2018-10-23 Razer (Asia-Pacific) Pte. Ltd. File prefetching for gaming applications accessed by electronic devices
CN104657298A (zh) * 2015-02-11 2015-05-27 昆腾微电子股份有限公司 读控制装置和方法
US10642513B2 (en) 2015-09-11 2020-05-05 Sandisk Technologies Llc Partially de-centralized latch management architectures for storage devices
US10025532B2 (en) * 2015-09-11 2018-07-17 Sandisk Technologies Llc Preserving read look ahead data in auxiliary latches
US10866897B2 (en) * 2016-09-26 2020-12-15 Samsung Electronics Co., Ltd. Byte-addressable flash-based memory module with prefetch mode that is adjusted based on feedback from prefetch accuracy that is calculated by comparing first decoded address and second decoded address, where the first decoded address is sent to memory controller, and the second decoded address is sent to prefetch buffer
US11182306B2 (en) * 2016-11-23 2021-11-23 Advanced Micro Devices, Inc. Dynamic application of software data caching hints based on cache test regions
US10558519B2 (en) * 2017-01-17 2020-02-11 International Business Machines Corporation Power-reduced redundant array of independent memory (RAIM) system
US10474578B2 (en) * 2017-08-30 2019-11-12 Oracle International Corporation Utilization-based throttling of hardware prefetchers
US10657059B2 (en) 2017-09-12 2020-05-19 International Business Machines Corporation Controlling a rate of prefetching based on bus bandwidth
US10671536B2 (en) * 2017-10-02 2020-06-02 Ananth Jasty Method and apparatus for cache pre-fetch with offset directives
US10394706B2 (en) * 2017-11-02 2019-08-27 Western Digital Technologies, Inc. Non-volatile storage with adaptive command prediction
US10425456B2 (en) 2017-11-29 2019-09-24 Bank Of America Corporation Request processing system using a splitting engine
US10419265B2 (en) 2017-11-29 2019-09-17 Bank Of America Corporation Request processing system using a combining engine
US11175979B2 (en) * 2019-08-06 2021-11-16 Micron Technology, Inc. Prioritization of error control operations at a memory sub-system
TW202141290A (zh) 2020-01-07 2021-11-01 韓商愛思開海力士有限公司 記憶體中處理(pim)系統和pim系統的操作方法
US11720354B2 (en) * 2020-01-07 2023-08-08 SK Hynix Inc. Processing-in-memory (PIM) system and operating methods of the PIM system
US11372763B2 (en) * 2020-07-14 2022-06-28 Micron Technology, Inc. Prefetch for data interface bridge
US11372762B2 (en) 2020-07-14 2022-06-28 Micron Technology, Inc. Prefetch buffer of memory sub-system
US11586557B2 (en) * 2020-08-26 2023-02-21 Micron Technology, Inc. Dynamic allocation of buffers for eviction procedures
KR20220117747A (ko) * 2021-02-17 2022-08-24 삼성전자주식회사 데이터 프리페치 제어 기능을 갖는 스토리지 컨트롤러, 스토리지 컨트롤러의 동작 방법, 및 스토리지 장치의 동작 방법
CN115686164A (zh) * 2021-07-26 2023-02-03 瑞昱半导体股份有限公司 供电端装置、供电系统以及非暂态电脑可读取媒体
US11580025B1 (en) * 2021-09-30 2023-02-14 Advanced Micro Devices, Inc. Cache prefetching with dynamic interleaving configuration modification

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1788260A (zh) * 2003-05-13 2006-06-14 先进微装置公司 包含通过串行内存互连而连接至多个内存模块的主机的系统
CN1875355A (zh) * 2003-08-28 2006-12-06 米克伦技术公司 包括多个存储器集线器模块的多处理器系统和方法

Family Cites Families (153)

* Cited by examiner, † Cited by third party
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
JPH02133842A (ja) * 1988-11-15 1990-05-23 Fujitsu Ltd 中間バッファプリフェッチ制御方式
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
CA2045789A1 (en) 1990-06-29 1991-12-30 Richard Lee Sites Granularity hint for translation buffer in high performance processor
CA2045790A1 (en) 1990-06-29 1991-12-30 Richard Lee Sites Branch prediction 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 沖電気工業株式会社 シリアルアクセスメモリの倍速コントロール方式
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
US6002411A (en) * 1994-11-16 1999-12-14 Interactive Silicon, Inc. Integrated video and memory controller with data processing and graphical processing 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 株式会社東芝 半導体メモリシステム
US6378018B1 (en) * 1997-10-10 2002-04-23 Intel Corporation Memory device and system including a low power interface
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
US6643745B1 (en) * 1998-03-31 2003-11-04 Intel Corporation Method and apparatus for prefetching data into cache
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
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
JP3275867B2 (ja) * 1999-01-26 2002-04-22 日本電気株式会社 スキャンテスト回路及びスキャンテスト回路を含む半導体集積回路及びスキャンテスト回路を搭載した半導体集積回路試験用基板
US6115278A (en) 1999-02-09 2000-09-05 Silicon Graphics, Inc. Memory system with switching for data isolation
US6564329B1 (en) * 1999-03-16 2003-05-13 Linkup Systems Corporation System and method for dynamic clock generation
US6393528B1 (en) * 1999-06-30 2002-05-21 International Business Machines Corporation Optimized cache allocation algorithm for multiple speculative requests
US6839393B1 (en) * 1999-07-14 2005-01-04 Rambus Inc. Apparatus and method for controlling a master/slave system via master device synchronization
US6549971B1 (en) * 1999-08-26 2003-04-15 International Business Machines Corporation Cascaded differential receiver circuit
US6262493B1 (en) 1999-10-08 2001-07-17 Sun Microsystems, Inc. Providing standby power to field replaceable units for electronic systems
US6889284B1 (en) * 1999-10-19 2005-05-03 Intel Corporation Method and apparatus for supporting SDRAM memory
US6513091B1 (en) * 1999-11-12 2003-01-28 International Business Machines Corporation Data routing using status-response signals
US6557069B1 (en) * 1999-11-12 2003-04-29 International Business Machines Corporation Processor-memory bus architecture for supporting multiple processors
JP2001167077A (ja) * 1999-12-09 2001-06-22 Nec Kofu Ltd ネットワークシステムにおけるデータアクセス方法、ネットワークシステムおよび記録媒体
US6609171B1 (en) * 1999-12-29 2003-08-19 Intel Corporation Quad pumped bus architecture and protocol
US6219288B1 (en) 2000-03-03 2001-04-17 International Business Machines Corporation Memory having user programmable AC timings
JP3722202B2 (ja) * 2000-03-23 2005-11-30 セイコーエプソン株式会社 半導体集積回路装置、マイクロコンピュータ及び電子機器
JP2001290697A (ja) * 2000-04-06 2001-10-19 Hitachi Ltd 情報処理システム
US6704842B1 (en) * 2000-04-12 2004-03-09 Hewlett-Packard Development Company, L.P. Multi-processor system with proactive speculative data transfer
US6546359B1 (en) * 2000-04-24 2003-04-08 Sun Microsystems, Inc. Method and apparatus for multiplexing hardware performance indicators
US6721944B2 (en) * 2000-05-31 2004-04-13 Sun Microsystems, Inc. Marking memory elements based upon usage of accessed information during speculative execution
US6697919B2 (en) * 2000-06-10 2004-02-24 Hewlett-Packard Development Company, L.P. System and method for limited fanout daisy chaining of cache invalidation requests in a shared-memory multiprocessor system
US6587112B1 (en) * 2000-07-10 2003-07-01 Hewlett-Packard Development Company, L.P. Window copy-swap using multi-buffer hardware support
US6738836B1 (en) * 2000-08-31 2004-05-18 Hewlett-Packard Development Company, L.P. Scalable efficient I/O port protocol
US6553450B1 (en) * 2000-09-18 2003-04-22 Intel Corporation Buffer to multiply memory interface
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
US6625685B1 (en) * 2000-09-20 2003-09-23 Broadcom Corporation Memory controller with programmable configuration
US6532525B1 (en) * 2000-09-29 2003-03-11 Ati Technologies, Inc. Method and apparatus for accessing memory
ATE437476T1 (de) * 2000-10-06 2009-08-15 Pact Xpp Technologies Ag Zellenanordnung mit segmentierter zwischenzellstruktur
US6611902B2 (en) * 2000-11-13 2003-08-26 Matsushita Electric Industrial Co., Ltd. Information processor and information processing method
US6285172B1 (en) 2000-11-13 2001-09-04 Texas Instruments Incorporated Digital phase-locked loop circuit with reduced phase jitter frequency
US6510100B2 (en) * 2000-12-04 2003-01-21 International Business Machines Corporation Synchronous memory modules and memory systems with selectable clock termination
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
TW527537B (en) * 2001-01-03 2003-04-11 Leadtek Research Inc Conversion device of SDR and DDR, and interface card, motherboard and memory module interface using the same
US6678811B2 (en) * 2001-04-07 2004-01-13 Hewlett-Packard Development Company, L.P. Memory controller with 1X/MX write capability
US6766389B2 (en) * 2001-05-18 2004-07-20 Broadcom Corporation System on a chip for networking
US20030090879A1 (en) * 2001-06-14 2003-05-15 Doblar Drew G. Dual inline memory module
US20030033463A1 (en) * 2001-08-10 2003-02-13 Garnett Paul J. Computer system storage
US6901491B2 (en) * 2001-10-22 2005-05-31 Sun Microsystems, Inc. Method and apparatus for integration of communication links with a remote direct memory access protocol
US7133972B2 (en) * 2002-06-07 2006-11-07 Micron Technology, Inc. Memory hub with internal cache and/or memory access prediction
US6854043B2 (en) * 2002-07-05 2005-02-08 Hewlett-Packard Development Company, L.P. System and method for multi-modal memory controller system operation
JP2004093462A (ja) * 2002-09-02 2004-03-25 Oki Electric Ind Co Ltd 半導体集積回路とその試験方法
US6996639B2 (en) * 2002-12-10 2006-02-07 Intel Corporation Configurably prefetching head-of-queue from ring buffers
US20040117588A1 (en) * 2002-12-12 2004-06-17 International Business Machines Corporation Access request for a data processing system having no system memory
US7260685B2 (en) * 2003-06-20 2007-08-21 Micron Technology, Inc. Memory hub and access method having internal prefetch buffers
KR100500454B1 (ko) * 2003-07-28 2005-07-12 삼성전자주식회사 메모리 모듈 테스트 시스템 및 메모리 모듈 평가 시스템
US20050050237A1 (en) * 2003-08-28 2005-03-03 Jeddeloh Joseph M. Memory module and method having on-board data search capabilities and processor-based system using such memory modules
US7194593B2 (en) * 2003-09-18 2007-03-20 Micron Technology, Inc. Memory hub with integrated non-volatile memory
US20050080581A1 (en) * 2003-09-22 2005-04-14 David Zimmerman Built-in self test for memory interconnect testing
US7113418B2 (en) * 2003-11-04 2006-09-26 Hewlett-Packard Development Company, L.P. Memory systems and methods
US7073010B2 (en) * 2003-12-02 2006-07-04 Super Talent Electronics, Inc. USB smart switch with packet re-ordering for interleaving among multiple flash-memory endpoints aggregated as a single virtual USB endpoint
US7155623B2 (en) * 2003-12-03 2006-12-26 International Business Machines Corporation Method and system for power management including local bounding of device group power consumption
US7752470B2 (en) * 2003-12-03 2010-07-06 International Business Machines Corporation Method and system for power management including device controller-based device use evaluation and power-state control
JP4085389B2 (ja) * 2003-12-24 2008-05-14 日本電気株式会社 マルチプロセッサシステム、マルチプロセッサシステムにおける一貫性制御装置及び一貫性制御方法
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1788260A (zh) * 2003-05-13 2006-06-14 先进微装置公司 包含通过串行内存互连而连接至多个内存模块的主机的系统
CN1875355A (zh) * 2003-08-28 2006-12-06 米克伦技术公司 包括多个存储器集线器模块的多处理器系统和方法

Also Published As

Publication number Publication date
JP2008186457A (ja) 2008-08-14
JP5571288B2 (ja) 2014-08-13
CN101236540A (zh) 2008-08-06
US20080183903A1 (en) 2008-07-31
US7603526B2 (en) 2009-10-13

Similar Documents

Publication Publication Date Title
CN101236540B (zh) 选择预取模式的方法、集线器器件、存储器系统及子系统
CN101410811B (zh) 提供远程预取缓冲器的计算机存储器系统
CN101236547A (zh) 提供动态存储库页面策略的系统和方法
US7594055B2 (en) Systems and methods for providing distributed technology independent memory controllers
US7584336B2 (en) Systems and methods for providing data modification operations in memory subsystems
CN101118782B (zh) 存储和检索处理系统的数据的存储器系统和性能监视方法
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
CN101217060B (zh) 用于识别故障存储器元件的系统和方法
US7669086B2 (en) Systems and methods for providing collision detection in a memory system
KR101107349B1 (ko) 커맨드 데이터의 복제를 지원하는 고용량 메모리 서브시스템용 메모리 칩
US7277988B2 (en) System, method and storage medium for providing data caching and data compression in a memory subsystem
US8296541B2 (en) Memory subsystem with positional read data latency
US7952944B2 (en) System for providing on-die termination of a control signal bus
US8015426B2 (en) System and method for providing voltage power gating
WO2008017624A1 (en) Memory module power management
CN104025060A (zh) 支持近存储器和远存储器访问的存储器通道
US20230393992A1 (en) Row hammer mitigation using a victim cache

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

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