Patent Description:
A memory sub-system can include one or more memory devices that store data. The memory devices can be, for example, non-volatile memory devices and volatile memory devices. In general, a host system can utilize a memory sub-system to store data at the memory devices and to retrieve data from the memory devices. <CIT> describes an apparatus for enabling a plurality of power supplies comprising a SEQ_LINK signal and a plurality of controllers. This document discloses the preamble of the independent claims. <CIT> describes a system comprising a master power sequencer to output a command bus to perform a power sequencer protocol for transitioning the system from a first power state to a second power state. <CIT> describes a single-channel sequencer that can be interconnected with other single-channel sequencers to provide multiple-channel sequencers that can provide various desired power-up and power-down sequences.

The scope of the invention is set out in the appended claims.

Aspects of the present disclosure are directed to memory sub-systems that include sequencer chaining circuitry. A memory sub-system can be a storage device, a memory module, or a hybrid of a storage device and memory module. Examples of storage devices and memory modules are described below in conjunction with <FIG>. In general, a host system can utilize a memory sub-system that includes one or more memory components, such as memory devices that store data. The host system can provide data to be stored at the memory sub-system and can request data to be retrieved from the memory sub-system.

A sequencer is a device that can be used to control an order in which events occur in an electronic system. As one example, a sequencer can be used for power sequencing within a memory sub-system such as a dual in-line memory module (DIMM), non-volatile dual in-line memory module (NVDIMM), solid state drive (SSD), etc. For example, a memory sub-system can include various components (e.g., integrated circuits) requiring different power supply voltages (e.g., rail voltages) which often need to be supplied in a particular order and/or for a particular duration in order to comply with system specifications (e.g., to prevent lock-up during power-up and/or power-down). Example components often requiring sequencing can include core logic such as a microprocessor, input/output (I/O) circuitry, and various auxiliary circuits such as phase-locked loops among various other circuitry that can require different supply rails.

Conventional sequencers have a limited quantity of output channels, which might be <NUM>, <NUM>, <NUM>, or <NUM>. Various electronic systems can require sequencing of more outputs than are provided by a particular sequencer. Employing multiple separate sequencers to provide a required quantity of output channels can be problematic since there is not a direct way to sequence continuously from one sequencer to the next while maintaining strict timing requirements such as may be needed for power sequencing, for example.

Aspects of the present disclosure address the above and other deficiencies by providing sequencer chaining circuitry that can be scaled to support sequencer output requirements of various systems. Embodiments of the present disclosure employ chaining circuitry used to connect separate sequencers (e.g., separate integrated circuits) in a feed-forward and/or feed-backward manner to ensure proper timing during sequencing in both a forward and reverse order. Although various examples herein refer to power supply sequencing, embodiments are not so limited. That is, sequencer chaining circuitry described herein can be used in various other contexts associated with an electronic system, such as command selection, command processing, etc..

<FIG> illustrates an example computing system <NUM> that includes a memory sub-system <NUM> in accordance with some embodiments of the present disclosure. The memory sub-system <NUM> can include media, such as one or more volatile memory devices (e.g., memory device <NUM>), one or more non-volatile memory devices (e.g., memory device <NUM>), or a combination of such.

A memory sub-system <NUM> can be a storage device, a memory module, or a hybrid of a storage device and memory module. Examples of a storage device include a solid-state drive (SSD), a flash drive, a universal serial bus (USB) flash drive, an embedded Multi-Media Controller (eMMC) drive, a Universal Flash Storage (UFS) drive, a secure digital (SD) card, and a hard disk drive (HDD). Examples of memory modules include a dual in-line memory module (DIMM), a small outline DIMM (SO-DIMM), and various types of non-volatile dual in-line memory modules (NVDIMMs).

The computing system <NUM> can be a desktop computer, laptop computer, network server, mobile device, a vehicle (e.g., automobile, airplane, drone, train, or other conveyance), Internet of Things (IoT) enabled device, embedded computer (e.g., one included in a vehicle, industrial equipment, or a networked commercial device), or such computing device that includes memory and a processing device (e.g., a processor).

The computing system <NUM> can include a host system <NUM> that is coupled to one or more memory sub-systems <NUM>. In some embodiments, the host system <NUM> is coupled to different types of memory sub-systems <NUM>. <FIG> illustrates an example of a host system <NUM> coupled to one memory sub-system <NUM>. As used herein, "coupled to" or "coupled with" generally refers to a connection between components, which can be an indirect communicative connection or direct communicative connection (e.g., without intervening components), whether wired or wireless, including connections such as electrical, optical, magnetic, etc..

The host system <NUM> can include a processor chipset and a software stack executed by the processor chipset. The processor chipset can include one or more cores, one or more caches, a memory controller (e.g., NVDIMM controller), and a storage protocol controller (e.g., PCIe controller, SATA controller). The host system <NUM> uses the memory sub-system <NUM>, for example, to write data to the memory sub-system <NUM> and read data from the memory sub-system <NUM>.

The host system <NUM> can be coupled to the memory sub-system <NUM> via a physical host interface. Examples of a physical host interface include, but are not limited to, a serial advanced technology attachment (SATA) interface, a peripheral component interconnect express (PCIe) interface, universal serial bus (USB) interface, Fibre Channel, Serial Attached SCSI (SAS), Small Computer System Interface (SCSI), a double data rate (DDR) memory bus, a dual in-line memory module (DIMM) interface (e.g., DIMM socket interface that supports Double Data Rate (DDR)), Open NAND Flash Interface (ONFI), Double Data Rate (DDR), Low Power Double Data Rate (LPDDR), or any other interface. The physical host interface can be used to transmit data between the host system <NUM> and the memory sub-system <NUM>. The host system <NUM> can further utilize an NVM Express (NVMe) interface to access components (e.g., memory devices <NUM>) when the memory sub-system <NUM> is coupled with the host system <NUM> by the PCIe interface. The physical host interface can provide an interface for passing control, address, data, and other signals between the memory sub-system <NUM> and the host system <NUM>. <FIG> illustrates a memory sub-system <NUM> as an example. In general, the host system <NUM> can access multiple memory sub-systems via a same communication connection, multiple separate communication connections, and/or a combination of communication connections.

The memory devices <NUM>,<NUM> can include any combination of the different types of non-volatile memory devices and/or volatile memory devices. The volatile memory devices (e.g., memory device <NUM>) can be, but are not limited to, random access memory (RAM), such as dynamic random access memory (DRAM) and synchronous dynamic random access memory (SDRAM).

Some examples of non-volatile memory devices (e.g., memory device <NUM>) include not-AND (NAND) type flash memory and write-in-place memory, such as a three-dimensional cross-point ("3D cross-point") memory device, which is a cross-point array of non-volatile memory cells. A cross-point array of non-volatile memory can perform bit storage based on a change of bulk resistance, in conjunction with a stackable cross-gridded data access array. Additionally, in contrast to many flash-based memories, cross-point non-volatile memory can perform a write in-place operation, where a non-volatile memory cell can be programmed without the non-volatile memory cell being previously erased. NAND type flash memory includes, for example, two-dimensional NAND (2D NAND) and three-dimensional NAND (3D NAND).

Each of the memory devices <NUM> can include one or more arrays of memory cells. One type of memory cell, for example, single level cells (SLC) can store one bit per cell. Other types of memory cells, such as multi-level cells (MLCs), triple level cells (TLCs), quad-level cells (QLCs), and penta-level cells (PLCs) can store multiple bits per cell. In some embodiments, each of the memory devices <NUM> can include one or more arrays of memory cells such as SLCs, MLCs, TLCs, QLCs, PLCs, or any combination of such. In some embodiments, a particular memory device can include an SLC portion, and an MLC portion, a TLC portion, a QLC portion, or a PLC portion of memory cells. The memory cells of the memory devices <NUM> can be grouped as pages that can refer to a logical unit of the memory device used to store data. With some types of memory (e.g., NAND), pages can be grouped to form blocks.

Although non-volatile memory devices such as 3D cross-point array of non-volatile memory cells and NAND type memory (e.g., 2D NAND, 3D NAND) are described, the memory device <NUM> can be based on any other type of non-volatile memory, such as read-only memory (ROM), phase change memory (PCM), self-selecting memory, other chalcogenide based memories, ferroelectric transistor random-access memory (FeTRAM), ferroelectric random access memory (FeRAM), magneto random access memory (MRAM), Spin Transfer Torque (STT)-MRAM, conductive bridging RAM (CBRAM), resistive random access memory (RRAM), oxide based RRAM (OxRAM), not-OR (NOR) flash memory, and electrically erasable programmable read-only memory (EEPROM).

A memory sub-system controller <NUM> (or controller <NUM> for simplicity) can communicate with the memory devices <NUM> and/or <NUM> to perform operations such as reading data, writing data, or erasing data at the memory devices <NUM> and/or <NUM> and other such operations. The memory sub-system controller <NUM> can include hardware such as one or more integrated circuits and/or discrete components, a buffer memory, or a combination thereof. The hardware can include a digital circuitry with dedicated (i.e., hard-coded) logic to perform the operations described herein. The memory sub-system controller <NUM> can be a microcontroller, special purpose logic circuitry (e.g., a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), etc.), or other suitable processor.

The memory sub-system controller <NUM> can include processing device such as a processor <NUM> configured to execute instructions stored in a local memory <NUM>. In the illustrated example, the local memory <NUM> of the memory sub-system controller <NUM> includes an embedded memory configured to store instructions for performing various processes, operations, logic flows, and routines that control operation of the memory sub-system <NUM>, including handling communications between the memory sub-system <NUM> and the host system <NUM>.

In some embodiments, the local memory <NUM> can include memory registers storing memory pointers, fetched data, etc. The local memory <NUM> can also include read-only memory (ROM) for storing micro-code, for example. While the example memory sub-system <NUM> in <FIG> has been illustrated as including the memory sub-system controller <NUM>, in another embodiment of the present disclosure, a memory sub-system <NUM> does not include a memory sub-system controller <NUM>, and can instead rely upon external control (e.g., provided by an external host, or by a processor or controller separate from the memory sub-system).

In general, the memory sub-system controller <NUM> can receive commands or operations from the host system <NUM> and can convert the commands or operations into instructions or appropriate commands to achieve the desired access to the memory devices <NUM>. The memory sub-system controller <NUM> can be responsible for other operations such as wear leveling operations, garbage collection operations, error detection and error-correcting code (ECC) operations, encryption operations, caching operations, and address translations between a logical address (e.g., logical block address (LBA), namespace) and a physical address (e.g., physical block address) that are associated with the memory devices <NUM>. The memory sub-system controller <NUM> can further include host interface circuitry to communicate with the host system <NUM> via the physical host interface. The host interface circuitry can convert the commands received from the host system into command instructions to access the memory devices <NUM> and/or <NUM> as well as convert responses associated with the memory devices <NUM>/<NUM> into information for the host system <NUM>.

The memory sub-system <NUM> can also include additional circuitry or components that are not illustrated. In some embodiments, the memory sub-system <NUM> can include a cache or buffer (e.g., DRAM) and address circuitry (e.g., a row decoder and a column decoder) that can receive an address from the memory sub-system controller <NUM> and decode the address to access the memory devices <NUM>.

In some embodiments, the memory devices <NUM>/<NUM> include a local media controller <NUM> that operates in conjunction with memory sub-system controller <NUM> to execute operations on one or more memory cells of the memory devices <NUM>/<NUM>. An external controller (e.g., memory sub-system controller <NUM>) can externally manage the memory devices <NUM>/<NUM> (e.g., perform media management operations on the memory devices). In some embodiments, a memory device <NUM> is a managed memory device, which is a raw memory device combined with a local controller (e.g., local controller <NUM>) for media management within the same memory device package. An example of a managed memory device is a managed NAND (MNAND) device.

The memory sub-system controller <NUM> can also include power sequencer chaining circuitry <NUM> coupled to a number of sequencers <NUM>, which can serve as a sequencing network in accordance with various embodiments of the present disclosure (e.g., the sequencing networks described below in association with <FIG> and <FIG>). As described in association with <FIG> and <FIG>, the sequencer chaining circuitry <NUM> (e.g., <NUM> in <FIG>) can include a number of logic gates (e.g., AND gates and OR gates) and can be configured to assert respective sequencer enable signals provided to the chained sequencers <NUM> in accordance with a first sequence responsive to assertion of a primary enable signal. The chaining circuitry <NUM> can also be configured to assert the respective sequencer enable signals provided to the plurality of chained sequencers <NUM> in accordance with a second sequence responsive to deassertion of the primary enable signal. Although the sequencer chaining circuitry <NUM> and sequencers <NUM> are shown as part of controller <NUM>, embodiments are not so limited. For example, the circuitry <NUM> and/or <NUM> may be implemented external to the controller <NUM>, such as on the host <NUM> or elsewhere in the memory sub-system <NUM> (e.g., independently or as part of a power management integrated circuit).

<FIG> illustrates a chained sequencer network in accordance with a number of embodiments of the present disclosure. The chained network includes three sequencers <NUM>-<NUM> (SEQUENCER i-<NUM>), <NUM>-<NUM> (SEQUENCER i), and <NUM>-<NUM> (SEQUENCER i+<NUM>) coupled to the sequencer chaining circuitry <NUM> and referred to collectively as sequencers <NUM>. The sequencer chaining circuitry <NUM> is analogous to sequencer chaining circuitry <NUM> in <FIG>. Each of the sequencers <NUM> comprises "m" outputs (e.g., channels) provided to respective components. In this example, the outputs of sequencer <NUM>-<NUM> are provided to respective ones of components <NUM>-<NUM> (shown as SEQi-1_1, SEQi-1_2,. , SEQi-1_m), the outputs of sequencer <NUM>-<NUM> are provided to respective ones of components <NUM>-<NUM> (shown as SEQi_1, SEQi_2,. , SEQi_m), and the outputs of sequencer <NUM>-<NUM> are provided to respective ones of components <NUM>-<NUM> (shown as SEQi+1_1, SEQi+1_2,. , SEQi+1_m). The components <NUM>-<NUM>, <NUM>-<NUM>, and <NUM>-<NUM> can be, for example, voltage regulators configured to provide power rails to a power sequence dependent device such as a memory device. Accordingly, the output signals of the sequencers <NUM> can be enable signals, for example.

The sequencers <NUM> can be separate integrated circuits. The sequencers <NUM>-<NUM>, <NUM>-<NUM>, and <NUM>-<NUM> are enabled and disabled via respective sequencer enable signals SEQi-1_EN, SEQi_EN, and seQi+1_EN provided via the chaining circuitry <NUM>. When enabled, the sequencers <NUM> are configured to provide their respective output signals in a particular order (e.g., from <NUM> to m). The sequencers <NUM> can be configured to provide their respective output signals in a reverse order (e.g., m to <NUM>) responsive to being disabled via deassertion of their respective sequencer enable signals. As described herein, the chaining circuitry <NUM> is configured to provide the sequencer enable signals SEQi-1_EN, SEQi_EN, and seQi+1_EN to the respective sequencers <NUM>-<NUM>, <NUM>-<NUM>, and <NUM>-<NUM> according to a first sequence responsive to assertion of a primary enable signal <NUM> provided thereto and according to a second sequence responsive to deassertion of the primary enable signal <NUM>. As an example, the primary enable signal <NUM> can be asserted (e.g., via a host system such as <NUM> or a processing device <NUM>) in association with powering up a memory sub-system such as an NVDIMM and can be deasserted in association with powering down the memory sub-system. Therefore, it can be beneficial to enable/disable the sequencers <NUM> in a particular order to avoid adverse effects such as violating power-up/down sequence requirements. In a number of embodiments, the order in which the sequencers <NUM> are disabled (e.g., during device power-down) is a reverse order of that in which the sequencers are enabled (e.g., during device power-up).

As shown in <FIG>, the chaining circuitry <NUM> comprises a number of AND gates <NUM>-<NUM>, <NUM>-<NUM>, and <NUM>-<NUM> (referred to collectively as gates <NUM>) and a number of OR gates <NUM>-<NUM>, <NUM>-<NUM>, and <NUM>-<NUM> (referred to collectively as gates <NUM>). Each of the sequencers <NUM> have an AND gate <NUM> and an OR gate <NUM> corresponding thereto. The primary enable signal <NUM> is provided to each of the OR gates <NUM>. An output of each of the OR gates <NUM> is provided as an input to a corresponding AND gate <NUM>. The outputs of the AND gates <NUM> provide the sequencer enable signals SEQi-1_EN, SEQi_EN, and seQi+1_EN to the sequencers <NUM>.

As shown in <FIG>, particular ones of the sequencer output signals are provided (e.g., fed back) to logic gates <NUM>/<NUM> corresponding to next and/or prior sequencers <NUM> in the chained configuration to facilitate enabling the sequencers <NUM> in a particular order. For instance, sequencer output signal <NUM>-<NUM> of sequencer <NUM>-<NUM> is provided as an input to AND gate <NUM>-<NUM> corresponding to sequencer <NUM>-<NUM>. Similarly, sequencer output signal <NUM>-<NUM> of sequencer <NUM>-<NUM> is provided as an input to AND gate <NUM>-<NUM> corresponding to sequencer <NUM>-<NUM>. Also, sequencer output signal <NUM>-<NUM> of sequencer <NUM>-<NUM> is provided as an input to OR gate <NUM>-<NUM> corresponding to sequencer <NUM>-<NUM>, and sequencer output signal <NUM>-<NUM> of sequencer <NUM>-<NUM> is provided as an input to OR gate <NUM>-<NUM> corresponding to sequencer <NUM>-<NUM>. In this manner, responsive to assertion of the primary enable signal <NUM>, sequencer <NUM>-<NUM> will not be enabled (via enable signal SEQi_EN) until sequencer output signal <NUM>-<NUM> is asserted, and sequencer <NUM>-<NUM> will not be enabled (via enable signal SEQi+1_EN) until sequencer output signal <NUM>-<NUM> is asserted. In a similar manner, responsive to deassertion of the primary enable signal <NUM>, sequencer <NUM>-<NUM> will not be disabled until sequencer output signal <NUM>-<NUM> is deasserted, and sequencer <NUM>-<NUM> will not be disabled until sequencer output signal <NUM>-<NUM> is deasserted.

In operation, responsive to an assertion of the primary enable signal <NUM>, the sequencers <NUM> are enabled in order with sequencer <NUM>-<NUM> being enabled first, followed by sequencer <NUM>-<NUM> and then sequencer <NUM>-<NUM>. That is, initially sequencer <NUM>-<NUM> is enabled via assertion of the output of AND gate <NUM>-<NUM> (via assertion of the output of OR gate <NUM>-<NUM>) due to assertion of primary enable signal <NUM>. Sequencers <NUM>-<NUM> and <NUM>-<NUM> are disabled initially since one of the inputs of their respective corresponding AND gates <NUM>-<NUM> and <NUM>-<NUM> are deasserted. Once sequencer output <NUM>-<NUM> is asserted, both inputs to AND gate <NUM>-<NUM> are asserted and its output (SEQi_EN) is asserted to enable sequencer <NUM>-<NUM> (while sequencer <NUM>-<NUM> remains disabled). Once sequencer output <NUM>-<NUM> is asserted, both inputs to AND gate <NUM>-<NUM> are asserted and its output (SEQi+1_EN) is asserted to enable sequencer <NUM>-<NUM>. It is noted that sequencer output signals <NUM>-<NUM> and <NUM>-<NUM> remain asserted in order to maintain the prior sequencers <NUM> in the chain in an enabled state responsive to deassertion of the primary enable signal <NUM> (e.g., during power-down).

Responsive to the a subsequent deassertion of primary enable signal <NUM>, the configuration of the chaining circuitry <NUM> allows the sequencers <NUM> to operate in the reverse sequence (e.g., sequencer <NUM>-<NUM> being disabled prior to disabling of sequencer <NUM>-<NUM>, and sequencer <NUM>-<NUM> being disabled prior to disabling of sequencer <NUM>-<NUM>). For instance, responsive to deassertion of enable signal <NUM>, sequencer <NUM>-<NUM> will be disabled first as the output of OR gate <NUM>-<NUM> deasserts such that the output of AND gate <NUM>-<NUM> deasserts. In contrast, sequencer <NUM>-<NUM> initially remains enabled responsive to the deassertion of enable signal <NUM> because both of the inputs (sequencer output signal <NUM>-<NUM> and sequencer output signal <NUM>-<NUM>) to corresponding AND gate <NUM>-<NUM> remain asserted (e.g., logic high). Once signal <NUM>-<NUM> is deasserted by sequencer <NUM>-<NUM>, the output of OR gate <NUM>-<NUM> deasserts, which then causes deassertion of the sequencer enable signal SEQi_EN being output from AND gate <NUM>-<NUM>. Similarly, once sequencer output signal <NUM>-<NUM> is deasserted by sequencer <NUM>-<NUM>, the output of OR gate <NUM>-<NUM> deasserts causing deassertion of the sequencer enable signal SEQi-1_EN being output from AND gate <NUM>-<NUM>.

<FIG> illustrates a chained sequencer network in accordance with a number of embodiments of the present disclosure. The chained network includes sequencers <NUM>-<NUM> (SEQUENCER <NUM>), <NUM>-<NUM> (SEQUENCER <NUM>), <NUM>-<NUM> (SEQUENCER <NUM>),. , <NUM>-N (SEQUENCER n) coupled to the sequencer chaining circuitry <NUM> and referred to collectively as sequencers <NUM>. The sequencer chaining circuitry <NUM> is analogous to sequencer chaining circuitry <NUM> in <FIG>. Each of the sequencers <NUM> comprises "m" outputs (e.g., channels) provided to respective components. The outputs of sequencer <NUM>-<NUM> are provided to respective ones of components <NUM>-<NUM> (shown as SEQ1_1, SEQ1_2,. , SEQ1_m), the outputs of sequencer <NUM>-<NUM> are provided to respective ones of components <NUM>-<NUM> (shown as SEQ2_1, SEQ2_2,. , SEQ2_m), the outputs of sequencer <NUM>-<NUM> are provided to respective ones of components <NUM>-<NUM> (shown as SEQ3_1, SEQ3_2,. , SEQ3_m) and the outputs of sequencer <NUM>-N are provided to respective ones of components <NUM>-N (shown as SEQn_1, SEQn_2,. The components <NUM>-<NUM>, <NUM>-<NUM>, <NUM>-<NUM>,. , <NUM>-N can be, for example, voltage regulators configured to provide power rails to a power sequence dependent device such as a memory device. Accordingly, the output signals of the sequencers <NUM> can be enable signals, for example.

The chaining circuitry <NUM> is configured to control enabling and disabling of the sequencers <NUM> via assertion and deassertion of respective sequencer enable signals SEQ1_EN, SEQ2_EN, SEQ3_EN,. The sequencers <NUM> are coupled in a chained configuration via feedback of sequencer output signals (e.g., <NUM>-<NUM>, <NUM>-<NUM>, <NUM>-<NUM>, <NUM>-<NUM>, <NUM>-<NUM>, and <NUM>-<NUM>) to the chaining circuitry <NUM> such that the sequencer outputs are asserted in a particular order (e.g., forward and reverse).

<FIG> is similar to <FIG>. The chaining circuitry <NUM> includes a number of OR gates <NUM>-<NUM>, <NUM>-<NUM>, <NUM>-<NUM> and a number of AND gates <NUM>-<NUM>, <NUM>-<NUM>, and <NUM>-N-<NUM>. However, in <FIG>, the first sequencer <NUM>-<NUM> in the chain includes a single OR gate <NUM>-<NUM> corresponding thereto, and the last sequencer <NUM>-N in the chain includes a single AND gate <NUM>-N-<NUM> corresponding thereto. Each of the other sequencers <NUM> have an OR gate <NUM> and an AND gate <NUM> corresponding thereto. The reduction of logic gates <NUM>/<NUM> per sequencer of circuitry <NUM> as compared to circuitry <NUM> is due to removal of the AND gate (e.g., <NUM>-<NUM>) corresponding to the first sequencer in the chain and removal of the OR gate (e.g., <NUM>-<NUM>) corresponding to the last sequencer in the chain because those gates become redundant as single input gates.

As shown in <FIG> and as described above in association with <FIG>, particular outputs of the sequencers <NUM> are provided to particular logic gates <NUM>/<NUM> corresponding to next and/or prior sequencers <NUM> in the chained configuration to facilitate enabling the sequencer outputs in a particular order (e.g., due to assertion of the primary enable signal <NUM>) or reverse order (e.g., due to deassertion of signal <NUM>). The output signal <NUM>-<NUM> provided to component "SEQ1_m" from sequencer <NUM>-<NUM> is also provided to an input of the AND gate <NUM>-<NUM> corresponding to sequencer <NUM>-<NUM>, the output signal <NUM>-<NUM> provided to component "SEQ2_m" from sequencer <NUM>-<NUM> is also provided to an input of the AND gate <NUM>-<NUM> corresponding to sequencer <NUM>-<NUM>, and the output signal <NUM>-<NUM> provided to component "SEQ3_m" from sequencer <NUM>-<NUM> is also provided to an input of the AND gate <NUM>-N-<NUM> corresponding to sequencer <NUM>-N. Similarly, the output signal <NUM>-<NUM> provided to component "SEQn_1" from sequencer <NUM>-N is also provided to an input of the OR gate <NUM>-<NUM> corresponding to sequencer <NUM>-<NUM>, the output signal <NUM>-<NUM> provided to component "SEQ3_1" from sequencer <NUM>-<NUM> is also provided to an input of the OR gate <NUM>-<NUM> corresponding to sequencer <NUM>-<NUM>, and the output signal <NUM>-<NUM> provided to component "SEQ2_1" from sequencer <NUM>-<NUM> is also provided to an input of the OR gate <NUM>-<NUM> corresponding to sequencer <NUM>-<NUM>.

In operation, the configuration of the sequencer chaining circuitry <NUM> and sequencers <NUM> provides for sequencing output signals in order from the first sequencer <NUM>-<NUM> to the last sequencer <NUM>-N responsive to assertion of the primary enable signal <NUM>. Additionally, the configuration of the circuitry <NUM> provides for sequencing output signals in reverse order from the last sequencer <NUM>-N to the first sequencer <NUM>-<NUM> responsive to deassertion of the primary enable signal <NUM>. In embodiments in which the components <NUM> are voltage regulators such as described in association with <FIG>, the circuitry can be used to provide sequenced power rails to a power sequence dependent device. That is, the sequenced power signals can be provided in a first order during power-up of the device and in a reverse order during power-down (e.g., due to a transient low power event or otherwise).

<FIG> is a flow diagram of a method <NUM> for operating sequencer chaining circuitry in accordance with some embodiments of the present disclosure. The method <NUM> can be performed by processing logic that can include hardware (e.g., processing device, circuitry, dedicated logic, programmable logic, microcode, hardware of a device, integrated circuit, etc.), software (e.g., instructions run or executed on a processing device), or a combination thereof. In some embodiments, the method <NUM> is performed by the sequencer chaining circuitry <NUM> of <FIG> or <NUM> of <FIG>. Although shown in a particular sequence or order, unless otherwise specified, the order of the processes can be modified.

At operation <NUM>, a primary enable signal provided to chaining circuitry coupled to a plurality of sequencers is asserted. The primary enable signal can be asserted via a processing resource and can be asserted in association with powering up a memory sub-system, for example.

At operation <NUM>, responsive to assertion of the primary enable signal, respective sequencer enable signals provided to the plurality of sequencers are asserted via the chaining circuitry and in accordance with a first sequence.

At operation <NUM>, responsive to deassertion of the primary enable signal, the respective sequencer enable signals provided to the plurality of sequencers are deasserted via the chaining circuitry and in accordance with a second sequence. In a number of embodiments, the second sequence is a reverse order of the first sequences. The plurality of sequencers can be separate integrated circuits, and an output signal of each of the plurality of sequencers is.

provided to an input of at least one corresponding logic gate of a plurality of logic gates (e.g., AND and/or OR gates) of the chaining circuitry. In a number of embodiments, the plurality of sequencers comprises at least three sequencers configured to sequence power rails in association with powering up and powering down a memory device. However, one of ordinary skill in the art will appreciate that embodiments are not limited to chaining circuitry corresponding to three (or more) sequencers. For example, two sequencers can be chained together via a sole OR gate corresponding to a first sequencer and a sole AND gate corresponding to a last sequencer in the chain.

<FIG> illustrates an example machine of a computer system <NUM> within which a set of instructions, for causing the machine to perform one or more of the methodologies discussed herein, can be executed. In some embodiments, the computer system <NUM> can correspond to a host system (e.g., the host system <NUM> of <FIG>) that includes, is coupled to, or utilizes a memory sub-system (e.g., the memory sub-system <NUM> of <FIG>) or can be used to perform the operations of a controller (e.g., to execute an operating system to perform operations corresponding to the sequencer chaining circuitry <NUM> and/or sequencers <NUM> of <FIG>). In alternative embodiments, the machine can be connected (e.g., networked) to other machines in a LAN, an intranet, an extranet, and/or the Internet. The machine can operate in the capacity of a server or a client machine in client-server network environment, as a peer machine in a peer-to-peer (or distributed) network environment, or as a server or a client machine in a cloud computing infrastructure or environment.

The machine can be a personal computer (PC), a tablet PC, a set-top box (STB), a Personal Digital Assistant (PDA), a cellular telephone, a web appliance, a server, a network router, a switch or bridge, or another machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that machine. Further, while a single machine is illustrated, the term "machine" shall also be taken to include a collection of machines that individually or jointly execute a set (or multiple sets) of instructions to perform one or more of the methodologies discussed herein.

The example computer system <NUM> includes a processing resource <NUM> (e.g., a processing device), a main memory <NUM> (e.g., read-only memory (ROM), flash memory, dynamic random access memory (DRAM) such as synchronous DRAM (SDRAM) or Rambus DRAM (RDRAM), etc.), a static memory <NUM> (e.g., flash memory, static random access memory (SRAM), etc.), and a data storage system <NUM>, which communicate with each other via a bus <NUM>.

The processing device <NUM> represents one or more general-purpose processing devices such as a microprocessor, a central processing unit, or the like. More particularly, the processing device can be a complex instruction set computing (CISC) microprocessor, reduced instruction set computing (RISC) microprocessor, very long instruction word (VLIW) microprocessor, or a processor implementing other instruction sets, or processors implementing a combination of instruction sets. The processing device <NUM> can also be one or more special-purpose processing devices such as an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a digital signal processor (DSP), network processor, or the like. The processing device <NUM> is configured to execute instructions <NUM> for performing the operations and steps discussed herein. The computer system <NUM> can further include a network interface device <NUM> to communicate over the network <NUM>.

The data storage system <NUM> can include a machine-readable storage medium <NUM> (also known as a computer-readable medium) on which is stored one or more sets of instructions <NUM> or software embodying one or more of the methodologies or functions described herein. The instructions <NUM> can also reside, completely or at least partially, within the main memory <NUM> and/or within the processing device <NUM> during execution thereof by the computer system <NUM>, the main memory <NUM> and the processing device <NUM> also constituting machine-readable storage media. The machine-readable storage medium <NUM>, data storage system <NUM>, and/or main memory <NUM> can correspond to the memory sub-system <NUM> of <FIG>.

In one embodiment, the instructions <NUM> include instructions <NUM> to implement functionality corresponding to the sequencer chaining circuitry <NUM> of <FIG>. While the machine-readable storage medium <NUM> is shown in an example embodiment to be a single medium, the term "machine-readable storage medium" should be taken to include a single medium or multiple media that store the one or more sets of instructions. The term "machine-readable storage medium" shall also be taken to include a medium that is capable of storing or encoding a set of instructions for execution by the machine and that cause the machine to perform one or more of the methodologies of the present disclosure. The term "machine-readable storage medium" shall accordingly be taken to include, but not be limited to, solid-state memories, optical media, and magnetic media.

The present disclosure also relates to an apparatus for performing the operations herein. This apparatus can be specially constructed for the intended purposes, or it can include a general purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program can be stored in a computer readable storage medium, such as, but not limited to, types of disk including floppy disks, optical disks, CD-ROMs, and magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, or type of media suitable for storing electronic instructions, each coupled to a computer system bus.

The algorithms and displays presented herein are not inherently related to a particular computer or other apparatus. Various general purpose systems can be used with programs in accordance with the teachings herein, or it can prove convenient to construct a more specialized apparatus to perform the method. The structure for a variety of these systems will appear as set forth in the description below. In addition, the present disclosure is not described with reference to a particular programming language. It will be appreciated that a variety of programming languages can be used to implement the teachings of the disclosure as described herein.

Claim 1:
A system, comprising:
a plurality of sequencers (<NUM>, <NUM>-<NUM>, <NUM>-<NUM>, <NUM>-<NUM>, <NUM>-<NUM>, <NUM>-<NUM>, <NUM>-<NUM>, <NUM>-N) each configured to provide a number of sequenced output signals (<NUM>-<NUM>, <NUM>-<NUM>, <NUM>-<NUM>, <NUM>-<NUM>, <NUM>-<NUM>, <NUM>-<NUM>, <NUM>-<NUM>, <NUM>-<NUM>, <NUM>-<NUM>, <NUM>-<NUM>) responsive to assertion of a respective sequencer enable signal provided thereto; and
chaining circuitry (<NUM>, <NUM>, <NUM>) coupled to the plurality of sequencers and comprising logic configured to:
responsive to assertion of a primary enable signal (<NUM>, <NUM>) received thereby, assert respective sequencer enable signals provided to the plurality of sequencers in accordance with a first sequence;
the system being characterised in that the logic is configured to responsive to deassertion of the primary enable signal, deassert the respective sequencer enable signals provided to the plurality of sequencers in accordance with a second sequence,
and in that the chaining circuitry comprises:
a first logic gate (<NUM>-<NUM>, <NUM>-<NUM>, <NUM>-<NUM>, <NUM>-<NUM>, <NUM>-<NUM>, <NUM>-<NUM>, <NUM>-<NUM>, <NUM>-<NUM>, <NUM>-N-<NUM>, <NUM>-<NUM>, <NUM>-<NUM>, <NUM>-<NUM>) configured to receive the primary enable signal as a first input and output a first sequencer enable signal to a first sequencer (<NUM>, <NUM>-<NUM>, <NUM>-<NUM>, <NUM>-<NUM>, <NUM>-<NUM>, <NUM>-<NUM>, <NUM>-<NUM>, <NUM>-N) of the plurality of sequencers; and
a second logic gate (<NUM>-<NUM>, <NUM>-<NUM>, <NUM>-<NUM>, <NUM>-<NUM>, <NUM>-<NUM>, <NUM>-<NUM>, <NUM>-<NUM>, <NUM>-<NUM>, <NUM>-N-<NUM>, <NUM>-<NUM>, <NUM>-<NUM>, <NUM>-<NUM>) configured to receive an output signal of the first sequencer as a first input and output a second sequencer enable signal to a second sequencer (<NUM>, <NUM>-<NUM>, <NUM>-<NUM>, <NUM>-<NUM>, <NUM>-<NUM>, <NUM>-<NUM>, <NUM>-<NUM>, <NUM>-N) of the plurality of sequencers.