一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于管理RAID信息的存储器控制器的制作方法

2023-09-08 18:26:49 来源:中国专利 TAG:
用于管理raid信息的存储器控制器
技术领域
1.本公开大体上涉及半导体存储器和方法,并且更具体地说,涉及用于管理raid信息的存储器控制器的设备、系统和方法。


背景技术:

2.存储器装置通常提供为计算机或其它电子系统中的内部电路、半导体电路、集成电路。存在许多不同类型的存储器,包含易失性和非易失性存储器。易失性存储器可能需要电力来维持其数据(例如,主机数据、错误数据等),并包含随机存取存储器(ram)、动态随机存取存储器(dram)、静态随机存取存储器(sram)、同步动态随机存取存储器(sdram)和晶闸管随机存取存储器(tram)等。非易失性存储器可通过在未供电时保持所存储数据来提供持久数据,并且可包含nand快闪存储器、nor快闪存储器、铁电随机存取存储器(feram)和电阻可变存储器,例如相变随机存取存储器(pcram)、电阻式随机存取存储器(rram)和磁阻式随机存取存储器(mram),例如自旋力矩转移随机存取存储器(stt ram)等。
3.存储器装置可耦合到主机(例如,主机计算装置)以存储数据、命令和/或指令以在计算机或电子系统操作时供主机使用。例如,数据、命令和/或指令可在计算或其它电子系统的操作期间在主机与存储器装置之间传送。控制器可用于管理主机与存储器装置之间的数据、命令和/或指令的传送。


技术实现要素:

4.根据本公开的一方面,提供一种用于管理独立磁盘冗余阵列(raid)信息的方法。所述方法包括:通过耦合到高速缓存器和存储器装置的存储器控制器的接口管理电路系统从主机接收指示与存储器存取请求相关联的数据的第一信号;通过存储器控制器传输第二信号以将数据高速缓存于高速缓存器中的第一位置中;以及通过存储器控制器传输第三信号以将数据高速缓存于高速缓存器中的第二位置中。
5.根据本公开的另一方面,提供一种用于管理独立磁盘冗余阵列(raid)信息的方法。所述方法包括:通过经配置以用于计算快速链接(cxl)协议的存储器控制器的接口管理电路系统从主机接收指示与存储器存取请求相关联的数据的第一信号;将指示数据的第二信号传输到第一高速缓存器中的第一位置;以及将指示数据的第三信号传输到第二高速缓存器中的第二位置。
6.根据本公开的又一方面,提供一种用于管理独立磁盘冗余阵列(raid)信息的设备。所述设备包括:数个存储器装置;以及耦合到数个存储器装置的控制器,其中控制器包含高速缓存器且经配置以:接收存储器存取请求以存取高速缓存器中的数据;以及执行对应于存储器存取请求的一或多个存储器操作以存取高速缓存器或数个存储器装置中的一或多者,或这两者,包含存储器操作的执行以:传输指示数据的第二信号以将数据高速缓存于高速缓存器中的第一位置中;以及传输指示数据的第三信号以将数据高速缓存于高速缓存器中的第二位置中。
7.根据本公开的再一方面,提供一种用于管理独立磁盘冗余阵列(raid)信息的设备。所述设备包括:数个存储器装置;以及耦合到数个存储器装置的控制器,其中控制器包含第一高速缓存器和第二高速缓存器,且其中控制器经配置以:接收存储器存取请求以存取第一高速缓存器、第二高速缓存器或这两者中的数据;传输指示数据的第二信号以将数据高速缓存于第一高速缓存器中的第一位置中;以及传输指示数据的第三信号以将数据高速缓存于第二高速缓存器中的第二位置中。
8.根据本公开的再一方面,提供一种用于管理独立磁盘冗余阵列(raid)信息的存储器控制器。所述存储器控制器包括:接口管理电路系统,其经配置以用于非确定性存储器协议;以及数据管理电路系统,其耦合到接口管理电路系统,其中数据管理电路系统包含:错误检测电路系统,其经配置以对数据执行错误检测操作;以及错误校正电路系统,其耦合到错误检测电路系统且经配置以对数据执行错误校正操作;以及独立磁盘冗余阵列(raid)电路系统,其耦合到错误检测电路系统,所述独立磁盘冗余阵列电路系统经配置以对数据执行恢复操作;第一高速缓存器;第二高速缓存器;以及耦合到数据管理电路系统的媒体控制电路系统;以及存储器接口,其经配置以用于双倍数据速率协议、耦合到媒体控制电路系统,其中数据管理电路系统经配置以:将数据高速缓存到第一高速缓存器中的第一位置;以及将数据高速缓存到第二高速缓存器中的第二位置。
附图说明
9.图1为根据本公开的数个实施例的包含存储器控制器的计算系统的功能框图。
10.图2为根据本公开的数个实施例的具有第一配置的存储器控制器的功能框图。
11.图3为根据本公开的数个实施例的具有第二配置的存储器控制器的功能框图。
12.图4为本公开的数个实施例的功能流程图。
13.图5为根据本公开的数个实施例的用于管理raid信息的方法的流程图。
14.图6为根据本公开的数个实施例的用于管理raid信息的方法的流程图。
具体实施方式
15.描述了用于管理存储器系统中的raid信息的存储器控制器。存储器控制器可包含:前端部分,其经配置以与主机介接;中央控制器部分,其经配置以管理数据;后端部分,其经配置以与存储器装置介接;以及管理单元。
16.存储器控制器可包含于存储器系统中。在一些实施例中,存储器系统可为与计算快速链接(cxl)兼容的存储器系统。主机接口可以用cxl协议管理且经由经配置用于外围组件高速互连(pcie)协议的接口耦合到主机。cxl是设计成促进下一代数据中心性能的高速中央处理单元(cpu)到装置和cpu到存储器互连件。cxl技术维持cpu存储器空间与附接装置上的存储器之间的存储器相干性,其允许资源共享以实现较高性能、减小软件堆栈复杂性和降低总体系统成本。随着越来越多地使用加速器来补充cpu以支持新兴应用,例如人工智能和机器学习,cxl被设计成用于高速通信的行业开放标准接口。cxl技术构建在pcie基础设施上,利用pcie物理和电接口在例如输入/输出(i/o)协议、存储器协议(例如,初始地允许主机与加速器共享存储器)等领域中提供高级协议以及一致性接口。
17.如本文所使用,除非上下文另外明确规定,否则单数形式“一(a/an)”和“所述
(the)”包含单个和多个指示物。此外,贯穿本技术以许可的意义(即,有可能、能够),而非以强制性的意义(即,必须)使用单词“可”。术语“包含”和其派生词意味着“包含但不限于”。术语“耦合”意味直接或间接连接。应理解,可以通过电子信号(例如,电流、电压等)传输、接收或交换数据,并且短语“指示[数据]的信号”表示在物理媒体中传输、接收或交换的数据自身。信号可对应于命令(例如,读取命令、写入命令等)。
[0018]
本文中的图式遵循编号规定,其中第一一或多个数字对应于图式编号,且剩余的数字标识图式中的元件或组件。可通过使用类似数字来识别不同图之间的类似元件或组件。举例来说,110可表示图1中的元件“10”,且相似元件可在图2中表示为210。可使用连字符和额外数字或字母指代图式内的类似元件。参见例如图1中的元件102-1、102-2、102-m。通常可在无连字符和额外数字或字母的情况下表示此类类似元件。举例来说,元件102-1、102-2、102-m可统称为102。如本文所使用,指定符“m”和“n”,尤其是关于图中的附图标号,指示可包含数个如此指定的特定特征。如将了解,可添加、交换和/或去除本文中的各种实施例中展示的元件,以提供本公开的数个额外实施例。另外,如应了解,图中提供的元件的比例和相对标度意图说明本发明的某些实施例,并且不应以限制性意义理解。
[0019]
图1为根据本公开的数个实施例的包含存储器控制器100的计算系统101的功能框图。存储器控制器100可包含前端部分104、中央控制器部分110和后端部分119。计算系统101可包含耦合到存储器控制器100的主机103和存储器装置126-1、...、126-n。
[0020]
前端部分104包含接口和接口管理电路系统以通过输入/输出(i/o)通道102-1、102-2、...、102-m将存储器控制器100耦合到主机103,以及管理i/o通道102的电路系统。可存在任何数量的i/o通道102,例如八个、十六个或另一数量的i/o通道102。在一些实施例中,i/o通道102可被配置为单个端口。在至少一个实施例中,存储器控制器100与主机103之间的接口可为根据cxl协议操作的pcie物理和电接口。
[0021]
中央控制器部分110可包含和/或被称作数据管理电路系统。中央控制器部分110可响应于从主机103接收到请求而控制存储器操作的执行。存储器操作的实例包含存储器存取请求,例如从存储器装置126读取数据的读取操作或将数据写入到存储器装置126的写入操作。
[0022]
中央控制器部分110可基于从主机103接收到的数据产生错误检测信息和/或错误校正信息。中央控制器部分110可对从主机103或从存储器装置126接收到的数据执行错误检测操作和/或错误校正操作。
[0023]
错误检测操作的实例为循环冗余校验(crc)操作。crc可被称为代数错误检测。crc可包含使用由使用待保护的数据进行代数计算产生的校验值。crc可以通过比较与数据相关联地存储的校验值与基于数据计算出的校验值来检测到数据的偶然变化。
[0024]
错误校正操作的实例为错误校正码(ecc)操作。ecc编码是指通过将冗余位添加到数据来对数据进行编码。ecc解码是指查阅经ecc编码数据以检查数据中的任何错误。一般来说,ecc不仅可检测错误,还可校正其能够检测到的错误的子集。
[0025]
中央控制器部分110可产生独立磁盘冗余阵列(raid)信息。相对于固态存储器,raid是指跨越物理存储器装置的多个排组的分布式数据存储器,其中所述分布用以实现可靠性、可用性、性能和容量中的一或多者。
[0026]
如本文中所详述,raid电路系统可包含在中央控制器部分110中,且可产生和/或
利用raid信息。举例来说,raid电路系统可取决于特定实施方案而利用raid信息来提供数据镜像、数据奇偶校验、条带和其组合中的一或多者。raid电路系统可结合错误检测电路系统对数据进行操作以提供检查和恢复校正。更确切地说,错误检测电路系统可检测数据中的错误,且raid电路系统可恢复正确数据作为响应。在至少一个实施例中,由错误检测电路系统和raid电路系统提供的检查和恢复校正是对由错误校正电路系统提供的错误校正的补充。举例来说,如果从存储器装置读取的数据具有错误校正电路系统可校正的错误,那么错误校正电路系统可校正错误而无需raid电路系统进行进一步数据恢复。然而,如果错误校正电路系统不可校正的错误仍存在,则数据可由raid电路系统恢复。作为另一实例,错误可逃脱错误校正电路系统的检测,但会被错误检测电路系统检测到。在此实例中,基础数据可由raid电路系统恢复。
[0027]
后端部分119可包含媒体控制器和将存储器控制器100耦合到存储器装置126的物理(phy)层。如本文中所使用,术语“phy层”通常是指计算系统的开放系统互连(osi)模型中的物理层。phy层可为osi模型的第一(例如,最低)层并且可用以经由物理数据传输媒体传送数据。在一些实施例中,物理数据传输媒体可包含信道125-1、...、125-n。信道125可包含十六个引脚数据总线和两个引脚数据掩蔽反转(dmi)总线,以及其它可能总线。后端部分119可经由数据引脚与存储器装置126交换(例如,传输或接收)数据,且经由dmi引脚与存储器装置126交换错误检测信息、raid信息和/或错误校正信息。错误检测信息、raid信息和/或错误校正信息的交换可与数据交换同时进行。
[0028]
存储器装置126的实例为根据例如基于双倍数据速率(ddr)的存储器等协议操作的动态随机存取存储器(dram)。基于ddr的存储器的实例为低电力双倍数据速率(lpddrx),其可在本文中被称作lpddrx dram装置、lpddrx存储器等。lpddrx中的“x”是指数代协议中的任一个(例如,lpddr5)。
[0029]
在一些实施例中,存储器控制器100可包含管理单元134以初始化、配置和/或监测存储器控制器100的特性。管理单元134可包含用以管理带外数据和/或命令的i/o总线、用以执行与初始化、配置和/或监测存储器控制器的特性相关联的指令的管理单元控制器,以及用以存储与初始化、配置和/或监测存储器控制器100的特性相关联的数据的管理单元存储器。如本文中所使用,术语“带外”通常指代不同于网络的主要传输媒体的传输媒体。举例来说,带外数据和/或命令可为使用与用于在网络内传送数据的传输媒体不同的传输媒体传送到网络的数据和/或命令。
[0030]
图2为根据本公开的数个实施例的具有第一配置的存储器控制器200的功能框图。如图2中所展示,前端部分204可包含:接口206,其包含多个i/o通道202-1、202-2、...、202-m;以及接口管理电路系统208,其用以管理接口206。接口206的实例为外围组件高速互连(pcie)5.0接口。在一些实施例中,存储器控制器200可根据cxl协议经由接口206接收涉及高速缓存存储器212和存储器装置(例如,裸片)226-1、226-2、...、226-(n-1)、226-n中的至少一者的存取请求。接口206可通过i/o通道202从主机(例如,图1中展示的主机103)接收数据(例如,指示与存储器存取请求相关联的数据的第一信号)。接口管理电路系统208可使用cxl协议来管理接口206,且可被称为cxl接口管理电路系统208。cxl接口管理电路系统208可经由pcie接口206耦合到主机。
[0031]
数据管理电路系统210可耦合到接口管理电路系统208。数据管理电路系统210可
经配置以引起存储器操作的执行。数据管理电路系统210可包含错误检测电路系统211(例如,“crc”电路系统)和错误校正电路系统216中的至少一个。错误检测电路系统211可经配置以对数据执行错误检测操作。举例来说,错误检测电路系统211可经配置以产生由对从接口管理电路系统208接收到的数据进行代数计算产生的校验值且将校验值传输到高速缓存存储器212、缓冲器213和媒体控制电路系统220中的至少一者。校验值可被称为crc数据或错误检测数据。
[0032]
在至少一个实施例中,错误检测电路系统经配置以在通过错误校正电路系统216对数据进行高速缓存和/或操作之前对从接口管理电路系统接收到的数据执行错误检测操作。错误检测操作的另一实例为产生由对从媒体控制电路系统接收到的数据进行代数计算产生的校验值,以及将所述校验值与从媒体控制电路系统220接收到的校验值进行比较以确定数据是否包含错误(例如,两个校验值是否不相等)。
[0033]
数据管理电路系统210可包含高速缓存存储器(高速缓存器)212以存储与存储器操作的执行相关联的数据、错误检测信息、错误校正信息、raid信息和/或元数据。高速缓存存储器212的实例为包含多个高速缓存线的三十二(32)路组相联高速缓存存储器。高速缓存线大小可等于或大于存储器控制器200的存取粒度(例如,用于cxl协议的64字节)。举例来说,每一高速缓存线可包含256个字节的数据。在另一实例中,每一高速缓存线可包含512个字节的数据。cxl存储器系统的读取和写入请求的大小可为64字节。因此,高速缓存存储器212中的数据项可具有64字节的数据。每一高速缓存线可包括256个字节。因此,多个64字节请求可存储在每一高速缓存线中。响应于来自主机的请求,存储器控制器200可将256个字节的数据写入到存储器装置226。在一些实施例中,256字节的数据可写入64字节的块中。使用高速缓存存储器212存储与读取操作或写入操作相关联的数据可增加存取数据的速度和/或效率,这是因为高速缓存存储器212可预取数据且在高速缓存器未中的情况下将数据存储于多个64字节块中。代替搜索独立存储器装置,可从高速缓存存储器212读取数据。与在存储器系统必须在存取数据之前搜索数据的情况下将使用的时间和能量相比,可使用较少的时间和能量来存取所预取的数据。
[0034]
然而,高速缓存数据和存储器装置数据(例如,存储于存储器装置226中)可随时间而不同。举例来说,高速缓存数据和存储器装置数据可取决于所采用的高速缓存写入策略的类型而不同。举例来说,如本文中详述的控制器可经配置以根据写回高速缓存器写入策略管理高速缓存器。使用写回高速缓存器写入策略可使得高速缓存数据(例如,如由页面重写标志位识别)不同于存储器装置数据。
[0035]
可根据写回高速缓存器写入策略执行高速缓存器写回以调和高速缓存数据与存储器装置数据。然而,高速缓存器写回的执行虽然通常有效地解决高速缓存数据与存储器装置数据之间的任何差异,但可产生降低的性能。性能的损失可至少部分地归因于存储器操作的数量和/或与高速缓存器写回的执行相关联的数据量。
[0036]
举例来说,raid电路系统215可实施raid方案以准许通过读取存储器系统的所有构成芯片实现损坏芯片的数据恢复。采用raid方案的方法可将数据和对应奇偶校验数据存储于存储器装置226上。因此,采用raid方案的方法可使得数据和对应奇偶校验数据两者在高速缓存器写回的情况下从存储器装置226提取。举例来说,可在高速缓存器写回的情况下从存储器装置226提取“旧”数据和对应的“旧”奇偶校验数据两者,以准许“经更新”用户数
据和/或对应的“经更新”奇偶校验数据写入到存储器装置226。
[0037]
因此,此类方法可导致写入放大,其中对于一个主机写入操作,使至少两个存储器装置读取操作(一个用于待更新的“旧”用户数据且一个用于对应奇偶校验“旧”数据)和至少两个存储器装置写入操作(一个用于“经更新”用户数据且一个用于对应“经更新”奇偶校验数据)产生至少为4的写入放大因数。也就是说,此类方法可至少在从存储器装置提取“旧”用户数据和对应“旧”奇偶校验数据期间降低存储器子系统的性能。性能降级可能是不合需要的,尤其是在关键应用中和/或在存储器性能的要求非常高的应用中。
[0038]
如本文中详述,本公开的各方面通过在不存在从存储器装置提取“旧”数据的情况下从存储器装置(例如,多个存储器装置226中的存储器装置)提取“旧”奇偶校验数据来解决以上及其它不足。因此,与从存储器装置(例如,存储器装置226)提取“旧”用户数据及对应“旧”奇偶校验数据两者的其它方法相比,任何写入放大及对应性能降级可减少(例如,减少25%)。
[0039]
数据管理电路系统210可包含缓冲器213以存储数据、错误检测信息、错误校正信息、raid信息和/或由数据管理电路系统210的另一组件(例如,错误检测电路系统211、错误校正电路系统216和raid电路系统215)对其进行操作的元数据。缓冲器213可允许例如在数据管理电路系统210的另一组件繁忙时临时存储信息。在一些实施例中,高速缓存存储器212可用于临时存储数据,且缓冲器213可用于临时存储与数据相关联的其它信息,例如错误检测信息、错误校正信息、raid信息和/或元数据。
[0040]
如图2中所展示,数据管理电路系统210可包含经配置以对数据执行错误校正操作(例如,对数据进行ecc编码和/或对数据进行ecc解码)的错误校正电路系统216-1、216-2,以及经配置以对数据执行raid操作的raid电路系统215。错误校正电路系统216可耦合到高速缓存器212、缓冲器213和/或raid电路系统215中的任一者。
[0041]
尽管示出个别(即,单一)高速缓存器212,但实施例不限于此。实施例可包含数据管理电路系统210中的仅一个高速缓存器212(如图2中所示出)或多个高速缓存器(例如,如图3中所示出的两个高速缓存器)。类似地,虽然示出了两个错误校正电路216,但是实施例不限于此。实施例可包含数据管理电路系统210中的仅一个错误校正电路216或多于两个错误校正电路216。在至少一个实施例中,存储器控制器200可包含相等数量的错误校正电路216-1、216-2作为媒体控制器221-1、221-2。在至少一个实施例中,数据可在写入到存储器装置226之前由错误检测电路系统211、raid电路系统215和/或错误校正电路系统216保护。
[0042]
数据管理电路系统210可包含高速缓存存储器212和耦合在接口管理电路系统208与raid电路系统215和/或错误校正电路系统216之间的缓冲器213。更确切地说,高速缓存存储器212和缓冲器213可耦合在接口管理电路系统208与raid电路系统215之间。错误检测电路的数量和/或错误校正电路的数量可等于phy存储器接口224-1、224-2、...、225-(n-1)、225-n的数量。在此类实施例中,错误校正电路、错误检测电路和存储器装置之间的相关性为1∶1∶1。但如图2中所示出的配置等其它配置是可能的。
[0043]
如图2中所示,存储器控制器200可包含后端部分219,所述后端部分包含耦合到数据管理电路系统210的媒体控制电路系统220。媒体控制电路系统220可包含媒体控制器221-1、221-2。后端部分219可包含具有phy存储器接口224-1、224-2、...、224-(n-1)、224-n的物理(phy)层222。每一物理接口224经配置以耦合到相应存储器装置226。
[0044]
phy层222可为lpddrx存储器接口。phy存储器接口224中的每一者可包含相应的数据引脚227和dmi引脚229。举例来说,每一phy存储器接口224可包含十六个数据引脚227“[15∶0]”及两个dmi引脚229“[1∶0]”。媒体控制电路系统220可经配置以经由数据引脚227与相应存储器装置226交换数据。媒体控制电路系统220可经配置以经由dmi引脚229交换错误校正信息、错误检测信息、raid信息和/或元数据,而非经由数据引脚227交换此类信息。dmi引脚229可通过设置模式寄存器提供多个功能,例如数据掩蔽、数据总线转位和用于读取操作的奇偶校验。dmi总线使用双向信号。在一些情况下,数据的每一经传送字节具有经由dmi引脚229发送以用于数据的选择的对应信号。在至少一个实施例中,数据可与错误校正信息、raid信息和/或错误检测信息同时交换。举例来说,给定数量的数据(例如,64字节的数据)可经由数据引脚227交换(传输或接收),而给定数量的错误检测信息(和元数据)和/或错误校正信息的位经由dmi引脚229交换。此类实施例减少dq总线上用于传送错误校正信息、错误检测信息、raid信息和/或元数据的开销。
[0045]
后端部分219可将phy层部分222耦合到存储器装置226-1、226-2、...、226-(n-1)、226-n的存储器排组230-1、230-2、...、230-(n-1)、230-n。存储器装置226各自包含至少一个存储器单元阵列。在一些实施例中,存储器装置226可为不同类型的存储器。媒体控制电路系统220可经配置以控制至少两个不同类型的存储器。举例来说,存储器装置226-1、226-2可为基于ddr的存储器,例如lpddrx存储器,以及根据第一协议操作的其它类型的基于ddr的存储器,且存储器装置226-(n-1)、226-n可为基于ddr的存储器,例如lpddrx存储器,以及根据不同于第一协议的第二协议操作的其它类型的ddr存储器。在此实例中,第一媒体控制器221-1可经配置以根据第一协议控制存储器装置226-1、226-2的第一子集,且第二媒体控制器221-2可经配置以根据第二协议控制存储器装置226-(n-1)、226-n的第二子集。在特定实例中,存储器装置226-1、226-2可具有机载错误校正电路系统。尽管未具体示出,但是对于一些实施例,媒体控制器电路系统220可包含单个媒体控制器221。
[0046]
如本文中详述,在一些情况下,例如raid电路系统215的数据管理电路系统210可接收或传输信号(例如,第二信号)以将数据高速缓存于高速缓存器中的第一位置中,且可接收或传输信号(例如,第三信号)以将数据高速缓存于高速缓存器中的第二位置中。举例来说,高速缓存器的第二位置中的数据可为高速缓存器的第一位置中高速缓存的数据的相同副本,以促进本文中的各种方面。
[0047]
如本文中详述,在一些实例中,可基本上在高速缓存器中的第二位置中高速缓存数据的同时在高速缓存器中的第一位置中高速缓存数据。如本文所使用,术语“基本上”意指特性不需要是绝对的,而是足够接近以便实现所述特性的优点。举例来说,“基本上同时”不限于绝对同时执行的操作并且可包含意在同时但由于制造限制而可能并不正好同时的同时。举例来说,由于可由各种接口(例如,lpddr5与pcie)显现的读取/写入延迟,媒体控制器和/或例如“基本上同时”利用的raid控制器215的其它组件可能不在精确的同一时间开始或结束。举例来说,可利用存储器控制器以使得其在同一时间将数据写入到存储器装置而不考虑媒体控制器中的一个是否在其它媒体控制器之前开始或终止。
[0048]
存储器控制器200可包含管理单元234,所述管理单元经配置以初始化、配置和/或监测存储器控制器200的特性。在一些实施例中,管理单元234包含系统管理(sm)总线238。sm总线238可管理带外数据和/或命令。sm总线238可为串行存在检测的部分。在一些实施例
中,sm总线238可为出于轻量通信的目的的单端简单双线总线。管理单元234可包含cpu子系统240,所述cpu子系统可充当管理单元的控制器以执行与初始化、配置和/或监测存储器控制器200的特性相关联的指令。管理单元234可包含混杂电路系统242,例如存储与管理和/或监测存储器控制器200的特性相关联的代码和/或数据的本地存储器。管理单元234的端点可暴露于主机系统(例如,图1中展示的主机103)以管理数据。在一些实施例中,由管理单元234监测的特性可包含供应到存储器控制器200的电压和/或由外部传感器测量的温度。管理单元234可包含互连件236,例如高级高性能总线(ahb)以耦合管理单元234的不同组件。
[0049]
管理单元234可包含用以管理带内数据(例如,经由网络(例如,局域网(lan))内的主传输媒体传送的数据)的电路系统。在一些实施例中,cpu子系统240可为满足联合测试动作小组(jtag)标准且根据内部集成电路(i2c或i3c)协议和辅助i/o电路系统操作的控制器。jtag一般是指用于在制造之后验证设计和测试印刷电路板的行业标准。i2c通常是指用于双线接口以连接如同微控制器、i/o接口和嵌入系统中的其它类似外围设备等低速装置的串行协议。在一些实施例中,辅助i/o电路系统可将管理单元234耦合到存储器控制器200。此外,用于操作管理单元的固件可存储在混杂电路系统242中。在一些实施例中,混杂电路系统242可为快闪存储器,例如快闪nor存储器或其它持久性快闪存储器装置。
[0050]
图3为根据本公开的数个实施例的具有第二配置的存储器控制器300的功能框图。图3类似于图2,不同之处在于其包含呈第一高速缓存器312-1和第二高速缓存器312-2形式的额外高速缓存器和呈数据管理电路系统310中的安全引擎314形式的额外电路系统。
[0051]
安全引擎314还可被称作加密电路系统314。加密电路系统314可耦合在错误检测电路系统311与raid电路系统315之间。加密电路系统314可经配置以在将数据存储于存储器装置326或高速缓存存储器312中之前对数据进行加密和/或在从存储器装置326或高速缓存存储器312读取加密数据之后对数据进行解密。加密电路系统314的例子为高级加密标准(aes)电路系统。然而,在一些实施例中,可在不包含加密电路系统(例如,类似于图2)的情况下提供存储器控制器300。
[0052]
存储器控制器300可包含前端部分304、数据管理电路系统310和后端部分319。前端部分304可包含:接口306,其具有多个i/o通道302-1、302-2、...、302-m;以及接口管理电路系统308,其用以管理接口306。
[0053]
数据管理电路系统310可包含呈第一高速缓存器312-1和第二高速缓存器312-2形式的高速缓存存储器(高速缓存器)312,以及呈第一缓冲器313-1和第二缓冲器313-2形式的缓冲器313,所述高速缓存器和缓冲器耦合于错误检测电路系统311与raid电路系统315和/或错误校正电路系统316-1、316-2之间。在一些实施例中,第一高速缓存器312-1可与第二高速缓存器312-2为相同类型的高速缓存器。举例来说,在一些实施例中,第一高速缓存器312-1和第二高速缓存器312-2各自为组相联高速缓存器,例如包含多个高速缓存线的三十二(32)路组相联高速缓存存储器。第一高速缓存器312-1的高速缓存线大小和第二高速缓存器312-2的高速缓存线大小可相等。第一高速缓存器312-1的高速缓存线大小和第二高速缓存器312-2的高速缓存线大小可等于或大于存储器控制器300存取粒度(例如,用于cxl协议的64个字节)。因而,多个高速缓存线中的每一高速缓存线的大小可等于或大于存储器控制器存取粒度。举例来说,每一高速缓存线可包含256个字节的数据以及其它可能性。
[0054]
在一些实施例中,第一高速缓存器312-1和第二高速缓存器312-2中的每一者可为相同大小。使第一高速缓存器312-1与第二高速缓存器312-2的大小相同可促进本文中的方面,例如准许存储在第一高速缓存器312-1中的第一位置和第二高速缓存器312-2中的第二位置处的数据高速缓存于第一高速缓存器312-1和第二高速缓存器312-2中的每一者中的相同相应位置处。
[0055]
在一些实施例中,数据可存储在与第二高速缓存器312-2中的第二位置具有相同逻辑地址、相同物理地址或这两者的第一高速缓存器312-1中的第一位置处,其中数据的副本存储在所述第二位置处。举例来说,在一些实施例中,第一高速缓存器312-1中的第一位置可具有与第二高速缓存器312-2中的第二位置的对应物理地址相同的物理地址。对应地址是指与另一地址,如不同高速缓存器中的另一地址相同的地址(例如,具有相同的索引/标识符等)。类似地,在一些实施例中,第一高速缓存器312-1中的第一位置可具有与第二高速缓存器312-2中的第二位置的对应逻辑地址相同的逻辑地址。然而,在一些实施例中,第一高速缓存器312-1和第二高速缓存器312-2可为不同大小和/或偏移或其它机构可用以将数据和数据的副本存储在第一高速缓存器312-1和第二高速缓存器312-2中的不同相应位置(例如,不同物理地址、不同逻辑地址或这两者)处。
[0056]
后端部分319可包含媒体控制电路系统320和phy层322。媒体控制电路系统320可包含媒体控制器321-1、321-2。phy层322可包含phy存储器接口324-1、324-2、...、324-(n-1)、324-n,所述phy存储器接口经配置以经由信道325-1、325-2、...、325-(n-1)、325-n耦合到存储器装置326-1、326-2、...、326-(n-1)、326-n的存储器排组230-1、230-2、...、230-(n-1)、230-n。phy存储器接口324中的每一者可包含相应的数据引脚327和dmi引脚329。存储器控制器300可包含管理单元334,所述管理单元包含互连件336、sm总线338、cpu子系统340和混杂电路系统342。
[0057]
在一些实施例中,raid电路系统315和/或错误检测电路系统311(独立地或共同地)可为经配置以管理来自存储器装置326的读取操作期间的检查和恢复算法的有限状态机。raid电路系统315可经配置以在写入操作期间对存储器装置326执行读取-修改-写入(例如,以便根据所要raid算法写入数据)。当执行用于所要raid算法(例如,条带)的数据的管理时,错误检测电路系统311和raid电路系统315可共同地操作。在需要raid层级校正的错误的情况下,raid电路系统315可被激活且对数据进行操作,潜在地利用存储器装置326的额外存取来进行必要的校正。
[0058]
在一些实施例中,raid电路系统315可针对每一存储器装置326个别地实施所要raid算法。举例来说,可跨越个别存储器装置326的排组330而非跨越多个存储器装置326对数据进行条带化。在一些实施例中,raid电路系统315可跨越多个信道325针对多个存储器装置326条带数据。在此类实施例中,raid系统电路315可基本上同时驱动多个信道325。每一媒体控制器321可独立于其它媒体控制器321执行命令。相比于其它方法(例如,例如,采用低电力芯片终止(lpck)架构的那些),此raid架构可关于写入到存储器装置326的数据量和数据写入到存储器装置326的时间为存储器系统提供更多灵活性。在一些情况下,校验值和奇偶校验数据将与数据(用户数据)一起存储在与用户数据相同的dram行内的块中的存储器装置326中。
[0059]
图4为本公开的数个实施例的功能流程图。如图4中所示出,可在例如主机403、高
速缓存器412、raid电路系统415和裸片426等各种组件之间传输信号。
[0060]
举例来说,接口(例如,如图2中所示出的接口206)可通过i/o通道(例如,如图2中所示出的i/o通道202)从主机接收数据(例如,接收指示与存储器存取请求相关联的数据的第一信号)。指示由主机请求的数据(例如,响应于从主机接收到读取命令)的信号(例如,第一信号)可被传输到高速缓存器412,如由441-1表示。在高速缓存器未中的情况下,可将来自主机的数据请求传输到raid电路系统415,如由444-2表示,和/或传输到裸片426,如由443-3表示。以此方式,主机可执行与高速缓存器412相关联的存储器存取请求,且在高速缓存器未中的情况下利用裸片426。
[0061]
如所提到,本文中的各种实施例可涉及“独立磁盘冗余阵列”(raid)操作。raid操作可涉及跨越多个裸片(例如,不同信道)将数据(例如,用户数据或主机数据)连同错误恢复数据(例如,奇偶校验数据)以数个“条带”的形式存储在一或多个专用芯片中。如本文所使用,条带可指主机数据集合和基于主机数据集合产生的错误恢复数据。换句话说,raid条带可包含各种块,例如用户数据块(udb)和奇偶校验数据块(pdb)。udb和pdb的大小可相同或不同。举例来说,在一些实施例中,udb和pdb可为相同大小(例如,64字节)以及其它可能性。可跨越裸片426的页采取一定数量的条带(raid条带),且因此促进本文中的方面,例如准许可执行利用raid条带的raid操作。在一些实施例中,可跨越不同信道分布条带中的数据。因此,读取对应于条带的数据可涉及存取多个信道。
[0062]
可从裸片426提取数据,且在此类情况下,可将指示数据的信号(例如,第二信号和第三信号)传输到高速缓存器412,如由444-4和444-5表示。举例来说,在涉及高速缓存器412的高速缓存器未中的情况下,指示数据的信号可从裸片426传输到主机403和/或传输到高速缓存器412。举例来说,指示数据的第二信号可从裸片426传输到高速缓存器412的第一位置中,且指示数据,如数据的副本的第三信号可从裸片426传输到高速缓存器412中的第二位置。如所提及,可与个别高速缓存器或与多个单独且相异的高速缓存器(例如,具有相应且相异的高速缓存线)一起使用将数据存储在第一位置处且将数据的副本存储在第二位置处的此类“双重”高速缓存方法。
[0063]
在一些实施例中,高速缓存于高速缓存器的第二位置中的数据可为高速缓存于高速缓存器的第一位置中的数据的相同副本。相同是指具有相同大小且含有相同数据的数据集的两个实例。举例来说,高速缓存线中的所有数据或预期包含于高速缓存线中的所有数据可复制且存储在高速缓存器的第二位置处作为相同副本。
[0064]
如444-6所表示,指示数据的信号可被传输到主机403。主机403可继续传输指示存储器存取请求的信号(例如,另一信号),且可将其它数据(例如,经更新用户数据)写入到高速缓存器412。举例来说,指示用以在高速缓存器412中写入数据的额外存储器请求的信号(例如,如由444-7表示的第四信号)可在不存在对高速缓存器中的第二位置处的数据的修改(例如,不发射预期修改(擦除、写入等)数据的信号)的情况下传输,且可在不存在指示额外存储器存取请求的信号传输到裸片426的情况下发生。第四信号444-7可表示一或多个写入,例如与高速缓存器填充操作期间(例如,当高速缓存器412中的高速缓存线为空/不满时)发生的高速缓存器命中和/或写入一起发生的那些写入。高速缓存器412中的第二位置处的数据的复制可保持不变,且进而提供改进的raid信息管理,如本文中详述,但典型的高速缓存操作可利用其它高速缓存位置(例如,第一高速缓存器中的另一位置)发生。
[0065]
主机403可继续传输指示存储器存取请求的信号(例如,另一信号),且可将其它数据(例如,经更新用户数据)写入到高速缓存器412,例如直到高速缓存器412的高速缓存逐出为止。如由446-1表示的信号可传输以将数据(例如,经更新用户数据(udbo))写入到高速缓存器412,且作为响应,可发生高速缓存逐出。响应于高速缓存逐出的出现,数据可从高速缓存器412写入到raid电路系统415,如由446-2表示。信号可指示来自主机403的任何经更新数据、指示对应于高速缓存器412中的任何经修改数据的经更新数据,例如由与经更新数据相关联的“页面重写标志”位所识别,和/或指示高速缓存器412中的所有数据。
[0066]
另外,如由446-3表示的信号可从raid电路系统415传输到裸片426以从裸片426读取奇偶校验数据(“旧”奇偶校验数据)。如所提到,用以从裸片426读取奇偶校验数据的信号可为作为高速缓存器写回的部分传输到裸片426的唯一信号。以此方式,可减轻任何写入放大,如本文中详述。响应于信号446-3的接收,指示奇偶校验数据(“旧”奇偶校验数据)的信号可从裸片426传输到raid电路系统415,如446-4所表示。
[0067]
raid电路系统和/或其它电路系统可执行操作以确定经更新奇偶校验数据,如由446-5表示。可基于“旧”奇偶校验数据、来自第二高速缓存器中的第二位置的高速缓存数据(例如,数据的副本)和其它数据(例如,经更新用户数据(udbo))来确定经更新奇偶校验数据。所述操作可为raid操作。举例来说,可通过对奇偶校验数据、高速缓存数据和其它数据进行xor来执行raid操作以确定经更新奇偶校验数据,所述经更新奇偶校验数据可准许执行恢复操作以恢复其它数据。以此方式,可利用来自高速缓存器412的高速缓存数据来执行raid操作,且进而避免在其它方法中固有的任何写入放大,所述其它方法针对裸片426采用读取/写入请求以获得数据(例如,“旧”用户数据)。
[0068]
在一些实施例中,可传输信号以将其它数据(“经更新”用户数据)存储在存储器装置中。举例来说,如在446-6处所识别,可将经更新数据(“新udbo)写回到裸片426。在一些实施例中,可传输指示经更新奇偶校验数据的信号以将经更新(即,新)奇偶校验数据存储在例如裸片426的存储器装置中,如由446-7表示。
[0069]
图5为根据本公开的数个实施例的用于管理raid信息的方法的流程图。本文中所描述的方法(例如,相对于图5-6)可由可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合的处理逻辑执行。尽管以特定顺序或次序展示,但除非另外规定,否则可修改过程的次序。因此,所示出的实施例应仅理解为实例,且所示出的过程可以不同次序执行,且一些过程可并行地执行。另外,在各种实施例中可省略一或多个过程。因此,并非每一实施例中都需要所有操作。其它过程流程是可能的。
[0070]
在框550处,方法可包含通过耦合到高速缓存器和存储器装置的存储器控制器的接口管理电路系统从主机接收指示与存储器存取请求相关联的数据的第一信号。举例来说,方法可包含通过存储器控制器的cxl接口管理电路系统从主机接收数据。
[0071]
在框552处,方法可包含通过存储器控制器传输第二信号以将数据高速缓存于高速缓存器中的第一位置中。在框554处,方法可包含通过存储器控制器传输指示将数据高速缓存于高速缓存器中的第二位置中的第三信号。在一些实施例中,高速缓存于高速缓存器的第二位置中的数据可为高速缓存于高速缓存器的第一位置中的数据的相同副本。
[0072]
在一些实施例中,高速缓存器为个别高速缓存器。在一些实施例中,第一位置可与
个别高速缓存器的第一逻辑部分相关联,且第二位置可与个别高速缓存器的不同于第一逻辑部分的第二逻辑部分相关联。在一些实施例中,高速缓存器包含第一高速缓存器以及物理上不同于第一高速缓存器的第二高速缓存器。在一些实施例中,第一位置可在第一高速缓存器中且第二位置可在第二高速缓存器中。
[0073]
在一些实施例中,方法可包含在不存在对高速缓存器中的第二位置处的数据的修改的情况下,传输指示与额外存储器存取请求(例如,写入请求)相关联的额外数据的第四信号以将额外数据高速缓存于高速缓存器中,如本文中详述。在一些实施例中,方法可包含在不存在对高速缓存器中的第二位置处的数据的修改的情况下,传输指示额外存储器存取请求的第四信号以读取高速缓存器中的数据,如本文中详述。在一些实施例中,方法可包含在不将指示额外存储器存取请求的信号传输到存储器装置的情况下传输第四信号。
[0074]
在一些实施例中,方法可包含:接收指示与另一存储器存取请求相关联的其它数据的另一信号;传输与读取操作相关联的信号以读取第二位置处的高速缓存数据;传输信号以读取存储于存储器装置中的奇偶校验数据。在一些实施例中,方法可包含执行操作以基于奇偶校验数据、从高速缓存器中的第二位置读取的高速缓存数据和其它数据确定经更新奇偶校验数据。在一些实施例中,方法可包含传输信号以将经更新奇偶校验数据存储在存储器装置中;以及传输信号以将其它数据存储在存储器装置中。在一些实施例中,可通过数据管理电路系统对数据执行raid恢复操作。
[0075]
图6为根据本公开的数个实施例的用于管理raid信息的方法的流程图。在框660处,方法可包含通过存储器控制器的接口管理电路系统从主机接收指示与存储器存取请求相关联的数据的第一信号,所述存储器控制器经配置以用于非确定性存储器协议,例如计算快速链接(cxl)协议或其它类型的协议,例如确定性存储器协议。在框662处,方法可包含将指示数据的第二信号传输到第一高速缓存器中的第一位置。在框664处,方法可包含将指示数据的第三信号传输到第二高速缓存器中的第二位置。
[0076]
在一些实施例中,方法可包含在传输第三信号的同时传输第二信号。举例来说,在具有第一高速缓存器和单独且相异的第二高速缓存器的实施例中,方法可包含基本上同时将单独信号传输到第一高速缓存器和第二高速缓存器中的每一者。
[0077]
在一些实施例中,方法可包含将指示与额外存储器请求相关联的额外数据的第四信号传输到第一高速缓存器以将额外数据高速缓存于第一高速缓存器中。在此类实施例中,在不将指示额外数据的信号传输到第二高速缓存器的情况下,可发生传输第四信号。以此方式,第二高速缓存器中的数据(例如,高速缓存于第一高速缓存器中的第一位置处的数据的复本)保持不变,且可用于执行raid操作,例如确定经更新奇偶校验数据,如本文中详述。举例来说,在一些实施例中,方法可包含从主机接收指示与存储器存取请求相关联的其它数据(除来自主机的与先前存储器存取请求相关联的数据之外)的另一信号,且响应于接收到所述另一信号,传输与读取操作相关联的信号以读取第二高速缓存器中的第二位置处的高速缓存数据。
[0078]
举例来说,响应于执行高速缓存逐出或在执行高速缓存逐出之前,可传输信号以读取第二位置(例如,第二高速缓存器中)处的高速缓存数据。举例来说,在一些实施例中,方法可包含对第一高速缓存器、第二高速缓存器或这两者执行高速缓存逐出操作。举例来说,方法可包含响应于从主机接收到指示与存储器存取请求相关联的其它数据的信号而执
行高速缓存逐出操作。
[0079]
在一些实施例中,方法可包含:传输与存储器存取请求相关联的信号以读取存储于存储器装置中的奇偶校验数据(例如,“旧”奇偶校验数据);以及执行操作以基于奇偶校验数据、来自第二高速缓存器中的第二位置的高速缓存数据和其它数据而确定经更新奇偶校验数据。在一些实施例中,方法可包含传输信号以将经更新奇偶校验数据存储在存储器装置中,以及传输信号以将其它数据存储在存储器装置中。
[0080]
尽管已在本文中示出并描述了具体实施例,但所属领域的一般技术人员应了解,经计算以实现相同结果的布置可取代所展示的具体实施例。本公开意图涵盖本公开的一或多个实施例的修改或变化形式。应理解,以上描述是以说明性方式而非限制性方式进行的。对于所属领域的技术人员而言,在审阅上述描述之后上述实施例的组合及本文中未具体描述的其它实施例将是显而易见的。本公开的一或多个实施例的范围包含使用以上结构和过程的其它应用。因此,本公开的一或多个实施例的范围应参考所附权利要求书以及此类权利要求被赋予的等效物的完整范围而确定。
[0081]
在前述具体实施方式中,出于精简本公开的目的而将一些特征一起分组在单个实施例中。本公开的此方法不应被理解为反映本公开的所公开实施例必须使用比每一权利要求中明确陈述的特征更多的特征的意图。实际上,如所附权利要求书所反映,本发明主题在于少于单个所公开实施例的所有特征。因此,以下权利要求特此并入于具体实施方式中,其中每项权利要求就其自身而言作为单独实施例。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表