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

跨时钟域队列的制作方法

2022-02-25 18:35:42 来源:中国专利 TAG:

跨时钟域队列
1.交叉引用
2.本专利申请要求陈(chen)等人于2020年6月30日提交的标题为“跨时钟域队列(clock domain crossing queue)”的第16/916,926号美国专利申请和陈(chen)等人于2019年7月15日提交的标题为“跨时钟域队列(clock domain crossing queue)”的第62/874,442号美国临时专利申请的权益,每个申请转让给本受让人,且每个申请以引用的方式明确并入本文中。
技术领域
3.下文总体上涉及存储器子系统,且更确切地说,涉及存储器子系统的跨时钟域队列。


背景技术:

4.存储器子系统可以是存储装置、存储器模块,以及存储装置和存储器模块的混合。存储器子系统可包含存储数据的一或多个存储器组件。存储器组件可以是例如非易失性存储器组件和易失性存储器组件。一般来说,主机系统可利用存储器子系统在存储器组件处存储数据且从存储器组件检索数据。
附图说明
5.图1示出根据本文所公开的实例的支持跨时钟域队列的计算环境的实例。
6.图2a示出根据本文所公开的实例的支持跨时钟域队列的系统的实例。
7.图2b示出根据本文所公开的实例的支持跨时钟域队列的系统的实例。
8.图3示出根据本文所公开的实例的支持跨时钟域队列的时序图的实例。
9.图4示出根据本文所公开的实例的支持跨时钟域队列的时序图的实例。
10.图5和6示出根据本文所公开的实例的示出支持跨时钟域队列的一或多种方法的流程图。
11.图7示出根据本文所公开的实例的支持跨时钟域队列的计算机系统的实例。
具体实施方式
12.本公开的方面涉及跨时钟域队列。存储器子系统可以是存储装置、存储器模块或存储装置和存储器模块的混合物。参考图1描述存储装置和存储器模块的实例。大体来说,主机系统可利用包含一或多个存储器组件的存储器子系统。主机系统可提供将存储在存储器子系统处的数据,并且可请求将从存储器子系统检索的数据。
13.一些系统,包含存储器子系统,可能会需要将信息从一个时钟域转移到另一时钟域。有些系统可能使用异步先进先出(fifo)电路系统来处理跨两个不同时钟域的信息转移。异步fifo解决方案的一个缺点是会消耗资源,例如使用多个门计数和消耗功率。有些系统可能在门计数、功耗或这两者上受到更大的限制。
14.本公开的各方面通过具有一个包含将数据从第一时钟域转移到第二时钟域的队列的存储器子系统来解决以上和其它缺陷。队列可包含两个或更多个用于存储信息的位置。队列或其它相关联的电路系统可以维持两个指示符,以管理与将数据存储到队列以及从队列检索数据相关联的指针,并管理存储到队列以及从队列检索的操作。第一指示符可指示队列的位置是否不含来自第一时钟域的数据。第二指示符可指示队列的位置是否填满来自第二时钟域的数据。相比于其它队列设计,例如异步fifo设计,队列的配置减少了所使用的门数,并减少所消耗的功率量。
15.本公开的特征首先在参考图1所描述的计算环境的上下文中描述。本公开的特征在参考图2a、2b、3和4所描述的系统和时序图的上下文中描述。本公开的这些和其它特征进一步由涉及参考图5-8所描述的跨时钟域队列的设备图、计算机系统和流程图说明并参考它们进行描述。
16.图1示出根据如本文中所公开的实例的计算环境100的实例。计算环境可包含主机系统105和存储器子系统110。存储器子系统110可包含媒体,例如一或多个非易失性存储器装置(例如,存储器装置130)、一或多个易失性存储器装置(例如,存储器装置140)或其组合。
17.存储器子系统110可以是存储装置、存储器模块或存储装置和存储器模块的混合物。存储装置的实例包含固态驱动器(ssd)、快闪驱动器、通用串行总线(usb)快闪驱动器、嵌入式多媒体控制器(emmc)驱动器、通用快闪存储(ufs)驱动器和硬盘驱动器(hdd)。存储器模块的实例包含双列直插式存储器模块(dimm)、小外廓dimm(so-dimm)和非易失性双列直插式存储器模块(nvdimm)。
18.计算环境100可包含与存储器系统耦合的主机系统105。存储器系统可以是一或多个存储器子系统110。在一些实例中,主机系统105与不同类型的存储器子系统110耦合。图1示出与一个存储器子系统110耦合的主机系统105的一个实例。主机系统105使用存储器子系统110,例如,将数据写入到存储器子系统110并从存储器子系统110读取数据。如本文中所使用,“耦合到
……”
或“与
……
耦合”大体上是指组件之间的连接,此连接可以是间接通信连接或直接通信连接(例如,不具有中间组件),不管是有线还是无线,包含电气、光学、磁性等连接。
19.主机系统105可以是计算装置,例如台式计算机、笔记本计算机、网络服务器、移动装置、车辆(例如,飞机、无人机、火车、汽车或其它运输工具)、嵌入式系统、物联网(iot)装置,或此类包含存储器和处理装置的计算装置。主机系统105可以使用物理主机接口耦合到存储器子系统110。物理主机接口的实例包含但不限于串行高级技术附件(sata)接口、外围组件互连高速(pcie)接口、通用串行总线(usb)接口、光纤通道、串行连接的scsi(sas)等等。物理主机接口可用于在主机系统105和存储器子系统110之间传输数据。当存储器子系统110通过pcie接口与主机系统105耦合时,主机系统105可另外利用nvm快速(nvme)接口存取存储器组件(例如,存储器装置130)。物理主机接口可提供用于在存储器子系统110和主机系统105之间传递控制、地址、数据和其它信号的接口。
20.存储器装置可包含不同类型的非易失性存储器装置和/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储器装置140)可以是但不限于随机存取存储器(ram),例如动态随机存取存储器(dram)和同步动态随机存取存储器(sdram)。
21.非易失性存储器装置(例如,存储器装置130)的实例包含三维(3d)交叉点(“3d交叉点”)型快闪存储器,它是非易失性存储器单元交叉点阵列。非易失性存储器交叉点阵列可结合可堆叠交叉网格化数据存取阵列基于体电阻的变化而执行位存储。另外,与许多基于快闪的存储器相比,交叉点非易失性存储器可执行原位写入操作,其中非易失性存储器单元可以在其先前已进行擦除的情况下进行编程。
22.虽然描述了例如3d交叉点类型存储器的非易失性存储器组件,但存储器装置130可以基于任何其它类型的非易失性存储器,例如“与非”(nand)、只读存储器(rom)、相变存储器(pcm)、自选存储器、其它基于硫族化物的存储器、铁电随机存取存储器(feram)、磁性随机存取存储器(mram)、“或非”(nor)快闪存储器,以及电可擦除可编程只读存储器(eeprom)。
23.在一些实施例中,存储器装置130中的每一个可包含存储器单元的一或多个阵列,例如单层级单元(slc)、多层级单元(mlc)、三层级单元(tlc)、四层级单元(qlc)或这些的组合。在一些实例中,特定存储器组件可包含存储器单元的slc部分,以及mlc部分、tlc部分或qlc部分。存储器单元中的每一个可存储供主机系统105使用的一或多个数据位。此外,存储器装置130的存储器单元可被分组为存储器页或存储器块,其可指用于存储数据的存储器组件的单元。
24.存储器子系统控制器115可与存储器装置130通信以执行操作,例如在存储器装置130处读取数据、写入数据或擦除数据和其它此类操作。存储器子系统控制器115可包含例如一或多个集成电路和/或离散组件、缓冲存储器或其组合的硬件。存储器子系统控制器115可以是微控制器、专用逻辑电路系统(例如,现场可编程门阵列(fpga)、专用集成电路(asic)等),或其它合适的处理器。
25.存储器子系统控制器115可包含处理器120(例如,处理装置),其配置成执行存储在本地存储器125中的指令。在所示的实例中,存储器子系统控制器115的本地存储器125包含嵌入式存储器,其配置成存储用于执行各种过程、操作、逻辑流以及控制存储器子系统110的操作的例程的指令,包含处理存储器子系统110与主机系统105之间的通信。
26.在一些实例中,本地存储器125可包含存储器寄存器,其存储存储器指针、提取的数据等。本地存储器125还可包含用于存储微码的只读存储器(rom)。虽然图1中的实例存储器子系统110已示出为包含存储器子系统控制器115,但在本公开的另一实例中,存储器子系统110无法包含存储器子系统控制器115,而是替代地可以依赖于外部控制(例如,通过外部主机提供,或通过与存储器子系统分开的处理器或控制器提供)。
27.一般来说,存储器子系统控制器115可从主机系统105接收命令或操作,并且可将所述命令或操作转换为指令或适当命令以实现对存储器装置130的所需存取。存储器子系统控制器115可负责与存储器装置130相关联的其它操作,例如耗损均衡操作、垃圾数据收集操作、错误检测和错误校正码(ecc)操作、加密操作、高速缓存操作,以及逻辑地址(例如,逻辑块地址(lba))和物理地址之间的地址转换。存储器子系统控制器115可进一步包含主机接口电路系统以经由物理主机接口与主机系统105通信。主机接口电路系统可以将从主机系统接收到的命令转换成存取存储器装置130的命令指令,以及将与存储器装置130相关联的响应转换成用于主机系统105的信息。
28.存储器子系统110还可包含没有示出的额外电路系统或组件。在一些实例中,存储
器子系统110可包含高速缓存或缓冲器(例如,dram)和地址电路系统(例如,行解码器和列解码器),它们可从存储器子系统控制器115接收地址并解码所述地址以存取存储器装置130。
29.在一些实施例中,存储器装置130包含本地媒体控制器135,其结合存储器子系统控制器115用于对存储器装置130的一或多个存储器单元执行操作。外部控制器(例如,存储器子系统控制器115)可在外部管理媒体装置130(例如,对媒体装置130执行媒体管理操作)。在一些实施例中,存储器装置130可以是本地管理的存储器装置,它是与本地媒体控制器135组合的原始存储器装置,所述本地媒体控制器135对相同存储器装置封装内的存储器装置130执行存储器管理操作。
30.存储器子系统110包含可跨不同时钟域使信号同步的队列150。在一些实例中,存储器子系统控制器115包含队列150的至少一部分。例如,存储器子系统控制器115可包含处理器120(例如,处理装置),其配置成执行存储在本地存储器125中的指令以执行本文中所描述的操作。在一些实例中,队列150是主机系统105、应用或操作系统的部分。
31.存储器子系统110的组件可在不同时钟域中操作。例如,第一组件可在具有带第一周期性(例如,1mhz)的时钟的第一时钟域中操作,第二组件可在具有带第二周期性(例如,2mhz)的时钟的第二时钟域中操作。队列150可以是从第一时钟域(例如,源组件)到第二时钟域(例如,目的地组件)的单向转换器,由此使得第一组件和第二组件彼此通信。在一些情况下,队列150可以是双向转换器。在一些情况下,双向转换器可包含两个或更多个单向转换器。
32.图2a示出根据本文所公开的实例的支持跨时钟域队列的系统200的实例。系统200包含配置成在不同时钟域之间转换信息的队列205。例如,队列205可使用第一时钟域与源组件210耦合,并使用不同于第一时钟域的第二时钟域与目的地组件215耦合。队列205可配置成在第一时钟域和第二域之间转换数据和命令。队列205的说明性实例示出数据从第一时钟域转换到第二时钟域。本文中所描述的原理和特征还可用于将数据从第二时钟域转换到第一时钟域。
33.许多系统可能会需要将信息从一个时钟域转移到另一时钟域。有些系统可能使用例如异步fifo电路系统来处理跨两个不同时钟域的信息转移。异步fifo电路系统的深度可基于吞吐量要求、源-目的地时钟频率比或其组合。异步fifo解决方案的一个缺点是会消耗资源,例如使用多个门计数和消耗功率。
34.有些系统可能在门计数、功耗或这两者上受到更大的限制。另外,对于一些系统,无法要求由第一时钟域传输的每一条信息都由第二时钟域接收。相反,即使有一些数据丢失,也可以实现结果。例如,源组件210(使用第一时钟域)可配置成将一些计数器值转移到目的地组件215(使用第二时钟域)。目的地组件215可能不再需要接收源组件210传输的每一个计数器值来实现期望的结果。相反,目的地组件215可以通过接收所传输计数器值的子集来实现结果。
35.本文中描述了队列205将数据从第一时钟域转移到第二时钟域的技术。队列205可包含两个或更多个用于存储信息的位置。队列或其它相关联的电路系统可以维持一或多个(例如,两个)指示符,以管理推进指针(push pointer)和弹出指针(pop pointer)。第一指示符可指示队列205的位置是否不含(例如,不包含)来自第一时钟域的数据。第二指示符可
指示队列205的位置是否填满(例如,包含)来自第二时钟域的数据。相比于其它队列设计,例如异步fifo设计,队列205的配置可以减少所使用的门数,并减少所消耗的功率量。
36.队列205可配置成执行跨时钟域并使用最少空间进行信息存储。为实现跨时钟域,源组件210可在队列205的存储组件上由推进指针指示的位置处存储数据(例如,推进数据),且目的地组件215可在队列205的存储组件上由弹出指针指示的位置处检索数据(例如,弹出数据)。在一些实例中,推进指针和弹出指针可独立配置。
37.系统200示出了队列205、源组件210和目的地组件215的设计以及在各个实体之间交换的各个数据。本文中所描述的信息可以通过一或多个信道传送。用来说明系统200的框图中的连接不应被视为具限制性。
38.源组件210可将其时钟220传输到队列205,且目的地组件215可将其时钟225传输到队列205。时钟220和时钟225可在不同频率下操作。在一些实施方案中,如果时钟220的频率匹配时钟225的频率,那么队列205无法使用。队列205可配置成在时钟220和225的任何不匹配的频率之间转换数据。例如,第一时钟220可具有高于第二时钟225的频率,或第一时钟220可具有低于第二时钟225的频率。在一些情况下,第一时钟220和/或第二时钟225可以指从其它源接收的时钟信号。在其它情况下,第一时钟220和/或第二时钟225可以指产生时钟信号的硬件组件。
39.源组件210可与队列205交换命令230。在这两个组件之间交换的命令230的实例可包含推进命令、pop_src命令、通知或其组合。关于这些示例性命令的额外特征参考图3和4更详细地描述。
40.目的地组件215可与队列205交换命令235。在这两个组件之间交换的命令235的实例可包含pop_dst命令、通知或其组合。关于这些示例性命令的额外特征参考图3和4更详细地描述。
41.源组件210可与队列205交换关于推进指针240的信息,且目的地组件215可与队列205交换关于弹出指针245的信息。在一些实施方案中,源组件210和目的地组件215可维持和/或移动它们相应的指针(例如,推进指针240和弹出指针245)。在此类实施方案中,源组件210和目的地组件215向队列205传输关于指针的信息。在其它实施方案中,队列205可维持和/或推进指针240和弹出指针245。在此类实施方案中,队列205可向源组件210或目的地组件215或其组合传输关于指针的信息。关于推进指针240和弹出指针245的额外特征参考图3和4更详细地描述。
42.源组件210可向队列205传输推进数据250,其可以存储在队列205的存储组件的一位置中。推进数据250的实例可包含计数器值或要从源组件210的第一时钟域和目的地组件215的第二时钟域转移的其它数据。关于推进数据250的额外特征参考图3和4更详细地描述。
43.目的地组件215可从队列205检索弹出数据255,其可以存储在队列205的存储组件的一位置中。弹出数据255的实例可包含计数器值或要从源组件210的第一时钟域和目的地组件215的第二时钟域转移的其它数据。关于弹出数据255的额外特征参考图3和4更详细地描述。
44.在一些情况下,队列205可包含两个用于存储来自源组件210的数据的位置。在其它情况下,队列205可包含超过两个位置来存储数据(例如,三个、四个、五个、六个、七个、八
个等)。队列205的功能是参考包含两个用于存储数据的位置的队列描述的。本文中所描述的特征可扩展为与包含超过两个位置的队列一起使用。在一些情况下,队列205的存储组件包含由硫族化物材料形成的存储器单元,例如pcm或自选存储器。在其它情况下,队列205的存储组件可包含使用动态随机存取(dram)存储器技术、铁电随机存取(feram)存储器技术、与非(nand)快闪存储器技术、其它存储器技术或其组合的存储器单元。
45.图2b示出根据本文所公开的实例的支持跨时钟域队列的系统260的实例。系统260示出关于队列205的额外特征及至少一些与队列205相关联的命令的实施方案。
46.队列205可包含第一脉冲同步器265和第二脉冲同步器270。第一脉冲同步器265可配置成同步从源组件210的第一时钟域到目的地组件215的第二时钟域的信号。第二脉冲同步器270可配置成同步从目的地组件215的第二时钟域到源组件210的第一时钟域的信号。脉冲同步器265和270可包含一或多个触发器或其它电路系统,以跨异步时钟域同步信号。队列205可包含任何数量的第一脉冲同步器265或任何数量的第二脉冲同步器270。
47.系统260示出了弹出信号的同步过程的实例实施方案。源组件210可向队列205传输pop_src命令275。pop_src命令275可向队列205指示并经扩展向目的地组件215指示数据应该通过目的地组件215从队列检索(例如,弹出)。第一脉冲同步器265可产生处理pop_src命令275的pop_dst命令280。在一些情况下,队列205可基于接收到pop_src命令275而自动产生pop_dst命令280。队列205可向目的地组件215传输pop_dst命令280。pop_dst命令280可配置成使目的地组件215从队列205的存储组件的由弹出指针指示的位置处检索数据。
48.队列205可通过第二脉冲同步器270馈送pop_dst命令280以产生通知285。通知285可配置成向源组件210指示数据已从队列205检索到(例如,弹出)。一旦数据从队列205弹出,源组件210就可确定队列的存储组件有多一个位置可用于存储数据。在一些情况下,源组件210可基于接收到通知285而更新推进指针或一或多个指示符。
49.在一些情况下,队列205可基于传输pop_dst命令280而自动产生通知285。在这些情况下,通过目的地组件215从队列205的存储组件检索数据所花费的时间(相等的时间量)可少于通过队列205产生通知285并将通知285传输到源组件210所花费的时间。关于弹出信号的同步过程的额外细节参考图3和4更详细地描述。
50.图3示出根据本文所公开的实例的支持跨时钟域队列的时序图300的实例。时序图300可示出队列(例如,参考图1、2a和2b描述的队列205)的一或多个存取。由时序图300示出的操作是针对在存储组件中包含两个用于存储数据的位置的队列。在其它实例中,队列可包含超过两个用于存储数据的位置。
51.在时间t1,队列最初是空的,这意味着数据不存储在队列的存储组件的任何位置中。在一些实例中,队列的存储组件可包含或可以指由硫族化物材料形成的一或多个存储器单元,例如pcm或自选存储器。在其它情况下,队列的存储组件可包含使用动态随机存取(dram)存储器技术、铁电随机存取(feram)存储器技术、与非(nand)快闪存储器技术、其它存储器技术或其组合的存储器单元。时序图示出了源时钟(例如,时钟220)可在第一频率下操作,第一频率大致是目的地时钟(例如,时钟225)的第二频率的两倍。在其它实例中,目的地时钟可在高于源时钟的频率下操作。源时钟和目的地时钟的其它频率比包含在本公开中。在此初始状态下,推进指针可以指向队列的存储组件的第一位置(例如,位置0),且弹出点可以指向第一位置(例如,位置0)。
52.另外,在此初始状态下,填满指示符可指示队列未填满,且空指示符可指示队列为空。填满指示符可配置成指示队列的存储组件的每个位置是否正在存储来自源组件的信息。换句话说,填满指示符可配置成指示是否有至少一个位置可用于存储来自源组件的额外信息。在说明性实例中,填满指示符的值零指示队列未填满(例如,有至少一个位置可用于从源组件接收信息),且填满指示符的值一指示队列填满(例如,队列的所有位置当前都在存储信息)。在其它实施方案中,填满指示符的值零和值一的含义可以颠倒过来。
53.空指示符可配置成指示队列的存储组件的每个位置是否可用于存储来自源组件的信息。换句话说,空指示符可配置成指示是否有至少一个位置正在存储从源组件接收的信息。在说明性实例中,空指示符的值零指示队列不为空(例如,有至少一个位置正在存储来自源组件的信息),且空指示符的值一指示队列为空(例如,队列的所有位置都可用于接收和存储与源组件相关联的信息)。在其它实施方案中,空指示符的值零和值一的含义可以颠倒过来。
54.系统可使用填满指示符和空指示符来管理存取操作期间推进指针和弹出指针的位置。例如,填满指示符可用于指示推进指针在接收到推进命令之后是否应该移动,且空指示符可用于指示弹出命令在弹出操作完成之后是否应该立即发出。在一些情况下,队列可维持填满指示符和空指示符。在一些情况下,源组件可维持填满指示符和空指示符。
55.在时间t2,源组件(例如,源组件210)可发出由队列接收的推进命令,如由脉冲405指示。源组件还可传输推进数据,如由时序图300的推进数据“a”指示。队列可识别由推进指针指示的位置(例如,第一位置,即位置0),并且可将推进数据“a”存储在由推进指针指示的位置中。
56.在时间t2,源组件还可发出由队列接收的pop_src命令,如由脉冲410指示。源组件可同时发出pop_src命令与推进命令,因为源组件会知晓每次数据被推进到队列上时,应该从队列弹出相同数据。在一些情况下,源组件可确定是否有其它数据当前正从队列弹出。在这些情况下,源组件可发出推进命令,但不发出pop_src命令(例如,如t9-t12中所示)。
57.在时间t3,在脉冲405和/或410结束时或结束之后,指针和指示符可以更新,并且队列可开始产生pop_dst命令。首先,填满指示符和空指示符的条件可被识别,且指示符可相应地通过队列、源组件或其组合更新。在此情况下,空指示符的值被修改,因为队列的至少一个位置正在存储来自源组件的数据(在此说明性实例中,恰好一个位置正在存储信息)。在此情况下,填满指示符的值未修改,因为队列有至少一个位置仍然可用于存储来自源组件的额外信息(在此说明性实例中,有恰好一个位置可用于存储额外信息)。
58.其次,在指示符更新之后,推进指针可以基于填满指示符的值更新(例如,通过队列、源组件或其组合)。在此实例中,填满指示符为零值,且填满指示符为零值。指示符的这一条件可指示队列的第二位置可用于接收来自源组件的额外信息。队列(或源组件)可修改推进指针以指向队列的第二位置(例如,位置1)。
59.接着,队列可使用参考图2b所描述的同步过程开始产生pop_dst命令。脉冲同步器可花费在t3和t4之间的第一持续时间将pop_src命令的同步从源组件的第一时钟域变成目的地组件的第二时钟域。
60.在时间t4,队列可将pop_dst命令传输到目的地组件,如由脉冲415指示。在时间t4到t5之间,目的地组件可检索存储在由弹出指针指示的位置(例如,第一位置,即位置0)处
的数据。
61.在时间t5,弹出指针可以基于从队列检索到数据而更新(例如,通过队列、源组件、目的地组件或其组合)。队列(或目的地组件)可修改弹出指针以指向队列的第二位置(例如,位置1)。
62.另外,在时间t5,队列可使用参考图2b所描述的同步过程开始产生通知。脉冲同步器可花费在时间t5和t6之间的第二持续时间将pop_dst命令的同步从目的地组件的第二时钟域变成源组件的第一时钟域。供目的地到源脉冲同步器使用的第二持续时间的长度可由于时钟不匹配的类型而不同于(例如,短于)供源到目的地脉冲同步器使用的第一持续时间。例如,因为源时钟比目的地时钟快,所以第二持续时间可比第一目的地快。
63.在时间t6,队列可向源组件传输通知,如由脉冲420指示。源组件可检查指示符的状态以确定是否应该发出另一pop_src命令。因为填满指示符和/或空指示符指示(刚刚执行的)弹出命令清空了队列,所以源组件无法立即发出pop_src命令。这与在本文中所描述的另一情形中在时间t14发出的pop_src命令不同。
64.在时间t7,填满指示符和空指示符的条件可被识别,并且指示符可相应地通过队列、源组件或其组合更新。在此情况下,空指示符的值被修改,因为队列中的位置都不再活跃地存储源组件的数据。
65.在时间t8,源组件发出另一推进命令,如由脉冲425指示,以及另一pop_src命令,如由脉冲430指示。在发出这些命令之前,队列的位置都可用于存储信息。脉冲425的推进命令与脉冲405的推进命令之间的一个差别在于脉冲425的推进命令扩展为在队列中存储数据。在此情形下,推进命令和/或推进数据的数量将超过队列中的位置数量(例如,两个位置)。描述了管理这些情形下的推进操作和推进指针的技术。
66.首先,基于接收到时间t8处的推进命令,将推进数据“b”存储在由推进指针指示的第二位置(例如,位置1)处。其次,在时间t8,开始由脉冲430指示的pop_src命令的同步过程。弹出命令的同步过程及用于更新指针和指示符的程序参考图2b及图3的时间t1到t7更充分地描述。因而,此处没有全面地描述关于弹出命令的同步过程的细节、关于更新指示符的细节以及关于更新指针的细节。
67.在时间t9,指示符(例如,填满指示符和空指示符)经更新,且推进指针基于指示符经更新。在此特定实例中,空指示符从值一(指示队列为空)更新为值零(指示队列中有至少一个位置正在存储信息)。在此特定实例中,推进指针从队列的第二位置(例如,位置1)更新到第一位置(例如,位置0)。
68.并且,在时间t9,由脉冲425指示的推进命令保持为高,且推进数据“c”通过源组件传输到队列。队列可将推进数据“c”存储在由推进指针指示的第一位置(例如,位置0)处。
69.在时间t10,指示符(例如,填满指示符和空指示符)经更新,且推进指针基于指示符经更新。在此特定实例中,填满指示符从值零(指示有至少一个位置可用于存储信息)更新为值一(指示队列全满)。在此特定实例中,推进指针保持处于其相同值(例如,位置0),因为填满指示符指示队列中没有额外位置接收和存储来自源组件的信息。
70.另外,在时间t10,队列正在处理由脉冲430指示的pop_src命令,以使目的地组件检索存储在由弹出指针指示的第二位置处的数据“b”。在一些情况下,目的地组件检索数据所花费的时间比源组件将数据存储在队列处所花费的时间更多。在这些情况下,接收到的
推进数据的量可多于队列的位置数量,并且可以实施技术来管理此类情况。如本文中较全面描述,在这些情况下,推进指针可保留在原位,并且可以覆写队列中所述位置的数据,直到有新的位置可用于存储数据为止。
71.并且,在时间t10,由脉冲425指示的推进命令保持为高,并且推进数据“d”通过源组件传输到队列。队列可将推进数据“d”存储在由推进指针指示的第一位置(例如,位置0)处。这种数据“d”存储在第一位置处可以覆写在时间t9存储在此位置处的数据“c”。
72.在时间t11,指示符(例如,填满指示符和空指示符)经更新,且推进指针基于在时间t10的推进命令经更新。在此特定实例中,填满指示符和空指示符未修改,因为队列一直全满。在此特定实例中,推进指针保持处于其相同值(例如,位置0),因为填满指示符指示队列中没有额外位置接收和存储来自源组件的信息。
73.并且,在时间t11,由脉冲425指示的推进命令保持为高,并且推进数据“e”通过源组件传输到队列。队列可将推进数据“e”存储在由推进指针指示的第一位置(例如,位置0)处。这种数据“e”存储在第一位置处可以覆写在时间t10存储在此位置处的数据“d”。
74.在时间t12,指示符(例如,填满指示符和空指示符)经更新,且推进指针基于时间t11的推进命令经更新。在此特定实例中,填满指示符和空指示符未修改,因为队列一直全满。在此特定实例中,推进指针保持处于其相同值(例如,位置0),因为填满指示符指示队列中没有额外位置接收和存储来自源组件的信息。在时间t12,由脉冲425指示的推进命令还变低。
75.附带地,同样在时间t12,队列可将pop_dst命令传输到目的地组件,如由脉冲435指示。在时间t12到t13之间,目的地组件可检索存储在由弹出指针指示的位置(例如,第二位置,即位置1)处的数据“b”。
76.在时间t13,弹出指针可基于从队列检索到数据而更新(例如,通过队列、源组件、目的地组件或其组合)。队列(或目的地组件)可修改推进指针以指向队列的第一位置(例如,位置0)。
77.在时间t14,队列可向源组件传输通知,如由脉冲440指示。源组件可检查指示符的状态以确定是否应该发出另一pop_src命令。因为空指示符指示(刚刚执行的)弹出命令未清空队列(例如,有至少一个位置仍然存储在信息),所以源组件可立即发出pop_src命令,如由脉冲445指示。在一些情况下,电路系统或逻辑可用于基于空指示符的值或填满指示符的值或其组合将通知选通到pop_src命令。由脉冲445指示的pop_src命令可与通知并行(例如,同时)发出。弹出命令的此类即时发出可确保队列操作的速度。
78.在时间t15,填满指示符和空指示符的条件可被识别,且指示符可相应地通过队列、源组件或其组合更新。在此情况下,填满指示符的值被修改,因为队列中有至少一个位置可用于存储来自源命令的新信息。空指示符的值未修改,因为队列中有至少一个位置正在活跃地存储源组件的信息。
79.并且,在时间t15,推进指针从第一位置(例如,位置0)更新到第二位置(例如,位置1)。在一些实例中,这可以是响应于弹出命令已经执行且第二位置现在可用于存储新信息的通知。在一些实例中,这可以响应于更新填满指示符以指示有至少一个位置可用于存储信息。
80.时序图300的其余部分示出了检索存储在队列的第一位置(例如,位置0)处的数据“e”的弹出操作。在时间t16,队列可向目的地组件传输pop_dst命令,如由脉冲450指示。在时间t16到t17之间,目的地组件可检索存储在由弹出指针指示的位置(例如,第一位置,即位置0)的数据“e”处。在时间t17,弹出指针经更新。在时间t18,队列可向源组件传输通知,如由脉冲455指示。源组件可检查指示符的状态以确定是否应该发出另一pop_src命令。因为空指示符指示(刚刚执行的)弹出命令清空了队列,所以源组件无法立即发出pop_src命令。在时间t19,空指示符可经更新以指示队列的每个位置都可用于存储信息。
81.时序图300示出了包含两个位置的队列(例如,深度为二的队列)的操作。在这些情况下,空指示符和填满指示符可用于更新指针和指示符。例如,如果填满指示符和空指示符的值是0和1,那么这可指示有零个位置在存储信息;如果填满指示符和空指示符的值是0和0,那么这可指示有一个位置在存储信息;且如果填满指示符和空指示符的值是1和0,那么这可指示有两个位置(例如,全部)在存储信息。在此类实例中,指示符自身可用于确定如何更新指针和指示符。
82.在一些情况下,队列可具有超过两个位置(例如,深度为三或更大的队列)。在这些情况下,此处所述的空指示符和填满指示符无法仅用于更新指针和指示符。例如,如果三位置队列的填满指示符和空指示符的值是0和0,那么这可指示有一个位置或两个位置在存储信息。
83.可能需要更多信息来确定在推进命令或弹出命令之后如何更新指示符。在一些实施方案中,可以添加额外指示符以指示更大数量的可能状态,可以向填满指示符或空计数器或这两者添加额外位以指示更大数量的可能状态,或者队列(或源组件)可配置成检查额外信息以了解如何更新具有三个或更多个位置的队列中的指示符和/或指针。例如,队列或源组件可分析位置本身以确定位置是否正在存储信息。在其它实例中,队列或源组件可分析指示给定位置是否正在存储信息的指示符的寄存器。
84.图4示出根据本文所公开的实例的支持跨时钟域队列的时序图400的实例。时序图400可示出队列(例如,参考图1、2a和2b描述的队列205)的一或多个存取。由时序图400示出的操作是针对在存储组件中包含两个用于存储数据的位置的队列。在其它实例中,队列可包含超过两个用于存储数据的位置。
85.时序图400示出在时序图300中未示出的额外场景。时序图400实施时序图300的特征、功能、操作和通信。时序图400以引用的方式并有参考图3所描述的时序图300的描述。因而,特征、功能、操作和通信无法在时序图400中全面地描述。关于时序图400中所示的特征、功能、操作和通信的更多信息参考图3描述。
86.时序图400示出基于队列全满而覆写存储在队列的一位置处的数据的实例。时序图400的特征类似于参考图3所描述的时间t8到t19的特征。在一些情况下,队列可配置成覆写一些数据。因为转换每一条信息或数据都不是关键。相反,队列可配置成减少布局面积(例如,门计数)和/或队列的功耗。
87.在时间t1,队列最初是空的,这意味着数据不存储在队列的存储组件的任何位置中。此时序图示出源时钟(例如,时钟220)在第一频率下操作,第一频率大致是目的地时钟(例如,时钟225)的第二频率的两倍。在此初始状态下,推进指针可以指向队列的存储组件的第一位置(例如,位置0),且弹出点可以指向第一位置(例如,位置0)。另外,在此初始状态下,填满指示符可指示队列未填满,且空指示符可指示队列为空。
88.在时间t2,源组件发出推进命令,如由脉冲405指示,以及pop_src命令,如由脉冲410指示。在这些命令发出之前,队列的位置都可用于存储信息。脉冲405的推进命令扩展为在队列中存储数据。在此情形下,推进命令和/或推进数据的数量将超过队列中的位置数量(例如,两个位置)。推进命令从时间t2延伸到t11,并且与源组件推进的以下数据相关联:数据“a”、数据“b”、数据“c”、数据“d”、数据“e”、数据“f”、数据“g”、数据“h”和数据“i”。随后,数据“a”和数据“i”通过目的地组件从队列检索,而其它数据(例如,数据b-h)因为覆写而被丢失。
89.在时间t2,数据“a”存储在由推进指针指示的第一位置(例如,位置0)处。由脉冲410指示的pop_src命令的同步过程在时间t2开始。弹出命令的同步过程及用于更新指针和指示符的程序参考图2b和3更充分地描述。因而,此处没有全面地描述关于弹出命令的同步过程的细节、关于更新指示符的细节和关于更新指针的细节。
90.在时间t3,指示符(例如,填满指示符和空指示符)经更新,且推进指针基于指示符经更新。在此特定实例中,空指示符从值一(指示队列为空)更新为值零(指示队列中有至少一个位置正在存储信息)。在此特定实例中,推进指针从队列的第二位置(例如,位置1)更新到第一位置(例如,位置0)。
91.并且,在时间t3,由脉冲405指示的推进命令保持为高,且推进数据“b”通过源组件传输到队列。队列可将推进数据“b”存储在由推进指针指示的第二位置(例如,位置1)处。
92.在时间t4,指示符(例如,填满指示符和空指示符)经更新,且推进指针基于指示符经更新。在此特定实例中,填满指示符从值零(指示队列中有至少一个位置可用于存储信息)更新为值一(指示队列填满)。在此特定实例中,推进指针未更新,因为队列的所有位置都在存储数据。
93.并且,在时间t4,由脉冲405指示的推进命令保持为高,且推进数据“c”通过源组件传输到队列。队列可将推进数据“c”存储在由推进指针指示的第二位置(例如,位置1)处。这种数据“c”存储在第二位置处可以覆写在时间t3存储在第二位置处的数据“b”。
94.在时间t5,指示符和指针未更新,因为队列状态不存在改变(例如,队列保持全满)。并且,由脉冲405指示的推进命令保持为高,且推进数据“d”通过源组件传输到队列。队列可将推进数据“d”存储在由推进指针指示的第二位置(例如,位置1)处。这种数据“d”存储在第二位置处可以覆写在时间t4存储在第二位置处的数据“c”。
95.覆写第二位置(例如,位置1)处的推进数据的模式在时间t6、t7、t8、t9和t10继续进行,直到由脉冲405指示的推进命令停止的时间t11为止。在此间隔期间,源组件覆写第二位置中的数据,直到数据“i”被存储且更新指示符和指针的过程继续为止,即使指示符由于现有条件无法修改也如此。时序图400的描述的其余部分聚焦于时序图中与由脉冲405指示的推进命令无关的方面。
96.在时间t6,队列可向目的地组件传输pop_dst命令,如由脉冲415指示。在时间t6到t8之间,目的地组件可检索存储在由弹出指针指示的位置(例如,第一位置,即位置0)处的数据“a”。
97.在时间t8,弹出指针可以基于从队列检索到数据而更新(例如,通过队列、源组件、目的地组件或其组合)。队列(或目的地组件)可修改弹出指针以指向队列的第二位置(例如,位置1)。
98.在时间t10,队列可向源组件传输通知,如由脉冲420指示。源组件可检查指示符的状态以确定是否应该发出另一pop_src命令。因为空指示符指示(刚刚执行的)弹出命令未清空队列(例如,有至少一个位置仍然在存储信息),所以源组件可以立即发出pop_src命令,如由脉冲425指示。
99.在时间t11,填满指示符和空指示符的条件可被识别,并且指示符可相应地通过队列、源组件或其组合更新。在此情况下,填满指示符的值被修改,因为队列中有至少一个位置可用于存储来自源命令的新信息。空指示符的值未修改,因为队列中有至少一个位置正在活跃地存储源组件的信息。
100.时序图400的其余部分示出检索存储在队列的第二位置(例如,位置1)处的数据“i”的弹出操作。在时间t12,队列可向目的地组件传输pop_dst命令,如由脉冲430指示。在时间t12到t13之间,目的地组件可检索存储在由弹出指针指示的位置(例如,第二位置,即位置1)处的数据“i”。在时间t13,弹出指针经更新。在时间t14,队列可向源组件传输通知,如由脉冲435指示。源组件可检查指示符的状态以确定是否应该发出另一pop_src命令。因为空指示符指示(刚刚执行的)弹出命令清空了队列,所以源组件无法立即发出pop_src命令。在时间t15,空指示符可经更新以指示队列的每个位置都可用于存储信息。
101.图5示出根据本文所公开的实例的示出支持跨时钟域队列的一或多种方法500的流程图。方法500可通过可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合的处理逻辑执行。在一些实施例中,方法500由图1的队列150执行。尽管以特定顺序或次序示出,但是除非另外指定,否则过程的次序可以修改。因此,所示实施例应理解为只是实例,并且所示过程可以按照不同次序执行,一些过程可以并行执行。另外,在各种实施例中,可以省略一或多个过程。因此,并非在每个实施例中都需要所有过程。其它过程流是可能的。
102.在505处,队列可从第一时钟域接收在队列中存储数据作为将数据从第一时钟域转移到存储器子系统中的第二时钟域的部分的第一命令。
103.在510处,队列可将数据存储在队列中由与存储数据相关联的第一指针指示的第一位置处。数据可存储在存储器装置上的数据存储区或存储器子系统上的其它组件中。
104.在515处,队列可从第一时钟域接收使第二时钟域从队列检索数据的第二命令。
105.在520处,队列可基于接收到第二命令而产生与第二时钟域的时钟同步且使第二时钟域从队列检索数据的第三命令。
106.在525处,队列可基于产生第三命令而从队列中由与检索数据相关联的第二指针指示的第一位置检索数据。
107.在530处,队列可基于检索到数据而向第二时钟域传输数据。
108.在一些实例中,本文所述的设备可执行一或多种方法,例如方法500。所述设备可包含可用于使所述设备执行本文描述的方法的控制器。例如,控制器可使所述设备:从第一时钟域接收在队列中存储数据作为将数据从第一时钟域转移到包含一或多个硫族化物存储元件的存储器装置中的第二时钟域的部分的第一命令;将数据存储在队列中由与存储数据相关联的第一指针指示的第一位置;从第一时钟域接收使第二时钟域从队列检索数据的第二命令;基于接收到第二命令,产生与第二时钟域的时钟同步且使第二时钟域从队列检索数据的第三命令;基于产生第三命令,从队列中由与检索数据相关联的第二指针指示的
第一位置检索数据;以及基于检索到数据,向第二时钟域传输数据。
109.在其它实例中,所述设备可包含用于执行本文中所描述的方法的特征的特征、装置或指令(例如,存储可由处理器执行的指令的非暂时性计算机可读媒体)。
110.图6示出根据本文所公开的实例的示出支持跨时钟域队列的一或多种方法600的流程图。方法600可通过可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合的处理逻辑执行。在一些实施例中,方法600由图1的队列150执行。尽管以特定顺序或次序示出,但是除非另外指定,否则过程的次序可以修改。因此,所示实施例应理解为只是实例,并且所示过程可以按照不同次序执行,一些过程可以并行执行。另外,在各种实施例中,可以省略一或多个过程。因此,并非在每个实施例中都需要所有过程。其它过程流是可能的。
111.在605处,队列可从第一时钟域接收在队列中存储数据作为将数据从第一时钟域转移到存储器子系统中的第二时钟域的部分的第一命令。
112.在610处,队列可在接收到第一命令之后识别指示队列的位置被分配用于存储信息的填满指示符的值。
113.在615处,队列可基于识别出填满指示符的值而覆写存储在由第一指针指示的第一位置处的信息。
114.在620处,队列可基于第三命令而从队列中由与检索数据相关联的第二指针指示的第一位置检索数据。
115.在625处,队列可修改填满指示符的值,以指示队列的至少一个位置可用于存储信息。
116.在一些实例中,本文所述的设备可执行一或多种方法,例如方法600。所述设备可包含用于以下的特征、构件或指令(例如,存储可由处理器执行的指令的非暂时性计算机可读媒体):从第一时钟域接收在队列中存储数据作为将数据从第一时钟域转移到包含一或多个硫族化物存储元件的存储器装置中的第二时钟域的部分的第一命令;在接收到第一命令之后,识别指示队列的位置被分配用于存储信息的填满指示符的值;基于识别出填满指示符的值,覆写存储在由第一指针指示的第一位置处的信息;基于第三命令,从队列中由与检索数据相关联的第二指针指示的第一位置检索数据;以及修改填满指示符的值,以指示队列的至少一个位置可用于存储信息。
117.本文中所描述的方法600和设备的一些实例可进一步包含用于以下的操作、特征、构件或指令:在检索数据之前从第一时钟域接收在队列中存储第二组数据的第四命令;在接收到第四命令之后,识别填满指示符的值;以及基于识别出填满指示符的值,覆写存储在第一位置处的信息,其中检索到的数据可以是覆写到第一位置中的第二组数据。在本文中所描述的方法600和设备的一些实例中,队列的第一位置可用新数据覆写,直到填满指示符的值指示队列的至少一个位置可用于存储信息为止。
118.应注意,上文描述的方法描述了可能的实施方案,且操作和步骤可以重新布置或以其它方式加以修改,且其它实施方案是可能的。此外,可以组合两个或更多个方法中的各部分。
119.图7示出根据本文所公开的实例的支持跨时钟域队列的计算机系统700的实例机器。计算机系统700可包含一组指令,用于使机器执行本文中所描述的技术中的任何一或多
个。在一些实例中,计算机系统700可对应于主机系统(例如,参考图1所描述的主机系统105),所述主机系统包含、耦合到或利用存储器子系统(例如,参考图1所描述的存储器子系统110),或者可用于执行控制器的操作(例如,执行操作系统以执行对应于参考图1所描述的队列150的操作)。在一些实例中,机器可以与lan、内联网、外联网和/或互联网中的其它机器连接(例如,联网)。机器可作为对等(或分布式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而在客户端-服务器网络环境中以服务器或客户端机器的身份操作。
120.机器可以是个人计算机(pc)、平板pc、机顶盒(stb)、个人数字助理(pda)、蜂窝式电话、网络器具、服务器、网络路由器、交换机或桥接器、或能够(依序或以其它方式)执行指定由机器采取的动作的一组指令的任何机器。另外,尽管示出单个机器,但术语“机器”还可包含机器的任何集合,这些机器单独地或共同地执行一组(或多组)指令以进行本文中所论述的方法中的任何一或多种。
121.实例计算机系统700可包含处理装置705、主存储器710(例如,只读存储器(rom)、快闪存储器、dram(例如同步dram(sdram)或rdram)等等)、静态存储器715(例如,快闪存储器、静态随机存取存储器(sram)等),以及数据存储系统725,它们经由总线745彼此通信。
122.处理装置705表示一或多个通用处理装置,例如微处理器、中央处理单元等等。更具体地说,处理装置可以是复杂指令集计算(cisc)微处理器、精简指令集计算(risc)微处理器、超长指令字(vliw)微处理器或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置705也可为一或多个专用处理装置,例如asic、fpga、数字信号处理器(dsp)、网络处理器等。处理装置705配置成执行指令735以执行本文所论述的操作和步骤。计算机系统700可进一步包含网络接口装置720以通过网络740通信。
123.数据存储系统725可以包含机器可读存储媒体730(也称为计算机可读媒体),上面存储有一或多组指令735或体现本文中所描述的方法或功能中的任何一或多种的软件。指令735还可在由计算机系统700执行期间完全或至少部分地驻存在主存储器710内和/或处理装置705内,主存储器710和处理装置705还构成机器可读存储媒体。机器可读存储媒体730、数据存储系统725和/或主存储器710可对应于存储器子系统。
124.在一个实例中,指令735包含用于实施对应于队列750(例如,参考图1-7所描述的队列150、205和505)的功能性的指令。尽管将机器可读存储媒体730示出为单个媒体,但术语“机器可读存储媒体”可包含存储一或多组指令的单个媒体或多个媒体。术语“机器可读存储媒体”还可包含能够存储或编码供机器执行的一组指令且使机器执行本公开的方法中的任何一种或多种的任何媒体。术语“机器可读存储媒体”包含但不限于固态存储器、光学媒体以及磁性媒体。
125.描述一种设备。所述设备可包含:存储器单元阵列,其包含一或多个硫族化物存储元件;第一组件,其与所述存储器单元阵列相关联且具有第一时钟域;第二组件,其与所述存储器单元阵列相关联且具有第二时钟域;队列,其与所述第一组件和所述第二组件耦合且配置成将信息从所述第一时钟域变换到所述第二时钟域。队列可包含:存储组件,其包含用于存储信息的第一位置和第二位置且配置成将数据存储在由第一指针指示的第一位置处;脉冲同步器,其配置成基于接收到第二命令而产生与第二时钟域的时钟同步的第三命令;检索器,其配置成基于产生第三命令,从存储组件的由与检索数据相关联的第二指针指
示的第一位置检索数据;以及传输器,其配置成基于检索到数据,向第二组件传输数据。
126.一些实例可进一步包含使第二命令与第一时钟域的时钟同步,以产生通知第一组件可以基于产生第三命令而从存储组件检索数据的通知。
127.在一些实例中,队列进一步可包含用于指针组件的操作、特征、构件或指令,所述指针组件配置成基于第一指示符和第二指示符的值以及将数据存储在第一位置,将第一指针的值从第一位置修改到第二位置;以及基于检索到数据,将第二指针的值从第一位置修改到第二位置。
128.在一些实例中,队列进一步可包含用于指示符组件的操作、特征、构件或指令,所述指示符组件配置成基于存储或检索数据,修改第一指示符的第一值或第二指示符的第二值中的一或多个,所述第一指示符配置成指示队列的每个位置都可用于存储信息,所述第二指示符配置成指示队列的每个位置可能都正在存储信息。在一些实例中,存储组件包含一或多个硫族化物存储元件。
129.可使用多种不同技术和技艺中的任何者来表示本文中所描述的信息和信号。例如,可通过电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示在整个上文描述中可能参考的数据、指令、命令、信息、信号、位、符号和码片。一些图式可将信号说明为单个信号;然而,所属领域的一般技术人员将理解,所述信号可表示信号总线,其中所述总线可具有多种位宽度。
130.如本文中所使用,术语“虚拟接地”是指保持在大致零伏(0v)的电压但是不是与接地直接耦合的电路的节点。因此,虚拟接地的电压可在稳定状态下暂时地波动并返回到大致0v。虚拟接地可以使用各种电子电路元件来实施,例如由运算放大器和电阻器组成的分压器。其它实施方案也是可能的。“虚拟接地”或“几乎接地”意味着连接到大致0v。
131.术语“电子通信”、“导电接触”、“连接”和“耦合”可以指组件之间支持信号在组件之间流动的关系。如果组件之间存在可在任何时间支持信号在组件之间流动的导电路径,那么组件被视为与彼此电子通信(或导电接触或连接或耦合)。在任何给定时间,基于包含所连接组件的装置的操作,与彼此电子通信(或导电接触或连接或耦合)的组件之间的导电路径可以是断路或闭路。所连接组件之间的导电路径可以是组件之间的直接导电路径,或者所连接组件之间的导电路径可以是可包含中间组件的间接导电路径,所述中间组件例如是开关、晶体管或其它组件。在一些情况下,信号在所连接组件之间的流动可以在一时间内中断,例如,使用一或多个中间组件,例如开关或晶体管。
132.术语“耦合”是指从组件之间的断路关系移动到组件之间的闭路关系的情形,在所述断路关系中信号目前无法通过导电路径在组件之间传送,在所述闭路关系中信号能够通过导电路径在组件之间传送。当例如控制器的一组件将其它组件耦合在一起时,那么所述组件引发允许信号通过导电路径在所述其它组件之间流动的改变,所述导电路径先前不允许信号流动。
133.术语“隔离”是指组件之间的其中信号目前无法在组件之间流动的关系。如果组件之间存在断路,那么它们彼此隔离。例如,由定位在两个组件之间的开关间隔开的所述两个组件在开关断开时彼此隔离。当控制器隔离两个组件时,控制器实现以下改变:阻止信号使用先前准许信号流动的导电路径在组件之间流动。
134.如本文中所使用,术语“电极”可以指电导体,并且在一些情况下,可以用作与存储
器阵列中的存储器单元或其它组件的电接触。电极可包含在存储器阵列的元件或组件之间提供导电路径的迹线、导线、导电线、导电层等等。
135.本文中所论述的装置,包含存储器阵列,可以形成在半导体衬底上,例如硅、锗、硅锗合金、砷化镓、氮化镓等。在一些情况下,衬底是半导体晶片。在其它情况下,衬底可以是绝缘体上硅(soi)衬底,例如玻璃上硅(sog)或蓝宝石上硅(sop),或者另一衬底上的半导体材料外延层。衬底或衬底子区域的导电性可通过使用各种化学物质(包含但不限于磷、硼或砷)掺杂来控制。掺杂可以在衬底的初始形成或生长过程中通过离子注入或任何其它掺杂方式进行。
136.本文中所论述的开关组件或晶体管可表示场效应晶体管(fet),且包括包含源极、漏极和栅极的三端装置。所述端子可通过导电材料例如金属连接到其它电子元件。源极和漏极可为导电的,且可包括经重掺杂例如简并半导体区。源极与漏极可通过经轻掺杂半导体区或沟道分隔开。如果沟道是n型(即,大部分载体为信号),那么fet可以被称作n型fet。如果沟道是p型(即,大部分载体为空穴),那么fet可以被称作p型fet。沟道可被绝缘栅极氧化物端封。可通过将电压施加到栅极,控制沟道导电性。例如,将正电压或负电压分别施加到n型fet或p型fet可导致沟道变得导电。当大于或等于晶体管的阈值电压的电压施加到晶体管栅极时,晶体管可“接通”或“启动”。当小于晶体管的阈值电压的电压施加到晶体管栅极时,晶体管可“断开”或“撤销启动”。
137.本文结合附图阐述的描述内容描述实例配置,且并不表示可实施或在权利要求书的范围的所有实例。本文中所使用术语“示范性”意指“充当实例、例子或说明”且并不意谓“优选的”或“优于其它实例”。详细描述包含用于提供对所描述技术的理解的具体细节。然而,可在没有这些具体细节的情况下实践这些技术。在一些情况下,以框图形式示出熟知结构和装置,以免混淆所描述实例的概念。
138.在附图中,类似组件或特征可以具有相同参考标记。此外,通过遵循虚线和第二标记的参考标记可以区分相同类型的各种组件,这些虚线和第二标记在相似组件当中予以区分。如果在说明书中仅使用第一参考标记,那么描述适用于具有相同第一参考标记而与第二参考标记无关的类似组件中的任一个。
139.结合本文中的公开内容所描述的各种说明性块与模块可使用通用处理器、dsp、asic、fpga或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件、或经设计以执行本文所描述的功能的其任何组合来实施或执行。通用处理器可为微处理器,但在替代方案中,处理器可为任何处理器、控制器、微控制器或状态机。处理器还可实施为计算装置的组合(例如,dsp与微处理器的组合、多个微处理器的组合、一或多个微处理器与dsp核心结合,或任何其它此类配置)。
140.本文中所描述的功能可以硬件、由处理器执行的软件、固件或其任何组合来实施。如果以由处理器执行的软件实施,那么可将功能作为一或多个指令或代码存储于计算机可读媒体上或通过计算机可读媒体发射。其它实例和实施方案在本公开和所附权利要求书的范围内。例如,归因于软件的性质,上文所描述的功能可使用由处理器执行的软件、硬件、固件、硬连线或任何这些的组合实施。实施功能的特征也可物理上位于各个位置处,包含经分布以使得功能的各部分在不同物理位置处实施。此外,如本文中(包含在权利要求书中)所使用,如在项列表(例如,前加例如“中的至少一个”或“中的一或多个”的短语的项列表)中
所使用的“或”指示包含端点的列表,使得例如a、b或c中的至少一个的列表意指a或b或c或ab或ac或bc或abc(即,a和b和c)。并且,如本文中所使用,短语“基于”不应被理解为提及一组封闭条件。例如,在不脱离本公开的范围的情况下,描述为“基于条件a”的示范性步骤可基于条件a和条件b两者。换句话说,如本文中所使用,短语“基于”应同样地解释为短语“至少部分地基于”。
141.计算机可读媒体包含非暂时性计算机存储媒体以及包含促进将计算机程序从一处传送到另一处的任何媒体的通信媒体两者。非暂时性存储媒体可为可由通用或专用计算机存取的任何可用媒体。借助于实例而非限制,非暂时性计算机可读媒体可包括ram、rom、电可擦除可编程只读存储器(eeprom)、光盘(cd)rom或其它光盘存储装置、磁盘存储装置或其它磁性存储装置,或可用于携载或存储呈指令或数据结构形式的所要程序代码构件且可由通用或专用计算机或通用或专用处理器存取的任何其它非暂时性媒体。并且,适当地将任何连接称作计算机可读媒体。例如,如果使用同轴电缆、光纤电缆、双绞线、数字订户线(dsl)或例如红外线、无线电和微波的无线技术从网站、服务器或其它远程源传输软件,那么所述同轴电缆、光纤电缆、双绞线、数字订户线(dsl)或例如红外线、无线电和微波的无线技术包含在媒体的定义中。如本文所使用的,磁盘和光盘包含cd、激光光盘、光学光盘、数字多功能光盘(dvd)、软盘和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘使用激光以光学方式再现数据。以上各项的组合也包含在计算机可读媒体的范围内。
142.提供本文中的描述以使所属领域的技术人员能够进行或使用本公开。所属领域的技术人员将清楚对本公开的各种修改,且本文中所定义的一般原理可应用于其它变化形式而不会脱离本公开的精神或范围。因此,本公开不限于本文所述的实例和设计,而是被赋予与本文所公开的原理和新颖特征一致的最宽范围。
再多了解一些

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

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

相关文献