CN107526687A - 多种配置的存储器系统及其操作方法 - Google Patents
多种配置的存储器系统及其操作方法 Download PDFInfo
- Publication number
- CN107526687A CN107526687A CN201710458491.8A CN201710458491A CN107526687A CN 107526687 A CN107526687 A CN 107526687A CN 201710458491 A CN201710458491 A CN 201710458491A CN 107526687 A CN107526687 A CN 107526687A
- Authority
- CN
- China
- Prior art keywords
- storage arrangement
- soc
- configuration file
- passages
- pcb board
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
- G06F12/0653—Configuration or reconfiguration with centralised address assignment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C17/00—Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards
- G11C17/14—Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards in which contents are determined by selectively establishing, breaking or modifying connecting links by permanently altering the state of coupling elements, e.g. PROM
- G11C17/16—Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards in which contents are determined by selectively establishing, breaking or modifying connecting links by permanently altering the state of coupling elements, e.g. PROM using electrically-fusible links
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1056—Simplification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明提供一种系统及其操作方法,该系统包括:片上系统(SOC)闪存控制器,其具有至少一个SOC通道;至少一个存储器装置,其与至少一个SOC通道联接;印刷电路板(PCB),其中SOC闪存控制器和至少一个存储器装置被安装在其上;闪存地址转换(FTL)地址转换器,其根据PCB板的PCB板配置文件和至少一个存储器装置的驱动器配置文件自动地管理至少一个存储器装置;以及熔丝,其存储至少部分地根据PCB板配置文件和驱动器配置文件的数据生成的开放数据平面(ODP)熔丝设置。
Description
其它申请的交叉引用
本申请要求于2016年6月16日提交的申请号为62/351,170的美国临时专利申请的优先权,其为所有目的通过引用并入本文。
技术领域
本公开的示例性实施例涉及一种系统,并且更特别地,涉及一种NAND布局配置的系统及其操作方法。
背景技术
计算机环境范例已经转变至可随时随地使用的普适计算系统。由于该事实,诸如移动电话、数码相机和笔记本电脑的便携式电子装置的使用已经快速增长。这些便携式电子装置通常使用具有存储器装置的系统,诸如数据存储装置。数据存储装置用作便携式电子装置的主存储器装置或辅助存储器装置。
因为使用存储器装置的数据存储装置不具有移动部件,所以它们提供优良的稳定性、耐久性、高信息访问速度和低功耗。具有这种优点的数据存储装置的示例包括通用串行总线(USB)存储器装置、具有各种接口的存储卡和固态驱动器/固态硬盘(SSD)。
SSD可以包括闪速存储器部件和SSD控制器。SSD控制器也可以被称为处理器,其包括将闪速存储器部件桥接到SSD输入/输出(I/O)接口的电子器件。SSD控制器可以包括可以执行诸如固件的功能部件的嵌入式处理器。SSD功能部件是特定于装置的,并且在大多数情况下可以被更新。
使用SSD NAND装置的系统需要相应的印刷电路板(PCB)和各种装载的NAND封装。该系统具有对NAND封装的片上系统(SOC)的配置的认可。
因此,仍然需要用于多种配置的系统及其操作方法。鉴于对提高性能和安全性的不断增加的需求,对于这些问题的解答越来越关键。一直在寻求对这些问题的解决方案,但是先前的进展没有教导或提出任何解决方案,因此,长期以来,对这些问题的解决方案已经难倒本领域的技术人员。
发明内容
本公开的实施例涉及一种具有多种配置的系统及其操作方法,其能够提高系统的性能和可靠性。
根据本发明的实施例,一种系统包括:片上系统(SOC)闪存控制器,其具有至少一个SOC通道;至少一个存储器装置,其与至少一个SOC通道联接;印刷电路板(PCB),其中SOC闪存控制器和至少一个存储器装置被安装在其上;闪存地址转换(FTL)地址转换器,其根据PCB板的PCB板配置文件和至少一个存储器装置的驱动器配置文件自动地管理至少一个存储器装置;以及熔丝(fuse),其存储至少部分地根据PCB板配置文件和驱动器配置文件的数据生成的开放数据平面(ODP)熔丝设置。
根据本发明的实施例,一种系统的操作方法包括:提供PCB板;将具有至少一个SOC通道的SOC闪存控制器安装在PCB板上;安装与至少一个SOC通道联接的至少一个存储器装置;通过FTL地址转换器根据PCB板的PCB板配置文件和至少一个存储器装置的驱动器配置文件来自动地管理至少一个存储器装置;以及至少部分地根据PCB板配置文件和驱动器配置文件的数据生成ODP熔丝设置。
附图说明
图1是示出根据本发明的实施例的系统的管理工具配置的顶层图。
图2是示出根据本发明的实施例的系统的NAND布局工具的流程图。
图3是示意性地示出根据本发明的实施例的系统的平衡NAND布局的图。
图4是示意性地示出根据本发明的实施例的系统的不平衡NAND布局的图。
图5是示意性地示出根据本发明的实施例的系统的平衡NAND布局的图。
图6是示意性地示出根据本发明的实施例的系统的不平衡NAND布局的图。
图7是示意性地示出根据本发明的实施例的系统的不平衡NAND布局的图。
图8是示出根据本发明的另一实施例的系统的操作方法的流程图。
具体实施方式
以下将参照附图更详细地描述各个实施例。然而,本发明可以以不同的形式实施,并且不应被解释为限于本文阐述的实施例。相反,提供这些实施例使得本公开将是彻底且完全的,并且将向本领域技术人员完全传达本发明的范围。在整个公开中,相同的附图标记在整个本发明的各个附图和实施例中表示相同的部件。
本发明可以以各种方式实施,其包括作为进程;设备;系统;物质的组成;实施在计算机可读存储介质上的计算机编程产品;和/或处理器,诸如适于执行存储在联接到处理器的存储器上和/或由联接到处理器的存储器提供的指令的处理器。在本说明书中,这些实施例或本发明可以采取的任何其它形式可以被称为技术。通常,公开的进程的步骤的顺序可以在本发明的范围内改变。除非另有说明,否则诸如被描述为适于执行任务的处理器或存储器的部件可以被实施为暂时适于在给定时间执行任务的一般部件或被制造为执行任务的特定部件。如本文使用的,术语“处理器”是指适于处理诸如计算机编程指令的数据的一个或多个装置、电路和/或处理核。
以下提供对本发明的一个或多个实施例的详细描述以及说明本发明的原理的附图。结合这些实施例描述本发明,但是本发明不限于任何实施例。本发明的范围仅由权利要求限制,并且本发明包括许多替代方案、变型和等同物。为了提供对本发明的透彻理解,在以下描述中阐述许多具体细节。为了示例的目的提供这些细节,并且在没有这些具体细节中的一些或全部的情况下,根据权利要求可以实现本发明。为了清楚的目的,未详细描述与本发明相关的技术领域中已知的技术材料,使得本发明不会被不必要地模糊。
系统可以包括SOC闪存控制器和诸如NAND封装的多个存储器装置,其中SOC闪存控制器和多个存储器装置可以被安装在PCB板上。NAND封装的类型可以多种多样。为了系统适当地运行,系统可能需要知道NAND封装的配置,并选择具有驱动器配置文件的相应驱动器和具有PCB配置文件的相应PCB。
为了满足客户容量需求和要求,对具有低于预期的数据保留和耐久性的NAND装置的使用可能需要PCB板和各种装载的NAND封装的混合。PCB板或装载的NAND封装中的每一个可以具有其相应的配置文件。系统中的固件可能需要知道从SOC到NAND封装的精确互连以及MUX是否被用于选择。在一些情形下,可以存在多达38个使用至少两种不同PCB板的这种配置。另外,可以存在至少两个可以具有不同配置(一个利用MUX)的开发板。
目前,系统程序可能仅具有少数配置,并且固件配置文件可以被手动创建。可以发现手动创建的配置文件存在效率低且容易出错的高风险。另外,因为固件中的驱动器和PCB板的配置文件可能难以构建,所以手动创建配置文件可能会限制系统的复杂性和灵活性。
本发明的实施例详细说明了在固件的构建进程中自动化NAND布局配置的管理的设备和操作方法,以便根据程序改变来简单且容易地调整固件。
构建进程可以包括创建识别PCB板和安装在所述PCB板上的NAND封装的驱动器配置文件。PCB板识别可以指定从SOC ASIC到NAND封装中的每一个的电连接。PCB板配置文件可以被创建以指定所述电连接。诸如NAND布局工具的固件构建中的工具可以使用驱动器配置文件和PCB板配置文件的信息来创建用于管理固件中的NAND封装的NAND管芯的数据,该管理可以被称为闪存地址转换(FTL)。
管理工具可以包括两个部分。首先,管理工具可以创建在制造期间使用的预期的一组NAND封装的配置文件,以确保组装进程是正确的。由于在制造期间系统可以包括多个NAND封装,因此也可以在组装进程中提供NAND封装的匹配配置文件。因此,组装进程可以验证配置文件和NAND封装以保证准确性。
其次,管理工具可以创建由FTL固件使用的物理地址映射的逻辑管芯数量以用于管理NAND封装。管理工具可以为特定驱动器创建特定的数据集,也可以为所有各个驱动器创建数据列表。根据SDD要求,数据的创建可以使固件专门为一个驱动器或一组驱动器构建。
图1是示出根据本发明的实施例的系统的管理工具配置的顶层图。
可以在图1中示出用于自动生成在地址映射中使用的FTL的NAND布局信息的进程。自动进程可以从定义指定PCB板以及安装在其上的NAND封装的类型和位置的驱动器配置文件开始。
例如,在图1中提供诸如240GB装置的多种驱动器配置文件。提供驱动器配置文件以用于在诸如PCB配置文件的板配置文件处定义。NAND布局工具可以使用驱动器配置文件和板配置文件来管理NAND封装和板之间的相关性,包括创建用于构建固件以及板与NAND封装之间的相关性的数据。映射结果也可以被输出为打印输出。
NAND布局工具可以创建用于构建固件的各种数据。创建的数据可以包括自动生成的文件,诸如以.c格式的封装数据和通道数据以及以.h格式的激活通道、每个通道的管芯的数量以及将FTL管芯数量转换为通道、管芯队列的宏。创建的数据文件还可以包括静态文件,诸如作为公共实施方式(public implementation)以.c格式自动生成的数据的访问器(accessor),以及用于公共标头以.h格式自动生成的数据的访问器原型。最后,创建的文件可以包括用于将数据存储在熔丝中的OTP熔丝数据。
由NAND布局工具创建的所有文件都可以是不限于.c或.h格式,并且配置文件可以被设置为多种类型。数据文件的细节可以在下面描述。
下面可以描述根据本发明的实施例的系统的驱动器配置的示例。
驱动器配置文件可以描述诸如每个NAND封装的位置的驱动器信息。例如,在位置A处,双开放数据平面(ODP)NAND封装可以被安装在其上。当诸如位置A、B或C的多个位置可用时,虽然其它类型的NAND封装可以被安装在不同的位置处,但是双ODP的相同类型的NAND封装可以被安装在位置B和C处。
在下述PCB板配置文件中,安装在特定位置处的NAND封装的类型需要与驱动器配置文件中定义的类型相匹配。例如,当安装在位置B处的NAND封装的类型被定义为双ODP类型时,安装在位置B处的NAND封装需要是双ODP NAND封装。如果安装在位置B处的NAND封装与配置文件不匹配,则PCB板不能正确地工作,在操作期间可能会发生错误。
以下可以描述根据本发明的实施例的系统的PCB板配置文件的示例。
在PCB板配置文件中,可扩展标记语言(XML)可以被用于定义包含PCB板信息的配置文件。NAND封装类型信息可以定义芯片使能端(CE)的数量、每个芯片使能端的逻辑单元号(LUN)以及装载的NAND封装的定位/位置。装载的NAND封装的位置可以表示一个或多于一个的NAND封装正在装载。PCB板信息可以定义SOC ASIC和NAND封装之间的互连。
PCB板配置文件可用于使用XML配置文件来实施定义NAND封装类型和PCB板。在PCB板配置文件中,每个SOC通道可以具有唯一的通道识别(ID),并且可以定义在NAND封装中连接到SOC通道的CE数量。每个NAND封装可以包括唯一的封装识别(ID)、装载位置(位置)以及到每个SOC通道的连接。任选地,MUX选择可以包括在每个NAND封装中,以指定MUX的选择输入设置来寻址SOC通道。位置信息可以在上述驱动器配置文件中定义。MUX可以将CE/数据引脚扩展到不同的NAND封装,允许更多的CE被连接到ASIC而不是ASIC支持。
PCB配置文件可以描述PCB板。例如,PCB板配置文件可以定义包括通道ID为0、1、2、3、4、5、6和7的多个SOC通道的配置。在通道的每一个中,描述四个NAND封装ID,NAND封装ID为0、1、2和3。NAND封装的每一个具有2个芯片使能端(CE)。NAND封装的位置可以被标识为A、B或C。在PCB配置文件中,“NAND通道id”定义NAND通道,诸如通道0或通道1。每个NAND通道可以连接到单独的SOC通道(不同的),以允许NAND封装由SOC通道共享。在MUX被包含在PCB布局中的情况下,“MUX选择”可以被用于定义NAND封装寻址哪个MUX选择输入。例如,4对1MUX被包括在具有MUX选择输入0、1、2或3的PCB板配置文件中。MUX选择输入0、1、2或3分别与NAND封装0、1、2或3连接。
可以被安装在诸如位置A、B或C的相应的位置上的NAND封装的类型可以被定义在驱动器配置中。
图2是示出根据本发明的实施例的系统的NAND布局工具的流程图。
诸如NAND布局工具的管理工具可以读入驱动器配置文件和PCB配置文件,并且使用图2中定义的流程来生成管理FTL NAND寻址的构建进程期间使用的固件代码。图2的流程图可以包括生成固件代码的构建进程中通常涉及的多个步骤,而在该进程中可能涉及可选步骤或附加步骤。
可以在步骤402中读取和解析驱动器配置文件。NAND布局工具可以读入驱动器配置文件,其中驱动器配置文件中的驱动器信息可以被解析和验证。驱动器信息的验证可以包括所需驱动器信息的验证,以确保构建进程所必需的所有驱动器信息都包含在驱动器配置文件中。验证还可以包括非重叠信息的验证,使得SOC通道或NAND封装的实体可以仅使用一次。如果实体的ID被重复,则相应的装置可能被错误地使用。
如果驱动器信息的验证是正确的,则在驱动器配置文件的驱动器信息中没有发现错误,NAND布局工具可以进行到流程图中的步骤404。如果驱动器信息的验证是不正确的,则在驱动器配置文件的驱动器信息中发现错误,NAND布局工具可以进行到流程图中的结束。固件的构建进程可以用错误消息结束,并且可以生成错误报告。
在步骤404中,可以读入并解析PCB板配置文件。NAND布局工具可以读入PCB板配置文件。可以解析和验证PCB板配置文件中的PCB板信息。PCB板信息的验证可以包括所需PCB板信息的验证,以确保构建进程所必需的所有PCB板信息都包含在PCB板配置文件中。验证还可以包括PCB板信息和驱动器信息的兼容性,以确保PCB板信息和驱动器信息互不矛盾。验证还可以包括非重叠信息的验证。
如果PCB板信息的验证是正确的,则在PCB板配置文件的PCB板信息中没有发现错误,NAND布局工具可以进行到流程图中的步骤406。如果PCB板信息的验证是不正确的,则在PCB板配置文件的PCB板信息中发现错误,NAND布局工具可以进行到流程图中的结束。固件的构建进程可以用错误消息结束,并且可以生成错误报告。
在步骤406中,可以构建预期的封装信息。预期的封装信息可以包括实际安装在系统中的PCB板上的每个封装的列表。可以创建实际安装的每个封装的列表,以记录预期的封装信息,诸如NAND封装类型、CE可用性、NAND封装的管芯的计数以及NAND封装到SOC通道的映射。
在步骤408中,可以构建SOC通道与NAND封装通道之间的关联。NAND布局工具首先可以确定构建进程中使用的最小CE映射。由于装载的NAND封装可使用可从SOC通道获取的较少的CE,因此最小CE映射的确定对于消除冗余映射信息可能是必需的。然后,NAND布局工具可以确定每个SOC通道的管芯的数量。每个SOC通道的管芯的数量可以相同或可以不同。在初始的实施例中,所有通道都可以被强制为每个SOC通道具有相同数量的管芯,然而,CE与管芯的关联可能不同。
在步骤410中,NAND布局工具可以计算管芯映射。首先,NAND布局工具可以调查每个SOC通道的映射,并确定适当的转换方法。转换方法可以包括确定SOC通道、MUX、CE的数量以及每个CE的平衡管芯。每个CE的管芯的平衡可能发生在管芯的一致功率为2时,这可以允许固件使用位掩码和移位(shift)以执行用于将FTL逻辑管芯转换为物理通道、MUX、CE和LUN的FTL地址转换。在该情况下,NAND布局工具可以生成使用位操作必需的数据和代码。可以根据系统中是否呈现MUX来选择不同的位掩码和移位。当系统中不呈现MUX时,不同的位掩码和移位可以被调整用于减少固件指令以提高系统性能。
在步骤412中,NAND布局工具可以根据从驱动器配置文件和PCB板配置文件解析的信息生成固件代码。生成的固件代码可用于定义构建进程期间FTL地址转换所需的常数和等式。生成的固件代码可以是特定于一个驱动器,或可以包含所有驱动器所需的整个数据集。NAND布局工具没有定义FTL地址转换,相反,NAND布局工具可以为驱动器选择正确的转换类型,其中可以根据使用最佳性能作为优先级的选择给予驱动器一组转换以从中选择。用于选择的该组转换可以是预先确定的。进一步地,NAND布局工具可以根据选择的正确转换类型为每个通道生成映射转换。可以在制造期间生成并使用在每个SOC通道上定义预期的NAND的数据集以用于验证。
最后,可以根据PCB板配置文件和驱动器配置文件的所有数据以及生成的固件代码,在步骤414中生成ODP熔丝设置。ODP熔丝设置可能会被熔断在熔丝中,其中熔丝可以用于将NAND布局提供给ASIC中的ROM以辅助启动进程。因此,ROM可以被用在所有产品容量上并且用于整个NAND产品。
图3是示意性地示出根据本发明的实施例的系统的平衡NAND布局的图。NAND布局500包括SOC闪存控制器502、诸如第一ODP 504和第二ODP 506的两个存储器装置。NAND布局500包括四个SOC通道,每个通道具有两个芯片使能端CE,每个CE具有两个LUN。ODP的每一个可以具有对应于四对LUN0和LUN1的四个芯片使能端。NAND布局500是平衡布局,其包括2个通道的常数和功率、CE、每个CE的LUN,并且每个ODP的LUN的数量相同。
NAND布局500不对每个SOC通道使用MUX。每个SOC通道的CE可以直接连接到相应的LUN以用于选择。例如,SOC通道0(CH0)的CE1可以直接连接到与CH0的CE1相对应的LUN0和LUN1,或SOC通道2(CH2)的CE0可以直接连接到与CH2的CE0相对应的LUN0和LUN1。
图4是示意性地示出根据本发明的实施例的系统的不平衡NAND布局的图。NAND布局600包括SOC闪存控制器602以及诸如第一ODP604、第二ODP 606和第三ODP 608的三个存储器装置。NAND布局600包括五个SOC通道。除SOC通道4(CH4)外,每个通道具有两个芯片使能端,每个CE具有两个LUN。CH4具有四个芯片使能端,其CE的每一个可以连接到第三ODP608的芯片使能端中的一个。由于CH4是连接到第三ODP 608的唯一SOC通道,因此CH4的所有四个CE可以与第三ODP 608的四个CE连接,并进一步连接到第三ODP 608的四个LUN0。
NAND布局600不对每个SOC通道LUN使用MUX。第三ODP 608只有4个LUN,而其余的ODP具有由来自相应SOC通道的CE控制的8个LUN。NAND布局600是不平衡布局,其不包括2个通道的常数和功率,诸如5个通道,并且每个ODP中使用的LUN的数量不同。
图5是示意性地示出根据本发明的实施例的系统的平衡NAND布局的图。NAND布局700包括SOC闪存控制器702以及诸如第一ODP704、第二ODP 706、第三ODP 708和第四ODP710的四个存储器装置。NAND布局700包括两个SOC通道,每个SOC通道具有两个芯片使能端。每个SOC通道具有相应的MUX以用于通过使用两个CE来分别选择四个ODP,诸如用于SOC通道0(CH0)的MUX 712和用于SOC通道1(CH1)的MUX 714。在每个MUX中,诸如M0和M1的选择引脚可以用于配置与每个SOC通道对应的ODP的选择。
例如,CH0具有相应的MUX 712。CH0具有两个芯片使能端CE0和CE1,以及MUX选择引脚M0和M1。当选择针脚{M0,M1}分别为“00”、“01”、“10”、“11”时,MUX选择引脚M0和M1可以被配置用于选择第一ODP 704、第二ODP 706、第三ODP 708和第四ODP 710。SOC通道的每个CE可以连接到对于每个选择的LUN,使得CH0的CE1可以根据每个选择分别连接到第一ODP704、第二ODP 706、第三ODP708或第四ODP 710的CH0的LUN0。NAND布局700是平衡布局,其包括2个通道的常数和功率、CE、每个CE的LUN,并且ODP的每一个具有相同数量的LUN。
NAND布局700包括用于每个SOC通道的MUX。每个SOC通道的CE可以连接到由MUX选择的其相应的LUN。例如,当MUX 712选择为“00”时,CH0的CE1可以连接到与第一ODP 704的CE1相对应的CH0的LUN0,或当MUX 714选择为“10”时,CH1的CE0可以连接到与第三ODP 708的CE0相对应的CH1的LUN0。
图6是示意性地示出根据本发明的实施例的系统的不平衡NAND布局的图。NAND布局800包括SOC闪存控制器802以及诸如第一ODP804、第二ODP 806、第三ODP 808和第四ODP810的四个存储器装置。NAND布局800包括两个SOC通道,每个SOC通道具有两个芯片使能端。每个SOC通道具有用于通过使用两个CE来选择四个ODP的MUX,诸如用于SOC通道0(CH0)的MUX 812和用于SOC通道1(CH1)的MUX 814。在每个MUX中,诸如M1和M0的选择引脚可以用于配置与每个SOC通道对应的ODP的选择。
例如,CH0具有相应的MUX 812。CH0具有两个芯片使能端CE0和CE1,以及MUX选择引脚M0和M1。当选择针脚{M0,M1}分别为“00”、“01”、“10”、“11”时,MUX选择引脚M0和M1可以被配置用于选择第一ODP 804、第二ODP 806、第三ODP 808和第四ODP 810。SOC通道的每个CE可以连接到对于每个选择的LUN,使得CH0的CE1可以根据每个选择分别连接到第一ODP804、第二ODP 806、第三ODP808或第四ODP 810的CH0的LUN0。NAND布局800是不平衡布局,其包括2个通道的常数和功率、CE、每个CE的LUN,然而,ODP的每一个具有不同数量的LUN。第四ODP 810具有四个LUN0和四个LUN1,而第一ODP 804、第二ODP 806或第三ODP 808只有四个LUN0而没有LUN1。
NAND布局800包括用于每个SOC通道的MUX。每个SOC通道的CE可以连接到由MUX选择的其相应的LUN。例如,当MUX 812选择为“00”时,CH0的CE1可以连接到与第一ODP 804的CE1相对应的CH0的LUN0,或当MUX 814选择为“11”时,CH1的CE0可以连接到与第四ODP 810的CE0相对应的CH1的LUN0和LUN1。
图7是示意性地示出根据本发明的实施例的系统的不平衡NAND布局的图。NAND布局900包括SOC闪存控制器902以及诸如第一ODP904、第二ODP 906和第三ODP 908的三个存储器装置。NAND布局900包括FTL地址转换器910和五个SOC通道,其中SOC通道的每一个可以具有映射转换器912。每个ODP具有四个CE输入,其中每个ODP的四个CE可以连接到SOC通道的CE以用于启用LUN。在NAND布局900中不使用MUX,而在本发明的其它实施例中,可以在NAND布局中使用一个或多个MUX。
FTL地址转换器910可以管理逻辑管芯数量并将其转换为物理地址。为了简化转换方法,FTL地址转换器910可以相同地处理所有SOC通道,使得每个SOC通道具有两个CE,每个CE具有两个LUN。
例如,SOC通道0(CH0)具有两个芯片使能端CE0和CE1,其中CE0可以连接到第一ODP904的四个CE中的一个,诸如CE0_0,并且CE1可以连接到第一ODP 904的四个CE中的另一个,诸如CE0_1。第一ODP 904的每个CE可以分别连接到与CH0对应的第一ODP 904的一组LUN0和LUN1。SOC通道1(CH1)、SOC通道2(CH 2)和SOC通道3(CH 3)的CE可以分别连接到第一ODP904的四个CE中的一个,诸如其CE1_0和CE1_1,或第二ODP 906的四个CE中的一个。第一ODP904和第二ODP 906的每个CE可以分别连接到与SOC通道相对应的其一组LUN0和LUN1。由于诸如一对CH0和CH1、一对CH2和CH3的SOC通道对的CE的数量与相应的ODP的CE的数量相同,因此可以不启用CH0、CH1、CH2或CH3的映射转换器912来转换用于映射ODP的CE的SOC通道的CE。
图7所示的NAND布局是不具有2的功率或使位移位的使用不一致的跨通道布局。在该情形下,可以生成表查找以将FTL逻辑管芯数量转换为NAND封装物理地址。表查找的创建可以在系统中使用更多存储器,但可以简化固件,并且致使更好的性能。
在一些系统中,微处理器可以被嵌入在每个通道中,映射转换映射可以被给到进行转换的每个通道,以允许FTL地址转换假定一致数量的CE和每个CE的LUN。只有在(CE的数量*LUN/CE)的等式在每个SOC通道上相等的情况下才可以使用该假设。当等式在每个SOC通道上相等时,NAND布局工具可以生成用于每个SOC通道的映射转换,并且使得FTL转换在整个系统中使用一致的CE和每个CE的LUN。
例如,NAND布局900具有五个SOC通道,其中SOC通道的数量不是恒定的并且功率为2。在逻辑地址和物理地址的转换期间,FTL地址转换器910可以将每个SOC通道视为两个CE,每个CE具有两个LUN。然而,第三ODP 908的CE的数量为4,并且没有附加的SOC通道可以与SOC通道4(CH4)配对。映射转换器912可以将来自FTL的两个CE转换为CH4的四个CE,每个CE具有一个LUN,其中CH4的CE的数量与第三ODP 908的CE的数量匹配。
诸如FTL地址转换器910的管理工具可以创建在制造期间使用的诸如第一ODP904、第二ODP 906或第三ODP 908的NAND封装的配置文件,以确保组装进程是正确的。NAND封装的配置文件也可以在组装进程中提供。因此,组装进程可以验证配置文件和NAND封装以保证准确性。
FTL地址转换器910还可以为由FTL固件使用的物理地址映射创建逻辑管芯数量以用于管理NAND封装,诸如第一ODP 904、第二ODP906或第三ODP 908。FTL地址转换器910可以分别为诸如CH0、CH1、CH2、CH3、CH4或CH5的特定驱动器创建特定的数据集。或者FTL地址转换器910可以为诸如CH0、CH1、CH2、CH3、CH4和CH5的所有各个驱动器创建数据列表。根据系统要求,数据的创建可以允许固件专门为一个驱动器或一组驱动器而被构建。
固件构建进程可以因需要从使用芯片使能端(CE)的SOC到实际NAND装置的映射而在任何使用NAND封装的系统上使用。另外,固件构建进程可以具有定义到NAND封装的电连接的简单能力,以用于构建固件所需的NAND布局信息来管理NAND封装。自动化构建进程可以比手动创建文件不容易出错,并可以根据需要简化添加/删除/更改配置过程。
图8是示出根据本发明的另一实施例的系统的操作方法的流程图。方法可以包括:在块1002中提供PCB板;在块1004中将具有至少一个SOC通道的SOC闪存控制器安装在PCB板上;在块1006中安装与至少一个SOC通道联接的至少一个存储器装置;在块1008中通过FTL地址转换器根据PCB板的PCB板配置文件和至少一个存储器装置的驱动器配置文件来自动地管理至少一个存储器装置;以及在块1010中至少部分地根据PCB板配置文件和驱动器配置文件的数据生成用于ROM的ODP熔丝设置以在考虑到NAND的配置的情况下提供用于启动的非易失性信息。
本发明的另一个重要方面是它有价值地支持和服务于降低成本、简化系统和提高性能的历史趋势。因此,本发明的这些和其它有价值的方面将技术的状态进一步提高到至少下一个级别。
虽然已经结合具体的最佳模式描述了本发明,但是应当理解的是,根据前面的描述,许多替代方案、变型和变化对于本领域技术人员将是显而易见的。因此,旨在涵盖落在所附权利要求的范围内的所有这样的替代方案、变型和变化。迄今为止在本文中阐述或在附图中示出的所有事项将以说明性和非限制性的意义来解释。
Claims (20)
1.一种系统,其包括:
片上系统闪存控制器,即SOC闪存控制器,其具有至少一个SOC通道;
至少一个存储器装置,其与所述至少一个SOC通道联接;
印刷电路板,即PCB板,其中所述SOC闪存控制器和所述至少一个存储器装置被安装在其上;
闪存地址转换地址转换器,即FTL地址转换器,其根据所述PCB板的PCB板配置文件和所述至少一个存储器装置的驱动器配置文件自动地管理所述至少一个存储器装置;以及
熔丝,其存储至少部分地根据所述PCB板配置文件和所述驱动器配置文件的数据生成的开放数据平面熔丝设置,即ODP熔丝设置。
2.根据权利要求1所述的系统,其中自动地管理所述至少一个存储器装置的所述FTL地址转换器包括创建逻辑到物理映射以管理所述至少一个存储器装置的驱动器配置文件。
3.根据权利要求1所述的系统,其中自动地管理所述至少一个存储器装置的所述FTL地址转换器包括创建用于所述至少一个存储器装置的所述驱动器配置文件。
4.根据权利要求1所述的系统,其中自动地管理所述至少一个存储器装置的所述FTL地址转换器包括创建用于所述至少一个存储器装置的特定驱动器的特定的数据集。
5.根据权利要求1所述的系统,其中自动地管理所述至少一个存储器装置的所述FTL地址转换器包括创建用于所述至少一个存储器装置的所有驱动器的数据的列表。
6.根据权利要求1所述系统,其中所述驱动器配置文件包括在相应位置处的所述至少一个存储器装置的类型的信息。
7.根据权利要求1所述的系统,其中所述PCB板配置文件包括用于所述至少一个SOC通道的芯片使能端的数量即CE的数量、相应的SOC通道以及所述至少一个存储器装置的位置。
8.根据权利要求1所述的系统,其进一步包括用于所述至少一个SOC通道的MUX。
9.根据权利要求8所述的系统,其中所述PCB板配置文件包括用于所述至少一个SOC通道的CE的数量、相应的SOC通道、所述MUX的选择以及所述至少一个存储器装置的位置。
10.根据权利要求1所述的系统,其中所述至少一个SOC通道包括映射转换器,所述映射转换器平衡所述FTL地址转换器的CE的数量和所述至少一个存储器装置的CE的数量。
11.一种系统的操作方法,其包括:
提供印刷电路板,即PCB板;
将具有至少一个片上系统通道即SOC通道的SOC闪存控制器安装在所述PCB板上;
安装与所述至少一个SOC通道联接的至少一个存储器装置;
通过闪存地址转换地址转换器即FTL地址转换器根据所述PCB板的PCB板配置文件和所述至少一个存储器装置的驱动器配置文件来自动地管理所述至少一个存储器装置;以及
至少部分地根据所述PCB板配置文件和所述驱动器配置文件的数据生成开放数据平面熔丝设置,即ODP熔丝设置。
12.根据权利要求11所述的方法,其中自动地管理所述至少一个存储器装置包括创建逻辑到物理映射以管理所述至少一个存储器装置的驱动器配置文件。
13.根据权利要求11所述的方法,其中自动地管理所述至少一个存储器装置包括创建用于所述至少一个存储器装置的所述驱动器配置文件。
14.根据权利要求11所述的方法,其中自动地管理所述至少一个存储器装置包括创建用于所述至少一个存储器装置的特定驱动器的特定的数据集。
15.根据权利要求11所述的方法,其中自动地管理所述至少一个存储器装置包括创建用于所述至少一个存储器装置的所有驱动器的数据的列表。
16.根据权利要求11所述的方法,其中自动地管理所述至少一个存储器装置包括创建所述驱动器配置文件,所述驱动器配置文件定义在相应位置处的所述至少一个存储器装置的类型。
17.根据权利要求11所述的方法,其中自动地管理所述至少一个存储器装置包括创建PCB板配置文件,所述PCB板配置文件定义用于所述至少一个SOC通道的芯片使能端的数量即CE的数量、相应的SOC通道以及所述至少一个存储器装置的位置。
18.根据权利要求11所述的方法,其进一步包括安装用于所述至少一个SOC通道的MUX。
19.根据权利要求18所述的方法,其中自动地管理所述至少一个存储器装置包括创建PCB板配置文件,所述PCB板配置文件包括用于所述至少一个SOC通道的CE的数量、相应的SOC通道、所述MUX的选择以及所述至少一个存储器装置的位置。
20.根据权利要求11所述的方法,其中安装所述至少一个SOC通道包括安装具有映射转换器的至少一个SOC通道,所述映射转换器平衡所述FTL地址转换器的CE的数量和所述至少一个存储器装置的CE的数量。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662351170P | 2016-06-16 | 2016-06-16 | |
US62/351,170 | 2016-06-16 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107526687A true CN107526687A (zh) | 2017-12-29 |
CN107526687B CN107526687B (zh) | 2020-11-06 |
Family
ID=60659577
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710458491.8A Active CN107526687B (zh) | 2016-06-16 | 2017-06-16 | 多种配置的存储器系统及其操作方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10467148B2 (zh) |
CN (1) | CN107526687B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110134453A (zh) * | 2018-02-09 | 2019-08-16 | 网宿科技股份有限公司 | 服务器配置重载方法及服务器 |
CN116881179A (zh) * | 2023-09-06 | 2023-10-13 | 苏州浪潮智能科技有限公司 | 固态硬盘配置方法、固态硬盘和服务器 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11249652B1 (en) | 2013-01-28 | 2022-02-15 | Radian Memory Systems, Inc. | Maintenance of nonvolatile memory on host selected namespaces by a common memory controller |
US10445229B1 (en) | 2013-01-28 | 2019-10-15 | Radian Memory Systems, Inc. | Memory controller with at least one address segment defined for which data is striped across flash memory dies, with a common address offset being used to obtain physical addresses for the data in each of the dies |
US9542118B1 (en) | 2014-09-09 | 2017-01-10 | Radian Memory Systems, Inc. | Expositive flash memory control |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1829976A (zh) * | 2003-07-28 | 2006-09-06 | 皇家飞利浦电子股份有限公司 | 具有动态存储分配的集成电路 |
CN101261606A (zh) * | 2008-04-03 | 2008-09-10 | 上海交通大学 | 基于地址映射的nor flash均衡方法 |
CN101784993A (zh) * | 2007-08-24 | 2010-07-21 | 三星电子株式会社 | 使用闪存作为存储器的设备及其操作方法 |
US9158546B1 (en) * | 2011-04-06 | 2015-10-13 | P4tents1, LLC | Computer program product for fetching from a first physical memory between an execution of a plurality of threads associated with a second physical memory |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7439729B2 (en) * | 2005-07-26 | 2008-10-21 | Marvell International Ltd. | Integrated systems testing |
KR100843546B1 (ko) * | 2006-11-21 | 2008-07-04 | 삼성전자주식회사 | 멀티 칩 패키지 플래시 메모리 장치 및 그것의 상태 신호독출 방법 |
JP2014067241A (ja) * | 2012-09-26 | 2014-04-17 | Fujitsu Semiconductor Ltd | 半導体記憶装置及び電子装置 |
US9594567B2 (en) | 2013-02-21 | 2017-03-14 | Dell Products, Lp | Configuring a trusted platform module |
-
2017
- 2017-06-15 US US15/624,385 patent/US10467148B2/en active Active
- 2017-06-16 CN CN201710458491.8A patent/CN107526687B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1829976A (zh) * | 2003-07-28 | 2006-09-06 | 皇家飞利浦电子股份有限公司 | 具有动态存储分配的集成电路 |
CN101784993A (zh) * | 2007-08-24 | 2010-07-21 | 三星电子株式会社 | 使用闪存作为存储器的设备及其操作方法 |
CN101261606A (zh) * | 2008-04-03 | 2008-09-10 | 上海交通大学 | 基于地址映射的nor flash均衡方法 |
US9158546B1 (en) * | 2011-04-06 | 2015-10-13 | P4tents1, LLC | Computer program product for fetching from a first physical memory between an execution of a plurality of threads associated with a second physical memory |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110134453A (zh) * | 2018-02-09 | 2019-08-16 | 网宿科技股份有限公司 | 服务器配置重载方法及服务器 |
CN110134453B (zh) * | 2018-02-09 | 2022-07-08 | 网宿科技股份有限公司 | 服务器配置重载方法及服务器 |
CN116881179A (zh) * | 2023-09-06 | 2023-10-13 | 苏州浪潮智能科技有限公司 | 固态硬盘配置方法、固态硬盘和服务器 |
CN116881179B (zh) * | 2023-09-06 | 2024-01-23 | 苏州浪潮智能科技有限公司 | 固态硬盘配置方法、固态硬盘和服务器 |
Also Published As
Publication number | Publication date |
---|---|
US20170364445A1 (en) | 2017-12-21 |
US10467148B2 (en) | 2019-11-05 |
CN107526687B (zh) | 2020-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107526687A (zh) | 多种配置的存储器系统及其操作方法 | |
CN106598480B (zh) | 具有接口控制机制的电子系统及其操作方法 | |
US10613778B2 (en) | Dynamic host memory allocation to a memory controller | |
US8751732B2 (en) | System and method for increasing capacity, performance, and flexibility of flash storage | |
US8131912B2 (en) | Memory system | |
JP5624578B2 (ja) | メモリシステム | |
JP6709180B2 (ja) | メモリシステムおよび制御方法 | |
US7757037B2 (en) | Configurable flash memory controller and method of use | |
CN107632846B (zh) | 固件升级方法及装置、机框管理模块 | |
US20090248965A1 (en) | Hybrid flash memory device and method of controlling the same | |
CN101946286A (zh) | 用于模拟每单元单个位的nand闪存的每单元多个位的nand闪存的控制器 | |
US8799605B2 (en) | Initializing and writing to a nonvolatile storage device based on a client/server model | |
US9626179B2 (en) | Method and system for using a ROM patch | |
KR20130018482A (ko) | 메모리 디바이스 | |
CN104885052B (zh) | 读写存储设备的数据映像中的虚拟边界码 | |
CN109656833B (zh) | 数据储存装置 | |
WO2010067347A1 (en) | Continuous address space in non-volatile-memories (nvm) using efficient management methods for array deficiencies | |
CN108008914A (zh) | 一种arm设备中磁盘管理的方法、装置和arm设备 | |
US8677095B2 (en) | System and method for optimal dynamic resource allocation in a storage system | |
US20110004719A1 (en) | Memory Element | |
US8595418B2 (en) | Memory configuring method, memory controller and memory storage apparatus | |
CN107479938A (zh) | 电子设备及其启动方法 | |
CN208314757U (zh) | 对fpga配置数据进行升级的电路 | |
US8595417B2 (en) | Memory configuring method, memory controller and memory storage apparatus | |
CN112115065A (zh) | 存储设备的统一地址空间 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |