CN102713832A - 存储控制器 - Google Patents

存储控制器 Download PDF

Info

Publication number
CN102713832A
CN102713832A CN2010800619416A CN201080061941A CN102713832A CN 102713832 A CN102713832 A CN 102713832A CN 2010800619416 A CN2010800619416 A CN 2010800619416A CN 201080061941 A CN201080061941 A CN 201080061941A CN 102713832 A CN102713832 A CN 102713832A
Authority
CN
China
Prior art keywords
memory module
sequence number
storage
stored
computing machine
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN2010800619416A
Other languages
English (en)
Inventor
格雷戈里·齐亚尔尼克
杰弗里·肯兰
约瑟·桑舒-多明格斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of CN102713832A publication Critical patent/CN102713832A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1689Synchronisation and timing concerns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1694Configuration of memory controller to different memory types
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Transfer Systems (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

一种用于配置存储控制器的方法,包括:确定至少一个存储模块的序列号是否与所存储的对应于所述至少一个存储模块的序列号相匹配;以及当所述序列号与所存储的对应于所述至少一个存储模块的序列号相匹配时,利用所存储的时序数据来配置存储控制器。

Description

存储控制器
背景技术
用户或计算机能够对计算机中的一个或多个组件进行配置和初始化。当配置一个或多个组件时,用户或计算机能够访问和编辑与这些组件对应的一个或多个设置。通过使用所编辑的设置,计算机能够继续对一个或多个组件进行配置和初始化。
附图说明
所公开实施例的多个特征和优势将从接下来结合附图进行的详细描述中显而易见,附图通过示例的方式一起图示这些实施例的特征。
图1图示根据本发明实施例的具有存储控制器和至少一个存储模块的计算机。
图2图示根据本发明实施例的对存储控制器进行配置的存储应用的框图。
图3图示根据本发明另一实施例的对存储控制器进行配置的存储应用的框图。
图4图示根据本发明实施例的具有嵌入式存储应用和在由计算机访问的可移除介质上存储的存储应用的计算机。
图5是图示根据本发明实施例的用于配置存储控制器的方法的流程图。
图6是图示根据本发明另一实施例的用于配置存储控制器的方法的流程图。
具体实施方式
图1图示根据本发明实施例的具有至少一个存储模块160和存储控制器170的计算机100。在一个实施例中,计算机100是台式机、便携式计算机/笔记本、上网本和/或任何其它计算设备。
如图1中图示,计算机100连接到处理器120、至少一个dimm(双列直插式存储模块)插槽130、存储控制器170、存储设备140和通信总线150,通信总线150用于计算机100和/或计算机100的一个或多个组件与彼此进行通信。此外,如图1中图示,存储模块160能连接到dimm插槽130中的至少一个。
而且,如图1中所示,存储设备140能存储存储应用110、所存储的序列号180和/或所存储的时序数据190。在其它实施例中,计算机100包括附加组件和/或连接到除上面提到的和如图1中图示的那些组件以外的附加组件或代替上面提到的和图1中图示的那些组件的附加组件。
如上面提到的,计算机100包括处理器120。处理器120向计算机100的一个或多个组件,例如存储设备140、存储模块160、存储控制器170和存储应用110发送数据和/或指令。此外,存储器120从计算机100的一个或多个组件,例如存储控制器170、至少一个存储模块160和存储应用110接收数据和/或指令。
存储应用110是能与处理器120和至少一个dimm插槽130结合使用的应用程序,以便确定存储模块160的序列号是否匹配所存储的序列号180。此外,存储应用110能确定存储模块160是否在上次使用的dimm插槽130内。进一步,存储应用110能通过使用所存储的时序数据180或使用新的时序数据对存储控制器170进行配置。
在一个实施例中,存储应用110能响应于计算机100和/或计算机100的一个或多个组件通电而启动。在另一实施例中,存储应用110能响应于计算机100从S1、S2、S3、S4和/或S5电源状态过渡到S0电源状态而启动。在其它实施例中,存储应用110能响应于计算机100进入上面的电源状态中的任一电源状态和/或在这些电源状态中的任一电源状态之间过渡而启动。
S0、S1、S2、S3、S4和S5电源状态是用于计算机100的ACPI标准化的电源配置。当处于S0电源状态时,计算机100的一个或多个组件通电。当处于S1、S2、S3、S4和/或S5电源状态时,计算机100的一个或多个组件能够断电。
存储应用110可以是被嵌入到计算机100上的固件。在一个实施例中,存储应用110作为计算机100的BIOS而工作。在其它实施例中,存储应用110是存储在计算机100上ROM内或可由计算机100访问的存储设备140上的软件应用,或者存储应用110被存储在可由计算机100从不同位置读取和访问的计算机可读介质上。
此外,在一个实施例中,存储设备140包含在计算机100内。在其它实施例中,存储设备140不包含在计算机100内,而可由计算机100通过使用计算机100的网络接口访问。网络接口可以是有线网络接口卡或无线网络接口卡。
在又一实施例中,存储应用110通过经过局域网或广域网连接的服务器存储和/或访问。存储应用110与通过包含在计算设备110中的或附接到计算设备110的通信总线150以物理方式或以无线方式连接到计算机100的设备和/或组件通信。在一个实施例中,通信总线150是存储总线。在其它实施例中,通信总线150是数据总线。
如上面提到的,存储应用110能与处理器120结合使用,以确定存储模块160的序列号是否匹配所存储的序列号180。存储模块160是包括至少一个存储芯片的电路板。至少一个存储芯片包括随机存取存储器,该随机存取存储器被配置成在被访问时存储和/或传输来自计算机100的数据。
此外,存储模块160包括能被配置成存储序列号的存储介质。在一个实施例中,存储模块160的存储介质包括串行存在检测(SPD)空间。SPD空间可以包括被配置成存储序列号的非易失性存储器。
为了该应用,序列号是用来识别存储模块160的一系列数字和/或字符。在一个实施例中,序列号能够被存储应用110复制和写入存储模块160的SPD空间。序列号能够从来自计算机的另一组件的识别号(例如网络接口卡的MAC地址)中复制。
在另一实施例中,序列号能够由存储应用110计算和/或产生,并且存储在存储模块160的存储介质上。当计算和/或产生序列号时,存储应用110能够使用一个或多个算法来产生序列号。在一个实施例中,使用一个或多个算法包括使用随机数和/或字符发生器。
此外,如果序列号不是已经可利用的和/或存储在计算机100的一个或多个组件上,存储应用110能够将序列号作为被存储的序列号180存储在与计算机100连接的存储设备140上。在一个实施例中,存储应用110能够包括存储在可由计算机100访问的数据库中的序列号。在另一实施例中,存储应用110能将被存储的序列号作为文件存储在存储设备140内。
当确定存储模块160的序列号是否匹配所存储的序列号180时,存储应用110最初针对存储模块160扫描与计算机100连接的至少一个dimm插槽130。dimm插槽130是计算机100的组件,其被配置成将存储模块160连接和接合到计算机100。
在一个实施例中,至少一个dimm插槽130能被集成作为计算机100的一部分。在另一实施例,至少一个dimm插槽130能连接到计算机100的另一组件,例如主板和/或印刷电路板。
如果确定存储模块160存在于至少一个dimm插槽130中,则存储应用110能针对序列号扫描存储模块160的存储介质。如果存储模块160的存储介质不包括序列号,则存储应用110将确定存储模块160是第一次呈现给计算机100,并且继续计算、产生和/或复制序列号到存储模块160的存储介质上,以便随后识别存储模块160。
如果存储模块160的存储介质已经包括序列号,则存储应用110会继续将存储模块160的序列号与已存储的序列号180相比较。已存储的序列号180是之前和/或上次与计算机100一起使用的存储模块160的序列号。
如图1中图示的,在一个实施例中,所存储的序列号180能够存储在存储设备140上。在另一实施例中,如上面提到的,所存储的序列号180能够是计算机100的其它组件的识别号,并且该识别号被存储在该其它组件上。
如果存储模块160的序列号匹配所存储的序列号180,则存储应用110能在配置和/或初始化存储控制器170时继续使用所存储的时序数据190。在一个实施例中,存储应用100能够在利用所存储的时序数据180来配置和/或初始化存储控制器170以前附加地确定存储模块160是否在上次使用的dimm插槽130内。
存储的时序数据190是之前由存储应用110计算和/或存储的时序数据。此外,所存储的时序数据190能从其它设备下载和/或存储在计算机100的一个或多个组件上。
当确定存储模块160是否在上次使用的dimm插槽内时,存储应用110能扫描至少一个dimm插槽130来确定对应的存储模块160存在于哪个dimm插槽130内。一旦存储应用110已经识别到对应的dimm插槽130,存储应用110就能将对应的dimm插槽130与上次使用的列出的dimm插槽相比较。
上次使用的dimm插槽能够被列出和/或存储在计算机100的一个或多个组件上,例如存储设备140上。在一个实施例中,上次使用的dimm插槽能在计算机100可访问的数据库中列出。数据库能够包括用于计算机100的dimm插槽130的条目,并且列出在对应的dimm插槽130中使用的上次的存储模块。此外,上次使用的dimm插槽的信息能够被列出和/或被存储在相应存储模块160的存储介质上。
在一个实施例中,如果一个以上的存储模块160连接到计算机100,则存储应用110会在继续使用所存储的时序数据190来配置和/或初始化存储控制器170以前,针对每个存储模块160重复上面提到的过程,以保证所有存储模块160的序列号匹配所存储的序列号并且保证存储模块160都在上次使用的dimm插槽内。
在另一实施例中,如果存储应用110确定存储模块160的序列号不匹配所存储的序列号180或者如果存储模块160不在上次使用的dimm插槽130内,那么存储应用110将继续识别和/或计算新的时序数据以在配置存储控制器170时使用。
存储控制器170是计算机100的组件,其被配置成管理从至少一个存储模块160接收的数据流和/或发送给至少一个存储模块160的数据流。当计算机100进入一个或多个电源状态和/或从一个或多个电源状态过渡时,存储控制器170能够被存储应用110配置。
在一个实施例中,当配置存储控制器170时,存储应用110使用来自时序数据的时序参数,来指定当向至少一个存储模块160写入数据和/或从至少一个存储模块160读取数据时将对于存储控制器170的参数使用的时序。存储应用110能访问至少一个存储模块160的一个或多个参数并且继续限定和/或设置这些参数的时序。
为了该应用,时序数据包括用于至少一个存储模块160的一个或多个时序参数。此外,为了该应用,时序参数能包括用于相应参数的一个或多个时序。在一个实施例中,时序参数能够是时序延迟。一个或多个时序参数能够被制造者预限定、计算和/或被存储应用110识别。
在一个实施例中,至少一个存储模块160的参数能够包括CAS等待时间、行地址至列延迟时间、行预充电时间和/或行激活时间。结果,时序数据包括指定用于CAS等待时间的时序延迟的时序参数、指定用于行地址至列的时序的时序参数、指定用于行预充电的时序的时序参数和/或指定用于行激活的时序的时序参数。在其它实施例中,除上面提到的那些参数以外和/或代替上面提到的那些参数,时序数据能够包括用于至少一个存储模块160的附加参数的附加时序。
此外,时序数据能够通过对至少一个存储模块160执行一个或多个时序算法来计算。时序算法是过程、函数和/或序列,存储应用110和/或处理器120能利用时序参数执行该过程、函数和/或序列,以确定数据是否能够成功地写入至少一个存储模块160和/或从至少一个存储模块160中读取。
当执行一个或多个时序算法时,存储应用110使用用于存储模块的不同参数的一系列时序,以确定通过使用这些时序,数据是否能成功被写入至少一个存储模块160和/或从至少一个存储模块160中读取。
通过使用来自时序算法的结果,存储应用110能识别数据能成功被写入至少一个存储模块160和/或从至少一个存储模块160中读取时的对应参数的平均和/或中间时序。然后存储应用110将该平均和/或中间时序识别为该对应参数的时序参数。
存储应用110能针对至少一个存储模块160的每个参数重复该过程,以确定这些参数中一个或多个参数的时序参数。然后,存储应用110能继续使用被识别的时序参数的集合作为时序数据,以配置存储控制器170。
此外,一旦已经识别时序数据,时序数据就能被存储作为存储的时序数据190供今后使用。在其它实施例中,存储应用110能计算、限定和/或确定在配置存储控制器170时将使用的更多因子或变量。
图2图示根据本发明实施例的配置存储控制器280的存储应用200的框图。如上面提到的,响应于计算机进入和/或过渡到一个或多个电源状态,能够配置存储控制器280。
如图2中图示的,当配置存储控制器280时,存储应用200最初能访问与至少一个dimm插槽210、220、230连接的至少一个存储模块215、225、236。当访问dimm插槽时,存储应用200确定存储模块1 215连接到dimm插槽1 210、存储模块2 225连接到dimm插槽2 220以及存储模块3 235连接到dimm插槽3 230。
一旦存储应用200已识别至少一个存储模块连接到至少一个dimm插槽,存储应用220就继续确定这些存储模块是否具有对应的序列号,以及对应的序列号是否匹配所存储的序列号。此外,如图2中所示,存储应用200能够附加地确定这些存储模块是否位于上次使用的dimm插槽内。
如当前实施例中所示的,存储应用200访问存储模块1 215的存储介质1并且确定存储模块1 215具有111111000的序列号。如上面提到的,在一个实施例中,存储模块的存储介质能够包括串行存在检测(SPD)空间,并且存储模块的序列号能够被存储在SPD空间内。
在识别存储模块1 215的序列号以后,存储应用将该序列号与所存储的序列号相比较。在一个实施例中,如图2中所示,所存储的序列号能够存储在与计算机连接的存储设备240上。在其它实施例中,所存储的序列号可以是由其它组件存储的、计算机的其它组件的识别号。
如本实施例中所示的,存储应用200访问存储设备240,并且发现上次在Dimm插槽1中使用的存储模块215的所存储序列号是111111000。结果,存储应用210确定存储模块1 215的序列号匹配所存储的序列号。此外,存储应用210确定存储模块1位于上次使用的Dimm插槽1 210内。
如图2中图示的,在一个实施例中,当识别存储模块上次在哪个dimm插槽中使用时,用于存储模块的上次使用的dimm插槽的信息能被存储在计算机的存储设备240上。在另一实施例中,上次使用的dimm插槽的信息能被存储在存储模块的对应存储介质上。
在识别存储模块1 215的序列号匹配所存储的序列号250以及存储模块1 215位于上次使用的dimm插槽内时,存储应用200然后继续确定:存储模块2 225和存储模块3 235是否包括序列号、这些存储模块的序列号是否匹配所存储的序列号和/或这些存储模块是否位于上次使用的dimm插槽内。
如图2中图示的,存储应用200访问存储模块2 225和存储模块3 235的存储介质。此外,存储应用200确定存储模块2 225的序列号是110111000,并且存储模块3 235的序列号是110111011。进一步,存储应用200访问存储设备240并且确定所存储的Dimm插槽2的序列号260是110111000。此外,所存储的Dimm插槽3的序列号270是110111011。
结果,存储应用200确定存储模块2 225的序列号匹配所存储的与存储模块2225对应的序列号260。此外,存储应用200确定存储模块2 225位于上次使用的Dimm插槽2内。进一步,存储应用200确定存储模块3 235的序列号匹配所存储的与存储模块3 235对应的序列号270,并且确定存储模块3 235位于上次使用的Dimm插槽3 230内。
响应于确定所有存储模块的序列号匹配所存储的序列号以及确定存储模块都在上次使用的dimm插槽内,存储应用200继续使用所存储的时序数据来配置计算机的存储控制器280。如上面提到的,所存储的时序数据包括存储模块的一个或多个参数的时序。
在另一实施例中,如果存储模块中的任一存储模块具有与对应的所存储序列号不匹配的序列号,和/或如果存储模块中的任一存储模块不在上次使用的dimm插槽内,则存储应用200能继续识别新的时序数据以在配置存储控制器280时使用。
图3图示根据本发明另一实施例的配置存储控制器380的存储应用300的框图。在一个实施例中,如果存储应用300确定至少一个存储模块具有与所存储的序列号不匹配的序列号,和/或如果存储应用300确定这些存储模块中的至少一个存储模块不位于上次使用的dimm插槽内,则存储应用300将继续识别新的时序数据以在配置存储控制器380时使用。
为了该应用,当存储模块被别的存储模块代替时,当存储模块被移动到别的dimm插槽时和/或当存储模块第一次与计算机连接时,存储模块的序列号可能与所存储的序列号不匹配。
如图3中所示,存储应用300访问计算机上的Dimm插槽1 310、Dimm插槽2 320和Dimm插槽3 330,并且确定这些dimm插槽具有连接到这些dimm插槽的存储模块。存储应用300继续确定这些存储模块是否具有对应的序列号以及确定这些对应的序列号是否匹配所存储的序列号。
如本实施例中所图示的,存储应用300访问存储模块1 315的存储介质1并且确定存储模块1 315具有110111011的序列号。存储应用300然后继续访问计算机的存储设备340,以确定存储模块1 315的序列号是否匹配所存储的序列号1 350,即111111000。在其它实施例中,存储应用300能访问计算机的附加组件以及这些附加组件的识别号,以将存储模块1 315的序列号与它们相比较。
如图3中所示,存储应用300确定存储模块1 315的序列号110111011不匹配所存储的序列号1 350,即111111000。此外,存储应用300确定,存储模块1 315的存储介质列出存储模块1 315上次在Dimm插槽3 330中使用。结果,响应于存储模块的序列号不匹配对应的所存储序列号和/或响应于存储模块不位于上次使用的dimm插槽内,存储应用300继续识别新的时序数据以在配置存储控制器380时使用。
如上面提到的,当识别新的时序数据时,存储应用300对与计算机连接的存储模块(存储模块1 310、存储模块2 320和存储模块3 330)执行至少一个时序算法。
在一个实施例中,存储应用300在执行时序算法时,针对存储模块的参数使用一系列时序,以识别数据能成功被写入存储模块和从存储模块中读取时的一系列成功的时序。然后存储应用300从这一系列成功的时序中识别平均和/或中间的成功时序,并且使用该平均和/或中间的成功时序作为对应参数的时序参数。
在一个实施例中,存储应用300识别存储模块的CAS等待时间参数的时序参数。存储应用300使用从10毫秒到2秒的时序延迟范围作为存储模块的CAS等待时间参数的时序。当对存储模块1 315、存储模块2 315和存储模块3 335执行一个或多个时序算法时,存储应用300使用该范围的时序延迟。在一个实施例中,存储应用300通过使用来自10毫秒到1秒范围的时序延迟来确定数据被成功写入存储模块和/或从存储模块中读取。
然后,存储应用300识别500毫秒的平均和/或中间成功时序延迟能被用作时序延迟以及用作存储模块的CAS等待时间参数的时序参数。
存储应用300能针对存储模块的每个参数重复该过程,以识别附加的对应时序参数。然后,用于对应参数的平均和/或中间成功时序的集合用作新的时序数据的时序参数。
在另一实施例中,当识别新的时序数据时,存储应用300能考虑存储模块的频率并且在识别新的时序数据时访问时序表。在其它实施例中,存储应用300能通过使用附加方法和/或通过考虑除上面提到的那些因素以外和/或代替上面提到的那些因素的附加因素来识别新的时序数据。
然后,存储应用300能够使用新的时序数据来配置存储控制器380。当用新的时序数据配置存储控制器380时,存储应用300将之前从存储模块中识别的时序参数加载到存储控制器380上。然后,存储控制器380能在向存储模块写入数据和/或从存储模块读取数据时将这些时序与存储模块的参数一起使用。
进一步,一旦存储应用300已识别新的时序数据,存储应用300就存储新的时序数据以供存储控制器380的今后配置。在一个实施例中,能够用新的时序数据重写所存储的时序数据390。
此外,在一个实施例中,当存储应用3000确定存储模块的序列号与对应的所存储序列号不匹配时,存储应用300能将存储模块的序列号存储,以供随后在确定是使用所存储的时序数据还是计算新的时序数据时的比较。
如图3中所示,由于存储模块1 315的序列号与所存储的对应于存储模块1的序列号315不匹配,因此存储应用能够用110111011重写所存储的序列号315。此外,存储应用300能更新存储模块1的存储介质,以反映存储模块1的上次使用的dimm插槽是Dimm插槽1 310。
然后,存储应用300继续确定存储模块2 325的序列号和存储模块3 335的序列号是否与所存储的对应于这些存储模块的序列号相匹配。此外,存储应用300确定这些存储模块是否位于上次使用的dimm插槽内。
如图3中图示的,存储应用300确定存储模块2 315的序列号110111000与所存储的对应于存储模块2 325的序列号360,即110111000相匹配。此外,存储应用300确定在存储模块2325的存储介质中列出的上次使用的dimm插槽准确地被列出为Dimm插槽2320。结果,存储应用300不更新所存储的对应于存储模块2 325的序列号360,并且存储应用300不更新由存储模块2 325列出的上次使用的dimm插槽。
然后,存储应用300继续到存储模块3 335,并且确定存储模块3 335没有所列出的序列号。结果。存储应用300确定存储模块3 335被检测到并且第一次连接到计算机。存储应用300继续向存储模块3 335写入新的序列号。如上面提到的,新的序列号可以通过存储应用300计算和/或产生。此外,新的序列号能够从计算机的其它组件的识别号中复制。
图4图示根据本发明实施例的具有嵌入式存储应用410和存储在计算机400访问的可移除介质上的存储应用410的计算机400。为了该描述,可移除介质是包含、存储、传送或传递供计算机400使用的应用或与计算机400有关的应用的任何有形装置。如上面提到的,在一个实施例中,存储应用410是作为ROM嵌入到计算机400的一个或多个组件内的固件。在其它实施例中,存储应用410是在硬驱、光盘、闪盘、网络驱动器或任何其它形式的与计算机400连接的计算机可读介质上存储的并可从它们上访问的软件应用。
图5是图示根据本发明实施例的用于配置存储控制器的方法的流程图。图5的方法使用与至少一个dimm插槽、至少一个存储模块、处理器和存储应用连接的计算机。在其它实施例中,除上面提到的以及在图1、图2、图3和图4中示出的组件以外和/或代替上面提到的以及在图1、图2、图3和图4中示出的组件,图5的方法使用附加的组件和/或设备。
如上面提到的,存储应用可以是计算机的BIOS,并且在存储器进入S0电源状态和/或从S1、S2、S3、S4、S5和/或断电电源状态过渡到S0电源状态时启动。存储应用最初会扫描计算机上的至少一个dimm插槽来确定是否连接有至少一个dimm插槽。
如果至少一个存储模块连接到计算机的dimm插槽,则存储应用会继续访问存储模块的存储介质,以确定存储模块是否具有列出的序列号。在一个实施例中,存储模块的存储介质能够包括串行存在检测(SPD)空间。
如果未发现为存储模块列出的序列号,那么存储应用确定存储模块第一次连接到计算机并且继续为该存储模块分配序列号。当向存储模块分配序列号时,存储应用能够使用一个或多个算法计算和/或产生序列号。
进一步,存储应用能存储存储模块的序列号以供随后比较。在其它实施例中,存储应用能复制由计算机的其它组件存储和/或使用的识别号,并且使用该识别号作为存储模块的序列号。
在另一实施例中,如果存储应用在存储模块的存储介质上找到序列号,那么在步骤500,存储应用会继续确定对应存储模块的序列号是否与所存储的对应于至少一个存储模块的序列号相匹配。
如上面提到的,存储模块的序列号可以是计算机的其它组件的识别号,或者该序列号能存储在与计算机连接的存储设备上。结果,存储应用会针对与存储模块的序列号相匹配的所存储的序列号和/或所存储的识别号,扫描计算机的存储设备和组件。
在一个实施例中,存储应用能附加地确定对应的存储模块是否位于上次使用的dimm插槽内。如果序列号与所存储的序列号相匹配和/或如果存储模块位于上次使用的dimm插槽内,那么存储应用能继续使用所存储的时序数据来配置存储控制器510。如上面提到的,所存储的时序数据对应于之前在配置存储控制器时计算和使用的时序参数。
在一个实施例中,如果计算机包括一个以上的dimm插槽,并且一个以上的存储模块与计算机连接,那么在使用所存储的时序数据来配置存储控制器以前,存储应用能保证所有存储模块的序列号与所存储的序列号匹配以及保证所有存储模块位于上次使用的dimm插槽内。
在另一实施例中,如果存储应用确定存储模块中的至少一个存储模块没有序列号,如果该序列号与所存储的序列号不匹配,和/或如果存储模块中的至少一个不位于上次使用的dimm插槽内,那么存储应用能继续识别在配置存储控制器时使用的新的时序数据。
当识别新的时序数据时,存储应用识别一个或多个时序参数。如上面提到的,时序参数包括用于一个或多个存储模块的参数的时序。存储应用能通过使用一系列时序执行一个或多个时序算法,来识别用于存储模块的参数的时序。然后,存储应用能继续识别数据被成功写入存储模块内和从存储模块中成功读取时的成功的时序范围。
使用成功的时序范围,存储应用能够识别和使用平均的和/或中间的成功时序作为对应参数的时序参数。存储应用能够重复该过程,以识别用于存储模块的附加参数的附加时序参数。在一个实施例中,存储应用然后使用时序参数的集合作为新的时序数据。然后,新的时序数据能被存储,用于存储控制器的随后配置。
此外,如果存储应用确定存储模块的序列号与所存储的序列号不匹配,那么存储应用能够继续存储对应存储模块的序列号。进一步,如果存储应用确定存储模块不位于上次使用的dimm插槽内,那么存储应用能继续更新关于针对相对应存储模块指定上次使用的dimm的信息。关于针对相对应存储模块指定上次使用的dimm插槽的信息可以存储在对应的存储模块上或者存储在计算机的组件上。
然后该方法完成,或者当存储应用进入S0电源状态和/或从S1、S2、S3、S4、S5和/或断电电源状态过渡到S0电源状态时,存储应用能重复上面公开的方法。在其它实施例中,除图5中示出的那些步骤以外和/或代替图5中示出的那些步骤,图5的方法包括附加步骤。
图6是图示根据本发明另一实施例的用于配置存储控制器的方法的流程图。与图5中公开的方法类似,图6的方法使用与至少一个dimm插槽、至少一个存储模块、处理器和存储应用相连接的计算机。在其它实施例中,除上面提到的和图1、图2、图3和图4中图示的那些组件和/或设备以外和/或代替上面提到的和图1、图2、图3和图4中图示的那些组件和/或设备,图6的方法使用附加的组件和/或设备。
如上面提到的,响应于计算机进入和/或过渡到一个或多个电源状态,存储应用能被启动,并且被配置成扫描至少一个存储模块的序列号并将该序列号与所存储的对应于至少一个存储模块的序列号相比较(步骤600)。
存储应用能确定至少一个存储模块的序列号是否与所存储的序列号匹配(步骤610)。在一个实施例中,如果一个以上的存储模块与计算机连接,那么存储应用确定所有对应的存储模块的序列号是否与所存储的序列号匹配。
如果存储应用确定存储模块的序列号与所存储的序列号匹配,那么存储应用继续确定这些存储模块中的至少一个存储模块是否位于上次使用的dimm插槽内(步骤640)。在另一实施例中,在继续确定这些存储模块中的至少一个存储模块是否位于上次使用的dimm插槽内(步骤640)之前,存储应用会检查和保证所有存储模块的序列号与所存储的序列号匹配。
当确定存储模块是否位于上次使用的dimm插槽内时,存储应用能针对在存储模块的存储介质中列出的或者在与计算机连接的存储设备上列出的对应存储模块,扫描上次使用的dimm插槽。
在一个实施例中,如果存储模块中的至少一个位于上次使用的dimm插槽内,那么存储应用能够继续使用所存储的时序数据来配置存储应用的存储控制器(步骤670)。如上面提到的,所存储的时序数据包括之前由存储应用使用和/或计算的时序参数。在另一实施例中,在继续使用所存储的时序数据来配置存储应用的存储控制器(步骤670)以前,存储应用会保证所有与计算机连接的存储模块位于上次使用的dimm插槽内。
在其它实施例中,如果存储应用之前确定存储模块不包括序列号和/或如果序列号与所存储的序列号不匹配,那么存储应用继续确定与计算机连接的存储模块是否是第一次检测到(步骤620)。
如上面提到的,如果存储应用发现存储模块没有列出的序列号,那么存储应用会确定该存储模块由计算机第一次检测到,并且继续计算序列号、产生序列号和/或将序列号复制到存储模块上。如上面提到的,存储介质能包括包含串行存在检测(SPD)空间的非易失性存储器,并且序列号能被写入和被存储在SPD空间上。
此外,序列号能作为存储的序列号存储在存储设备和/或计算机的一个或多个组件上(步骤630)。然后,存储应用能够通过对至少一个存储模块的一个或多个参数执行至少一个时序算法来识别新的时序数据(步骤650)。如上面提到的,当对一个或多个参数执行至少一个时序算法时,存储应用使用一系列时序。
在另一实施例中,如果存储应用找到在存储模块上列出的序列号,并且存储应用确定该序列号与所存储的序列号不匹配,那么存储应用能够存储该序列号作为存储的序列号和/或重写之前存储在计算机的一个或多个组件上的序列号。然后,存储应用能够通过对存储模块中的至少一个执行至少一个时序算法来继续识别新的时序数据(步骤650)。
一旦已经确定时序数据的时序参数,存储应用然后就能将新的时序数据存储在存储设备上以供随后使用(步骤660)。通过使用已存储的新的时序数据,存储应用能继续配置存储控制器(步骤670)。
然后方法完成,或者响应于计算机进入和/或过渡到一个或多个电源状态,存储应用能重复上面公开的方法。在其它实施例中,除图6中示出的步骤和/或代替图6中示出的步骤,图6的方法包括附加的步骤。
当存储模块的序列号与所存储的序列号匹配时,通过使用所存储的时序数据来配置存储模块,能节省对计算机通电时的时间并且能提高效率。此外,当存储模块的序列号与所存储的序列号不匹配时和/或当存储模块不位于上次使用的dimm插槽内时,通过计算新的时序数据并存储该新的时序数据,能够提高计算机的稳定性和安全性。

Claims (15)

1.一种用于配置存储控制器的方法,包括:
确定至少一个存储模块的序列号是否与所存储的对应于所述至少一个存储模块的序列号相匹配;以及
当所述序列号与所存储的对应于所述至少一个存储模块的序列号相匹配时,利用所存储的时序数据来配置所述存储控制器。
2.根据权利要求1所述的用于配置存储控制器的方法,进一步包括:当所述序列号与所存储的对应于所述至少一个存储模块的序列号不匹配时,识别所述至少一个存储模块的新时序数据。
3.根据权利要求2所述的用于配置存储控制器的方法,进一步包括:存储所述新时序数据并且利用所述新时序数据来配置所述存储控制器。
4.根据权利要求2所述的用于配置存储控制器的方法,进一步包括:当所述序列号与所存储的对应于所述至少一个存储模块的序列号不匹配时,存储所述序列号。
5.根据权利要求2所述的用于配置存储控制器的方法,其中识别所述新时序数据包括对所述至少一个存储模块执行至少一个时序算法。
6.根据权利要求1所述的用于配置存储控制器的方法,其中确定至少一个存储模块的序列号是否与所存储的序列号相匹配包括:扫描至少一个存储模块的序列号,并且将所述序列号与所存储的对应于所述至少一个存储模块的序列号相比较。
7.一种计算机,包括:
处理器;
至少一个存储模块,被配置成存储序列号;
由所述处理器执行的存储应用,所述存储应用来自于计算机可读存储器,并且被配置成将所述至少一个存储模块的所述序列号与所存储的对应于所述至少一个存储模块的序列号相比较,并且当所述序列号与所存储的序列号相匹配时利用所存储的时序数据来配置存储控制器。
8.根据权利要求7所述的计算机,其中所述序列号被存储于包含在所述至少一个存储模块中的存储介质上。
9.根据权利要求8所述的计算机,其中当所述计算机第一次检测到所述至少一个存储模块时,所述序列号被所述计算机写入所述存储介质。
10.根据权利要求7所述的计算机,其中所述序列号对应于所述计算机的组件的识别号。
11.根据权利要求7所述的计算机,其中当所述计算机通电时,所述存储应用作为所述计算机的BIOS工作。
12.一种计算机可读介质上的计算机可读程序,包括:
存储应用,被配置成扫描至少一个存储模块以获得序列号并且确定所述序列号是否与所存储的对应于所述至少一个存储模块的序列号相匹配;并且
其中所述存储应用被附加地配置成,当所述序列号与所存储的对应于所述至少一个存储模块的序列号相匹配时,利用所存储的对应于所述至少一个存储模块的时序数据来配置存储控制器。
13.根据权利要求12所述的计算机可读介质上的计算机可读程序,其中所述存储应用进一步确定所述至少一个存储模块是否位于上次使用的dimm(双列直插式存储模块)插槽内。
14.根据权利要求12所述的计算机可读介质上的计算机可读程序,其中当所述序列号与所存储的序列号不匹配时,所述存储应用附加地识别新时序数据并且使用所述新时序数据来配置所述存储控制器。
15.根据权利要求13所述的计算机可读介质上的计算机可读程序,其中当所述至少一个存储模块不位于所述上次使用的dimm插槽内时,所述存储应用附加地计算新时序数据并且使用所述新时序数据来配置所述存储控制器。
CN2010800619416A 2010-01-21 2010-01-21 存储控制器 Pending CN102713832A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2010/021660 WO2011090479A1 (en) 2010-01-21 2010-01-21 Memory controller

Publications (1)

Publication Number Publication Date
CN102713832A true CN102713832A (zh) 2012-10-03

Family

ID=44307093

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010800619416A Pending CN102713832A (zh) 2010-01-21 2010-01-21 存储控制器

Country Status (4)

Country Link
US (1) US9021193B2 (zh)
EP (1) EP2526477B1 (zh)
CN (1) CN102713832A (zh)
WO (1) WO2011090479A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015074235A1 (zh) 2013-11-22 2015-05-28 华为技术有限公司 一种内存数据的迁移方法、计算机和装置
WO2017149362A1 (en) * 2016-03-04 2017-09-08 Telefonaktiebolaget Lm Ericsson (Publ) Application-specific integrated circuit (asic) memory parameter lookup
US10305861B2 (en) * 2016-08-29 2019-05-28 Microsoft Technology Licensing, Llc. Cross-tenant data leakage isolation

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0549139A1 (en) * 1991-12-20 1993-06-30 Sun Microsystems, Inc. Programmable memory timing
US6170059B1 (en) * 1998-07-10 2001-01-02 International Business Machines Corporation Tracking memory modules within a computer system
US20060064563A1 (en) * 2004-09-23 2006-03-23 Hobson Louis B Caching presence detection data
CN101042577A (zh) * 2007-03-22 2007-09-26 南京信息职业技术学院 可编程时序控制方法和系统
US20090164842A1 (en) * 2007-12-19 2009-06-25 International Business Machines Corporation Method and system for enterprise memory management of memory modules
US20090254732A1 (en) * 2008-04-08 2009-10-08 International Business Machines Corporation Enabling Memory Module Slots In A Computing System After A Repair Action

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7032158B2 (en) * 2001-04-23 2006-04-18 Quickshift, Inc. System and method for recognizing and configuring devices embedded on memory modules
US6886109B2 (en) 2001-05-18 2005-04-26 Hewlett-Packard Development Company, L.P. Method and apparatus for expediting system initialization
US20040158701A1 (en) 2003-02-12 2004-08-12 Dell Products L.P. Method of decreasing boot up time in a computer system
EP2506486A1 (en) * 2004-02-23 2012-10-03 Lexar Media, Inc. Secure compact flash
US20070239996A1 (en) 2006-03-20 2007-10-11 Cromer Daryl C Method and apparatus for binding computer memory to motherboard
US7783919B2 (en) 2007-09-12 2010-08-24 Dell Products, Lp System and method of identifying and storing memory error locations
US20090240903A1 (en) 2008-03-20 2009-09-24 Dell Products L.P. Methods and Apparatus for Translating a System Address

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5394541A (en) * 1990-07-17 1995-02-28 Sun Microsystems, Inc. Programmable memory timing method and apparatus for programmably generating generic and then type specific memory timing signals
EP0549139A1 (en) * 1991-12-20 1993-06-30 Sun Microsystems, Inc. Programmable memory timing
US6170059B1 (en) * 1998-07-10 2001-01-02 International Business Machines Corporation Tracking memory modules within a computer system
US20060064563A1 (en) * 2004-09-23 2006-03-23 Hobson Louis B Caching presence detection data
CN101042577A (zh) * 2007-03-22 2007-09-26 南京信息职业技术学院 可编程时序控制方法和系统
US20090164842A1 (en) * 2007-12-19 2009-06-25 International Business Machines Corporation Method and system for enterprise memory management of memory modules
US20090254732A1 (en) * 2008-04-08 2009-10-08 International Business Machines Corporation Enabling Memory Module Slots In A Computing System After A Repair Action

Also Published As

Publication number Publication date
WO2011090479A1 (en) 2011-07-28
US20120030418A1 (en) 2012-02-02
EP2526477A1 (en) 2012-11-28
EP2526477B1 (en) 2015-03-11
EP2526477A4 (en) 2013-06-19
US9021193B2 (en) 2015-04-28

Similar Documents

Publication Publication Date Title
US8683113B2 (en) Concurrently searching multiple devices of a non-volatile semiconductor memory
US20060224874A1 (en) Method for updating system management basic input output system (SMBIOS) data
CN110377344A (zh) 一种fru信息的刷新方法及相关设备
CN109358908B (zh) 一种获取内存条的spd信息的方法、装置及存储介质
CN113406991B (zh) 一种时钟管理方法、装置及电子设备和存储介质
CN101135974A (zh) 一种提高芯片启动速度的装置及方法
CN111949285B (zh) 一种扩展芯片固件升级方法、装置、设备及存储介质
CN102713832A (zh) 存储控制器
CN115129249A (zh) Sas链路拓扑识别管理方法、系统、终端及存储介质
US9304686B2 (en) Data storage device and data trimming method
CN112912743B (zh) 算力的控制方法、装置、设备及存储介质
CN103150184A (zh) 一种对闪存进行操作的方法和系统芯片
US5018146A (en) Apparatus and method for determining if a particular plug-in card is appropriate for use with an electronic processor
CN107807870B (zh) 一种存储服务器主板掉电保护功能的测试方法和系统
CN112506539B (zh) 一种固件更新方法、装置及电子设备和存储介质
CN112379843B (zh) Eeprom数据处理方法、系统、存储介质及终端
CN107741856A (zh) 一种基于eMMC离线烧录的软件升级方法
CN113722242B (zh) 内存配置方法、装置、电子设备及可读介质
CN106095643A (zh) 系统参数存取的设定方法及其服务器
CN116257395A (zh) PCIe链路测试方法、装置、计算机设备
CN113434179B (zh) 一种可编程电源的在线升级方法、装置、设备及存储介质
CN106681857A (zh) 产品资料备份/还原方法
CN111783162A (zh) 数据保护实现方法、装置及计算机设备
CN109901117A (zh) 一种雷达重启方法及装置
CN111399869A (zh) 控制直写式曝光机软件升级的方法、控制单元和曝光机

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
AD01 Patent right deemed abandoned

Effective date of abandoning: 20161214

C20 Patent right or utility model deemed to be abandoned or is abandoned