多内核管芯上存储器微控制器的制作方法

文档序号:19128303发布日期:2019-11-13 02:21阅读:275来源:国知局
多内核管芯上存储器微控制器的制作方法

在各种实施方案中,本公开涉及非易失性和/或易失性存储器,并且更具体地讲,涉及用于非易失性和/或易失性存储器的管芯上存储器微控制器。



背景技术:

存储器装置可具有状态机,该状态机控制存储器装置的某些操作。然而,一旦状态机进行了“流片”并投入生产,就只能进行最少(如果有的话)改变以解决错误或设计缺陷,这在不大幅延长设计周期的情况下限制了开发和测试灵活性。



技术实现要素:

本发明公开了用于多内核管芯上存储器控制器的设备、系统、方法和计算机程序产品。在一个实施方案中,设备包括集成电路装置中的非易失性存储器单元阵列。在另一个实施方案中,设备包括集成电路装置中的微控制器单元。在某些实施方案中,设备包括微控制器单元的多个处理单元。在一些实施方案中,不同处理单元对非易失性存储器单元阵列并行执行不同类别的任务。

在一个实施方案中,系统包括集成电路装置,该集成电路装置包括多个级,每个级包括一个或多个层。在某些实施方案中,集成电路装置的第一级包括非易失性存储器介质。在另一个实施方案中,集成电路装置的第二级平行于第一级并且从第一级偏移。在一个实施方案中,集成电路装置的第二级包括具有多个处理单元的微控制器。在各种实施方案中,不同处理单元对非易失性存储器介质并行执行不同类型的任务。

在某些实施方案中,另一个设备包括用于存储数据的装置。在一个实施方案中,设备包括用于按照任务类别对用于存储数据的装置的任务进行排序的装置。在一些实施方案中,设备包括用于使用用于存储数据的装置的不同处理单元对用于存储数据的装置并行执行不同类别的任务的装置。

在一个实施方案中,方法包括接收存储器操作的请求。在某些实施方案中,方法包括确定用于完成存储器操作的多个任务。在一个实施方案中,多个任务中的不同任务与不同指令集相关联。在一些实施方案中,方法包括使用微控制器的不同处理单元并行执行多个任务中的不同任务。在一个实施方案中,不同处理单元支持不同指令集。

在一些实施方案中,另一种设备包括用于集成电路装置的存储器阵列的微控制器。在一个实施方案中,微控制器被配置为使用第一处理单元来选择存储器操作的多个任务。在另一个实施方案中,微控制器被配置为使用第二处理单元来控制存储器操作的多个任务的时序。在某些实施方案中,微控制器被配置为使用第三处理单元来设定存储器操作的多个任务的电压。

附图说明

下面参考附图中示出的具体实施方案包括了更具体的描述。应当理解,这些附图仅描绘了本公开的某些实施方案,因此不应被认为是对其范围的限制,通过使用附图,以附加的特异性和细节描述和解释了本公开,在附图中:

图1是示出用于管芯上存储器微控制器的系统的一个实施方案的示意性框图;

图2是示出用于管芯上存储器微控制器的系统的另一个实施方案的示意性框图;

图3是示出管芯上存储器微控制器的一个实施方案的示意性框图;

图4是示出管芯上存储器微控制器的另一个实施方案的示意性框图;

图5是示出具有多个管芯上存储器微控制器内核的系统的一个实施方案的示意性框图;

图6是示出具有多个管芯上存储器微控制器内核的系统的另一个实施方案的示意性框图;

图7是示出具有管芯上存储器微控制器的集成电路装置的一个实施方案的示意性框图;

图8是示出用于管芯上存储器微控制器的方法的一个实施方案的示意性流程图;并且

图9是示出用于管芯上存储器微控制器的方法的另一个实施方案的示意性流程图。

具体实施方式

本公开的各方面可体现为设备、系统、方法或计算机程序产品。因此,本公开的各方面可采取完全为硬件的实施方案、完全为软件的实施方案(包括固件、常驻软件、微代码等)或结合软件和硬件方面的实施方案的形式,这些方面在本文中可全部统称为“电路”、“模块”、“设备”或“系统”。此外,本公开的各方面可采取在存储计算机可读程序代码和/或计算机可执行程序代码的一个或多个非暂态计算机可读存储介质中体现的计算机程序产品的形式。

本说明书中所述的许多功能单元已被标记为模块,以便更具体地强调这些功能单元的实现独立性。例如,模块可被实现为包括定制vlsi电路或门阵列的硬件电路、现成的半导体诸如逻辑芯片、晶体管或其他分立部件。模块还可在可编程硬件装置诸如现场可编程门阵列、可编程阵列逻辑部件、可编程逻辑装置等中实现。

模块还可至少部分地在用于由各种类型的处理器执行的软件中实现。识别的可执行代码模块可例如包括计算机指令的一个或多个物理或逻辑块,该物理或逻辑块可例如被组织为对象、过程或函数。然而,识别的模块的可执行文件无需物理地定位在一起,但可包括存储在不同位置的不同指令,这些不同指令在逻辑地接合在一起时包括该模块并实现针对该模块所述的目的。

实际上,可执行代码模块可包括单个指令或许多指令,并且甚至可以在若干不同代码片段之上、在不同程序之间、跨若干存储器装置等分布。当模块或模块的部分在软件中实现时,这些软件部分可以存储在一个或多个计算机可读存储介质和/或计算机可执行存储介质上。可以利用一个或多个计算机可读存储介质的任何组合。例如,计算机可读存储介质可包括但不限于电子、磁性、光学、电磁、红外或半导体系统、设备或装置,或前述的任何合适组合,但不包括传播信号。在本文档的上下文中,计算机可读存储介质和/或计算机可执行存储介质可以是可包含或存储用于供指令执行系统、设备、处理器或装置使用或与其结合的程序的任何有形和/或非暂态介质。

用于执行本公开的各方面的操作的计算机程序代码可以一种或多种编程语言的任何组合来编写,包括对象取向的编程语言诸如python、java、smalltalk、c++、c#、objectivec等,常规过程式编程语言,诸如“c”编程语言、脚本编程语言,以及/或者其他类似编程语言。程序代码可部分地或完全地在一个或多个用户的计算机上执行,并且/或者通过数据网络等在远程计算机或服务器上执行。

如本文所用,部件包括有形、物理的非暂态装置。例如,部件可被实现为:包括定制vlsi电路、门阵列或其他集成电路的硬件逻辑电路;现成的半导体,诸如逻辑芯片、晶体管,或其他分立装置;以及/或者其他机械装置或电气装置。部件还可在可编程硬件装置诸如现场可编程门阵列、可编程阵列逻辑部件、可编程逻辑装置等中实现。部件可以包括一个或多个硅集成电路装置(例如,芯片、管芯、管芯平面、封装件)或其他分立电气装置,这些装置通过印刷电路板(pcb)的电线等与一个或多个其他部件电连通。在某些实施方案中,本文所述的模块中的每个模块可另选地体现为或实现为部件。

如本文所用,电路包括提供用于电流的一个或多个通路的一组一个或多个电气部件和/或电子部件。在某些实施方案中,电路可包括用于电流的返回通路,使得该电路为闭环。然而,在另一个实施方案中,可将不包括用于电流的返回通路的一组部件称为电路(例如,开环)。例如,无论集成电路是否接地(作为用于电流的返回通路),该集成电路都可被称为电路。在各种实施方案中,电路可包括集成电路的一部分、集成电路、一组集成电路、具有或不具有集成电路装置的一组非集成电气部件和/或电子部件等。在一个实施方案中,电路可包括:定制vlsi电路、门阵列、逻辑电路或其他集成电路;现成的半导体,诸如逻辑芯片、晶体管,或其他分立装置;以及/或者其他机械装置或电气装置。电路还可以实现为可编程硬件装置中的合成电路,诸如现场可编程门阵列、可编程阵列逻辑部件、可编程逻辑装置等(例如,作为固件、网表等)。电路可以包括一个或多个硅集成电路装置(例如,芯片、管芯、管芯平面、封装件)或其他分立电气装置,这些装置通过印刷电路板(pcb)的电线等与一个或多个其他部件电连通。在某些实施方案中,本文所述的模块中的每个模块可体现为或实现为电路。

本说明书通篇所提到的“一个实施方案”、“实施方案”或相似语言是指结合该实施方案所描述的特定特征、结构或特性被包含在本公开的至少一个实施方案中。因此,本说明书通篇出现的短语“在一个实施方案中”、“在实施方案中”和相似语言可以但不一定全部是指同一个实施方案,而是指“一个或多个但不是所有实施方案”,除非另有明确说明。术语“包括”、“包含”、“具有”及其变体是指“包括但不限于”,除非另有明确说明。枚举的项目列表并不意味着项目中的任何或所有项目是互相排斥的和/或相互包容的,除非另有明确说明。术语“一”、“一个”和“该”也指“一个或多个”,除非另有明确说明。

下面参考根据本公开实施方案的方法、设备、系统和计算机程序产品的示意性流程图和/或示意性框图来描述本公开的各方面。应当理解,示意性流程图和/或示意性框图的每个框,以及示意性流程图和/或示意性框图中的框的组合可由计算机程序指令实现。这些计算机程序指令可被提供给计算机的处理器或其他可编程数据处理设备以生产机器,使得经由该处理器或其他可编程数据处理设备执行的指令创建用于实现在示意性流程图和/或示意性框图的一个或多个框中指定的功能和/或动作的装置。

还应当指出,在一些另选的实施方式中,框中示出的功能可以不按图中所示的顺序发生。例如,事实上,连续示出的两个框可基本上同时执行,或者这些框有时可以采用相反的顺序执行,这取决于所涉及的功能。可以设想在功能、逻辑或效果上等同于所示附图的一个或多个框或其部分的其他步骤和方法。尽管在流程图和/或框图中可以采用各种箭头类型和线条类型,但是应当理解这些箭头类型和线条类型不限制相应实施方案的范围。例如,箭头可以指示所描绘的实施方案的枚举的步骤之间的未指定持续时间的等待或监视时段。

在以下具体实施方式中,参考了构成该具体实施方式的一部分的附图。前述发明内容仅是例示性的,并不旨在以任何方式进行限制。除了以上描述的例示性方面、实施方案和特征之外,通过参考附图和以下具体实施方式,另外的方面、实施方案和特征将变得显而易见。每个图中的元件的描述可以参考前面的图的元件。相似的数字可以指代附图中的相似的元件,包括相似的元件的替代实施方案。

图1是用于管芯上存储器微控制器150的系统100的一个实施方案的框图。系统100包括用于非易失性和/或易失性存储器装置120的存储器介质122的一个或多个微控制器150。微控制器150可为非易失性和/或易失性存储器元件123的一部分,并且可与非易失性和/或易失性存储器介质控制器126、装置驱动器等通信。在一些实施方案中,微控制器150可至少部分地在计算装置110的非易失性和/或易失性存储器系统102上操作和/或与之通信,该计算装置可包括处理器111、易失性存储器112和通信接口113。处理器111可包括一个或多个中央处理单元、一个或多个通用处理器、一个或多个专用处理器、一个或多个虚拟处理器(例如,计算装置110可以是在主机内操作的虚拟机)、一个或多个处理器内核等。通信接口113可包括一个或多个网络接口,该一个或多个网络接口被配置为将计算装置110和/或存储器控制器126通信地耦合到通信网络115,诸如互联网协议(ip)网络、存储区域网络(san)、无线网络、有线网络等。

如本文所用,微控制器150包括集成电路装置的一个或多个电路或其他逻辑硬件,诸如存储器介质122的管芯和/或芯片123(例如,存储器元件123或其他集成电路装置)。例如,在一个实施方案中,微控制器150可包括可综合逻辑部件(例如,按以下方式定义:诸如verilog、vhsic硬件描述语言(vhdl)等硬件描述语言;门级网表;软核;以及/或者另一种逻辑设计),该可综合逻辑部件被布置和/或布线到诸如现场可编程门阵列(fpga)的可编程逻辑装置上,被制造为专用集成电路(asic)装置;以及/或者另一种集成电路装置123。在另一个实施方案中,微控制器150可包括模拟和/或混合信号逻辑部件(例如,按照晶体管布局格式、asic、分立逻辑部件、硬核和/或另一种集成电路装置123来定义和/或设计)。

微控制器150可对存储器介质122的存储器元件123执行和/或控制一个或多个任务,诸如管理功能等。微控制器150可包括一个或多个处理单元、处理内核等,它们处理和/或执行微代码或其他计算机可执行代码(例如,指令集)以执行任务或操作。这样,作为制造新集成电路装置或升级固件的替代或补充,可通过更改和/或更新微控制器150的微代码或其他计算机可执行代码来更新微控制器150的一个或多个功能和/或任务。微控制器150可包括易失性和/或非易失性存储器或存储装置,微控制器150可使用该易失性和/或非易失性存储器或存储装置来存储微代码,存储用于和/或来自存储器介质阵列122的数据,存储设置和/或配置参数等。

在某些实施方案中,存储器装置120和/或存储器元件123可用于多种应用和/或环境中。为了在各种温度和其他环境条件下适当地发挥功能,微控制器150和/或存储器元件123的时钟速率可被人为地设定得较低,以在宽泛的操作条件范围内改善稳定性、可靠性等。例如,在各种实施方案中,微控制器150的时钟速率可被设定为小于约50mhz、小于约40mhz、小于约30mhz、小于约20mhz、小于约15mhz、约14mhz、约13.5mhz、约13mhz、约12.5mhz、约12mhz、小于约12mhz等。

然而,在某些实施方案中,微控制器150的这种低时钟速率可被设定为低于微控制器150可使用单个处理单元对存储器介质122执行数据操作的时钟速率而不增加数据操作的延时(例如,单个处理单元或内核在该时钟速率或频率下可能不够快,无法在不减慢读和/或写操作的情况下从非易失性存储器介质123读取数据和/或将数据写入到该非易失性存储器介质123,从而使微控制器150成为瓶颈等)。在一个实施方案中,微控制器150可包括多个处理单元和/或内核,与多个处理单元和/或内核相关联,以及/或者有权访问多个处理单元和/或内核,这些处理单元和/或内核对存储器介质阵列122并行执行不同类别和/或部分的任务(例如,以减少和/或消除慢微控制器时钟速率对存储器介质122的访问延时等的影响)。

如本文所用,处理单元包括与一个或多个微控制器150相关联且能够执行和/或处理一个或多个命令和/或指令(例如,微代码、指令集等)的子块和/或部件。处理单元可为微控制器150的一部分,可由多个微控制器150共享等。处理单元可包括微控制器150的能够执行指令的处理内核、软核、硬核、可综合逻辑部件、模拟和/或混合信号逻辑部件、执行单元、模块、子部件和/或其他部件。在一个实施方案中,不同处理单元可具有单独逻辑和/或物理接口(例如,总线、控制线、地址和/或地址空间等)以便独立地接收命令和/或指令。在其他实施方案中,不同处理单元可共享逻辑和/或物理接口,并且可按照类别、命令类型、指令集、标志、标识符等动态地区分所接收的命令和/或指令。

微控制器150的不同处理单元和/或内核可基于向不同处理单元和/或内核分配的任务的类别和/或类型来支持不同指令集(例如,不同微代码命令和/或指令)。如本文所用,用于处理单元的指令集可包括由处理单元支持和/或与处理单元兼容的一个或多个命令和/或指令。在各种实施方案中,指令集可包括和/或支持一个或多个微代码指令、汇编代码指令、机器指令、存储器指令、装置指令、控制和/或管理指令等。

在一个实施方案中,一个或多个处理单元可执行流控制类别的任务(例如,流控制指令集)。在某些实施方案中,一个或多个处理单元可执行时序控制类别的任务(例如,时序控制指令集)。在另一个实施方案中,一个或多个处理单元可执行数据锁存控制类别的任务(例如,数据锁存控制指令集)。在一个实施方案中,一个或多个处理单元可执行电压控制类别的任务(例如,电压控制指令集)。在某些实施方案中,一个或多个处理单元可执行内建自测(bist)类别的任务(例如,自测指令集)。在一个实施方案中,一个或多个处理单元可执行一种或多种其他类型和/或类别的任务、指令集等。在某些实施方案中,响应于一个指令集中包括的至少一个指令和/或命令不包括在另一个指令集中,两个指令集可为不同的。在一个实施方案中,微控制器150包括和/或支持指令集,该指令集包括由与微控制器150相关联和/或对该微控制器150可用的处理单元支持的不同指令集的组合总和和/或总数。

在一个实施方案中,微控制器150可设置在存储器元件123的边缘和/或周边处或朝向该边缘和/或周边设置,邻近和/或靠近存储器介质阵列122(例如,如图2所描绘)。在另一个实施方案中,微控制器150可设置在集成电路装置123的与存储器介质阵列122不同的级、层和/或平面上(例如,如处于该阵列下方、与该阵列平行且从该阵列偏移等的cmos或其他电路)。在某些实施方案中,将微控制器150形成和/或布置在集成电路装置123的与存储器介质阵列122不同的级上可节省集成电路装置123的空间,从而允许更多的电路(例如,更多或更大的微控制器150和/或微控制器内核150、处理单元、更大的存储器介质阵列122等)、更小的集成电路装置123等。在某些实施方案中,集成电路装置123的不同级之间的穿硅通孔(例如,tsv)可提供一个或多个微控制器150与存储器介质阵列122之间的电连接。

在某些实施方案中,集成电路装置123可包括一个或多个附加微控制器150、微控制器内核150等。不同微控制器150和/或微控制器内核150可位于彼此相同的级和/或层上(例如,与存储器阵列不同的级和/或层,平行于存储器阵列的级且从该级偏移等),可位于多个不同级和/或层上(例如,与存储器阵列不同的多个级和/或层,平行于存储器阵列的级且从该级偏移及彼此偏移等),可位于与存储器阵列相同的一个或多个级和/或层上等。

在一个实施方案中,为了节省集成电路装置123的空间,一个或多个附加微控制器150和/或微控制器内核150可包括更少的处理单元,可包括被配置为执行比第一微控制器150和/或微控制器内核150更少类型和/或类别的任务等的处理单元(例如,初级、主要、控制、完全和/或完整微控制器内核150具有包括更少的处理单元的一个或多个次级、部分、更小和/或减小的微控制器内核150等)。

例如,第一微控制器150和/或微控制器内核150可包括内建自测处理单元和/或与该内建自测处理单元通信,该内建自测处理单元被配置为对存储器介质阵列122执行自测操作,而一个或多个附加微控制器150和/或微控制器内核150可能没有内建自测处理单元。在另一个实施方案中,第一微控制器150和/或微控制器内核150被配置为对存储器阵列执行编程/写和读操作两者,而一个或多个附加微控制器150和/或微控制器内核150可被配置为对存储器阵列执行读操作,但不执行编程/写操作(例如,并且可具有比第一微控制器150更小的覆盖区和/或尺寸)。

在某些实施方案中,第一组一个或多个微控制器150(例如,初级、主要、控制、完全和/或完整微控制器内核150等)可对整个存储器介质阵列122(例如,集成电路装置123的存储器单元的每个通道、子组和/或区域)执行编程/写操作,而第一组一个或多个微控制器150和第二组一个或多个微控制器150(例如,包括更少的处理单元的一个或多个次级、部分、更小和/或减小的微控制器内核150等)两者可对存储器介质阵列122的不同部分(例如,被分配到集成电路装置123的存储器单元的不同通道、子组和/或区域)执行读操作。

在各种实施方案中,存储器装置120可相对于计算装置110设置在一个或多个不同位置。在一个实施方案中,存储器装置120包括一个或多个非易失性和/或易失性存储器元件123,诸如半导体芯片或封装件或设置在一个或多个印刷电路板上的其他集成电路装置、存储外壳、以及/或者其他机械支撑结构和/或电气支撑结构。例如,存储器装置120可包括一个或多个直插式存储器模块(dimm)卡、一个或多个扩展卡和/或子卡、存储器卡、通用串行总线(usb)驱动器、固态驱动器(ssd)或其他硬盘驱动器装置,并且/或者可具有另一个存储器和/或存储形状因数。存储器装置120可与计算装置110的主板集成和/或安装在该主板上,安装在计算装置110的端口和/或插槽中,安装在不同计算装置110上,以及/或者网络115上的专用存储设备上,通过外部总线(例如,外部硬盘驱动器)与计算装置110通信等。

在一个实施方案中,存储器装置120可设置在处理器111的存储器总线上(例如,在与易失性存储器112相同的存储器总线上,在与易失性存储器112不同的存储器总线上,代替易失性存储器112等)。在另一个实施方案中,存储器装置120可设置在计算装置110的外围总线上,诸如外围部件高速互连(pciexpress或pcie)总线、串行高级技术附件(sata)总线、并行高级技术附件(pata)总线、小型计算机系统接口(scsi)总线、firewire总线、光纤通道连接、通用串行总线(usb)、pcie高级交换(pcie-as)总线等。在另一个实施方案中,存储器装置120可设置在数据网络115上,诸如以太网、infiniband网络、经网络115的scsirdma、存储区域网络(san)、局域网(lan)、广域网(wan)诸如互联网、另一个有线和/或无线网络115等。

计算装置110还可包括非暂态计算机可读存储介质114。计算机可读存储介质114可包括可执行指令,这些可执行指令被配置为导致计算装置110(例如,处理器111)执行本文所公开的一个或多个方法的步骤。作为另外一种选择或除此之外,微控制器150可包括存储在非暂态存储介质114上的一个或多个计算机可读指令。

在一个实施方案中,微控制器150可包括非易失性和/或易失性存储器元件123的逻辑硬件、其他可编程逻辑部件、用于非易失性和/或易失性存储器元件123的固件、供非易失性和/或易失性存储器元件123执行的微代码等。在另一个实施方案中,微控制器150可至少部分地包括存储在计算机可读存储介质上的可执行软件代码(例如,微代码),以供非易失性和/或易失性存储器元件123的逻辑硬件执行(例如,以供微控制器150自身、处理器111等执行)。在另一个实施方案中,微控制器150可包括可执行软件代码和逻辑硬件两者的组合。

在一个实施方案中,微控制器150被配置为经由总线125、127、存储器介质控制器126等从装置驱动器或其他可执行应用程序接收请求和/或命令。微控制器150可被进一步配置为经由总线125将数据传输到装置驱动器和/或存储客户端116和/或从装置驱动器和/或存储客户端116传输数据。因此,在一些实施方案中,微控制器150可包括一个或多个直接存储器存取(dma)模块、远程dma模块、总线控制器、桥接器、缓冲器等和/或与之通信,以有利于传输存储请求和相关数据。在另一个实施方案中,微控制器150可接收存储请求和/或刷新命令作为来自存储客户端116的api调用,作为io-ctl命令等。

在一个实施方案中,微控制器150集成在存储器元件123上(例如,管芯上控制器和/或其他逻辑硬件或可执行代码)并且从装置控制器126、主机装置110和/或处理器111接收命令。在其他实施方案中,微控制器150的一部分可设置在装置控制器126或其他内插器上,并且微控制器150的一部分可设置在存储器元件123上等。

根据各种实施方案,存储器控制器126和/或微控制器150可管理一个或多个存储器装置120和/或存储器元件123。一个或多个存储器装置120可包括记录、存储器和/或存储装置,诸如一个或多个固态存储装置和/或一个或多个半导体存储装置,其被布置和/或划分为多个可寻址的介质存储位置。如本文所用,介质存储位置是指存储器的任何物理单元(例如,存储器装置120上的任何数量的物理存储介质)。存储器单元和/或区域可包括但不限于:物理存储位置的页面、存储器分区、块、扇区、集合或集(例如逻辑页面、逻辑块)等。

在某些实施方案中,装置驱动器、存储器介质控制器126和/或微控制器150可向存储客户端116呈现逻辑地址空间134。如本文所用,逻辑地址空间134是指存储器资源的逻辑表示。逻辑地址空间134可包括多个(例如,范围)的逻辑地址。如本文所用,逻辑地址是指用于引用存储器资源(例如,数据)的任何标识符,包括但不限于:逻辑块地址(lba)、柱面/磁头/扇区(chs)地址、文件名、对象标识符、索引节点、通用唯一标识符(uuid)、全局唯一标识符(guid)、哈希码、签名、索引条目、范围、程度等。

用于存储器装置120的装置驱动器可保持元数据135,诸如逻辑到物理地址映射结构,以将逻辑地址空间134的逻辑地址映射到一个或多个存储器装置120上的介质存储位置。装置驱动器可被配置为向一个或多个存储客户端116提供存储服务。存储客户端116可包括在计算装置110上操作的本地存储客户端116和/或能够经由网络115和/或网络接口113访问的远程存储客户端116。存储客户端116可包括但不限于:操作系统、文件系统、数据库应用程序、服务器应用程序、内核级进程、用户级进程、应用程序等。

装置驱动器可通信地耦合到一个或多个存储器装置120。该一个或多个存储器装置120可包括不同类型的存储器装置,包括但不限于:固态存储装置、半导体存储装置、san存储资源、易失性存储器装置、非易失性存储器装置等。该一个或多个存储器装置120可包括一个或多个相应存储器介质控制器126和存储器介质122。装置驱动器可经由传统块i/o接口131提供对该一个或多个存储器装置120的访问。另外,装置驱动器可通过scm接口132提供对增强功能的访问。元数据135可用于管理和/或跟踪通过块i/o接口131、scm接口132、高速缓存接口133或其他相关接口中的任何一者执行的数据操作。

高速缓存接口133可暴露能够经由用于存储器装置120的装置驱动器访问的特定于高速缓存的特征。此外,在一些实施方案中,呈现给存储客户端116的scm接口132提供对由该一个或多个存储器装置120和/或该一个或多个存储器介质控制器126实现的数据转换的访问。

装置驱动器可通过一个或多个接口向存储客户端116呈现逻辑地址空间134。如上所述,逻辑地址空间134可包括多个逻辑地址,每个逻辑地址对应于一个或多个存储器装置120上的相应介质位置。装置驱动器可保持元数据135,该元数据包括逻辑地址和介质位置之间的任何至任何映射等。

装置驱动器还可包括存储器装置接口139和/或与之通信,该存储器装置接口被配置为通过总线125将数据、命令和/或查询传输到该一个或多个存储器装置120,该总线可包括但不限于:处理器111的存储器总线、外围部件高速互连(pciexpress或pcie)总线、串行高级技术附件(ata)总线、并行ata总线、小型计算机系统接口(scsi)、firewire、光纤通道、通用串行总线(usb)、pcie高级交换(pcie-as)总线、网络115、infiniband、scsirdma等。存储器装置接口139可使用一个或多个输入输出控制(io-ctl)命令、一个或多个io-ctl命令扩展、远程直接存储器存取等来与该一个或多个存储器装置120通信。

通信接口113可包括一个或多个网络接口,这些网络接口被配置为将计算装置110和/或存储器控制器126通信地耦合到网络115和/或通信地耦合到一个或多个网络可访问的远程存储客户端116。存储客户端116可包括在计算装置110上操作的本地存储客户端116和/或能够经由网络115和/或网络接口113访问的远程存储客户端116。存储器控制器126是一个或多个存储器装置120的一部分和/或与该一个或多个存储器装置120通信。虽然图1描绘了单个存储器装置120,但本公开在此方面不受限制并且可适于结合任何数量的存储器装置120、一个或多个易失性存储器装置120与一个或多个非易失性存储器装置120的组合等。

存储器装置120可包括存储器介质122的一个或多个元件123。在一个实施方案中,存储器介质122的元件123包括易失性存储器介质122,诸如随机存取存储器(ram)、动态ram(dram)、同步dram(sdram)、双倍数据速率(ddr)sdram、静态ram(sram)、晶闸管ram(t-ram)、零电容ram(z-ram)等。在某些实施方案中,存储器介质122的元件123包括非易失性存储器介质122,诸如reram、忆阻器存储器、可编程金属化单元存储器、相变存储器(pcm、pcme、pram、pcram、双向统一存储器、硫属化物ram或c-ram)、nand闪存存储器(例如,2dnand闪存存储器、3dnand闪存存储器)、nor闪存存储器、纳米随机存取存储器(纳米ram或nram)、基于纳米晶体线的存储器、基于硅氧化物的亚10纳米工艺存储器、石墨烯存储器、硅-氧化物-氮化物-氧化物-硅(sonos)存储器、可编程金属化单元(pmc)存储器、导电桥接ram(cbram)、磁阻ram(mram)、磁存储介质(例如,硬盘、磁带)、光存储介质等。在某些实施方案中,存储器介质122的该一个或多个元件123包括存储级存储器(scm)。

虽然传统技术(诸如nand闪存)可以是块和/或页面可寻址的,但在一个实施方案中,存储级存储器是字节可寻址的。在另外的实施方案中,存储级存储器可以比nand闪存更快和/或具有比nand闪存更长的寿命(例如,耐久性);可具有比dram更低的成本、使用较少的功率,以及/或者具有更高的存储密度;或者提供与其他技术相比的一个或多个其他好处或改进。例如,存储级存储器可以包括reram、忆阻器存储器、可编程金属化单元存储器、相变存储器、纳米ram、基于纳米晶体线的存储器、基于硅氧化物的亚10纳米工艺存储器、石墨烯存储器、sonos存储器、pmc存储器、cbram、mram和/或其变体的一个或多个非易失性存储器元件123。

尽管非易失性存储器介质122在本文中被称为“存储器介质”,但在各种实施方案中,非易失性存储器介质122可更一般地包括能够记录数据的一个或多个非易失性记录介质,该一个或多个非易失性记录介质可被称为非易失性存储器介质、非易失性存储介质等。此外,在各种实施方案中,非易失性存储器装置120可包括非易失性记录装置、非易失性存储器装置、非易失性存储装置等。类似地,在各种实施方案中,非易失性存储器元件123可包括非易失性记录元件、非易失性存储器元件、非易失性存储元件等。

非易失性存储器介质122可包括一个或多个非易失性存储器元件123,该一个或多个非易失性存储器元件可包括但不限于:芯片、封装件、平面、管芯等。非易失性存储器介质控制器126可以被配置为管理非易失性存储器介质122上的数据操作,并可包括一个或多个处理器、可编程处理器(例如,fpga)、asic、微控制器等。在一些实施方案中,非易失性存储器介质控制器126被配置为将数据存储在非易失性存储器介质122上和/或从该非易失性存储器介质122读取数据,以将数据传输到非易失性存储器装置120/从该非易失性存储器装置120传输数据等。

非易失性存储器介质控制器126可以通过总线127通信地耦合到非易失性存储器介质122(例如,通信地耦合到微控制器150)。总线127可包括用于向/从非易失性存储器元件123和/或相关联的微控制器150传送数据的i/o总线。总线127还可包括用于将寻址和其他命令及控制信息传送到非易失性存储器元件123和/或微控制器150的控制总线。在一些实施方案中,总线127可并行地将非易失性存储器元件123(例如,微控制器150)通信地耦合到非易失性存储器介质控制器126。该并行访问可允许非易失性存储器元件123作为组被管理,从而形成逻辑存储器元件129。逻辑存储器元件可被划分为相应的逻辑存储器单元(例如逻辑页面)和/或逻辑存储器分区(例如逻辑块)。逻辑存储器单元可通过将非易失性存储器元件中的每个非易失性存储器元件的物理存储器单元逻辑地组合来形成。

非易失性存储器控制器126和/或微控制器150可包括在计算装置110上执行的装置驱动器和/或与之通信。装置驱动器可经由一个或多个接口131、132和/或133向存储客户端116提供存储服务。在一些实施方案中,装置驱动器提供块装置i/o接口131,存储客户端116通过该块装置i/o接口执行块级i/o操作。作为另外一种选择或除此之外,装置驱动器可提供存储级存储器(scm)接口132,该scm接口可向存储客户端116提供其他存储服务。在一些实施方案中,scm接口132可包括对块装置接口131的扩展(例如,存储客户端116可通过对块装置接口131的扩展或添加来访问scm接口132)。作为另外一种选择或除此之外,scm接口132可作为单独的api、服务和/或库来提供。装置驱动器可被进一步配置为使用非易失性存储器系统102提供用于缓存数据的高速缓存接口133。装置驱动器还可包括非易失性存储器装置接口139,该非易失性存储器装置接口被配置为通过总线125将数据、命令和/或查询传输到非易失性存储器介质控制器126和/或微控制器150,如上所述。

图2示出了可包括具有一个或多个微控制器150的一个或多个存储器管芯或芯片212的非易失性存储装置210的一个实施方案。非易失性存储装置210可基本上类似于参照图1所述的非易失性存储器装置120。虽然图2的该一个或多个微控制器150被描绘为朝向存储器管芯和/或芯片212的周边(例如,在与集成电路装置123中的存储器阵列200相同的物理级上),但在其他实施方案中,一个或多个微控制器150可设置在存储器管芯和/或芯片212的与存储器阵列200不同的物理级上(例如,平行于集成电路装置123中的存储器阵列200的级并从该级偏移),如图7所描绘。

在一些实施方案中,存储器管芯212包括存储器单元阵列200(例如,二维或三维)、管芯上控制器220和读/写电路230a/230b。在一个实施方案中,通过各种外围电路对存储器阵列200的存取在阵列的相对侧上以对称方式实现,使得每侧的接入线路和电路的密度减少一半。在又一个实施方案中,读/写电路230a/230b包括允许并行地读取存储器单元的页面或将其编程的多个感测块250。在某些实施方案中,感测块250与该一个或多个微控制器150通信。

在各种实施方案中,可经由行解码器240a/240b通过字线来对存储器阵列200进行寻址,以及经由列解码器242a/242b通过位线来对该存储器阵列200进行寻址。在一些实施方案中,控制器244被包括在同一存储器装置210(例如,可移除存储卡或封装)中,作为一个或多个存储器管芯212。命令和数据经由线路232在主机和控制器244之间传输,并且经由线路234在控制器和一个或多个存储器管芯212之间传输。一个实施方式可包括多个芯片212。

在一个实施方案中,管芯上控制器220与读/写电路230a/230b配合以在存储器阵列200上执行存储器操作。在某些实施方案中,管芯上控制器220包括微控制器150、片上地址解码器224和功率控制电路226。在一个实施方案中,片上地址解码器224和/或功率控制电路226可为微控制器150的一部分和/或由该微控制器150控制。

在一个实施方案中,微控制器150提供存储器操作的芯片级控制。片上地址解码器224提供地址接口,其用以在由主机或存储器控制器使用的地址到由解码器240a、240b、242a、242b使用的硬件地址之间转换。功率控制电路226控制在存储器操作期间提供给字线和位线的功率和电压。在一个实施方案中,功率控制电路226包括一个或多个电荷泵,其可以产生大于供电电压的电压。

在一个实施方案中,管芯上控制器220、微控制器150、功率控制电路226、解码器电路224、解码器电路242a、解码器电路242b、解码器电路240a、解码器电路240b、读/写电路230a、读/写电路230b和/或控制器244中的一者或任何组合可被称为一个或多个管理电路。

图3描绘了具有管芯上存储器微控制器单元150的系统300的一个实施方案。在某些实施方案中,图3的微控制器150可基本上类似于图1的微控制器150和/或图2的微控制器150。

在所描绘的实施方案中,微控制器150包括多个处理单元302a-n和/或与该多个处理单元302a-n通信。一些处理单元302a,302b,302n在微控制器150的内部和/或是该微控制器150的一部分,而其他处理单元302c,302d在微控制器150的外部(例如,外部处理单元、功能单元等)并与微控制器150通信(例如,并且可与一个或多个附加微控制器150和/或微控制器内核150通信)。在某些实施方案中,微控制器150外部的处理单元302c,302d可设置在与集成电路装置123内的微控制器150相同的级(例如,一个或多个层、平面等)中(例如,在存储器阵列200下方等)。

在各种实施方案中,处理单元302a-n可包括读处理单元302、编程/写处理单元302、内建自测处理单元302、流控制处理单元302、时序控制处理单元302、电压控制处理单元302和/或数据锁存控制处理单元302等中的一者或多者。处理单元302a-n可执行不同类别的任务,诸如流控制任务、时序控制任务、数据锁存控制任务、电压控制任务和/或内建自测任务等。

在某些实施方案中,即使在微控制器150和/或相关联的集成电路装置123的硬件已经完成和/或制造、处于实际应用中等之后,使用微控制器150(例如,作为有限状态机的替代和/或补充等)也可允许在不改变硬件的情况下对微控制器150的时序、电压、逻辑操作、指令、命令、微代码等进行动态更新和/或更改。在一个实施方案中,并行(例如,多线程)操作的多个处理单元302a-n可允许微控制器150在比原本可能的时钟速度更低的时钟速度下操作,同时也不会增加存储器阵列200上的存储器操作(例如,读、编程/写、擦除)的延时。

在某些实施方案中,每个处理单元302包括读端口,处理单元302可使用该读端口从易失性存储器模块(例如,下文参照图4描述的易失性存储器模块406等)访问指令/命令和/或数据。处理单元3021-n之间的通信可通过传输命令和数据两者的标准接口(例如,用于不同类型的处理单元302a-n的相同协议)进行。在一个实施方案中,相同接口可用于微控制器150内的处理单元302a,302b,302n并且用于微控制器150外部的处理单元302c,302d。

图4描绘了具有管芯上存储器微控制器150的系统400的一个实施方案。在某些实施方案中,微控制器150可基本上类似于上述图1的微控制器150、图2的微控制器150和/或图3的微控制器150中的一者或多者。在所描绘的实施方案中,微控制器150包括流控制处理单元402a、时序控制处理单元402b、数据锁存控制处理单元402c和电压控制处理单元402d,它们各自与易失性存储器406并与微控制器150外部的一个或多个外部处理单元404a-n通信。

在某些实施方案中,流控制处理单元402a可控制和/或跟踪对存储器阵列200的一个或多个存储器操作(例如,读操作、写/编程操作、擦除操作、管理操作诸如垃圾收集操作等)的执行。例如,流控制处理单元402a可引导不同存储器操作的一系列状态,从而管理一个或多个其他处理单元402(例如,时序控制单元402b、数据锁存控制单元402c、电压控制单元402d、一个或多个外部处理单元404a-n等)以执行不同存储器操作,向它们发送命令/指令,在不同存储器操作期间确定其他处理单元402,404的状态等。在一个实施方案中,流控制处理单元402a可管理存储器操作的数据路径(例如,在装置控制器126与存储器阵列200之间,在微控制器150与存储器阵列200之间等)。在一些实施方案中,流控制处理单元402a可管理微控制器150的一个或多个内部数据总线、包括微控制器150的集成电路装置123等的一个或多个内部数据总线。

在一个实施方案中,流控制处理单元402a可包括或另外包括读处理单元,该读处理单元被配置为(例如,与一个或多个其他处理单元402a-n,404a-n并行地)执行和/或管理微代码、汇编代码和/或其他计算机可执行代码的子例程以从存储器阵列200读取数据并且将读取的数据提供给装置控制器126、主机装置110、存储客户端116等(例如,响应于来自装置控制器126、主机装置110、存储客户端116等的读请求)。

在一个实施方案中,流控制处理单元402a可包括或另外包括写/编程处理单元,该写/编程处理单元被配置为(例如,与一个或多个其他处理单元402a-n,404a-n并行地)执行和/或管理微代码、汇编代码和/或其他计算机可执行代码的子例程以响应于来自装置控制器126、主机装置110、存储客户端116等的写请求而将数据写入/编程到存储器阵列200。如下文参照图6所述,在某些实施方案中,第一微控制器150a可包括具有写/编程处理单元和读处理单元的流控制处理单元402a,而一个或多个其他微控制器150b-n包括读处理单元而没有写/编程处理单元(例如,以节省功率、电路尺寸/空间等)。

在一个实施方案中,流控制处理单元402a包括内建自测处理单元。如下文参照图6所述,在某些实施方案中,第一一个或多个微控制器150a包括用于集成电路装置123和/或存储器阵列200的内建自测处理单元,而一个或多个其他微控制器150b-n不包括内建自测处理单元(例如,以节省功率、电路尺寸/空间等)。

在一个实施方案中,在多微控制器150系统中,没有内建自测处理单元的一个或多个尺寸减小的微控制器150在由相同集成电路装置123的初级或全尺寸微控制器150的内建自测处理单元执行的管芯拣选或其他测试、验证和/或确认过程期间可为空闲的。在一个或多个尺寸减小的微控制器150未使用的情况下,与空闲的微控制器150相关联的易失性存储器406的至少一部分也可为未使用的且为可用的。在某些实施方案中,流控制处理单元402a可在由流控制处理单元402a的内建自测处理单元执行的测试期间利用一个或多个空闲的微控制器150的易失性存储器406的可用过剩容量来存储并处理从存储器阵列200读出的数据以便进行测试。

流控制处理单元402a可使测试数据从存储器阵列200流动到易失性存储器406,其中内建自测单元可处理该数据以检查有否错误等。流控制处理单元402a的内建自测处理单元可执行一个或多个数据传输、数据处理、定时器功能等以测试集成电路装置123和/或存储器阵列120的一个或多个功能(例如,以识别并标记一个或多个坏位线、坏字线、坏擦除块;以对测试器、主机装置110、存储客户端116等生成一个或多个测试和/或错误报告)。

在一个实施方案中,流控制处理单元402a可包括一个或多个中断端口(例如,软或逻辑中断端口、硬物理或电中断端口等),流控制处理单元402a可通过该中断端口接收一个或多个信号(例如,操作模式选择信号、反馈信号、编程和/或擦除脉冲计数、编程和/或擦除验证通过或失败信号、以及/或使流控制处理单元402a能够管理对微控制器150的一个或多个存储器操作的其他中断或其他信号)。

在某些实施方案中,流控制处理单元402a可向装置控制器126、主机装置110、存储客户端116等提供微控制器150的状态(例如,就绪、忙碌等),并且可接收对微控制器150和/或存储器阵列200的一个或多个命令和/或操作。流控制处理单元402a可使用该一个或多个中断端口对命令快速(例如,基本上立即)作出响应,而非定期轮询命令并引入延时和延迟。流控制处理单元402a可基于该一个或多个中断端口上的信号、所接收的对操作的命令等来选择/确定供微控制器150的一个或多个处理单元402a-d,404a-n执行的子例程。

例如,在一个实施方案中,流控制处理单元402a可(例如,从装置控制器126、主机装置110、存储客户端116等)接收命令中断信号(例如,单个位等)、命令索引(例如,指示命令中断信号正在调用哪个预定义操作的多个位)、命令操作代码或操作码(例如,指示中断类型诸如命令中断、暂停中断、恢复中断、重置中断等的多个位)和/或一个或多个其他中断信号,流控制处理单元402a可基于以上信号来选择/确定包括对微控制器150的一个或多个处理单元402a-d,404a-n的一个或多个指令的子例程。

在某些实施方案中,流控制处理单元402a可对硬中断请求作出响应,可将所接收的命令索引复制到微控制器150的程序计数器中(例如,复制到程序计数器的较低位或另一个预定义位置中)等。与程序计数器中的命令索引相对应的指令可包括无条件跳越指令,该无条件跳越指令指向执行所请求的操作的目标子例程。

在一个实施方案中,流控制处理单元402a可管理一个或多个其他处理单元402a-d,404a-n以避免读后写冲突和/或一个或多个其他冲突(例如,写后读冲突、写后写冲突、结构冲突、控制冲突等)。例如,流控制处理单元402a可使用单中断等待(siw)指令和/或组中断等待(giw)指令作为等待语句等,以主动检查并等待流控制处理单元402a外部的状态(例如,等待软/逻辑中断信号、硬/物理中断信号、另一个预定义条件等),从而实施执行次序以避免读后写冲突、另一个冲突等。

在某些实施方案中,流控制处理单元402a可通过使用一个或多个中断等待指令(例如,siw和/或giw)来管理一个或多个其他处理单元402a-d,404a-n的执行次序。例如,流控制处理单元402a可执行第一指令序列,执行识别中断条件(例如,外部信号等)的siw和/或giw命令,等待中断条件,并且响应于满足中断条件而执行第二指令序列。

在一个实施方案中,giw等待指令基本上类似于siw等待指令,不同的是其引起流控制处理单元402a等待预定义组中的多个中断信号(例如,硬件中物理地分组的多个中断信号等)。在某些实施方案中,giw等待指令可以是可配置的以在所选择的多个中断信号间选择性地使用二进制运算符and或二进制运算符or。例如,如果选择了and二进制运算符,则giw等待指令将一直等待到其接收到所有所选择的多个中断信号。如果选择了or二进制运算符,则giw等待指令将一直等待到其接收到所选择的多个中断信号中的任何一个,之后giw等待指令才允许流控制处理单元402a继续。

在某些实施方案中,如果多个目标中断信号未被物理地分组并且因此giw等待指令可不用于该多个目标中断信号,则流控制处理单元402a可支持一系列连续siw指令,它们一起可像单个giw指令等那样起作用。

在一个实施方案中,流控制处理单元402a充当一个或多个其他处理单元402b-d,404a-n的命令中心。流控制处理单元402a可将命令和/或数据发送到其他处理单元402b-d,404a-n并且监测其状态。在某些实施方案中,该一对所有通信模式可减少微代码和设计复杂性。在一个实施方案中,为了使流控制处理单元402a所使用的指令存储器空间406最小化和/或防止流控制处理单元402a成为性能瓶颈,流控制处理单元402a可控制并跟踪一些任务,但可为一个或多个处理单元402b-d,404a-n调用其他任务而不监测和/或跟踪进行中的状态。

为了促进和/或简化流控制处理单元402a进行的控制,在某些实施方案中,一个或多个其他处理单元402b-d,404a-n可具有基本上类似的接口(例如,标准接口等)。一个或多个不同处理单元402a-d,404a-n可具有标准接口,但可支持用于执行不同类别和/或类型的任务的不同指令集。

虽然可由处理单元402b-d,404a-n通过流控制处理单元402a的标准接口协议来控制许多任务(例如,具有复杂算法和/或重复执行),但对于某些类型的操作而言可存在其他较小和/或一次性执行的任务。在存在许多此类小任务的实施方案中,流控制处理单元402a可包括扩展的和/或可定制的接口以便为这些任务、为随时间推移的新任务、为定制任务等提供支持。

例如,流控制处理单元402a可支持微控制器150的控制寄存器阵列(例如,64位×16位等)中的一个或多个命令表。在某些实施方案中,可通过流控制处理单元402a的加载(lod)和/或存储(str)指令来访问控制寄存器阵列。控制寄存器阵列的空间的至少一部分可为虚拟的,因为流控制处理单元402a的设计仅可占用该空间的子集(例如,64个寄存器中的5个等)。控制寄存器阵列的其余部分可相对独立于流控制处理单元402a,供定制任务使用等。在某些实施方案中,未为流控制处理单元402a保留的控制寄存器阵列中的一个或多个寄存器可存储定制命令表以扩展微控制器的功能以便执行小任务、一次性任务、随时间推移的新任务等。

在一些实施方案中,一对所有通信模式可使用流控制处理单元402a与时序控制处理单元402b之间的往返信号/命令对,该时序控制处理单元402b可控制微控制器150的速度。时序控制处理单元402b的输出在整个存储器存取操作中可被递送到存储器阵列200的一个或多个外围模块,以控制存储器存取操作的时序。如果流控制处理单元402a仍然是微控制器150中的唯一主模块,则当流控制处理单元402a将命令发送到时序控制单元402b并且从时序控制处理单元402b接收反馈信号(例如,通过流控制处理单元402a的中断接口等)时,其可使用使流控制处理单元402a与时序控制单元402b同步的处理时间和/或易失性存储器406开销,来监测时序控制处理单元402b对于存储器阵列200上的存储器存取操作的每个步骤的进度。

为了改善微控制器150的处理单元402a-d,404a-n和/或管道的并行性,为了减少微代码的行数,节省指令/数据存储器空间406等,处理单元402a-d,404a-n中的一者或多者可包括一个或多个缓冲器和/或输出级。虽然流控制处理单元402a仍可为微控制器150的主设备,但当由流控制处理单元402a启用时,时序控制处理单元402b可变成流控制处理单元402a的代理,其以及时的方式触发其他处理单元402c-d,404a-n在存储器阵列200上进行一个或多个存储器操作。

当时序控制单元402b可控制整个微控制器150的时序和/或速度时,时序控制处理单元402b可了解存储器操作的执行进度。与流控制处理单元402a相比,时序控制处理单元402b可具有更多可用空间(例如,在与时序控制单元402b相关联的易失性存储器406中)来扩展时序控制处理单元402b的指令集,这可用于使时序控制处理单元402b能够充当流控制处理单元402a的代理。例如,时序控制处理单元402b的指令编码表中的仅小部分空间可填充有指令识别代码、自变量和开关(例如,启用/禁用位),从而在时序控制处理单元402b指令编码表中留出空间以包括更多自变量和开关。

在某些实施方案中,时序控制处理单元402b的指令编码表的过剩容量可存储阵列(例如,8位阵列等),该阵列定义时序控制处理单元402b的触发器以用于触发其他处理单元402c-d,404a-n等。例如,流控制处理单元402a可起动和/或启动时序控制处理单元402b以运行子例程。时序控制处理单元402b可作为后台过程(例如,与流控制处理单元402a并行地)运行以向流控制处理单元402a、数据锁存控制单元402c、电压控制处理单元402d、一个或多个外部处理单元404a-n等提供一个或多个触发器。

流控制处理单元402a可将准备命令发送到一个或多个其他处理单元402b-d,404a-n以准备下一个任务、提供更新、准备缓冲器中的输出等。在各种实施方案中,流控制处理单元402a可等待或可不等待时序控制处理单元402b的有关发送下一个准备命令的触发器,其取决于相关联的任务。时序控制处理单元402b可触发一个或多个其他处理单元402a,402c,402d,404a-n以将缓冲值复制到相关联的输出级等(例如,以完成任务、触发任务的下一个步骤等)。

流控制处理单元402a可将初始化命令(例如,起动命令、准备命令等)发送到处理单元402b-d,404a-n,并且时序控制处理单元402b可将有关启动任务的后续部分的触发器发送到处理单元402c-d,404a-n,可将反馈发送到流控制处理单元402a(例如,通过流控制处理单元402a的中断端口或其他中断接口)等。来自时序控制处理单元402b的触发信号可触发另一个处理单元402c-d,404a-n提供输出信号、值等(例如,触发数据锁存控制处理单元402c将值加载到数据锁存器中,触发电压控制处理单元402d提供输出电压等),以完成任务,作为任务的中间步骤等。

例如,电压控制处理单元402d可将来自微控制器150的二进制和/或数字值转换为用于存储器阵列200的模拟电压(例如,编程电压、擦除电压、读电压、偏置电压、字线电压、位线电压、抑制电压等)。在某些实施方案中,数据锁存控制处理单元402c可控制用于存储器阵列的一个或多个数据缓冲器、用于存储器阵列200的逻辑电路(例如,控制感测放大器250、读/写电路230、行解码器240等的ylog逻辑电路)和/或用于集成电路装置123的存储器阵列200的其他电路。

在一个实施方案中,数据锁存控制处理单元402c可将来自易失性存储器406的数据解码成命令索引(例如,将32位和/或64位sram数据解码成一个或多个命令索引等)。在某些实施方案中,数据锁存控制处理单元402c可使用硬编码的组合逻辑和/或其他规则将解码的命令索引转换成一个或多个命令(例如,ylog命令)。数据锁存控制处理单元402c可在每个时钟周期或每组时钟周期缓冲预定数量的命令。例如,数据锁存控制处理单元402c可在每个时钟周期缓冲四个命令并且在时钟周期的每四分之一(例如,80纳秒时钟周期的每20纳秒等)输出四个逻辑命令中的一个。数据锁存控制处理单元402c可将预定义命令序列(例如,ylog命令序列)存储在易失性存储器406等中。

例如,在一个实施方案中,数据锁存控制处理单元402c可存储约64、128、256个或更多个命令序列,每个命令序列包括命令的一个或多个有序列表。在各种实施方案中,命令序列可包括单个命令、多个命令、至多五个命令、至多十个命令、至多十三个命令、至多十五个命令、至多二十个命令、超过二十个命令等。

微控制器150可提供数据锁存器中存储的值的灵活控制,其中数据锁存控制处理单元402c基于解码为命令序列的命令索引将数据存储在数据锁存器中,并且流控制处理单元402a选择性地重写一个或多个数据锁存器中存储的数据。例如,流控制处理单元402a可启动数据锁存控制处理单元402c执行子例程(例如,微代码或其他计算机可执行程序代码)以产生命令序列(例如,用于存储器阵列200和/或用于感测放大器250、读/写电路230、行解码器240等的一个或多个命令),流控制处理单元402a可将一个或多个数据值直接存储到一个或多个数据锁存器;流控制处理单元402a可掩蔽、截断、更改、更新和/或覆写用于数据锁存器的命令索引。

在某些实施方案中,用于存储器阵列200的读命令可具有比编程和/或擦除命令更高的优先级(例如,在nand闪存存储器中,读操作可基本上比编程和/或擦除操作等更快地执行)。微控制器150可响应于接收到中间读请求等而从执行编程或擦除命令序列切换到读命令序列,并且响应于读指令序列完成而切换回编程或擦除命令序列。微控制器150可在其在编程或擦除命令序列中停止的地方切换回编程或擦除子例程。

在一个实施方案中,微控制器150可包括一组影子寄存器,该组影子寄存器存储指示暂停在何处起作用的微控制器150的状态。然而,在某些实施方案中,为了使用比影子寄存器更少的功率和电路空间,流控制处理单元402a可将用于处理单元402a-d,404a-n的寄存器文件和挂起命令序列推送到线程切换堆栈,并且可响应于在中间读操作之后恢复编程或擦除操作而从线程切换堆栈弹出寄存器文件和挂起命令序列。处理单元402a-d,404a-n可在其停止的地方开始该中断的编程或读操作,或可重新执行命令序列中的某些命令以重新建立适当的操作状态等。与使用影子寄存器相比,使用线程切换堆栈可为整个微控制器150添加更少的寄存器,同时允许流控制处理单元402a和时序控制处理单元402b保持同步,以使得即使在恢复中断的编程或擦除操作之后,其他处理单元402c-d,404a-n也能够在时序控制处理单元402b触发它们时准备正确缓冲值。

图5描绘了具有由线程管理单元502同步和/或管理的多个管芯上存储器微控制器内核150a-n的系统500的一个实施方案。在所描绘的实施方案中,每个微控制器内核150a-n具有类似尺寸(例如,可具有类似处理单元302a-302d、类似数量的处理单元302a-302d等)。

在某些实施方案中,每个微控制器内核150a-n可与存储器介质122的不同子组(例如,一个或多个不同管芯、管芯平面、块、擦除块等)相关联,各自能够对存储器介质122的相关联子组执行编程、读和/或擦除操作。在另一个实施方案中,不同微控制器内核150a-n可被配置为对存储器介质122的任何所选择的子组(例如,一个或多个不同管芯、管芯平面、块、擦除块等)执行编程、读和/或擦除操作。

图6描绘了具有线程管理单元502和多个管芯上存储器微控制器内核150a-n的系统600的另一个实施方案。在所描绘的实施方案中,一个微控制器内核150a具有比一个或多个附加微控制器内核150b-n更大的尺寸(例如,微控制器内核150a可具有比该一个或多个附加微控制器内核150b-n更多和/或更大的处理单元302a-302d,该一个或多个附加微控制器内核具有更少和/或更小的处理单元302a-c等)。

多个全尺寸微控制器内核150a-n(各自具有完整功能,如图5中所描绘)可消耗集成电路装置123的更大量的功率和/或电路区域。在图6中,系统600包括一个或多个全尺寸微控制器内核150a以及一个或多个尺寸减小和/或部分的微控制器内核150b-n(例如,以节省功率、减小电路尺寸等)。例如,在所描绘的实施方案中,仅出于举例说明的目的,第一全尺寸微控制器内核150a包括四个处理单元302a-d,而一个或多个部分和/或尺寸减小的微控制器内核150b-n包括三个处理单元302a-c(例如,小于全尺寸控制器内核150a)。

该一个或多个部分和/或尺寸减小的微控制器内核150b-n可能已将不必要的寄存器、很少使用的指令、指针堆栈、寄存器文件条目等去除以减小尺寸。在某些实施方案中,部分和/或尺寸减小的微控制器内核150b-n可能能够执行所有用户模式操作、预定义组的用户模式操作等,但可小于全尺寸、完整微处理器内核150a。全尺寸、完整微控制器150a可能能够执行用户模式操作和内建自测测试模式操作两者。

例如,全尺寸、完整微控制器150a可包括具有内建自测处理单元的流控制处理单元402a,而部分和/或尺寸减小的微控制器内核150b-n可包括没有内建自测处理单元的流控制处理单元402a。在另一个实施方案中,全尺寸、完整微控制器150a可包括具有读处理单元和编程/写处理单元两者的流控制处理单元402a,而部分和/或尺寸减小的微控制器内核150b-n可包括具有读处理单元但没有编程/写处理单元的流控制处理单元402a。

全尺寸、完整微控制器150a可对集成电路装置123的存储器介质122的每个不同子组(例如,一个或多个不同管芯、管芯平面、块、擦除块等)执行一个或多个操作(例如,编程操作、擦除操作、内建自测测试操作等),这是由于该一个或多个部分和/或尺寸减小的微控制器内核150b-n可能不支持该一个或多个操作。在某些实施方案中,对于每个微控制器内核150a-n支持的操作(例如,读操作)而言,不同微控制器内核150a-n可被分配到集成电路装置123的存储器介质122的不同子组(例如,一个或多个不同管芯、管芯平面、块、擦除块等)。

例如,在一个实施方案中,集成电路装置123的管芯可包括多个管芯平面(例如,四个管芯平面),每个管芯平面具有能够并行执行存储器操作的单独存储器阵列200。管芯平面可设置在集成电路装置123的彼此相同的级(例如,半导体、金属或其他导体、绝缘体等的一个或多个层)中(例如,在相同级中相邻)或在不同偏移级中平行等。

在一个实施方案中,可为每个管芯平面分配不同微控制器内核150a-n以便进行由每个微控制器内核150a-n支持的操作(例如,读操作),而单个微控制器内核150a(例如,全尺寸、完整微控制器内核150a)可执行不由每个管芯平面的每个微控制器内核150a-n支持的一个或多个操作(例如,编程操作、擦除操作、内建自测测试操作等)。例如,在具有四个管芯平面、能够为四个管芯平面中的每一者执行编程操作的一个全尺寸微控制器内核150a以及三个附加尺寸减小的微控制器内核150b-n的实施方案中,在所有四个微控制器内核150a-n被分配到不同管芯平面以便执行读操作的情况下,可并行执行至多四个读操作、或编程操作和三个读操作等。

这样,在某些实施方案中,可在多个存储器管芯或存储器的其他区域上并行执行高优先级操作(例如,读操作等),同时仍使功耗和电路尺寸最小化。在某些实施方案中,一次仅执行单个编程和/或擦除操作对于功率管理可为最佳的,这是由于峰值功率用于编程和/或擦除操作,而读操作可使用更少功率。

在一个实施方案中,该一个或多个更小、尺寸减小的微控制器内核150b-n各自可包括时序控制处理单元402b。在某些实施方案中,与更大的全尺寸微控制器内核150a中相比,用于该一个或多个更小、尺寸减小的微控制器内核150b-n的流控制处理单元402a可更小(例如,被减小、被去除、具有更小的指令集、具有足以执行读操作但不执行编程操作的逻辑等)。

在另一个实施方案中,该一个或多个更小、尺寸减小的微控制器内核150b-n可不具有流控制处理单元402a,而是流控制处理单元402a的逻辑和/或功能的一部分可与时序控制处理单元402b组合等。在一个实施方案中,多个更小、尺寸减小的微控制器内核150b-n可共享单个数据锁存控制处理单元402c等。在某些实施方案中,全尺寸微控制器内核150a和尺寸减小的微控制器内核150b-n两者可共享相同固件代码,但可执行不同子例程等。在一个实施方案中,易失性存储器缓冲器406可被减小尺寸、被共享、被消除等以减小一个或多个尺寸减小的微控制器内核150b-n中的电路尺寸。

在某些实施方案中,可能有利的是每个微控制器内核150a-n包括单独的时序控制处理单元402b,以使得集成电路装置123的存储器介质122的每个通道、管芯平面或其他子组可接收连续、单独的时序控制。在另一个实施方案中,每个微控制器内核150a-n可包括单独的流控制处理单元402a,因为不同微控制器内核150a-n间的线程切换可对性能不利,原因在于不同微控制器内核150a-n之间的同步增加以及频繁切换。流控制处理单元402a和/或时序控制处理单元402b的缩减版本(例如,以处理读操作但不处理编程操作等)可具有精简指令集、减小的易失性存储器406等。

在某些实施方案中,线程管理单元(tmu)502将命令分布到不同微控制器内核150a-n(例如,用于集成电路装置123的存储器介质122的不同通道、管芯平面和/或其他子组等的命令)。例如,线程管理单元502可从装置控制器126接收命令(例如,读命令、写/编程命令、擦除命令、测试命令等),并且选择微控制器内核150a-n(例如,基于该命令的地址或其他指示符,基于哪些微控制器150a-n可用和/或忙碌等)。线程管理单元502可将命令的状态报告回装置控制器126(例如,响应于微控制器完成命令、命令执行期间的忙碌状态等)。

在各种实施方案中,线程管理单元502可在微控制器内核150a-n之间分配共享资源(例如,外部处理单元404a-n、共享易失性存储器406等),可管理微控制器内核150a-n的功率(例如,唤醒和/或休眠不同微控制器内核150a-n以管理功率等),管理微控制器内核150a-n之间的争用和/或冲突,以及/或者以其他方式协调不同微控制器内核150a-n。

在某些实施方案中,线程管理单元502将来自不同微控制器内核150a-n的每个流控制处理单元402a的命令分派到目标时序控制处理单元402b,从而允许一个微控制器内核150a-n的流控制处理单元402a与不同微控制器内核150a-n的时序控制处理单元402b之间的通信、共享任务、转移任务等。

例如,用于更大的全尺寸微控制器150a的流控制处理单元402a可管理对集成电路装置123的存储器介质122的每个管芯平面或其他子组的编程操作,而微控制器内核150a-n的时序控制处理单元402b可专用于存储器介质122的不同管芯平面或其他子组(例如,以简化导线的布置和布线等),并且线程管理单元502可将来自流控制处理单元402a的命令、任务等发送到用于编程操作的其他时序控制处理单元402b,以将来自流控制处理单元402a的命令链接到用于编程操作的正确通道(例如,管芯平面)。

在某些实施方案中,线程管理单元502可使用分配表和多路复用器将来自全尺寸微控制器150a的流控制处理单元402a的操作、命令和/或任务路由到与用于编程操作的通道相关联的时序控制处理单元402b,并且将来自(例如,尺寸减小的微控制器150b-n的)其他流控制处理单元402a的任务路由到与其相应通道相关联的时序控制处理单元402b。

图7是示出具有管芯上存储器微控制器150的集成电路装置700的一个实施方案的示意性框图。在所描绘的实施方案中,存储器阵列200(例如,一个或多个管芯平面等)处于集成电路装置700的一个级(例如,导体、绝缘体、半导体等的一个或多个层)中,并且微控制器150和其他电路704(例如,感测放大器、字线开关等)处于集成电路装置700的不同级中(例如,在阵列200下方),并且通过一个或多个互连件702(例如,绝缘层、导电层、穿硅通孔、孔、总线等)来与存储器阵列200通信。在所描绘的实施方案中,存储器阵列200处于集成电路装置700的第一级中,并且微控制器150处于集成电路装置700的第二级中,该第二级平行于第一级并从第一级偏移。衬底706包括集成电路装置700的第三级(例如,其上形成和/或沉积有一个或多个其他层的支撑结构),并且平行于其他层并从其他层偏移。

图8是示出用于管芯上存储器微控制器150的方法800的一个实施方案的示意性流程图。方法800开始,并且微控制器150在802处接收对集成电路装置123的存储器阵列200的存储器操作的请求(例如,读请求、写/编程请求、擦除请求等)。

流控制处理单元402a和/或线程管理单元502在804处向不同处理单元302a-n,402a-d,404a-n分配在802处接收到的对存储器操作的请求的任务。一个或多个处理单元302a-n,402a-d,404a-n在806处执行所分配的任务804以完成存储器操作,并且方法800结束。

图9是示出用于管芯上存储器微控制器150的方法900的一个实施方案的示意性流程图。方法900开始,并且微控制器150在902处接收对集成电路装置123的存储器阵列200的存储器操作的请求(例如,读请求、写/编程请求、擦除请求等)。

流控制处理单元402a和/或线程管理单元502在904处确定在902处接收到的对存储器操作的请求的任务。流控制处理单元402a和/或线程管理单元502在906处确定是否存在任何流控制任务,并且流控制处理单元402a在908处执行在906处确定的流控制任务。流控制处理单元402a和/或线程管理单元502在910处确定是否存在任何时序控制任务,并且时序控制处理单元402b在912处执行在910处确定的时序控制任务。流控制处理单元402a和/或线程管理单元502在914处确定是否存在任何电压控制任务,并且电压控制处理单元402d在916处执行在914处确定的电压控制任务。流控制处理单元402a和/或线程管理单元502在918处确定是否存在任何数据锁存控制任务,并且数据锁存控制处理单元402c在920处执行在918处确定的数据锁存控制任务。方法900继续,并且微控制器150在902处接收存储器操作的一个或多个附加请求。

在各种实施方案中,用于存储数据的装置可包括存储器装置120、存储器介质122、存储器元件123、存储器阵列200、易失性存储器介质122(例如,ram、dram、sdram、ddrsdram、sram、t-ram、z-ram等)、非易失性存储器介质122(例如,reram、忆阻器存储器、可编程金属化单元存储器、pcm、pcme、pram、pcram、双向统一存储器、c-ram、nand闪存存储器、2dnand闪存存储器、3dnand闪存存储器、nor闪存存储器、纳米ram或nram、基于纳米晶体线的存储器、基于硅氧化物的亚10纳米工艺存储器、石墨烯存储器、sonos存储器、pmc存储器、cbram、mram、磁存储介质诸如硬盘或磁带驱动器、光存储介质、scm等)等。其他实施方案可包括用于存储数据的类似或等效装置。

在各种实施方案中,用于按照任务类别对任务进行排序的装置可包括微控制器150、流控制处理单元402a、线程管理单元502、数据锁存控制处理单元402c、集成电路装置123、以及/或者其他逻辑硬件或存储在计算机可读存储介质上的计算机可执行代码。其他实施方案可包括用于按照任务类别对任务进行排序的类似或等效装置。

在各种实施方案中,用于并行执行不同类别的任务的装置可包括微控制器150、流控制处理单元402a、时序控制处理单元402b、数据锁存控制处理单元402c、电压控制处理单元402d、外部处理单元404a-n、另一个处理单元302a-n,402a-d,404a-n、集成电路装置123、以及/或者其他逻辑硬件或存储在计算机可读存储介质上的计算机可执行代码。其他实施方案可包括用于并行执行不同类别的任务的类似或等效装置。

在各种实施方案中,用于使用不同组的处理单元执行更少类别的任务的装置可包括微控制器150、流控制处理单元402a、时序控制处理单元402b、数据锁存控制处理单元402c、电压控制处理单元402d、外部处理单元404a-n、另一个处理单元302a-n,402a-d,404a-n、集成电路装置123、以及/或者其他逻辑硬件或存储在计算机可读存储介质上的计算机可执行代码。其他实施方案可包括用于使用不同组的处理单元执行更少类别的任务的类似或等效装置。

本公开可体现为其他具体形式而不背离其实质或基本特征。该实施方案将在所有方面被认为仅仅是示例性的而非限制性的。因此,本公开的范围由所附权利要求而不是前述描述所指示。在权利要求书等同的含义和范围内的所有变化均包含在其范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1