产生并执行控制流的制作方法

文档序号:11288410阅读:206来源:国知局
产生并执行控制流的制造方法与工艺

本发明大体上涉及半导体存储器设备及方法,且更特定来说,涉及关于产生且执行控制流的设备及方法。



背景技术:

存储器装置通常提供为计算机或其它电子系统中的内部半导体集成电路。存在许多不同类型的存储器,包含易失性存储器及非易失性存储器。易失性存储器可需要电力以维持其数据(例如,主机数据、错误数据等)且包含随机存取存储器(ram)、动态随机存取存储器(dram)、静态随机存取存储器(sram)、同步动态随机存取存储器(sdram)与晶闸管随机存取存储器(tram)等。非易失性存储器可通过在未供电时留存所存储数据而提供永久性数据且可包含与非(nand)快闪存储器、或非(nor)快闪存储器及电阻可变存储器(例如相变随机存取存储器(pcram)、电阻性随机存取存储器(rram)及磁阻性随机存取存储器(mram),例如自旋扭矩转移随机存取存储器(sttram))等。

电子系统通常包含数个处理资源(例如,一或多个处理器),其可检索及执行指令(例如,控制流)且将所执行指令的结果存储到合适位置。处理器可包括数个功能单元(例如,在此处被称为功能单元电路,例如算术逻辑单元(alu)电路、浮点单元(fpu)电路及/或组合逻辑块),举例来说,所述功能单元可执行指令以对数据(例如,一或多个操作数)实行例如与(and)、或(or)、非(not)、与非、或非及异或(xor)逻辑运算的逻辑运算。

在将指令提供到功能单元电路以供执行中可涉及电子系统中的数个组件。举例来说,指令可由例如控制器及/或主机处理器的处理资源产生。数据(例如,将对其执行指令以实行逻辑运算的操作数)可存储于可通过功能单元电路存取的存储器阵列中。可从存储器阵列检索指令及/或数据且可在功能单元电路开始对数据执行指令之前串行化及/或缓冲指令及/或数据。此外,因为可通过功能单元电路以一或多个时钟循环执行不同类型的运算,所以还可串行化及/或缓冲运算及/或数据的中间结果。

在许多例子中,处理资源(例如,处理器及/或相关联的功能单元电路)可在存储器阵列外部,且可存取数据(例如,经由处理资源与存储器阵列之间的总线)以执行指令。数据可经由总线从存储器阵列移动到存储器阵列外部的寄存器。

附图说明

图1是根据本发明的数个实施例的呈计算系统的形式的设备的框图。

图2是根据先前技术的呈计算系统的形式的设备的框图。

图3是根据本发明的数个实施例的呈计算系统的形式的设备的框图。

图4是根据本发明的数个实施例的呈计算系统的形式的设备的框图。

图5是根据本发明的数个实施例的控制流及控制流的执行的框图。

图6说明根据本发明的数个实施例的存储器阵列的部分的示意图。

图7是说明根据本发明的数个实施例的具有可选逻辑运算选择逻辑的感测电路的示意图。

图8是说明根据本发明的数个实施例的通过感测电路实施的可选逻辑运算结果的逻辑表。

图9说明根据本发明的数个实施例的与使用感测电路实行逻辑运算及移位运算相关联的时序图。

具体实施方式

本发明的实例提供关于产生且执行控制流的设备及方法。一种实例设备可包含:第一装置,其经配置以产生控制流指令;及第二装置,其包含存储器单元的阵列、执行所述控制流指令的执行单元及经配置以控制对存储于所述阵列中的数据的所述控制流指令的执行的控制器。

如在本文中使用,控制流是指其中执行指令(例如,程序的叙述及/或函数调用)的顺序。其中执行数个指令的顺序可根据跳跃、无条件分支、条件分支、循环、返回及/或停止以及与程序相关联的其它指令类型而变化。在数个实例中,数个指令还可为函数调用。如果-则语句是条件分支的实例。可通过第一装置(例如,主机处理器)评估相关联于如果-则语句评估的条件以产生控制流。举例来说,在通过第一装置评估条件的情况下,可通过第二装置执行第一组指令或第二组指令。举例来说,第一装置可进一步评估循环(例如,for循环、while循环)以产生通过第二装置执行的数个指令及与数个指令相关联的顺序。

在各种先前方法中,产生控制流且通过相同装置(例如,主机处理器)执行与控制流相关联的指令。举例来说,产生数个指令及与指令相关联的执行顺序的相同装置还根据所产生顺序执行数个指令。在相同装置中产生控制流且执行与控制流相关联的指令可包含在执行指令之前产生控制流。举例来说,如果单个装置正在产生控制流且执行相关联指令,那么无法同时产生控制流且执行指令。

在根据本发明的数个实例中,第一装置可产生控制流且第二装置可执行对应于控制流的指令。举例来说,可在产生控制流的同时执行控制流。如在本文中使用,对应于控制流的指令(可被称为“控制流指令”)意指涉及操纵数据的指令。举例来说,涉及操纵数据的指令包含涉及对数据实行计算(其可包含数学运算(例如,加法、减法、乘法及/或除法))的指令,其可包含实行例如and、or、反相等等的各种布尔(boolean)逻辑运算。不涉及操纵数据的指令的实例包含存储器命令,例如数据读取、数据写入及数据刷新操作。

作为实例,第一装置可为主机。举例来说,主机可包含中央处理单元(cpu)、芯片上系统(soc)及专用集成电路(asic)中的一者。作为实例,soc可包括耦合到数个存储器装置的一或多个处理器及一或多个控制器(例如,通道控制器)。第二装置可为存储器装置,其包含存储器阵列、执行单元(其可包括包含数个计算组件的感测电路)及控制执行单元执行指令的控制器。存储器装置的控制器可操作执行单元的计算组件以协调与控制流相关联的指令的执行。

作为实例,可通过实行数个运算来执行由主机产生的指令。举例来说,“加法”指令包含实行各种逻辑运算。如在本文中使用,可互换地使用指令及运算。运算可为比较运算、交换运算及/或逻辑运算(例如,and运算、or运算、shift运算、invert运算等等)。然而,实施例不限于这些实例。如在本文中使用,将执行单指令多数据(simd)运算定义为对多个元素并行(例如,同时)实行相同运算。如在本文中使用,元素是可(例如,作为位向量)存储于存储器阵列中的数值。

在本发明的以下详细描述中,参考形成本发明的部分且其中通过图解展示可如何实践本发明的一或多个实施例的所附图式。足够详细描述这些实施例以使所属领域的一般技术人员能够实践本发明的实施例,且应理解,可在不脱离本发明的范围的情况下利用其它实施例且做出过程、电及/或结构的改变。如在本文中使用,标示符“j”、“n”、“r”、“s”、“u”、“v”、“w”及“x”(尤其关于图式中的参考数字)可指示可包含如此指定的数个特定特征。如在本文中使用,“数个”特定事物可指代一或多个此类事物(例如,数个存储器阵列可指代一或多个存储器阵列)。

本文中的图遵循编号惯例,其中首位或前几位数字对应于图式图号,且剩余数字识别图式中的元件或组件。可通过使用类似数字来识别不同图之间的类似元件或组件。举例来说,110可参考图1中的元件“10”,且类似元件可在图2中被参考为210。如将了解,可添加、交换及/或消除在本文的各种实施例中展示的元件,以便提供本发明的数个额外实施例。另外,如将了解,在图式中提供的元件的比例及相对尺寸希望说明本发明的特定实施例,且不应视为限制意义。

图1是根据本发明的数个实施例的呈计算系统100的形式的设备的框图。如在本文中使用,主机110、存储器装置120、存储器阵列130及/或感测电路150还可被单独视为“设备”及/或装置。

系统100包含经耦合到存储器装置120的主机110,存储器装置120包含存储器阵列130。主机110可为主机系统,例如个人膝上型计算机、桌上型计算机、数码相机、移动电话或存储器卡读取器以及各种其它类型的主机。主机110可包含系统主板及/或背板,且可包含数个处理资源(例如,一或多个处理器、微处理器或某一其它类型的控制电路),例如cpu、soc、asic及/或存储器缓冲器(例如,已注册双列直插存储器模块(dimm))。系统100可包含单独集成电路,或主机110及存储器装置120两者可位于相同集成电路上。举例来说,系统100可为服务器系统及/或高性能计算(hpc)系统及/或其部分。尽管在图1中展示的实例说明具有冯·诺伊曼(vonneumann)架构的系统,但本发明的实施例可以非冯·诺伊曼架构(例如,图灵机(turingmachine),其可不包含通常与冯·诺伊曼架构相关联的一或多个组件(例如,cpu、alu等等))来实施。

为明确起见,系统100已经简化以集中于与本发明特定相关的特征。举例来说,存储器阵列130可为dram阵列、sram阵列、sttram阵列、pcram阵列、tram阵列、rram阵列、nand快闪阵列及/nor快闪阵列。阵列130可包括经布置成通过存取线(在本文中可称为字线或选择线)耦合的行及通过感测线(在本文中可称为数字线或数据线)耦合的列的存储器单元。尽管在图1中展示单个阵列130,但实施例并不如此受限制。举例来说,存储器装置120可包含数个阵列130(例如,数个dram存储器单元库)。相关联于图6描述例示性dram阵列。

存储器装置120包含地址电路142以锁存经由i/o总线156(例如,数据总线)通过i/o电路144提供的地址信号。通过行解码器146及列解码器152来接收及解码地址信号以存取存储器阵列130。可通过使用感测电路150来感测感测线上的电压及/或电流改变以从存储器阵列130读取数据。感测电路150可从存储器阵列130读取及锁存页(例如,行)数据。i/o电路144可被用于经由i/o总线156与主机110的双向数据通信。写入电路148用于将数据写入到存储器阵列130。

控制器140解码通过控制总线154从主机110提供的信号。这些信号可包含用于控制对存储器阵列130实行的操作(包含数据读取、数据写入及数据擦除操作)的芯片启用信号、写入启用信号及地址锁存信号。在各种实施例中,控制器140负责执行来自主机110的指令。控制器140可为状态机、序列发生器或某一其它类型的控制器。

如在下文进一步描述,控制器140可包括多个控制器(例如,单独控制器单元)。在数个实施例中,感测电路150可包括数个感测放大器及数个计算组件,所述计算组件可包括累加器且可用于(例如,对与互补感测线相关联的数据)实行逻辑运算。在数个实施例中,感测电路(例如,150)可用于对存储于阵列130中的数据实行(例如,执行)运算且在不经由感测线地址存取传送数据(例如,不触发列解码信号)的情况下及/或在不启用耦合到感测电路的本地i/o线的情况下将排序运算的结果存储回到阵列130。因而,运算可使用感测电路150实行而非通过感测电路150外部的处理资源(例如,通过与主机110相关联的处理器及/或定位于装置120上(例如,在控制器140上或别处)的其它处理电路,例如alu电路)实行,及/或除了通过感测电路150外部的处理资源实行之外,还可使用感测电路150实行。在数个实施例中,感测电路150可被称为执行单元。执行单元可耦合到存储器阵列130及/或可与存储器阵列130解耦合。

因而,在数个实施例中,由于感测电路150可经控制以实行在使用存储器阵列130的地址空间实行运算中所涉及的适当计算,因此在阵列130及感测电路150外部的寄存器及/或alu可无需实行各种运算。另外,可在不使用外部处理资源的情况下实行运算。举例来说,例如主机110的外部处理资源可产生控制流,但主机110(例如,主机的alu)可不用于实行与执行对应于控制流的指令相关联的计算。

图2是根据先前技术的呈计算系统200的形式的设备的框图。系统200包含主机210、存储器装置220-1及存储器装置220-2。主机210包含alu260及高速缓冲存储器262。存储器装置220-1包含存储器阵列230。

如在本文中使用,主机210是第一装置且存储器装置220-1是第二装置。存储器装置220-1及/或存储器装置220-2可为易失性存储器及/或非易失性存储器。举例来说,存储器装置220-1可为易失性存储器(例如,dram)且存储器装置220-2可为非易失性存储器(例如,硬盘驱动器、固态驱动器(ssd)等等)。

在数个先前方法中,主机210可从存储器装置220-1请求数据。存储器装置220-1可将存储于存储器阵列230中的数据传送到主机210。如果存储器装置220-1不具有所请求数据,那么存储器装置220-1可从存储器装置220-2检索数据(例如,经由由箭头272表示的合适接口)。存储器装置220-1可将从存储器装置220-2检索的数据存储于存储器阵列230中。可通过主机210将数据存储于高速缓冲存储器262中。举例来说,数据可为与实行特定任务(例如,程序)相关联的一组可执行指令。

主机210可使用alu260以识别需从存储于高速缓冲存储器262中的数据执行的数个指令的位置。在通过alu260识别每一指令之后,主机210可执行经识别指令(如由箭头268指示)。举例来说,主机210可产生控制流且可进一步执行与控制流相关联的指令。

图3是根据本发明的数个实施例的呈计算系统300的形式的设备的框图。系统300包含主机310、存储器装置320-1及存储器装置320-2。在此实例中,主机310包含alu360及高速缓冲存储器362,且存储器装置320-1包含控制器340、存储器阵列330及感测电路350。

主机310可被称为第一装置且可包括cpu、soc(例如,其可包含数个处理器及数个通道控制器(未展示))及/或asic以及其它类型的装置。主机310可用于产生控制流,其包含指令及与指令相关联的执行顺序。在数个实例中,主机310可利用alu360产生控制流。在图5中进一步描述产生控制流。

主机310可从存储器装置320-1请求与程序相关联的数据。存储器装置可从存储器阵列330检索所请求数据。存储器装置可将数据传回到主机310。主机可将数据存储于高速缓冲存储器362中且利用alu360产生控制流。在数个实例中,数据可为与一组可执行指令(例如,程序)相关联的数据。程序可以各种格式表示。举例来说,程序可表示为源文件、汇编文件、目标文件及/或可执行文件。在数个实例中,可动态地产生程序。举例来说,可经由汇编文件及/或缓冲器提供程序。

主机310可使用从存储器阵列330检索的数据以产生控制流。举例来说,alu360可用于检索表示运算的数个指令。图5进一步描绘产生指令的过程。

与图2的实例(其中在主机210上执行通过主机210产生的控制流指令(例如,如由箭头268指示))相比,在图3中展示的实例中,主机310可将控制流指令及与指令相关联的执行顺序提供到存储器装置320-1以用于在装置320-1上执行(例如,经由在装置320-1本地的执行单元)。举例来说,尽管主机310包含alu360(其可经配置以执行通过主机310产生的控制流指令),但在数个实施例中,通过主机310产生的控制流指令的执行发生在单独装置(例如,存储器装置320-1)上。作为实例,存储器装置320-1可在控制器340处从主机310接收控制流指令。举例来说,控制器340可经由存储器装置320-1的缓冲器、存储器阵列及/或移位电路接收指令。

控制器340可控制对经存储于存储器阵列330中的存储器单元中的数据的控制流的执行。举例来说,控制器340可通过控制感测电路350来控制指令的执行,感测电路350可充当执行单元以执行与控制流指令相关联的数个运算。相比之下,在图2中展示的存储器装置220-1可具有控制器(未展示);然而,此控制器将控制除命令流指令以外的指令的执行。举例来说,装置220-1上的控制器可控制存储器命令操作(例如数据读取、数据写入及数据刷新操作,其并不涉及与计算相关联的数据的操纵)的执行,但将不控制命令流指令的执行。

控制流指令可包含数个运算,包含and运算、or运算、invert(反相)运算及/或shift(移位)运算。数个运算可包含其它运算。举例来说,运算可为任何数目个二进制运算及非二进制运算,例如加法运算、乘法运算及/或比较运算。在数个实例中,可在未经由图6中的输入/输出(i/o)线634传送数据的情况下执行数个运算。

控制器340可控制经耦合到多个感测线(例如,图6中的感测线605-0、605-1、605-2、605-3、605-4、605-5、605-6、605-7、…、605-s,统称为感测线605)且经形成于与阵列330中的多个存储器单元(例如,图6中的存储器单元603-0、603-1、603-2、603-3、603-4、603-5、603-6、…、603-j,统称为存储器单元603)的间距上的多个计算组件(例如,图6中的计算组件631-0、631-1、631-2、631-3、631-4、631-5、631-6、631-7、…、631-x,统称为计算组件631)。控制器还可控制经耦合到多个计算组件631的多个感测放大器(例如,图6中的感测放大器606-0、606-1、606-2、606-3、606-4、606-5、606-6、606-7、…、606-u,统称为感测放大器606)。控制器340可控制计算组件631及感测放大器606以执行指令。

举例来说,控制器340可激活阵列330中的数个感测线605及存取线(例如,图6中的存取线604-0、606-1、606-2、606-3、606-4、606-5、606-6、…、606-r,统称为存取线604)以读取阵列330中的数据。数据可被存储于感测放大器606及/或计算组件631中。控制器340可进一步激活与计算组件631及/或感测放大器606相关联的感测线605、存取线604及/或锁存器,以对经存储于感测线605及/或计算组件631中的数据执行数个运算。

控制器340还可激活感测线605及/或存取线604,以将运算的结果(例如,数个指令的执行结果)存储回到阵列330。在数个实例中,控制器340可进一步将运算的结果及/或运算已经执行的指示传送回到主机310。

在数个实例中,控制器340可包括数个控制器。举例来说,控制器340可包括第一控制器及数个第二控制器。第一控制器可从主机310接收数个指令。指令可包含实行(例如)加法运算的指令。举例来说,第一控制器可将数个指令转译为数个and运算、or运算、invert运算及/或shift运算。第一控制器可将and运算、or运算、invert运算及/或shift运算提供到数个第二控制器。数个第二控制器可控制计算组件631及感测放大器606以执行and运算、or运算、invert运算及/或shift运算。举例来说,数个第二控制器可激活与计算组件631及/或感测放大器606相关联的感测线605、存取线604及/或锁存器以执行and运算、or运算、invert运算及/或shift运算。在数个实例中,数个第二控制器中的每一者可控制计算组件631及/或感测放大器606以执行and运算、or运算、invert运算及/或shift运算中的至少一者。

根据数个实施例,其上产生控制流的装置(例如,主机310)可独立于其上执行对应控制流指令的装置(存储器装置320-1)。作为实例,控制流可产生为数个部分。举例来说,主机310可产生包含第一部分及第二部分的控制流,其中第一部分包括第一数目个控制流指令且第二部分包括第二数目个控制流指令。作为实例,主机310可产生與控制流的第一部分相关联的第一数目个指令且将其提供到存储器装置320-1。当第一数目个指令的执行发生在存储器装置320-1上时,主机310可产生与控制流的第二部分相关联的第二数目个指令(例如,控制流的第二部分的产生可与控制流的第一部分的执行同时发生)。存储器装置320-1可将第一数目个指令的执行的结果传回到主机310且主机310可将第二数目个指令提供到存储器装置320-1。存储器装置320-1可将第二数目个指令的执行的结果及/或已执行第二数目个指令的指示提供到主机310。

将控制流的产生与控制流的执行分开提供在产生控制流的同时执行控制流的能力。此外,将控制流的产生与控制流的执行分开无需将结合控制流的执行而进行运算的数据移动到主机310,这是由于经由与主机310分开的装置(例如,320-1)上的执行单元执行控制流指令。

图4是根据本发明的数个实施例的呈计算系统的形式的设备的框图。系统400包含可类似于图3中的主机310的主机410。图4还包含存储器装置420-1、420-2、…、420-n(例如,统称为存储器装置420),其可类似于存储器装置320。

在此实例中,存储器装置420中的每一者包含控制器、存储器阵列及感测电路。举例来说,存储器装置420-1包含控制器440-1、存储器阵列430-1及感测电路450-1,存储器装置420-2包含控制器440-2、存储器阵列430-2及感测电路450-2,且存储器装置420-n包含控制器440-n、存储器阵列430-n及感测电路450-n。控制器440-1、控制器440-2、…、及控制器440-n统称为控制器440。阵列430-1、阵列430-2、…、及阵列430-n统称为阵列430。感测电路450-1、感测电路450-2、…、及感测电路450-n统称为感测电路450。如在下文进一步描述,在数个实施例中,感测电路450可经操作(例如,通过对应控制器440)以充当执行单元。

主机410可产生数个不同控制流。控制流中的每一者可与特定存储器装置420相关联。举例来说,第一控制流可与存储器装置420-1相关联,第二控制流可与存储器装置420-2,…相关联,且第n控制流可与存储器装置420-n相关联。从主机410到装置420-1到420-n的箭头表示其上可传送数据、地址及/或命令的接口(例如,总线)。然而,举例来说,装置420可经由共用总线耦合到主机410。

作为实例,不同控制流中的每一者可与单个(例如,相同)程序相关联及/或不同控制流可与不同程序相关联。举例来说,第一控制流及第二控制流可与第一程序相关联且第n控制流可与第二(例如,不同)程序相关联。第一控制流可与独立于第一程序的第二部分的第一程序的第一部分相关联。第二控制流可与独立于第一程序的第一部分的第一程序的第二部分相关联。如果执行与程序的第一部分相关联的数个指令并不影响与程序的第二部分相关联的第二数目个指令的执行,那么第一部分可被视为独立于程序的第二部分。

存储器装置420中的每一者可执行来自与多个控制流相关联的多个指令的不同指令。举例来说,存储器装置420-1可执行与第一控制流相关联的第一数目个指令,存储器装置420-2可执行与第二控制流相关联的第二数目个指令,…,且存储器装置420-n可执行与第n控制流相关联的第n数目个指令。

与图2的实例(其中控制流的产生及对应控制流指令的执行发生在相同装置上)相比,本发明的实施例可涉及分开控制流的产生与控制流的执行,此可允许数个过程同时执行。如在本文中使用,过程是指经执行的程序的例子。举例来说,可在执行第二程序的同时执行过程。

数个过程的同时执行可包含在存储器装置420执行控制流时产生控制流的主机410。举例来说,主机410可产生第一控制流。主机410可将第一控制流提供到存储器装置420-1。当存储器装置420-1经由控制器440-1、存储器阵列430-1及感测电路450-1执行与第一控制流相关联的第一数目个指令时,主机410可产生第二控制流。当存储器装置420-1执行与第一控制流相关联的第一数目个指令时,主机410可将第二控制流提供到存储器装置420-2。当存储器装置420-1及存储器装置420-2分别执行与第一控制流相关联的第一数目个指令及与第二控制流相关联的第二数目个指令时,主机410可产生且提供第n控制流到存储器装置420-n。存储器装置420-2可经由控制器440-2、存储器阵列430-2及感测电路450-2执行第二数目个指令。存储器装置420中的每一者可同时执行与不同控制流相关联的不同多个指令。举例来说,存储器装置410-2可执行第一数目个指令,存储器装置410-2可执行第二数目个指令,且存储器装置410-n可同时执行第n数目个指令。存储器装置410-n可经由控制器440-n、存储器阵列430-n及感测电路450-n执行第n数目个指令。

存储器装置420中的每一者可传回不同多个指令的执行的结果及/或已执行不同多个指令的指示。举例来说,当执行第二数目个指令及第n数目个指令(例如,分别在装置420-2及420-n上)时,存储器装置420-1可对主机410通知已执行第一数目个指令。主机410可基于与第一控制流的第一数目个指令相关联的结果而产生与第一控制流相关联的不同控制流。当存储器装置420-2及存储器装置420-n分别执行第二数目个指令及第n数目个指令时,主机410可将不同控制流提供到存储器装置420-1。可连续产生不同控制流中的每一者。举例来说,可在产生第一控制流之后产生第二控制流且可在产生第一控制流及第二控制流之后产生第n控制流。可同时(例如,在相同时间)执行与不同控制流相关联的不同数目个指令中的每一者。可在产生不同控制流的同时执行与控制流相关联的不同数目个指令中的每一者。

图4的实例通过将控制流的产生与控制流的执行分开而提供产生数个控制流且同时执行数个控制流的能力。与如在图2的实例中所提供那样一次执行单个控制流相比,同时执行数个控制流可增大生产率且可同时利用更大数目个计算资源。作为实例,主机410的alu460可经配置以确定产生及/或在装置420中分布控制流以用于执行的方式。

图5是根据本发明的数个实施例的控制流及控制流的执行的框图。图5说明包含装置510及装置520的系统500。产生控制流可包含提取、解码且产生控制流指令,控制流指令可包含存储器可操作指令。执行存储器可操作指令包含:接收存储器可操作指令586;操作执行单元(例如,通过激活存取线、感测线及锁存器);及传回存储器可操作指令的执行的结果。

在图5中展示的实例中,装置510可为经配置以产生控制流的主机(例如,主机410),且装置520可为经配置以执行通过装置510产生的至少一些控制流指令的存储器装置(例如,装置420)。提取、解码及/或产生存储器可操作指令可被分类为主机可操作指令。主机可操作指令是主机(例如,装置510)用于产生存储器可操作指令的指令。举例来说,主机可操作指令是主机用于产生由装置520执行的数个操作的指令。在下文进一步描述存储器可操作指令。

如在上文描述,装置510可为主机且装置520可为存储器装置。主机510可与程序计数器相关联。程序计数器保持待执行的下一指令的存储器地址。程序计数器可经累加以获得后继指令的地址。

在580处,装置510使用程序计数器从存储器提取指令。在提取操作结束时,程序计数器可指向将在下一循环读取的下一指令。装置510可将所提取指令存储于高速缓冲存储器中。举例来说,高速缓冲存储器可为指令寄存器及/或另一形式的存储器。

在582处,装置510解码所提取指令。解码所提取指令可包含基于与所提取指令相关联的操作码确定待经实行的运算。举例来说,装置510可解码指令(例如,所提取指令)以确定待实行加法运算。

在584处,装置510产生存储器可操作指令。产生存储器可操作指令可包含动态地产生存储器可操作指令。动态地产生存储器可操作指令可同义于动态地产生控制流,这是因为存储器可操作指令可为与控制流相关联的控制流指令。可在装置510评估经解码指令以产生存储器可操作指令时动态地产生存储器可操作指令。装置510可通过评估经解码指令以产生存储器可操作指令而动态地产生存储器可操作指令。举例来说,经解码指令可为如果则语句。可由装置510动态地评估如果则语句。装置510可基于如果则语句的评估动态地选择第一存储器可操作指令而非第二存储器可操作指令。在数个实例中,可在已编译程序之后动态地产生存储器可操作指令。

如在本文中使用,存储器可操作指令是指待由装置520执行的指令。存储器可操作指令可包含逻辑运算(例如,and运算、or运算等等)、加法运算、减法运算、乘法运算、除法运算及/或比较运算以及可与控制流指令相关联的其它类型的运算。此外,存储器可操作指令可包含读取操作及/或写入操作(例如,并不涉及操纵数据的存储器命令)。

可由装置510产生多个存储器可操作指令或可产生单个存储器可操作指令。在586处,装置520可接收存储器可操作指令。可在控制器(例如,控制器340)处接收存储器可操作指令。在588处,装置520可激活存取线、感测线及/或锁存器以执行存储器可操作指令。举例来说,控制器可激活与装置520中的存储器阵列及/或感测电路相关联的数个存取线、感测线及/或锁存器。激活数个存取线、感测线及/或锁存器可将数据从阵列移动到感测电路中。

控制器可进一步激活感测电路中的存取线、感测线及/或锁存器以对存储于感测电路中的数据执行存储器可操作指令。在数个实例中,存储器可操作指令的执行的结果可存储回到阵列。在590处,可将存储器可操作指令的结果传回到装置510。

在数个实例中,装置510及装置520至少部分解码指令。举例来说,装置510可部分解码指令以产生存储器可操作指令。装置510可将经部分解码的存储器可操作指令提供到装置520中的控制器。解码器可进一步解码存储器可操作指令且执行经完全解码的存储器可操作指令。

在数个实例中,当在装置520上执行存储器可操作指令时,装置510可留存对存储器可操作指令的部分控制。装置510可通过部分解码存储器可操作指令来留存对存储器可操作指令的部分控制。举例来说,装置510可通过将虚拟地址转译为物理存储器地址来部分解码存储器可操作指令且装置520可从经转译物理存储器地址检索指令。装置510可通过将虚拟地址转译为物理存储器地址来留存对存储器可操作指令的部分控制。

图6说明根据本发明的数个实施例的存储器阵列630的部分的示意图。阵列630包含耦合到存取线604-0、604-1、604-2、604-3、604-4、604-5、604-6、…、604-r的行及感测线605-0、605-1、605-2、605-3、605-4、605-5、605-6、605-7、…、605-s的列(其可统称为存取线604及感测线605)的存储器单元603-0、603-1、603-3、603-4、603-5、603-6、603-7、603-8、……、603-j(例如,统称为存储器单元603)。存储器阵列630不限于特定数目个存取线及/或感测线,且使用术语“行”及“列”并不意味存取线及/或感测线的特定物理结构及/或定向。尽管未描绘,存储器单元的每一列可与一对对应互补感测相关联。举例来说,阵列630可为例如图3中的阵列330或图4中的阵列430的阵列。

存储器单元的每一列可耦合到感测电路(例如,在图1中展示的感测电路150)。在此实例中,感测电路包括耦合到相应感测线605-0、605-1、605-2、605-3、605-4、605-5、605-6、605-7、…、605-s的数个感测放大器606-0、606-1、606-2、606-3、606-4、606-5、606-6、606-7、…、606-u(例如,统称为感测放大器606)。感测放大器606经由存取装置(例如,晶体管)608-0、608-2、608-3、608-4、608-5、608-6、608-7、…、608-v耦合到输入/输出(i/o)线634(例如,本地i/o线)。在此实例中,感测电路还包括耦合到相应感测线的数个计算组件631-0、631-1、631-2、631-3、631-4、631-5、631-6、631-7、…、631-x(统称为计算组件631)。列解码线610-0到610-w分别耦合到晶体管608-0到608-v的栅极,且可经选择性地激活以将通过相应感测放大器606-0到606-u感测及/或存储于相应计算组件631-0到631-x中的数据传送到次级感测放大器612及/或到阵列630外部的处理资源(例如,经由i/o线634)。在数个实施例中,计算组件631可形成于与其对应行的存储器单元及/或与对应感测放大器606的间距上。

可通过控制器(例如,140、340及440)控制感测电路(例如,计算组件631及感测放大器606)以执行根据本文中描述的数个实施例的控制流操作。结合图3到5描述的实例证明如何可对存储于例如阵列630的阵列中的数据(例如,元素)执行运算。

图7是说明根据本发明的数个实施例的具有可选逻辑运算选择逻辑的感测电路的示意图。图7展示耦合到相应互补感测线对705-1及705-2的数个感测放大器706及经由传递门707-1及707-2耦合到感测放大器706的对应数目个计算组件731。可通过逻辑运算选择逻辑信号pass控制传递门707-1及707-2的栅极。举例来说,逻辑运算选择逻辑713-6的输出可耦合到传递门707-1及707-2的栅极。

根据在图7中说明的实施例,计算组件731可包括经配置以向左及向右移位数据值的可负载移位寄存器的相应阶(例如,移位单元)。举例来说,如在图7中说明,移位寄存器的每一计算组件731(例如,阶)包括一对右移位晶体管781及786、一对左移位晶体管789及790及一对反相器787及788。可将信号phase1r、phase2r、phase1l及phase2l施加到相应控制线782、783、791及792以结合实行与根据本文中描述的实施例相关联的逻辑运算及/或移位数据而启用/停用对应计算组件831的锁存器上的反馈。在下文关于图9进一步描述移位数据的实例(例如,从特定计算组件731到相邻计算组件731)。

逻辑运算选择逻辑713-6包含交换门742以及用以控制传递门707-1及707-2及交换门742的逻辑。逻辑运算选择逻辑713-6包含四个逻辑选择晶体管:逻辑选择晶体管762,其耦合在交换晶体管742的栅极与tf信号控制线之间;逻辑选择晶体管752,其耦合在传递门707-1及707-2的栅极与tt信号控制线之间;逻辑选择晶体管754,其耦合在传递门707-1及707-2的栅极与ft信号控制线之间;及逻辑选择晶体管764,其耦合在交换晶体管742的栅极与ff信号控制线之间。通过隔离晶体管750-1(具有耦合到iso信号控制线的栅极)将逻辑选择晶体管762及752的栅极耦合到真感测线。通过隔离晶体管750-2(还具有耦合到iso信号控制线的栅极)将逻辑选择晶体管764及754的栅极耦合到互补感测线。图9说明与使用在图7中展示的感测电路实行逻辑运算及移位运算相关联的时序图。

图8是说明根据本发明的数个实施例的通过感测电路(例如,在图7中展示的感测电路)实施的可选逻辑运算结果的逻辑表。四个逻辑选择控制信号(例如,tf、tt、ft及ff)可连同存在于互补感测线上的特定数据值一起用于选择多个逻辑运算中的一者以实施涉及存储于感测放大器706及计算组件731中的开始数据值。四个控制信号(例如,tf、tt、ft及ff)连同存在于互补感测线上(例如,节点s及s*上)的特定数据值一起控制传递门707-1及707-2及交换晶体管742,其又影响在触发之前/之后计算组件731及/或感测放大器706中的数据值。可选择性地控制交换晶体管742的能力促进实施尤其涉及反相数据值(例如,反相操作数及/或反相结果)的逻辑运算。

在图8中说明的逻辑表8-1展示在844处的栏a中展示的存储于计算组件731中的开始数据值及在845处的栏b中展示的存储于感测放大器706中的开始数据值。逻辑表8-1中的其它3栏标头是指传递门707-1及707-2以及交换晶体管742的状态,其可取决于四个逻辑选择控制信号(例如,tf、tt、ft及ff)的状态以及iso控制信号经断言时存在于所述对互补感测线705-1及705-2上的特定数据值而分别经控制为打开或关闭。“notopen”栏对应于都处于非传导条件下的传递门707-1及707-2以及交换晶体管742,“opentrue”栏对应于处于传导条件下的传递门707-1及707-2,且“openinvert”栏对应于处于传导条件下的交换晶体管742。逻辑表8-1中未反映对应于都处于传导条件下的传递门707-1及707-2以及交换晶体管742的配置,这是由于此导致感测线短接在一起。

经由传递门707-1及707-2以及交换晶体管742的选择性控制,逻辑表8-1的上部的三列中的每一者可与逻辑表8-1的下部的三列中的每一者组合以提供对应于九个不同逻辑运算的九个(例如,3x3)不同结果组合,如通过在875处展示的各种连接路径指示。在逻辑表8-2中概述可由感测电路750实施的九个不同可选逻辑运算。

逻辑表8-2的列展示标头880,其包含逻辑选择控制信号(例如,ff、ft、tf、tt)的状态。举例来说,在行876中提供第一逻辑选择控制信号(例如,ff)的状态,在行877中提供第二逻辑选择控制信号(例如,ft)的状态,在行878中提供第三逻辑选择控制信号(例如,tf)的状态,且在行879中提供第四逻辑选择控制信号(例如,tt)的状态。在行847中概述对应于结果的特定逻辑运算。

图9说明根据本发明的数个实施例的与使用感测电路执行逻辑and运算及移位运算相关联的时序图。图9包含对应于信号eq、rowx、rowy、senseamp、tf、tt、ft、ff、phase1r、phase2r、phase1l、phase2l、iso、pass、pass*、digit及digit_的波形。eq信号对应于与感测放大器(例如,感测放大器706)相关联的平衡信号(未展示)。rowx及rowy信号对应于施加到相应存取线(例如,在图6中展示的存取线row1及row2)的信号以存取选定存储器单元(或单元的行)。senseamp信号对应于用于启用/停用感测放大器(例如,感测放大器706)的信号。tf、tt、ft及ff信号对应于例如在图7中展示的逻辑选择控制信号(例如,耦合到逻辑选择晶体管762、752、754及764的信号)。phase1r、phase2r、phase1l及phase2l信号对应于提供到在图7中展示的相应控制线782、783、791及792的控制信号(例如,时钟信号)。iso信号对应于耦合到在图7中展示的隔离晶体管750-1及750-2的栅极的信号。pass信号对应于耦合到在图7中展示的传递晶体管707-1及707-2的栅极的信号,且pass*信号对应于耦合到交换晶体管742的栅极的信号。digit及digit_信号对应于存在于相应感测线705-1(例如,digit(n))及705-2(例如,digit(n)_)上的信号。

在图9中展示的时序图与对存储于阵列的第一存储器单元中的数据值及存储于第二存储器单元中的数据值实行逻辑and运算相关联。存储器单元可对应于阵列的特定列(例如,包括一对互补感测线的列)且可耦合到相应存取线(例如,rowx及rowy)。在描述图9中展示的逻辑and运算时,将参考在图7中描述的感测电路。举例来说,在图9中描述的逻辑运算可包含:将rowx存储器单元的数据值(例如,“rowx”数据值)存储于对应计算组件731(其可称为累加器731)的锁存器(例如,“a”数据值)中;将rowy存储器单元的数据值(例如,“rowy”数据值)存储于对应感测放大器706的锁存器(例如,“b”数据值)中;及对rowx数据值及rowy数据值实行选定逻辑运算(例如,此实例中的逻辑and运算),其中将选定逻辑运算的结果存储于计算组件731的锁存器中。

如在图9中展示,在时间t1,停用感测放大器706的平衡(例如,eq降低)。在时间t2,rowx升高以存取(例如,选择)rowx存储器单元。在时间t3,启用感测放大器706(例如,senseamp升高),这响应于rowx数据值(例如,如通过digit及digit_信号展示)而将互补感测线705-1及705-2驱动到适当轨电压(例如,vdd及gnd),且将rowx数据值锁存于感测放大器706中。在时间t4,phase2r及phase2l信号降低,这停用计算组件731的锁存器上的反馈(例如,通过分别关断晶体管786及790),使得可在逻辑运算期间覆写存储于计算组件中的值。而且,在时间t4,iso降低,这停用隔离晶体管750-1及750-2。在时间t5,启用tt及ft(例如,升高),这导致pass升高(例如,由于晶体管752或754将取决于节点st2或节点sf2的哪一者在时间t4停用iso时为高而传导)(回想起当iso停用时,节点st2及sf2的电压动态地驻留于相应启用晶体管752及754的栅极上)。pass升高启用传递晶体管707-1及707-2,使得将对应于rowx数据值的digit及digit_信号提供到相应计算组件节点st2及sf2。在时间t6,停用tt及ft,这导致pass降低,从而停用传递晶体管707-1及707-2。注意,由于tf及ff信号保持低,因此pass*在时间t5与t6之间保持低。在时间t7,停用rowx,且启用phase2r、phase2l及iso。在时间t7启用phase2r及phase2l启用计算组件731的锁存器上的反馈,使得rowx数据值锁存于其中。在时间t7启用iso再次将节点st2及sf2耦合到启用晶体管752、754、762及764的栅极。在时间t8,启用平衡(例如,eq升高,使得digit及digit_经驱动到例如vdd/2的平衡电压)且停用感测放大器706(例如,senseamp降低)。

在rowx数据值锁存于计算组件731中的情况下,停用平衡(例如,eq在时间t9降低)。在时间t10,rowy升高以存取(例如,选择)rowy存储器单元。在时间t11,启用感测放大器706(例如,senseamp升高),这响应于rowy数据值(例如,如通过digit及digit_信号展示)而将互补感测线705-1及705-2驱动到适当轨电压(例如,vdd及gnd),且将rowy数据值锁存于感测放大器706中。在时间t12,phase2r及phase2l信号降低,这停用计算组件731的锁存器上的反馈(例如,通过分别关断晶体管786及790),使得可在逻辑运算期间覆写存储于计算组件中的值。而且,在时间t12,iso降低,这停用隔离晶体管750-1及750-2。由于此实例中的所要逻辑运算是and运算,因此在时间t13,启用tt而tf、ft及ff保持停用(如在表8-2中展示,ff=0,ft=0,tf=0且tt=1对应于逻辑and运算)。启用tt是否导致pass升高取决于在时间t12停用iso时存储于计算组件731中的值。举例来说,如果节点st2在停用iso时为高,那么启用晶体管752将传导,且如果节点st2在时间t12停用iso时为低,那么启用晶体管将不传导。

在此实例中,如果pass在时间t13升高,那么启用传递晶体管707-1及707-2,使得将对应于rowy数据值的digit及digit_信号提供到相应计算组件节点st2及sf2。因而,存储于计算组件731中的值(例如,rowx数据值)可取决于digit及digit_的值(例如,rowy数据值)而翻转。在此实例中,如果pass在时间t13保持低,那么不启用传递晶体管707-1及707-2,使得对应于rowy数据值的digit及digit_信号保持与计算组件731的节点st2及sf2隔离。因而,计算组件中的数据值(例如,rowx数据值)将保持相同。

在时间t14,停用tt,这导致pass降低(或保持低),使得停用传递晶体管707-1及707-2。注意,由于tf及ff信号保持低,因此pass*在时间t13与t14之间保持低。在时间t15,停用rowy,且启用phase2r、phase2l及iso。在时间t15启用phase2r及phase2l启用计算组件731的锁存器上的反馈,使得and运算(例如,“a”and“b”)的结果锁存于其中。在时间t15启用iso再次将节点st2及sf2耦合到启用晶体管752、754、762及764的栅极。在时间t16,启用平衡(例如,eq升高,使得digit及digit_经驱动到平衡电压)且停用感测放大器706(例如,senseamp降低)。

可经由i/o线将and运算的结果(在此实例中,其最初存储于计算组件731中)传送回到存储器阵列(例如,到经由互补感测线耦合到rowx、rowy及/或不同行的存储器单元)及/或到外部位置(例如,外部处理组件)。

图9还包含(例如,在901处)与移位数据(例如,从计算组件731到相邻计算组件731)相关联的发信号。在图9中展示的实例说明两个左移位,使得存储于对应于列“n”的计算组件中的数据值向左移位到对应于列“n-2”的计算组件。如在时间t16展示,停用phase2r及phase2l,这停用计算组件锁存器上的反馈,如在上文描述。为实行第一左移位,在时间t17启用phase1l且在时间t18停用phase1l。启用phase1l导致晶体管789传导,这导致节点sf1处的数据值向左移动到左相邻计算组件731的节点sf2。随后在时间t19启用phase2l且在时间t20停用phase2l。启用phase2l导致晶体管790传导,这导致来自节点st1的数据值向左移动到节点st2从而完成左移位。

上述序列(例如,启用/停用phase1l且随后启用/停用phase2l)可经重复以实现所要数目个左移位。举例来说,在此实例中,通过在时间t21启用phase1l且在时间t22停用phase1l而实行第二左移位。随后在时间t23启用phase2l以完成第二左移位。继第二左移位之后,phase2l保持启用且phase2r经启用(例如,在时间t24),使得启用反馈以将数据值锁存于计算组件锁存器中。

尽管已在本文中说明及描述特定实施例,但所属领域的一般技术人员将了解,经计算以实现相同结果的布置可取代展示的特定实施例。本发明希望涵盖本发明的一或多个实施例的调适或变动。应理解,已以阐释性方式而非限制性方式做出上述描述。所属领域的技术人员在检视上述描述后将明白在本文中未具体描述的上述实施例的组合及其它实施例。本发明的一或多个实施例的范围包含其中使用上述结构及方法的其它应用。因此,应参考所附权利要求书以及此权利要求书所授权的等效物的全范围确定本发明的一或多个实施例的范围。

在前述具体实施方式中,出于简化本发明的目的,将一些特征集中于单个实施例中。本发明的此方法不应解释为反映本发明的所揭示实施例必须使用多于每一权利要求中明确叙述的特征的意图。而是,如所附权利要求书反映,本发明标的物在于少于单个所揭示实施例的所有特征。因此,特此将所附权利要求书并入具体实施方式中,其中每一权利要求独立地作为单独实施例。

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