CN101520766B - 配置和初始化存储器及存储通道的方法与设备 - Google Patents
配置和初始化存储器及存储通道的方法与设备 Download PDFInfo
- Publication number
- CN101520766B CN101520766B CN2009101305608A CN200910130560A CN101520766B CN 101520766 B CN101520766 B CN 101520766B CN 2009101305608 A CN2009101305608 A CN 2009101305608A CN 200910130560 A CN200910130560 A CN 200910130560A CN 101520766 B CN101520766 B CN 101520766B
- Authority
- CN
- China
- Prior art keywords
- memory
- initialization
- register
- rdram
- memory device
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4234—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
- G06F13/4243—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with synchronous protocol
Abstract
一种配置/初始化存储器设备(160-162,168,170,175)的方法和装置。公开的方法初始化存储器控制器(100)和多个存储器控制器配置寄存器(112)。串行标示号码被分配至与存储器控制器(100)连接的存储器设备(160-162,170,175)。此外,至少部分基于存储器设备大小分配串行识别号码组给存储器设备(160-162,170,175),并且使能存储器设备(160-162,170,175)。
Description
技术领域
本发明涉及数据处理系统领域。更精确地说,本发明涉及初始化或配置一个存储通道中存储器设备。
背景技术
存储器和存储子系统一般都具有某些正常操作前须进行编程设定的初始化步骤和/或寄存器值。推荐的初始化步骤和寄存器值在存储器标准中通常都做出详细的介绍,供系统设计人员在设计与存储器连接的其它系统硬件时参考。但是,如果对初始化例程进一步优化,那么初始化可能会更快地结束,有利于促使其它的系统处理过程更快地开始。
正常操作前需要大量初始化处理的一个通道(即,一条总线配置)是一个直接Rambus动态随机存取存储通道(a Direct RDRAMTMChannel)。加州Mountain View的Rambus公司有技术资料对这种通道给出了详细说明。RDRAM存储器以及与Rambus通道连接的存储控制器都具有许多必须通过初始化过程进行设置的寄存器。
根据Rambus的资料,在使用Rambus通道之前,显然必须完成许多初始化操作。通常,存储控制器读取所有RDRAM之中只读寄存器的内容,处理这些信息,继而写入所有的读-写寄存器使RDRAM置于正确的操作模式。寄存器DeviceID和TRDLY是重要的读-写寄存器,分别设置存储处理程序及读取存储器数据延时数值所用到的设备地址。
通过对整个串行链循环,分配连续的串行标识号码,可给通道中每一个RDRAM设置一个独特的串行设备识别值(如见Direct RDRAMTM64/72兆位数据表第28页)。第二个ID值仅指一个设备的ID,在正常运行期间允许访问Rambus通道中的各个存储器。对于通道中各个运行的设备,也需要各设置一个独特的设备ID值;但是文献资料中未谈及设置设备ID的任何特殊技术。
此外,各RDRAM可以执行刷新、预充电、电流标定、电流采样、以及多种其它的操作(如见Direct RDRAMTM64/72兆位数据表第8-9页)。虽然在Direct RDRAMTM64/72兆位数据表中对这些命令都作了一般的讨论,但是并未给出一个完整的初始化序列。此外也可能没有初始化和/或配置各种特殊的存储控制器的详细说明。这样,先前的技术可能未提供一种适当的或完善的方法和设备来配置一个存储通道中的一组存储器。
发明内容
本发明公开了一种配置和/或初始化存储器的方法和设备。被公开的方法可以初始化一个存储控制器和初始化多个存储控制器的配置寄存器。对连接于存储控制器的各个存储器设定串行识别号码。此外,至少部分基于存储器的大小将设备识别号码组分配给相应的存储器,从而使能存储器。
按照本发明的一种用于初始化存储控制器的方法,包括:初始化存储控制器;初始化第一多个存储控制器配置寄存器;为与存储控制器耦合的多个存储设备分配串行识别号码;通过给具有最大支持规模的存储设备分配一组最低的识别号码;给其余的规模较小存储设备分配其后的识别号码;至少部分基于存储设备的大小,为多个存储设备组分配设备识别号码;对多个存储设备的每一个存储设备中的第二多个寄存器编程,使设备响应时间之和等于从每一存储设备到所有所述多个存储设备共有的存储控制器的传播延迟时间;以及使能该多个存储设备。
按照本发明的一种执行存储控制器初始化的系统,包括:一个处理器;一个连接到处理器上的存储控制器,该存储控制器具有第一多个控制寄存器和一个串行接口线路;一个存储总线,它具有与之相连接的多个存储设备,存储总线连接于存储控制器;一个连接到存储控制器上的附加存储设备,在初始化多个存储设备之前存储控制器可访问该附加存储设备,该附加存储设备包含多条指令,若被系统执行,则使该系统的相应的单元执行操作,其中包括:用于初始化存储控制器的单元;用于初始化多个存储器控制器配置寄存器的单元;用于给连接于存储控制器的多个存储设备分配串行识别号码的单元;用于通过以下步骤,至少部分地根据存储设备的大小给多个存储设备分配设备识别号码的单元:给具有最大支持规模的存储设备分配一组最低的识别号码;给其余的规模较小存储设备分配其后的识别号码;对多个存储设备的每一个存储设备中的第二寄存器编程,使设备响应时间之和等于从每一存储设备到所有所述多个存储设备共有的存储控制器的传播延迟时间的单元;以及用于使能该多个存储设备的单元。
附图说明
本发明通过举例进行图解说明,但并不局限于附图所给出的这些例子。
图1举例说明一种系统实施方案,该系统在存储控制器中使用配置寄存器的方法为存储器初始化指定初始化操作。
图2表明在图1这一系统实施方案中编程和执行初始化操作的一个流程图。
图3举例说明存储控制网络集线器的一种实施方案,它能根据装入控制寄存器和数据寄存器的值实现存储器的初始化。
图4说明一个存储器核心初始化操作的流程图。
图5举例说明执行图6-9所示的初始化流程的一种系统实施方案。
图6说明对图5所示系统的存储器子系统进行初始化处理时,整个初始化序列实施方案的流程图。
图7举例说明串行设备识别过程的一种实施方案。
图8A说明分组设备识别过程第一部分的一种实施方案。
图8B说明分组设备分配过程(例如,图8A中块820)的一种实施方案。
图8C说明图8A中分组设备识别过程第二部分的一种实施方案。
图9举例说明存储器核心初始化过程的一种实施方案。
图10举例说明由随机存储器挂起的能源管理状态进行恢复过程的一种实施方案。
具体实施方式
以下的叙述为初始化存储器和存储通道提供一种方法和设备。为使读者更加彻底地了解本发明,以下说明中进而规定了许多细节的东西,诸如:寄存器名称、存储器类型、总线协议、特殊类型部件、以及逻辑分区和集成的选择,等等。但是,对于本领域的技术人员来说,可以实施本发明而不需要这些细节的规定。在其它实例中,控制结构和门级电路没有详细地给出,以避免冲淡本发明的内容。利用这里包含的说明,对于本领域的技术人员,无须过多的解释将可以实施必要的逻辑电路。
使用现在公开的技术,我们可以实现有效而变通的存储器初始化操作。控制寄存器和数据寄存器可以进行编程处理,从而使得存储控制网络集线器(MCH)可根据装入寄存器中的值来实现初始化操作(IOP)。由于寄存器可以用诸如基本输入/输出系统(BIOS)这样的软件进行编程,所以初始化操作会变得比较容易。
图1举例说明使用寄存器实现存储器初始化的一种系统实施方案。该系统包括一个处理器195和一个与存储控制网络集线器(MCH)100连接的存储子系统104。与MCH 100连接的还有一个二级总线180,它又与一个输入装置190和一个包含BIOS例程的非易失性存储器185相连接。在一些实施方案中,非易失性存储器185和输入装置190其中之一或者双方是通过一个二级控制网络集线器(图中未画出)与MCH 100相连接的。
在图示的实施方案中,存储子系统104包括三个存储模块160、170和175,它们是通过串行总线142和存储总线132(亦称作通道)与MCH100相连接。每一个存储模块可以包含一组单独的存储器件。例如,存储模块160至少包括存储器件160、161和168。在一种实施方案中,存储器160、161和168是Rambus的DRAM(RDRAMs),存储模块为Rambus内嵌式存储模块(RIMMs),而通道是按照对RIMM和RDRAM所规定的协议进行工作的。
存储控制网络集线器MCH 100包括一个控制寄存器112和一个可能用于初始化目的的数据寄存器114。一个初始化控制线路120执行初始化操作数(IOPs),它被编程到控制寄存器112之中。控制寄存器112一般包含别的字段来确定初始化操作的信息,而由IOP确定的某些操作涉及与存贮子系统中设备的数据交换(例如,存储控制寄存器的读写,或相反的情况,产生控制信号)。
串行接口线路140在串行总线142上产生串行命令和数据序列。有些由初始化控制线路120执行的命令通过串行总线142对存储子系统发送命令和/或数据。控制寄存器,包括标识号码的设备寄存器,可能通过串行接口线路140进行读写操作。
存储器接口线路130将存储器数据从与存储子系统进行数据交换的数据包中移进、移出。一种实施方案中,存储接口线路是一个RambusASIC单元(RAC),基本作用正如加州Mountain View的Rambus公司所提供的“直接RAC数据表”文献所述。简言之,RAC将通道(总线132)上的Rambus信号电平(RSL)信号转换为MCH 100其它部分可以处理的信号。与此类似,RAC将存储控制器信号转换为Rambus通道中存储器可以处理的RSL信号。
图1所示系统的初始化事件序列表示在图2中。当系统启动或从新启动时,BIOS一般都执行多种初始化操作。在块200中,BIOS到达存储器配置部分。按照存储器的类型和预定使用的模式,初始化操作(块205)将由构成一个特殊序列的BIOS进行选择。图5-9更加详细地讨论了用RDRAM的系统初始化序列的一种实施方案,。
如块210所示,特殊的初始化操作数据(若有的话)存于数据寄存器114,而初始化操作数本身和其它的控制信息则存于控制寄存器112。在某些实施方案中,BIOS可以完成这一功能,它是通过向外设部件互连(PCI)配置寄存器执行写操作来实现的。可选择的是,可能用到其它的寄存器,或者说控制寄存器可能是具有或不具有MCH的通用存储器单元。实际上,控制寄存器可以是存储器初始化之前可读写MCH的存储足够多位的IOP和其他必要的控制信息的任何存储单元。
当把适当的初始操作和/或控制信息编程到控制寄存器112中时,初始化操作可以自动开始。例如执行块215所示的初始化操作是这样完成的,当初始化操作数装入控制寄存器112时,设置一个启动初始化操作(IIO)位。该IIO位可以是控制寄存器112的一个字段,所以同样的寄存器写入工作可能是设定IIO位也可能提供IOP。
完成初始化操作可以任何方式发出足以警告或通知BIOS的信号。例如,当初始化操作完成时,MCH可以自动地清除IIO位。如果BIOS查询IIO位,便可以确定何时初始化操作完成,如块220所示。如果初始化操作尚未完成,BIOS可能继续查询IIO位。如果初始化操作已经完成,BIOS在块205所示的初始化序列中选择下一个初始化操作。
输入设备190可以从计算机存储设备192(如光碟或磁盘或其他存储设备)或从一个网络或通信接口194接受程序指令。使系统实现本专利发明技术的BIOS代码(即计算机指令)可有几种办法将其程序化到非易失性存储器185中。BIOS可以在制造系统时编程,或者后来经输入设备190由一个计算机可读媒体交付。
在BIOS是后来提供的情况下,指令可能是经由一种计算机可读媒体交付的。通过一个适当的接口设备190,电子信号或有形的载波信号都可以是计算机可读媒体。例如,在一种实施方案中计算机存储设备192是一种计算机可读媒体。在另一种实施方案中携带计算机指令的载波196也是一种计算机可读媒体。运用已知的或已有的通信技术,载波196可被调制或处理以便包含输入设备190可解码的指令。不论哪种情况,计算机指令都可以通过一种计算机可读媒体交付。
图3表示一个存储控制网络集线器(MCH)300更加详细的描述。它详细地介绍了下面一种实施方案的特殊寄存器的名字、存储单元、容量、字段定义、以及初始化操作。对本领域的技术人员来说其它的实施方案是很显然的。下面几条操作要援引Rambus在64/72兆位数据表和Direct RAC数据表中所定义的命令。定义的这些操作是当适当的控制信号送到RAC时,Rambus RAC本身要送给RDRAMs的操作。正如下面将要详细介绍的,MCH 300的这种实施方案通过使用以前没有的硬件,并以新的方法或序列,来调用已知的RAC命令。
在该示范实施方案中,这一MCH 300包括一个RAC和一个串行接口340。该串行接口340使用时钟(SCK)、串行框架(CMD)、和双向串行I/O引线(SIO0和SIO1)来读、写RDRAM配置寄存器内容,并实施其它的IOP。该MCH还包括一个设备注册数据(DRD)寄存器314。在PCI配置空间该DRD寄存器314的地址偏移为90-91h,默认值为0000h(16位),而寄存器是一个读/写寄存器。DRD寄存器的字段示于表1。
表1:一种DRD寄存器实施方案
Bit位 | 说明 |
15:0 | 注册数据(RD):位15:0含有16个位作为执行IOP操作结果的被写入或读出RDRAM寄存器的数据。当寄存器RICM的IIO位由1变成0时数据有效。 |
MCH 300还包括一个RDRAM初始化控制管理(RICM)寄存器312。在PCI配置空间该RICM寄存器的地址偏移为94-96h,默认值为000000h(24位),它是一个读/写寄存器。该实施方案中RICM寄存器的字段设置示于表2。
表2:RICM寄存器的一种实施方案
位 | 说明 |
23 | 启动初始化操作(IIO):设为1时,由IOP字段(见下)定义的初始化操作开始执行。执行完成后,MCH将IIO位清0。该位写入操作前,一个软件程序将进行检查,看它的值是否为0。当IIO位清除为0时, |
读自RDRAM的由确定注册数据的操作所得到的数据,在DRD寄存器中将是有效的。 | |
22:21 | 保留:对于正常的初始化操作这些位未用。 |
20 | 初始化完成(IC):RDRAM存储器阵列的初始化完成后BIOS将该位设置为1。 |
19 | 广播地址(BA):当BA置1时,初始化操作(IOP)被广播通知到通道中所有的设备。当BA置1时,SDA字段(见下)不用。 |
17:9 | 设备寄存器地址(DRA):该字段为寄存器读写操作确定寄存器地址。 |
8:4 | 串行设备/通道地址(SDA):这5个位字段确定以下各项:·RDRAM设备的串行设备ID,用于RDRAM寄存器读、RDRAM寄存器写、RDRAM设置的复位、RDRAM清零的复位、以及RDRAM设置的快速时钟模式的IOP命令。·设备ID,用于断电入口、断电出口、睡眠入口、睡眠出口、电流标定和电流标定及采样的IOP命令。·存储地址,用于刷新和预充电的IOP命令。 |
18,3:0 | 初始化操作代码(IOP):该字段指定一个RDRAM设备或MCH RAC中要完成的初始化操作。位[18,3:0] 指定的操作0 0 0 0 0 RDRAM寄存器读0 0 0 0 1 RDRAM寄存器写0 0 0 1 0 RDRAM设置复位0 0 0 1 1 RDRAM清零复位0 0 1 0 0 RDRAM快速时钟模式设置0 0 1 0 1 保留0 0 1 1 0 RDRAM启用并继而进行温度标定0 0 1 1 1 到 0 1 1 1 1 保留1 0 0 0 0 RDRAM核心初始化(RCI)1 0 0 0 1 RDRAM SIO复位1 0 0 1 0 RDRAM断电退出1 0 0 1 1 RDRAM断电进入1 0 0 1 0 RDRAM“电流标定”和“电流标定+采样”1 0 1 0 1 MCH RAC的手工电流标定1 0 1 1 0 用DRD寄存器得到的数据装入MCH RAC控制寄存器 |
1 0 1 1 1 初始化MCH RAC1 1 0 0 0 RDRAM睡眠进入1 1 0 0 1 RDRAM睡眠退出1 1 0 1 0 RDRAM刷新1 1 0 1 1 RDRAM预充电所有其它的组保留。由IOP字段规定的各种操作更加详细的说明在后面的表3给出。 |
图3还说明了一种初始化控制电路320,它包括一个RDRAM IOP执行电路325。由控制电路320执行的各种IOP的详细说明示于表3。表3所列的广播地址(BA)字段(位19)和SDA字段(位8:4)为如下内容之一:
NE:该字段对初始化操作无影响
0:对这一初始化操作,该字段置0
1:对这一初始化操作,该字段置1
X:该字段应进行编程,适应特殊的初始化操作。
表3:IOP操作详细说明
位[18,3:0] | 操作名 | BA | SDA | 详细说明 |
0 0 0 0 0 | RDRAM寄存器读 | 0 | X | 该IOP对由SDA和DRA字段所确定的RDRAM寄存器执行串行读。当IIO位清除为0时,所读出的数据将出现在DRD寄存器。 |
0 0 0 0 1 | RDRAM寄存器写 | X | X | 该IOP对由SDA和DRA字段所确定的RDRAM寄存器执行串行写。DRD寄存器中提供该项写入数据。设BA字段为1,可以对通道上所有的RDRAM设备执行一次写操作。 |
0 0 0 1 0 | RDRAM复位设置 | X | X | 这项IOP对由SDA字段所确定的RDRAM设备中的复位位执行串行设置。设置复位位使RDRAM设备开始复位并准备对所有其它规 |
定的操作做出反应。该设置复位的IOP还使得RDRAM处于激活态。 | ||||
0 0 0 1 1 | RDRAM复位清除 | X | X | 这项IOP对由SDA字段所确定的RDRAM设备中的复位位执行串行清除。该清除复位操作使设备进入断电状态。发出SIO请求包,至少要经过4个SCK周期,RDRAM设备才允许退出这种断电状态。复位设置操作后,不到16个SCK周期,不会发布该项清除复位操作。 |
0 0 1 0 0 | RDRAM快速时钟模式设置 | X | X | 设置快速时钟模式的操作使RDRAM设备准备好发送和接收用RDRAM时钟(RCLK)的RSL信号数据。 |
0 0 1 1 0 | RDRAM温度标定启用及其相继的温度标定 | 1 | X | 一旦接收到该项操作命令,MCH就向所有的RDRAM设备发布一个“启用温度标定”的SIO请求包和一个紧接其后的“温度标定”的SIO请求包。 |
1 0 0 0 0 | RDRAM核心初始化(见图4) | NE | NE | 一旦收到该项IOP命令,MCH执行如下的操作:1.广播断电退出。2.初始化通道上所有的RDRAM设备的RDRAM核心。3.广播温度标定启用和温度标定。4.广播睡眠进入(如果DRAMC寄存器的位6是1的话)。5.如果与本命令一起,RICM寄存器的IC位(位20)置为1的话,那么该命令完成后,MCH就启用RDRAM刷新、RDRAM电流标定、RDRAM温度标定、以及RDRAM DLL刷新逻辑电路。 |
1 0 0 0 1 | RDRAMSIO | NE | NE | 该项IOP给所有的RDRAM设备发送一个SIO引线的初始化序列。 |
复位 | 执行这一操作时,RDRAM上的SIO0引线配制成输入而SIO1引线配制成输出。此外,SIO的重复位置为1。 | |||
1 0 0 1 0 | RDRAM断电退出 | X | X | 一旦收到该项IOP,MCH开始对由SDA和BA字段所确定的RDRAM设备的断电退出序列。其中SDA字段应包含设备ID,而不是串行设备ID。 |
1 0 0 1 1 | RDRAM断电进入 | X | X | 一旦收到该项IOP,MCH对由SDA和BA字段所确定的RDRAM设备发送一个断电进入PCP包。其中SDA字段应包含设备ID,而不是串行设备ID。 |
1 0 1 0 0 | RDRAM“电流标定”和“电流标定+采样” | X | X | 一旦收到该项IOP,MCH对由SDA字段所确定的RDRAM设备发送三个电流标定的SCP包及紧接其后的一个电流标定和采样的SCP包。 |
1 0 1 0 1 | MCHRAC的手工电流标定 | NE | NE | 一旦收到该项IOP,MCH对MCHRAC施行一个手工电流标定的操作。 |
1 0 1 1 0 | 用DRD寄存器得到的数据装入MCHRAC控制寄存器 | NE | NE | 一旦收到该项IOP,MCH用由DRD寄存器得到的数据装入MCHRAC控制寄存器。 |
1 0 1 1 1 | 初始化MCHRAC | NE | NE | 一旦收到该项IOP,MCH就初始化MCH RAC。该MCH RAC的初始化操作包括MCH RAC的电源上升顺序、电流标定和温度标定。这项命令执行后,即使IC的位没有置1,MCH亦能对MCH RAC进行定期的电流和温度标定。 |
1 1 0 0 0 | RDRAM睡眠进入 | X | X | 一旦收到该项IOP,MCH就向由SDA和BA字段确定的RDRAM设备发送一个睡眠进入的PCP包 |
。其中SDA字段应包含设备ID,而不是串行设备ID。 | ||||
1 1 0 0 1 | RDRAM睡眠退出 | X | X | 一旦收到该项IOP,MCH就开始由SDA和BA字段确定的RDRAM设备的睡眠退出序列。其中SDA字段应包含设备ID,而不是串行设备ID。 |
1 1 0 1 0 | RDRAM刷新 | 1 | X | 一旦收到该项IOP,MCH就对所有的RDRAM设备的确定组发送一个刷新PCP包。该组的寄存地址由SDA字段确定。 |
1 1 0 1 1 | RDRAM预充电 | 1 | X | 一旦收到该项IOP,MCH就对所有RDRAM设备的一个确定组发送一个预充电PCP包。该组的寄存地址由SDA字段确定。 |
图4所表示的是,初始化控制线路320的一种实施方案在响应所接收到的RDRAM核心初始化IOP(10000b)所执行操作的详细描述。块400中,总线上发出一项广播断电退出的命令。其次,如块405所示,由块410到470所表示的序列对存储地址0到31重复16次。对一个具有一百二十八种电流标定水平和高达三十二个簇的存储子系统来说,这些数目可能是合适的。在其它的实施方案中,例如如果有一个较大的或较小的电流标定水平数的话,就可能用到一个不同的重多个目。同样,不同的系统中可能有不同数目的簇。
块410中,执行无操作命令以确保完成断电退出并在块415中正确地实现了刷新操作(REFA命令)。块420中,又一次执行无操作命令,接着在块425和430中又执行了两次刷新操作(REFA命令)。在块435中,又执行了三次无操作命令,以便在刷新预充电(REFP)命令前留出足够长的时间。块445又执行一条无操作命令后,块450中执行又一条刷新预充电(REFP)命令。
接着在块455中执行一条标定(CAL)命令。该命令为当前指定的设备标定(驱动)IOL电流。正如块465和455中所表明的那样,该项操作可能重复两次。然后,如块470所示,执行一条简单(SAMR)命令。该项简单命令更新目前所指设备的IOL电流。该过程重复进行,直到对三十二簇都完成了这所有的十六次循环步骤。
初始化序列
按照上述的初始化操作,一个系统可以得到初始化处理。例如图5所示的系统,它给出一个Rambus直接RDRAM通道,该系统可以被初始化。该系统中,一个存储控制器500(也称之为存储控制网络集线器,或一个MCH)编写(orchestrate)初始化活动。该存储控制器还初始化通道中特殊的行/列信息包。串行接口540可用来与通道中的各种设备进行通讯。例如,时钟(SCK)、串行帧(CMD)、以及双向串行I/O(SIO0和SIO1)引线可以用来读、写各个RDRAM配置寄存器,还能实现其它的IOP。
该存储控制器包括一个Rambus ASIC单元(RAC)530,一块控制线路板520,和多种寄存器。这些寄存器包括用来初始化系统存储器的初始化寄存器515,和断电恢复寄存器510。断电恢复寄存器包含对运行存储通道至关紧要的计时和其他别的信息。换言之,断电恢复寄存器仅仅是这样的寄存器:在存储控制器500断电后他们必须得以恢复,以便能够恢复访问存储通道。这些寄存器可以是PCI配置寄存器。
存储通道包括RIMM模块560、565、和570,它们通过一个控制和数据总线532以及一个串行总线542连接到MCH 500。控制和数据总线532可被阻性终端533终止,而在来自MCH 500的通道远端可接一个直接Rambus时钟信号发生器(DRCG)580以便通过信号线582提供时钟信号。
此外,该系统包括一个输入/输出控制网络集线器(ICH)505,它把MCH对接到一个次级的总线506上,该系统还可能包括一个次级串行接口线路544,用以实现与一个次级串行总线546连接。每一个模块都有一个串行的存在探测(SPD)存储器572(一种非易失性存储器,诸如某种电子可擦除可编程的只读存储器),可通过串行接口544根据串行存在探测协议读取。该SPD存储器572可以提供每种特殊的存储模块的诸如计时信息、设备结构、和设备工艺等方面的信息。有关SPD协议较详细的讨论可参见“串行存在探测应用简介”一文,以及Rambus公司的直接RambusTMRIMMTM模块和64/72兆位直接RDRAMTM数据表。
在一种实施方案中,串行总线546是一个像系统管理总线(SMBus)的I2C总线。这种实施方案包括时钟(SMBCLK)和数据(SMBDATA)信号,它们遵循工业规范的系统管理总线(SMBus)协议,参见http://www.sbs-forum.org登载的智能电池制造商论坛中,系统管理总线说明书,第1.0版。
ICH设备具有通用输出(GPOs),用于控制多种系统功能,诸如设置DRCG 580的频率等。一个包含BIOS的非易失性存储器585可以连接到次级总线506上,一个电池后备随机存取存储器590也可如法炮制。该电池后备存储器590可以对MCH断电寄存器510保存断电恢复设置值592,从而无须执行后面详细介绍的全部初始化序列,MCH便可以恢复访问RDRAM通道。
简言之,初始化过程可以总结如下。启动复位后,由一个通道中RIMMs上串行存在探测(SPD)数据中读取配置信息。例如,一个存储设备SPD存储器572,将RDRAMs 573、574、576、和577的配置信息存储在RIMM 570。存储控制器的配置寄存器根据SPD信息中适当的值进行编程,然后RDRAM设备ID值的编程要使得每一个RDRAM设备可以被唯一认证并接受存储控制器访问。一旦某设备被初始化,它便可以使用了。
每一个RDRAM设备都有两个识别号码,用来在通道中唯一地选择一种设备,它们便是串行设备ID号和分组设备ID号。这两个ID用于RDRAM通道中截然不同的操作。当存储控制器根据RDRAM通道的SCK、SIO、和CMD信号发送初始化操作时,串行设备ID用来选择设备;而分组设备ID是当存储控制器根据RDRAM通道中RQ[7:0]的信号发送ROW包和COLUMN包时,用来选择设备时使用的。每一设备复位以后而在能被初始化操作(IOPs)和ROW/COLLUMN程序包寻址之前,串行设备ID和分组设备ID都要分别进行编程。
更加仔细地考察Rambus通道初始化过程,我们发现完成通道上RDRAM设备的正确操作可遵循一个特殊的序列。图6表示一种实施方案中某特定通道初始化的流程图,而表4列举了该初始化流程中所用到的一些变量。
表4:初始化所用到的变量
变量名称 | 字段宽度(位) | 说明 |
RIMMMax | 2 | 存在RIMMs的最大个数0不存在RIMMs1-3存在1-3个RIMM(s) |
RIMMCount | 2 | 初始化期间选择一个RIMM所用到的计数器 |
RIMMDeviceCount | 5 | 一特殊的RIMM中RDRAM设备的个数 |
MemberMax | 5 | 一通道中存在设备的最大个数0-31通道中存在1-32个RDRAM设备 |
MemberCount | 5 | 列举分组设备ID时指出已分配分组ID设备号码数所用到的计数器 |
SerialIDCount | 5 | 串行设备ID指数用于在通道上选择设备0-31串行设备ID 0-31的映象 |
GroupDeviceIDCount | 5 | 分组设备ID指数,列举分组设备ID时用于对下一个RDRAM设备分配一个分组设备ID0-31分组设备ID 0-31的映象 |
RIMMDeviceConfigNo | 8 | 表示RDRAM技术定义的字节。位定义与GAR寄存器相配 |
DRAMConfigIndex | 3 | 编入MCH支持的DRAM技术索引表。列举分组设备ID时,用来对RDRAMs按技术降序编排分配分组IDs。 |
MchTrdly | 3 | 通道分级过程中临时存储Mch Trdly的最大值,位的定义与MCH RDT寄存器的MCH’s tRDLY字段相配。 |
DeviceTestAddress | 32 | 32-位CPU地址,通道分级时用于检验一个RDRAM设备 |
TempIndex | 8 | 运算中使用的临时指数 |
块602发生系统复位,MCH复位其所有的状态机并准备初始化。块604中,校验了系统存储器模块的配置。BIOS读取SPD数据以确定存贮器的设置。若仅有RIMMs,RDRAM的初始化序列可能继续进行块608。如存在混合的存储器模块,给用户发布一条错误信息并停止系统,如块606所示。
时钟发生器在块608中开始。本项操作可以由软件完成,查询主板上存在的每一个RIMM模块上的SPD数据并确定一个所有RIMMs都可工作的通道频率。DRCG 580可根据来自ICH 505的一个通用输出(即:如图5所示的GPOx)设定于合适的频率。一种实施方案中,在这一步和MCH RAC初始化之间,BIOS至少等待8毫秒。
如块610所示,下一个初始化的是MCH RAC。在MCH RAC初始化之前,源于DRCG的通道时钟应该是稳定的。MCH RAC的初始化是由执行MCH RAC初始化IOP实现的。该RAC初始化IOP施行基本的初始化,使存储控制器的内部RAC准备执行正常的操作。
一种实施方案中,BIOS在MCH RAC初始化IOP后给出5毫秒的时间来清除IIO位。若5毫秒后IIO位未被MCH清除,BIOS应报告该项错误,而通道是不可用的。由于完成了MCH RAC初始化IOP在MCH清除了IIO位后可以再加5毫秒的延时。此举使MCH时钟有足够的时间达到稳定、锁定。在某些实施方案中,RAC中一条总线可能在其它操作开始之前需要清除。该项操作可通过执行MCH RAC控制寄存器的装入IOP(DRD=00000h)来实现。在某些实施方案的初始化序列中,还有可能在较晚的某点执行RAC初始化操作。
如块612所示,许多MCH配置寄存器在下一步被初始化。一种实施方案中,分页策略寄存器RMC的空闲时间记录器(PGPOL RIT)字段(MCH052h[2:0])被设置为001b以保证通道分级期间没有任何页面是关闭的(讨论见下)。该PGPOL RIT字段设置所有打开页面被关闭前存储控制器保持空闲状态的主机总线时钟数,而设置值为零时表示存储控制器开始关闭页面前将有无限长的等待时间。
此外,在某些实施方案中,可能使用操作池,根据确定的RDRAM状态分组RDRAMs。为了减小运行功率,RDRAM设备可以分作两个操作池,称之为池A和池B。在一种实施方案中,池A同时可多达八种设备。该种实施方案中,池A的八种设备中多达四种可以同时处于活动读/写或活动状态,而池A中的设备要么处于活动读/写或活动状态,要么处于备用状态。
池A中设备的最大个数是可编程的,而且它是由RDRAM电源管理寄存器(RPMR)即寄存器(MCH 053h)的一个PAC字段确定。所有不在池A的设备便都是池B的成员。池B中所有的设备要么处于备用状态,要么处于睡眠状态。池B中设备的状态是由DRAM控制(DRAMC)寄存器(MCH051h)的PBS字段确定的。在一种实施方案中,RPMR寄存器设置为00h,选择池A仅有一种设备,而池B的操作设置为备用状态的操作(MCH051h[6]=0)。
其次如块614所示,可执行附加的通道初始化。这可包括使用SIO(串行接口)复位IOP来执行一个SIO复位,以及为完成SIO复位序列允许足够的延时。加之,为了正确的操作可能需要初始化的其它寄存器此时也可以进行设置。例如在某些实施方案中,一个Test77寄存器在SIO复位后可能要写为0值,如在文献直接RDRAM 64/72兆位数据表第37页所说明的那样(执行一个广播SIO寄存器写IOP:TEST77,DRA=4Dh,DRD=0000h)。
串行设备ID分配
如块620所示,下一步可以分配串行设备认证值(IDs)。通常,软件唯一地识别通道上的每一种设备,使得各个设备上的初始化操作对准目标。每一RDRAM的串行设备ID都被保存在RDRAM INIT寄存器(指数21h)的4-0位。SIO复位后,通道上所有的RDRAMs串行设备ID的默认值为1Fh。并且在复位后,串行转发器(SRP位(RDRAM 021h)[7])被设置为1,使每一个RDRAM能够将SIO0接收到的SIO数据传播到RDRAM的SIO1引线上,将SIO包传送给下一个RDRAM设备。由于复位后所有的设备具有相同的串行设备ID,一个体设备在分配唯一的串行ID之前可能是不能被访问的。
图7表示一种实施方案所执行的串行设备列举操作的进一步细节。块700中,变量SeriallDCount初始化为零。接着,如块705所示,屏蔽通道中所有设备的SIO转发器的功能(广播SIO寄存器写IOP。初始化,DRA=21h,DRD=001Fh)。本项操作使得所有串行设备的ID都设置为01fh。SIO转发器的位设为零,所以仅有通道上第一个设备可被访问。
从块710开始,对通道上所有的设备循环该过程,并对每一种设备分配唯一的ID。当前设备的串行ID设于SeriallDCount而SIO转发器的位设为激活状态(SIO寄存器写IOP:初始化,SDCA=1Fh,DRA=21h,DRD=0080h+SeriallDCount)。其次,不管设备是否真正存在,如块715所示它在系统中的作用受到检验。读取寄存器RDRAM INIT以确定是否刚被写入的同样的值能够正确地再读出来(SIO寄存器读IOP。初始化,SDCA=SeriallDCount,DRA=21h)。
如果数据相符(如块720所检验的那样),变量SerialIDCount增大(块725),并检查变量SerialIDCount看是否最大数目的设备(例如三十二个)都已给了IDs(块730)。若该SerialIDCount仍然指出是一个有效的串行ID,下一个设备便在块705中识别出来。
若该SerialIDCount变量超过了最大允许值,或者如果块720中的数据不相符,那么最后的设备已给了一个ID,而跟踪设备总数的变量可以设置给SerialIDCount,如块735所示。最后,为了使任何其它的在最后允许的设备之外的设备失效,可使具有最高串行ID的RDRAM的SIO转发器失效,如块740所示。因此,任何附加的设备(即,功能不正常的设备或最大数,例如32,之外的设备)不会收到命令因此不会有所响应。作为一种附加的检查,可考察RIMMs上的SPD信息,以确定最后的设备数是否正确。
分组设备ID分配
回到图6,分配了唯一的串行IDs并禁用了最后一个设备的SIO输出后,如块630所示根据存储设备的大小分配分组IDs。在一种实施方案中,MCH支持多达三十二个RDRAM设备和八个分组。每组具有多达四种设备并有一个分组边界读写寄存器(GBA)确定分组ID及每组上下界地址。这样,每一个GBA寄存器便可用一个分组ID和一个9位的上界地址极限值进行编程。无设备占领的分组可能具有一个与前一个分组相同的值而组的大小为零。
此外,图8A-8C中的流程图表明模块630所指出的列举分组设备IDs方法的一种实施方案。如图8A块800所示的那样,许多变量得到了初始化处理。变量SerialIDCount,GroupDeviceIDCount,RIMMCount,RIMMDeviceCount,以及RIMMDeviceConfigNo皆被初始化为零。一个DRAMConfigIndex变量被初始化为一个值,该值指出MCH所支持的最大存储芯片技术。
如块805所示,数据读自一个模块(模块号RIMMCount)的SPD存储器,识别该模块的核心技术。这一信息可能包括每一设备的行数、每一设备的列数、每一设备的存储体数、以及各个存储体之间是相互有关的还是相互独立的等。下面,如块810所示,设置RIMMDeviceConfigNo的值,将读自SPD的核心技术值转换为一个分组结构(GAR)寄存器的等价的值。
下一步如块815所示,变量RIMMDeviceCount设置为由该种RIMM的SPD存储器所指出的设备的数目。据此,可以分配各设备的ID并设置有关寄存器的值,如块820所示。图8B对一种实施方案给出了块820所示过程的进一步细节。
通常,列举过程将一个RIMM上的RDRAM设备数加到第一个串行ID上,然后倒计数直到RIMM结束。因此,如块822所示,检验RIMMDeviceConfigNo是否等于DRAMConfigIndex以确定是否对所有设备特别是对核心技术都已分配了分组设备ID。若二者不等,那么该核心技术的所有设备就都有了分组ID,所以SerialIDCount设置为SerialIDCount加RIMMDeviceCount(见如块830)并且如块832所示使过程回到图8A。另外,如果RIMMDeviceCount为零(如块824所检验到的那样)或者MemberCount为零(如块826所检验到的那样),那么就不存在更多的设备给与分组ID,过程返回到图8A如块832所示。
如果变量RIMMDeviceCount和MemberCount不为零,那么将GroupDeviceIDCount的值设置为RDRAM的分组设备ID的值,该RDRAM的串行ID等于SerialIDCount的当前值,如块828所示。接着,更新当前分组边界地址寄存器(GBA)以便反映有新设备添加到这一组中来了,如块830所示。完成这一操作,可通过将一个表示设备大小的值加到那个GBA寄存器保存的先前的值之上。
下一步,如块832所示变量GroupDeviceIDCount与四(一种实施方案中每组最多的设备数)进行比较。如果该组已满,如块834所示,更新那一个组的MCH分组结构寄存器(GAR)。更新GAR以便正确地表示该组的配置(即存储体的个数和DRAM技术(大小))。在块836中,SerialDeviceIDCount增大,MemberCount减小,GroupDeviceIDCount增大,而RIMMDeviceCount减小。然后过程返回到块824。
回到图8A,如果RIMMDeviceCount或者MemberCount二者之一为零,那么如块850所示,RIMMCount增大。如果RIMMCount小于一个RIMMCount的最大值,如块855所检验到的那样,那么过程返回到块805。如果该RIMMCount的值达到最后的RIMM的值,如块860所示,过程在图8C中继续。
转到图8C,如果MemberCount为零(如块865所检测到的那样),那么设备ID列举过程结束。但是,如果MemberCount不为零,那么下一个MCH组被选在下一个DRAM技术中开始列举设备,如块870所示。GroupDeviceIDCount的更新可能通过加3并且将所得到的结果值与0FFFCh实行一次逻辑加运算。
如果GroupDeviceIDCount是通道所允许的最大设备数(例如是32,如块872所检验到的那样),那么分组ID列举过程到此结束。但是,如果较少的设备给于了分组ID号,那么DRAMConfigIndex设为MCH支持的下一个最小的核心技术如块874所示。如果DRAMConfigIndex显示不存在得到支持的较小核心技术(例如,DRAMCoufigIndex为零如块876所检验到的那样),这样ID的列举过程就结束了。如果还有更多的核心技术,那么如块878所示serialIDCount和RIMMCount复位到零,而过程返回到图8A的块805。
下面的伪代码指出可用于实现图6块630所示的一种实施方案中分组ID列举的操作。
630.MCH设备组列举过程。
630.1.对所有的RIMM SPD存储器循环,并根据RIMM将设备分组。最大工艺的设备必须分到最低的设备组,随着工艺尺度的减小分组号码增大。
630.1.1.置MemberCount=MemberMax
630.1.2.置SerialIDCount=0.这是串行设备ID计数器。
630.1.3.置GroupDeviceIDCount=0.这是分组设备ID计数器。
630.1.4.置RIMMCount=0.这是RIMM计数器。
630.1.5.置RIMMDeviceCount=0.这是RIMM上某#设备的计数器。
630.1.6.DRAMConfigIndex=MCH支持的最大工艺设备。
630.1.7.计算RIMM中某#RIMMCount的核心工艺号数。
630.1.7.1.RIMMDeviceConfigNo=读自RIMMs SPD的核心工艺号数。
630.1.8.RIMMDeviceCount=RIMM#RIMMCount中RDRAM设备的
编号,读自RIMM的SPD EEPROM。
630.1.9.分配分组设备ID并为RIMM编程MCH GAR和GBA寄存器
630.1.630.1.若RIMMDeviceConfigNo!=DRAMConfigIndex,
转至630.1.10.
630.1.9.2.若RIMMDeviceCount=0,转至630.1.10.
630.1.9.3.若MemberCount=0,转至630.1.10.
630.1.9.4.SIO寄存器写IOP。DEVID,SDCA=SerialIDCount,
DRA=40h,DRD=GroupDeviceIDCount.
630.1.9.5.程序MCH GBA[GroupDeviceIDCount SHR
2]=MCH GBA[GroupDeviceIDCount SHR 2-1]+RIMM
#RIMMCount设备大小。
630.1.9.6.若GroupDeviceIDCount逻辑加011b=0则
630.1.9.6.1程序MCH GAR[GroupDeviceIDCount SHR
2]=RIMMDeviceConfigNo
630.1.9.7.GroupDeviceIDCount加1。
630.1.9.8.SerialIDCount加1
630.1.9.9.MemberCount减1
630.1.9.10RIMMDeviceCount递减1
630.1.9.11.Go to步骤630.1.9.2.
630.1.10.RIMMCount加1
630.1.11.若RIMMCount<RIMMMax goto 630.1.7.
630.1.12.如果MemberCount=0则转到步骤10
630.1.13.为下一个RDRAM技术选择下一组。
630.1.13.1.GroupDeviceIDCount=
(GroupDeviceIDCount+011b)逻辑加011b
630.1.14.若GroupDeviceIDCount=32则转到步骤10
630.1.15.DRAMConfigIndex=下一个最小的DRAM技术
630.1.16.若DRAMConfigIndex=0,则转到步骤10
6301.17.SerialIDCount=0
630.1.18.RIMMCount=0
630.1.19.Go to步骤630.1.7.这将开始为下一个最小的RDRAM技术
调查RIMM.
分组ID分配完成后返回到图6,各个RDRAM设备可能被带出断电模式并为了正常运行而进入快速时钟模式,如640步所示。在MCH和RDRAMs中各个RDRAM的计时寄存器可以编程。而REFB和REFR RDRAM控制寄存器也可以进行初始化处理(广播SIO寄存器写IOP.REFB,DRA=41h,DRD=0000h;广播SIO寄存器写IOP.REFR,DRA=42h,DRD=0000h)。
可以通过执行一个广播设置复位的IOP来复位各RDRAM设备,紧跟一个适当的延迟(例如32微秒),继而执行一个清除复为IOP,也紧跟一个适当的延迟(例如4微秒),给完成复位操作留出时间。执行一个广播RDRAM断电出口IOP使各RDRAM被带出断电模式,而通过执行一个广播RDRAM设置快速时钟模式的初始化IOP使其进入快速时钟模式。
此后,RDRAM核心可以像块642所示进行初始化。一种RDRAM核心初始化实施方案的进一步细节情况表示在图9之中。如块900所示,对一个适当的RDRAM寄存器写入一个中间值,RDRAM设备准备好做电流标定(广播SIO寄存器写IOP。CCA,DRA=43h,DRD=0040h;广播SIO寄存器写IOP.CCB,DRA=44h,DRD=0040h)。在一个具有一百二十七种可能的电流标定水平的实施方案中,四十个十六进位可能是一个适当的中间值。从这一中间值开始限制了所需标定循环的总数,因为标定值可能只会大约偏差整个标定值范围的一半。
其次,执行每一个RDRAM设备的每一个存储体预充电操作。为执行预充电操作,MCH对所有存储体计数时每次加2,首先预充电奇数存储体接着预充电偶数存储体。块905中寄存体指数置0。然后执行一个广播预充电IOP如块910所示。寄存体指数值递增2如块915所示,广播预充电操作对偶数存储体重复,直到存储体指数等于最大存储体数(例如32)为止,如块920所示。
一旦达到最大存储体数目,存储体指数置为1(如块930所示),并且所有的奇数存储体都被预充电。一旦存储体指数超过最大存储体数目,RDRAM核心初始化IOP被执行六次,如块940所示。
通道分级
当块642所示的RDRAM核心初始化完成以后,我们从新回到图6,通道可以进行分级,如块644所示。这一过程包括对所有的RDRAM将RDRAM读出反应时间之和与RDRAM到MCH的一个传播延迟进行均衡处理。换言之,一旦通道分了级,存储控制器里所有的RDRAM将在相同的总线周期中提供数据。
下面的伪代码表示一个系列步骤可以完成在一种实施方案中实施块644所示的分级过程。
644.分级Rambus通道
644.1.第一段:确定MCH tDRLY字段的置。
644.1.1.SerialIDCount=MemberMax
644.1.2.Mch Trdly=0
644.1.3.子程序MCH RDT:TRDLY字段=MchTrdly.
644.1.4.计算32位的地址,为分级检验RDRAM设备。
644.1.4.1.SIO寄存器读IOP.DEVID,SDCA=SerialIDCount,DRA=40h
644.1.4.2.DRD(MCH 090h[15:0])现在包含RDRAM设备的ID
644.1.4.3.DeviceTestAddress=MCH GBA[(DRD SHR
2)-1]SHL23+((DRD AND 011b)*以字节表示的设备大小(根据
GAR[DRD SHR 2])
644.1.5.以TestPattern方式对地址DeviceTestAddress执行QWORD写操
作。
644.1.6.对地址DeviceTestAddress执行QWORD读操作。
644.1.7.如果所读的数据!=TestPattern则
644.1.7.1.增大MCH RDT:TRDLY字段
644.1.7.2.如果MCHRDT:TRDLY字段<=4转至644.1.5.
644.1.8.否则(如果所读的数据!=TestPattern)
644.1.8.1.MchTrdly=读自MCH RDT:TRDLY字段的数据
644.1.8.2.如果MchTrdly=4转至644.2
644.1.9.减小SerialIDCount
644.1.10.如果SerialIDCount>=0则转至644.1.3.
644.2.第二段:确定RDRAM分级计时值
644.2.1.SerialIDCount=MemberMax
644.2.2.计算32bit位地址,为分级工作检验RDRAM设备
644.2.2.1.SIO寄存器读IOP.DEVID,SDCA=SerialIDCount,DRA=40h
644.2.2.2.DRD(MCH 090h[15:0])现在包含RDRAM的设备ID.
644.2.2.3.DeviceTestAddress=MCH GB A[(DRD SHR
2)-1]SHL23+((DRD AND 011b)*以字节表示的设备大小(根据
GAR[DRD SHR 2])
644.2.3.以TestPattern方式对地址DeviceTestAddress执行QWORD写操
作。
644.2.4.执行QWORD读操作,给出DeviceTestAddress的地址
644.2.5.若读到的数据=TestPattern则转至644.2.8
644.2.6.若RDRAMs的TCDLY字段<TCDLY的最大值(根据SPD,则
644.2.6.1.根据TCDLY的支持数据表,给RDRAMs的TCDLY寄存
器(TDAC和TRDLY)增大
644.2.6.2.转移到644.2.3
644.2.7.标记RDRAM设备将失效
644.2.8.计数器SerialIDCount减小
644.2.9.若SerialIDCount>=0则转移到644.2.2
分级完成后,一种实施方案将一系列断电恢复存储器初始化的值保存在图5中电池后备存储器590中,如块646所示。值得注意,适当的值由初始化子程序确定后,这一操作可以在任何其它阶段实现。保存这些值是要将由初始化过程确定的初始化信息保持在这一点。
当系统进入一个低能态(如,暂停于RAM)时,MCH的电源可能就被断开了。这样,如果初始化的信息没有保留,那么可能不得不重复整个初始化过程。将关键的初始化信息保存在一个非遗失性存储器中,可能有利于提高从这种低能状态苏醒的速度。但由于这些值恢复之前存储子系统将不起作用,这一实事增加了保存此种信息的难度。
任何可以写入的非遗失性存储器都可以用来保存适当的初始化信息;然而,许多计算机系统中装有一种电池后备存储器,因此这可能是一种方便的选择。在一种实施方案中,下面诸寄存器的内容保存在存储器590中。
·MCH分组结构(GAR)寄存器(040-047h):这些寄存器指出每组设备的配置,诸如存储体的个数和DRAM的技术(容量)等。
·MCH RDRAM计时寄存器RDT(050h):这一个寄存器定义通道中所有设备的计时参数。
·MCH DRAM控制(DRAMC)寄存器(051h):这一个寄存器包括池B操作选择(PBS)位,确定MCH某一操作模式的存储器传送网络集线器存在的一个位(MTHP),以及一个孔径读写全局启用位,它能在孔径范围和转换表建立之前阻止任何部分对孔径的访问。
·MCH分页规则(PGPOL)寄存器(052h):这一寄存器确定分页规则的特征,包括DRAM刷新率(DRR)和一个RMC空闲时间记录器。该DRR字段调整DRAM的刷新率,而RIT字段确定所有打开页面关闭之前存储控制器将保持空闲状态的主机总线时钟周期数。
·MCH RPMR(053h):这一寄存器包括一个设备睡眠计时器(DNT)字段,一个池A的活动设备(ADPA)字段,一个设备睡眠启用(DNE)字段,以及一个池A的容量(PAC)字段。字段DNT确定最近最少使用的设备由存储体A推入存储体B之前存储控制器处于空闲状态的主机时钟数。ADPA字段确定存储体A中同时可以是有效读/写或者活动状态的最大RDRAM设备数。存储体A中不是有效读/写或者活动状态的设备乃是处于备用状态。DNE位(当置为1的时候)使通道的休止状态计数器连续地统计休止时间。当计数器的值超出了由DNT确定的阈值时,最近最少使用的设备由存储体A推入存储体B。PAC字段确定某一时刻可以驻留在存储体A中的最大RDRAM设备数。不是存储体A一部分的设备则都属于存储体B。
·MCH分组边界访问(GBA)寄存器(060-06Fh):寄存器GBA包括一个分组ID和一个指示该设备组地址上界的值。
·MCH配置寄存器MCHCFG(0BE-BFh):这些寄存器包括Rambus频率和DRAM数据完整性模式字段。
另外,各断电配置选项也可以在此进行编程。在一种实施方案中,设置了自刷新和低功率自刷新选项(对每一个SerialIDCount:SIO寄存器写IOP.INT,SDCA=SerialIDCount,DRA=21h,DRD=400h,(LSR,若SPD支持的话)+200h(PSR)+80h(SRP))。
如块650所示,对正常操作再作少数几个寄存器的编程工作后,便可以开始正常操作了。设置分页规则寄存器,以便能正常运行(PGPOLRIT字段(MCH 052h[2:0])至001b),因为对分级来说页面关闭计时器实际上已经失效,而通过RPMR寄存器(MCH 053h)电源管理特征在此生效了。如果对睡眠(NAP)操作配置了存储体B选择位(MCH 051h[6]),那么可执行一个广播NAP入口IOP,是所有设备进入NAP状态。在设置IIO位的同一I/O指令中,也将RICM中的IC bit为设置为一,故MCH的正常操作可以开始了。
退出低能状态时恢复通道
正常操作继续了一段时间后,由于系统不活动或其他原因,系统可能进入一种低能状态,如图10中块1000所示。系统可能进入的一种状态是一种悬挂到RAM(STR)的状态,其中MCH丢失了保存在它的寄存器中的值。当进入STR状态后,可能检测出使系统退出STR状态的一个事件,如块1010所示。于是,BIOS对MCH和其它别的系统元部件加电。这一过程中MCH的配置寄存器可自动地复位到一个默认值。
因此,要再一次访问存储通道上的各存储器,至少某些配置寄存器的值是必需的。BIOS可使ICH 505访问电池后备存储器590并恢复下列的寄存器(保存在图6块646)。
·MCH GAR寄存器(040-047h)
·MCH RDT(050h)
·MCH DRAMC(051h)
·MCH PGPOL(052h)
·MCH RPMR(053h)
·MCH GBA寄存器(060-06Fh)
·MCH配置寄存器MCHCFG(0BE-BFh)
将这些寄存器的值恢复后,系统进入STR状态时MCH可以再一次访问保存在存储器中的项目,这些项目包括诸如处理程序的环境等,倘若保存了的话。由于存储器在STR状态执行自刷新操作,故未丢失其它数据。
其次,时钟发生器开始工作,如块1040所示。由MCH MCHCFG寄存器(MCH 0Beh[11],在块1030得以恢复)读出适当的Rambus通道频率。当时钟稳定后,MCH RAC进行初始化,如块1050所示。这一工作可以通过执行MCH RAC初始化IOP来完成。另外,DRD寄存器可以装入0000h的内容,并可执行MCH RAC控制寄存器装载IOP来初始化RAC中的一条总线(如有关块610的讨论)。
下一步,如块1060所示实现电流标定。完成这一工作正如对块642和图9有关讨论那样。但是,在块940所示的最后一次迭代中,可以设置RICM寄存器中的IC位,使得一旦完成电流标定边立即开始正常的操作。这样,由STR序列重新开始,大大地快于系统第一次加电所要求的整个初始化序列,因为通道的分级、SPD查询、ID分配、以及许多别的初始化操作可以免去了。
总之,本项发明给出一种方法和设备初始化一个存储设备和存储通道。当对某些特定的举例实施方案进行了描述并用附图作了说明时,我们应该知道这些实施方案仅仅是使用图例进行说明而不是严格的广泛意义下的发明,而且这种发明不限于已经进行了演示和说明了的特殊的结构和安排,因为对那些普通技术人员来说,在考察本项发明的时候,可能出现许多别的修正。
Claims (18)
1.一种用于执行存储控制器初始化的方法,包括:
初始化存储控制器;
初始化第一多个存储控制器配置寄存器;
为与所述存储控制器耦合的多个存储设备分配串行识别号码;
通过:
给具有最大支持规模的存储设备分配一组最低的识别号码;和
给其余的规模较小存储设备分配其后的识别号码;
至少部分基于存储设备的大小,为所述多个存储设备组分配设备识别号码;
对所述多个存储设备的每一个存储设备中的第二多个寄存器编程,使设备响应时间之和等于从每一存储设备到所有所述多个存储设备的所述存储控制器的传播延迟时间;以及
使能该多个存储设备。
2.根据权利要求1的方法,其中初始化所述存储控制器进一步包括复位该存储控制器和存储接口电路。
3.根据权利要求1的方法,进一步包括:在分配串行识别号码之前,复位串行接口。
4.根据权利要求1的方法,进一步包括:
检验该多个存储设备是否是Rambus内嵌式存储模块;并且
如果存在除Rambus内嵌式存储模块以外类型的存储器,而所述类型的存储器混合在包括Rambus内嵌式存储模块的存储模块之中,则给出错误信号。
5.根据权利要求4的方法,还包括检验所述多个存储设备是否是第一类型存储设备的步骤,所述检验所述多个存储设备是否是第一类型存储设备的步骤包括:
检验该多个存储设备是否是Rambus RDRAMS;以及
禁止所述多个存储设备中任何不同类型存储设备。
6.根据权利要求1的方法,其中对所述多个存储设备分配设备识别号码进一步包括:
从选定的存储模块读取表示内核技术的大小的数值;
对所选存储模块上的每一个存储设备进行重复:
分配设备识别号码,它是分组计数器和表示内核技术大小数值的函数;以及
增加分组计数器的值。
7.根据权利要求6的方法,进一步包括:
对所选存储模块上的每一个存储设备,更新组特性寄存器。
8.根据权利要求1的方法,其中对所述多个存储设备分配串行识别号码进一步包括:
根据所述多个存储设备在串行总线上的串行顺序给该多个存储设备分配顺序的唯一的串行识别号码。
9.根据权利要求1的方法,其中分配串行识别号码进一步包括:
禁止具有等于最大设备计数的串行识别号码的最后一个存储设备的串行输出。
10.根据权利要求1的方法,其中初始化所述存储控制器包括初始化Rambus应用的专用集成电路单元。
11.根据权利要求1的方法,其中对所述多个存储设备组分配设备识别号码包括:
对多个存储模块中的每一个,确定设备大小的信息;
根据其设备大小,选择被选存储模块;
对所选存储模块上的至少一个设备组分配设备识别号码;以及
重复选择下一个被选存储模块并分配设备识别号码,直到所有的设备有了设备识别号码。
12.根据权利要求1的方法,其中初始化多个存储控制器配置寄存器进一步包括:
初始化组边界地址寄存器;
初始化组结构寄存器;
初始化RDRAM计时寄存器;
初始化RDRAM控制寄存器;
初始化RDRAM电源管理寄存器;以及
初始化RDRAM初始化控制寄存器。
13.根据权利要求1的方法,其中使能所述多个存储设备进一步包括:
复位该多个存储设备;
广播断电退出的初始化操作;
广播一组快速时钟模式初始化操作;以及
初始化该多个存储设备的每一个的内核。
14.根据权利要求13的方法,其中初始化所述多个存储设备的每一个存储设备的内核包括:
使该多个存储设备做好电流标定的准备;
给每一存储设备的每一个存储体传送预充电操作;以及执行内核初始化操作。
15.根据权利要求14的方法进一步包括:再执行5次内核初始化操作。
16.根据权利要求15的方法,其中执行所述内核初始化操作包括:
对多个存储体中的每一个重复迭代N次,这里N是正整数:
执行无操作命令;
执行刷新命令;
执行第二次的无操作命令;
执行第三次的和第四次的刷新命令;
执行第三次,第四次,和第五次的无操作命令;
执行刷新预充电命令;
执行第六次无操作命令;
执行第二次刷新预充电命令;
执行第一次,第二次,和第三次的标定命令;以及
执行采样命令。
17.一种用于执行存储控制器初始化的装置,包括:
用于初始化所述存储控制器的部件;
用于初始化第一多个存储控制器配置寄存器的部件;
用于给耦合到所述存储控制器的多个存储设备分配串行识别号码的部件;
用于至少部分地根据存储设备的大小给所述多个存储设备分配设备识别号码的部件:所述用于分配设备识别号码的部件包括:
给具有最大支持规模的存储设备分配一组最低的识别号码的部件;和
给其余的规模较小存储设备分配其后的识别号码的部件;
对所述多个存储设备的每一个存储设备中的第二多个寄存器编程,使设备响应时间之和等于从每一存储设备到所有所述多个存储设备共有的存储控制器的传播延迟时间的部件;以及
用于使能该多个存储设备的部件。
18.根据权利要求17的装置,还包括:
用于检验该多个存储设备是否是Rambus内嵌式存储模块的部件;和
用于如果存在除Rambus内嵌式存储模块以外类型的存储器,而所述类型的存储器混合在包括Rambus内嵌式存储模块的存储模块之中,则给出错误信号的部件。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/186,051 US6226729B1 (en) | 1998-11-03 | 1998-11-03 | Method and apparatus for configuring and initializing a memory device and a memory channel |
US09/186051 | 1998-11-03 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB998153958A Division CN100492318C (zh) | 1998-11-03 | 1999-10-22 | 配置和初始化存储器及存储通道的方法与设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101520766A CN101520766A (zh) | 2009-09-02 |
CN101520766B true CN101520766B (zh) | 2012-09-19 |
Family
ID=22683465
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009101305608A Expired - Fee Related CN101520766B (zh) | 1998-11-03 | 1999-10-22 | 配置和初始化存储器及存储通道的方法与设备 |
CNB998153958A Expired - Lifetime CN100492318C (zh) | 1998-11-03 | 1999-10-22 | 配置和初始化存储器及存储通道的方法与设备 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB998153958A Expired - Lifetime CN100492318C (zh) | 1998-11-03 | 1999-10-22 | 配置和初始化存储器及存储通道的方法与设备 |
Country Status (9)
Country | Link |
---|---|
US (2) | US6226729B1 (zh) |
EP (1) | EP1135728B1 (zh) |
CN (2) | CN101520766B (zh) |
AU (1) | AU1221100A (zh) |
BR (1) | BR9915823B1 (zh) |
DE (1) | DE69937808T2 (zh) |
HK (1) | HK1036858A1 (zh) |
TW (1) | TW460782B (zh) |
WO (1) | WO2000026788A1 (zh) |
Families Citing this family (66)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6154821A (en) * | 1998-03-10 | 2000-11-28 | Rambus Inc. | Method and apparatus for initializing dynamic random access memory (DRAM) devices by levelizing a read domain |
US6128749A (en) * | 1998-11-03 | 2000-10-03 | Intel Corporation | Cross-clock domain data transfer method and apparatus |
US6226729B1 (en) * | 1998-11-03 | 2001-05-01 | Intel Corporation | Method and apparatus for configuring and initializing a memory device and a memory channel |
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 |
US6367007B1 (en) * | 1999-02-22 | 2002-04-02 | Intel Corporation | Using system configuration data to customize bios during the boot-up process |
US6674993B1 (en) * | 1999-04-30 | 2004-01-06 | Microvision, Inc. | Method and system for identifying data locations associated with real world observations |
US6408398B1 (en) * | 1999-12-29 | 2002-06-18 | Intel Corporation | Method and apparatus for detecting time domains on a communication channel |
JP4265850B2 (ja) * | 2000-01-17 | 2009-05-20 | 富士通株式会社 | 移動体交換機、ホームメモリ・ノード装置および関門交換機 |
US6886105B2 (en) * | 2000-02-14 | 2005-04-26 | Intel Corporation | Method and apparatus for resuming memory operations from a low latency wake-up low power state |
US7565541B1 (en) * | 2000-06-21 | 2009-07-21 | Microvision, Inc. | Digital fingerprint identification system |
TW526417B (en) * | 2000-08-03 | 2003-04-01 | Asustek Comp Inc | Control circuit for providing applications of unbuffered dual in-line memory modules (DIMM) on system supporting only registered DIMM chipset |
US6691237B1 (en) * | 2000-08-08 | 2004-02-10 | Dell Products, L.P. | Active memory pool management policies |
US6785747B2 (en) * | 2000-11-30 | 2004-08-31 | International Business Machines Corporation | Method and system for flexible channel path identifier assignment |
US20020078026A1 (en) * | 2000-12-14 | 2002-06-20 | Fergus Joseph E. | Method and apparatus for bulk data remover |
US6535411B2 (en) * | 2000-12-27 | 2003-03-18 | Intel Corporation | Memory module and computer system comprising a memory module |
US6940816B2 (en) * | 2000-12-29 | 2005-09-06 | Intel Corporation | Method and apparatus for a slot-based memory controller |
US6772360B2 (en) * | 2001-02-07 | 2004-08-03 | Emulex Design & Manufacturing Corporation | Extension signal generator coupled to an extension timer and an extension register to generate an initialization extension signal |
US20020144173A1 (en) * | 2001-03-30 | 2002-10-03 | Micron Technology, Inc. | Serial presence detect driven memory clock control |
US6820169B2 (en) * | 2001-09-25 | 2004-11-16 | Intel Corporation | Memory control with lookahead power management |
US6948007B2 (en) * | 2001-12-20 | 2005-09-20 | Hewlett-Packard Development Company, L.P. | Method and apparatus for configuring integrated circuit devices |
US7921359B2 (en) * | 2002-04-19 | 2011-04-05 | Sas Institute Inc. | Computer-implemented system and method for tagged and rectangular data processing |
US20040024941A1 (en) * | 2002-07-31 | 2004-02-05 | Compaq Information Technologies Group, L.P. | Method and apparatus for supporting hot-plug cache memory |
US7200024B2 (en) * | 2002-08-02 | 2007-04-03 | Micron Technology, Inc. | System and method for optically interconnecting memory devices |
US7254331B2 (en) * | 2002-08-09 | 2007-08-07 | Micron Technology, Inc. | System and method for multiple bit optical data transmission in memory systems |
US7836252B2 (en) | 2002-08-29 | 2010-11-16 | Micron Technology, Inc. | System and method for optimizing interconnections of memory devices in a multichip module |
KR100929143B1 (ko) * | 2002-12-13 | 2009-12-01 | 삼성전자주식회사 | 컴퓨터 및 그 제어방법 |
US7127622B2 (en) * | 2003-03-04 | 2006-10-24 | Micron Technology, Inc. | Memory subsystem voltage control and method |
US7117405B2 (en) * | 2003-04-28 | 2006-10-03 | Kingston Technology Corp. | Extender card with intercepting EEPROM for testing and programming un-programmed memory modules on a PC motherboard |
US7245145B2 (en) * | 2003-06-11 | 2007-07-17 | Micron Technology, Inc. | Memory module and method having improved signal routing topology |
WO2005015564A1 (en) * | 2003-08-06 | 2005-02-17 | Netlist, Inc. | Non-standard dual in-line memory modules with more than two ranks of memory per module and multiple serial-presence-detect devices to simulate multiple modules |
US6961281B2 (en) * | 2003-09-12 | 2005-11-01 | Sun Microsystems, Inc. | Single rank memory module for use in a two-rank memory module system |
US20050086456A1 (en) * | 2003-09-29 | 2005-04-21 | Yaron Elboim | Addressing scheme to load configuration registers |
US7120743B2 (en) | 2003-10-20 | 2006-10-10 | Micron Technology, Inc. | Arbitration system and method for memory responses in a hub-based memory system |
US7181584B2 (en) * | 2004-02-05 | 2007-02-20 | Micron Technology, Inc. | Dynamic command and/or address mirroring system and method for memory modules |
CN100485644C (zh) * | 2004-02-10 | 2009-05-06 | 上海新时达电气股份有限公司 | 自动分配串行总线设备地址分配器及其控制方法 |
US7366864B2 (en) | 2004-03-08 | 2008-04-29 | Micron Technology, Inc. | Memory hub architecture having programmable lane widths |
US7120723B2 (en) | 2004-03-25 | 2006-10-10 | Micron Technology, Inc. | System and method for memory hub-based expansion bus |
US7590797B2 (en) * | 2004-04-08 | 2009-09-15 | Micron Technology, Inc. | System and method for optimizing interconnections of components in a multichip memory module |
US7222213B2 (en) * | 2004-05-17 | 2007-05-22 | Micron Technology, Inc. | System and method for communicating the synchronization status of memory modules during initialization of the memory modules |
US7339837B2 (en) * | 2004-05-18 | 2008-03-04 | Infineon Technologies Ag | Configurable embedded processor |
US20050289316A1 (en) * | 2004-06-24 | 2005-12-29 | David Durham | Mechanism for sequestering memory for a bus device |
JP4616586B2 (ja) * | 2004-06-30 | 2011-01-19 | 富士通株式会社 | メモリ初期化制御装置 |
DE102004033387B4 (de) * | 2004-07-09 | 2008-06-05 | Infineon Technologies Ag | Digitale RAM-Speicherschaltung mit erweiterter Befehlsstruktur |
US7296129B2 (en) | 2004-07-30 | 2007-11-13 | International Business Machines Corporation | System, method and storage medium for providing a serialized memory interface with a bus repeater |
US7519877B2 (en) * | 2004-08-10 | 2009-04-14 | Micron Technology, Inc. | Memory with test mode output |
US7392331B2 (en) * | 2004-08-31 | 2008-06-24 | Micron Technology, Inc. | System and method for transmitting data packets in a computer system having a memory hub architecture |
US7299313B2 (en) | 2004-10-29 | 2007-11-20 | International Business Machines Corporation | System, method and storage medium for a memory subsystem command interface |
US7512762B2 (en) | 2004-10-29 | 2009-03-31 | International Business Machines Corporation | System, method and storage medium for a memory subsystem with positional read data latency |
US7331010B2 (en) | 2004-10-29 | 2008-02-12 | International Business Machines Corporation | System, method and storage medium for providing fault detection and correction in a memory subsystem |
US7305574B2 (en) * | 2004-10-29 | 2007-12-04 | International Business Machines Corporation | System, method and storage medium for bus calibration in a memory subsystem |
US7555670B2 (en) * | 2005-10-26 | 2009-06-30 | Intel Corporation | Clocking architecture using a bidirectional clock port |
US7478259B2 (en) | 2005-10-31 | 2009-01-13 | International Business Machines Corporation | System, method and storage medium for deriving clocks in a memory system |
US7685392B2 (en) * | 2005-11-28 | 2010-03-23 | International Business Machines Corporation | Providing indeterminate read data latency in a memory system |
US7663939B2 (en) * | 2006-05-30 | 2010-02-16 | Kingston Technology Corporation | Voltage stabilizer memory module |
US7669086B2 (en) | 2006-08-02 | 2010-02-23 | International Business Machines Corporation | Systems and methods for providing collision detection in a memory system |
US7870459B2 (en) * | 2006-10-23 | 2011-01-11 | International Business Machines Corporation | High density high reliability memory module with power gating and a fault tolerant address and command bus |
US7721140B2 (en) | 2007-01-02 | 2010-05-18 | International Business Machines Corporation | Systems and methods for improving serviceability of a memory system |
US7606988B2 (en) * | 2007-01-29 | 2009-10-20 | International Business Machines Corporation | Systems and methods for providing a dynamic memory bank page policy |
US7877590B2 (en) * | 2007-08-13 | 2011-01-25 | International Business Machines Corporation | Consistent data storage subsystem configuration replication |
USRE48495E1 (en) | 2009-12-17 | 2021-03-30 | Toshiba Memory Corporation | System, device, and method for initializing a plurality of electronic devices using a single packet |
WO2012095892A1 (en) * | 2011-01-14 | 2012-07-19 | Hitachi, Ltd. | Storage apparatus and response time control method |
US8856482B2 (en) | 2011-03-11 | 2014-10-07 | Micron Technology, Inc. | Systems, devices, memory controllers, and methods for memory initialization |
US8463948B1 (en) * | 2011-07-01 | 2013-06-11 | Intel Corporation | Method, apparatus and system for determining an identifier of a volume of memory |
CN113127085A (zh) | 2015-08-20 | 2021-07-16 | 美光科技公司 | 从nand媒体快速引导的固态存储装置 |
CN109597654B (zh) * | 2018-12-07 | 2022-01-11 | 湖南国科微电子股份有限公司 | 寄存器初始化方法、基础配置表的生成方法及嵌入式系统 |
CN113867803A (zh) * | 2020-06-30 | 2021-12-31 | 华为技术有限公司 | 一种内存初始化装置、方法及计算机系统 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4224506A (en) | 1978-03-24 | 1980-09-23 | Pitney Bowes Inc. | Electronic counter with non-volatile memory |
US4236207A (en) * | 1978-10-25 | 1980-11-25 | Digital Equipment Corporation | Memory initialization circuit |
US4654787A (en) * | 1983-07-29 | 1987-03-31 | Hewlett-Packard Company | Apparatus for locating memory modules having different sizes within a memory space |
US4980850A (en) * | 1987-05-14 | 1990-12-25 | Digital Equipment Corporation | Automatic sizing memory system with multiplexed configuration signals at memory modules |
US5040153A (en) * | 1987-10-23 | 1991-08-13 | Chips And Technologies, Incorporated | Addressing multiple types of memory devices |
US4994934A (en) | 1989-12-01 | 1991-02-19 | Abb Power T & D Company Inc. | Microcomputer based reclosing relay |
EP0613088A1 (en) * | 1993-02-24 | 1994-08-31 | Digital Equipment Corporation | Method of memory interleaving and memory systems interleaved thereby |
US5560023A (en) | 1994-09-07 | 1996-09-24 | International Business Machines Corporation | Automatic backup system for advanced power management |
US5737748A (en) | 1995-03-15 | 1998-04-07 | Texas Instruments Incorporated | Microprocessor unit having a first level write-through cache memory and a smaller second-level write-back cache memory |
US5757365A (en) | 1995-06-07 | 1998-05-26 | Seiko Epson Corporation | Power down mode for computer system |
US5701438A (en) * | 1995-09-29 | 1997-12-23 | Intel Corporation | Logical relocation of memory based on memory device type |
US6003121A (en) * | 1998-05-18 | 1999-12-14 | Intel Corporation | Single and multiple channel memory detection and sizing |
US6226729B1 (en) * | 1998-11-03 | 2001-05-01 | Intel Corporation | Method and apparatus for configuring and initializing a memory device and a memory channel |
-
1998
- 1998-11-03 US US09/186,051 patent/US6226729B1/en not_active Expired - Lifetime
-
1999
- 1999-10-22 AU AU12211/00A patent/AU1221100A/en not_active Abandoned
- 1999-10-22 WO PCT/US1999/024752 patent/WO2000026788A1/en active IP Right Grant
- 1999-10-22 BR BRPI9915823-0A patent/BR9915823B1/pt not_active IP Right Cessation
- 1999-10-22 CN CN2009101305608A patent/CN101520766B/zh not_active Expired - Fee Related
- 1999-10-22 EP EP99971539A patent/EP1135728B1/en not_active Expired - Lifetime
- 1999-10-22 DE DE69937808T patent/DE69937808T2/de not_active Expired - Lifetime
- 1999-10-22 CN CNB998153958A patent/CN100492318C/zh not_active Expired - Lifetime
- 1999-11-20 TW TW088119150A patent/TW460782B/zh not_active IP Right Cessation
-
2001
- 2001-02-07 US US09/779,072 patent/US6636957B2/en not_active Expired - Fee Related
- 2001-10-31 HK HK01107610A patent/HK1036858A1/xx not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
BR9915823A (pt) | 2001-08-14 |
EP1135728B1 (en) | 2007-12-19 |
US6226729B1 (en) | 2001-05-01 |
BR9915823B1 (pt) | 2011-06-28 |
DE69937808T2 (de) | 2008-12-04 |
CN1342282A (zh) | 2002-03-27 |
EP1135728A4 (en) | 2004-08-18 |
CN101520766A (zh) | 2009-09-02 |
DE69937808D1 (de) | 2008-01-31 |
AU1221100A (en) | 2000-05-22 |
US20010008005A1 (en) | 2001-07-12 |
EP1135728A1 (en) | 2001-09-26 |
CN100492318C (zh) | 2009-05-27 |
HK1036858A1 (en) | 2002-01-18 |
US6636957B2 (en) | 2003-10-21 |
TW460782B (en) | 2001-10-21 |
WO2000026788A1 (en) | 2000-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101520766B (zh) | 配置和初始化存储器及存储通道的方法与设备 | |
TW538342B (en) | A method and apparatus for restoring a memory device channel when exiting a low power state | |
US6532526B2 (en) | Method and apparatus for configuring a memory device and a memory channel using configuration space registers | |
US6003121A (en) | Single and multiple channel memory detection and sizing | |
US7281079B2 (en) | Method and apparatus to counter mismatched burst lengths | |
CN1698032B (zh) | 从非线性存储器引导 | |
US20070294522A1 (en) | Using chip select to specify boot memory | |
US9846643B2 (en) | Methods for maintaining a storage mapping table and apparatuses using the same | |
CN107636600A (zh) | 高性能持久存储器 | |
TW200535611A (en) | Integral memory buffer and serial presence detect capability for fully-buffered memory modules | |
US20100011164A1 (en) | Memory systems and methods of initiallizing the same | |
CN102306127B (zh) | 一种ddriii内存识别和初始化方法 | |
US20120079306A1 (en) | Memory Reconfiguration During System Run-Time | |
US9852068B2 (en) | Method and apparatus for flash memory storage mapping table maintenance via DRAM transfer | |
US6622244B1 (en) | Booting from a reprogrammable memory on an unconfigured bus by modifying boot device address | |
CN108139993B (zh) | 内存装置、内存控制器、数据缓存装置及计算机系统 | |
WO2023183133A1 (en) | Serial attached non-volatile memory | |
EP0831402A1 (en) | Dynamically configuring timing to match memory bus loading conditions | |
EP0657791B1 (en) | Dynamically programmable timer-counter | |
TWI694331B (zh) | 共享記憶體的雙模網路通訊裝置 | |
EP0842512A1 (en) | Module security device | |
JP2731652B2 (ja) | 情報処理システムのチャネル番号設定方式 | |
SU1589282A1 (ru) | Контроллер пам ти | |
CN103034505A (zh) | 写入数据的方法及电子装置 | |
WO2007092659A2 (en) | Time efficient embedded eeprom/processor control method |
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: 20120919 Termination date: 20151022 |
|
EXPY | Termination of patent right or utility model |