用于并排平行多端口操作的多芯片一致性的系统及方法与流程

未命名 08-14 阅读:86 评论:0

用于并排平行多端口操作的多芯片一致性的系统及方法
1.分案申请信息
2.本技术是申请日为2021年9月17日、申请号为“202111092533.3”、发明名称为“用于并排平行多端口操作的多芯片一致性的系统及方法”的发明专利申请的分案申请。
技术领域
3.本公开大体上涉及nand存储器,且更特定来说,涉及用于并排平行多端口操作的多芯片一致性的系统及方法。


背景技术:

4.固态硬盘(ssd)包含若干非易失性存储器装置,例如但不限于由控制器控制的nand快闪存储器装置,使得nand快闪存储器装置表现像单个驱动器一样。nand快闪存储器装置经历源于主机的i/o操作,例如读取及写入存储在nand快闪存储器装置中的数据,所述数据可源于在一或多个主机上运行的多个不同应用程序。nand快闪存储器装置可由多个裸片组成,但单个裸片在任何一个时刻仅能处理单个i/o操作,且将多个nand快闪存储器装置连接到存储器控制器的存储器总线/通道任何一个时刻仅能传输单个存储器装置的数据。在其中nand快闪存储器装置由超过一个控制器控制的ssd中,每一控制器可在任何一个时刻对不同的存储器装置执行数据存取,但在维持存取之间的数据一致性以及在避免当地址范围中存取重叠时的所谓“死锁”方面存在困难。


技术实现要素:

5.本文公开的实例实施例涉及解决与现有技术中呈现的问题中的一或多者相关的问题,以及提供当结合附图理解时通过参考以下详细描述将变得显而易见的额外特征。根据各种实施例,本文公开实例系统、方法、装置及计算机程序产品。然而,应理解,这些实施例是以实例的方式呈现的,且不是限制性的,并对于阅读本公开的所属领域的一般技术人员来说将显而易见的是,在保持在本公开的范围内的同时,可对所公开的实施例进行各种修改。
6.在一个方面中,本公开涉及一种用于维持存储器存储装置的一致性的方法,所述存储器存储装置包括并排配置的多个控制器。在一些实施例中,所述方法包含由所述多个控制器的第一控制器(例如,图2中的控制器202a)生成第一多个请求以存取第一多个存储器范围(例如,图3b中的非易失性存储器装置340的存储器范围)。在一些实施例中,所述方法包含由所述第一控制器从所述多个控制器的第二控制器(例如,图2中的控制器202b)接收第二多个请求以存取第二多个存储器范围(例如,图3b中的非易失性存储器装置350的存储器范围)。在一些实施例中,所述方法包含由所述第一控制器序列化所述第一多个请求及所述第二多个请求以生成经序列化请求。
7.在一些实施例中,所述方法包含由所述第一控制器确定所述第一控制器与所述第二控制器之间的同步。在一些实施例中,所述方法包含由所述第一控制器将所述经序列化
请求发送到所述第一控制器的后端组件及到所述第二控制器的后端组件。在一些实施例中,所述经序列化请求使所述第一控制器的所述后端组件响应于接收到所述经序列化请求而处理所述经序列化请求,其中所述经序列化请求使所述第二控制器的所述后端组件响应于接收到所述经序列化请求而处理所述经序列化请求。
8.在一些实施例中,所述第一多个请求与多个生成时间相关联,所述多个生成时间每一者指示所述第一控制器何时生成所述第一多个请求的相应请求,其中所述第二多个请求与多个接收时间相关联,所述多个接收时间每一者指示所述第一控制器何时从所述第二控制器接收所述第二多个请求的相应请求,及/或所述方法包含由所述第一控制器根据所述多个接收时间或所述多个生成时间中的至少一者交织所述第一多个请求与所述第二多个请求。
9.在一些实施例中,所述第一多个存储器范围的第一存储器范围与所述第二控制器的非易失性存储器相关联。在一些实施例中,所述第二多个存储器范围的第二存储器范围与所述第一多个存储器范围的所述第一存储器范围对应。在一些实施例中,所述方法包含由所述第一控制器并在生成所述经序列化请求之前防止所述第一控制器的后端组件处理所述第一多个请求。在一些实施例中,存取第二多个存储器范围的所述第二多个请求包含多个命令结束控制。在一些实施例中,所述第一多个请求中的每一请求与第一多个操作对应;及/或所述第二多个请求中的每一请求与第二多个操作对应。
10.在一些实施例中,序列化所述第一多个请求及所述第二多个请求包含由所述第一控制器从所述第一多个操作中的每一者提取开始操作,以生成与所述第一多个操作相关联的多个开始操作;由所述第一控制器从所述第二多个操作中的每一者提取开始操作,以生成与所述第二多个操作相关联的多个开始操作;及/或由所述第一控制器序列化与所述第一多个操作相关联的所述多个开始操作及与所述第二多个操作相关联的所述多个开始操作,以生成所述经序列化请求。在一些实施例中,所述方法包含由所述第一控制器允许所述第二控制器在不将请求发送到所述第一控制器的情况下处理所述第二多个操作中的其它操作。
11.在另一方面中,本公开涉及一种存储器存储装置,其包括并排的第一控制器及第二控制器及/或存储器。所述第一控制器包括后端组件及/或前端组件。所述前端组件经配置以生成第一多个请求以存取所述存储器的第一多个存储器范围;从所述第二控制器接收第二多个请求以存取所述存储器的第二多个存储器范围;及/或序列化所述第一多个请求及所述第二多个请求以生成经序列化请求。
12.在一些实施例中,所述前端组件经进一步配置以确定所述第一控制器与所述第二控制器之间的同步。在一些实施例中,所述前端组件经进一步配置以将所述经序列化请求发送到所述第一控制器的所述后端组件;及/或将所述经序列化请求发送到所述第二控制器的后端组件。
13.在一些实施例中,所述第一多个请求与多个生成时间相关联,所述多个生成时间每一者指示所述第一控制器何时生成所述第一多个请求的相应请求,所述第二多个请求与多个接收时间相关联,所述多个接收时间每一者指示所述第一控制器何时从所述第二控制器接收所述第二多个请求的相应请求,及/或所述前端组件经进一步配置以根据所述多个接收时间或所述多个生成时间中的至少一者交织所述第一多个请求与所述第二多个请求。
14.在一些实施例中,所述第一多个存储器范围的第一存储器范围与所述第二控制器的非易失性存储器相关联。在一些实施例中,所述第二多个存储器范围的第二存储器范围与所述第一多个存储器范围的所述第一存储器范围对应。在一些实施例中,所述前端组件经进一步配置以在生成所述经序列化请求之前防止所述第一控制器的所述后端组件处理所述第一多个请求。
15.在一些实施例中,存取第二多个存储器范围的所述第二多个请求包含多个命令结束控制。在一些实施例中,所述第一多个请求中的每一请求与第一多个操作对应;及/或所述第二多个请求中的每一请求与第二多个操作对应。在一些实施例中,所述前端组件经进一步配置以从所述第一多个操作中的每一者提取开始操作,以生成与所述第一多个操作相关联的多个开始操作;从所述第二多个操作中的每一者提取开始操作,以生成与所述第二多个操作相关联的多个开始操作;及/或序列化与所述第一多个操作相关联的所述多个开始操作及与所述第二多个操作相关联的所述多个开始操作,以生成所述经序列化请求。在一些实施例中,所述前端组件经进一步配置以允许所述第二控制器在不将请求发送到所述第一控制器的情况下处理所述第二多个操作中的其它操作。
16.在另一方面中,本公开涉及一种用于维持存储器存储装置的一致性的方法,所述存储器存储装置包括并排配置的多个控制器。在一些实施例中,所述方法包含由所述多个控制器的第一控制器将使所述第二控制器进入配置模式的配置消息发送到所述多个控制器的第二控制器;由所述第一控制器将使所述前端组件生成第一多个请求以存取第一多个存储器范围的命令消息发送到所述第一控制器的前端组件;由所述第一控制器从所述第二控制器接收第二多个请求以存取第二多个存储器范围;及/或由所述第一控制器将使所述前端组件序列化所述第一多个请求及所述第二多个请求的第二命令消息发送到所述前端组件。
17.在附图、描述及权利要求中更详细地描述上述及其它方面以及其实施例。
附图说明
18.下面参考以下附图或绘图详细描述本解决方案的各种实例实施例。绘图仅为说明的目的而提供,且仅描绘本解决方案的实例实施例,以促进读者对本解决方案的理解。因此,绘图不应被视为限制本解决方案的宽度、范围或适用性。应注意,为了清晰及易于说明,这些绘图不一定按比例绘制。
19.图1是描绘根据一些常规实施例的支持低容量解决方案的实例前后配置及支持高容量解决方案的前后配置的框图。
20.图2是描绘根据一些常规实施例的支持低容量解决方案的实例并排配置及支持高容量解决方案的并排配置的框图。
21.图3a描绘根据本公开的一些实施例的其中可实施本文所公开的技术的实例ssd系统。
22.图3b描绘根据本公开的一些实施例的实例ssd系统的框图。
23.图3c描绘根据本公开的一些实施例的实例ssd系统的框图。
24.图3d描绘根据本公开的一些实施例的从主机、前端芯片及后端芯片的实例命名空间视角。
25.图4是描绘根据本公开的一些实施例的用于在使用并排平行多端口操作时维持多芯片一致性的方法的流程图。
26.图5是描绘根据本公开的一些实施例的用于在使用并排平行多端口操作时维持多芯片一致性的方法的流程图。
具体实施方式
27.下面参考附图描述本解决方案的各种实例实施例,以使所属领域的一般技术人员能够制作并使用本解决方案。对于所属领域的一般技术人员来说将显而易见的是,在阅读本公开之后,可在不脱离本解决方案的范围的情况下对本文描述的实例进行各种更改或修改。因此,本解决方案不限于本文描述及说明的实例实施例及应用。此外,本文所公开的方法中的步骤的特定顺序或层次结构仅为实例方法。在保持在本解决方案范围内的同时,基于设计偏好,可重新布置所公开的方法或过程的步骤的特定顺序或层次结构。因此,所属领域的一般技术人员将理解,本文所公开的方法及技术以样本顺序呈现各种步骤或行为,且除非另有明确说明,否则本解决方案不限于所呈现的特定顺序或层次结构。
28.贯穿本公开使用以下首字母缩略词:
29.dram动态随机存取存储器
30.esdi增强型小型磁盘接口
31.feram铁电ram
32.ftl快闪存储器转换层
33.lba逻辑块地址
34.lun逻辑单元
35.mram磁随机存取存储器
36.nand与非
37.nvme非易失性存储器快速
38.pci外围组件互连
39.pcm相变存储器
40.ram随机存取存储器
41.sata串行高级技术附件
42.scsi小型组件小型接口
43.sram静态随机存取存储器
44.ssd固态硬盘
45.usb通用串行总线
46.包括nand型快闪存储器装置的存储装置(例如ssd)的常规多芯片布置具有各种配置。例如,图1是描绘根据一些常规实施例的支持低容量解决方案的实例所谓前后配置及支持高容量解决方案的前后配置的框图。前后配置是多端口前端芯片或控制器支持面向主机的接口,且一或多个后端芯片或控制器支持nand型快闪存储器操作。如图1中所展示,支持低容量解决方案的前后配置具有仅驱动一个后端芯片(例如,控制器104)的多端口前端芯片(例如,控制器102),而支持高容量解决方案的前后配置具有平行驱动多个后端芯片(例如,控制器104a、控制器104b)的多端口前端芯片(例如,控制器102)。在一些实施例中,控制
器104、控制器104a及/或控制器104b可具有等效功能及/或是相同类型的控制器。
47.前后配置具有优点,在于这种类型的多芯片布置可通过增加后端(be)芯片的数量来扩展。由于后端芯片的所有存储器存取都通过单个前端芯片来控制,因此所述布置在概念上也更简单,芯片之间的一致性也是如此。
48.前后配置存在缺点。举例来说,所有流量(例如,数据、命令)必须从前端穿过芯片对芯片接口到后端。可能的最小配置也需要至少两个芯片,其中最常见的配置使用最多三个芯片。最后,前端芯片必须具有最高性能配置的能力,因为它携载主机与存储器装置之间的所有命令及数据流量。
49.另一类型的多芯片布置是并排配置,其中每一芯片或控制器支持前端操作(例如,到主机的接口操作)及后端操作(例如,nand快闪存储器操作)两者。例如,图2是描绘根据一些常规实施例的支持低容量解决方案的实例并排配置及支持高容量解决方案的并排配置的框图。
50.支持低容量解决方案的并排配置只需要一个芯片(例如,控制器202a)。相反,支持高容量解决方案的并排配置具有两个芯片(例如,控制器202a、控制器202b),其中每一芯片以并排配置相互连接。在一些实施例中,控制器202、控制器202a及/或控制器202b可具有等效功能及/或是相同类型的控制器。
51.并排配置具有优于前后配置的优点。如上面所讨论,图1中所展示的前后配置需要最少两个芯片(例如,控制器102及控制器104),而图2中所展示的并排配置只需要最少一个芯片。与其它配置相比,芯片的这种减少提供显著成本节省。此外,在并排配置中,仅一半流量必须在芯片之间穿过。带宽也分布遍及芯片。
52.并排配置允许超过一个芯片同时用作“主”芯片。例如,控制器202a可被指定(例如,指派、分配、配置、初始化等)为“主”(例如,控制、引导、管控等)芯片,而控制器202b被指定为“副”(例如,被控制、被引导、被管控等)芯片。由于这个原因,并排配置确实具有使其实施方案复杂化的一些重大缺陷。举例来说,并排配置(其包含两个芯片)遭受命令一致性,其在一个芯片试图存取(例如,读取、写入)另一芯片试图存取的同一存储器范围(例如,命名空间或nand快闪存储器位置)时发生。
53.死锁也可能发生在并排配置中。例如,需要在两个芯片上获取范围,以确保读取/写入原子性。由于两个芯片可同时请求相同的范围,且芯片对芯片接口向另一方(例如,控制器芯片)引入延迟,因此每一芯片在理论上可能获得另一方所需范围的一半,即,所谓的死锁。
54.因此,需要一种机制用于克服由nand型快闪存储器装置的多芯片布置中的并排配置所引入的问题。
55.因此,本文讨论的系统及方法提供用于在使用并排平行多端口操作时维持多芯片一致性的机制。
56.一般来说,如下文更大地讨论,并排配置中的一个芯片可经配置为第一模式,其使芯片用作“主”芯片,而另一芯片可经配置为第二模式,其使另一芯片用作“副”芯片。当副芯片想要存取副芯片上的存储器范围位置时,它向主芯片发送范围请求。主芯片经配置以序列化(例如,交织等)其从副芯片接收的范围请求与由主芯片发出的任何其它范围请求,以便生成经序列化(例如,经交织等)请求或若干请求,并将经序列化请求发送到主芯片的后
端组件(例如,支持后端操作)及副芯片。通过将范围请求序列化为经序列化请求,每一芯片(例如,主芯片及副芯片)接收相同序列的请求;从而解决常规并排配置所发生的一致性问题(例如,死锁等)。对释放范围执行类似的操作,然而其它请求(例如,执行操作、一致性完成操作)可直接点对点地执行。
57.图3a描绘根据本公开的一些实施例的其中可实施本文所公开的技术的实例ssd系统。如图3a中所展示,系统300a包含主机301a、主机301b及ssd 302。ssd 302包含主机接口310a及主机接口310b。ssd 302包含控制器322a(有时称为“控制器0”或“芯片0”)及控制器322b(有时称为“控制器1”或“芯片1”)。
58.控制器322a包含用于将控制器322a与主机接口310a介接的一或多个输入/输出端口及/或总线。控制器322b包含用于将控制器322b与主机接口310b介接的一或多个输入/输出端口及/或总线。在一些实施例中,主机接口310a及主机接口310b可为单个主机接口,使得控制器322a及控制器322b每一者介接到单个主机接口。
59.ssd 302包含易失性存储器装置330a及易失性存储器装置330b。ssd 302包含非易失性存储器装置340及非易失性存储器装置350。在一些实施例中,易失性存储器装置330a、330b每一者可包含多个易失性存储器装置及/或与多个易失性存储器装置对应。在一些实施例中,非易失性存储器340、350每一者可包含多个非易失性存储器及/或与多个非易失性存储器对应。非易失性存储器340包含非易失性存储器裸片342a到342d、344a到344d、346a到346d及348a到348d(有时统称为“lun”)的阵列。非易失性存储器350包含非易失性存储器裸片352a到352d、354a到354d、356a到356d及358a到358d的阵列。
60.控制器322a通过主机接口310a与主机301a通信并操作地耦合到主机301a。控制器322b通过主机接口310b与主机301b通信并操作地耦合到主机301b。
61.主机301a、301b每一者可为一或多个主机装置及/或主机应用程序。主机301a、303b可包含任何合适的装置,例如但不限于计算装置及/或存储设备。在一些实例中,主机301a、301b每一者可为由用户操作的用户装置。在一些实施方案中,主机301a、301b及/或ssd 302驻留在数据中心(未展示)中。数据中心包含多个平台,所述多个平台每一者可支持多个主机(例如但不限于,主机301a、301b)及/或ssd装置(例如但不限于,ssd 302)。
62.主机装置301a、301b每一者可例如凭借通过其相应的主机接口(例如,主机接口310a、主机接口310b)将写入及读取命令发送到ssd 302来存取ssd 302。主机接口的实例包含但不限于通用串行总线(usb)接口、串行高级技术附件(sata)接口、增强型小型磁盘接口(esdi)、小型组件小型接口(scsi)、外围组件互连(pci)接口、快速串行附接scsi(sas)、集成驱动电子装置(ide)接口及/或非易失性存储器快速(nvme)接口。在一些实施例中,主机接口可为网络接口,且主机(例如,主机301a、主机301b)经由网络架构(为清楚起见未展示)连接到主机接口,所述网络架构可包括多个网络路由器、网络交换机等。作为网络接口的主机接口的实例包含但不限于以太网、infiniband、omnipath及光纤通道(fc)。
63.易失性存储器装置330a及非易失性存储器340与控制器322a通信。如图3a中所展示,控制器322经由经配置以携载数据、地址信息及/或命令信息的“第一”双向多位数据总线(在图3a中展示为“dq[n:0]”)与非易失性存储器340通信。在一些实施例中,“n”可为包含例如2、4、8、16、32、64或128的任何整数。
[0064]
易失性存储器装置330b及非易失性存储器350与控制器322b通信。如图3a中所展
示,控制器322b经由经配置以携载数据、地址信息及/或命令信息的“第二”双向多位数据总线(在图3a中展示为“dq[n:0]”)与非易失性存储器350通信。在一些实施例中,“n”可为包含例如2、4、8、16、32、64或128的任何整数。
[0065]
虽然nand快闪存储器装置被描述为非易失性存储器340、350的实例,但用于实施非易失性存储器340、350的非易失性存储器技术的其它实例包含但不限于磁随机存取存储器(mram)、相变存储器(pcm)、铁电ram(feram)、电阻ram(reram)或其类似者。
[0066]
在一些实施例中,易失性存储器装置(例如,易失性存储器装置330a、易失性存储器装置330b)包含易失性存储器ram缓冲器。在一些实施例中,易失性存储器装置可全部或部分容纳在控制器(例如,控制器322a、控制器322b)内。易失性存储器装置可为能够提供用于ssd 302的易失性存储器缓冲器的单一类型的单个装置或不同类型的多个装置。用于实施易失性存储器存储(例如,易失性存储器装置330a、易失性存储器装置330b)的易失性存储器技术的实例包含但不限于静态随机存取存储器(sram)及动态随机存取存储器(dram)或其类似者。
[0067]
控制器(例如,控制器322a、控制器322b)可组合非易失性存储器裸片(例如,非易失性存储器裸片342a到342d、344a到344d、346a到346d及348a到348d)中的原始数据存储,使得那些非易失性存储器裸片像单个存储器一样运作。控制器可包含微控制器、缓冲器、错误校正功能、快闪存储器转换层(ftl)、快闪存储器接口层(ftl)、快闪存储器控制器、快闪存储器管理层软件、地址映射表以及用于实施如本文进一步描述的此类功能的固件。在一些布置中,软件/固件可存储在非易失性存储器340中或任何其它合适的计算机可读存储媒体中。
[0068]
控制器(例如,控制器322a、控制器322b)可包含用于执行本文所描述的功能,以及其它功能的适当处理及存储器能力。例如,控制器322a可包含用于实施控制器302a的各种功能的一或多个处理器(例如,中央处理单元(cpu))。如所描述,控制器322a管理非易失性存储器裸片342a到342d、344a到344d、346a到346d及348a到348d的各种特征;且控制器322b管理非易失性存储器裸片352a到352d、354a到354d、356a到356d及358a到358d的各种特征。控制器可管理的非易失性存储器的实例特征包含输入/输出(i/o)处理、读取、写入、擦除、监测、日志记录、错误处理、垃圾收集、耗损均衡、逻辑到物理(l2p)地址映射及其类似者。因此,控制器322a提供对非易失性存储器340及其相关联的ftl的可见性,且控制器322b提供对非易失性存储器350及其相关联的ftl的可见性。
[0069]
控制器322a、322b中的每一者可基于l2p表执行逻辑到物理(l2p)操作。例如,控制器322a可将逻辑块地址(lba)(例如,由主机使用例如nvm快速(nvme)或串行ata(sata)的块存储协议提供的地址)转化为物理地址(例如,对非易失性存储器裸片内的位置的参考),因此解析与lba对应的物理地址。响应于从主机装置接收写入或读取命令(其中含有lba),控制器322a可查找与lba对应的物理地址,以便写入到物理地址或从物理地址读取。
[0070]
图3b描绘根据本公开的一些实施例的实例ssd系统的框图。系统300b包含ssd 302、主机301a及主机301b。ssd 302包含控制器322a及控制器322b。控制器322a包含前端芯片325a及后端芯片326a,且控制器322b包含前端芯片325b及后端芯片326b。在一些实施例中,前端芯片325a及前端芯片325b可与相同类型的前端芯片对应,因为它们每一者具有相似及/或相同的功能。在一些实施例中,后端芯片326a及后端芯片326b可与相同类型的后端
芯片对应,因为它们每一者具有相似及/或相同的功能。
[0071]
主机301a与主机接口310a通信并操作地耦合到主机接口310a,所述主机接口310a与前端芯片325a通信并操作地耦合到前端芯片325a。主机301b与主机接口310b通信并操作地耦合到主机接口310b,所述主机接口310b与前端芯片325b通信并操作地耦合到前端芯片325b。如本文所讨论,前端芯片325a与前端芯片325b经由交叉芯片接口323彼此通信并操作地耦合。
[0072]
ssd 302包含一或多个非易失性存储器340(在图3b中展示为“nand 340”)及一或多个非易失性存储器350(在图3b中展示为“nand 350”)。后端芯片326a与一或多个非易失性存储器340通信并操作地耦合到一或多个非易失性存储器340,且与一或多个非易失性存储器350通信并操作地耦合到一或多个非易失性存储器350。
[0073]
控制器322a与一或多个易失性存储器装置330a通信并操作地耦合到一或多个易失性存储器装置330a。控制器322b与一或多个易失性存储器装置330b通信并操作地耦合到一或多个易失性存储器装置330b。
[0074]
图3c描绘根据本公开的一些实施例的实例ssd系统的框图。系统300c包含ssd 302、主机301a及主机301b。ssd 302包含控制器322a及控制器322b。控制器322a包含前端芯片325a及后端芯片326a,且控制器322b包含前端芯片325b及后端芯片326b。
[0075]
主机301a与主机接口310a通信并操作地耦合到主机接口310a,所述主机接口310a与前端芯片325a通信并操作地耦合到前端芯片325a。主机301b与主机接口310b通信并操作地耦合到主机接口310b,所述主机接口310b与前端芯片325b通信并操作地耦合到前端芯片325b。如本文所讨论,前端芯片325a与前端芯片325b经由交叉芯片接口323彼此通信并操作地耦合。
[0076]
ssd 302包含一或多个非易失性存储器340(在图3c中展示为“nand 340”)及一或多个非易失性存储器350(在图3c中展示为“nand 350”)。后端芯片326a与一或多个非易失性存储器340通信并操作地耦合到一或多个非易失性存储器340,且与一或多个非易失性存储器350通信并操作地耦合到一或多个非易失性存储器350。
[0077]
控制器322a与一或多个易失性存储器装置330a通信并操作地耦合到一或多个易失性存储器装置330a。控制器322b与一或多个易失性存储器装置330b通信并操作地耦合到一或多个易失性存储器装置330b。
[0078]
如图3c中所展示,控制器322a及控制器322b以并排配置定位,其中交叉芯片接口323在其间。
[0079]
控制器322a包含用于支持其nand接口的前端芯片325a,且控制器322b包含用于支持其nand接口的前端芯片325b。控制器322a的前端芯片325a包含用于支持一或多个命令范围请求的序列化的序列化器327a,如本文所讨论。
[0080]
控制器322a包含用于支持其nand快闪存储器操作的后端芯片326a,且控制器322b包含用于支持其nand快闪存储器操作的后端芯片326b。
[0081]
控制器322a及/或控制器322b可包含被称为“命名空间”的非易失性存储器(例如,非易失性存储器装置340)的区域或数量,其被格式化为逻辑块的集合。在一些实施例中,每一命名空间含有逻辑块地址从0到(n-1)的“n”个逻辑块。在一些实施例中,命名空间id是由控制器(例如,控制器322a及/或控制器322b)用于提供对命名空间的存取的标识符。在一些
实施例中,命令范围请求可包含命名空间id。
[0082]
控制器322a的序列化器327可以固定的逻辑间隔序列化(例如,交织)控制器322a及/或控制器322b的命名空间,例如每128个主机扇区(或者如果主机扇区大小为512字节,那么为64k字节)。
[0083]
在一些实施例中,后端芯片(例如,后端芯片326a、后端芯片326b)可经配置以维持(例如,存储、保存、记录等)如从每一芯片观看的命令范围重叠。也就是说,在图3c的并排配置中(且在图2中展示),控制器322a可维持如从控制器322a及控制器322b观看的命令范围重叠。
[0084]
例如,图3d描绘根据本公开的一些实施例的从主机、前端芯片及后端芯片的实例命名空间视角。命名空间302d展示从主机(例如,主机301a、主机301b)的视角的命名空间。命名空间304d展示从控制器322a的后端芯片326a的视角的命名空间。命名空间306d展示从控制器322b的后端芯片326b的视角的命名空间。命名空间308d展示控制器322a的命名空间与控制器322b的命名空间交织,如从前端芯片(例如,前端325a、前端325b)的视角观看。
[0085]
返回参考图3c,在一些实施例中,后端芯片(例如,后端芯片326a、后端芯片326b)可经由命令范围的增强红-黑树型结构来维持命令范围重叠。
[0086]
在一些实施例中,范围可用于确保针对重叠情况,读取请求(有时称为“命令范围请求”)对写入请求(有时称为“命令范围请求”)以及写入请求对写入请求不被同时执行。
[0087]
在一些实施例中,前端芯片可经配置以发出命令范围请求。例如,控制器(例如,控制器322a、控制器322b)的前端芯片(例如,前端芯片325a、前端芯片325b)可经配置以发出命令范围请求以读取存储器范围。作为另一实例,控制器(例如,控制器322a、控制器322b)的前端芯片(例如,前端芯片325a、前端芯片325b)可经配置以发出命令范围请求以写入到存储器范围。
[0088]
一或多个主机(例如,主机301a、主机301b)可经配置以将第一命令消息发送到控制器322a以将控制器322a配置为“主”芯片(如本文所讨论),并将第二命令消息发送到控制器322b以将控制器322b配置为“副”芯片(如本文所讨论)。在一些实施例中,主机可预配置(例如,初始化、编程等)控制器322a作为主芯片,并预配置控制器322b作为副芯片,使得在通电(例如,开机)时,控制器322a基于其预配置将自身配置为主芯片,控制器322b基于其预配置将自身配置为副芯片。在一些实施例中,预配置可包含从存储器位置读取文件及/或寄存器值。
[0089]
控制器可经配置以生成命令范围请求(例如,读取、写入)以存取存储器范围。例如,控制器322a可生成命令范围请求,以读取及/或写入到控制器322a及/或控制器322b上的存储器范围。作为另一实例,控制器322b可生成命令范围请求,以读取及/或写入到控制器322a及/或控制器322b上的存储器范围。在一些实施例中,控制器322a及控制器322b可生成命令请求以存取相同的存储器范围,使得如果由控制器322a及/或控制器322b同时执行所述两个请求,那么将发生死锁情况(如本文所讨论)。
[0090]
在一些实施例中,经配置为副芯片的控制器可能希望存取经配置为主芯片的控制器上的一或多个存储器范围。例如,在一些实施例中,控制器322b可能希望存取控制器322a上的一或多个存储器范围。为此,控制器322b可经配置以经由图3c中的交叉芯片接口323生成并发出(例如,发送、传输等)一或多个命令范围请求到控制器322a,其中一或多个命令范
围请求每一者指示请求以存取控制器322a上的存储器范围。
[0091]
在一些实施例中,经配置为副芯片的控制器可能希望存取其自身上的一或多个存储器范围。例如,在一些实施例中,控制器322b可能希望存取控制器322b上的一或多个存储器范围。为此,控制器322b可经配置以经由交叉芯片接口323生成并发出一或多个命令范围请求到控制器322a,其中所述一或多个命令范围请求每一者指示请求以存取控制器322b上的存储器范围。
[0092]
在一些实施例中,经配置为副芯片的控制器可能希望存取位于其自身上及经配置为主芯片的控制器上的一或多个存储器范围。例如,在一些实施例中,控制器322b可能希望存取来自控制器322a及控制器322b两者的存储器范围。为此,控制器322b可经配置以经由交叉芯片接口323生成并发出多个命令范围请求到控制器322a,其中所述多个命令范围请求指示请求以存取控制器322a及控制器322b上的存储器范围。
[0093]
在一些实施例中,经配置为主芯片的控制器322a可经配置以从控制器322b接收一或多个命令范围请求。
[0094]
响应于接收到请求,控制器322a(使用序列化器327)可经配置以序列化(例如,交织等)其从控制器322b接收的一或多个命令范围请求与由控制器322a发出的任何其它命令范围请求,以生成经序列化(例如,经交织等)命令范围请求。
[0095]
在一些实施例中,请求可与多个操作对应。例如,从存储器范围read的请求可包含开始操作、一或多个中间操作及结束操作(有时称为“命令结束控制”)。在一些实施例中,请求可与一或多个一致性管理操作、一或多个执行操作(包含数据传输)及一或多个一致性完成操作对应。
[0096]
在一些实施例中,命令的其余部分(例如,执行操作及/或一致性完成操作)不需要同步,且直接进入期望的芯片。在一些实施例中,控制器322a可经配置以从与控制器322a相关联的一或多个命令范围请求及与控制器322b相关联的一或多个命令范围请求提取开始操作(例如,一或多个一致性管理操作),并序列化所提取的开始操作以生成经序列化请求。
[0097]
在一些实施例中,控制器322a可经配置以允许控制器322b处理第二多个操作中的其它操作(即,非开始操作),而不必向控制器322a发送与其它操作相关联的请求。在一些实施例中,出于相同的原因,命令结束控制也被类似地路由通过一个芯片(例如,控制器322a、控制器322b)。
[0098]
在一些实施例中,如果范围准备好处理,那么发送响应且前端对响应进行计数。在一些实施例中,控制器322a可经配置以确定控制器322a与控制器322b之间的同步(例如,可用及/或释放的存储器范围)。
[0099]
在一些实施例中,控制器322b可经配置以将经序列化命令范围请求发送到控制器322b的后端电路及/或控制器322a的后端电路。在一些实施例中,控制器322b可经配置以响应于确定控制器322a与控制器322b之间的同步而将经序列化命令范围请求发送到控制器322b的后端电路及/或控制器322a的后端电路。
[0100]
在一些实施例中,控制器322b可经配置以在“扇出”或“广播”传输中将经序列化命令范围请求发送到控制器322b的后端电路及控制器322a的后端电路,使得控制器(例如,控制器322a及控制器322b)的后端电路两者接收相同系列的命令范围请求。换句话说,命令范围请求被路由通过一个芯片(例如,控制器322a),以确保命令范围请求被序列化,且两个芯
片(例如,控制器322a及控制器322b)的后端电路接收相同顺序的命令范围请求,以确保芯片之间的一致范围。
[0101]
图4是描绘根据本公开的一些实施例的用于在使用并排平行多端口操作时维持多芯片一致性的方法的流程图。取决于特定实施例,可在所述方法中执行额外的、更少的或不同的操作。在一些实施例中,方法400的一些或所有操作可由ssd(例如,图2中的ssd 202a、2020b、图3a到3c中的ssd 302)或ssd的一或多个组件(例如图2中的控制器202a及/或202b、图3a到3c中的控制器322a及/或图3a到3c中的控制器322b)执行。每一操作都可被重新排序、添加、移除或重复。
[0102]
如所展示,在一些实施例中,方法400包含由多个控制器的第一控制器生成第一多个请求以存取第一多个存储器范围的操作402。在一些实施例中,方法400包含由第一控制器从多个控制器的第二控制器接收第二多个请求以存取第二多个存储器范围的操作404。在一些实施例中,方法400包含由第一控制器序列化第一多个请求及第二多个请求以生成经序列化请求的操作406。
[0103]
图5是描绘根据本公开的一些实施例的用于在使用并排平行多端口操作时维持多芯片一致性的方法的流程图。取决于特定实施例,可在所述方法中执行额外的、更少的或不同的操作。在一些实施例中,方法500的一些或所有操作可由ssd(例如,图2中的ssd 202a、2020b、图3a到3c中的ssd 302)或ssd的一或多个组件(例如图2中的控制器202a及/或202b、图3a到3c中的控制器322a及/或图3a到3c中的控制器322b)执行。每一操作都可被重新排序、添加、移除或重复。
[0104]
如所展示,在一些实施例中,方法500包含由多个控制器的第一控制器将使第二控制器进入配置模式的配置消息发送到多个控制器的第二控制器的操作502。在一些实施例中,方法500包含由第一控制器将使前端组件生成第一多个请求以存取第一多个存储器范围的命令消息发送到第一控制器的前端组件的操作504。在一些实施例中,方法500包含由第一控制器从第二控制器接收第二多个请求以存取第二多个存储器范围的操作506。在一些实施例中,方法500包含由第一控制器将使前端组件序列化第一多个请求及第二多个请求的第二命令消息发送到前端组件的操作508。
[0105]
提供前述描述以使所属领域的技术人员能够实践本文所描述的各个方面。对这些方面的各种修改对于所属领域的技术人员来说将是显而易见的,且本文中所定义的一般原理可应用于其它方面。因此,权利要求不旨在限于本文所展示的方面,而是被赋予与语言权利要求一致的完整范围,其中对单数元件的引用并不旨在意味着“一个且仅一个”(除非特别如此陈述),而是“一或多个”。除非另有特别陈述,否则术语“一些”指一或多个。所属领域的一般技术人员已知或随后了解的与先前描述通篇描述的各个方面的元件的所有结构及功能等效物通过引用的方式明确地并入本文,且旨在被权利要求所涵盖。此外,本文所公开的任何内容不旨在贡献给社会大众,无论权利要求中是否明确引述此类公开。将不把任何权利要求元素解释为手段加功能,除非使用短语“用于
……
的手段”来明确引述所述元素。
[0106]
应理解,所公开的过程中的步骤的特定顺序或层次结构是说明性方法的实例。应理解,在保持在先前描述的范围内的同时,基于设计偏好,过程中的步骤的特定顺序或层次可被重新布置。所附方法权利要求以样本顺序呈现各种步骤的元素,并不意味着限于所呈现的特定顺序或层次结构。
[0107]
提供对所公开实施方式的先前描述以使所属领域的技术人员能够制作或使用所公开的标的物。对这些实施方案的各种修改对于所属领域的技术人员来说将是显而易见的,且本文中所界定的一般原理可应用于其它实施方案而不脱离先前描述的精神或范围。因此,先前的描述不旨在限于本文所展示的实施方案,而是被赋予与本文所公开的原理及新颖特征一致的最宽范围。
[0108]
所说明及描述的各种实例仅作为实例被提供来说明权利要求的各种特征。然而,关于任何给定实例所展示及描述的特征不一定限于相关联的实例,且可与所展示及描述的其它实例一起使用或序列化。进一步来说,权利要求不旨在受任一个实例的限制。
[0109]
前述方法描述及工艺流程图仅作为说明性实例提供,且不旨在要求或暗示必须按照所呈现的顺序执行各种实例的步骤。如所属领域的技术人员将理解,前述实例中的步骤顺序可以任何顺序执行。例如“此后”、“然后”、“接下来”等词语不旨在限制步骤的顺序;这些词语简单用来引导读者阅读方法的描述。进一步来说,例如,使用冠词“一”、“一个”或“所述”等单数形式对权利要求元素的任何引用不得被解释为将元素限制为单数形式。
[0110]
结合本文所公开的实例描述的各种说明性逻辑块、模块、电路及算法步骤可经实施为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件与软件的这种可互换性,上文就其功能性大体上描述各种说明性组件、块、模块、电路及步骤。此类功能是作为硬件还是软件实施取决于强加在整体系统上的特定应用及设计约束。所属领域的技术人员可针对每一特定应用以不同的方式实施所描述的功能,但这种实施方案决策不应被解释为导致偏离本公开的范围。
[0111]
用于实施结合本文所公开的实例描述的各种说明性逻辑、逻辑块、模块及电路的硬件可使用通用处理器、dsp、asic、fpga或其它可编程逻辑装置、离散栅极或晶体管逻辑、离散硬件组件或经设计以执行本文所描述的功能的其任何组合来实施或执行。通用处理器可为微处理器,但在替代方案中,处理器可为任何常规处理器、控制器、微控制器或状态机。处理器还可经实施为计算装置的组合,例如,dsp与微处理器的组合、多个微处理器、一或多个微处理器与dsp核心的结合、或任何其它此类配置。替代地,一些步骤或方法可由特定于给定功能的电路系统执行。
[0112]
在一些示范性实例中,所描述的功能可在硬件、软件、固件或其任何组合中实施。如果在软件中实施,那么功能可作为一或多个指令或代码存储在非暂时性计算机可读存储媒体或非暂时性处理器可读存储媒体上。本文所公开的方法或算法的步骤可体现在处理器可执行软件模块中,所述处理器可执行软件模块可驻留在非暂时性计算机可读或处理器可读存储媒体上。非暂时性计算机可读或处理器可读存储媒体可为可由计算机或处理器存取的任何存储媒体。以实例的方式但非限制,此类非暂时性计算机可读或处理器可读存储媒体可包含ram、rom、eeprom、快闪存储器、cd-rom或其它光盘存储器、磁盘存储器或其它磁存储器,或可用于以指令或数据结构的形式存储期望程序代码,并可由计算机存取的任何其它媒体。本文所使用的磁盘及光盘包含光盘(cd)、激光光盘、光学盘、数字多功能光盘(dvd)、软盘及蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘用激光以光学方式再现数据。上述组合也包含在非暂时性计算机可读媒体及处理器可读媒体的范围内。此外,方法或算法的操作可作为代码及/或指令的一个或任意组合或集合驻留在可并入计算机程序产品的非暂时性处理器可读存储媒体及/或计算机可读存储媒体上。
[0113]
提供所公开实例的前述描述以使所属领域的技术人员能够制作或使用本公开。对这些实例的各种修改对于所属领域的技术人员来说将是显而易见的,且本文中所定义的一般原理可应用于一些实例,而不脱离本公开的精神或范围。因此,本公开不旨在限于本文所展示的实例,而是被赋予与以下权利要求以及本文所揭示的原理及新颖特征一致的最宽范围。

技术特征:
1.一种用于维持存储器存储装置的一致性的方法,所述存储器存储装置具有多个控制器,所述方法包括:由所述多个控制器的第一和第二控制器生成存取所述存储器存储装置的第一存储器范围的第一请求和存取所述存储器存储装置的第二存储器范围的第二请求;及由所述第一控制器基于所述第一和第二请求的经确定同步而序列化所述第一和第二请求为经序列化请求。2.根据权利要求1所述的方法,其进一步包括:由所述第一控制器将所述经序列化请求发送到所述第一控制器的后端组件及到所述第二控制器的后端组件。3.根据权利要求2所述的方法,其中所述经序列化请求使所述第一控制器的所述后端组件响应于接收到所述经序列化请求而处理所述经序列化请求,其中所述经序列化请求使所述第二控制器的所述后端组件响应于接收到所述经序列化请求而处理所述经序列化请求。4.根据权利要求1所述的方法,其中所述第一请求与生成时间相关联,所述生成时间指示所述第一控制器何时从所述第一控制器生成第一多个请求中的所述第一请求,其中所述第二请求与接收时间相关联,所述接收时间指示所述第一控制器何时从所述第二控制器接收第二多个请求中的所述第二请求,其中序列化包括:由所述第一控制器根据所述接收时间或所述生成时间中的至少一者而交织所述第一多个请求与所述第二多个请求。5.根据权利要求1所述的方法,其中所述第一存储器范围与所述第二控制器的非易失性存储器相关联。6.根据权利要求1所述的方法,其中所述第二存储器范围与所述第一存储器范围重叠。7.根据权利要求5所述的方法,其中所述第二存储器范围与所述第一存储器范围重叠。8.根据权利要求1所述的方法,其进一步包括:由所述第一控制器并在生成所述经序列化请求之前防止所述第一控制器的后端组件处理所述第一请求。9.根据权利要求4所述的方法,其中存取第二多个存储器范围的所述第二多个请求包括多个命令结束控制。10.根据权利要求4所述的方法,其中所述第一多个请求中的每一请求与第一多个操作对应;且其中所述第二多个请求中的每一请求与第二多个操作对应。11.根据权利要求10所述的方法,其中交织所述第一多个请求及所述第二多个请求包括:由所述第一控制器从所述第一多个操作中的每一者提取开始操作,以生成与所述第一多个操作相关联的多个开始操作;由所述第一控制器从所述第二多个操作中的每一者提取开始操作,以生成与所述第二多个操作相关联的多个开始操作;及由所述第一控制器序列化与所述第一多个操作相关联的所述多个开始操作及与所述第二多个操作相关联的所述多个开始操作,以生成所述经序列化请求。12.根据权利要求10所述的方法,其进一步包括:
由所述第一控制器允许所述第二控制器在不将请求发送到所述第一控制器的情况下处理所述第二多个操作中的其它操作。13.一种存储装置,其包括:并排配置的第一控制器及第二控制器,存储器,所述第一控制器包括:后端组件;及前端组件,其经配置以:生成第一请求以存取所述存储器的第一存储器范围;从所述第二控制器接收第二请求以存取所述存储器的第二存储器范围;及同步所述第一请求及所述第二请求以生成经序列化请求。14.根据权利要求13所述的存储装置,其中所述前端组件经进一步配置以:将所述经序列化请求发送到所述第一控制器的所述后端组件;及将所述经序列化请求发送到所述第二控制器的后端组件。15.根据权利要求13所述的存储装置,其中所述第一请求与生成时间相关联,所述生成时间指示所述第一控制器何时生成第一多个请求中的所述第一请求,其中所述第二请求与接收时间相关联,所述接收时间指示所述第一控制器何时从所述第二控制器接收第二多个请求中的所述第二请求,且其中由所述前端组件执行的所述同步经进一步配置以:根据所述接收时间或所述生成时间中的至少一者交织所述第一多个请求与所述第二多个请求。16.根据权利要求13所述的存储装置,其中所述第一存储器范围与所述第二控制器的非易失性存储器相关联。17.根据权利要求13所述的存储装置,其中所述第二存储器范围与所述第一存储器范围重叠。18.根据权利要求16所述的存储装置,其中所述第二存储器范围与所述第一存储器范围重叠。19.根据权利要求15所述的存储装置,其中所述前端组件经进一步配置以:在生成所述经序列化请求之前防止所述第一控制器的所述后端组件处理所述第一多个请求。20.根据权利要求15所述的存储装置,其中存取第二多个存储器范围的所述第二多个请求包括多个命令结束控制。21.根据权利要求15所述的存储装置,其中所述第一多个请求中的每一请求与第一多个操作对应;其中所述第二多个请求中的每一请求与第二多个操作对应。22.根据权利要求21所述的存储装置,其中所述前端组件经进一步配置以:从所述第一多个操作中的每一者提取开始操作,以生成与所述第一多个操作相关联的多个开始操作;从所述第二多个操作中的每一者提取开始操作,以生成与所述第二多个操作相关联的多个开始操作;及序列化与所述第一多个操作相关联的所述多个开始操作及与所述第二多个操作相关
联的所述多个开始操作,以生成所述经序列化请求。23.根据权利要求15所述的存储装置,其中所述前端组件经进一步配置以:允许所述第二控制器在不将请求发送到所述第一控制器的情况下处理所述第二多个操作中的其它操作。

技术总结
本申请涉及用于并排平行多端口操作的多芯片一致性的系统及方法。一种用于维持存储器存储装置的一致性的方法,所述存储器存储装置包括并排配置的多个控制器。所述方法包含由所述多个控制器的第一控制器生成第一多个请求以存取第一多个存储器范围;由所述第一控制器从所述多个控制器的第二控制器接收第二多个请求以存取第二多个存储器范围;及由所述第一控制器序列化所述第一多个请求及所述第二多个请求以生成经序列化请求。个请求以生成经序列化请求。个请求以生成经序列化请求。


技术研发人员:安德鲁
受保护的技术使用者:铠侠股份有限公司
技术研发日:2021.09.17
技术公布日:2023/8/13
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐