CN104508646A - 访问存储器 - Google Patents

访问存储器 Download PDF

Info

Publication number
CN104508646A
CN104508646A CN201280075199.3A CN201280075199A CN104508646A CN 104508646 A CN104508646 A CN 104508646A CN 201280075199 A CN201280075199 A CN 201280075199A CN 104508646 A CN104508646 A CN 104508646A
Authority
CN
China
Prior art keywords
data
data bus
bus
memory
access
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
Application number
CN201280075199.3A
Other languages
English (en)
Inventor
D.H.尹
N.姆拉利马诺哈尔
J.张
P.兰冈纳坦
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.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
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 Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of CN104508646A publication Critical patent/CN104508646A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1072Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for memories with random access ports synchronised on clock signal pulse trains, e.g. synchronous memories, self timed memories
    • 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/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1663Access to shared memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/02Disposition of storage elements, e.g. in the form of a matrix array
    • G11C5/04Supports for storage elements, e.g. memory modules; Mounting or fixing of storage elements on such supports
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/10Aspects relating to interfaces of memory device to external buses
    • G11C2207/108Wide data ports
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/22Control and timing of internal memory operations
    • G11C2207/2209Concurrent read and write
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/22Control and timing of internal memory operations
    • G11C2207/2281Timing of a read operation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Dram (AREA)
  • Bus Control (AREA)

Abstract

所公开的示例性方法涉及对至少第一和第二独立可选逻辑子行列施行同时数据访问以便经由存储器器件中的宽内部数据总线访问第一数据。存储器器件包括转换缓冲器芯片、独立可选逻辑子行列中的存储器芯片、把转换缓冲器芯片连接到存储器控制器的窄外部数据总线以及在转换缓冲器芯片和存储器芯片之间的宽内部数据总线。仅对第一独立可选逻辑子行列施行数据访问以经由宽内部数据总线访问第二数据。示例性方法还涉及在分离的数据转移期间把第一数据的第一部分、第一数据的第二部分和第二数据定位在窄外部数据总线上。

Description

访问存储器
政府权益声明
本发明利用由能源部授权的合同号DE-SC0005026下的政府支持做出。政府对本发明具有特定权利。
背景技术
器件尺寸的增加和新兴的芯片多处理器(CMP)架构要求存储器系统更大的吞吐量、功耗和可靠性。较新时代的动态随机存取存储器(DRAM)被设计成通过采用与高速信号发送技术组合的n位预取和突发访问能力来提供更高的吞吐量。随着DRAM通道频率增加,添加更多的行列或模块会使信号完整性恶化,这限制整体存储器容量。用于克服缓慢存储器访问时间的技术涉及使用库级并行性,其中多个存储器访问被分发到DRAM的不同库以掩盖DRAM延时。随着DRAM时钟频率增加,切换行列导致数据总线上的空闲周期,这引入数据输出之间的时间延迟。这导致DRAM数据总线的不期望的总线利用性能。
附图说明
图1是具有宽内部数据总线和窄外部数据总线的示例性存储器模块。
图2示出使两个内部数据总线和两个内部地址总线连接到两个逻辑存储器行列的示例性存储器模块。
图3是具有逻辑存储器行列的示例性存储器模块,该逻辑存储器行列具有可独立选择的逻辑子行列。
图4是示例性转换缓冲器,其可以与图1和2的示例性存储器模块一起使用以在宽内部数据总线和窄外部数据总线之间交换数据。
图5是示例性时序图,示出了使用图4的示例性转换缓冲器在宽内部数据总线和窄外部数据总线之间的数据转移。
图6是另一示例性转换缓冲器,其可以与图1和3的示例性存储器模块一起使用以利用可独立选择的逻辑子行列存储器模块配置来实现数据转移。
图7是示例性时序图,示出了使用图6的示例性转换缓冲器在宽内部数据总线和窄外部数据总线之间的数据转移。
图8是示出了时间延迟气泡的示例性时序图,时间延迟气泡在突发访问期间在存储器模块的内部数据总线上发生,但是不被传播到存储器模块的外部数据总线。
图9是用于在存储器模块中存储数据和错误校正代码的示例性存储配置。
图10是示例性数据转移配置,用于在图4和6的转换缓冲器和存储器控制器之间转移数据和对应的错误校正代码。
图11是表示指令和/或动作的流程图,该指令和/或动作可以被执行以在具有宽内部数据总线和窄外部数据总线的存储器模块中使用本文公开的示例来施行数据访问。
具体实施方式
本文公开的示例性方法、设备和制品可以被用于访问存储器。所公开的示例可以被用于在动态随机存取存储器(DRAM)模块中(或在具有DRAM芯片的主印刷电路板(PCB)上)实施宽内部数据总线以访问存储器芯片或DRAM模块的逻辑存储器行列,并且可以被用于实施用于在DRAM模块和外部器件(例如存储器控制器)之间交换数据的相对较窄的外部数据总线。所公开的示例可用于增加DRAM模块容量同时改善性能、功率和可靠性。在所公开的示例中,宽内部数据总线可按照低于较窄外部数据总线的较慢速度操作,从而实现在存储器模块上使用低功率、低频和低成本DRAM芯片,同时支持用于与存储器模块通信的外部器件的高性能DRAM接口的外部数据访问速度。为了支持这样的使用低性能DRAM芯片的高性能DRAM接口,本文公开的示例使用存储器接口转换技术来实现:使用低频接口标准在宽内部数据总线上从DRAM芯片取回数据和使用较高频存储器接口标准在较窄外部数据总线上供应该相同数据。虽然一些特定示例性存储器接口标准针对内部和外部数据总线在本文中被公开,但是所公开的示例不限于与这样的特定存储器接口标准一起使用。替代地,所公开的示例可以被适配为与在不同频率操作和/或提供不同数据访问特征的其它存储器接口标准一起使用。
图1是示例性存储器模块100,具有用于访问多个物理存储器行列104的宽内部数据总线102、相对较窄的外部数据总线106和转换缓冲器芯片108。在图示示例中,窄外部数据总线106是(W)位宽并且以(f)赫兹(Hz)的频率操作,从而提供Wf位/秒的数据访问速度,用于与存储器模块100对接。宽内部数据总线102是(N)x(W)位宽并且以(f)/(N)Hz的频率操作,其中(N)是定位在存储器模块100上的每个逻辑行列的物理存储器行列104的量。这样,宽内部数据总线102提供与窄外部数据总线106相同的带宽。通过在宽内部数据总线102上使用较低的频率,物理存储器行列104中的DRAM芯片可以是低功率、低频和低成本的存储器芯片,而存储器模块100可以在窄外部数据总线106处作为具有高速访问速度的高性能存储器来操作。在一些示例中,物理存储器行列104可以形成逻辑存储器行列,并且存储器模块100的其它物理存储器行列(未示出)可以形成一个或多个其它逻辑存储器行列。
在图1的图示示例中,内部较窄数据总线110形成宽内部数据总线102的不同部分,以使得宽内部数据总线102的宽度(例如位长度)等于所有内部较窄数据总线110的宽度和。图示示例的每个内部较窄数据总线110具有窄外部数据总线106的宽度。在宽内部数据总线102上访问数据涉及在多个内部较窄数据总线110中的一个或多个上同时从物理存储器行列104中的对应物理存储器行列取出数据。当在宽内部数据总线102上同时取回来自四个内部较窄数据总线110的数据时,在窄外部数据总线106上按照四个接续的数据输出周期来访问该数据,因为在宽内部数据总线102上取出的数据量是窄外部数据总线106的宽度的四倍。在这样的示例中,宽内部数据总线102可以按窄外部数据总线106的四分之一那么慢来操作。
在图示示例中,物理存储器行列(例如,物理存储器行列104之一)是使用内部较窄数据总线110之一来访问的存储器区域。单个物理存储器行列104可以由一个或多个存储器芯片形成。例如,如果每个内部较窄数据总线110是32位宽,则每个物理存储器行列104可以是单个的32位宽存储器芯片、两个16位宽存储器芯片或四个8位宽存储器芯片。
图示示例的转换缓冲器芯片108转换宽内部数据总线102和窄外部数据总线106之间的数据交换以使得在宽内部数据总线102上的较慢数据访问能够被用于提供在窄外部数据总线106上的高速数据访问。在图示的示例中,转换缓冲器芯片108与示例性存储器控制器112通信。在本文公开的示例中,存储器控制器112可以被配置为使用高性能DRAM接口(例如双数据速率、版本3(DDR3)、在1600MHz操作的DRAM)与存储器模块100对接,即使物理存储器行列104使用具有低速度接口(例如移动DRAM,诸如操作在400MHz的低功率DDR2(LPDDR2)DRAM)的低功率芯片来实施也是如此。
在图示示例中,转换缓冲器芯片108和形成物理存储器行列104的存储器芯片被定位在DRAM双列直插式存储器模块(DIMM)上。在其它示例中,转换缓冲器芯片108和形成物理存储器行列104的存储器芯片可以被布置在三维堆叠芯片中,或者可以被布置在主处理器板上。
图2示出连接到示例性存储器模块200的逻辑存储器行列的内部数据总线204a-b(iDBUS A和iDBUS B)和内部地址总线202a-b(iABUS 0和iABUS 1)。使用N2架构配置示例性存储器模块200,意味着逻辑存储器行列包括两个物理存储器行列(即N=2个物理行列)。在图2的图示示例中,逻辑行列206a(逻辑行列0)包括两个物理行列205a(物理行列A)和205b(物理行列B),并且逻辑行列206b(逻辑行列1)包括两个物理行列207a(物理行列A)和207b(物理行列B)。物理行列A 205a和207a共享内部数据总线204a(iDBUSA),并且物理行列B 205b和07b共享内部数据总线204b(iDBUSB)。图示示例的存储器模块200包括转换缓冲器208,转换缓冲器208通过内部地址总线202a-b和内部数据总线204a-b与逻辑行列206a-b通信。转换缓冲器208通过外部地址总线212和窄外部数据总线214以通信方式把存储器模块200与示例性存储器控制器210相耦合。
图示示例的内部地址总线202a(iABUS 0)控制独立于第二逻辑行列206b(逻辑行列1)的第一逻辑行列206a(逻辑行列0),并且图示示例的内部地址总线202b(iABUS 1)控制独立于第一逻辑行列206a(逻辑行列0)的第二逻辑行列206b(逻辑行列1)。这通过能够控制彼此独立的逻辑行列206a-b而提供了更高的内部地址总线带宽并且也减小了内部地址总线202a-b上的电负载。
在图示示例中,内部地址总线204a-b被组合以形成宽内部数据总线216。每个内部数据总线204a-b的宽度等于窄外部数据总线214的宽度。照此,宽内部数据总线216的宽度是窄外部数据总线214宽度的两倍。在每个逻辑行列具有更多物理行列的示例中,宽内部数据总线的宽度是窄外部数据总线214宽度的两倍多。在图示示例中,在来自逻辑行列206a-b的在宽内部数据总线216上的单个数据访问同时把数据的第一部分定位在内部数据总线204a上和把数据的第二部分定位在内部数据总线204b上。在宽内部数据总线216上的单个数据访问涉及在窄外部数据总线214上的两个数据访问。这样,逻辑行列206a-b和宽内部数据总线216可以以窄外部数据总线214频率的一半操作。存储器控制器210和存储器模块200之间的存储器访问可以使用相对较高性能的存储器标准(例如在1600MHz的窄外部数据总线214和在800MHz的外部地址总线212)来施行,而存储器模块200内部的存储器访问可以使用相对较低性能的存储器标准(例如在800MHz的内部数据总线204a-b和在400MHz的内部地址总线202a-b)来施行。这实现了使用低频、低功率、低成本存储器来构建存储器模块200,同时提供高性能存储器接口给存储器模块200。
在图示示例中,图2的内部数据总线204a-b(iDBUS A和iDBUS B)可以被用于实施图1的内部窄数据总线110,图2的逻辑行列206a-b中的一个或两个可以被用于实现一个或多个逻辑行列,该逻辑行列包括图1的物理行列104和/或图1中未示出的其它物理行列,图2的转换缓冲器208可以被用于实现图1的转换缓冲器芯片108,图2的宽内部数据总线216可以被用于实现图1的宽内部数据总线202,图2的窄外部数据总线214可以被用于实现图1的窄外部数据总线106,以及图2的存储器控制器210可以被用于实现图1的存储器控制器112。
虽然示例性存储器模块200被示出为N2架构,但是可以使用附加的分离的内部地址和数据总线来实施每个逻辑行列中具有更多物理行列的配置。例如,N4架构可以使用四个内部地址总线和四个内部数据总线来实施,其中内部存储器芯片以外部数据总线(例如窄外部数据总线214)的四分之一频率操作。N8架构可以使用八个内部地址总线和八个内部数据总线来实施,其中内部存储器芯片以外部数据总线(例如窄外部数据总线214)的八分之一频率操作。
图3是具有逻辑存储器行列302a-b(逻辑行列0和逻辑行列1)的示例性存储器模块300, 逻辑存储器行列302a-b具有可独立选择的逻辑子行列304a-b(逻辑行列0的逻辑子行列0和1)以及可独立选择的逻辑子行列306a-b(逻辑行列1的逻辑子行列0和1)。内部数据总线308a(iDBUS A)、308b(iDBUS B)、308c(iDBUS C)和308d(iDBUS D)被示出为连接到逻辑行列302a-b以及子行列304a-b和306a-b。在图示示例中,内部数据总线308a-d中的每一个是宽内部数据总线(例如图1的宽内部数据总线102)的一部分,以使得宽内部数据总线的宽度等于所有内部数据总线308a-d的宽度的和。虽然未示出,示例性存储器模块300还包括四个内部地址总线(iABUS),其被布线到每个逻辑子行列304a-b和306a-b。内部数据总线308a-b和内部地址总线(未示出)被连接在逻辑行列302a-b和转换缓冲器(例如图1的转换缓冲器芯片108)之间。图示示例的存储器模块300可以被用于实施图1的存储器模块100,以使得图3的逻辑行列302a-b中的一个或多个可以被用于实现包括图1的一个或多个物理行列104和/或图1中未示出的其它物理行列的一个或多个逻辑行列,并且图3的内部数据总线308a-d可以被用于实现图1的内部数据总线110。
逻辑子行列304a-b和306a-b的可独立选择性减小了由内部数据总线308a-d形成的宽内部数据总线的访问粒度(granularity),并且减小了激活/预充电功率。例如,在不增加由图3的存储器模块300实现的访问粒度的情况下,使用4x64位字x突发8字=128字节(B)(对于N8架构,这个数量增加)来服务针对N4结构的存储器访问请求,并且激活命令取出四倍多的位到行缓冲器。然而,除非存储器控制器(例如图1的存储器控制器112)实际上访问所有被激活的位,否则存储器模块300在访问被激活但未被使用的位时浪费功率和能量。
为了避免由于被访问但未被使用的位而浪费功率和能量,图示示例的存储器模块300中的逻辑子行列304a-b和306a-b的可独立选性实现仅访问较大逻辑行列302a-b的一部分,以使得仅期望来自行缓冲器的各个位的部分从逻辑行列302a-b取回。因此,在一些示例中,作为对第二逻辑行列302b的两个逻辑子行列306a-b的访问(即对第二逻辑行列302b中所有存储器芯片的访问),可以访问存储器模块300以从图3中示出的大的行缓冲器取回大宽度的数据。在这样的示例中,数据的不同部分同时被定位在内部数据总线308a-d中不同的内部数据总线上。在其它示例中,作为对第一逻辑行列302a的仅第一逻辑子行列304a的访问(即对第一逻辑行列302a中仅第一逻辑子行列304a中的(一个或多个)存储器芯片的访问)而不访问第一逻辑行列302a的第二逻辑子行列304b,可以访问存储器模块300以从图3中示出的小的行缓冲器取回较小宽度的数据。在这样的示例中,数据的不同部分同时被定位在内部数据总线308a-b上而在相同数据访问期间不同时把任何数据定位在内部数据总线308c-d上。在图示示例中,还可以通过仅访问第二逻辑行列302b的第一逻辑子行列306a而不访问第二逻辑行列302b的第二逻辑子行列306b来访问小的行缓冲器。使用这个逻辑子行列可选择性,存储器模块300的宽内部数据总线的有效宽度是动态的,以使得:在一些访问中宽内部数据总线具有与单个逻辑子行列(例如逻辑子行列304a-b和306a-b中的单个逻辑子行列)的小的行缓冲器相等的有效宽度,并且在一些访问中宽内部数据总线具有与整个逻辑行列(例如整个逻辑行列302a或302b)的大的行缓冲器相等的相对较大有效宽度。
虽然存储器模块300被示出为N4架构存储器,每个逻辑行列具有较多物理行列的架构(例如N8、N16等)可以被类似地实施为具有可独立选择的逻辑子行列。在这样的架构中,可以选择宽内部数据总线的更多宽度尺寸选项。例如,小的行缓冲器访问可以访问单个逻辑子行列,中等行缓冲器访问可以访问两个逻辑子行列,并且大的行缓冲器访问可以访问四个逻辑子行列。
图4是示例性转换缓冲器400,其可以与图1和2的示例性存储器模块100和200一起使用以在具有宽内部数据总线410(例如图1的宽内部数据总线102或图2的宽内部数据总线216)的内部接口401和具有窄外部数据总线414(例如图1的窄外部数据总线106或图2的窄外部数据总线214)的外部接口402之间交换数据。图示示例的转换缓冲器400可以被用于实施图1的转换缓冲器芯片108和/或图2的转换缓冲器208。在图示示例中,转换缓冲器400被定位在存储器控制器(MC)403和存储器芯片404之间。在一些示例中,转换缓冲器400和存储器芯片404被定位在存储器模块或存储器器件(诸如DIMM或3D芯片堆叠)上。在其它示例中,转换缓冲器400和存储器芯片404共同定位在具有存储器控制器403的处理器主板上。存储器控制器403可以是图1的存储器控制器112和/或图2的存储器控制器210,并且存储器芯片404可以实施图1的逻辑行列104和/或图2的逻辑行列206a-b。
示例性转换缓冲器400被示出为具有N2结构,针对该架构,内部接口401具有用于第一逻辑存储器行列(例如,图2的第一逻辑存储器行列206a)的第一内部地址总线406a(iABUS0)、用于第二逻辑存储器行列(例如,图2的第二逻辑存储器行列206b)的第二内部地址总线406b(iABUS1)、用于访问逻辑行列中的第一物理存储器行列的第一内部数据总线408a(iDBUSA)以及用于访问逻辑行列中的第二物理存储器行列的第二内部数据总线408b(iDBUSB)。内部数据总线408a-b被组合使用以形成宽内部数据总线410(例如与图1的宽内部数据总线102和/或图2的宽内部数据总线216类似或相同)的相应部分。示例性转换缓冲器400的外部接口402包括外部地址总线412(ABUS)和窄外部数据总线414(DBUS)(例如与图1的宽外部数据总线106和/或图2的宽外部数据总线214类似或相同)。提供内部地址总线406a-b和内部数据总线408a-b用于与存储器芯片404通信,并且提供外部地址总线412和窄外部数据总线414用于与存储器控制器403通信。
在图4的N2架构中,窄外部数据总线414以一频率(f)操作,外部地址总线412以该频率的一半(f/2)操作,内部地址总线406a-b以该频率的四分之一(f/4)操作,并且宽内部数据总线410以该频率的一半(f/2)操作。照此,窄外部数据总线414比宽内部数据总线410相对更快(在图示示例中为两倍快)。
为了把外部地址总线412分开成两个内部地址总线406a-b,转换缓冲器400被提供有对应于第一内部地址总线406a的数据锁存器(例如触发器)418和转换器420以及对应于第二内部地址总线406b的数据锁存器(例如触发器)422和转换器424。在图示示例中,外部地址总线412向数据锁存器418和422提供数据,并且转换器420和424向内部地址总线406a-b提供输出。图示示例的转换器420和424提供地址命令转换逻辑以便把从存储器控制器403在外部地址总线412上接收到的地址和命令行信号转换成用于内部地址总线406a-b的对应地址和命令行信号以访问存储器芯片404中的对应逻辑行列(例如,图2的逻辑存储器行列206a-b和/或包括图1的物理行列104的(一个或多个)逻辑行列)。
为了把窄外部数据总线414与宽内部数据总线410对接,转换缓冲器400被提供有:用于把输入数据从窄外部数据总线414转移到第一内部数据总线408a的数据输入锁存器(例如触发器)426、用于把输入数据从窄外部数据总线414转移到第二内部数据总线408b的数据输入锁存器(例如触发器)428、用于把数据从窄内部数据总线408a输出到窄外部数据总线414的数据输出锁存器(例如触发器)432、以及用于把数据从窄内部数据总线408b输出到窄外部数据总线414的数据输出锁存器(例如触发器)434。
第一和第二内部数据总线408a-b中的每个与图示示例的窄外部数据总线414具有相同的数据宽度。数据输入锁存器426和428协调哪个来自窄外部数据总线414的数据应当被输出到哪个内部数据总线408a。在图示示例中,转换器420和424分析地址并且控制来自外部地址总线412的信号以及控制锁存器426和428来锁存在窄外部数据总线414上从存储器控制器403接收的对应数据字。例如,转换器420和424可以确定在窄外部数据总线414上的数据将被锁存在锁存器426中以用于在宽内部数据总线410的第一内部数据总线408a上输出,并且接下来在窄外部数据总线414上立即显现的数据将被锁存在锁存器428中以用于在宽内部数据总线410的第二内部数据总线408b上输出。当数据被锁存在锁存器426和428中的对应锁存器中时,转换器420和424可以使得锁存器426和428在宽内部数据总线410的内部数据总线408a-b的对应内部数据总线上输出它们的相应数据。这样,转换器420和424可以控制锁存器426和428以把数据写入到对应的逻辑存储器行列(例如,图2的逻辑存储器行列206a-b和/或包括图1的物理行列104的(一个或多个)逻辑行列。
在图示示例中,复用器436耦合在数据输出锁存器432和434与窄外部数据总线414之间以把来自宽内部数据总线410的数据多路传输到窄外部数据总线414。因为在图示示例中宽内部数据总线410是窄外部数据总线414宽度的两倍,所以在单个访问期间在宽内部数据总线410上从存储器芯片404读取的数据由复用器436在窄外部数据总线414上作为两个数据访问输出。这样,宽内部数据总线410可以按窄外部数据总线414速度的一半操作。图示示例的转换器420和424分析外部地址总线412上的地址和控制信号以控制锁存器432和434何时锁存来自宽内部数据总线410的数据和复用器436如何布置来自锁存器432和434的数据以用于在窄外部数据总线414上输出。
虽然转换缓冲器400被示出用于与N2架构存储器模块一起使用,但是,通过添加与锁存器426、428、432和434类似的附加数据输入和数据输出锁存器以及与内部数据总线408a和408b类似的对应内部数据总线以形成宽内部数据总线410的附加部分,转换缓冲器400可以被扩展用于与基于更大N的架构(例如N8、N16等)一起使用。
转换缓冲器400的锁存器418、422、426、428、432和434、转换器420和424、以及复用器436使得外部地址总线412和窄外部数据总线414可以使用转换缓冲器400和存储器控制器403之间的存储器接口标准来操作,该存储器接口标准不同于用于转换缓冲器400和存储器芯片404之间的内部地址总线406a-b和宽内部数据总线410的另一存储器接口标准。图示示例的转换器420和424生成:内部数据访问时序,可用于在转换缓冲器400和存储器芯片404之间的宽内部数据总线410上施行数据访问;以及外部数据访问时序,可用于在存储器控制器403和转换缓冲器400之间的窄外部数据总线414上施行数据访问。
下面的表1示出了在基于不同N的架构的基础上的用于外部接口402的示例性相对较快存储器接口标准和用于内部接口401的较慢存储器接口标准。照此,表1的外部数据访问时序对应于用于以相对较高频率操作外部接口402的相对较快的存储器访问标准,并且内部数据访问定时对应于用于以相对较慢频率操作内部接口401的相对较慢的存储器访问标准。表1中示出的存储器接口标准仅是示例,并且本文公开的示例不限于这样的存储器接口标准和/或操作频率。
表1-针对外部和内部接口的存储器接口标准
外部接口402 内部接口 401
GDDR5 4GHz N4架构,具有DDR3 1GHz
GDDR5 4GHz N8架构,具有LPDDR2 500MHz
DDR3 1.6GHz N2架构,具有DDR3 800MHz
DDR3 1.6GHz N4架构,具有LPDDR2 400MHz
LPDDR2 800MHz N4架构,具有LPDDR 200Mhz
定制接口 20Ghz N4架构,具有XDR2 5GHz
DDR3 1.6GHz N4架构,具有PCRAM 400MHz
表1的示例性存储器接口标准针对转换缓冲器400的内部接口401和外部接口402使用不同的数据访问时序。如表1中所示的,在一些示例中,外部接口402可以利用图形双数据速率(GDDR)DRAM(例如,以4千兆赫兹(4GHz)操作的GDDR版本5(GDDR5)DRAM)的外部数据访问时序来操作,而内部接口401利用针对内部接口401的内部数据访问时序来操作,该内部数据访问时序对应于如下各项之一:例如N4架构中的双数据速率(DDR)DRAM(例如,以1千兆赫兹(1GHz)操作的DDR版本3(DDR3)DRAM),或例如N8架构中的低功率双数据速率(LPDDR)DRAM(例如,以500兆赫兹(500MHz)操作的LPDDR版本2(LPDDR2)DRAM)。还如表1中所示,在一些示例中,外部接口402可以利用双数据速率(DDR)DRAM(例如,以1600兆赫兹(1.6GHz)操作的DDR版本3(DDR3)DRAM)的外部数据访问时序来操作,而内部接口401可以利用内部数据访问时序来操作,该内部数据访问时序对应于如下各项之一:双数据速率(DDR)DRAM(例如,以800兆赫兹(800MHz)操作的DDR版本3(DDR3)DRAM);低功率双数据速率(LPDDR)(例如,以400兆赫兹(400MHz)操作的LPDDR版本2(LPDDR2)DRAM);或非易失性存储器,诸如例如相变随机存取存储器(PCRAM)(例如以400兆赫兹(400MHz)操作)、自旋扭矩转移随机存取存储器(STTRAM)或忆阻器存储器。还如表示1中所示的,在一些示例中,外部接口402可以利用低功率双数据速率版本2(LPDDR2)DRAM(例如,以800兆赫兹(800MHz)操作)的外部数据访问时序来操作,并且内部接口401可以以内部数据访问时序操作,该内部数据访问时序对应于低功率双数据速率(LPDDR)DRAM(例如,以200兆赫兹(200MHz)操作)。还如表1中所示的,在一些示例中,外部接口402可以利用以第一频率(例如20千兆赫兹(20GHz))操作的定制接口(例如非工业标准存储器接口)的外部数据访问时序来操作,并且内部接口401可以利用内部数据访问时序来操作,该内部数据访问时序对应于工业标准存储器接口,诸如以第二频率(例如5千兆赫兹(5GHz))操作的极端数据速率(XDR)动态随机存取存储器,第二频率相对慢于外部接口402的第一频率。
不同存储器接口标准具有不同的地址/命令格式。例如,一些标准使用1周期命令转移,而其它标准使用2周期命令转移。转换器420和424在不需要重新设计或改变存储器控制器的情况下实现不同存储器技术之间的无缝接口。在一些示例中,不同转换缓冲器(像图4的转换缓冲器400)实现了使用不同存储器模块(例如,图1-3的存储器模块100、200和300)来实施高性能存储器系统(例如GDDR5存储器系统),该不同存储器模块具有以不同存储器接口标准操作的不同较低性能存储器芯片。例如,第一存储器模块的转换缓冲器可以转换高性能存储器系统的GDDR5接口和LPDDR2存储器芯片之间的数据交换,而第二存储器模块的另一转换缓冲器可以转换高性能存储器系统的GDDR5接口和DDR3存储器芯片之间的数据交换。
在图4的图示示例中,在宽内部数据总线410和窄外部数据总线414上转移数据块使用相同量的时间,因为虽然宽内部数据总线410更宽并且每个数据访问取回更多的数据,但是它以比窄外部数据总线414低的频率操作。窄外部数据总线414的较高操作频率使得它能够以与宽内部数据总线410从存储器芯片404取回数据所使用的相同量的时间顺序地输出来自宽内部数据总线410的第一内部数据总线408a的数据的第一部分和来自宽内部数据总线410的第二内部数据总线408b的数据的第二部分。为了图示这一点,图5的示例性时序图500示出了使用图4的示例性转换缓冲器400在内部接口401(图4)和外部接口402(图4)之间数据转移的示例性时序。
在图5的图示示例中,转换缓冲器400在外部地址总线412(ABUS)上接收突发16读取请求502。转换缓冲器400把突发16读取请求502转换成两个突发8读取请求504以用于在内部地址总线406a和406b上输出到存储器芯片404。在图示示例中,存储器芯片404在第一内部数据总线408a上返回对应于第一内部地址总线406a上的突发8读取请求504的64字节(B)的第一数据块506,并且同时在第二内部数据总线408b上返回对应于第二内部地址总线406b上的突发8读取请求504的64字节(B)的第二数据块508。例如,如果使用图2的逻辑存储器行列206a和206b来实施存储器芯片404,则第一逻辑行列206a在第一内部数据总线408a上返回64字节的第一数据块,并且第二逻辑行列206b在第二内部数据总线408b上返回64字节的第二数据块。作为组合,第一和第二数据块506和508形成在图4的宽内部数据总线410上同时取回的数据总量的相应部分。如图5中所示,转换缓冲器400在窄外部数据总线414上生成第一和第二数据块506和508的数据输出510,使用相同量的时间用于在宽内部数据总线410上取回第一和第二数据块506。
图6是另一示例性转换缓冲器600,其可以与图1和3的示例性存储器模块100和300一起使用以利用可独立选择的逻辑子行列存储器模块配置来实现数据转移。示例性转换缓冲器600的各部分类似于图4的示例性转换缓冲器400,并且图6中相似的附图标记指代图4中相同或类似的元件。示例性转换缓冲器600与示例性转换缓冲器400的不同在于:它包括示例性输入同步队列602和604以及示例性输出同步队列606和608,其取代图4的锁存器426、428、432和434。不同于图4的锁存器426、428、432和434,同步队列602、604、606和608在转换缓冲器600中被用于在不同数据块之间存在不同的时序时更好地处置数据块的转移。这种不同时序可以在可独立选择的逻辑子行列存储器模块(诸如图3的示例性存储器模块300)中发生。
在图示示例中,内部数据总线408a可以耦合到内部数据总线308a(图3),并且内部数据总线408b可以耦合到内部数据总线308b(图3)。虽然图6中未示出,但是两个附加输入同步队列(类似于输入同步队列602和604)、两个附加输出同步队列(类似于输出同步队列606和608)以及两个附加的对应内部数据总线可以被添加到转换缓冲器600以与图3的内部数据总线308c和308d对接。这样,转换缓冲器600可在图3的N4架构存储器模块300的情况下使用。对基于更高N的架构(例如N8、N16等)的支持也可以通过添加附加同步队列和数据输入缓冲器来提供。此外,转换缓冲器600可以被用于在上面表1中示出的不同示例性存储器接口标准或任何其它存储器接口标准之间转换。
同步队列602、604、606和608使输入数据和输出数据同步,该输入数据和输出数据由于对逻辑子行列(例如图3的逻辑子行列304a-b和306a-b)的不同选择而在存储器芯片404中经受不同数据访问时序。即,与两个或更多逻辑子行列被选择用于对存储器芯片404进行数据访问的情况相比,当单个逻辑子行列被选择用于对存储器芯片404进行数据访问时,数据访问时序通常是不同的。虽然独立选择不同逻辑子行列在数据转移之间引入了不同数据访问时序,但是这种独立选择对于减小浪费的位取回是有用的。即,当针对每个数据访问来自动访问多个逻辑子行列时,从一些逻辑子行列取回的位可能是不需要的但是仍作为包含期望数据的相同受访逻辑子行列的部分被取回。这种不需要的位在取回后被丢弃。通过仅独立选择具有期望数据的逻辑子行列,不需要的位不被取回并且因此,数据访问效率被增加。
通过在完成从宽内部数据总线410到窄外部数据总线414或从窄外部数据总线414到宽内部数据总线410的数据转移之前使数据总线410和414之间的数据排队和同步,同步队列602、604、606和608基本上减小或消除缘自从宽内部数据总线410传播通过到窄外部数据总线414的访问时序的差别。图7的示例性时序图700示出了与图6的宽内部数据总线410通信的内部数据总线308a-c(图3)和图6的窄外部数据总线414之间的数据转移时序。在图示示例中,转换缓冲器600在外部地址总线412上接收突发16读取请求702,并且转换器420和424把突发16读取请求702转换成两个突发8读取请求704以用于在内部地址总线406a-b上输出。图3的所选择的逻辑子行列304a或306b通过各自在内部数据总线308a和308b上转移两个64字节的突发8数据块706a和706b做出响应。图6的输出同步队列606和608同时接收和缓冲数据块706a-b,直到到达在窄外部数据总线414上输出数据的时间时。例如,输出同步队列606缓冲第一数据块706a,并且输出同步队列608缓冲第二数据块706b。随后,转换缓冲器600接收另一突发16读取请求708,并且转换器420和424把突发16读取请求708转换成两个突发8读取请求710以用于在内部地址总线406a-b上输出。随后选择的逻辑子行列304b或306b通过各自在内部数据总线308c和308d上转移两个64字节的突发8数据块712a和712b做出响应。对应于内部数据总线308c和308d的输出同步队列(图6中未示出)同时接收和缓冲数据块712a-b,直到到达在窄外部数据总线414上输出数据的时间时。如图7中所示,当数据块706a-b和712a-b在转换缓冲器600处正被接收并且在它们的相应同步队列中正被排队时,复用器436通过在第一时间在窄外部数据总线414上定位第一数据块706a并且随后在不同于第一时间的第二时间在窄外部数据总线414上定位第二数据块706b而开始在窄外部数据总线414上输出数据块706a-b作为突发16数据转移714。类似地,当同步队列在转换缓冲器600中继续缓冲数据块712a-b,并且当突发16数据块714的输出完成时,复用器436从其相应的同步队列在窄外部数据总线414上以类似方式输出数据块712a-b作为突发16数据块716,而在突发16数据块714和突发16数据块716之间不具有任何延迟。
虽然实施转换缓冲器400和600的示例性方式已在图4和6中被图示,但是图4和/或6中图示的元件、过程和/或器件中的一个或多个可以被组合、分开、重新布置、省略、消除或以任何其它方式实施。另外,示例性转换器420和424和/或更一般地,图4和6的示例性转换缓冲器400和600可以通过硬件、软件、固件和/或硬件、软件和/或固件的任何组合来实施。因此,例如,任何示例性转换器420和424和/或更一般地,示例性转换缓冲器400和600可以通过一个或多个电路、可编程处理器、专用集成电路(ASIC)、可编程逻辑器件(PLD)和/或现场可编程逻辑器件(FPLD)等来实施。当本专利的任何设备或系统权利要求被得知覆盖纯软件和/或固件实施方式时,示例性转换器420或424中的至少一个由此被明确地限定为包括有形计算机可读存储介质,诸如存储该软件和/或固件的固态存储器。再进一步,附加或替代于图4和6中图示的那些,图4和6的示例性转换缓冲器400和600可以包括一个或多个元件、过程和/或器件,和/或可以包括任何或所有图示的元件、过程和器件中的多于一个。
图8是针对N2结构的示例性时序图800,示出了时间延迟气泡802a-b,该时间延迟气泡802a-b在突发访问期间在存储器模块(例如图1-3的存储器模块100、200和300)的宽内部数据总线(例如图1的宽内部数据总线102、图2的宽内部数据总线216以及图4和6的宽内部数据总线410)上发生,但是不传播到存储器模块的外部数据总线(例如图1的外部数据总线106、图2的外部数据总线214以及图4和6的外部数据总线414)。在图示示例中,时间延迟气泡802a-b在DDR3存储器接口标准中的突发突变4(BC4)转移模式期间发生。BC4转移模式实现使用突发4访问来转移数据。然而,这使得DRAM芯片在特定时间量期间不可访问,其在图示示例中与转移突发4数据块所要求的时间量相同。在图示示例中,时间延迟气泡802a发生在第一数据804和第二数据806从第一逻辑存储器行列(例如,图2的逻辑行列206a和/或图3的逻辑行列302)的取回之间,并且时间延迟气泡802a发生在第三数据808和第四数据810从第二逻辑存储器行列(例如,图2的逻辑行列206b和/或图3的逻辑行列302b)的取回之间。在一些示例中,第一数据804和第三数据808可以从图2的物理行列A 205a取回,并且第二数据806a和第四数据810可以从图2的物理行列B 205b取回。在图8的图示示例中,时间延迟气泡802a-b导致不期望的总线利用性能。然而,使用本文公开的示例,转换缓冲器(诸如图4和6的转换缓冲器400和600)可以被用于防止把时间延迟气泡802a-b从宽内部数据总线804传播到窄外部数据总线806。
在图8的图示示例中,当时间延迟气泡802a和用于在宽内部数据总线804上施行BC4转移的时间的和与用于在窄外部数据总线806上的对应突发8转移的外部转移时间匹配时,通过在上面关于图6描述的数据输出同步队列(例如图6的同步队列602、604、606、608)中缓冲输出数据812和814和/或通过在上面关于图4描述的数据输出锁存器中锁存输出数据812和814,本文所公开的示例可以被用于掩盖或防止把时间延迟气泡802a-b传播到窄外部数据总线806。这样,输出数据812(其包括数据804和808)在窄外部数据总线806上被输出,紧随其后的是输出数据814(其包括数据806和810),而在输出数据812和输出数据814之间不具有任何时间延迟,如图8的图示示例中所示的。
在图示示例中,当访问相同的逻辑存储器行列时,气泡不利后果是tBURST/2,但是当在每个BC4访问的逻辑存储器行列之间切换时,气泡不利后果是tRTRS。通常,在DDR3中tBURST/2是四个DRAM时钟周期,而在一些系统中tRTRS是两个DRAM时钟周期(例如tRTRS不是固定参数并且在不同设计中可以不同)。因此,如果在具有内部BC4访问能力的存储器模块中宽内部总线的频率(f)(例如DRAM频率)大于或等于(4+2)/8 x f,则存储器模块提供外部突发8访问能力,并且tRTRS是内部数据总线的2个周期。
图9是示例性存储配置,用于在存储器模块(例如图1-3的存储器模块100、200和300)中存储数据902a-b和错误校正代码(ECC)904。图10是示例性数据转移配置1000,用于在图4和6的转换缓冲器400和600与存储器控制器(例如图1的存储器控制器112、图2的存储器控制器210或图4和6的存储器控制器403)之间转移数据902a-b和对应的ECC904。
图9和10的示例性配置可以被用于实施chipkill(芯片去除)校正,其是能够容许芯片故障的存储器保护机制。通常chipkill校正要求128位宽的通道。因此,传统存储器控制器在锁步模式中使用两个64位通道。
本文公开的宽内部数据总线架构实现了对包括具有64位宽度的窄外部数据总线(例如图1的窄外部数据总线106、图2的窄外部数据总线214和图4和6的窄外部数据总线414)的单个DIMM的chipkill校正水平存储器保护。例如,N2架构存储图9中示出的数据902a-b和ECC904。图9和10的图示示例采用内部突发4访问能力和8位DRAM芯片,其中符号Dx表示8位数据,并且符号Ey表示ECC 904。在一些示例中,数据902可以被存储在与数据902b分离的逻辑存储器行列中,并且ECC 904可以被存储在再另一分离的逻辑存储器行列中。
在图10的图示示例中,转换缓冲器(例如图4的转换缓冲器400和/或图6的转换缓冲器600)被配置为知晓本文公开的示例性存储器模块的内部DRAM和通道结构。转换缓冲器然后可以把来自图9中示出的内部通道的数据块重新组织成图10中所示的数据布局以应用chipkill校正水平的ECC。
在一些示例中,第一转换器420(图4和6)引起对与数据902a的第一数据块906a对应的第一chipkill ECC(例如ECC904的E0)的取回,第二转换器424(图4和6)引起对与数据902b的第二数据块908对应的第二chipkill ECC(例如ECC904的E1)的取回。第一输出数据同步队列606(图6)把所取回的第一数据块906与第一chipkill ECC(E0)(在图10中由附图标记1002表示)存储在一起,以便在第一时间在窄外部数据总线414上同时输出第一数据块906和第一chipkill ECC(E0)。此外,第二输出数据同步队列608(图6)把第二数据块908与第二chipkill ECC(E1)(在图10中由附图标记1004表示)存储在一起,以便在与第一数据块906和第一chipkill ECC(E0)被输出的第一时间不同的第二时间在窄外部数据总线414上同时输出第二数据块908和第二chipkill ECC(E1)。
图11是表示指令和/或动作的流程图,该指令和/或动作可以被施行以使用本文中公开的示例访问具有宽内部数据总线和窄外部数据总线的存储器模块中的数据。图11的流程图表示用于实施转换缓冲器108(图1)、208(图2)和/或400(图4和6)的操作。在该示例中,该操作由一个或多个电路(例如,逻辑和/或模拟电路)施行。在一些示例中,基于由图4和6的转换器420和424执行的计算机可读指令来施行这些操作中的一些。这样的计算机可读指令可以被体现在存储在有形计算机可读存储介质(诸如闪存、只读存储器(ROM)或DRAM)上的固件或软件中,但是这样的一些操作和/或其部分可以替代地由不是转换器420和/或424的器件执行,和/或被体现在专门硬件中。另外,虽然关于图11中图示的流程图描述了示例性操作,但是可以替代地使用实施示例性转换缓冲器108、208和/或400的许多其它方法。例如,各方框的执行顺序可以被改变,和/或所描述的一些方框可以被改变、消除或组合。
如上面提到的,图11的示例性操作可以使用存储在有形计算机可读介质(诸如闪存、只读存储器(ROM)、高速缓存器、随机存取存储器(RAM)和/或信息可以被存储在其中达任何持续时间(例如达延长的时间段、永久地、简单情况、用于临时缓冲和/或用于高速缓存信息)的任何其它存储介质)上的编码指令(例如计算机可读指令)来实施。如本文中使用的,术语“有形计算机可读介质”被明确限定为包括任何类型的计算机可读存储装置并且排除传播信号。附加地或替代地,图11的示例性操作可以使用存储在非临时性计算机可读介质(例如闪存、只读存储器、高速缓存器、随机存取存储器和/或信息可以被存储在其中达任何持续时间(例如达延长的时间段、永久地、简单情况、用于临时缓冲和/或用于高速缓存信息)的任何其它存储介质)上的编码指令(例如计算机可读指令)来实施。如本文使用的,术语“非临时性计算机可读介质”被明确地限定为包括任何类型的计算机可读介质并且排除传播信号。如本文中使用的,当短语“至少”在权利要求的引言中被用作过渡术语时,它与术语“包括”一样是开放性术语。因此,使用“至少”作为其引言中的过渡术语的权利要求可以包括权利要求中所明确叙述的那些之外的元件。
在图11中,开始,(一个或多个)转换器420和/或424(图4和6)选择逻辑子行列(方框1102)。例如,(一个或多个)转换器420和/或424可以在(一个或多个)内部地址总线406a和/或406b上输出地址(图4和6)以基于在外部地址总线412(图4和6)处接收的地址选择或激活独立于图3的逻辑子行列306a-b并与其互斥的逻辑子行列304a-b。转换缓冲器400(或600)在宽内部数据总线410(图4和6)上同时访问所选逻辑子行列304a-b中的第一数据(方框1104)。复用器436(图4和6)在第一时间(T1)把所访问的第一数据的第一部分定位在窄外部数据总线414(图4和6)上(方框1106)。复用器436在第二时间(T2)把所访问的第一数据的第二部分定位在窄外部数据总线414(图4和6)上(方框1108)。在图示示例中,第一时间(T1)在时间上与第二时间(T2)分离(但是可以相继发生而没有居间的时间延迟),第一数据的第一部分的宽度等于窄外部数据总线414的宽度,并且第一数据的第二部分的宽度也等于窄外部数据总线414的宽度。
(一个或多个)转换器420和/或424(图4和6)选择逻辑子行列304a-b的子集(方框1110)。例如,(一个或多个)转换器420和/或424可以在内部地址总线406a上输出地址以基于在外部地址总线412处接收的另一地址选择或激活逻辑子行列304a,逻辑子行列304a独立于逻辑子行列304b和306a-b并与其互斥。在四个逻辑子行列304a-b和306a-b或更多逻辑子行列在方框1102处被选择的示例中,在方框1110处选择少于全部的这些逻辑子行列的逻辑子行列。转换缓冲器400(或600)在宽内部数据总线410上访问所选逻辑子行列304a中的第二数据(方框1112)。在图示示例中,与在方框1104处用于访问第一数据的较大部分(例如第一和第二内部数据总线408a-b)相比,在方框1112处第二数据在宽内部数据总线410的较小部分上(例如图4和6的第一内部数据总线408a)被访问。在图示示例中,复用器436(图4和6)在第三时间(T3)把整个第二数据定位在窄外部数据总线414(图4和6)上(方框1114)。在图示示例中,第二数据具有与窄外部数据总线414的宽度相同的宽度。因此,仅需要单个数据输出来在窄外部数据总线414上转移第二数据,然而在方框1106和1108处使用两个数据输出周期来在窄外部数据总线414上输出第一数据。此外,第三时间(T3)在时间上与第一时间(T1)和第二时间(T2)分离,但是第三时间(T3)可以跟随第二时间(T2)相继地发生,而不具有居间的时间延迟。然后图11的示例性方法结束。
图11的方法可以被用于对存储器模块的写访问和/或读访问。图11的操作被布置为在读访问中使用。为了在写访问中使用,方框1106和1108可以在方框1102和1104之前被施行,并且方框1114可以在方框1110和1112之前被施行。
虽然上面公开了示例性方法、设备和制品(除了其它部件特别包括在硬件上执行的软件),但是应当注意的是,这样的方法、设备和制品仅是说明性的,并且不应当被认为是限制性的。例如,设想了这些硬件和软件部件中的任何或所有可以被排它地体现在硬件中、排它地体现在软件中、排它地体现在附件中或在硬件、软件和/或固件的任意组合中。因此,虽然上面描述了示例性方法、设备和制品,但是所提供的示例不是实施这样的方法、设备和制品的唯一方式。因此,虽然特定方法、设备和制品已在本文中描述,但是本专利的覆盖范围不限于此。相反地,本专利覆盖字面上或在等同原则下完全地落入权利要求范围内的所有方法、设备和制品。

Claims (16)

1.一种访问数据的方法,包括:
对至少第一和第二独立可选逻辑子行列施行同时数据访问以便经由存储器器件中的宽内部数据总线访问第一数据,所述存储器器件具有转换缓冲器芯片、独立可选逻辑子行列中的存储器芯片、把转换缓冲器芯片连接到存储器控制器的窄外部数据总线以及在转换缓冲器芯片和存储器芯片之间的宽内部数据总线;
仅对第一独立可选逻辑子行列施行数据访问以经由宽内部数据总线访问第二数据;以及
在分离的数据转移期间把第一数据的第一部分、第一数据的第二部分和第二数据定位在窄外部数据总线上。
2.如权利要求1所述的方法,还包括:其中与窄外部数据总线相比,宽内部数据总线操作得相对较慢。
3.如权利要求2所述的方法,其中宽内部数据总线的宽度是窄外部数据总线宽度的至少两倍。
4.如权利要求2所述的方法,其中访问第一数据包括把来自第一逻辑子行列的第一数据的第一部分定位在宽内部数据总线的第一部分上,并且同时把来自第二逻辑子行列的第一数据的第二部分定位在宽内部数据总线的第二部分上,并且其中访问第二数据包括把整个第二数据定位在宽内部数据总线的第一部分上,而不同时在宽内部数据总线的第二部分上定位任何数据。
5.一种用于访问数据的设备,包括:
第一和第二输入数据同步队列,定位在存储器器件的窄外部数据总线和存储器器件的宽内部数据总线之间;
第一和第二输出数据同步队列,定位在窄外部数据总线和宽内部数据总线之间以便从宽内部数据总线同时接收第一数据和第二数据;
复用器,与第一和第二输出数据同步队列通信以在第一时间把来自第一输出数据同步队列的第一数据定位在窄外部数据总线上,并且在不同于第一时间的第二时间把来自第二输出数据同步队列的第二数据定位在窄外部数据总线上;
第一转换器,定位在存储器器件的外部地址总线和存储器器件的第一内部地址总线之间;以及
第二转换器,定位在外部地址总线和存储器器件的第二内部地址总线之间,第一和第二转换器生成对应于存储器器件的存储器芯片的内部数据访问时序,所述内部数据访问时序不同于与窄外部数据总线上的数据访问对应的外部数据访问时序。
6.如权利要求5所述的设备,其中第一数据来自第一存储器行列并且第二数据来自第二存储器行列,复用器把来自第一和第二输出数据同步队列的第一数据和第二数据输出到窄外部数据总线,同时第一和第二转换器引起从第三存储器行列取回第三数据以用于存储在第一输出数据同步队列中并且从第四存储器行列取回第四数据以用于存储在第二输出数据同步队列中。
7.如权利要求5所述的设备,其中外部数据访问时序对应于与以第一频率操作窄外部数据总线相关联的第一存储器访问标准,并且内部数据访问时序对应于与以第二频率操作宽内部数据总线相关联的第二存储器访问标准,第二频率与第一频率相比相对较慢。
8.如权利要求5所述的设备,其中外部数据访问时序对应于图形双数据速率(GDDR)动态随机存取存储器,并且内部数据访问时序对应于双数据速率(DDR)动态随机存取存储器或低功率双数据速率(LPDDR)动态随机存取存储器之一。
9.如权利要求5所述的设备,其中外部数据访问时序对应于双数据速率(DDR)动态随机存取存储器,并且内部数据访问时序对应于以下各项之一:双数据速率(DDR)动态随机存取存储器;低功率双数据速率(LPDDR)动态随机存取存储器;或非易失性存储器,包括相变随机存取存储器、自旋扭矩转移随机存取存储器或忆阻器存储器。
10.如权利要求5所述的设备,其中外部数据访问时序对应于低功率双数据速率版本2(LPDDR2)动态随机存取存储器,并且内部数据访问时序对应于低功率双数据速率(LPDDR)动态随机存取存储器。
11.如权利要求5所述的设备,其中外部数据访问时序对应于与以第一频率操作窄外部数据总线相关联的非工业标准存储器接口,并且内部数据访问时序对应于与以第二频率操作宽内部数据总线相关联的工业标准存储器接口,第二频率与第一频率相比相对较慢。
12.如权利要求5所述的设备,其中第一转换器引起第一chipkill错误校正代码的取回,第一chipkill错误校正代码对应于来自存储器器件的第一数据,第二转换器引起第二chipkill错误校正代码的取回,第二chipkill错误校正代码对应于来自存储器器件的第二数据,第一输出数据同步队列把第一数据与第一chipkill错误校正代码存储在一起以在窄外部数据总线上同时输出第一数据和第一chipkill错误校正代码,并且第二输出数据同步队列把第二数据与第二chipkill错误校正代码存储在一起以在窄外部数据总线上同时输出第二数据和第二chipkill错误校正代码。
13.一种存储器模块,包括:
缓冲器,用于与存储器控制器的外部数据总线和外部地址总线通信;以及
多个存储器芯片,经由对应的内部数据总线和内部地址总线以通信方式耦合到缓冲器,所述缓冲器:
从存储器芯片的第一行列取回第一数据和第二数据,在第一和第二数据的取回之间具有第一时间延迟,
从存储器芯片的第二行列取回第三数据和第四数据,在第三和第四数据的取回之间具有第二时间延迟,
在外部数据总线上输出第一、第二、第三和第四数据,在第一、第二、第三和第四数据的任何之间不具有任何时间延迟。
14.如权利要求13所述的存储器模块,其中缓冲器响应于外部地址总线上的突发命令而发起对第一、第二、第三和第四数据的取回,并且缓冲器通过几乎同时地发送突发突变命令到第一和第二存储器行列来取回第一、第二、第三和第四数据。
15.如权利要求13所述的存储器模块,其中第一和第二时间延迟是与使用突发突变4命令取回第一、第二、第三和第四数据相关联的突发突变4(BC4)不利后果。
16.如权利要求13所述的存储器模块,还包括数据输出同步队列,用于在外部数据总线上输出第一、第二、第三和第四数据之前缓冲第一、第二、第三和第四数据,而在第一、第二、第三和第四数据的任何之间不具有任何时间延迟。
CN201280075199.3A 2012-06-08 2012-06-08 访问存储器 Pending CN104508646A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2012/041675 WO2013184139A1 (en) 2012-06-08 2012-06-08 Accessing memory

Publications (1)

Publication Number Publication Date
CN104508646A true CN104508646A (zh) 2015-04-08

Family

ID=49712394

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280075199.3A Pending CN104508646A (zh) 2012-06-08 2012-06-08 访问存储器

Country Status (4)

Country Link
US (1) US9773531B2 (zh)
EP (1) EP2859457A4 (zh)
CN (1) CN104508646A (zh)
WO (1) WO2013184139A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106649190A (zh) * 2015-10-29 2017-05-10 池州职业技术学院 一种电子产品一体化快速存储集成系统
CN108538337A (zh) * 2017-03-02 2018-09-14 英特尔公司 具有固定带宽接口的存储器设备中的集成的错误检查和校正(ecc)
CN110727401A (zh) * 2019-09-09 2020-01-24 无锡江南计算技术研究所 一种访存系统

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140189227A1 (en) * 2012-12-28 2014-07-03 Samsung Electronics Co., Ltd. Memory device and a memory module having the same
TWI550403B (zh) * 2013-04-02 2016-09-21 晨星半導體股份有限公司 記憶體控制器及其記憶體位址產生方法
US20150089127A1 (en) * 2013-09-23 2015-03-26 Kuljit S. Bains Memory broadcast command
US20150106547A1 (en) * 2013-10-14 2015-04-16 Micron Technology, Inc. Distributed memory systems and methods
US9870325B2 (en) 2015-05-19 2018-01-16 Intel Corporation Common die implementation for memory devices with independent interface paths
US10381327B2 (en) * 2016-10-06 2019-08-13 Sandisk Technologies Llc Non-volatile memory system with wide I/O memory die
CN109416656B (zh) 2016-10-31 2023-08-11 拉姆伯斯公司 混合存储器模块
US10963404B2 (en) * 2018-06-25 2021-03-30 Intel Corporation High bandwidth DIMM
US10884958B2 (en) * 2018-06-25 2021-01-05 Intel Corporation DIMM for a high bandwidth memory channel
KR102591124B1 (ko) * 2018-07-25 2023-10-19 에스케이하이닉스 주식회사 반도체장치
KR20200048272A (ko) * 2018-10-29 2020-05-08 에스케이하이닉스 주식회사 반도체장치
US10817420B2 (en) * 2018-10-30 2020-10-27 Arm Limited Apparatus and method to access a memory location
KR20240142588A (ko) 2018-12-19 2024-09-30 마이크론 테크놀로지, 인크 가변적인 물리 치수들, 메모리 포맷들, 및 동작 능력들을 가진 메모리 디바이스들, 모듈들 및 메모리 디바이스들을 가진 시스템들
US11636040B2 (en) * 2019-05-24 2023-04-25 Texas Instruments Incorporated Methods and apparatus for inflight data forwarding and invalidation of pending writes in store queue
US11699471B2 (en) 2019-09-25 2023-07-11 Intel Corporation Synchronous dynamic random access memory (SDRAM) dual in-line memory module (DIMM) having increased per data pin bandwidth
KR20210089804A (ko) 2020-01-08 2021-07-19 삼성전자주식회사 메모리 모듈 및 이를 포함하는 메모리 시스템
KR20210155270A (ko) * 2020-06-15 2021-12-22 에스케이하이닉스 주식회사 메모리 장치 및 이를 포함하는 메모리 시스템
US11226767B1 (en) * 2020-09-30 2022-01-18 Micron Technology, Inc. Apparatus with access control mechanism and methods for operating the same
US11798604B2 (en) * 2021-09-01 2023-10-24 Dell Products L.P. Memory architecture having ranks with variable data widths

Family Cites Families (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0744326A (ja) * 1993-07-30 1995-02-14 Hitachi Ltd 記憶装置システム
US6212597B1 (en) 1997-07-28 2001-04-03 Neonet Lllc Apparatus for and method of architecturally enhancing the performance of a multi-port internally cached (AMPIC) DRAM array and like
US6138219A (en) 1998-03-27 2000-10-24 Nexabit Networks Llc Method of and operating architectural enhancement for multi-port internally cached dynamic random access memory (AMPIC DRAM) systems, eliminating external control paths and random memory addressing, while providing zero bus contention for DRAM access
US6034900A (en) 1998-09-02 2000-03-07 Micron Technology, Inc. Memory device having a relatively wide data bus
US8631066B2 (en) * 1998-09-10 2014-01-14 Vmware, Inc. Mechanism for providing virtual machines for use by multiple users
US6256713B1 (en) * 1999-04-29 2001-07-03 International Business Machines Corporation Bus optimization with read/write coherence including ordering responsive to collisions
US6782410B1 (en) * 2000-08-28 2004-08-24 Ncr Corporation Method for managing user and server applications in a multiprocessor computer system
FR2820850B1 (fr) * 2001-02-15 2003-05-09 Bull Sa Controleur de coherence pour ensemble multiprocesseur, module et ensemble multiprocesseur a architecture multimodule integrant un tel controleur
JP2003308698A (ja) * 2002-04-12 2003-10-31 Toshiba Corp 不揮発性半導体メモリ装置
GB2392742B (en) * 2002-09-04 2005-10-19 Advanced Risc Mach Ltd Synchronisation between pipelines in a data processing apparatus
US7003635B2 (en) * 2002-10-03 2006-02-21 Hewlett-Packard Development Company, L.P. Generalized active inheritance consistency mechanism having linked writes
US20050125607A1 (en) * 2003-12-08 2005-06-09 International Business Machines Corporation Intelligent caching of working directories in auxiliary storage
JP4429780B2 (ja) * 2004-03-31 2010-03-10 富士通株式会社 記憶制御装置、制御方法、および制御プログラム。
TWI299497B (en) 2004-06-24 2008-08-01 Via Tech Inc Method and related apparatus for accessing memory apparatus
US7274913B2 (en) 2004-10-15 2007-09-25 Broadcom Corporation Transceiver system and method of using same
US7196942B2 (en) * 2004-10-20 2007-03-27 Stmicroelectronics Pvt. Ltd. Configuration memory structure
US7631219B2 (en) * 2004-10-22 2009-12-08 Broadcom Corporation Method and computer program product for marking errors in BIOS on a RAID controller
US7269715B2 (en) * 2005-02-03 2007-09-11 International Business Machines Corporation Instruction grouping history on fetch-side dispatch group formation
US7454566B1 (en) * 2005-05-02 2008-11-18 Nvidia Corporation System and method for adaptive RAID configuration
US8619452B2 (en) 2005-09-02 2013-12-31 Google Inc. Methods and apparatus of stacking DRAMs
US8335894B1 (en) * 2008-07-25 2012-12-18 Google Inc. Configurable memory system with interface circuit
US7872892B2 (en) * 2005-07-05 2011-01-18 Intel Corporation Identifying and accessing individual memory devices in a memory channel
US7562271B2 (en) * 2005-09-26 2009-07-14 Rambus Inc. Memory system topologies including a buffer device and an integrated circuit memory device
US7464225B2 (en) * 2005-09-26 2008-12-09 Rambus Inc. Memory module including a plurality of integrated circuit memory devices and a plurality of buffer devices in a matrix topology
US7886111B2 (en) * 2006-05-24 2011-02-08 Compellent Technologies System and method for raid management, reallocation, and restriping
US7721140B2 (en) * 2007-01-02 2010-05-18 International Business Machines Corporation Systems and methods for improving serviceability of a memory system
US8990527B1 (en) * 2007-06-29 2015-03-24 Emc Corporation Data migration with source device reuse
US8892942B2 (en) * 2007-07-27 2014-11-18 Hewlett-Packard Development Company, L.P. Rank sparing system and method
US7899983B2 (en) 2007-08-31 2011-03-01 International Business Machines Corporation Buffered memory module supporting double the memory device data width in the same physical space as a conventional memory module
US20090094413A1 (en) * 2007-10-08 2009-04-09 Lehr Douglas L Techniques for Dynamic Volume Allocation in a Storage System
US7970994B2 (en) * 2008-03-04 2011-06-28 International Business Machines Corporation High performance disk array rebuild
US8321758B2 (en) 2008-08-05 2012-11-27 Advanced Micro Devices, Inc. Data error correction device and methods thereof
US8130528B2 (en) * 2008-08-25 2012-03-06 Sandisk 3D Llc Memory system with sectional data lines
US8103842B2 (en) * 2008-11-17 2012-01-24 Hitachi, Ltd Data backup system and method for virtual infrastructure
JP5104817B2 (ja) * 2009-06-30 2012-12-19 富士通株式会社 ストレージシステム、ストレージ制御装置及び方法
JP5183650B2 (ja) * 2010-02-17 2013-04-17 株式会社日立製作所 計算機システム,計算機システムにおけるバックアップ方法及びプログラム
US9619472B2 (en) * 2010-06-11 2017-04-11 International Business Machines Corporation Updating class assignments for data sets during a recall operation
US8566546B1 (en) * 2010-09-27 2013-10-22 Emc Corporation Techniques for enforcing capacity restrictions of an allocation policy
US8478911B2 (en) * 2011-01-31 2013-07-02 Lsi Corporation Methods and systems for migrating data between storage tiers
US9432298B1 (en) * 2011-12-09 2016-08-30 P4tents1, LLC System, method, and computer program product for improving memory systems
US20130007373A1 (en) * 2011-06-30 2013-01-03 Advanced Micro Devices, Inc. Region based cache replacement policy utilizing usage information
US8898385B2 (en) * 2011-09-09 2014-11-25 Lsi Corporation Methods and structure for load balancing of background tasks between storage controllers in a clustered storage environment
US9098309B2 (en) * 2011-09-23 2015-08-04 Qualcomm Incorporated Power consumption optimized translation of object code partitioned for hardware component based on identified operations
WO2013061382A1 (ja) * 2011-10-28 2013-05-02 株式会社日立製作所 計算機システム及びストレージ管理方法
US9329901B2 (en) * 2011-12-09 2016-05-03 Microsoft Technology Licensing, Llc Resource health based scheduling of workload tasks
US8918672B2 (en) * 2012-05-31 2014-12-23 International Business Machines Corporation Maximizing use of storage in a data replication environment
US8885382B2 (en) * 2012-06-29 2014-11-11 Intel Corporation Compact socket connection to cross-point array

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106649190A (zh) * 2015-10-29 2017-05-10 池州职业技术学院 一种电子产品一体化快速存储集成系统
CN108538337A (zh) * 2017-03-02 2018-09-14 英特尔公司 具有固定带宽接口的存储器设备中的集成的错误检查和校正(ecc)
CN108538337B (zh) * 2017-03-02 2024-04-05 太浩研究有限公司 具有固定带宽接口的存储器设备中的集成的错误检查和校正(ecc)
CN110727401A (zh) * 2019-09-09 2020-01-24 无锡江南计算技术研究所 一种访存系统

Also Published As

Publication number Publication date
EP2859457A1 (en) 2015-04-15
EP2859457A4 (en) 2016-05-11
WO2013184139A1 (en) 2013-12-12
US20150302904A1 (en) 2015-10-22
US9773531B2 (en) 2017-09-26

Similar Documents

Publication Publication Date Title
CN104508646A (zh) 访问存储器
US20230395103A1 (en) Memory bandwidth aggregation using simultaneous access of stacked semiconductor memory die
CN102576565B (zh) 利用存储模块上的分布式字节缓冲器的系统和方法
US10431292B2 (en) Method and apparatus for controlling access to a common bus by multiple components
KR100588599B1 (ko) 메모리 모듈 및 메모리 시스템
JP2019061677A (ja) 積層型メモリ装置及びその動作方法並びにメモリシステム
US11054992B2 (en) Memory module and memory system including the memory module
KR20110135299A (ko) 반도체 메모리 장치
WO2007134319A3 (en) Multi-chip package for a flash memory
KR20150031400A (ko) 고 대역폭 메모리 및 저 대역폭 메모리에 연결되는 응용 프로세서를 포함하는 반도체 장치 및 그것의 채널 인터리빙 방법
US9330218B1 (en) Integrated circuits having input-output circuits with dedicated memory controller circuitry
US8917119B2 (en) Output driving circuit capable of decreasing noise, and semiconductor memory device including the same
TW201705133A (zh) 減少負載的記憶體模組
US10963404B2 (en) High bandwidth DIMM
WO2022047040A1 (en) Shared error correction code (ecc) circuitry
US20090237971A1 (en) Semiconductor memory devices with interface chips having memory chips stacked thereon
US20120176849A1 (en) Semiconductor apparatus and memory system including the same
US20230307030A1 (en) Adaptive Wordline Refresh
US20230195368A1 (en) Write Request Buffer
US11281604B2 (en) Multiple memory type shared memory bus systems and methods
CN101256472B (zh) 接口连接处理器和存储器的命令转换方法、设备和系统
US10747693B2 (en) Semiconductor device with a time multiplexing mechanism for size efficiency
US10114587B2 (en) Memory device using extra read and write commands
CN114667509A (zh) 一种存储器、网络设备及数据访问方法
US20180293132A1 (en) Semiconductor device

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20150408

WD01 Invention patent application deemed withdrawn after publication