CN1332863A - 当存在断电状态时恢复存储器设备信道的方法和设备 - Google Patents
当存在断电状态时恢复存储器设备信道的方法和设备 Download PDFInfo
- Publication number
- CN1332863A CN1332863A CN99815394A CN99815394A CN1332863A CN 1332863 A CN1332863 A CN 1332863A CN 99815394 A CN99815394 A CN 99815394A CN 99815394 A CN99815394 A CN 99815394A CN 1332863 A CN1332863 A CN 1332863A
- Authority
- CN
- China
- Prior art keywords
- memory
- register
- values
- rdram
- preserve
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1441—Resetting or repowering
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Stored Programmes (AREA)
- Channel Selection Circuits, Automatic Tuning Circuits (AREA)
Abstract
一个方法涉及保存来自存储器控制器(100)中的存储位置的一组存储器初始值到一个存储器中。这些值对于访问系统存储器是必要的。当退出断电状态时,这些值恢复到存储器控制器(100)中的多个存储位置。
Description
背景
发明领域
本发明涉及事件处理系统领域。更具体地,本发明涉及初始化或配置一个存储器信道中的存储器设备,并且当存在断电状态时恢复存储器设备。
将计算机系统置于断电状态是一个众所周知的节省电力的技术。例如,高级配置和电压管理接口规范建议使用几个断电状态并定义操作系统软件和系统硬件之间的接口。
延缓至RAM(STR)状态是一个普遍使用于电压管理应用中的状态。一般地,当进入这种断电状态,处理动作停止,并且某些值保存在存储器中,保留它们以备后来处理恢复时使用。例如,ACPI S3睡眠状态是一个除了系统存储器之外所有系统上下关系都失去的状态。处理器和存储器控制器的关系(即寄存器和内部存储器值)在该状态被丢失。而且,其它电压管理技术可以包括类似状态,在该状态位于芯片组或存储器控制器中的寄存器和/或存储器值被丢失。
在一个为了与存储器正确通信需要初始化存储器配置寄存器的系统中,丢失存储器控制器值可能是特别有问题的。直到这样的值被恢复,主存储器才能被访问。而且,主存储器不能用于保存配置值或用来保存一个恢复这样的值的程序。
为了恢复这样的存储器配置寄存器的值,一个方法将是执行整个存储器初始化序列来重新建立失去的初始值。然而,该方法可能由于二个原因是不好的。第一,初始化序列可能很长,当系统试图从STR状态唤醒时,因而引起显著的延迟出现。第二,初始化序列可能执行某些破坏存储器内容的操作。如果存储器确实由于重新初始化系统而丢失,这样的一个方法将对某些执行方案是不实用的。例如,假如现有的ACPI S3状态破坏了存储器,该执行方案将不符合ACPI规范。
一个在正确操作之前要求大量初始化的总线为Rambus直接Rambus动态随机存取存储器信道(一个直接RDRAM信道)。该总线从加州的Mountain View的RAMBUS公司可获得的文献中已作详细描述。当类似直接Rambus信道结构的一个总线结构的存储器控制器置于断电状态时,数个存储器控制器值可能丧失,并且现有技术可能不能提供一个合适的机制来恢复这些值。
发明概述
公开了当存在断电状态时恢复存储器设备信道的方法和设备。一个方法涉及保存来自存储器控制器的保存位置的存储器初始值的集合到一个存储器中,该存储器在电源关闭状态过程中维持值。这些值可能需要访问系统存储器。当退出电源关闭状态时,这些值恢复到存储器控制器中的保存位置。
附图说明
用实例的方法描述本发明,但不限于附图中的数字。
图1描述系统的一个实施例,使用存储器控制器中的配置寄存器来指定存储器初始化的初始化操作。
图2描述对图1中的系统的一个实施例进行编程和执行初始化操作的流程图。
图3描述存储器控制集线器的一个实施例,它根据装载到控制和数据寄存器中的值来进行存储器初始化。
图4描述存储器设备核心初始化操作的流程图。
图5描述实现图6-9中所示的初始化流程的系统的一个实施例。
图6描述图5中所示系统的存储器子系统的一个整体初始化序列的一个实施例的流程图。
图7描述一个串行设备确认过程的一个实施例。
图8A-8C描述一组设备确认过程的一个实施例。
图9描述存储器设备核心初始化过程的一个实施例。
图10描述的从暂停至RAM电源管理状态返回过程的一个实施例。
发明详述
以下描述提供了一个当存在断电状态时恢复存储器设备信道的方法和设备。在以下描述中,提出了几个特定细节,如寄存器名称,存储器类型,总线协议,特定类型元件和逻辑分区以及集成选择,以便更彻底的理解本发明。但是,任何一个本领域的技术人员可以理解,本发明可以不需这些特定细节而实现。在其它情况下,为了突出本发明,控制结构和门级电路没有详细示出。那些本领域的技术人员,用以下所含描述,不需不适当试验将能实现必要的逻辑电路。
使用当前公开技术,可以实现有效的和弹性的存储器初始化。控制和数据寄存器可以编程,从而使得存储器控制集线器根据装载至寄存器中的值进行初始化操作(IOPs)。因为寄存器可以用软件,诸如基本输入/输出系统(BIOS)来编程,初始化可以相对容易地被改变。
图1描述利用寄存器进行存储器初始化的系统的一个实施例。该系统包括一个处理器195和一个存储器子系统104,它们与存储器控制集线器(MCH)100藕连。还与MCH100连接的是二级总线180,它与输入设备190和含有BIOS例程的非易失性存储器185连接。在某些实施例中,非易失性存储器185和输入设备190中的任何一个或二者可以通过第二控制集线器(未示出)连接至MCH100。
在描述的实施例中,存储器子系统104包括3个存储器模块160,170和175,它们通过串行总线142和存储器总线132(也称为信道)连接MCH100。每个存储器模块可以包含一组单独的存储器设备。例如,存储器模块160至少包括存储器设备160,161和168。在一个实施例中,存储器设备160,161和168为Rambus DRAMs(RDRAM),存储器模块为Rambus线内存储器模块(RIMM),根据定义RIMM和RDRAM的协议信道运行。
MCH100包括一个控制寄存器112和一个数据寄存器114,它们可以用于初始化目的。初始化控制电路120执行编程到控制寄存器112中的初始化操作数(IOP)。控制寄存器112一般包括指定初始化操作信息的其它一些域,一些由IOP指定的操作涉及与存储器子系统中的设备的数据交换(如,写和读存储器设备控制寄存器,或者生成控制信号)。
一个串行接口电路140生成串行总线142上的串命令和数据序列。初始化控制电路120执行的一些命令通过串行总线142发送命令和/或数据至存储器子系统。在一个实施例中,串行接口电路实现与存储器子系统104通信的一个串行出现检测(SPD)协议。SPD协议利用一个SPD时钟针,一个命令(CMD)针和双向串行I/O针(SIO0和SIO1)来从存储器子系统控制寄存器读取数据和向它写入数据。
控制寄存器,包括确认个数的设备寄存器,可以经过SPD接口读取和写入。而且,每个模块的非易失性存储器可以通过SPD接口读取,以确定信息,如计时信息,设备组织和有关每个特定存储器模块的设备技术。SPD协议的更多细节在“串行出现检测应用简介”和从Rambus得到的直接Rambus RIMM模块和64/72M字节直接RDRAM数据表中讨论。
存储器接口电路130将存储器数据翻译给数据包,并从数据包翻译数据,这些数据包与存储器子系统进行交换。在一个实施例中,存储器接口电路是一个Rambus ASIC单元(RAC),象从加州Mountain View的Rambus公司可得到的“直接RAC数据表”中所描写的一样充分地发挥作用。简而言之,RAC转换存储器控制信号为RSL信号,RSL信号能由Rambus信道上存储器设备处理。
图1系统的初始化事件序列在图2中描述。当该系统复位或打开时,BIOS一般执行不同的初始化操作。在块200,BIOS影响存储器配置部分。根据存储器类型和使用所希望的模式,初始化操作将以一个特殊序列由BIOS选择(块205)。系统利用RDRAMs的一个初始化序列的实施例的详细情况将参照图5-9加以讨论。
如块210所示,特殊初始化操作的数据(如果有的话)保存在数据寄存器114中,并且带有其它控制信息的初始化操作数本身保存在控制寄存器112中。在一些实施例中,BIOS可以通过写入外部元件互连(PCI)配置寄存器执行这样的功能。作为选择,其它寄存器可以被使用,或者要么在要么不在MCH中的通用存储器位置可以是控制寄存器。事实上,控制寄存器可以是合作存储器初始化之前对MCH来说是可访问的任何存储位置,它能够保存足够的IOP位和任何其它所需的控制信息。
当合适的初始化操作和/或控制信息被编程到控制寄存器112中,初始化操作可以自动开始。例如,执行块215中所示的初始化操作可以用设置一个初始初始化操作(IIO)位来实现,当初始化操作数被装载到控制寄存器112中时,该位可以是控制寄存器112的一个域。
初始化操作的完成可以用任何足够警觉或告知BIOS的方式发出初始化已完成的信号。例如,当初始化操作完成时MCH可以自动清空IIO位。如果BIOS轮询IIO位,它可以决定何时初始化操作如块220中所示完成。例如初始化操作没有完成,BIOS可以继续轮询IIO位。如果初始化操作完成,BIOS可以选择在块205中的初始化序列中的下一个初始化操作。
输入设备190可以接收多来自计算机存储设备192(如,光盘或磁盘或其它存储设备)的程序指令或来自网络或来自通信接口194的程序指令。使系统实现本公开技术的BIOS码(即计算机指令)可以以几种方式编程到非易失性存储器185中。当系统被制造出来或通过输入设备190经过计算机可读介质后来被交付时,BIOS可以被编程。
在BIOS后来被交付的情况下,指令可以经过计算机可读介质交付。有了适当的接口设备190,或者一个电子信号或者一个实际载波是一个计算机可读介质。例如,计算机存储设备192是一个实施例中的计算机可读介质。载有计算机指令的一个载波196是另一个实施例中的计算机可读介质。载波196可以被调制或被处理为包括指令,这些指令能使用已知的或其它可得到的通信技术由输入设备190解码。在二种情况下,计算机指令可以经过计算机可读介质交付。
图3示出了存储器控制器集线器(MCH)300的另外详情。特定寄存器名称,位置,大小,域定义和初始化操作的详情下面作为一个实施例给出。其它实施例对于本领域的技术人员是显而易见的。下面的几个操作调用Rambus在64/72M位数据表和直接RAC数据表中定义的指定命令。这些指定操作是当适当的控制信号发送至RAC时,Rambus RAC本身发送给RDRAM的操作。如下所述,MCH300的这个实施例被以前不能得到的硬件和用新方法或序列调用已知的RAC命令。
在该示范性实施例中,MCH300包括一个设备寄存器数据(DRD)寄存器312。DRD寄存器314位于PCI配置空间中的地址位移90-91h处,缺省值是0000h(16位),并且寄存器是一个读/写寄存器。DRD寄存器的域在表1中示出。
表1:DRD寄存器的一个实施例
位 | 描述 |
15:0 | 寄存器数据(RD):为15:0包括作为IOP执行结果要写入RDRAM寄存器的16位数据或从RDRAM寄存器读取的数据。当RICM寄存器的IIO位从1转换至0时,数据将是有效的。 |
MCH300也包括一个RDRAM初始化控制管理(RICM)寄存器312。RICM寄存器位于PCI配置空间中的地址位移94-96h,缺省值为000000h(24位),并且寄存器是读/写寄存器。本实施例的RICM寄存器的域在表2中提出。表2:RICM寄存器的一个实施例
位 | 描述 |
23 | 初始初始化操作(IIO):当设为1时,有IOP域(下面)指定的初始化操作的执行开始。在执行完成后,MCH将IIO位清空至0。一个软件程序应该在写入该位之前检查看看该位是否为0。当IIO位清空为0时,指定一个从RDRAM中读取的寄存器数据的操作的数据将是有效的。 |
22:21 | 保留:这些位不用于正常的初始化操作。 |
20 | 初始化完成(IC):在RDRAM存储器阵列的初始化完成之后,BIOS设置该位为1。 |
19 | 广播地址(BA):当BA设为1时,初始化操作(IOP)广播给信道中的使用设备。当BA设为1时,SDA域(下面)不使用。 |
17:9 | 设备寄存器地址(DRA):该域指定寄存器读写操作的寄存器地址。 |
8:4 | 串行设备/信道地址(SDA):这5位域指定以下:RDRAM寄存器读,RDRAM寄存器写,RDRAM设置复位,RDRAM清空复位和RDRAM设置快速时钟模式IOP命令的RDRAM设备的串行设备ID。断电入口,断电出口,小睡(Nap)入口,小睡出口,电流校准和电流校准&样本IOP命令的设备ID。刷新和预充电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 11 0 0 1 01 0 0 1 11 0 1 0 11 0 1 0 11 0 1 1 01 0 1 1 11 1 0 0 01 1 0 0 11 1 0 1 01 1 0 1 1 | RDRAM SIO复位RDRAM断电出口RDRAM断电入口RDRAM“电流校准”及“电流校准+样本”MCH RAC的手工电流校准从DRD寄存器装载有数据的MCH RAC控制寄存器初始化MCHRACRDRAM小睡入口RDRAM小睡出口RDRAM刷新RDRAM预充电 | |
其它所有组合保留。IOP域指定的操作上的更多详情在下面表3中示出。 |
图3中同样示出的是一个初始化控制电路320,它包括一个RDRAMIOP执行电路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寄存器中有写数据。信道上的所有RDRAM设备的写操作能通过设置BA域为1而进行。 |
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请求包之后并在容许RDRAM设备退出断电状态之前必须通过最少4个SCK循环。 |
复位操作 | ||||
0 0 1 0 0 | RDRAM设置快速时钟模式 | x | x | 该设置快速时钟模式操作准备RDRAM设备,使用RDRAM时钟(RCLK)传送和接收在RSL信号上的数据。 |
0 0 1 1 0 | RDRAM温度校准能以及后来温度校准 | 1 | x | 一旦接收到该IOP,MCH向所有RDRAM发出一个“温度校准能”SIO请求包,随后立即发出一个“温度校准”SIO请求包。 |
1 0 0 0 0 | RDRAM核心初始化 | NE | NE | 一旦接收到该IOP命令,MCH做以下事:1.广播断电退出。2.初始化信道上的所有RDRAM设备的RDRAM内核。3.广播温度校准能和温度能.4.广播NAP入口(如果DRAMC寄存器的位6(PBS)是1)5.如果随同该命令,RICM寄存器的IC位(位20)设为1,那么在该命令完成之后,MCH使得RDRAM刷新,RDRAM电流校准,RIDRAM温度校准和RDRAM DLL刷新逻辑能。 |
1 0 0 0 1 | RDRAM | NE | NE | 该IOP发送一个SIO针初始化序 |
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发出一个断电入口PCP包至SDA和BA域指定的RDRAM设备。该SDA域应当包括设备ID,而不是串行设备ID。 |
1 0 1 0 0 | RDRAM“电流校准”和“电流校准+样本” | x | x | 一旦接收到该IOP,MCH发出三个电流校准SCP包跟着一个电流校准和样本SCP包至SDA域指定的RDRAM设备。 |
1 0 1 0 1 | MCHRAC的人工电流校准 | NE | NE | 一旦接收到该IOP,MCH初始化一个MCH RAC的人工电流校准操作。 |
1 0 1 1 0 | 给MCHRAC装载DRD寄存器的数据 | NE | NE | 一旦接收到该IOP,MCH用DRD寄存器的数据装载MCH RAC控制寄存器。 |
1 0 1 1 1 | 初始化MCHRAC | NE | NE | 一旦接收到该IOP,MCH初始化MCHRAC,该MCHRAC初始化包括开机序列,MCH RAC的电流校准和温度校准。在执行该命令后,假如IC位没有设为1,MCH使得MCH RAC的周期性电流和温度校准能。 |
1 1 0 0 0 | RDRAMNAP入口 | x | x | 一旦接收到该IOP,MCH发出一个NAP入口PCP包至SDA和BA域指定的RDRAM设备。该SDA域应当包括设备ID,而不是串行 |
设备ID。 | ||||
1 1 0 0 1 | RDRAMNAP出口 | x | x | 一旦接收到该IOP,MCH给SDA和BA域指定的RDRAM设备发出一个NAP出口序列。该SDA域应当包括设备ID,而不是串行设备ID。 |
1 1 0 1 0 | RDRAM刷新 | 1 | x | 一旦接收到该IOP,MCH发出一个刷新PCP包至所有RDRAM设备的指定组。该组地址由SDA域指定。 |
1 1 0 1 1 | RDRAM预充电 | 1 | x | 一旦接收到该IOP,MCH发出一个预充电PCP包至所有RDRAM设备的指定组。该组地址由SDA域指定。 |
图4中示出的是为响应接收RDRAM内核初始化IOP(10000b),初始化控制电路320的一个实施例指导的操作详情。在块400,发出一个广播退出命令在总线上。接着,每一块405,为组地址0至31块410至470显示的序列重复16次。这些数字可以适合有128个电流校准级和至多32个组的存储器子系统。在其它实施例中,不同数量的循环可以使用,如果例如更大或较小数量的电流校准级可用。类似,在不同系统中可能有不同数量的组。
在块410,为了确保断电退出完成以及刷新操作(REFA命令)在块415中正确执行,进行无操作。在块420,进行另一个无操作,接着在块425和430是二个刷新操作(REFA)。在块435再进行3次无操作,使得在出现一个刷新预充电(REFP)命令之前有足够时间通过。在块445中另一个无操作命令之后,在块450执行另一个刷新预充电(REFP)命令。
接着在块455执行一个校准(CAL)命令。该命令校准(驱动)当前指示设备的I0L电流。如在块460和465中所示,执行一个样本(SAMR)命令。该样本命令更新当前指示设备的I0L电流。该过程重复直到为32个组执行所有16次循环。
初始化序列
有了上面初始化操作,寄存器和相关硬件,系统可以初始化。例如,图5中示出的实现了Rambus直接RDRAM信道的系统可以被初始化。在该系统中,存储器控制器500(也称为存储器控制集线器或MCH)使用串行接口信号SCK,CMD和SIO来读取和写入存储器设备配置寄存器,并在该信道上执行其它初始化操作。该存储器控制器也初始化信道上的特殊行/列包。
该存储器控制器包括Rambus ASIC单元(RAC)530,控制电路520,SPD接口电路540和多种寄存器。这些寄存器包括用来初始化系统存储器的初始化寄存器515和断电恢复寄存器510。断电恢复寄存器包括对操作存储器信道十分关键的计时和其它信息。还句话说,断电恢复寄存器是简单寄存器,为了恢复对存储器信道的访问,在关闭存储器控制器500后,它需要被恢复。该寄存器可以是PCI配置寄存器。
该存储器信道包括RIMM模块560,565和570,它们由控制和数据总线532和串行总线542连接至MCH500。该制和数据总线532可以被有抵抗性的终止533所终止,直接Rambus时钟发生器(DRCD)580可以在远离MCH500的信道的尾端以通过信号线582提供时钟信号。
而且,系统包括一个连接MCH至二级总线的输入/输出控制集线器(ICH)505。ICH有多个通用输出(GPO),它用来控制多种系统功能,如设置DRCG580的频率。包含BIOS的非易失性存储器585可以连接至二级总线506以及电池备用随机访问存储器590。电池备用随机访问存储器590可以保存MCH断电寄存器510的断电恢复配置值,这样MCH能恢复访问RDRAM信道,而不执行下面详细描述的全部初始化序列。
简而言之,初始化过程可以总结如下。在开机复位后,信道中RIMM上的串行出现检测(SPD)数据的配置信息被读取。例如,存储设备,SPD存储器572,在RIMM570上保存RDRAM573,574,576和577的配置信息。该存储器控制器配置寄存器用SPD信息的适当值来编程,然后RDRAM设备ID被编程,这样每个RDRAM设备能够被存储器控制器唯一识别和访问。一旦设备已经初始化,它能被使用。
每个RDRAM设备有二个确认数,它用来唯一地选择信道上的一个设备,串行设备ID和组设备ID。这二个ID用来区别RDRAM信道上的操作。当存储器控制器正在发送对RDRAM信道的SCK,SIO和CMD信号的初始化操作时,串行设备ID用来选择设备。当发送RDRAM信道的RQ[7:0]上的行包和列包时,组设备ID被存储器控制器使用来选择一个设备。在复位之后和在设备可以被初始化操作(IOP)和行/列包单独定址之前,串行设备ID和组设备ID分别被编程。
仔细查看Rambus信道的初始化过程,可以接着一个特殊序列来完成信道上RDRAM设备的正确操作。图6示出了一个实施例中的正确信道初始化的流程图,表4枚举了在该初始化流程中使用的一些变量。
表4:初始化中使用的变量
名称 | 宽度 | 描述 |
RIMMMax | 2 | RIMM出现的最大数。0 没有RIMM出现1-3 1-3个RIMM出现 |
RIMMCount | 2 | 在初始化过程中使用的来选择一个RIMM的计数器 |
RIMMDeviceCount | 5 | 在特殊RIMM中的RDRAM设备个数 |
MemberMax | 5 | 出现在信道上的最大个数0-31 1-32个出现在信道上的RDRAM设备 |
MemberCount | 5 | 在组设备枚举过程中使用的计数器,表示已经赋予组ID的设备号 |
SerialIDCount | 5 | 用来选择信道上的设备的串行设备ID索引0-31映射串行设备ID0-31 |
GroupDeviceIDCount | 5 | 在组设备枚举过程中使用的组设备ID索引,将一个组设备ID赋予下一个RDRAM设备。 |
RIMMDeviceConfigNo | 8 | 表示RDRAM技术定义的字节。位定义匹配GAR寄存器 |
DRAMConfigIndex | 3 | MCH支持的DRAM技术表索引。在组设备ID枚举过程中使用,以技术降序次序将组ID赋予RDRAM。 |
MchTrdly | 3 | 在信道级化过程中最大MCH Trdly的临时存储。位定义匹配MCHRDT寄存器的MCH的Trdly域。 |
DeviceTestAddress | 32 | 在信道级化过程中用来测试RDRAM设备的32位CPU地址 |
TempIndex | 8 | 计算中使用的临时索引 |
在方框602,发生系统复位。MCH复位它的所有状态机器并准备初始化。在方框604,系统的存储器模块配置被校验。BIOS读取决定存储器配置的SPD数据。如果只出现RIMM,RDRAM初始化序列可以在方框608进行。如果出现混合的存储器模块,邮送一个错误给用户,系统如606所示被停止。
时钟发生器开始于方框608。该操作可以这样实现,即软件查询出现在主板上的每个RIMM模块的SPD数据并决定所有RIMM操作的信道频率。DRCG580可以通过ICH505的通用输出(即图5中所示的GPO)设为适当频率。在一个实施例中,BIOS在该步骤和MCH RAC初始化之间至少等待8ms。
如方框610所示,下一步MCH RAC被初始化。DRCG的信道时钟在MCH RAC初始化之前应该是稳定的。MCH RAC初始化通过执行MCH RAC初始化IOP完成。RAC初始化IOP进行基本初始化,为正常操作准备存储器控制器的内部RAC。
在一个实施例中,在MCH RAC初始化IOP之后,BIOS提供5ms的时间给IIO位来清空。如果IIO位没有在5ms后被MCH清空,BIOS应该报告错误,信道不可用。在MCH清空IIO位之后,为了完成MCH RAC初始化IOP,可以另外增加5ms的延迟。这样有足够的时间给MCH时钟来稳定和锁定。同样在一些实施例中,RAC中的一条总线可能在其它操作开始之前需要被清理。这可以通过执行MCH RAC控制寄存器负载IOP(DRD=00000h)来实现。在一些实施例中,也有可能在初始化序列中的后来位置执行RAC初始化。
如方框612所示,下一步可以初始化数个MCH配置寄存器。在一个实施例中,页码策略寄存器RMC空转计时器(PGPOL RIT)域(MCH052h[2:0])设为001b,确保在信道级化过程中没有页面被关闭。PGPOLRIT域时钟主总线时钟的个数,在所有打开的页面被关闭之前存储器控制器将保持在空转状态,0值表示在存储器控制器开始关闭页面之前将有一个无限反应时间。
而且,在一些实施例中,操作池可以根据定义的RDRAM状态用来组合RDRAM。为了减少运行电压,RDRAM设备可以组合成二个操作池,称为“池A”和“池B”。在一个实施例中,在某一时间可以有至多8个设备在池A中。在该实施例中,池A中8个设备至多有4个可以在某一时间处于活动读/写或活动状态,池A中的这些设备或处于活动读/写状态,或处于活动状态,或处于备用状态。
池A中设备的最大个数是可编程的并由EDRAM电源管理寄存器(RPMR)寄存器的PAC域指定。不在池A中的所有设备为池B的成员。池B中的所有设备要么处于备用状态要么处于Nap状态。池B中的设备状态由DRAM控制(DRAMC)寄存器(MCH 051h)的PBS域所指定。在一个实施例中,RPMR寄存器设为00h,只选择池A中的一个设备,池B操作设为备用状态(MCH 051h[6]=0)。
接着,如在方框614所示,可以执行附加的信道初始化。这可以包括使用SIO复位IOP执行一个SIO(串行接口)复位,并容许完成SIO复位序列的足够延迟。而且,在这时候可以设置其它寄存器,它们为正确操作可能需要被初始化。例如,在一些实施例中,在SIO复位之后,如同在直接RDRAM64/72M位数据表中的37页所指定的一样,Test77寄存器可能需要写入0值(执行一个广播SIO寄存器写IOP:TEST77,DRA=4Dh,DRD=0000h)。
串行设备ID赋值
如在块620所示,串行设备标识值(ID)可以是赋予的文本。一般地,软件唯一地识别信道上的每个设备,使得初始化操作能在单独设备上被确定。每个RDRAM的串行设备ID以4-0位保存在RDRAM INIT寄存器中。在SIO复位之后,串行设备的缺省值在信道上的所有RDRAM中都是1Fh。同样,在复位后,串行复制器(SRP位(RDRAM 021h[7]))设为1,使得每个RDRAM繁殖在SIO0上接收到的数据至RDRAM的SIO1针,将SIO包传递给下一个RDRAM设备。因为所有的设备在复位后有同样的串行设备ID,一个单独设备在赋予唯一串行ID前可以被访问。
在图7中示出了一个实施例执行的串行设备枚举的进一步细节。在方框700,变量SerialIDCount初始化为0。接着,如在方框710,信道的所有设备的SIO复制器置于不能(广播SIO寄存器写IOP:INIT,DRA=21h,DRD=001Fh)。该操作使得所有串行设备ID都设为01fh。该SIO复制器位设为0,这样只有在SIO信道上的第一个设备能被访问。
从方框710开始,该过程循环通过信道上的所有设备并给每个设备赋予一个唯一ID。当前设备的串行ID设为SerialIDCount,SIO复制器位使之能(SIO寄存器写IOP:INIT,SDCA=1Fh,DRA=21h,DRD=0080h+SerialIDCount)。接着,测试设备在系统中是否真的出现和发挥作用,如方框715中所示。RDRAM INIT寄存器被读取以决定刚刚写入的同样值是否正确地被读取出来(SIO寄存器读IOP:INIT,SDCA=SerialIDCount,DRA=21h)。
如果数据匹配(如在方框720测试的),SerialIDCount增加(方框725),检查SerialIDCount看设备的最大数(即32)是否已经给予ID(方框730)。如果SerialIDCount仍然表示一个有效的序列ID,下一个设备在方框705中被标识。
如果SerialIDCount超出了最大许可值,或者如果在方框720中该数据不匹配,那么最后一个设备已经给予一个ID,并且跟踪设备总数的变量可能设置为SerialIDCount,如方框735中所示。最后,为了使在最后许可设备之外的任何附加设备不能,有最高序列ID的RDRAM的SIO复制器不能。相应地,任何附加设备(即,不正确起作用的设备或超出最大值即32的设备)不接收命令,因此不应反应。作为一个附加检查,可以检查RIMM上的SPD信息以确定最终设备计数是否正确。
组设备ID赋值
返回图6,在唯一的序列ID已经分配并且最后设备的SIO输出禁止,组ID根据存储器设备大小被分配,如方框630所示。在一个实施例中,MCH支持至多32个RDRAM设备和8个组。每个组有至多4个设备和有一个组边界访问寄存器(GBA),它定义组ID和每个组的上层地址和下层地址。因此,每个GBA寄存器可以用一组ID和一个9位上层地址限制值来编程,无居住物的组可有等于前面组的一个值,它的组大小为0。
而且,图8A-8C中的流程描述了枚举组设备ID的过程的一个实施例,如方框630所示。如图8A中方框800所示,几个变量被初始化。变量SerialIDCount,CroupDeviceIDCount,RIMMCount,RIMMDeviceCount和RIMMDeviceConfigNo初始化为0。RIMMConfigIndex变量初始化为表示MCH支持的最大核心技术的一个值。
如方框805中所示,数据从一个模块(模块个数RIMMCount)的SPD存储器中读出,标识那个模块的核心技术。该信息可以包括每个设备的行号,每个设备的列号,每个设备的组号,以及这些组是否相互依存或独立。接着,如方框810所示,通过将从SPD读取的核心技术值翻译成组结构(GAR)寄存器相当值中的一个值设置RIMMDeviceConfigNo。
然后,如方框815所示,RIMMDeviceCoint变量为那个RIMM设为SPD存储器表示的设备号。然后,设备ID可以被分配,相关的寄存器值被设置,如方框820所示。作为个实施例,图8B示出了方框820中所示的该过程的进一步细节。
一般地,枚举过程增加在RIMM上的RDRAM设备号至第一个序列ID,然后向下计数直到RIMM结束。于是,如方框822所示,测试RIMMDeviceConfigNo是否等于DRAMConfigIndex以决定组设备ID是否以特殊的核心技术已经赋予所有设备。如果它们不相等,所有设备有组ID,SerialIDCount设为SerialIDCount加RIMMDeviceCount(如方框830所示),该过程返回图8A,如方框832所示。而且,如果RIMMDeviceCount为0(如方框824所测试的)或MemberCount为0(如方框826所测试的),没有其它设备要给组ID,过程返回图8A,如方框832所示。
如果RIMM DeviceCount和MemberCount非0,GroupDeviceIDCount被分配为RDRAM的组设备ID,它的序列ID等于SerialIDCount的当前值,如方框828所示。然后,当前组边界地址寄存器(GBA)被更新以反应新设备对该组的增加,如方框830所示。这可以通过将设备大小指示值与保存在那个GBA寄存器中的当前值相加来实现。
然后,在方框832,GroupDeviceIDCount与4比较。如果组是满的,那个组的MCH组结构寄存器(GAR)被更新,如在块834中所示。GAR被更新以适当表示该组配置(即,组号和DRAM技术(大小))。在块836,SerialDeviceIDCount增加,MemberCount减少,GroupDeviceIDCount增加,RIMMDeviceCount减少。然后该过程返回方框824。
返回图8A,如果或者RIMMDeviceCount或者MemberCount为0,RIMMCount增加,如方框850中所示。如果RIMMCount小于最大值RIMMCount,如方框855中所示,那么该处理返回方框805。如果RIMMCount达到最后一个RIMM,该过程在图8C中继续,如方框860所示。
转向图8C,如果MemberCount为0(如方框865中所测试的),设备ID枚举过程结束。然而,如果MemberCount不为0,选择下一个MCH组来开始枚举下一个DRAM技术中的设备,如方框870所示。GroupDeviceIDCount可以通过加3并执行结果值与OFFFCh的逻辑与操作来更新。
如果GroupDeviceIDCount为信道中所容许的最大号码设备(即32,如方框872所示),那么组ID枚举过程结束。然而,如果较少设备已经给予组ID号,DRAMConfigIndex设为MCH支持的下一个最小的核心技术,如方框874所示。如果DRAMConfigIndex表示没有支持的更小的核心技术(即,DRAMConfigIndex为0,如在方框876所示),那么ID枚举过程结束。如果有更多的核心技术,SerialIDCount和RIMMCount复位为0,如方框878中所示,该过程在图8A返回方框805。
下面伪码表示可以用来执行组ID枚举的操作,如一个实施例中图6的方框630所示。630.枚举MCH设备组。630.1.循环通过RIMM SPD存储器并组合RIMM上的设备。最大的技术设备必须以最低组来组合,技术大小随着组号增加而减少。630.1.1. 设置MemberCount=MemberMax630.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=从RIMMs SPDEEPROM读取的RIMM
#RIMMCount中的RDRAM设备号630.1.9. 分配组设备ID并给RIMM编程MCH GAR和GBA寄存器。630.1.630.1.如果RIMMDeviceConfigNo!=DRAMConfigIndex,中断至630.1.10630.1.9.2. 如果RIMMDeviceCount=0,中断至630.1.10630.1.9.3. 如果MemberCount=0,中断至630.1.10630.1.9.4. SIO寄存器写IOP.DEVID,SDCA=
SerialIDCount,DRA=40h,DRD=GroupDeviceIDCount630.1.9.5. 编程MCH GBA[GroupDeviceIDCount SHR 2]=MCH
GBA[GroupDeviceIDCount SHR2-1]+RIMM#RIMMCount设
备大小
630.1.9.6. 如果GroupDeviceIDCount AND 011b=0
630.1.9.6.1编程MCH GAR[GroupDeviceIDCount SHR
2]=RIMMDeviceConfigNo
630.1.9.7. 增加GroupDeviceIDCount
630.1.9.8. 增加SerialIDCount
630.1.9.9. 减少MemberCount
630.1.9.10. 减少RIMMDeviceCount
630.1.9.11. 至步骤630.1.9.2
630.1.10. 增加RIMMCount
630.1.11. 如果RIMMCount<RIMMMax,至步骤630。1。7
630.1.12. 如果MemberCount=0,中断至步骤10
630.1.13. 选择下一个RDRAM技术的下一个组。
630.1.13.1. GroupDeviceIDCount=(GroupDeviceIDCount+011b)
AND 011b
630.1.14. 如果GroupDeviceIDCount=32,中断至步骤10
630.1.15. DRAMConfigIndex=下一个最小的DRAM技术
630.1.16. 如果DRAMConfigIndex=0,中断至步骤10
630.1.17. SerialIDCount=0
630.1.18. RIMMCount=0
630.1.19. 至步骤630.10.7。这将为下一个最小的RDRAM技术开始搜索
RIMM。
返回图6,在组ID已经分配之后,单独的RDRAM设备可以带来断电模式并为正常操作置于快速时钟模式,如在步骤640中所示。MCH和RDRAM中的单独RDRAM计时寄存器可以被编程。REFB和REFR控制寄存器也能被初始化(广播SIO寄存器写IOP.REFB,DRA=41h,DRD=0000h;广播SIO寄存器写IOP.REFR,DRA=42h,DRD=0000h)。
RDRAM设备可以通过执行一个广播设置复位IOP来复位,在一些实施例中,这可能做2次,每次复位后有依存。RDRAM通过执行一个广播RDRAM断电退出IOP引出断电,通过执行一个广播RDRAM设置快速时钟模式初始化IOP进入快速时钟模式。
于是,RDRAM内核可以初始化,如方框642所示。图9示出了RDRAM核心初始化的一个实施例的进一步详情。如方框900所示,通过将一个中间值写入适当的RDRAM寄存器,为电流校准准备RDRAM设备(广播SIO寄存器写IOP.CCA,DRA=43h,DRD=0040h;广播SIO寄存器写IOP.CCB,DRA=44h,DRD=0040h)。40十六进制可以为实施例中的一个适当值,它有127种可能的电流校准级。开始于该中间值限制了所需的校准循环总数,因为校准值能比全部范围的校准值少大约一半。
然后,预充电操作在每个RDRAM设备的每个组上执行。为了执行预充电操作,MCH通过该组加以2,第一个预充电奇数组,然后偶数组。在方框905组索引设为0。然后如在方框910所示,执行广播预充电IOP。组索引值加2,如方框915所示,广播预充电为奇数组重复直到在方框920找到组索引等于组的最大号(即32)。
一旦达到组的最大号,组索引设为1,所有偶数组被预充电。一旦组索引超过组最大号,RDRAM核心初始化IOP执行6次,如方框940所示。
信道级化
返回图6,在方框642中RDRAM核心初始化之后,信道可以级化,如在方框644中所示。该过程涉及使RDRAM读取响应时间与从RDRAM至所有RDRAM的MCH的繁殖延迟相等。换句话说,一旦信道被级化,所有RDRAM将用同样数目的总线循环提供存储器控制器上的数据。
下面伪码表示一系列步骤,它们可以在一个实施例中执行以实现级化处理,如方框644中所示。644.级化Rambus信道
644.1阶段1: 决定MCHtRDLY域值
644.1.1. SerialIDCount=MemberMax
644.1.2. MehTrdly=0
644.1.3. 编程MCH RDT:TRDLY域=MchTrdly
644.1.4. 计算测试用于级化的RDRAM设备的32位地址
644.1.4.1 SIO寄存器读IOP.DEVID,SDCA=SerialIDCount,DRA=40h
644.1.4.2 DRD(MCH 090[15:0])现在包括RDRAM的设备ID
644.1.4.3 DeviceTestAddress=MCH GBA[(DRD SHR2)-1]SHL23
+((DRD AND011b)*设备大小的字节数(从GAR[DRD SHR
2])
644.1.5. 进行QWORD写操作来用TestPattem定址DeviceTestAddress
644.1.6. 进行QWORD读操作来定址DeviceTestAddress
644.1.7. 如果读取的数据!=TestPattem
644.1.7.1 加MCHRDT:TRDLY域
644.1.7.2 如果MCH RDT:TRDLY域<=4,中断至步骤644.1.5
644.1.8.否则(如果读取的数据TestPattem)
644.1.8.1. MchTrdly=从MCH RDT:TRDLY域读取的数据
644.1.8.2. 如果MchTrdly=4,中断至步骤644.1.3
644.1.9. 减SerialIDCount
644.1.10. 如果SerialIDCount>=0,至步骤644.1.3
644.2. 阶段2:决定RIDRAM的级化计时值
644.2.1. SerialIDCount=MemberMax
644.2.2. 计算测试用于级化的RDRAM设备的32位地址
644.2.2.1. SIO寄存器读IOP.DEVID,SDCA=SerialIDCount,DRA=40h
644.2.2.2. DRD(MCH 090[15:0])现在包括RDRAM的设备ID
644.2.2.3. DeviceTestAddress=MCH GBA[(DRD SHR2)-1]SHL23
+((DRD AND 011b)*设备大小的字节数(从GAR[DRD SHR
2])
644.2.3. 进行QWORD写操作来用TestPattem定址DeviceTestAddress
644.2.4. 进行QWORD读操作来定址DeviceTestAddress
644.2.5. 如果读取的数据=TestPattem,中断至步骤644.2.8
644.2.6. 如果RDRAM的TCDLY域<(来自SPD)的最大TCDLY
644.2.6.1. 根据TCDLY支持表,加RDRAM 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
级化完成之后,一个实施例编程几个断电恢复存储器初始值于电池后备存储器590中,如方框646中所示。特别地,该操作可以在初始化流程已经决定适当值之后的任何其它阶段执行。这些值被保存以保留该位置上的初始化过程决定的初始化信息。
当系统进入一个断电状态(如,暂停至RAM),MCH的电源可能已移走。因此,如果初始化信息没有保留,整个初始化过程可能要重复。保存非易失性存储器的关键的初始化信息可能有利地加速从这样的一个断电状态的唤醒。保存这样的信息的难度由于这样的事实而增加,即存储器子系统直到这些值恢复才能起作用。
任何能写如的非易失性存储器可以用来保存适当的初始化信息;然而,电池后备存储器出现在许多计算机系统中,因而可以为一个方便的选择。在一个实施例中,以下的寄存器保存在存储器590中。
。MCH组结构(GAR)寄存器(040-047h):这些寄存器表示每个组的设备配置,如组号和DRAM技术(大小)。
。MCH RDRAM计时寄存器RDT(050h):该寄存器定义信道中的所有设备的计时参数。
。MCH DRAM控制(DRAMC)寄存器(051h):该寄存器包括池B操作选择(PBS)位,存储器转移集线器出现外位(MTHP),它指定MCH的操作模式,和缝隙访问全局能位,它在缝隙范围和翻译表建立之前防止从任何端口对缝隙的访问。
。MCH页码策略(PGPOL)寄存器(052h):该寄存器指定页面策略属性,包括DRAM刷新率(DRR)和RMC空闲计时器(RIT)。DRR域调整DRAM刷新率,RIT域在打开页码关闭之前决定存储器控制器将保持空闲状态的宿主总线时钟循环的号码。
。MCH RPMR(053h):该寄存器包括一个设备睡眠计时器(DNT)域,一个池A中的活动设备域,一个设备睡眠能(DNE)域,和一个池A容量(PAC)域。DNT域在池A中至少最新使用的设备推出到池B中之前指定存储器控制器为空闲主时钟的号码。ADPA域定义池A中的RDRAM设备的最大号码,它能在某一时间处于活动读/写或活动状态。池A中不处于活动读/写或活动状态的设备处于备用状态。DNE位(当设为1时)使连续计算非活动时间的信道非活动计数器能。当计数器值超过DNT指定的极限时,池A中的至少最新使用过的设备被推入到池B中。PAC域定义RDRAM的最大数,它能在某一时间驻留在池A中。不是池A的一部分的设备属于池B。
。MCH组边界访问(GBA)寄存器(060-6Fh):GBA寄存器包括要一组ID和一个表示该组的上层地址的值。
。MCH配置寄存器MCHCFG(OBE-BFh):这些寄存器包括Rambus频率&DRAM数完整模式域。
而且,在该位置,断电配置选择可以被编程。在一个实施例中,设置了自我刷新和断电自我刷新选项(对于每个SerialIDCount:SIO寄存器写IOP.INIT,SDCA=SerialIDCount,DRA=21h,DRD=400h(LSR,如果SPD支持)+200h(PSR)+80h(SRP))。
正常操作可以开始,如方框650中所示,在几个更多寄存器被编程用于正常操作。该页码策略寄存器设置为正常操作(PGPOL RIT域(MCH052h[2:0]至001b),因为关闭计时器的页面被有效地禁止级化能,而电源管理功能在这时候经过RPMR寄存器(MCH053h)为能。如果池B选择位(MCH051h[6])配置用于NAP操作,广播NAP入口IOP可以执行来将所有设备置于NAP状态。在同样的设置IIO位的I/O指令中,也设置RICM中的IC位为1,这样MCH的正常操作可以开始。
当有断电状态时恢复信道
在正常操作持续一段时间之后,该系统由于系统的非活动性或另外原因进入一个断电状态,如图10的方框1000所示。系统可以进入的一个状态是暂停至RAM(STR)状态,在该状态,MCH失去保存在它的寄存器中的值。在进入STR状态之后,使得系统退出STR的一个事件可以被察觉到,如方框1010所示。相应地,BIOS启动MCH和其它系统元件。在该过程中MCH的配置寄存器可以自动复位为缺省值。
相应地,为了再次访问存储器信道上的存储器设备,需要至少一些配置寄存器值。BIOS可以使得ICH505访问电池备用存储器590,并恢复下面列出的寄存器(保存在图6的方框646中)。
。MCH GAR寄存器(040-047h)
。MCH RDT(050h)
。MCH DRAMC(051h)
。MCH PGPOL(052h)
。MCH RPMR(053h)
。MCH GBA寄存器(060-6Fh)
。MCH配置寄存器MCHCFG(0BE-BFh)
在恢复这些寄存器的值之后,当进入STR状态时,MCH能再次访问保存在存储器中的项,包括这样的项,如处理器关系,如果保存的话。存储器设备执行STR状态中的自我刷新,这样数据不会丢失。
然后,时钟发生器开始,如方框1040所示。正确的Rambus信道频率从MCH MCHCFG寄存器(MCH 0BEh[11],它在方框1030中被恢复)。在容许该时钟稳定之后,MCHRAC初始化,如方框1050中所示。这可以通过执行MCHRAC初始化IOP完成。而且,DRD寄存器可以装载有0000h,MCH RAC控制寄存器装载执行的IOP来初始化RAC中的一条总线(参照方框610的讨论)。
然后,进行电流校准,如方框1060所示。这可以参考图642和图9所讨论的进行。然而在最终如方框940所指的反复中,RICM寄存器中的IC位可以复位,使得一旦电流校准完成正常操作立即开始。这样,当系统第一次启动时,因为信道级化,SPD串行,ID分配以及几个其它初始化操作可以避免,STR序列的恢复实际上可能比整个所需的初始化序列要块。
总之,公开了当有断电状态时恢复存储器设备信道的方法和装置。已经描述了并在附图中显示了某些示范性实施例,能理解这样的实施例只是解释之用,并不限制本发明,本发明不限于示出的描述的特殊结构和安排,因为对于本领域的技术人员可以根据本公开进行多种其它修改。
Claims (26)
1.一种方法,包括:
保存来自多个存储器控制器中的存储位置的多个存储器初始值到一个存储器中,它在断电状态中维持这些值,多个存储器初始值对于访问系统存储器是必要的;
进入断电状态;以及
当退出断电状态时,恢复多个存储器初始值到存储器控制器中的多个存储位置。
2.权利要求0的方法,其中进入断电状态包含进入一个暂停至随机访问存储器状态。
3.权利要求0的方法,其中保存多个初始值包含保存多个初始值于电池备用存储器中。
4.权利要求0的方法,其中保存多个初始值包含:
保存至少一个结构寄存器值于存储器中,它在断电状态中维持这些值,至少一个结构值表示至少一个存储器设备的存储器组织。
5.权利要求0的方法,其中保存至少一个结构寄存器包括:
保存多个RDRAM组结构寄存器值。
6.权利要求0的方法,其中保存多个初始值包含:
保存计时寄存器值于存储器中,它在断电状态中维持这些值,计时寄存器值表示连接至存储器控制器的多个存储器设备的计时值。
7.权利要求0的方法,其中保存多个初始值包含:
保存存储器设备控制寄存器值于存储器中,它在断电状态中维持这些值,存储器设备控制寄存器值有一个池操作选择域,存储器传输集线器存在域和一个缝隙访问使能域。
8.权利要求0的方法,其中保存多个初始值包含:
保存一个页面策略值于存储器中,它在断电状态中维持这些值。
9.权利要求0的方法,其中保存多个初始值包含:
保存一个电源管理寄存器值于存储器中,它在断电状态中维持这些值。
10.权利要求0的方法,其中保存多个初始值包含:
保存至少一个组边界访问值于存储器中,它在断电状态中维持这些值。
11.权利要求0的方法,其中保存多个初始值包含:
保存一个频率值于存储器中,它在断电状态中维持这些值。
12.权利要求0的方法,其中保存多个初始值包含:
保存一个数据完整模式值于存储器中,它在断电状态中维持这些值。
13.权利要求0的方法,其中进入断电状态包含:
关闭存储器控制器。
14.权利要求0的方法还包含:
检测一个暂停终止事件;和
开启存储器控制器。
15.权利要求0的方法,其中存储器控制器中的多个存储位置是配置寄存器,而且其中开启存储器控制器包括重新设置所有的配置寄存器于一个缺省状态。
16.权利要求0的方法还包含:
当多个初始化操作数装载到一个存储器控制器控制寄存器,通过执行多个初始化操作返回正常操作。
17.权利要求0的方法,其中返回正常操作还包含:
启动一个时钟发生器;
执行一个存储器接口初始化操作;以及
执行多个存储器设备的核心初始化。
18.权利要求0的方法还包含:
执行从中间校准值开始的电流校准序列。
19.权利要求0的方法,其中执行电流校准序列包括:
编程存储器控制器中的存储位置中的电流校准初始化操作数;以及
执行电流校准初始化操作数表示的电流校准初始化操作。
20.权利要求0的方法,其中执行电流校准序列包括:
执行核心初始化操作6次。
21.权利要求0的方法还包括:
设置一个初始化完成位;以及
恢复正常存储器访问操作。
22.一种系统,包括:
一个处理器;
一个连接处理器的存储器控制器,该存储器控制器有一个控制寄存器;
一个存储器总线,它有与之连接的多个存储器设备,该存储器总线连接至存储器控制器;
一个在断电状态中维持值的存储器;
一个连接至存储器控制器的附加存储器设备,该附加存储器设备在初始化多个存储器设备之前能访问该存储器控制器,该附加存储器设备包括多个指令,如果系统执行这些指令能使系统执行:
保存来自多个存储器控制器中的存储位置的多个存储器初始值到一个存储器中,它在断电状态中维持这些值,多个存储器初始值对于访问系统存储器是必要的;
进入断电状态;
当退出断电状态时,恢复多个存储器初始值到存储器控制器中的多个存储位置;以及
返回正常操作。
23.权利要求0中的系统,其中存储器控制器还包括连接的控制电路,当在返回正常操作过程中多个初始化操作数装载到控制寄存器中时,控制电路执行多个初始化操作。
24.一种包括一个机器可读介质的产品,该介质上保存多个指令,如果机器执行这些指令,使得该机器执行:
保存来自多个存储器控制器中的存储位置的多个存储器初始值到一个存储器中,它在断电状态中维持这些值,多个存储器初始值对于访问系统存储器是必要的;
进入断电状态;和
当退出断电状态时,恢复多个存储器初始值到存储器控制器中的多个存储位置。
25.权利要求0的产品,其中机器可读介质为一个存储设备。
26.权利要求0的产品,其中机器可读介质为一个载波。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/186049 | 1998-11-03 | ||
US09/186,049 | 1998-11-03 | ||
US09/186,049 US6230274B1 (en) | 1998-11-03 | 1998-11-03 | Method and apparatus for restoring a memory device channel when exiting a low power state |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1332863A true CN1332863A (zh) | 2002-01-23 |
CN1288530C CN1288530C (zh) | 2006-12-06 |
Family
ID=22683455
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB99815394XA Expired - Fee Related CN1288530C (zh) | 1998-11-03 | 1999-10-22 | 用于恢复存储器初始化值的方法和系统 |
Country Status (9)
Country | Link |
---|---|
US (1) | US6230274B1 (zh) |
EP (1) | EP1127307B1 (zh) |
CN (1) | CN1288530C (zh) |
AU (1) | AU1221400A (zh) |
BR (1) | BR9915827A (zh) |
DE (1) | DE69931653T2 (zh) |
HK (1) | HK1036862A1 (zh) |
TW (1) | TW538342B (zh) |
WO (1) | WO2000026753A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103365799A (zh) * | 2012-03-30 | 2013-10-23 | 英特尔公司 | 检测对掉电设备的访问 |
CN103403808A (zh) * | 2011-03-04 | 2013-11-20 | 瑞萨电子株式会社 | 防止电源骤停造成的非易失性存储器的误动作的半导体器件 |
CN102272734B (zh) * | 2009-01-05 | 2014-09-10 | 马维尔国际贸易有限公司 | 使用非易失性存储器设备用于休眠或挂起的方法和系统 |
CN106155874A (zh) * | 2015-02-02 | 2016-11-23 | 慧荣科技股份有限公司 | 数据储存装置及其断电事件判断方法 |
CN106951026A (zh) * | 2017-03-06 | 2017-07-14 | 南京国电南自电网自动化有限公司 | 一种基于单时钟系统的夏令时实现方法 |
CN107086047A (zh) * | 2016-02-15 | 2017-08-22 | 维布络有限公司 | 用于集成电路的存储器初始化的系统和方法 |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6389505B1 (en) * | 1998-11-19 | 2002-05-14 | International Business Machines Corporation | Restore tracking system for DRAM |
TW425506B (en) * | 1999-06-11 | 2001-03-11 | Via Tech Inc | Voltage switching device for suspending to RAM mode |
US6636943B1 (en) * | 1999-07-30 | 2003-10-21 | Hewlett-Packard Development Company, L.P. | Method for detecting continuity modules in a direct Rambus DRAM subsystem |
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 |
US6633987B2 (en) * | 2000-03-24 | 2003-10-14 | Intel Corporation | Method and apparatus to implement the ACPI(advanced configuration and power interface) C3 state in a RDRAM based system |
US6691237B1 (en) * | 2000-08-08 | 2004-02-10 | Dell Products, L.P. | Active memory pool management policies |
US6535411B2 (en) | 2000-12-27 | 2003-03-18 | Intel Corporation | Memory module and computer system comprising a memory module |
US7058732B1 (en) * | 2001-02-06 | 2006-06-06 | Cypress Semiconductor Corporation | Method and apparatus for automatic detection of a serial peripheral interface (SPI) device memory size |
US7017052B2 (en) * | 2001-11-16 | 2006-03-21 | Lenovo Pte. Ltd. | Method and system for reducing boot time for a computer |
US7000133B2 (en) * | 2002-03-22 | 2006-02-14 | Intel Corporation | Method and apparatus for controlling power states in a memory device utilizing state information |
US7284136B2 (en) * | 2003-01-23 | 2007-10-16 | Intel Corporation | Methods and apparatus for implementing a secure resume |
DE102004032237A1 (de) * | 2004-07-02 | 2006-01-26 | Infineon Technologies Ag | Konfiguration von Bauelementen bei einem Übergang von einem Niedrigleistungs-Betriebsmodus in einen Normalleistungs-Betriebsmodus |
US7664970B2 (en) | 2005-12-30 | 2010-02-16 | Intel Corporation | Method and apparatus for a zero voltage processor sleep state |
US7966511B2 (en) | 2004-07-27 | 2011-06-21 | Intel Corporation | Power management coordination in multi-core processors |
WO2006057049A1 (ja) | 2004-11-26 | 2006-06-01 | Kabushiki Kaisha Toshiba | カードおよびホスト機器 |
CN100371858C (zh) * | 2005-02-24 | 2008-02-27 | 英业达股份有限公司 | 一种存储器电源备援系统 |
CN101539771B (zh) * | 2008-03-21 | 2012-09-19 | 鸿富锦精密工业(深圳)有限公司 | 主设备对从设备的自动定址系统 |
US8117428B2 (en) * | 2009-06-04 | 2012-02-14 | Texas Instruments Incorporated | Apparatus and method for automatically saving and restoring pad configuration registers implemented in a core power domain |
JP5150591B2 (ja) | 2009-09-24 | 2013-02-20 | 株式会社東芝 | 半導体装置及びホスト機器 |
WO2012126345A1 (zh) * | 2011-03-23 | 2012-09-27 | 联想(北京)有限公司 | 计算机的启动方法、启动装置、状态转换方法和状态转换装置 |
TWI459400B (zh) * | 2012-04-17 | 2014-11-01 | Phison Electronics Corp | 記憶體儲存裝置、及其記憶體控制器與電源控制方法 |
US9424896B2 (en) * | 2012-06-22 | 2016-08-23 | Nxp B.V. | Method and system for fast initialization of a memory unit |
US9535483B2 (en) * | 2012-12-19 | 2017-01-03 | Intel Corporation | Adaptively disabling and enabling sleep states for power and performance |
JP6524618B2 (ja) * | 2013-09-09 | 2019-06-05 | 株式会社リコー | 電子機器、制御方法およびプログラム |
TWI512623B (zh) * | 2013-12-26 | 2015-12-11 | Phison Electronics Corp | 休眠模式啓動方法、記憶體控制電路單元及儲存裝置 |
US9785223B2 (en) * | 2014-12-25 | 2017-10-10 | Intel Corporation | Power management in an uncore fabric |
DE102015226837A1 (de) * | 2015-12-30 | 2017-07-06 | Dialog Semiconductor B.V. | Initialisierung von Speicher in einem Computersystem |
US10452561B2 (en) | 2016-08-08 | 2019-10-22 | Raytheon Company | Central processing unit architecture and methods for high availability systems |
US11664062B2 (en) * | 2020-07-24 | 2023-05-30 | Advanced Micro Devices, Inc. | Memory calibration system and method |
US11417370B2 (en) * | 2020-08-12 | 2022-08-16 | Taiwan Semiconductor Manufacturing Company, Ltd. | Memory device |
Family Cites Families (8)
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 |
US4994934A (en) * | 1989-12-01 | 1991-02-19 | Abb Power T & D Company Inc. | Microcomputer based reclosing relay |
US5204964A (en) * | 1990-10-05 | 1993-04-20 | Bull Hn Information Systems Inc. | Method and apparatus for resetting a memory upon power recovery |
US5355490A (en) * | 1991-06-14 | 1994-10-11 | Toshiba America Information Systems, Inc. | System and method for saving the state for advanced microprocessor operating modes |
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 |
-
1998
- 1998-11-03 US US09/186,049 patent/US6230274B1/en not_active Expired - Lifetime
-
1999
- 1999-10-22 EP EP99971532A patent/EP1127307B1/en not_active Expired - Lifetime
- 1999-10-22 BR BR9915827-2A patent/BR9915827A/pt not_active Application Discontinuation
- 1999-10-22 AU AU12214/00A patent/AU1221400A/en not_active Abandoned
- 1999-10-22 DE DE69931653T patent/DE69931653T2/de not_active Expired - Lifetime
- 1999-10-22 WO PCT/US1999/024755 patent/WO2000026753A1/en active IP Right Grant
- 1999-10-22 CN CNB99815394XA patent/CN1288530C/zh not_active Expired - Fee Related
- 1999-11-20 TW TW088119147A patent/TW538342B/zh not_active IP Right Cessation
-
2001
- 2001-11-06 HK HK01107757A patent/HK1036862A1/xx not_active IP Right Cessation
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102272734B (zh) * | 2009-01-05 | 2014-09-10 | 马维尔国际贸易有限公司 | 使用非易失性存储器设备用于休眠或挂起的方法和系统 |
CN103403808A (zh) * | 2011-03-04 | 2013-11-20 | 瑞萨电子株式会社 | 防止电源骤停造成的非易失性存储器的误动作的半导体器件 |
CN103403808B (zh) * | 2011-03-04 | 2016-03-23 | 瑞萨电子株式会社 | 防止电源骤停造成的非易失性存储器的误动作的半导体器件 |
CN103365799A (zh) * | 2012-03-30 | 2013-10-23 | 英特尔公司 | 检测对掉电设备的访问 |
US9454201B2 (en) | 2012-03-30 | 2016-09-27 | Intel Corporation | Detecting access to powered down device |
CN103365799B (zh) * | 2012-03-30 | 2017-03-01 | 英特尔公司 | 用于检测对掉电设备的访问的装置、方法、系统和设备 |
CN106155874A (zh) * | 2015-02-02 | 2016-11-23 | 慧荣科技股份有限公司 | 数据储存装置及其断电事件判断方法 |
CN106155874B (zh) * | 2015-02-02 | 2018-12-21 | 慧荣科技股份有限公司 | 数据储存装置及其断电事件判断方法 |
CN107086047A (zh) * | 2016-02-15 | 2017-08-22 | 维布络有限公司 | 用于集成电路的存储器初始化的系统和方法 |
CN107086047B (zh) * | 2016-02-15 | 2021-02-12 | 维布络有限公司 | 用于集成电路的存储器初始化的系统和方法 |
CN106951026A (zh) * | 2017-03-06 | 2017-07-14 | 南京国电南自电网自动化有限公司 | 一种基于单时钟系统的夏令时实现方法 |
CN106951026B (zh) * | 2017-03-06 | 2019-06-28 | 南京国电南自电网自动化有限公司 | 一种基于单时钟系统的夏令时实现方法 |
Also Published As
Publication number | Publication date |
---|---|
DE69931653T2 (de) | 2007-06-14 |
CN1288530C (zh) | 2006-12-06 |
WO2000026753A1 (en) | 2000-05-11 |
EP1127307A1 (en) | 2001-08-29 |
US6230274B1 (en) | 2001-05-08 |
BR9915827A (pt) | 2001-08-14 |
AU1221400A (en) | 2000-05-22 |
HK1036862A1 (en) | 2002-01-18 |
TW538342B (en) | 2003-06-21 |
EP1127307B1 (en) | 2006-05-31 |
DE69931653D1 (de) | 2006-07-06 |
EP1127307A4 (en) | 2003-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1288530C (zh) | 用于恢复存储器初始化值的方法和系统 | |
CN1342282A (zh) | 配置和初始化存储器及存储通道的方法与设备 | |
US8792273B2 (en) | Data storage system with power cycle management and method of operation thereof | |
US8812784B2 (en) | Command executing method, memory controller and memory storage apparatus | |
TW316967B (en) | Method for integrating a removable media disk drive into a computer system | |
US9342371B2 (en) | Boot partitions in memory devices and systems | |
US20100042773A1 (en) | Flash memory storage system and data writing method thereof | |
US20120254511A1 (en) | Memory storage device, memory controller, and data writing method | |
CN101640069B (zh) | 用于闪速存储器的平均磨损方法与平均磨损系统 | |
CN1155341A (zh) | 基于快速存储器的主存储器 | |
JP2008009874A (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
JP4597459B2 (ja) | 装置の列挙のための仮想rom | |
US20090287876A1 (en) | Method, apparatus and controller for managing memories | |
CN1770320A (zh) | 控制存储器的存取和刷新的系统和方法 | |
US8370617B2 (en) | Booting method and computer system using the booting method | |
JP2003114826A (ja) | 新規のフラッシュメモリ構成 | |
US20120060023A1 (en) | Methods for booting an operating system using non-volatile memory | |
KR20070082766A (ko) | 직렬 및 병렬 인터페이스들을 포함하는 컴퓨터 시스템 | |
US7861074B2 (en) | Electronic systems using flash memory modules as main storage and related system booting methods | |
US20100030979A1 (en) | Data management method, and storage apparatus and controller thereof | |
US8291206B2 (en) | Method for booting computer system | |
CN1896948A (zh) | 用于计算设备的低功率数字音频解码/播放系统 | |
US11487638B2 (en) | Computer program product and method and apparatus for controlling access to flash memory card | |
EP1293904A1 (en) | Method of initiating a backup procedure | |
CN115756619A (zh) | 硬盘启动方法、装置、设备、介质及程序产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
C10 | Entry into substantive examination | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20061206 Termination date: 20111022 |