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

可重配置存储器内处理逻辑的制作方法

2022-06-18 05:22:31 来源:中国专利 TAG:


1.本公开的实施例大体上涉及存储器系统,且更具体地说,涉及实施可重配置存储器内处理逻辑。


背景技术:

2.计算机系统可包含一或多个处理器(例如,通用处理器,其也可称为中央处理单元(cpu)和/或专用处理器,例如,专用集成电路(asic)、现场可编程门阵列(fpga)、图形处理单元(gpu)等),其耦合到一或多个存储器装置且使用所述存储器装置来存储可执行指令和数据。为了改进计算机系统的处理量,可实施各种解决方案来实现计算中的并行性。


技术实现要素:

3.本公开的一方面涉及一种系统,其包括:存储器阵列,其用以将数据存储在电耦合到多个字线和多个位线的多个存储器单元中;耦合到所述存储器阵列的逻辑阵列,所述逻辑阵列实施控制所述多个存储器单元的可配置逻辑;以及耦合到所述存储器阵列和所述逻辑阵列的控制块,所述控制块控制计算管线以通过激活以下各者中的至少一者对所述数据执行计算:所述多个位线中的一或多个位线或所述多个字线中的一或多个字线。
4.本公开的另一方面涉及一种系统,其包括:存储器阵列,其用以将数据存储在电耦合到多个字线和多个位线的多个存储器单元中,所述存储器阵列用以实施控制所述多个存储器单元的可配置逻辑;以及耦合到所述存储器阵列的控制块,所述控制块控制计算管线以通过激活以下各者中的至少一者对所述数据执行计算:所述多个位线中的一或多个位线或所述多个字线中的一或多个字线。
5.本公开的又一方面涉及一种方法,其包括:将数据存储在包括电耦合到多个字线和多个位线的多个存储器单元的存储器阵列中;通过耦合到所述存储器阵列的控制块激活所述多个位线中的所选位线;对所述所选位线进行预充电,其中所述多个字线中的至少一个字线在所述预充电操作期间断开;以及使用所述可配置逻辑来评估由所选字线寻址的存储器单元行。
附图说明
6.根据下文给出的具体实施方式并且根据本公开的一些实施例的附图将更加充分地理解本公开。
7.图1说明根据本公开的各方面实施的实例存储器内处理(pim)系统的高阶架构图。
8.图2a示意性地说明根据本公开的各方面实施的基于下拉网络(pdn)的可配置逻辑的高阶组件图。
9.图2b示意性地说明根据本公开的各方面实施的基于上拉网络(pun)的可配置逻辑的高阶组件图。
10.图3说明根据本公开的各方面实施的串联连接的基于拉动网络的可配置逻辑的高
阶组件图。
11.图4说明根据本公开的各方面实施的利用级联控制逻辑的实例pim系统的高阶架构图。
12.图5为通过根据本公开的一些实施例操作的pim系统实施计算管线的实例方法的流程图。
13.图6说明根据本公开的一些实施例的包含存储器子系统的实例计算系统。
14.图7是本公开的实施例可于其中操作的实例计算机系统的框图。
具体实施方式
15.本公开的实施例是针对实施可重配置存储器内处理(pim)逻辑。
16.计算机系统可包含一或多个处理器(例如,通用处理器,其也可称为中央处理单元(cpu)和/或专用处理器,例如,专用集成电路(asic)、现场可编程门阵列(fpga)、图形处理单元(gpu)、神经和人工智能(ai)处理单元(npu)等),其耦合到一或多个存储器装置且使用所述存储器装置来存储可执行指令和数据。为了改进计算机系统的处理量,可实施各种解决方案来实现计算中的并行性。然而,此类解决方案通常基于增大处理核心(例如gpu核心)的数目,因此增大计算机系统的能耗和总成本两者。
17.为了改进系统处理量同时避免过高成本,本公开的实施例通过配备有逻辑阵列和控制块的存储器装置实施pim操作。逻辑阵列可实施可重配置控制逻辑,例如,控制存储器阵列的拉动网络。控制块可通过激活某些字线且将控制信号提供到逻辑阵列而管理计算。可重配置pim逻辑可用于实施各种计算管线,包含高度并行的超标量管线、向量管线、脉动阵列、硬件神经网络和/或其它类型的计算管道,如本文中在下方更详细地描述。
18.因此,根据本公开的一些实施例实施的系统和方法的优点包含但不限于相对于各种现有硬件实施方案提供用于实施各种计算管线的更节约成本的系统和方法。根据本公开的实施例实施的pim系统可由嵌入式系统、电路模拟或仿真系统和各种硬件加速器(尤其对于需要高度并行性的算法)使用。在一些实施例中,根据本公开的各方面实施的pim系统可针对需要宽电路和大量存储器的应用性能优于专用处理器(例如,专用集成电路(asic)、现场可编程门阵列(fpga)、图形处理单元(gpu)等)。
19.图1说明根据本公开的各方面实施的实例pim系统100的高阶架构图。如图1中所示,pim系统100包含耦合到控制块120的存储器阵列110、逻辑阵列130和高速缓冲存储器/寄存器存储器140。本文中的“耦合到”是指组件之间的电连接,包含经由一或多个中间组件的间接连接和直接连接(即,无中间组件)。
20.在一个实施例中,pim系统100可实施为位于单个芯片上的一或多个集成电路。在另一实施例中,pim系统100可实施为芯片上系统,其除了图1中展示的组件之外还可包含一或多个处理核心和一或多个输入/输出(i/o)接口。在一些实施例中,pim系统100可包含各种其它组件,其为了清楚和简洁起见从图1中省略。
21.存储器阵列110可由动态随机存取存储器(dram)阵列提供,所述动态随机存取存储器阵列为存储器单元矩阵,所述存储器单元由称为“字线”的导体沿着行且由称为“位线”的导体沿着列而接合。每一存储器单元包含保持电荷的电容器和用作控制对电容器的存取的开关的晶体管。
22.在另一实施例中,存储器阵列110可由电阻式随机存取存储器(reram)提供,所述电阻式随机存取存储器包含但不限于3d x点存储器,所述3d x点存储器为可通过行(字线)和列(位线)寻址的存储器单元矩阵,包含行与列对称的实施例(行可起到列的作用,且列可起到行的作用)。每一存储器单元包含保持其导电性或电阻率状态的电阻式存储器单元。
23.在又一实施例中,存储器阵列110可由包含但不限于3d nand闪存存储器的闪存存储器提供,其为可由平面(字线)和nand串(位线)寻址的存储器单元的3d矩阵。每一存储器单元包含具有浮动栅极的闪存晶体管,其取决于存储在晶体管的浮动栅极中的电荷而保持其阈值电压状态(vt)。
24.在又一实施例中,存储器阵列110可由非易失性混合feram-dram存储器(hram)阵列提供,所述阵列为可通过行(字线)及列(位线)寻址的存储器单元的矩阵。每一存储器单元包含保持电荷的铁电电容器和用作控制对铁电电容器的存取的开关的晶体管。
25.存储器阵列110可用于存储用于计算的数据以及计算结果。在一些实施例中,存储器阵列110可进一步实施可配置逻辑,其使用拉动网络(上拉网络(pun)和/或下拉网络(pdn))用于控制存储器阵列110的存储器单元,如下文更详细地描述。
26.在一些实施例中,pim系统100可进一步包含耦合到存储器阵列的多个感测放大器112a到112l。感测放大器可用于从所选位线感测编码存储器单元的内容的低功率信号且将所感测的信号放大到可辨识逻辑电压电平。
27.高速缓冲存储器/寄存器存储器140可由静态随机存取存储器(sram)阵列或由低时延磁阻随机存取存储器(ram)(包含但不限于磁性隧道结(mtj)存储器单元)实施。高速缓冲存储器/寄存器存储器140可用于高速缓冲存储于存储器阵列110中的信息的子集。sram阵列140可包含可用于存储驻留于存储器阵列110中的最近和/或最频繁存取的数据项的副本的多个高速缓冲存储器行。在各种说明性实例中,可利用高速缓冲存储器来存储由计算管线的中间级产生的中间结果和/或逻辑阵列130的信号。可为寄存器分配sram阵列140的至少部分,所述寄存器存储用于计算的频繁更新的存储器变量的值。在一些实施例中,sram阵列140可与逻辑阵列130包括在一起,因此形成统一的高速缓冲存储器-逻辑结构。
28.逻辑阵列130可用于实施控制存储器阵列110的存储器单元的拉动网络,如通过图2a到2b示意性地说明。确切地说,图2a示意性地说明根据本公开的各方面实施的基于pdn的可配置逻辑200a的高阶组件图。如由图2a示意性地说明,由耦合到电容器220a的存取晶体管210a形成的存储器单元由pdn 240控制。可配置逻辑在两个阶段中操作:预充电和评估,其中的每一者可在对应的时钟循环上执行。
29.当时钟信号为低,因此断开晶体管210a且闭合晶体管230a时,执行预充电阶段:到接地的放电路径被pdn 240阻挡,且电容器220a被“上拉”,即,通过流过晶体管210a的技术特定标称供电电压(v
dd
)充电到逻辑“1”电平。相反,当时钟信号为高,因此闭合晶体管210a且断开晶体管230a时执行评估阶段,经由晶体管230a和pdn 240实现到接地的条件路径。电容器220a取决于界定pdn 240的状态的输入in1、in2,...,inn而放电,因此界定到接地的路径。在一些情况下,所述路径可为部分的,因此提供多电平电压评估。
30.图2b示意性地说明根据本公开的各方面实施的基于pun的可配置逻辑200b的高阶组件图。如由图2b示意性地说明,由耦合到电容器220b的存取晶体管210b形成的存储器单元由pun 250控制。可配置逻辑在两个阶段中操作:预充电和评估,其中的每一者可在对应
的时钟循环上执行。
31.当时钟信号为高,因此通过闭合晶体管210b来阻挡充电路径时,执行预充电阶段:电容器220b被“下拉”,即,通过晶体管230b放电到接地。相反,当时钟信号为低,因此通过闭合晶体管230b且断开晶体管210b实现到供电电压(v
dd
)的条件路径时,执行评估阶段。因此,电容器220b取决于界定pun 250的状态的输入in1、in2、...、inn而充电,因此界定到接地的路径。在一些情况下,所述路径可为部分的,因此提供多电平电压评估。
32.再次参考图1,逻辑阵列130可用于实施控制存储器阵列110的操作的可配置逻辑(例如,由包括pdn、pun或其组合的拉动网络表示)。虽然图1的说明性实例展示实例pdn 150,但在各种其它实施方案中,逻辑阵列可实施pdn和pun两者和/或其组合以用于控制存储器阵列110。
33.如本文中在上文所指出,由逻辑阵列130实施的可配置逻辑在两个阶段中操作:预充电和评估,所述阶段中的每一者可在对应的时钟循环上执行。在预充电阶段期间,所选位线160通过耦合到pun/pdn电容器而有条件地预充电到某一电压。或者,位线可为pun/pdn电容器的一部分,或可作为pun/pdn电容器执行。此外,逻辑阵列130可致使至少一个字线170在预充电期间断开,且因此存储器单元的对应行连同由所选位线寻址的存储器单元的列一起预充电。预充电的行的数目可用于在评估阶段期间平衡电荷的量。此外,存储器单元的不同行可预充电到不同电荷电平,所述电荷电平可由控制块120所提供的输入指定。因此,可根据相应拉动网络的状态用不同逻辑对所选位线上的存储器单元群组进行预充电。在一些实施方案中,预充电阶段可集成到存储器接口协议中,且因此可每当存储器控制器发布预充电指令时执行预充电阶段。
34.在评估阶段期间,所选字线有条件地断开,且用pdn 150、pun(为了清楚和简洁起见未在图1中展示)或其组合评估存储器单元的对应行。结果,取决于拉动网络的状态,由存储器单元保持的电荷得以保持或泄漏。作为位线的状态的评估阶段的结果可记录在存储器阵列110的所选行中。可针对其它所关注行重复所述过程。可通过拉动网络对后续结果执行多个遍次以便计算最终结果。控制拉动网络的输入in1、in2、...、inn可从控制块(其又可从外部源接收其输入)接收或可从所选位线或位线群组依序或并行地路由,所选位线或位线群组可通过断开如由控制块控制的某些字线而耦合到存储器单元。
35.在说明性实例中,xor逻辑门可通过以下操作来实施:将第一存储器单元预充电到某一值,对第一存储器单元的存取由所选位线上的第一字线控制;以及接着通过断开第一字线而存取存储于第一存储器单元中的值,随后通过直接供应到位线或存储于耦合到位线的第二存储器单元中的另一值来评估所述存储器单元。所观测到的电压波动将指示第一值与第二值不同,且因此xor逻辑门的输出将为逻辑“1”。相反,如果未观测到电压波动,那么所述值不可区分,且xor逻辑门的输出将逻辑“0”。在另一实例中,可通过利用两个邻近位线来类似地实施xor逻辑门,例如,通过以与上文相对于第一存储器单元和第二存储器单元所描述相同的方式耦合所述位线,且接着经由pun/pdn组件来路由此耦合。在各种说明性实例中,可通过组合多个xor门(其中的每一者表示半加法器)来执行加法和乘法运算。
36.在一些实施方案中,可在存储器阵列110内实施控制存储器单元的可配置逻辑(例如,拉动网络)。可将拉动网络输入in1、in2、...、inn路由到相应字线,且可通过将存储器单元预充电到各种充电值(电压电平)而将拉动网络逻辑存储在由与字线的对应相交点处的
所选位线寻址的存储器单元中。在评估阶段期间,字线将断开,此建立耦合到相应存储器单元的所选位线的新电压状态。
37.在说明性实例中,存储器内可配置逻辑可用于实施简单的反相器。在预充电阶段,所选存储器行可预充电到零或负电压,且其后其字线可闭合。此外,所选位线可被预充电到正电压。在评估阶段期间,将控制可配置逻辑的输入路由到字线:如果输入是逻辑“0”,那么字线保持闭合且位线保持在正电压,而如果输入是逻辑“1”,那么字线断开,因此致使来自存储器单元的电荷取消位线上的电荷,这将使其状态从正状态反转到零或负状态。可并行地以此方式啮合多个位线,因此产生具有存储器内可配置逻辑的高带宽逻辑阵列。如本文中在上文所提及,控制外部逻辑的输入可从控制块(其又可从外部源接收其输入)接收,或可从所选位线或位线群组依序或并行地路由。
38.再次参考逻辑阵列130对可配置逻辑(例如,拉动网络)的实施方案,基于拉动网络的可配置逻辑(例如,实例可配置逻辑单元200a和200b)可经由缓冲器(例如,反相器)串联连接,如通过图3示意性地说明。在图3的说明性实例中,pdn 310a和310b经由逻辑反相器320串联连接。
39.此类拉动网络级联允许实施复杂的依序电路以用于实施包含二维管线(例如脉动阵列)的并行计算管线。本文中的“脉动阵列”是指布置成二维栅格(或在一些情况下,更高维度网格)的处理元件的集合。脉动阵列中的每一处理元件实施计算功能,且存储数据并将数据转发到其它元件。因此,脉动阵列在单一时钟循环中产生ab个操作,其中a是阵列宽度,且b是维度的数目。
40.图4说明根据本公开的各方面实施的利用级联控制逻辑的实例pim系统400的高阶架构图。如图4中所示,pim系统400包含耦合到控制块120的存储器阵列110、逻辑阵列130和高速缓冲存储器/寄存器存储器140。逻辑阵列130可实施级联的可配置逻辑135,所述级联的可配置逻辑包含串联连接的多个可配置逻辑单元,如本文中在上文参考图3所描述。
41.在一些实施方案中,级联的可配置逻辑135可与感测放大器阵列集成,所述感测放大器阵列包含感测放大器112a到112l。此集成允许可配置逻辑输入和输出到位线160a到160n、高速缓冲存储器、行缓冲器和/或控制块120的可配置路由。在此些配置中,可在两个方向(即,水平地(沿着感测放大器阵列及行缓冲器)及垂直地(沿着位线160a到160n))上执行数据移动。此外,在执行期间,可在逻辑阵列的每一单元处创建且消耗新数据,这由通过与行缓冲器、感测放大器阵列和存储器阵列电路系统介接而提供的高带宽双向输入/输出促进。
42.由于多个位线可在单个时钟循环内预充电且在下一个时钟循环内评估,因此经更新状态将在单个时钟循环中在给定行(其可包含数千个位线)内传播,因此促进高度并行计算管线的创建。在一些实施方案中,所述状态还将在单个时钟循环内垂直地(沿着位线)传播,因此促进脉动阵列的创建。
43.在一些实施方案中,在任何所要时钟循环下,可例如通过存储到存储器阵列来为逻辑阵列的整个状态建立检查点。在管线中检测到故障的情况下,所保存的检查点状态中的一者随后将充当复原点。
44.在一些实施方案中,由控制块130实施的可配置逻辑135可经配置以从存储器阵列110的指定位线读取其配置数据。因此,可在若干时钟循环中配置控制逻辑以实施所要计算
管线。
45.此外,在各种实施方案中,逻辑阵列130可进一步包含各种逻辑组件,例如全加法器、半加法器、乘法器、d型触发器,和/或用于实施逻辑运算的其它组件。逻辑运算可通过在存储器阵列110由控制块120激活时在所述存储器阵列上和/或在存储器阵列110中和/或在高速缓冲存储器/寄存器存储器140中存储的其它数据上执行逻辑运算来实施可重配置处理逻辑。
46.逻辑阵列130可从控制块120和/或从存储器阵列110接收输入。控制块120可处理可执行指令(依序地或并行地),所述可执行指令可存储于存储器阵列110中,因此以概念上类似于常规计算管线(例如,cpu或gpu管线)的方式实施冯诺伊曼架构:指令提取、解码、配置和执行。配置指令可涉及通过控制块120激活某些位线和字线。执行指令涉及通过逻辑阵列130检索由所激活位线和字线寻址的存储器单元中存储的内容,且对所检索到的数据执行由拉动网络150指定的逻辑运算。计算的结果可存储在存储器阵列110中和/或经由耦合到存储器的输入/输出(i/o)接口(为了清楚和简洁起见未在图1中展示)输出。因此,控制块120可通过激活某些位线和字线来实施计算管线。
47.激活特定字线的控制块120的字线驱动器可与存储器阵列驻留在同一裸片上。在一些实施例中,控制块120的处理核心也可位于同一裸片上,因此实施芯片上系统。替代地,处理代码可位于不同裸片上,只要提供处理核心与存储器阵列之间的足够带宽和处理量的物理连接可用即可。在一些实施例中,控制块可由外部处理核心(例如,cpu的专用核心)实施,所述外部处理核心由软件驱动程序控制。
48.在一些实施例中,控制块120可经由逻辑阵列130或存储器阵列110的字线从存储器阵列110接收其指令以供执行。如果存储器阵列110由电阻式随机存取存储器(reram)提供,那么后者是可能的,所述电阻式随机存取存储器是可通过行(字线)及列(位线)寻址的存储器单元矩阵,其中行与列是对称的(即,行可起到列的作用,且列可起到行的作用)。在此情况下,逻辑阵列130的感测放大器/驱动器经由位线提供足够的驱动强度,以便使控制块120的感测放大器/驱动器感测数据。
49.此外,归因于数据存取的对称性,逻辑阵列130和控制块120的功能可在一些实施例中合并,使得图1中的控制块120还可实施逻辑阵列130的功能,且图1中的逻辑阵列130还可实施控制块120的功能。结果,此类实施例可具有每阵列对称的两个块(从存储器阵列110的左边和底部连接到存储器阵列110)。此外,在一些实施例中,所述两个块可进一步扩展到四个对称块(从存储器阵列110的左边、右边、底部和顶部连接到存储器阵列110)。
50.在一些实施例中,pim系统可实施为分层或堆叠芯片,其中存储器阵列110与控制块120位于同一裸片的两个不同层内。
51.在一些实施例中,控制块120可在无推测且无指令级并行性的情况下实施简单的精简指令集计算机(risc)管线。在其它实施例中,控制块120可实施至少一些指令级并行性和乱序执行,因此实施托马苏洛(tomasulo)或记分牌型计算管线(即,复杂指令集计算机(cisc)管线)。
52.在一些实施例中,控制块120可通过使用同时对多个数据项执行相同操作的多个处理元件而实施单指令多数据(simd)计算管线,如下文更详细地描述。此类实施例可实施用于矩阵乘法和点积运算的极有效的解决方案。simd式管线可为risc或cisc类型。此外,
simd管线可实施为超长指令字(vliw)管线以用于利用较多指令级并行性。
53.图5为通过根据本公开的一些实施例操作的pim系统实施计算管线的实例方法500的流程图。如本文中在上文所提及,pim系统可包含耦合到控制块的存储器阵列、逻辑阵列和高速缓冲存储器/寄存器存储器。计算管线可由存储于存储器阵列中或经由i/o链路接收的可执行指令序列指定。
54.在一些实施例中,方法500由图1的pim系统100执行和/或图4的pim系统400执行。尽管以特定序列或次序展示方法的操作,但除非另外指定,否则可修改操作的次序。因此,应理解,所说明的实施例仅为实例,且所说明的操作可以不同次序执行,且一些操作可并行地执行。另外,在一些实施例中,可省略一或多个操作,或可插入更多操作。因此,在每一实施例中并不要求所说明的全部操作,且其它处理流程是可能的。
55.在操作510处,实施所述方法的pim系统将数据存储在存储器阵列中,所述存储器阵列包括分组为多个字线和多个位线的多个存储器单元。所述数据可包含用于计算的一或多个初始数据项和用于由pim系统的存储器阵列和/或逻辑阵列实施的控制逻辑的一或多个配置数据项。
56.在操作520处,pim系统的控制块激活多个位线中的所选位线。待激活的位线可由从pim系统的控制块接收的控制输入指定,如本文中在上文更详细地描述。
57.在操作530处,pim系统将所选位线预充电到某一充电电平(例如,使用由从控制块接收的控制输入所指定的电压电平),而多个字线中的至少一个字线任选地在预充电操作期间断开,如本文中在上文更详细地描述。在一些实施方案中,可不断开字线,而位线自身可用作用于预充电操作的电容器。
58.在操作540处,pim系统通过可配置逻辑评估由所选字线寻址的存储器单元行,所述所选字线提供位线与对应存储器单元的耦合,且其可由从控制块接收的控制输入指定,如本文中在上文更详细地描述。
59.在操作550处,pim系统将所选位线的状态存储在可经由多个字线中的字线存取的可用存储器单元中。可针对多个所关注字线重复预充电、评估和存储操作,所述字线可由从控制块接收的控制输入指定,如本文中在上文更详细地描述。
60.图6说明根据本公开的一些实施例的包含存储器子系统610的实例计算系统600。存储器子系统610可包含媒体,例如一或多个易失性存储器装置(例如,存储器装置640)、一或多个非易失性存储器装置(例如,存储器装置630),或其组合。在一些实施例中,一或多个存储器装置640可用于实施根据本公开的一或多个方面操作的pim系统。因此,一或多个存储器装置640可各自包含耦合到控制块的存储器阵列、逻辑阵列和高速缓冲存储器/寄存器存储器,如本文中在上文参考图1更详细地描述。
61.存储器子系统610可为存储装置、存储器模块,或存储装置与存储器模块的混合。存储装置的实例包含固态驱动器(ssd)、闪存驱动器、通用串行总线(usb)闪存驱动器、嵌入式多媒体控制器(emmc)驱动器、通用闪存存储(ufs)驱动器、安全数字(sd)卡和硬盘驱动器(hdd)。存储器模块的实例包含双列直插式存储器模块(dimm)、小外形dimm(so-dimm),及各种类型的非易失性双列直插式存储器模块(nvdimm)。
62.计算系统600可为计算装置,例如台式计算机、膝上型计算机、网络服务器、移动装置、运载工具(例如,飞机、无人机、火车、汽车或其它运输工具)、支持物联网(iot)的装置、
嵌入式计算机(例如,包含在运载工具、工业设备或联网市售装置中的计算机),或包含存储器和处理装置(例如,处理器)的这类计算装置。
63.计算系统600可包含耦合到一或多个存储器子系统610的主机系统620。在一些实施例中,主机系统620耦合到不同类型的存储器子系统610。图6说明耦合到一个存储器子系统610的主机系统620的一个实例。如本文所使用,“耦合到”或“与...耦合”通常是指组件之间的连接,其可以是间接通信连接或直接通信连接(例如,没有中间组件),无论是有线还是无线的,包含例如电连接、光学连接、磁连接等的连接。
64.主机系统620可包含处理器芯片组和由所述处理器芯片组执行的软件堆栈。处理器芯片组可包含一或多个核心、一或多个高速缓冲存储器、存储器控制器(例如,nvdimm控制器),和存储协议控制器(例如,pcie控制器、sata控制器)。主机系统620使用存储器子系统610,以例如将数据写入到存储器子系统610以及从存储器子系统610读取数据。
65.主机系统620可经由物理主机接口耦合到存储器子系统610。物理主机接口的实例包含但不限于串行高级技术附件(sata)接口、外围组件互连高速(pcie)接口、cxl接口、ccix接口、通用串行总线(usb)接口、光纤通道、串行连接的scsi(sas)、双倍数据速率(ddr)存储器总线、小型计算机系统接口(scsi)、双列直插式存储器模块(dimm)接口(例如,支持双倍数据速率(ddr)的dimm套接接口)、开放nand快闪接口(onfi)、双倍数据速率(ddr)、低电力双倍数据速率(lpddr)等。物理主机接口可用以在主机系统620与存储器子系统610之间发射数据。在存储器子系统610通过pcie接口105与主机系统620耦合时,主机系统620可进一步利用nvm高速(nvme)接口来存取组件(例如,存储器装置630)。物理主机接口105可提供用于在存储器子系统610与主机系统620之间传送控制、地址、数据和其它信号的接口。图6说明存储器子系统610以作为实例。一般来说,主机系统620可经由同一通信连接、多个单独通信连接和/或通信连接的组合存取多个存储器子系统。
66.在一些实施例中,主机系统620的cpu的专用处理核心可由软件驱动程序控制以实施图1的pim控制块120的功能,如本文中在上文更详细地描述。
67.存储器装置630、640可包含不同类型的非易失性存储器装置和/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储器装置640)可为但不限于随机存取存储器(ram),例如动态随机存取存储器(dram)和同步动态随机存取存储器(sdram)。
68.非易失性存储器装置(例如,存储器装置630)的一些实例包含与非(nand)类型闪存存储器和就地写入存储器,例如三维交叉点(“3d交叉点”)存储器装置,其为非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可结合可堆叠交叉网格化数据存取阵列而基于体电阻的改变来进行位存储。另外,与许多基于闪存的存储器对比,交叉点非易失性存储器可执行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。nand类型快闪存储器包含例如二维nand(2d nand)和三维nand(3d nand)。
69.存储器装置630中的每一者可包含一或多个存储器单元阵列。一种类型的存储器单元,例如单层级单元(slc),可每单元存储一个位。其它类型的存储器单元,例如多层级单元(mlc)、三层级单元(tlc)和四层级单元(qlc)可每单元存储多个位。在一些实施例中,存储器装置630中的每一者可包含一或多个存储器单元阵列,例如slc、mlc、tlc、qlc或此类存储器单元阵列的任何组合。在一些实施例中,特定存储器装置可包含存储器单元的slc部
分,和mlc部分、tlc部分或qlc部分。存储器装置630的存储器单元可分组为页,所述页可指用于存储数据的存储器装置的逻辑单元。对于一些类型的存储器(例如,nand),页可进行分组以形成块。
70.尽管描述了非易失性存储器装置,例如3d交叉点非易失性存储器单元阵列及nand型存储器(例如,2d nand、3d nand),但存储器装置630可基于任何其它类型的非易失性存储器,例如只读存储器(rom)、相变存储器(pcm)、自选存储器、其它基于硫属化物的存储器、铁电晶体管随机存取存储器(fetram)、铁电随机存取存储器(feram)、磁随机存取存储器(mram)、自旋转移力矩(stt)-mram、导电桥接ram(cbram)、电阻式随机存取存储器(rram)、基于氧化物的rram(oxram)、或非(nor)闪存存储器,及电可擦除可编程只读存储器(eeprom)。
71.存储器子系统控制器665可与存储器装置630通信以执行例如在存储器装置630处读取数据、写入数据或擦除数据的操作和其它此类操作。存储器子系统控制器665可包含硬件,例如一或多个集成电路和/或离散组件、缓冲存储器或其组合。硬件可包含具有专用(即,硬译码)逻辑的数字电路以执行本文所描述的操作。存储器子系统控制器665可为微控制器、专用逻辑电路系统(例如,现场可编程门阵列(fpga)、专用集成电路(asic)等)或其它合适的处理器。
72.存储器子系统控制器665可包含经配置以执行存储在本地存储器619中的指令的处理器616(例如,处理装置)。在所说明实例中,存储器子系统控制器665的本地存储器619包含配置成存储指令的嵌入式存储器,所述指令用于执行控制存储器子系统610的操作(包含操控存储器子系统610与主机系统620之间的通信)的各种过程、操作、逻辑流和例程。在一些实施例中,处理器616可由软件驱动程序控制以实施图1的pim控制块120的功能,如本文中在上文更详细地描述。
73.在一些实例中,本地存储器619可包含存储器寄存器,其存储存储器指针、获取的数据等。本地存储器619还可以包含用于存储微码的只读存储器(rom)。虽然图6中的实例存储器子系统610已说明为包含控制器665,但在本公开的另一实施例中,存储器子系统610不包含控制器665,而是可替代地依靠外部控制(例如,由外部主机或由与存储器子系统分开的处理器或控制器提供)。
74.通常,存储器子系统控制器665可从主机系统620接收命令或操作,且可将所述命令或操作转换为指令或适当命令以实现对存储器装置630的所需存取。存储器子系统控制器665可负责其它操作,例如耗损均衡操作、垃圾收集操作、错误检测和错误校正码(ecc)操作、加密操作、高速缓冲存储操作以及与存储器装置630相关联的逻辑地址(例如,逻辑块地址(lba)、名称空间)与物理地址(例如,物理块地址)之间的地址转换。存储器子系统控制器665可进一步包含主机接口电路系统以通过物理主机接口与主机系统620通信。主机接口电路系统可以将从主机系统接收到的命令转换成存取存储器装置630的命令指令,且将与存储器装置630相关联的响应转换成主机系统620的信息。
75.存储器子系统610还可包含未说明的额外电路系统或组件。在一些实施例中,存储器子系统610可包含高速缓冲存储器或缓冲器(例如,dram)和地址电路系统(例如,行解码器和列解码器),所述地址电路系统可从控制器665接收地址且对地址进行解码以存取存储器装置630。
76.在一些实施例中,存储器装置630包含本地媒体控制器635,其结合存储器子系统控制器665操作以对存储器装置630的一或多个存储器单元执行操作。外部控制器(例如,存储器子系统控制器665)可在外部管理存储器装置630(例如,对存储器装置630执行媒体管理操作)。在一些实施例中,存储器子系统610为受管理存储器装置,其为具有裸片上的控制逻辑(例如,本地媒体控制器635)和用于相同存储器装置封装内的媒体管理的控制器(例如,存储器子系统控制器665)的原始存储器装置630。受管理存储器装置的实例是受管理nand(mnand)装置。
77.图7说明计算机系统700的实例机器,所述实例机器内可执行用于致使所述机器执行本文中所论述的方法中的任何一或多者的指令集。在一些实施例中,计算机系统700可与主机系统(例如,图6的主机系统120)相对应,其包含、耦合到或利用存储器子系统(例如,图6的存储器子系统610)或可用于执行控制器的操作。
78.在替代实施例中,机器可连接(例如,耦合到网络720的网络接口装置737)到lan、内联网、外联网和/或因特网中的其它计算机系统。机器可作为对等(或分布式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而以客户端-服务器网络环境中的服务器或客户端机器的容量进行操作。
79.所述机器可为个人计算机(pc)、平板pc、机顶盒(stb)、个人数字助理(pda)、蜂窝电话、网络器具、服务器、网络路由器、交换机或桥接器,或能够执行(循序或以其它方式)指定待由所述机器采取的动作的指令集的任何机器。另外,尽管说明单个机器,但还应认为术语“机器”包含机器的任何集合,所述集合单独地或共同地执行一(或多)个指令集以进行本文中所论述的方法中的任何一或多种。
80.实例计算机系统700包含处理装置702、主存储器704(例如,只读存储器(rom)、闪存存储器、动态随机存取存储器(dram),例如同步dram(sdram)或rambus dram(rdram)等)、静态存储器707(例如,闪存存储器、静态随机存取存储器(sram)等),以及数据存储系统717,其经由总线730彼此通信。
81.处理装置702表示一或多个通用处理装置,例如微处理器、cpu等等。更特定来说,处理装置可为复杂指令集计算(cisc)微处理器、精简指令集计算(risc)微处理器、超长指令字(vliw)微处理器或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置702也可为一或多个专用处理装置,例如专用集成电路(asic)、现场可编程门阵列(fpga)、数字信号处理器(dsp)、网络处理器等等。处理装置702经配置以执行用于执行本文中所论述的操作和步骤的指令727。在一些实施例中,cpu 702的专用处理核心可由软件驱动程序控制以实施图1的pim控制块120的功能。在说明性实例中,软件驱动程序可实施实例方法500,如本文中在上文更详细地描述。
82.数据存储系统717可包含机器可读存储媒体724(也称为计算机可读媒体),其上存储有一或多组指令727或体现本文中所描述的方法或功能中的任一或多种的软件。指令727还可在其由计算机系统700执行期间完全或至少部分地驻存在主存储器704内和/或处理装置702内,主存储器704和处理装置702也构成机器可读存储媒体。机器可读存储媒体724、数据存储系统717和/或主存储器704可对应于图6的存储器子系统610。
83.在一个实施例中,指令727包含用以实施由根据本公开的一些实施例操作的pim系统实施计算管线的实例方法500的指令。尽管机器可读存储媒体724在实例实施例中展示为
单个媒体,但是应认为术语“机器可读存储媒体”包含存储一或多组指令的单个媒体或多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储或编码供机器执行的指令集合且致使机器执行本公开的方法中的任何一种或多种的任何媒体。因此,应认为术语“机器可读存储媒体”包含但不限于固态存储器、光学媒体和磁性媒体。
84.已在针对计算机存储器内的数据位的操作的算法和符号表示方面呈现了先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用以将其工作的主旨最有效地传达给所属领域的其他技术人员的方式。在本文中,且一般将算法构想为产生所要结果的操作的自洽序列。操作是要求对物理量进行物理操纵的操作。通常(但未必),这些量采用能够存储、组合、比较以及以其它方式操纵的电或磁信号的形式。已经证实,主要出于常用的原因,将这些信号称为位、值、元素、符号、字符、项、编号等等有时是便利的。
85.然而,应牢记,所有这些和类似术语将与适当物理量相关联,且仅仅为应用于这些量的便利标记。本公开可以指将计算机系统的寄存器和存储器内的表示为物理(电子)数量的数据操控和变换为计算机系统存储器或寄存器或其它这类信息存储系统内的类似地表示为物理数量的其它数据的计算机系统或类似电子计算装置的动作和过程。
86.本公开还涉及用于执行本文中的操作的设备。这一设备可以出于所需目的而专门构造,或其可包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。这种计算机程序可存储在计算机可读存储媒体中,例如但不限于任何类型的盘,包含软盘、光盘、cd-rom以及磁性光盘、只读存储器(rom)、随机存取存储器(ram)、eprom、eeprom、磁卡或光卡,或适合于存储电子指令的任何类型的媒体,其各自连接到计算机系统总线。
87.本文中呈现的算法和显示器在本质上并不与任何特定计算机或其它设备相关。各种通用系统可以与根据本文中的教示的程序一起使用,或可以证明构造用以执行所述方法更加专用的设备是方便的。将如下文描述中所阐述的那样来呈现各种这些系统的结构。另外,未参考任何特定编程语言来描述本公开。应了解,可使用各种编程语言来实施如本文中所描述的本公开的教示内容。
88.本公开可提供为计算机程序产品或软件,其可包含在其上存储有可用于编程计算机系统(或其它电子装置)以进行根据本公开的过程的指令的机器可读媒体。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机制。在一些实施例中,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读存储媒体,例如只读存储器(“rom”)、随机存取存储器(“ram”)、磁盘存储媒体、光学存储媒体、闪存存储器装置等。
89.在前述说明书中,已参考其具体示例实施例描述了本公开的实施例。将显而易见,可在不脱离如所附权利要求书中阐述的本公开的实施例的更广泛精神和范围的情况下对本公开进行各种修改。因此,应在说明性意义上而非限制性意义上看待说明书及图式。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献