SIGNAL PATH OPTIMIZATION FOR READ OPERATIONS IN STORAGE DEVICES
A system may include a controller, a data receiving circuit, and a plurality of banks. The banks may send data to the data receiving circuit via a common data bus. The controller may control the communication of the data to the receiving circuit by sending control signals and clock signals to the banks. Relative lengths of control signal paths and clock signal paths may be directly related to each other and inversely related to relative lengths of data paths.
In a multi-chip storage device, a controller located on a first chip may be configured to communicate with a host device, and memory cells storing data may be located on a second chip. When the host wants to read data stored in the memory cells, it may send a host read command to the controller of the first chip, and in turn the controller may retrieve the data from memory cells located on the second chip. Control logic on the second chip may send the data to the controller of the first chip via an external data bus.
For some example configurations, in order for the control logic of the second chip to transfer the data to the controller, the data may be sensed out of the memory cells into page registers and then communicated to a conversion circuit, such as a serializer/deserializer (SerDes), via an internal data bus. The conversion circuit may convert the data it receives from the page registers via the internal data bus into a format that is suitable for transmission over the external data bus.
Size and layout requirements of the second chip may yield latencies and sampling window limitations. Such latencies and limitations may be tolerable under present operating read speeds, but prohibit increases. Thus, ways to reduce or eliminate the latencies and/or increase the data windows may be desirable so that increases in operating read speeds may be achieved.
The accompanying drawings, which are incorporated in and constitute a part of this specification illustrate various aspects of the description. Wherever convenient, the same reference numbers will be used throughout the drawings to refer to the same or like elements.
By way of introduction, the below embodiments relate to apparatuses, devices, systems, circuits and related methods for minimizing latency and maximizing sampling windows for read operations. In one embodiment, a circuit a first bank and a second bank. The first bank is coupled to a control interface by way of a first control path. The second bank is coupled to the control interface by way of a second control path. The second control path has a length that is longer than a length of the first control path. Also, the second bank has a physical position closer to the control interface than a physical position of the first bank.
In some embodiments, the first bank is configured to retrieve first data in response to receipt of a first control signal by way of the first control path, and output the first data to a data receiving circuit. Also, the second bank is configured to retrieve second data in response to receipt of a second control signal by way of the second control path, and output the second data to the data receiving circuit.
In some embodiments, the first bank is configured to output the first data on a first data path to the data receiving circuit, and the second bank is configured to output the second data on a second data path to the data receiving circuit. Also, the first data path has a length longer than a length of the second data path.
In some embodiments, the first data path and the second data path share a common data bus.
In some embodiments, the data receiving circuit comprises a serializer/deserializer circuit.
In some embodiments, a controller is configured to output the first control signal in advance of an end of a bias time period associated with the first bank.
In some embodiments, the controller is configured to output the first control signal one clock cycle ahead of the end of the bias time period.
In some embodiments, The circuit of claim 1, the first bank is coupled to the control interface further by way of a first clock path, and the second bank is coupled to the control interface further by way of a second clock path, where the second clock path has a length that is longer than a length of the first clock path.
In some embodiments, the first clock path and the second clock path share a common clock path portion.
In some embodiments, the first control path comprises a first sense amp enable path and the second control path comprises a second sense amp enable path.
In another embodiment, a circuit includes a controller, a first bank, and a second bank. The controller is configured to output a clock signal on a first clock path and on a second clock path, where the second clock path has a length longer than a length of the first clock path. The first bank is configured to receive the clock signal via the first clock path, and in response to receipt of the clock signal, output the first data to a data receiving circuit via a first data path. The second bank is configured to receive the clock signal via the second clock path, and in response to receipt of the clock signal, output the second data to the data receiving circuit via the second data path, where the second data path has a length shorter than a length of the first data path.
In some embodiments, the controller is further configured to output a first sense amp enable signal on a first sense amp enable path to the first bank; and output a second sense amp enable signal on a second sense amp enable path to the second bank. The second sense amp enable path has a length longer than a length of the first sense amp enable path.
In some embodiments, the controller is further configured to output the first sense amp enable signal in advance of an end of a bias time associated with the first bank.
In some embodiments, the first bank and the second bank are part of a bank set comprising a plurality of banks, and wherein the first bank has a farthest distance from the receiving circuit among the plurality of banks.
In some embodiments, the first data path and the second data path share a common data bus.
In some embodiments, the data receiving circuit comprises a serializer/deserializer circuit.
In some embodiments, the serializer/deserializer circuit comprises a burst mode serializer/deserializer circuit.
In another embodiment, a system includes: a common data bus; a data receiving circuit; and on-chip controller, and a plurality of memory banks. The on-chip controller is configured to output a clock signal, receive a read command from an off-chip controller, and in response to the read command, output a first sense enable signal on a first sense enable path and a second sense enable signal on a second sense enable path, where the second sense enable path comprises a length longer than a length of the first sense enable path. The plurality of memory banks is coupled to the common data bus, and include a first memory bank and a second memory bank. The first memory bank is configured to receive the clock signal, receive the first sense enable signal via the first sense enable path, and in response to receipt of the clock signal and the first sense enable signal, output the first data to the data sampling circuit via a first data path comprising the common data bus. The second memory bank is configured to: receive the clock signal, receive the second sense enable signal via the second sense enable path, and in response to receipt of the clock signal and the second sense enable signal, output the second data to the data sampling circuit via a second data path comprising the common data bus, where the second data path comprises a length shorter than a length of the first data path.
In some embodiments, the plurality of memory banks are coupled to the on-chip controller by way of sense amp enable paths and clock paths, and wherein relative lengths of the sense amp enable paths and relative lengths of the clock paths are directly related.
In some embodiments, the plurality of memory banks are coupled to the on-chip controller by way of clock paths, the plurality of memory banks are coupled to the data receiving circuit by way of data paths, and relative lengths of the clock paths and relative lengths of the data paths are inversely related.
Other embodiments are possible, and each of the embodiments can be used alone or together in combination. Accordingly, various embodiments will now be described with reference to the attached drawings.
EmbodimentsThe following embodiments describe apparatuses, devices, systems, circuits, and methods for minimizing latency and maximizing sampling windows for read operations. Before turning to these and other embodiments, the following paragraphs provide a discussion of exemplary memory systems and storage devices that can be used with these embodiments. Of course, these are just examples, and other suitable types of memory systems and/or storage devices can be used.
The controller 102 can take the form of processing circuitry, a microprocessor or processor, and a computer-readable medium that stores computer-readable program code (e.g., software or firmware) executable by the (micro)processor, logic gates, switches, an application specific integrated circuit (ASIC), a programmable logic controller, and an embedded microcontroller, for example. The controller 102 can be configured with hardware and/or firmware to perform the various functions described below and shown in the flow diagrams. Also, some of the components shown as being internal to the controller can also be stored external to the controller, and other components can be used. Additionally, the phrase “operatively in communication with” could mean directly in communication with or indirectly (wired or wireless) in communication with through one or more components, which may or may not be shown or described herein.
As used herein, the controller 102 is a device that manages data stored in the memory die(s) and communicates with a host, such as a computer or electronic device. The controller 102 can have various functionality in addition to the specific functionality described herein. For example, the controller 102 can format the memory dies 104 to ensure that they are operating properly, map out bad memory cells, and allocate spare cells to be substituted for future failed cells. Some part of the spare cells can be used to hold firmware to operate the controller 102 and implement other features. In operation, when a host needs to read data from or write data to the memory die(s) 104, the host will communicate with the controller 102. If the host provides a logical address to which data is to be read/written, the controller 102 can convert the logical address received from the host to a physical address in the memory die(s) 104. (Alternatively, the host can provide the physical address). The controller 102 can also perform various memory management functions, such as, but not limited to, wear leveling (distributing writes to avoid wearing out specific blocks of memory that would otherwise be repeatedly written to) and garbage collection (after a block is full, moving only the valid pages of data to a new block, so the full block can be erased and reused).
The interface between the controller 102 and the non-volatile memory die(s) 104 may be any suitable interface, such as flash interface, including those configured for Toggle Mode 200, 400, 800, 1000 or higher. For some example embodiments, the memory system 100 may be a card based system, such as a secure digital (SD) or a micro secure digital (micro-SD) card. In alternate example embodiments, the memory system 100 may be part of an embedded memory system.
In the example illustrated in
The controller 102 may include a buffer manager/bus controller module 114 that manages buffers in random access memory (RAM) 116 and controls the internal bus arbitration for communication on an internal communications bus 117 of the controller 102. A read only memory (ROM) 118 may store and/or access system boot code. Although illustrated in
Additionally, the front end module 108 may include a host interface 120 and a physical layer interface (PHY) 122 that provide the electrical interface with the host or next level storage controller. The choice of the type of the host interface 120 can depend on the type of memory being used. Example types of the host interface 120 may include, but are not limited to, SATA, SATA Express, SAS, Fibre Channel, USB, PCIe, and NVMe. The host interface 120 may typically facilitate transfer for data, control signals, and timing signals.
The back end module 110 may include an error correction code (ECC) engine or module 124 that encodes the data bytes received from the host, and decodes and error corrects the data bytes read from the non-volatile memory die(s) 104. The back end module 110 may also include a command sequencer 126 that generates command sequences, such as program, read, and erase command sequences, to be transmitted to the non-volatile memory die(s) 104. Additionally, the back end module 110 may include a RAID (Redundant Array of Independent Drives) module 128 that manages generation of RAID parity and recovery of failed data. The RAID parity may be used as an additional level of integrity protection for the data being written into the non-volatile memory system 100. In some cases, the RAID module 128 may be a part of the ECC engine 124. A memory interface 130 provides the command sequences to the non-volatile memory die(s) 104 and receives status information from the non-volatile memory die(s) 104. Along with the command sequences and status information, data to be programmed into and read from the non-volatile memory die(s) 104 may be communicated through the memory interface 130. In one embodiment, the memory interface 130 may be a double data rate (DDR) interface and/or a Toggle Mode 200, 400, 800, or higher interface. A control layer 132 may control the overall operation of back end module 110.
Additional modules of the non-volatile memory system 100 illustrated in
The memory can be formed from passive and/or active elements, in any combinations. By way of non-limiting example, passive semiconductor memory elements include ReRAM device elements, which in some embodiments include a resistivity switching storage element, such as an anti-fuse, phase change material, etc., and optionally a steering element, such as a diode, etc. Further by way of non-limiting example, active semiconductor memory elements include EEPROM and flash memory device elements, which in some embodiments include elements containing a charge storage region, such as a floating gate, conductive nanoparticles, or a charge storage dielectric material.
Multiple memory elements may be configured so that they are connected in series or so that each element is individually accessible. By way of non-limiting example, flash memory devices in a NAND configuration (NAND memory) typically contain memory elements connected in series. A NAND memory array may be configured so that the array is composed of multiple strings of memory in which a string is composed of multiple memory elements sharing a single bit line and accessed as a group. Alternatively, memory elements may be configured so that each element is individually accessible, e.g., a NOR memory array. NAND and NOR memory configurations are exemplary, and memory elements may be otherwise configured.
The semiconductor memory elements located within and/or over a substrate may be arranged in two or three dimensions, such as a two dimensional memory structure or a three dimensional memory structure.
In a two dimensional memory structure, the semiconductor memory elements are arranged in a single plane or a single memory device level. Typically, in a two dimensional memory structure, memory elements are arranged in a plane (e.g., in an x-z direction plane) which extends substantially parallel to a major surface of a substrate that supports the memory elements. The substrate may be a wafer over or in which the layer of the memory elements are formed or it may be a carrier substrate which is attached to the memory elements after they are formed. As a non-limiting example, the substrate may include a semiconductor such as silicon.
The memory elements may be arranged in the single memory device level in an ordered array, such as in a plurality of rows and/or columns. However, the memory elements may be arrayed in non-regular or non-orthogonal configurations. The memory elements may each have two or more electrodes or contact lines, such as bit lines and word lines.
A three dimensional memory array is arranged so that memory elements occupy multiple planes or multiple memory device levels, thereby forming a structure in three dimensions (i.e., in the x, y and z directions, where the y direction is substantially perpendicular and the x and z directions are substantially parallel to the major surface of the substrate).
As a non-limiting example, a three dimensional memory structure may be vertically arranged as a stack of multiple two dimensional memory device levels. As another non-limiting example, a three dimensional memory array may be arranged as multiple vertical columns (e.g., columns extending substantially perpendicular to the major surface of the substrate, i.e., in they direction) with each column having multiple memory elements in each column. The columns may be arranged in a two dimensional configuration, e.g., in an x-z plane, resulting in a three dimensional arrangement of memory elements with elements on multiple vertically stacked memory planes. Other configurations of memory elements in three dimensions can also constitute a three dimensional memory array.
Additional way of organizing the memory cells of the memory cell structure 142 may be possible. As a non-limiting example, the memory cells may be organized into blocks, and the blocks may be organized into planes. Additionally, the memory cells of the memory cell structure may be connected to biasing lines, including word lines and bit lines. Circuitry on the memory die may be configured to bias the word lines and bit lines with various voltages in order to perform memory operations associated with the memory cells, including read, program, and erase operations.
The memory die 104 may further include read/write circuits 144 that includes a plurality or p-number of sense blocks (also referred to as sense modules or sense circuits) 146. As described in further detail below, the sense blocks 146 are configured to participate in reading or programming the memory cells.
The memory die 104 may also include a row address decoder 148 and a column address decoder 150. The row address decoder 148 may decode a row address and select a particular word line when reading or writing data to/from the memory cells. The column address decoder 150 may decode a column address to select a particular group of bit lines in the memory cell structure 142 to read/write circuits 144.
In addition, the non-volatile memory die 104 may include peripheral circuitry 152. The peripheral circuitry 152 may include control logic circuitry 154, which may be implemented as a state machine, that provides on-chip control of memory operations as well as status information to the controller 102. The peripheral circuitry 152 may also include an on-chip address decoder 156 that provides an address interface between addressing used by the controller 102 and/or a host and the hardware addressing used by the row and column decoders 148, 150. In addition, the peripheral circuitry 152 may also include volatile memory 158. An example configuration of the volatile memory 158 may include latches, although other configurations are possible.
In addition, the peripheral circuitry 152 may include power control circuitry 160 that is configured to generate and supply voltages to the memory array 142, including read voltages, program voltages (including program voltage pulses) to the wordlines, erase voltages (including erase voltage pulses), as well as other voltages that may be supplied to the word lines and bit lines of the memory cell structure 142, the read/write circuits 144, including the sense blocks 146, and/or other circuit components on the memory die 104. In addition, the power control circuitry 160 may communicate with and/or be controlled by the control logic circuitry 154, the read/write circuits 144, and/or the sense blocks 146 in order to supply the voltages at appropriate levels and appropriate times to carry out the memory operations. For clarity, and unless otherwise specified, the combination of the power control circuitry 160, the read/write circuitry 144, and the sense blocks 146 used to bias word lines and bit lines at appropriate levels during a given memory operation (e.g., a programming operation, a verify operation, a program-verify operation, a read operation, or an erase operation) is herein referred to collectively as voltage supply circuitry. Voltage supply circuitry may refer to the power control circuitry 160, the sense block circuitry 146, other circuit components of the read/write circuitry 144, or any combination thereof. The voltage supply circuitry may include any of various circuit topologies or configurations to supply the voltages at appropriate levels to perform the read, write, and erase operations, such as driver circuits, charge pumps, reference voltage generators, and pulse generation circuits, or a combination thereof. Other types of circuits to generate the voltages may be possible.
During a read operation to read data stored in target memory cells, the sense blocks 146 may be configured to perform sense operations to sense current flow through the bit lines connected to the target memory cells. The voltage supply circuitry may supply voltages on word lines and bit lines at appropriate levels that cause the target memory cells to draw or not to draw current through bit lines to which they are connected. For a given sense operation involving a memory cell connected to a bit line, the level or amount of current that a sense block 146 senses during a sense operation may identify the data value (e.g., a binary or logic value) of the data that the memory cell is storing.
Additionally, the sense block 300 may include a sense circuit controller 306 that is configured to control operation of the sense circuits 302 and the latches 304 of the sense block 300. As described in further detail below, the sense circuit controller 306 may control operation of the sense circuits 302 and the latches 304 by outputting control signals to terminals of the sense circuits 302 and the latches 304. Additionally, the sense circuit controller 306 may communicate with and/or may be a part of the control logic 154. The sense circuit controller 306 may be implemented in hardware, or a combination of hardware and software. For example, the sense circuit controller 306 may include a processor that executes computer instructions stored in memory to perform at least some of its functions.
The following embodiments with respect to
Additionally, for the example embodiments described herein, the different types of paths and signals include data paths that communicate data signals, control paths that communicate control signals, and clock paths that communicate clock signals. The configurations establish relative lengths of paths of the same type as well as relative lengths of paths of different types to provide the optimization. Further, the control paths and control signals for which the optimization configurations are described below include sense amplifier (amp) enable paths and sense amp enable signals, which are communicated on the memory die 104 to trigger sense operations. Similar optimization configurations may be applicable for other control paths configured to communicate types of control signals other than sense amp enable signals. Additionally, the optimization configurations are described with reference to bank sets that provide data to a burst mode serializer/deserializer (SerDes) as part of read operations to read data from the memory die 104, although the optimization configurations may be similarly applicable for other systems that utilize clock signals and sense amp enable signals (or other control signals) to communicate data. As used herein, a bank set is a collection of banks. A bank is a set of common memory or storage components organized, and configured, in such a way that a single storage or memory operation can be completed using the components of the bank. Execution of one storage or memory operation using one bank is independent of another storage or memory operation completed using another bank. In addition or alternatively, certain components of a memory die 104 may be arranged or organized into banks such that different banks include different portions of these components. For example, with reference to
Additional components of a memory die 104 that may be involved in read operations include a memory interface 406, an on-chip controller 408, and data conversion circuitry, including a burst mode (BM) serializer/deserializer (SerDes) 410 and a normal mode (NM) SerDes 412. These components may be considered part of the peripheral circuitry 152, such as part of the control logic 154, the on-chip address decoder 156, the volatile memory 158, and/or the power control circuitry 160, although in some cases, they may be configured separately from the peripheral circuitry 152. For example, all or some of the components may be part of the read/write circuits 144.
The memory interface 406 may provide the interface for the memory die 104 and components of the memory system 100 external to the memory die 104. Accordingly, data, commands, clock signals, or other information or signals communicated to and/or from the components of the memory die 104 may be communicated through the memory interface 406.
The on-chip controller 408 may be configured to control the communication of data from the memory banks 404 to the BM SerDes 410 or the NM SerDes 412. In this context, the BM SerDes 410 and the NM SerDes 412 may be data receiving circuits in that they receive data from the banks 404. Additionally, the on-chip controller 408 is referred to as “on-chip” in that it is located or configured on the memory die 104. In this context, the controller 102 (
As used herein, in various embodiments, a control interface comprises a hardware module, component, and/or device configured to send one or more control signals to two or more components or modules of the system using a predefined communication protocol. In one embodiments, the control interface sends control signals in parallel to a plurality of components or modules. In another embodiment, the control interface sends control signals in series to a plurality of components or modules over point-to-point communication paths or a network of linked communication paths. Those of skill in the art will recognize that the control interface may be implemented using discrete logic components, synthesized logic components, a state machine, a general processing unit that exercises a set of firmware instructions, or the like. Additionally, as described in further detail below, the control interface 414 is the component of the on-chip controller 408 connected to control paths (e.g., sense amp enable paths) and clock paths. When the on-chip controller 408 wants to send control signals and clock signals to other components of the memory die 104, the control interface 414 outputs the control signals and clock signals onto respective control paths and clock paths for communication to the other components.
The BM SerDes 410 and the NM SerDes 412 may each be configured to perform respective serialization and deserialization operations to convert data between a respective on-chip interface and a respective off-chip interface. That is, the communications bus over which the off-chip controller 102 and the memory die 104 communicate may include a certain number of parallel data lines on which data signals may be communicated in parallel. Each of the BM SerDes 410 and the NM SerDes 412 may include an input interface that includes data inputs (I/P) that receive data to be sent off chip from data paths on the memory die 104. Each of the BM SerDes 410 and the NM SerDes 412 may be configured to convert the data it receives into a format that the memory interface 406 can transmit onto the communications bus.
The memory die 104 may include two SerDes circuits—i.e., the BM SerDes 410 and the NM SerDes 412—in order to operate in two different modes to handle read commands associated with the different mode from the off-chip controller 102. The different modes may include a normal mode and a burst mode. The normal mode and the burst mode may specify or correspond to different communication formats. Although not limited, different communication formats may correspond to or be specified by different numbers of bits to be communicated in parallel or different bit rates, with the burst mode typically specifying a larger number of bits or a larger bit rate. The off-chip controller 102 may be configured to send read commands to the memory die 104 that specifies or indicates whether it wants the memory die 104 to handle the read command in the normal mode or in the burst mode. In this context, a single burst mode read command may be a command for a larger amount of data than a single normal mode read command. The memory die 104 may be configured to handle both types of read commands, and in doing so, the banks 404 may be configured to output data differently for the different types of modes. For example, the banks 404 may each be configured to output larger amounts of data in parallel onto a larger number of data lines when operating in the burst mode than when operating in the normal mode. The NM SerDes 412 may be configured to process data output from the banks 404 in the normal mode, and the BM SerDes may be configured to process data output from the banks 404 in the burst mode, such that regardless of the mode, the memory interface 406 is able to transmit the requested data to the off-chip controller 102. In addition, for at least some example configurations, the normal mode and the burst mode may correspond to different read protocols. For example, the normal mode may correspond to a protocol associated with the memory technology of the memory cell structure 142, such as a NAND protocol for example, whereas the burst mode may correspond to a burst mode protocol.
With respect to the banks 404, each jth bank 404_i(j) of an ith bank set 402(i) may include an associated interface that includes a sense amplifier (amp) enable input Bji_S I/P, a clock input Bji_C I/P, and a data output Bji_D O/P. As described in further detail below, the sense amp enable input Bji_S I/P is coupled to an associated sense amp enable path and configured to receive an associated sense amp enable signal SA_EN_ji from the on-chip controller 408 via the associated sense amp enable path. Additionally, the clock input Bji_C I/P is coupled to an associated clock path and configured to receive a clock signal from the on-chip controller 408 via the associated clock path.
As shown in
Each data path may be associated with one of the banks 404 and coupled to a data output Bji_D O/P of a jth bank 404_i(j) with which the data path is associated. In addition, each data path may include an M-number of data lines configured to communicate an M-number of data signals or data pulses in parallel. In some example configurations, the M-number of data lines of a data path may physically extend substantially parallel and/or adjacent to each other. An example number for M is 64, which may be associated with the burst mode and/or the burst mode protocol, although other numbers may be possible.
In addition, each data path may include two portions, including a specific portion 416 that is specific to an associated bank 404, and a common or shared portion that is common or shared with other data paths associated with banks 404 of the same ith bank set 402(i). Accordingly, each jth bank 404_i(j) may be configured to output, via its data output Bij_D O/P, an M-number data signals or data pulses onto an associated specific data path portion 416_i(j) for communication to the BM SerDes 410.
Additionally, the common or shared portion may be referred to as a common data bus (CBUS). Each ith bank set 402(i) may be associated with an ith common data bus CBUS_i. Otherwise stated, banks 404_i of the same ith bank set 402(i) may be coupled to the same ith common data bus CBUS_i. Data paths associated with banks 404_i of the same bank set 402(i) may share the same ith common data bus CBUS_i. By sharing the same ith common data bus CBUS_i, the data paths over that shared portion are the same. For the example configuration shown in
For some example configurations as shown in
In addition, each specific data path portion 416_i(j) may be connected to an associated common data bus CBUS_i at an associated connection point (or plurality of connection points) Xji. So, as examples, the specific data path portion 416_1(1) specific to the first bank 404_1(1) of the first bank set 402(1) may be connected to the first common data bus CBUS_1 at a connection point (or set of connection points) X11, and the specific data path portion 416_1(N) specific to the Nth bank 404_1(N) of the first bank set 402(1) may be connected to the first common data bus CBUS_1 at a connection point (or set of connection points) XN1.
Also, each data path of an associated jth bank 404_i(j) of an ith bank set 402(i) may have an associated total length, which may include a sum of a first length and a second length. The first length is a length of the associated specific data path portion 416_i(j) extending from the associated data output Bji_D O/P of the jth bank 404_i(j) to its associated connection point Xji. The second length is a length of the associated common data bus CBUS_i extending from the associated connection point Xji to the associated SerDes data input SDS_D(Si) I/P.
Each data path may have an associated total length relative to the other data paths, at least for those data paths associated with banks that are part of the same bank set. For at least some example configurations, for the banks of the same bank set, the associated data paths may have different lengths from each other, which in turn may determine or yield an order of data path lengths extending from a longest data path length to a shortest data path length. In particular example configurations such as shown in
Additionally, the banks 404_i of a given ith bank set 402(i) may have relative distances and/or physical positions from the BM SerDes 410 and/or the data inputs SDS_D I/P of the BM SerDes 410. For at least one of the banks sets 402, such as the first bank set 402(1), the distances or physical positions of the banks 404_i in a given ith bank set 402(i) may directly correspond and/or be directly related to their associated data path lengths. For example, with respect to the first bank set 402(1), the farther a bank 404_1 of the first bank set 402(1) is away (i.e., the greater its distance) from the BM SerDes 410, the longer its associated data path length relative to the other data path lengths associated with other banks of the first bank set 402(1). Similarly, the closer a bank 404_1 of the first bank set 402(1) is (i.e., the shorter its distance) to the BM SerDes 410, the shorter its associated data path length relative to the other data path lengths associated with other banks of the first bank set 402(1). Accordingly, the first bank 404_1(1) has a distance to the BM SerDes 410 that is the longest or largest distance among the distances of the banks 404_1 of the first bank set 402(1) to the BM SerDes 410, and the first bank 404_1(1) is configured to communicate data to the BM SerDes 410 over an associated data path that is the longest data path among the data paths associated with banks of the first bank set 402(1). Additionally, the Nth bank 404_1(N) has a distance that is the shortest or smallest distance among the distances of the banks 404_1 of the first bank set 402(1) to the BM SerDes 410, and the Nth bank 404_1(N) is configured to communicate data to the BM SerDes 410 over an associated data path that is the shortest data path among the data paths associated with banks of the first bank set 402(1).
Additionally, for some example configurations, all of the bank sets 402 may not have data path lengths that are directly related to the distances of associated banks to the BM SerDes 410. For example, with respect to the second bank set 402(2), the data paths associated with banks 404_2 of the second bank set 402(2) may have different lengths from each other, which in turn may establish an order of data paths lengths from longest to shortest. However that order may not directly correspond to the distances of the associated banks 404_2 to the BM SerDes 410. In the example configuration shown in
As part of a read operation, when the on-chip controller 408 wants to read data from a particular part of the memory cell structure 142, such as a page or a block for example, the on-chip controller 408 may control the voltage supply circuitry to supply biasing voltages at certain selected and unselected levels to word lines and bit lines in order bias the memory cells and retrieve the data stored in the memory cells. The process that involves the on-chip controller 408 issuing necessary control signals to the voltage supply circuitry for biasing certain word lines and bit lines at certain levels and the voltage supply circuitry biasing those lines may be referred to as a biasing process of a read operation. The on-chip controller 408 and the voltage supply circuitry may take a certain amount of bias time, referred to herein as a bias time period Tbias, to perform the biasing process. Once the bias time period Tbias has ended, one or more sense circuits 302 (
The on-chip controller 408 may be configured to output sense amp enable signals SA_EN, each to an associated one of the plurality of banks 404 to retrieve data, such as by to controlling the sense circuits 302 to perform sense operations. Where a sense circuit 302 is configured to perform a given sense operation to have data (or a data set) stored or loaded into a jth bank 404_i(j) of an ith bank set 402(i), the on-chip controller 408 may be configured to send an associated sense amp enable signal SA_EN_ji to the associated jth bank 404_i(j) to trigger the sense circuit 302 to start the sense operation. After sense operations are performed, the banks 404 may then output the data to the BM SerDes 410 by way of the data paths, as described in further detail below.
The on-chip controller 408 may be configured to output the sense amp enable signals SA_EN to the banks 404 via its control interface 414. In addition, each jth bank 404_i(j) of an ith data set 402(i) may be configured to receive an associated sense amp enable signal SA_EN_ji from the on-chip controller 408 at its sense amp enable input Bji_S I/P. When the jth bank 404_i(j) receives its associated sense amp enable signal SA_EN_ji, the bank 404_i(j) may communicate the sense amp enable signal SA_EN_ji to an associated sense circuit 302 to perform an associated sense operation.
The banks 404 may be coupled to the on-chip controller 408 and/or its control interface 414 by way of the sense amp enable paths. In particular, the control interface 414 may be coupled to the sense amp enable paths, and when the on-chip controller 408 wants to send the sense amp enable signals SA_EN to the banks, the control interface 414 outputs the sense amp enable signals SA_EN onto the sense amp enable paths. In turn, the sense amp enable paths 502 may be configured to communicate the sense amp enable signals SA_EN from the on-chip controller 408 to the banks 404. Each of the sense amp enable paths 502 may be associated with one of the banks 404. Accordingly, each jth bank 404_i(j) of an ith bank set 402(i) may be associated with a jth sense amp enable path 502_j(i), and its sense amp enable input Bji_S I/P may be coupled to the associated jth sense amp enable path 502_j(i) and configured to receive an associated sense amp enable signal SA_EN_ji from the associated jth sense amp enable path 502_j(i). Otherwise stated, when the on-chip controller 408 wants certain sense circuits 302 to perform sense operations to load certain data into a jth bank 404 JO of an ith bank set 402(i), the on-chip controller 408 may output an associated sense amp enable signal SA_ENji onto an associated sense amp enable path 502_i(j) via its control interface 414. In response, the sense amp enable input Bji_S I/P of the jth bank 404_i(j) may receive the associated sense amp enable signal SA_ENji, which in turn may trigger one or more sense circuits 302 to perform associated sense operation(s) to load certain data into the jth memory bank 404_i(j).
Each sense amp enable path 502_i(j) associated with a jth bank 404_i(j) of an ith data set 402(i) may extend from the control interface 414 to an associated sense amp enable input Bji_S I/P. In addition, each sense amp enable path 502_i(j) may have an associated length as determined from the control interface 414 to the associated sense amp enable input Bji_S I/P to which it is coupled. For some example configurations, for at least one of the bank sets 402, for a given set of sense amp enable paths 502_i that are associated with banks 404_i of the same ith bank set 402(i), at least two of the sense amp enable paths 502_i have different lengths from each other. In particular example configurations, for at least one of the bank sets 402, all of the sense amp enable paths 502_i associated with banks 404_i of the same ith bank set 402(i) have different lengths from one another, and the relative lengths are inversely related (or inversely proportional) to the relative distances of the banks 404_i to the on-chip controller 408 and/or its control interface 414. For at least some of these particular example configurations, the lengths of the associated sense amp enable paths 502_i may also be inversely related to the distances of the banks 404_i to the BM SerDes 410.
In further detail, and as previously described with respect to the first bank set 402(1), the banks 404_i of a given ith bank set 402(i) may have relative distances to and/or physical positions with respect to the BM SerDes 410. Similarly, the banks 404_i of a given ith bank set 402(i) may have relative distances to the on-chip controller 408 and/or its control interface 414. For at least one of the bank sets 402, the relative distances of the banks in a given bank set to the on-chip controller 408 and/or its control interface 414 and the relative of distances of the banks in the given bank set to the BM SerDes 410 are directly related. That is, in a given ith bank set 402(i), the farthest bank in that bank set 402(i) to the BM SerDes 410 is also the farthest bank to the on-chip controller 408 and/or its control interface 414. Similarly, the closest bank in the bank set 402(i) to the BM SerDes 410 is also the closest bank to the on-chip controller 408 and/or its control interface 414.
In the example configuration shown in
This inverse relationship between sense amp enable path lengths and positions of the banks relative to the control interface 414 and/or the BM SerDes 410 is illustrated in
Such an inverse relationship as shown in
In addition or alternatively, sense amp enable paths 502_i associated with the same ith bank set 402(i) may have relative lengths that are inversely related to relative lengths of data paths associated with the same ith bank set 402(i). Herein, a jth sense amp enable path 502_i(j) is associated with an ith bank set 402(i) where the jth sense amp enable path 502_i(j) is coupled to a sense amp enable input Bji_S I/P of a jth bank 404_i(j) that is part of the ith bank set 402(i). Similarly, a given data path is associated with an ith bank set 402(i) where the given data path is coupled to a data output Bji_D O/P of a jth bank 404_i(j) that is part of the ith bank set 402(i). Also, a sense amp enable path is associated with a data path where they are both associated with the same jth bank 404_i(j) of the same ith bank set 402(i). That is, a sense amp enable path 502_i(j) is associated with a data path where the sense amp enable input Bji_S I/P that is coupled to the sense amp enable path 502_i(j) and the data output Bji_S I/P that is coupled to the data path are part of the same jth bank 404_i(j) of the same ith bank set 402(i). Accordingly, for a given jth sense amp enable path 502_i(j) and an associated data path, both associated with the same ith bank set 402(i), the inverse relationship is as follows: the longer the length of the jth sense amp enable path 502_i(j) relative to the lengths of the other sense amp enable paths 502_i associated with the ith bank set 402(i), the shorter the length of the associated data path relative to the lengths of the other data paths associated with the ith bank set; and the shorter the length of the jth sense amp enable path 502_i(j) relative to the lengths of the other sense amp enable paths 502_i associated with the ith bank set 402(i), the longer the length of the associated data path relative to the lengths of the other data paths associated with the ith bank set.
The lengths of the sense amp enable paths 502 and data paths may directly correspond to an amount of time or propagation delay for respectively communicating sense amp enable signals SA_EN and data signals (or data pulses). That is, the longer a given jth sense amp enable path 502_i(j), the longer the amount of time or the larger the amount of propagation delay for an associated sense amp enable signal SA_EN_ji to be communicated along the jth sense amp enable path 502_i(j) from the control interface 414 to the associated sense amp enable input Bji_S I/P. Likewise, the shorter a given jth sense amp enable path 502_i(j), the shorter the amount of time or the smaller the amount of propagation delay for an associated sense amp enable signal SA_EN_ji to be communicated along the jth sense amp enable path 502_i(j) from the control interface 414 to the associated sense amp enable input Bji_S I/P.
In a similar manner, the longer a given data path, the longer the amount of time or the larger the amount of propagation delay for a data signal or data pulse to be communicated along the given data path from an associated data output Bji_D O/P to the BM SerDes 410. Likewise, the shorter a given data path, the shorter the amount of time or the smaller the amount of propagation delay for the data signal or data pulse to be communicated along the given data path from an associated data output Bji_D O/P to the BM SerDes 410.
Given these associated relationships between sense amp enable paths 502 and data paths, with respect to the first bank set 402(1) in
Similarly, the Nth bank 404_1(N) may be associated with the longest sense amp enable path 502_1(N) among the sense amp enable paths 502_1 associated with the first bank set 402(1), and may also be associated with the shortest data path to the BM SerDes 410 among the data paths associated with the first bank set 402(1). In this context, the on-chip controller 408 may be configured to transmit an associated sense amp enable signal SA_EN_N1 to the Nth bank 404_1(N) in a longer amount of time compared to other amounts of time to transmit other sense amp enable signals SA_EN from the control interface 414 to the other banks of the first bank set 402(1). At the same time, the Nth bank 404_1(N) may take a shorter amount of time to transmit a data pulse along its associated data path to the BM SerDes 410 compared to other amounts of time for the other banks 404_1 of the first bank set 402(1) to transmit respective data pulses along their respective data paths to the BM SerDes 410.
The sense amp enable paths 502_2 and data paths associated with the second bank set 402(2) may have similar relationships. For example, the first bank 404_2(1) may be associated with the shortest sense amp enable path 502_2(1) among the sense amp enable paths 502_2 associated with the second bank set 402(2), and may also be associated with the longest data path to the BM SerDes 410 among the data paths associated with the second bank set 402(2). In this context, the on-chip controller 408 may be configured to transmit an associated sense amp enable signal SA_EN_12 to the first bank 404_2(1) in a shorter amount of time compared to other amounts of time to transmit other sense amp enable signals SA_EN from the control interface 414 to the other banks of the second bank set 402(2). At the same time, the first bank 404_2(1) may take a longer amount of time to transmit a data pulse along its associated data path to the BM SerDes 410 compared to other amounts of time for the other banks 404_2 of the second bank set 402(2) to transmit respective data pulses along their respective data paths to the BM SerDes 410.
Similarly, the Nth bank 404_2(N) may be associated with the longest sense amp enable path 502_2(N) among the sense amp enable paths 502_2 associated with the second bank set 402(2), and may also be associated with the shortest data path to the BM SerDes 410 among the data paths associated with the second bank set 402(2). In this context, the on-chip controller 408 may be configured to transmit an associated sense amp enable signal SA_EN_N2 to the Nth bank 404_2(N) in a longer amount of time compared to other amounts of time to transmit other sense amp enable signals SA_EN from the control interface 414 to the other banks of the second bank set 402(2). At the same time, the Nth bank 404_2(N) may take a shorter amount of time to transmit a data pulse along its associated data path to the BM SerDes 410 compared to other amounts of time for the other banks 404_12 of the second bank set 402(2) to transmit respective data pulses along their respective data paths to the BM SerDes 410.
The sense amp enable paths 502 may be configured in any of various ways so that their associated lengths are inversely related to the distances of the banks to the on-chip controller 408 and/or the BM SerDes 410, and/or are inversely related to lengths of associated data paths, as previously described. For some example configurations, with reference to
In further detail, from the perspective that
Additionally, as shown in
As mentioned, various other ways of configuring the sense amp enable paths to establish various propagation delays and an inverse relationship between their relative lengths and the relative lengths of the data paths may be possible.
In addition, configuring the sense amp enable paths 502 and the data paths that are associated with the same ith bank set 402(i) to have an inverse relationship between their relative lengths may provide certain advantages with respect to reducing read latency. As mentioned, the on-chip controller 408 and the voltage supply circuitry may take a certain amount of bias time Tbias to perform a biasing process. It may be undesirable for a sense circuit 302 configured to perform a sense operation on memory cells subjected to the biasing process to actually perform the sense operation before the bias time period Tbias has ended. That is, if sense circuit 302 performs a sense operation before the bias time period Tbias has elapsed, the sense circuit 302 may sense incorrect data from the memory cells since the sense circuit 302 will not have allowed for enough time for the memory cells to be adequately biased to their appropriate levels before sensing the memory cells. As such, when the on-chip controller 408 wants certain data loaded into a jth bank 404_i(j) of an ith bank set 402(i), the on-chip controller 408 may not want to output the associated sense amp enable signal SA_EN_ji at a time that would cause the jth bank 404_i(j) to receive the sense amp enable signal SA_ENji too soon—i.e., at a time before the bias time period Tbias has elapsed.
The on-chip controller 408 may include or otherwise utilize a timer circuit 510 to determine when a bias time period Tbias has ended. Through use of the timer circuit 510, the on-chip controller 408 can ensure that it does not send the sense amp enable signals SA_EN too early.
For a given jth bank 404_j(i) of an ith bank set 402(i), under the presumption that a sense circuit 302 can successfully perform a sense operation to load data into the jth bank 404_j(i) as soon as the bias time period Tbias has ended, the sense amp enable input Bji_S I/P of the jth bank 404 can receive the associated sense amp enable signal SA_EN_ji as soon as the bias time period Tbias has ended. In the event that the sense amp enable input Bji_S I/P receives the associated sense amp enable signal SA_EN_ji after the bias time period Tbias has ended, a period or amount of time T1 may be wasted where the sense circuit 302 is idle instead of performing the sense operation. This period or amount of wasted time may be referred to as sense amp enable latency T1. Because some amount of propagation delay occurs from the time the associated sense amp enable signal SA_EN_ji is output from the control interface 414 to the time it reaches the sense amp enable input Bji_S I/P, the components on the memory die 104 may perform a read operation with an amount of sense amp enable latency T1 when the on-chip controller 408 is configured to output the sense amp enable signal SA_EN_ji as soon as its timer circuit 510 detects that the bias time period Tbias has ended.
In order to eliminate or minimize sense amp enable latency T1, the on-chip controller 408 may be configured to compensate for the sense amp enable latency T1 by output the sense amp enable signals SA_EN before respective bias time periods Tbias end at end times t1. In one example optimized configuration, the on-chip controller 408 may be configured to output the sense amp enable signals SA_EN at an advanced time t0 in advance of the end time t1 in a way that optimizes for the bank of an ith bank set 402(i) that is farthest from the control interface 414. In particular, with reference to the first bank set 402(1) to illustrate, the on-chip controller 408 may be configured to output the sense amp enable signals SA_EN_11 at an advance time t0 such that the sense amp enable signal SA_EN_11 that is sent to the farthest bank 404_1(1) of the first bank set 402(1) reaches the associated sense amp enable input B11_S at the end time t1.
Referring back to
For some example configurations, the on-chip controller 408 may be configured to determine the bias time periods Tbias, including the start and end times of the bias time periods Tbias, as well as determine when to output the sense amp enable signals SA_EN according to a controller clock, e.g., an internal clock (not shown in
In sum, at least one of the bank sets 402, such as the first bank set 402(1), may include banks that have increasing relative distances to the on-chip controller 408 and/or to the BM SerDes 410. The banks of the bank set may have associated sense amp enable paths such that as the banks are positioned farther away from the control interface 414 of the on-chip controller 408, their associated sense amp enable paths are shorter and their associated data paths to the BM SerDes 410 are longer. The on-chip controller 408 may be configured to send the sense amp enable signals a certain compensation time period Td ahead of the ends of bias time periods Tbias, and the certain compensation time period Td may be optimized with respect to the farthest bank of bank group from the control interface 414. That is, the certain compensation time period Td may correspond to the propagation delay of the sense amp enable signal path associated with the farthest bank. The other banks of the bank set that are closer to the control interface 414 have associated sense amp enable paths with unoptimized lengths in that they provide longer sense amp propagation delays relative to the compensation time period Td, resulting in increasingly longer sense amp enable latencies T1. However, the increasingly longer sense amp enable latencies T1 are offset by the increasingly shorter propagation delay provided by the increasingly shorter data paths from the other banks to the BM SerDes 410. As a result, the overall sense amp enable latency T1 may be optimized for a given bank set since the sense amp enable latency T1 associated with the farthest bank may be avoided, and the increasing sense amp enable latencies T1 associated with the other banks may be offset by their decreased data path lengths to the BM SerDes 410.
In addition, for some example configurations, at least one of the bank sets 402 may not include banks that have increasing distances from to the control interface 414 and/or the BM SerDes 410. This is illustrated in
In addition to sending sense amp enable signals SA_EN to the banks 404, the on-chip controller 408 may also be configured to send a clock signal CLK to the banks 404. The clock signal CLK may be the same or different than the controller clock that the on-chip controller 408 uses to determine the end of the bias time periods Tbias and when to send the sense amp enable signals SA_EN. The on-chip controller 408 may send the clock signal CLK to the banks 404 to trigger the banks 404 to transmit data they have onto their respective data paths. In other words, if the on-chip controller 408 sends the sense amp enable signals SA_EN but not the clock signals CLK, the banks 404 would have the data sensed from the memory cell structure 142, but they would not be prompted to send the data onto the data path to the BM SerDes 410.
In the example configuration shown in
The on-chip controller 408 may be coupled to the banks 404 and the BM SerDes 410 by way of a plurality of clock paths configured to communicate the clock signals from the on-chip controller 408 to the banks 404 and the BM SerDes 410. In particular, the clock paths may couple the clock outputs of the control interface 414 to the clock inputs Bji_C I/P of the banks 404 and clock inputs SDS_C(S1) I/P, SDS_C(S2) I/P of the BM SerDes 410. When the on-chip controller 408 wants to send the clock signals CLK1, CLK2 to the banks 404 and/or to the BM SerDes 410, the control interface 414 outputs the clock signals CLK1, CLK2 onto the clock paths. In turn, the clock paths communicate the clock signals CLK1, CLK2 to respective clock inputs Bji_C I/P of the banks 404 and clock inputs SDS_C(S2) I/P, SDS_C(S2) I/P of the BM SerDes 410.
In further detail, two clock paths may be associated with the BM SerDes 410. One of the clock paths may communicate the first clock signal CLK1 from the on-chip controller 408 to a first clock input SDS_C(S1) I/P of the SerDes 410, and the other clock path may communicate the second clock signal CLK2 from the on-chip controller 408 to a second clock input SDS_C(S2) I/P of the SerDes 410. As described in further detail below, the BM SerDes 410 may use the first clock signal CLK1 to determine when to sample (or otherwise capture, hold, obtain, identify, or determine) the levels of the data pulses of the data signals it receives from the banks 404_1 of the first set 402(1) at its first data input SDS_D(S1) I/P. Similarly, the BM SerDes 410 may use the second clock signal CLK2 to determine when to sample the levels of the data pulses of the data signals it receives from the banks 404_2 of the second set 402(2) at its second data input SDS_D(S2) I/P.
The other clock paths may each be associated with one of the banks 404 and coupled to a clock input Bji_C I/P of a jth bank 404_i(j) of an ith bank set 402(i) with which the clock path is associated. In addition, each clock path may include two portions, including a specific portion 702 that is specific to an associated bank 404, and a common or shared portion that is common or shared with other clock paths associated with banks 404 of the same bank set 402. The common or shared portion may be referred to as a common clock path CCP. Each ith bank set 402(i) may be associated with a respective ith common clock path CCPi. So, for the example configuration shown in
When the on-chip controller 408 wants to send an ith clock signal CLKi to one or more banks 404_i of an ith bank set 402(i), it may send the ith clock signal CLKi from its control interface 414 onto the ith common clock path CCPi, and the ith common clock path CCPi may communicate the ith clock signal CLKi toward the banks 404_i of the ith bank set 402(i). Thereafter, the ith clock signal CLKi may branch off onto the specific clock path portions 702_i associated with each of the banks 404_i of the ith bank set 402(i), and each jth specific clock path portions 702_i(j) may communicate the ith clock signal CLKi to the clock input Bji_C I/P of the jth bank 404_i(j) with which it is associated.
When a jth bank 404_i(j) of an ith data set 402(i) receives a clock pulse of an ith clock signal CLKi at its clock input Bji_C I/P, it may respond, such as in response to a rising edge (rising transition) or a falling edge (falling transition), by outputting in parallel an M-number of data pulses corresponding to bits of data that the jth bank 404_i(j) has to send to the BM SerDes 410. The jth bank 404_i(j) may output the M-number of data pulses onto its associated specific data path portion 416_i(j) via its associated data output Bji_D O/P.
A sense circuit 302 may take a certain amount of sense time Tsense (alternatively referred to as a sense period Tsense) to perform a sense operation and have data sensed into a bank 404. When the on-chip controller 408 wants a jth bank 404_i(j) of an ith data set 402(i) to output data pulses onto its data path, the on-chip controller 408 may want a certain amount of time corresponding to the duration of the sense period Tsense before outputting the ith clock signal CLKi so that the jth bank 404_i(j) does not receive clock pulses of the ith clock signal CLKi too early—i.e., before the sense period Tsense is ended and the jth bank 404_i(j) is ready to output the data pulses.
For clock path configuration other than that shown in
In addition, each specific clock path portion 702_i(j) may be connected to an associated common clock path CCPi at an associated connection point Yji. So, as examples, the specific clock path portion 702_1(1) specific to the first bank 404_1(1) of the first bank set 402(1) may be connected to the first common clock path CCP1 at a connection point Y11, and the specific clock path portion 702_1(N) specific to the Nth bank 404_1(N) of the first bank set 402(1) may be connected to the first common clock path CCP1 at a connection point YN1.
Also, each clock path associated with a jth bank 404_i(j) of an ith bank set 402(i) may have an associated total length, which may include a sum of a first length and a second length. The first length is a length of the associated specific clock path portion 702_i(j) extending from the associated clock input Bji_C I/P of the jth bank 404_i(j) to its associated connection point Yji. The second length if a length of the associated common clock path CCPi extending from the control interface 414 of the on-chip controller 408 to the associated connection point Yji.
The clock paths associated with banks 404_i of the same ith bank set 402(i) may have total lengths relative to each other. In particular example configurations, the relative lengths may directly correspond to the relative lengths of the sense amp enable paths 502_i associated with the ith bank set 402(i). Herein, a clock path and a sense amp enable path 502_i(j) are associated with each other where the specific clock path portion 702_i(j) of the clock path and the sense amp enable path 502_(j) are coupled to the same bank 404_i(j). In other words, the clock input Bji_C I/P coupled to the specific clock path portion 702_i(j) and the sense amp enable input Bji_S I/P are part of the same jth bank 404_i(j).
By having lengths that directly correspond to each other, a clock path and an associated sense amp enable path may have matching propagation delays. That is, the amount of time for a jth sense amp enable path 502_i(j) to communicate a jth sense amp enable signal SA_ENji from the control interface 414 to a sense amp enable input Bji_S I/P of a jth bank 404_i(j) matches or is about the same as the amount of time for an associated clock path to communicate a clock pulse of an ith clock signal CLKi from the control interface 414 to a clock input Bji_C I/P of the jth bank. In addition or alternatively, for a given ith bank set 402(i), in a similar way that the lengths and the corresponding propagation delays of the sense amp enable paths 502_i respectively increase from the first bank 404_i(1) to the Nth bank 404_i(N) (as previously described with respect to
In some example configurations, the clock paths may extend substantially parallel with or extend adjacent to and/or alongside associated sense amp enable paths such that their lengths directly correspond to each other. In this context, for some example configurations such as shown in
Additionally, the clock paths associated with the same ith bank set 402(i) may have relative lengths that are inversely related to relative lengths of the data paths associated with the same ith bank set 402(i), in the same or similar way that the sense amp enable paths 502_i associated with the same ith bank set 402(i) have relative lengths that are inversely related to the relative lengths of the data paths associated with the same ith bank set 402(i), as previously described with respect to
In an example read operation in the memory system 100, and in accordance with the inverse relationships between the relative lengths of the clock paths and the data paths, the on-chip controller 408 may receive a read command from the off-chip controller 102. In response, the controller 408 may determine that two different banks, including a first, pth bank 404_i(p) and a second, qth bank 404_i(q) of the same ith bank set 402(i) are to output consecutive data pulses onto the ith common data bus CBUS_i to the BM SerDes 410. Accordingly, the on-chip controller 408 may send sense amp enable signals SA_EN_pi, SA_EN_qi to the banks 404_i(p), 404_i(q) on associated pth and qth sense amp enable paths 502_i(p), 502_i(q), respectively. Assume that the qth sense amp enable path 502_i(q) has a length that is longer than a length of the pth sense enable path 502_i(p). The qth bank 404_i(q) may also have a physical position closer to the control interface 414 and/or to the BM SerDes 410 than a physical position of the pth bank 404_i(p). The pth bank 404_i(p) and the qth bank 404_i(q) may each retrieve data (or data sets) in response to receipt of the sense amp enable signals SA_EN_pi, SA_EN_qi, such as by causing associated sense circuits 302 to perform sense operations.
Additionally, a qth clock path coupled to the qth bank 404_i(q) may have a length that is longer than a length of a pth clock path coupled to the pth bank 404_i(p), in accordance with the direct relationship between the relative lengths of the clock paths and sense amp enable paths. The on-chip controller 408 may output the ith clock signal CLKi on the pth and qth clock paths, which may include outputting the ith clock signal CLKi on an ith common clock path CCPi, to have the data pulses associated with the retrieved data output onto the ith common data bus CBUS_i. The pth and qth banks 404_i(p), 404_i(q) may respond to the ith clock signal CLK by outputting their respective data pulses onto respective pth and qth data paths, which include their specific data path portions 416_i(p), 416_i(q) and the common data bus portion CBUS_i. In accordance with the inverse relationship between the relative lengths of the clock paths and the data paths, the qth data path associated with the qth bank 404_i(q) has a length that is shorter than a length of the pth data path associated with the pth bank 404_i(p). The BM SerDes 410 may receive the consecutive data pulses from the pth bank 404_i(p) and the qth bank 404_i(q) via the common data bus CBUS_i for subsequent processing.
The direct relationship between the relative lengths of the sense amp enable paths 502_i and the clock paths, and the indirect relationship between the relative lengths clock paths and the data paths may optimize or maximize the duration of the sampling window of the data pules. In further detail, the BM SerDes 410 may be configured to receive consecutive data pulses at a given ith data input SDS_D(Si) I/P of the BM SerDes 410 coupled to an ith common data bus CBUS_i (
During a read operation, two consecutive data pulses that the ith common data bus CBUS_i presents may be output from two different banks 404_i of an ith bank set 402(i). As previously described, the data paths of the different banks 404_i of the same ith bank set 402(i) may have different lengths. In turn, the ith common data bus CBUS_i may take longer to present data pulses output on longer data paths compared to data pulses output on shorter data paths to the ith data input SDS_D(Si) I/P of the BM SerDes 410. If the clocks paths to the banks 404_i of the same ith bank set 402(i) had the same lengths and in turn the same propagation delay relative to each other, the banks 404_i would output data pulses at relatively equal time intervals corresponding to the edges of the clock pulses. However, since the data paths have different lengths, then the ith common data bus CBUS_i would present consecutive data pulses from different banks 404_i with different sampling windows. In a worst case scenario of a read operation, the first bank 404_i(1) with the longest associated data path and the Nth bank 404_i(N) with the shortest data path output consecutive data pulses onto the ith common data bus CBUS_i, which in turn provides a short sampling window for the data pulse output from the first bank 404_i(1). This resulting mismatch in sampling windows, in turn, may limit the clock speed of the clock signals CLK1, CLK2 provided to the banks 404 and to the BM SerDes 410.
In contrast, in the example configuration shown in
Additionally, although the path optimization configurations described herein are with respect to sense amp enable signals, sense amp enable signals are just one type of control signal and the sense amp enable paths are just one type of control path for which the path optimization configurations may be applicable. Similar path optimization may be applicable for other example configurations where the controller 408 sends control signals via its control interface to the banks by way of control paths, and where the banks respond by retrieving data or performing some other action associated with the control signals. Direct and inverse relationships between the relative lengths of the control paths and the relative lengths of the data paths and clock paths, as described with reference to
Additionally, although the path optimization configurations described herein are with respect to receipt of clock and data signals by the BM SerDes 410, similar optimization configurations may be used for providing clock and data signals to circuits other than the BM SerDes 410, such as the NM SerDes 412, other data receiving circuits configured to receive data, other conversion circuits configured to perform other or comparable conversion operations that convert data configured in one communication format to a second communication format, or other data sampling circuits configured to sample (or otherwise obtain, capture, hold, identify, determine, or latch onto) levels of data pulses through use of a clock signal and/or in accordance with sampling window.
It is intended that the foregoing detailed description be understood as an illustration of selected forms that the invention can take and not as a definition of the invention. It is only the following claims, including all equivalents, that are intended to define the scope of the claimed invention. Finally, it should be noted that any aspect of any of the preferred embodiments described herein can be used alone or in combination with one another.
Claims
1. A circuit comprising:
- a first bank coupled to a control interface by way of a first control path;
- a second bank coupled to the control interface by way of a second control path, the second control path having a length that is longer than a length of the first control path,
- wherein the second bank has a physical position closer to the control interface than a physical position of the first bank.
2. The circuit of claim 1, wherein:
- the first bank is configured to: retrieve first data in response to receipt of a first control signal by way of the first control path; and output the first data to a data receiving circuit; and
- the second bank is configured to: retrieve second data in response to receipt of a second control signal by way of the second control path; and output the second data to the data receiving circuit.
3. The circuit of claim 2, wherein:
- the first bank is configured to output the first data on a first data path to the data receiving circuit,
- the second bank is configured to output the second data on a second data path to the data receiving circuit, and
- the first data path has a length longer than a length of the second data path.
4. The circuit of claim 3, wherein the first data path and the second data path share a common data bus.
5. The circuit of claim 2, wherein the data receiving circuit comprises a serializer/deserializer circuit.
6. The circuit of claim 2, further comprising:
- a controller configured to output the first control signal in advance of an end of a bias time period associated with the first bank.
7. The circuit of claim 6, wherein the controller is configured to output the first control signal one clock cycle ahead of the end of the bias time period.
8. The circuit of claim 1, wherein:
- the first bank is coupled to the control interface further by way of a first clock path,
- the second bank is coupled to the control interface further by way of a second clock path, the second clock path having a length that is longer than a length of the first clock path.
9. The circuit of claim 8, wherein the first clock path and the second clock path share a common clock path portion.
10. The circuit of claim 1, wherein the first control path comprises a first sense amp enable path and the second control path comprises a second sense amp enable path.
11. A circuit comprising:
- a controller configured to output a clock signal on a first clock path and on a second clock path, the second clock path having a length longer than a length of the first clock path;
- a first bank configured to: receive the clock signal via the first clock path; and in response to receipt of the clock signal, output the first data to a data receiving circuit via a first data path; and
- a second bank configured to: receive the clock signal via the second clock path; and in response to receipt of the clock signal, output the second data to the data receiving circuit via the second data path, the second data path having a length shorter than a length of the first data path.
12. The circuit of claim 11, wherein the controller is further configured to:
- output a first sense amp enable signal on a first sense amp enable path to the first bank; and
- output a second sense amp enable signal on a second sense amp enable path to the second bank,
- wherein the second sense amp enable path has a length longer than a length of the first sense amp enable path.
13. The circuit of claim 12, wherein the controller is further configured to:
- output the first sense amp enable signal in advance of an end of a bias time associated with the first bank.
14. The circuit of claim 11, wherein the first bank and the second bank are part of a bank set comprising a plurality of banks, and wherein the first bank has a farthest distance from the receiving circuit among the plurality of banks.
15. The circuit of claim 11, wherein the first data path and the second data path share a common data bus.
16. The circuit of claim 11, wherein the data receiving circuit comprises a serializer/deserializer circuit.
17. The circuit of claim 16, wherein the serializer/deserializer circuit comprises a burst mode serializer/deserializer circuit.
18. A system comprising:
- a common data bus;
- a data receiving circuit;
- an on-chip controller configured to: output a clock signal; receive a read command from an off-chip controller; and in response to the read command, output a first sense enable signal on a first sense enable path and a second sense enable signal on a second sense enable path, wherein the second sense enable path comprises a length longer than a length of the first sense enable path;
- a plurality of memory banks coupled to the common data bus, the plurality of memory banks comprising:
- a first memory bank configured to: receive the clock signal; receive the first sense enable signal via the first sense enable path; and in response to receipt of the clock signal and the first sense enable signal, output the first data to the data sampling circuit via a first data path comprising the common data bus; and
- a second memory bank configured to: receive the clock signal; receive the second sense enable signal via the second sense enable path; and in response to receipt of the clock signal and the second sense enable signal, output the second data to the data sampling circuit via a second data path comprising the common data bus, wherein the second data path comprises a length shorter than a length of the first data path.
19. The system of claim 18, wherein the plurality of memory banks are coupled to the on-chip controller by way of sense amp enable paths and clock paths, and wherein relative lengths of the sense amp enable paths and relative lengths of the clock paths are directly related.
20. The system of claim 18, wherein the plurality of memory banks are coupled to the on-chip controller by way of clock paths, and wherein the plurality of memory banks are coupled to the data receiving circuit by way of data paths, and wherein relative lengths of the clock paths and relative lengths of the data paths are inversely related.
Type: Application
Filed: Oct 31, 2017
Publication Date: May 2, 2019
Inventors: Yukeun Sim (San Jose, CA), Anurag Nigam (San Jose, CA), Yingchang Chen (San Jose, CA)
Application Number: 15/799,688