CN101836194B - 控制数据信道的优化解决方案 - Google Patents
控制数据信道的优化解决方案 Download PDFInfo
- Publication number
- CN101836194B CN101836194B CN200880112465.9A CN200880112465A CN101836194B CN 101836194 B CN101836194 B CN 101836194B CN 200880112465 A CN200880112465 A CN 200880112465A CN 101836194 B CN101836194 B CN 101836194B
- Authority
- CN
- China
- Prior art keywords
- bit
- controller hub
- memory controller
- memory
- datapath
- 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.)
- Active
Links
- 230000015654 memory Effects 0.000 claims abstract description 207
- 230000009183 running Effects 0.000 claims description 24
- 238000000034 method Methods 0.000 claims description 10
- 238000012546 transfer Methods 0.000 claims description 5
- 238000012545 processing Methods 0.000 claims description 4
- 230000005540 biological transmission Effects 0.000 claims 4
- 238000013461 design Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000010276 construction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000002147 killing effect Effects 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000005381 potential energy Methods 0.000 description 2
- 230000007306 turnover Effects 0.000 description 2
- 101100400452 Caenorhabditis elegans map-2 gene Proteins 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 230000008929 regeneration Effects 0.000 description 1
- 238000011069 regeneration method Methods 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1684—Details of memory controller using multiple buses
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Dram (AREA)
- Memory System (AREA)
- Bus Control (AREA)
- Microcomputers (AREA)
- Multi Processors (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明提供一种DRAM控制器(103),可包括两个子控制器(406、404),每个能够操作各自N位接口(例如64位接口)。每个子控制器也可配置以成为具有(2*N)-位(例如128位)关于用以控制逻辑128位数据路径的控制逻辑的能力。在联动模式(ganged mode)中,每个子控制器可逻辑地如同它是操作在128位数据块(chunk)的数据的那样运作(也就是操作该整个128位数据路径),尽管可藉由使该子控制器的其中一者运作指令与数据的每个(2*N)-位数据块的第一N位部分,并使其它子控制器运作具有数据的每个(2*N)-位数据块的对应剩下N位部分的该指令的“复制”,以达成实际全频宽。一旦该BIOS已经配置与初始化该两个DRAM控制器以运作在联动模式中,该BIOS和所有软件可不再需要知道两个内存控制器系用来存取单一(2*N)-位宽的信道。
Description
技术领域
本发明系大体上关于内存系统的领域,且尤关于控制多重内存信道。
背景技术
现今计算机系统变得愈来愈复杂,且先进的技术导致处理器速度更为增加,要将系统效能最佳化变得愈来愈难,其效能往往大大地取决于该既定系统的内存的频宽(bandwidth)和等待时间(latency)。因此,存取内存时用最小的等待时间,并用最高的频宽系可增进且/或最佳化该系统的效能。当存取该内存与完成既定内存要求所需的时间增加时,该系统的速度降低。所以,任何存取时间的减少,和/或在该内存总线的整体输贯量(throughput)的增加系可有益于系统效能。
包含桌上型计算机、图形转接卡及尤其笔记型计算机的许多系统系使用动态随机存取内存(dynamic random access memory,简称DRAM)。DRAM装置在包含且最显著的静态随机存取内存(staticrandom access memory,简称SRAM)装置的其它内存技术中具有许多优势。这些优点中最重要的是较高的储存密度和较少的电力消耗。然而,当准备在每个之后的存取的DRAM装置内的该内存单元和其它组件时,这些优点造成许多时间延迟的损失,例如在每个读取/写入存取之前/后。这样的延迟的例子包含执行列预充电(row precharge)、列再生(row refresh)、与列启动(row activation)。当遭受这些延迟时,为了更精确地管理与控制记忆体操作,已经创造出传送在读取/写入存取之间的额外的指令,其导致额外的负担(overhead)。为了藉由使内存管理对于中央处理单元是透通的(tranparent)以改善系统效能和设计,典型上由专用的内存控制器来管理内存存取,该内存控制器控制进出该内存的数据流并执行必要的内存管理指令,例如列预充电与列启动。
今日使用的大部分的DRAM系属于该双倍数据速率同步DRAM(double-data-rate synchronous DRAM,简称DDR SDRAM)家族。DDR SDRAM(包含DDR2和DDR3)系藉由依据该系统的频率(clock)来在选通讯号(strobe signal)的上升和下降边缘上转移数据,以达成大于单一数据速率SDRAM的频宽。这有效地加倍该转移速率,因此增进系统效能,而不需增加该内存总线的频率。除了数据转移速度之外,系统的效能将也受该内存总线宽度的影响。一般说来,该总线宽度系取决于多少平行数据线是可用于沟通该内存单元。内存控制器的总线宽度也将决定该控制器一次可管理多少位数据。这样的范围可从早期系统中的8位,到更复杂系统和图形卡中的256位。要进一步增进DRAM效能,在此案例中藉由寻址该总线宽度,许多主机板系配置有双信道内存(dual-channel memory),其藉由有效加倍该总线宽度以加倍在该DRAM和该内存控制器之间的该数据输贯量。
双通道(或更一般地说成多通道)技术系主要创造以对付该瓶颈问题。如之前所指出的,该内存控制器的配置系将典型上决定可使用的DRAM的类型和速度、及每个个别内存模块的最大大小、与该内存的整体内存容量。内存控制器存在有各种固有的特征和能力,但以前它们典型上配置以控制单一内存信道。单一信道内存控制器的优点包括它的低成本和灵活性。然而,当单一信道内存控制器的效能不足以追上该CPU的效能时,其可造成瓶颈。在许多案例中,如果该内存控制器无法维持该所需数据流,则该CPU可保持闲置与没有数据可处理。一般通则上,当该CPU总线输贯量超过该单一内存信道的该总线输贯量时,多数单一信道内存遭遇此瓶颈效应。
藉由有效地加倍可用内存频宽的总数,双通道配置典型上减轻此瓶颈问题。不同于单一内存信道,加入第二个平行通道以藉由同时运作两内存信道来减少该瓶颈。因此,双通道架构系可利用现存SDRAM(例如DDR)技术并改善存取内存的方法。为了使用双信道内存控制器,该DRAM装置系典型上分成两个不同总线以允许两个内存控制器能并行存取它们,因此加倍该总线的理论频宽总数。从功能的观点来看,可建构更多的信道(每个DRAM单元一个信道可证明为完美解决方案),但是由于线总数(wire count)、线电容(line capacitance)、与每个并行存取线需要相同长度的线,所以一般来难完成额外的通道。目前,较高端的图形子系统系可实现四个平行运作的64位同步内存控制器,以一次管理总共256线的数据。在一些案例中,支持多重信道的内存控制器系可设计来运作在“联动模式(ganged mode)”,其中,例如两个64位内存控制器可使用来存取128位内存装置,或管理单一逻辑128位接口。
需要高可靠度内存子系统的许多计算机架构系使用过剩的内存装置和错误改正码(error correcting code,简称ECC)以改正在运作过程中可能发生的可能错误。该ECC系可常常配置有多位符号以改正源自无效内存装置的错误。此ECC的配置/使用系通常称作“杀芯片ECC(chipkill ECC)”。双信道配置系有关于杀芯片ECC。事实上,杀芯片ECC系为为什么如果该杀芯片ECC所需的频宽大于该内存装置的数据路径宽度时,则可配置支持多信道的内存控制器以运作在联动模式的一个理由。举例来说,支持x4的杀芯片ECC将意指任何4位符号应该是可固定的,即使它完全地坏。该杀芯片ECC所使用的x4符号的数量将决定所需接口的大小,也就是,所需该数据路径的宽度。例如,如果使用32个x4符号,则将需要128位接口。尽管整体系统效能可藉由提供支持双信道内存来实质上地改善,能够处理双信道配置的内存控制器的设计复杂度和大小变得不可避免地大于只提供支持单一信道的内存控制器的状况,特别是当双通道支持需要在“联动”与“非联动”配置两者中。因此设计与建构能够双信道内存控制、同时维持有效率的面积与不比配置以只处理单一内存信道的内存控制器复杂很多的内存控制器是一种挑战。
相关于先前技术的其它对应议题在熟知此技艺的人士比较这些先前技术与在此描述的本发明之后将变得显而易见。
发明内容
一种系统(例如计算机系统)系可包含DRAM(动态随机存取内存)装置,系耦接至DRAM总线,以及DRAM控制器,系配置以管理与控制对于该DRAM装置的存取。在其中一组实施例中,该DRAM控制器系可包括两个用以控制双内存信道的独立DRAM子控制器。在例如杀芯片ECC可需要的联动模式中,该两个独立DRAM子控制器系可当作单一(2*N)位(例如128位)宽的双信道内存控制器来操作,而在非联动模式中,该两个独立DRAM子控制器系可当作两个单一信道N位(例如64位)宽的内存控制器来操作。
在其中一组实施例中,该两个DRAM子控制器系可设计及实现成彼此相同,且任一个可配置以具有用以基础地处理64位数据路径的实体的64位接口。也就是,经过每个控制器的该数据路径系可只包括64位。即使每个DRAM子控制器可只具有对64位接口的存取,当运作在联动模式时,每个DRAM子控制器系可如同它具有对128位数据路径的存取那样地运作。也就是,每个DRAM子控制器系逻辑地表现成如同它正处理在128位数据块(chunk)中的数据。在其中一组实施例中,每个DRAM子控制器系可具有该系统所使用的用以存取内存的对应端口(port)(通道(channel))。该埠的其中一者(对应该DRAM子控制器的其中一者)系可配置成单一128位DRAM控制器。之后,在该配置埠上的所有交通系可复制(例如藉由耦接至该DRAM子控制器的配置的北桥)到其它埠。因此每个DRAM子控制器系可具有关于控制逻辑的128位能力,虽然只存取64位的实际数据路径。
在其中一组实施例中,在该系统内转移数据系可包括读取与写入快取线,该快取线系可具有较内存总线还大的宽度,例如64字节宽。在读取和/或写入快取线时使用128位内存信道来取代64位内存信道系减少读取和/或写入在单一快取在线的数据所需的丛发(burst)转移的大小。因此,该128位宽的内存信道的丛发转移的大小将为该64位宽的内存信道的丛发转移的大小的一半。为了考虑到每个DRAM子控制器现在是逻辑地控制128位宽的内存信道(虽然实体上只控制64位宽的数据路径),每个DRAM子控制器系可因此调整用于丛发转移的拍(beat)的数量(也就是该大小)。
系统系包含第一和第二内存控制器,以及第一和第二内存模块。每个内存控制器系可具有各自的实体N位数据路径,而每个内存模块系可具有N数据线(也就是N位数据端口),其中,该第一内存控制器的该N位数据路径系耦接至该第一内存模块的该N位数据路径,而该第二内存控制器的该N位数据路径系耦接至该第二内存模块的该N位数据端口。该系统系可配置以使用具有(2*N)位宽的数据路径的逻辑内存信道,该数据路径可使用该两个分开的内存控制器来存取。配置信息可被写入至该两个内存控制器(例如藉由该BIOS)来配置该两个内存控制器以运作在联动模式中,而可指定对应该内存控制器的其中一者的通道成为(2*N)位宽的逻辑内存信道。之后,对该指定通道与因此对其对应的内存控制器的所有存取系可同时复制至其它内存控制器。每个内存控制器系可因此如同它是(2*N)位控制器地运作,虽然实际上是存取各自的N位数据路径。
该系统系可送出内存要求至该指定的内存控制器以经由该(2*N)位宽的内存信道来传送和/或接收数据的(2*N)位数据块。这些内存要求系可复制至其它内存控制器,而为了响应这些要求,该第一内存控制器系可传送和/或接收往和/或来自该第一内存模块的数据的每个该(2*N)位数据块的第一N位部分,而该第二内存控制器系可传送和/或接收往和/或来自该第二内存模块的数据的每个该(2*N)位数据块的该剩余N位部分。因此可以(2*N)位数据块来提供该数据至该系统。该系统系可进一步可配置以运作在非联动模式中,并使用两个逻辑内存信道,每个是N位宽,且该两个内存控制器使用它们自己各自的N位数据路径以单独控制每个内存信道。各自的内存要求系可送到内存控制器两者,或送给任一配置给该内存控制器的两个各自的埠,以经由每个既定内存控制器的N位数据路径来各自存取数据。
附图说明
在阅读该下述详细叙述并参照该附上的图示后,本发明的其它态样将变得明显可见,其中:
图1为包括内存控制器的例示系统的模块图,配置该控制器以经由内存总线来控制对内存的存取;
图2为图1的该内存控制器的一个实施例的部分逻辑模块图;
图3为显示图2的该内存控制器配置的一个实施例的更详细的模块图;以及
图4为显示配置的一个实施例的模块图,其中,使用两个64位内存控制器以替128位逻辑内存信道提供128位数据。
虽然本发明可容易作各种的修饰和替代形式,但是在此系由图式中的范例显示及详细说明本发明的特定实施例。然而,应嘹解到此处特定实施例的图式及详细说明并不欲用来限制本发明为所揭示的特定形式,反之,本发明将涵盖所有落于如所附申请专利范围内所界定的本发明的精神和范围内的修饰、等效和替代内容。
具体实施方式
图1系显示基本例示系统100的模块图,其可为计算机系统,其中,处理单元100配置有耦接至内存控制器103的处理器核心101。在一些实施例中,处理器核心101可经由北桥107以耦接至内存控制器103,该北桥107系配置以管理进出处理器核心101的数据流。内存控制器103可耦接至内存总线111,内存控制器103可经由该内存总线111以调节对内存105的存取,来帮助数据在处理单元100和内存105之间交换。熟知此技艺的人士将了解的是,系统100可以不同方式来实现,且图标为内存控制器控制内存存取的基本配置。
在其中一组实施例中,内存控制器103可包括子电路和/或组件,包含系统100所需的用以支持一个范围的功能的缓存器。例如,内存控制器103可包含用以缓冲(buffer)正转移在内存105和处理器核心101之间的数据的不同缓冲器(buffer),且该内存控制器103可分为数个子控制区块(sub-control block)。同样地,内存105可包含不同配置的多重内存组件或内存装置,该配置经由内存总线111来适配具有内存控制器103的接口。不同的实施例是可能的且可设想的。内存105可为DRAM(动态随机存取内存),而因此内存控制器103可为DRAM控制器。更具体来说,系统100可包括双数据速率DRAM(DDR DRAM),例如由DDR3内存控制器103所控制的DDR3内存(内存105)。在其中一组实施例中,DRAM控制器103可配置成藉由多于一的信道(例如双信道)以管理并控制对DRAM装置105的存取。
DRAM通道两者都可为特定大小,例如64位宽。因此,单一DRAM信道可为64位宽。平行的两个DRAM通道系因此可提供128位的有效总线宽度。在一些系统配置中,该两个DRAM通道系可较佳地“联动”在一起以当作单一逻辑128位接口来运作。在某些其它系统配置中,该两个DRAM通道系可较佳地“不联动”以当作两个独立的64位信道来运作。兼容两者的系统配置系可需要保护该较小者(单一信道(总线)宽度,在上述的例示中将意指维持64位的独立性)的独立性。应该注意的是,虽然在此讨论的实施例中,单一信道具有64位的总线宽度,但是在其它实施例中,单一信道可具有不同总线宽度,以及该总线宽度低于或高于64位的不同实施例与系统配置是可能且可设想的。
在其中一组实施例中,DRAM 105系可包括复数个实体DIMM(双成列的(inline)内存模块)。可配置系统100以使DRAM控制器103所存取的逻辑DIMM不是包括平行运作用以形成单一128位接口的两个相同实体64位DIMM(当在联动模式中),就是一个实体64位DIMM(当在非联动模式中)。为了维护用以维持存取两个64位宽的逻辑DIMM的能力的独立64位信道,DRAM控制器105可配置有两个内存子控制器。如图2所示,每个内存子控制器系可具有在非联动模式中控制至少一个各自单一64位宽的信道的能力,它们的其中一个也具有控制128位信道的能力。当该两个内存子控制器运作在联动模式时,逻辑DIMM可为两个通道宽。双信道逻辑DIMM的每个实体DIMM系可需要为该相同大小并使用该相同时序(timing)参数,两个内存控制器都程序化成相同信息。当该内存子控制器运作在64位模式中时,逻辑DIMM等效于64位实体DIMM,其中,对应各自的内存子控制器控制每个通道。
显示在图2中的DRAM控制器203代表显示在图1中的DRAM控制器105的一个可能的实施例,且可包含用以各自控制内存信道0和1的内存子控制器204和206。可配置DRAM控制器203以在联动或非联动模式中运作内存子控制器204和206。在图2显式的实施例中,配置内存子控制器206以支持64位数据路径,而配置内存子控制器204以支持64位数据路径(在非联动模式中)或128位数据路径(在联动模式中)。因此,在非联动模式中,内存子控制器204可控制信道0的该64位数据路径,而内存子控制器206可控制信道1的该64位数据路径。在联动模式中,可不启用内存子控制器206,而可运作内存子控制器204在128位模式中以控制两个通道。然而,这需要依据信道1是由内存子控制器206(在非联动模式中)或由内存子控制器204(在联动模式中)所控制来多任务(multiplex)信道1的该64位数据路径输出。因此,可配置多任务器(multiplexer,简称MUX)208以将联动模式讯号(GangMode signal)当作该控制讯号来在该各自64位数据路径之间选择。当内存子控制器204和206运作在联动模式中时,MUX 208可运作来选择64位数据路径212,而当运作在非联动模式中时,MUX 208可运作来选择64位数据路径210。
本实施例的更详细图标显示在图3,内存105可包括实体64位DIMM 302和304。可耦接DIMM 302至DRAM子控制器204的数据路径,而可耦接DIMM 304至该输出MUX 306。如指出的,可使用北桥310以在例如中央处理单元与DRAM子控制器204和206之间提供接口。在此实施例中,当运作在联动模式中时,可配置埠0(例如藉由软件)为128位控制器。因此,当DRAM子控制器204使用在联动模式中时,DRAM子控制器204可配置有128位数据路径,其中,位63:0可对应至通道0(如上所提到的),而位127:64可对应至通道1。所以,也在北桥310与DRAM子控制器204和206之间多任务对应至信道1的该64位数据路径。
当运作在非联动模式中时,使用MUX 308以排定(route)对应至通道(端口)1与接收自北桥310的该64位数据到DRAM子控制器206。之后,使用MUX 306以选择来自DRAM控制器206的该数据以耦接至信道1的DIMM 304。当运作在联动模式中时,使用MUX 308以排定对应至埠1与接收自北桥310的该64位数据到DRAM子控制器204,如由DRAM子控制器204所控制的该128位数据路径的位127:64。之后,使用MUX 306以选择来自DRAM控制器204的该数据路径的位127:64以耦接至通道1的DIMM 304。此外,也可使用MUX 306以选择用来寻址与存取DIMM 302和304的该地址/指令信息。在非联动模式中,可使用MUX 306以选择来自DRAM子控制器206的地址和指令信息,而在联动模式中,可使用MUX 306以选择来自DRAM子控制器204的地址和指令信息。
虽然这可提供使得DRAM控制器103有能力去存取两个独立64位信道或单一128位信道(在一般两个独立N位信道或单一<2*N>位信道中)的解决方案,藉由控制实际128位数据路径以配置DRAM子控制器成为具有实体128位能力导致DRAM子控制器204所占据的面积增加。此外,由MUX 306和MUX308所履行的该多任务系引起挑战,因为实现该来源同步总线(source sync buses)系可为高问题性的。此外,128位接口可需要DRAM子控制器204以在配置缓存器中储存数据的实质总量,以辨识用于该其它64位信道(也就是用于数据位127:64)的该额外DIMM的该DIMM种类和内存范围。如图3中所指出的,这样的配置也需要在DRAM子控制器204与DIMM 302和304之间以及在DRAM子控制器204与北桥310之间有完整的128位数据路径,当存在例如可需要以运作在非联动模式中的DRAM子控制器206时可能难以实现。
图4系显示替代的实施例400,其中,DRAM子控制器404和406系可配置以独立控制各自的64位数据路径,尽管也配置以一起控制单一128位数据路径,且没有必须配置有实体128位数据路径的任一子控制器(似图3所示的配置)。在此实施例中,独立DRAM子控制器404和406系可配置以在联动模式中运作如单一128位宽的双信道DRAM控制器,或在非联动模式中运作如两个单信道64位宽的DRAM控制器。一般来说,独立DRAM子控制器404和406系可配置以在联动模式中运作如单一<2*N>位宽的双信道DRAM控制器,或在非联动模式中运作如两个单信道N位宽的DRAM控制器。在联动模式中,DRAM子控制器406和DRAM子控制器404两者系可程序化有相同的信息。因此,对应至DRAM子控制器404的写入第一组缓存器的信息/数据系可应用至两个通道(端口)。对应至DRAM子控制器406的写入第二组缓存器的信息/数据系可忽略。可修改(tailor)读取和写入运作成为可使用在该系统中的该快取线的大小。例如,在其中一组实施例中可使用64字节快取线。对于64位接口,这将意指8拍(beat)丛发数据转移(或丛发长度为8)。在128位接口上,这将意指丛发长度为4。
联动模式
当运作在图4显示的配置中的联动模式中,每个DRAM子控制器406和404系可如同它们控制该整个128位接口那样地单独运作,虽然实际上每个将控制一半的该128位接口。因此,即使当运作在联动模式,DRAM子控制器406系可存取DIMM 304而DRAM子控制器404系可存取DIMM 302。每个子控制器可调整丛发转移中拍的数量且也可调整该地址映像,如同它是控制该全部128位总线那样运作。因此,当可设计并建构DRAM子控制器404和DRAM子控制器406成为完全相同时,在图4中显示的该配置系可代表完美解决方案,且不需要多任务。
每个子控制器系可基础地操纵N位(例如64位)接口。经过每个控制器的该数据路径系可为相同的N位,在此案例中为64位。所以,虽然每个子控制器只操纵各自的64位(N位)接口,每个子控制器可具有128位((2*N)位)关于控制逻辑的能力,以控制逻辑128位((2*N)位)数据路径。换句话说,每个子控制器系可逻辑地如同它是操纵在128位((2*N)位)数据块中的数据那样运转,也就是,一次传送与接收128位((2*N)位)数据。可藉由具有该子控制器的其中一者以达成该完全频宽,例如,DRAM子控制器404操纵每个该128位((2*N)位)数据数据块中的第一64位(N位),而例如DRAM子控制器406的其它子控制器操纵具有数据的对应其它64位(N位)(代表每个该完整128位((2*N)位)数据数据块的该剩下的一半)的指令的第二“复制”,其中,子控制器两者都如同它们是操纵该完整128位((2*N)位)数据路径那样地运作。
在其中一组实施例中,在系统启动过程中,该BIOS系可配置并初始化该子控制器以运作在联动模式中,如果需要控制单一(2*N)位宽的信道,与可指定对应至该两子控制器的其中一者的该通道的其中一者(例如对应至DRAM子控制器404的该通道)如同将使用的该(2*N)位宽的信道。一旦完成初始化,该BIOS可简单地存取该指定通道,具有至该“尾随的(shadowed)”或复制至该其它子控制器的指定通道(且因此该对应子控制器)的所有之后配置存取(其具有某些指定训练缓存器的可能例外(exception),其中,该BIOS可单独写入每个子控制器中以确保该子控制器将适当地运作在它们各自的通道)。一般说来,一旦完成该初始化,该BIOS和(所有系统)软件可不再需要知道该子控制器是运作在联动模式中,且只可存取指定为该(2*N)位宽的信道的该信道(例如对应至DRAM子控制器404的该通道),且具有至藉由北桥410复制至该其它子控制器(例如DRAM子控制器406)的该指定通道的所有之后存取。
尽管已经依据具体实施例来描述本发明,要了解的是,该实施例是说明用而不是因而来限制本发明范围。对描述的该实施例作任何变化、修改、增加、与改进是可能的。这些变化、修改、增加、与改进系可如在该下述的申请专利范围中的描述地在本发明范围之内。
虽然本发明可容易作各种的修饰和替代形式,但是在此系由图式中的范例显示及详细说明本发明的特定实施例。然而,应嘹解到此处特定实施例的图式及详细说明并不欲用来限制本发明为所揭示的特定形式,反之,本发明将涵盖所有落于如所附申请专利范围内所界定的本发明的精神和范围内的修饰、等效和替代内容。
产业利用性
本发明一般可应用于微处理器。
Claims (10)
1.一种存取具有2*N位数据路径的内存信道的方法,其中,N为正整数,该方法包括:
传送存取信息至具有N位数据路径的第一内存控制器(406),以经由该内存信道来传送和/或接收2*N位数据块;
复制该存取信息至具有N位数据路径的第二内存控制器(404);
为了回应上述传送该存取信息与上述复制该存取信息:
该第一内存控制器经由其N位数据路径来传送和/或接收该2*N位数据块的每一个的第一N位部分;以及
该第二内存控制器经由其N位数据路径来传送和/或接收该2*N位数据块的每一个的剩下N位部分。
2.如权利要求1所述的方法,进一步包括:
该第一内存控制器经由其N位数据路径来向第一物理内存(304)传送和/或从第一物理内存(304)接收该2*N位数据块的每一个的第一N位部分,该第一物理内存具有耦接至该第一内存控制器的该N位数据路径的N个数据线;以及
该第二内存控制器经由其N位数据路径来向第二物理内存(302)传送和/或从第二物理内存(302)接收该2*N位数据块的每一个的剩下N位部分,该第二物理内存具有耦接至该第二内存控制器的该N位数据路径的N个数据线。
3.如权利要求1所述的方法,进一步包括:
在上述传送该存取信息与上述复制该存取信息之前,配置该第一内存控制器与该第二内存控制器以运作在联动模式;以及
执行固件指令以初始化包括该第一内存控制器和该第二内存控制器的系统;
其中,上述执行该固件指令包括上述配置该第一内存控制器与该第二内存控制器。
4.如权利要求1所述的方法,其中,上述传送存取信息至该第一内存控制器包括传送地址信息;
其中,该方法进一步包括:
传送对应于该地址信息的一个或更多个2*N位数据块至该第一内存控制器,以依据该地址信息储存该一个或更多个2*N位数据块;以及
复制对应于该地址信息的该一个或更多个2*N位数据块至该第二内存控制器。
5.如权利要求4所述的方法,进一步包括:
该第一内存控制器经由其N位数据路径传送对应于该地址信息的该一个或更多个2*N位数据块的每一个的第一N位部分至第一物理内存,该第一物理内存具有耦接至该第一内存控制器的该N位数据路径的N个数据线;以及
该第二内存控制器经由其N位数据路径传送对应至该地址信息的该一个或更多个2*N位数据块的每一个的剩下N位部分至第二物理内存,该第二物理内存具有耦接至该第二内存控制器的该N位数据路径的N个数据线。
6.一种内存系统,包括:
具有N位数据路径的第一内存控制器(103、406),其中,配置该第一内存控制器以接收第一类型存取信息,该第一类型存取信息用以经由2*N位内存信道来传送和/或接收相应的2*N位数据块;
具有N位数据路径的第二内存控制器(103、404);以及
耦接至该第一内存控制器和该第二内存控制器的控制模块(410),该控制模块是可运作以复制由该第一内存控制器所接收的该第一类型存取信息至该第二内存控制器;
其中,该第一内存控制器可运作以依据该接收的第一类型存取信息来经由其N位数据路径以传送和/或接收该2*N位数据块的每一个的第一N位部分,而该第二内存控制器可运作以依据该复制的第一类型存取信息来经由其N位数据路径以传送和/或接收该2*N位数据块的每一个的剩下N位部分。
7.如权利要求6所述的内存系统,
其中,进一步配置该第一内存控制器和该第二内存控制器以各自接收各自的第二类型存取信息,该第二类型存取信息用以经由各自的N位内存信道来传送和/或接收各自的N位数据块;
其中,该第一内存控制器可运作以依据其接收的各自的第二类型存取信息来经由其N位数据路径以传送和/或接收其各自的N位数据块,而该第二内存控制器可运作以依据其接收的第二类型存取信息来经由其N位数据路径以传送和/或接收其各自的N位数据块。
8.如权利要求6所述的内存系统,进一步包括:
具有N个数据线的第一内存模块(304),该N个数据线耦接至该第一内存控制器的该N位数据路径;以及
具有N个数据线的第二内存模块(302),该N个数据线耦接至该第二内存控制器的该N位数据路径;
其中,该第一内存控制器可运作以经由其N位数据路径来向该第一内存模块传送和/或从该第一内存模块接收该2*N位数据块的每一个的第一N位部分;以及
其中,该第二内存控制器可运作以经由其N位数据路径来向该第二内存模块传送和/或从该第二内存模块接收该2*N位数据块的每一个的剩下N位部分。
9.如权利要求6所述的内存系统,其中,该第一内存控制器和该第二内存控制器以下列之一来运作:
单一2*N位宽的双信道内存控制器;或
两个N位宽的单信道内存控制器。
10.一种用于控制内存信道的系统(100),包括如权利要求6至9中任一项所述的内存系统,且进一步包括处理单元(101),该处理单元执行指令以经由该控制模块来配置该第一内存控制器和该第二内存控制器。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/843,434 | 2007-08-22 | ||
US11/843,434 US8006032B2 (en) | 2007-08-22 | 2007-08-22 | Optimal solution to control data channels |
PCT/US2008/009101 WO2009025713A1 (en) | 2007-08-22 | 2008-07-28 | An optical solution to control data channels |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101836194A CN101836194A (zh) | 2010-09-15 |
CN101836194B true CN101836194B (zh) | 2012-08-15 |
Family
ID=40009288
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200880112465.9A Active CN101836194B (zh) | 2007-08-22 | 2008-07-28 | 控制数据信道的优化解决方案 |
Country Status (8)
Country | Link |
---|---|
US (1) | US8006032B2 (zh) |
JP (1) | JP2010537311A (zh) |
KR (1) | KR20100075847A (zh) |
CN (1) | CN101836194B (zh) |
DE (1) | DE112008002273B4 (zh) |
GB (1) | GB2465317A (zh) |
TW (1) | TW200928751A (zh) |
WO (1) | WO2009025713A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8098539B2 (en) * | 2009-08-26 | 2012-01-17 | Qualcomm Incorporated | Hybrid single and dual channel DDR interface scheme by interleaving address/control signals during dual channel operation |
TWI420982B (zh) * | 2010-12-03 | 2013-12-21 | Hon Hai Prec Ind Co Ltd | 印刷電路板 |
JP5864957B2 (ja) * | 2011-08-31 | 2016-02-17 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
JP6070374B2 (ja) | 2013-03-29 | 2017-02-01 | 富士通株式会社 | 情報処理装置、メモリ試験プログラムおよびメモリ試験方法 |
KR20160120004A (ko) | 2015-04-07 | 2016-10-17 | 삼성전자주식회사 | 시스템 온-칩 및 이를 포함하는 전자 기기 |
US10956342B1 (en) * | 2017-02-03 | 2021-03-23 | Cadence Design Systems, Inc. | Variable channel multi-controller memory system |
US10546628B2 (en) * | 2018-01-03 | 2020-01-28 | International Business Machines Corporation | Using dual channel memory as single channel memory with spares |
CN114661641A (zh) * | 2020-12-24 | 2022-06-24 | 华为技术有限公司 | 一种内存模组和内存总线信号处理方法 |
US11960735B2 (en) * | 2021-09-01 | 2024-04-16 | Micron Technology, Inc. | Memory channel controller operation based on data types |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1873627A (zh) * | 2005-05-30 | 2006-12-06 | 欧阳昌廉 | 可使用次级内存的内存控制器及其操作方法 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5828856A (en) * | 1994-01-28 | 1998-10-27 | Apple Computer, Inc. | Dual bus concurrent multi-channel direct memory access controller and method |
US5604714A (en) * | 1995-11-30 | 1997-02-18 | Micron Technology, Inc. | DRAM having multiple column address strobe operation |
JP4084428B2 (ja) * | 1996-02-02 | 2008-04-30 | 富士通株式会社 | 半導体記憶装置 |
KR100244268B1 (ko) * | 1997-04-02 | 2000-02-01 | 김영환 | 비휘발성 메모리 소자 및 제조 방법 |
US6026466A (en) * | 1997-06-16 | 2000-02-15 | Integrated Silicon Solution, Inc. | Multiple row address strobe DRAM architecture to improve bandwidth |
US6108745A (en) * | 1997-10-31 | 2000-08-22 | Hewlett-Packard Company | Fast and compact address bit routing scheme that supports various DRAM bank sizes and multiple interleaving schemes |
US6545935B1 (en) * | 2000-08-29 | 2003-04-08 | Ibm Corporation | Dual-port DRAM architecture system |
US6452834B1 (en) * | 2001-02-13 | 2002-09-17 | Silicon Access Networks | 2T dual-port DRAM in a pure logic process with non-destructive read capability |
US6816889B1 (en) * | 2001-07-03 | 2004-11-09 | Advanced Micro Devices, Inc. | Assignment of dual port memory banks for a CPU and a host channel adapter in an InfiniBand computing node |
US6999091B2 (en) * | 2001-12-28 | 2006-02-14 | Intel Corporation | Dual memory channel interleaving for graphics and video |
US6794254B1 (en) * | 2003-05-15 | 2004-09-21 | Taiwan Semiconductor Manufacturing Company | Embedded dual-port DRAM process |
TWI224261B (en) * | 2003-08-06 | 2004-11-21 | Via Tech Inc | Mother board utilizing a single-channel memory controller to control multiple dynamic-random-access memories |
TWI299497B (en) * | 2004-06-24 | 2008-08-01 | Via Tech Inc | Method and related apparatus for accessing memory apparatus |
US7110306B2 (en) * | 2004-06-28 | 2006-09-19 | United Memories, Inc. | Dual access DRAM |
US7587521B2 (en) * | 2005-06-23 | 2009-09-08 | Intel Corporation | Mechanism for assembling memory access requests while speculatively returning data |
-
2007
- 2007-08-22 US US11/843,434 patent/US8006032B2/en active Active
-
2008
- 2008-07-28 DE DE112008002273.9T patent/DE112008002273B4/de active Active
- 2008-07-28 KR KR1020107006165A patent/KR20100075847A/ko not_active Application Discontinuation
- 2008-07-28 CN CN200880112465.9A patent/CN101836194B/zh active Active
- 2008-07-28 WO PCT/US2008/009101 patent/WO2009025713A1/en active Application Filing
- 2008-07-28 JP JP2010521846A patent/JP2010537311A/ja active Pending
- 2008-08-22 TW TW097132034A patent/TW200928751A/zh unknown
-
2010
- 2010-03-15 GB GB1004207A patent/GB2465317A/en not_active Withdrawn
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1873627A (zh) * | 2005-05-30 | 2006-12-06 | 欧阳昌廉 | 可使用次级内存的内存控制器及其操作方法 |
Also Published As
Publication number | Publication date |
---|---|
JP2010537311A (ja) | 2010-12-02 |
TW200928751A (en) | 2009-07-01 |
US20090055572A1 (en) | 2009-02-26 |
WO2009025713A1 (en) | 2009-02-26 |
US8006032B2 (en) | 2011-08-23 |
DE112008002273T5 (de) | 2010-08-05 |
CN101836194A (zh) | 2010-09-15 |
KR20100075847A (ko) | 2010-07-05 |
GB201004207D0 (en) | 2010-04-28 |
GB2465317A (en) | 2010-05-19 |
DE112008002273B4 (de) | 2022-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101836194B (zh) | 控制数据信道的优化解决方案 | |
CN1977336B (zh) | 改善支持多存储器访问延迟的计算机存储器系统的性能的系统和方法 | |
US6854043B2 (en) | System and method for multi-modal memory controller system operation | |
KR100908760B1 (ko) | 다중 내부 데이터 버스 및 메모리 뱅크 인터리빙을 갖는방법 및 메모리 장치 | |
US8825966B2 (en) | Reduced pin count interface | |
US7636833B2 (en) | Method for selecting memory busses according to physical memory organization information associated with virtual address translation tables | |
US9268719B2 (en) | Memory signal buffers and modules supporting variable access granularity | |
EP2313891B1 (en) | Independently controlled virtual memory devices in memory modules | |
US20050289317A1 (en) | Method and related apparatus for accessing memory | |
US20060112231A1 (en) | Synchronous DRAM with selectable internal prefetch size | |
US11042304B2 (en) | Determining a transfer rate for channels of a memory system | |
EP1488321B1 (en) | Obtaining data mask mapping information | |
WO2009089350A2 (en) | Systems and methods for memory expansion | |
KR20040106303A (ko) | 프리페치 길이보다 짧은 버스트 길이를 갖는 메모리 시스템 | |
CN102681946A (zh) | 内存访问方法和装置 | |
US7840744B2 (en) | Rank select operation between an XIO interface and a double data rate interface | |
EP1488322B1 (en) | Mapping data masks in hardware by controller programming | |
CN108139989B (zh) | 配备有存储器中的处理和窄访问端口的计算机设备 | |
US20090006683A1 (en) | Static power reduction for midpoint-terminated busses | |
JP5204777B2 (ja) | メモリ装置及びその制御方法 | |
CN115543861A (zh) | 管理地址映射的方法和近存储器处理双列直插式存储器模块 | |
KR102545175B1 (ko) | 어드레스 테이블을 포함하는 메모리 장치, 및 메모리 컨트롤러의 동작 방법 | |
CN114265794A (zh) | 具有数据缓存功能的混合存储器模块、数据缓存器和方法 | |
WO2007116485A1 (ja) | メモリ装置、そのインタフェース回路、メモリ・システム、メモリ・カード、回路基板及び電子機器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20210220 Address after: California, USA Patentee after: Lattice chip (USA) integrated circuit technology Co.,Ltd. Address before: England group Patentee before: GLOBALFOUNDRIES Inc. |
|
TR01 | Transfer of patent right |