High data reliability, high speed of memory access, lower power consumption and reduced chip/package size are features that are demanded from semiconductor memory. In some memory module implementations, a number of supportable memory die may be limited by signaling drivers on the module. For example, subchannel driver circuitry of a register clock driver may only have a physical capacity to drive command and address bus information to a fixed number of memory devices of a memory module. In addition, existing memory module architectures only support a single register clock driver chip. Thus, a register clock driver circuit may limit the number of supportable memory devices, which may limit the size of a memory module.
This disclosure describes clock signal routing architecture for a memory subsystem architecture that includes two register clock driver (RCD) devices. Implementing two RCD devices may increase the number of output drivers for signaling memories of the memory subsystem to provide an ability to support a greater number of memories as compared with implementations that use only single RCD device. However, synchronous timing between the two RCD devices is required to meet some memory subsystem architecture timing standards. In some architectures, for a single channel, a memory controller (e.g., or host, central processor unit, one or more other processor units, etc.) may provide respective command and address (C/A) information over two (or more) independent subchannels (e.g., using different respective sets of C/A signal lines) in parallel (electrically), but may only provide a single clock signal that is used to synchronize timing of each of the two (or more) subchannels such that the respective C/A information for each subchannel is provided to a respective group (e.g., a memory rank, a memory package, or some other grouping) of memories (e.g., die, devices, etc.) contemporaneously. In a single RCD device implementation where the host only provides a single clock signal, the single clock signal may be routed to the single RCD device to receive data transmitted on the two (or more) subchannels. However, in a two (or more) RCD device implementation where the host only provides a single clock signal, the single clock signal may need to be routed to each of the two (or more) RCD devices to receive the data on the two (or more) subchannels. The following describes a two RCD device implementation, but it is appreciated that the concept may be expanded to implementations with more than two RCD devices.
To enable a two RCD device implementation, the clock signal may be split (e.g., via a clock signal splitter circuit or a clock tee) such that is provided to the two RCD devices contemporaneously. The clock tee may be arranged to maintain sufficient signal integrity (SI) at clock receivers. That is, the clock signal routing architecture may be implemented with physical characteristics to maintain the synchronous timing. The physical characteristics may include impedance matching, matching trace length, adjusting trace width to avoid signal loss or reflections, etc., or any combination thereof.
In an example, the first and second RCD devices may be configured to provide first subchannel C/A information and second subchannel C/A information, respectively, to respective first and second group of memories of the memory subsystem. Because each of the first and second RCD devices operate responsive to the common clock signal, operation of the first and second RCD devices may be synchronized such that all subchannel driver circuits drive respective subchannel C/A information contemporaneously. As previously mentioned, an ability to support more than one RCD device on a memory subsystem may increase a number of output drivers, which may, correspondingly provide support for an increased number of memories on the memory subsystem as compared with single RCD device memory subsystem implementations. The clock signal routing architecture may assist the maintenance of a synchronous relationship between RCD devices in a multiple RCD device memory subsystem architectures, which may improve reliability.
The printed circuit board 105 may include a first set of traces to route the first subchannel command and address information to the memory package 110(1) and a second set of traces to route the second subchannel command and address information to the memory package 110(2). In addition, the printed circuit board 105 may include a trace to route the clock signal to the clock tee circuit 106. The clock tee circuit 106 may be configured to split the CLK signal such that it is provided to the memory package 110(1) and the memory package 110(2) contemporaneously. The clock tee circuit 106 may have three legs (e.g., branches of physical routing): a first leg to receive the CLK signal from the external bus, and two similar legs to route the CLK signal to the memory package 110(1) and the memory package 110(2). The clock tee circuit 106 may be arranged to reduce likelihood of ISI at clock receivers for components of the memory package 110(1) and the memory package 110(2). That is, the architecture of the clock tee circuit 106 may be implemented with physical characteristics to maintain the synchronous timing. The physical characteristics may include impedance matching, matching trace length (e.g., length from the clock tee circuit 106 to each of the memory package 110(1) and the memory package 110(2)), selecting trace widths to avoid signal loss or reflections, use of passive resistors, etc., or any combination thereof.
The memory package 110(1) may include a register clock driver circuit 112(1) coupled to a memories 114(1) and the memory package 110(2) may include a register clock driver circuit 112(2) coupled to a memories 114(2). The register clock driver circuit 112(1) may be configured to receive first subchannel C/A information from the C/A A bus and the CLK signal and the register clock driver circuit 112(2) may be configured to receive second subchannel C/A information from the C/A B bus and the CLK signal. The first and second subchannel C/A information may correspond to C/A information for a single channel. The first subchannel C/A information and the second subchannel C/A information may include memory access commands and addresses, chip select signals, etc., corresponding to first and second subchannels, respectively. The first and/or second subchannel C/A information may also include information to configure the memory subsystem 104 and/or components of the memory package 110(1) and/or the memory package 110(2). The register clock driver circuit 112(1) may provide the first subchannel C/A information to each of C/A A1-A4 buses in parallel responsive to the CLK signal and the register clock driver circuit 112(2) may provide the second subchannel C/A information to each of C/A B1-B4 buses in parallel responsive to the CLK signal.
Each memory of the memories 114(1) may be coupled to a respective one of C/A A1-A4 buses to receive first subchannel C/A information and each memory of the memories 114(2) may be coupled to a respective one of C/A B1-B4 buses to receive second subchannel C/A information. Each memory of the memories 114(1) may also be coupled to a respective data bus to receive write data from and to provide read data to the memory controller responsive to the first subchannel C/A information. Additionally, each memory of the memories 114(2) may be coupled to a respective data bus to receive write data from and to provide read data to the memory controller responsive to the second subchannel C/A information. The memories 114(1) and/or the memories 114(2) may each include one or more memory devices, packages, and/or memory die. In some examples, the one or more memory devices or packages may each include one or more memory die stacks. The memories 114(1) and/or the memories 114(2) may each include dynamic, random-access memory (DRAM) (e.g., double data rate (DDR) 4 DRAM, DDR5 DRAM, DDR6 DRAM, etc.), in some examples.
In operation, for a given communication channel, a memory controller of the memory system 100 may contemporaneously provide respective first and second subchannel C/A information over two independent subchannels via the C/A A bus and C/A B bus, respectively, along with a single clock signal used to synchronize timing of the two subchannels to the memory subsystem 104. In some examples, the memory subsystem 104 and/or one or both of the memory package 110(1) and the memory package 110(2) may further include a control plane hub (e.g., device or chip) (not shown) to provide control plane communication between components of the memory subsystem 104 and/or one or both of the memory package 110(1) and the memory package 110(2), such as the register clock driver circuit 112(1), the register clock driver circuit 112(2), thermal sensors (not shown), power management integrated circuits (not shown), etc., or any combination thereof based on at least one of the first subchannel C/A information from the C/A A bus or the second subchannel C/A information from the C/A B bus. The control plane communications may be used to configure parameters of the components of the memory subsystem 104 and/or one or both of the memory package 110(1) and the memory package 110(2), such as voltage levels, clock timing characteristics, modes of operation, etc.
The first set of traces of the printed circuit board 105 may route the first subchannel command and address information to the memory package 110(1) and the second set of traces of the printed circuit board 105 may route the second subchannel command and address information to the memory package 110(2). In addition, the clock trace may route the clock signal to a first leg of the clock tee circuit 106. The clock tee circuit 106 may be configured to split the CLK signal such that is provided to the register clock driver circuit 112(1) and the register clock driver circuit 112(2) contemporaneously via two electrically-parallel, similar legs. The clock tee circuit 106 may be arranged to reduce likelihood of ISI at clock receivers for components of the memory package 110(1) and the memory package 110(2). That is, the architecture of the clock tee circuit 106 may be implemented with physical characteristics to maintain the synchronous timing. The physical characteristics may include impedance matching, matching trace length (e.g., length from the clock tee circuit 106 to each of the register clock driver circuit 112(1) and the register clock driver circuit 112(2)), selecting trace widths to avoid signal loss or reflections, use of passive resistors, etc., or any combination thereof. In some examples, the traces for the CLK signal may widen at the clock tee circuit 106.
The memory package 110(1) is configured to receive and respond to the first subchannel C/A information to receive and store write data at and provide read data from the memories 114(1) to the memory controller via the respective data bus and the memory package 110(2) is configured to receive and respond to the second subchannel C/A information to receive and store write data at and provide read data from the memories 114(2) to the memory controller via the respective data bus.
The register clock driver circuit 112(1) and the register clock driver circuit 112(2) may each be configured to drive the first and second subchannel C/A information received from the C/A A bus and the C/A B bus, respectively, to the C/A A1-A4 buses and the C/A B1-B4 buses, respectively, responsive to the CLK signal. Each of the register clock driver circuit 112(1) and the register clock driver circuit 112(2) may include dual (e.g., A and B), independent subchannel driver circuits that are each configured to drive the respective subchannel C/A information to a respective two of the C/A A1-A4 buses or a respective two of the C/A B1-B4 buses. For example, in response to the CLK signal, the first subchannel driver circuit of the register clock driver circuit 112(1) may provide the first subchannel C/A information to the C/A A1-A2 buses and the second subchannel driver circuit of the register clock driver circuit 112(1) may provide the first subchannel C/A information to the C/A A3-A4 buses. The subchannel driver circuits of the register clock driver circuit 112(2) may each similarly provide the second subchannel C/A information to a respective two of the C/A B1-B4 buses responsive to the CLK signal.
The memories 114(1) may be divided into four subsets, with the memories of each subset coupled to an individual one of the C/A A1-A4 buses to receive the first subchannel C/A information. Similarly, the memories 114(2) may be divided into four subsets, with the memories of each subset coupled to an individual one of the C/A B1-B4 buses to receive the second subchannel C/A information. One or more of the memories 114(1) may receive write data from or provide read data to the memory controller via the respective data bus, as well as perform other operations, responsive to the first subchannel C/A information. Similarly, one or more of the memories 114(2) may receive write data from or provide read data to the memory controller via the respective data bus, as well as perform other operations, responsive to the second subchannel C/A information.
It is appreciated that, without departing from the scope of the disclosure, the memory subsystem 104 could be scaled to include more than two memory packages, more than two RCD circuits, and/or more than two groups of memories, such as to support additional subchannels. It is also appreciated that each of the register clock driver circuit 112(1) and the register clock driver circuit 112(2) may be configured with additional driver circuits to support more than four independent C/A buses. An ability to support more than one RCD circuit on the memory subsystem 104 may increase a number of output drivers, which may, correspondingly provide support for an increased number of memories on the memory subsystem 104 as compared with single RCD device memory subsystem implementations. The clock tee circuit 106 may assist the maintenance of a synchronous relationship between the register clock driver circuit 112(1) and the register clock driver circuit 112(2), which may improve reliability.
The printed circuit board 205 may include a first set of traces to route the first subchannel command and address information to the memory package 210(1) and a second set of traces to route the second subchannel command and address information to the memory package 210(2). In addition, the printed circuit board 205 may include a trace to route the clock signal to a clock tee circuit (e.g., or clock signal splitter circuit) 206. The clock tee circuit 206 may be configured to split the CLK signal such that is provided to the memory package 210(1) and the memory package 210(2) contemporaneously. The clock tee circuit 206 may have three legs (e.g., branches of physical routing): a first leg to receive the CLK signal from the external bus, and two similar legs to route the CLK signal to the memory package 210(1) and the memory package 210(2). The clock tee circuit 206 may be arranged to reduce likelihood of ISI at clock receivers for components of the memory package 210(1) and the memory package 210(2). That is, the architecture of the clock tee circuit 206 may be implemented with physical characteristics to maintain the synchronous timing. The physical characteristics may include impedance matching, matching trace length (e.g., length from the clock tee circuit 206 to each of the memory package 210(1) and the memory package 210(2)), selecting trace widths to avoid signal loss or reflections, use of passive resistors, etc., or any combination thereof.
The memory package 210(1) may include a register clock driver circuit 212(1) coupled to memories 214(1) and the memory package 210(2) may include a register clock driver circuit 212(2) coupled to memories 214(2). The register clock driver circuit 212(1) may be configured to receive first subchannel C/A information from the C/A A bus and the CLK signal and the register clock driver circuit 212(2) may be configured to receive second subchannel C/A information from the C/A B bus and the CLK signal. The first and second subchannel C/A information may correspond to C/A information for a single channel. The first subchannel C/A information and the second subchannel C/A information may include memory access commands and addresses, chip select signals, etc., corresponding to first and second subchannels, respectively. The first and/or second subchannel C/A information may also include information to configure the memory subsystem 204 and/or components of the memory package 210(1) and/or the memory package 210(2). The register clock driver circuit 212(1) may provide the first subchannel C/A information to each of C/A A1-A4 buses in parallel (e.g., contemporaneously) responsive to the CLK signal and the register clock driver circuit 212(2) may provide the second subchannel C/A information to each of C/A B1-B4 buses in parallel responsive to the CLK signal.
The register clock driver circuit 212(1) may include a first driver circuit 240(1) and a second driver circuit 242(1) that are each configured to receive the first subchannel C/A information in parallel (e.g., contemporaneously) from the C/A A bus via a 232(1) and a clock driver circuit 244(1) configured to receive the CLK signal. Responsive to the CLK signal driven from the clock driver circuit 244(1), the first driver circuit 240(1) may be configured to drive the first subchannel C/A information to the C/A A1-A2 buses and the second driver circuit 242(1) may be configured to drive the first subchannel C/A information to the C/A A3-A4 buses.
Similarly, the register clock driver circuit 212(2) may include a first driver circuit 240(2) and a second driver circuit 242(2) that are each configured to receive the second subchannel C/A information in parallel (e.g., contemporaneously) from the C/A B bus via a 232(2) and a clock driver circuit 244(2) configured to receive the CLK signal. Responsive to the CLK signal driven from the clock driver circuit 244(1), the first driver circuit 240(1) may be configured to drive the second subchannel C/A information to the C/A B1-B2 buses and the second driver circuit 242(1) may be configured to drive the second subchannel C/A information to the C/A B3-B4 buses.
Each memory of the memories 214(1) may be coupled to a respective one of C/A A1-A4 buses to receive first subchannel C/A information and each memory of the memories 214(2) may be coupled to a respective one of C/A B1-B4 buses to receive second subchannel C/A information. Each memory of the memories 214(1) may also be coupled to a respective data bus to receive write data from and to provide read data to the memory controller responsive to the first subchannel C/A information. Additionally, each memory of the memories 214(2) may be coupled to a respective data bus to receive write data from and to provide read data to the memory controller responsive to the second subchannel C/A information. The memories 214(1) and/or the memories 214(2) may each include one or more memory devices, packages, and/or memory die. In some examples, the one or more memory devices or packages may each include one or more memory die stacks. The memories 214(1) and/or the memories 214(2) may each include dynamic, random-access memory (DRAM) (e.g., double data rate (DDR) 4 DRAM, DDR5 DRAM, DDR6 DRAM, etc.), in some examples.
In operation, for a given communication channel, C/A A and C/A B drivers of the memory controller 202 may contemporaneously provide respective first and second subchannel C/A information over two independent subchannels via the C/A A bus and C/A B bus, respectively, along with a CLK driver to provide a single clock signal over a clock signal line that is used to synchronize timing of the two subchannels to the memory subsystem 204. In some examples, a logic chip on the clock tee circuit 206 and/or one or both of the memory package 210(1) and the memory package 210(2) may further include a control plane hub (e.g., device or chip) (not shown) to provide control plane communication between components of the memory subsystem 204 and/or one or both of the memory package 210(1) and the memory package 210(2), such as the register clock driver circuit 212(1), the register clock driver circuit 212(2), thermal sensors (not shown), power management integrated circuits (not shown), etc., or any combination thereof based on at least one of the first subchannel C/A information from the C/A A bus or the second subchannel C/A information from the C/A B bus. The control plane communications may be used to configure parameters of the components of the memory subsystem 204 and/or one or both of the memory package 210(1) and the memory package 210(2), such as voltage levels, clock timing characteristics, modes of operation, etc.
The first set of traces of the printed circuit board 205 may route the first subchannel command and address information to the register clock driver circuit 212(1) and the second set of traces of the printed circuit board 205 may route the second subchannel command and address information to the register clock driver circuit 212(2). In addition, the clock trace may route the clock signal to a first leg of the clock tee circuit 206. The clock tee circuit 206 may be configured to split the CLK signal such that is provided to the register clock driver circuit 212(1) and the register clock driver circuit 212(2) contemporaneously via two electrically-parallel, similar legs. The clock tee circuit 206 may be arranged to reduce likelihood of ISI at clock receivers for components of the memory package 210(1) and the memory package 210(2). That is, the architecture of the clock tee circuit 206 may be implemented with physical characteristics to maintain the synchronous timing. The physical characteristics may include impedance matching, matching trace length (e.g., length from the clock tee circuit 206 to each of the register clock driver circuit 212(1) and the register clock driver circuit 212(2)), selecting trace widths to avoid signal loss or reflections, use of passive resistors, etc., or any combination thereof. In some examples, the traces for the CLK signal may widen at the clock tee circuit 206.
The memory package 210(1) is configured to receive and respond to the first subchannel C/A information to receive and store write data at and provide read data from the memories 214(1) to the memory controller via the respective data bus and the memory package 210(2) is configured to receive and respond to the second subchannel C/A information to receive and store write data at and provide read data from the memories 214(2) to the memory controller via the respective data bus.
The register clock driver circuit 212(1) and the register clock driver circuit 212(2) may each be configured to drive the first and second subchannel C/A information received from the C/A A bus and the C/A B bus, respectively, to the C/A A1-A4 buses and the C/A B1-B4 buses, respectively, responsive to the CLK signal.
The first driver circuit 240(1) and the second driver circuit 242(1) of the register clock driver circuit 212(1) may each receive the first subchannel C/A information in parallel (e.g., contemporaneously) from the C/A A bus and the clock driver circuit 244(1) may receive the CLK signal. The C/A A bus may be split via a tee 230(1) to provide the first subchannel C/A information to each of the first driver circuit 240(1) and the second driver circuit 242(1). Responsive to the CLK signal driven from the clock driver circuit 244(1), the first driver circuit 240(1) may drive the first subchannel C/A information to the C/A A1-A2 buses and the second driver circuit 242(1) may drive the first subchannel C/A information to the C/A A3-A4 buses.
The first driver circuit 240(2) and the second driver circuit 242(2) of the register clock driver circuit 212(2) may receive the second subchannel C/A information in parallel (e.g., contemporaneously) from the C/A B bus via the 232(2) and the clock driver circuit 244(2) may receive the CLK signal. The C/A B bus may be split via a tee 230(2) to provide the first subchannel C/A information to each of the first driver circuit 240(2) and the second driver circuit 242(2). Responsive to the CLK signal driven from the clock driver circuit 244(1), the first driver circuit 240(1) may drive the second subchannel C/A information to the C/A B1-B2 buses and the second driver circuit 242(1) may drive the second subchannel C/A information to the C/A B3-B4 buses. The second driver circuit 242(1), the clock driver circuit 244(1), the second driver circuit 242(2), and the clock driver circuit 244(2) may all operation in a synchronized manner with timing based on the common CLK signal.
The memories 214(1) may be divided into four subsets, with the memories of each subset coupled to an individual one of the C/A A1-A4 buses to receive the first subchannel C/A information. Similarly, the memories 214(2) may be divided into four subsets, with the memories of each subset coupled to an individual one of the C/A B1-B4 buses to receive the second subchannel C/A information. One or more of the memories 214(1) may receive write data from or provide read data to the memory controller via the respective data bus, as well as perform other operations, responsive to the first subchannel C/A information. Similarly, one or more of the memories 214(2) may receive write data from or provide read data to the memory controller via the respective data bus, as well as perform other operations, responsive to the second subchannel C/A information.
It is appreciated that, without departing from the scope of the disclosure, the memory subsystem 204 could be scaled to include more than two memory packages, more than two RCD circuits, and/or more than two groups of memories, such as to support additional subchannels. It is also appreciated that each of the register clock driver circuit 212(1) and the register clock driver circuit 212(2) may be configured with additional driver circuits to support more than four independent C/A buses. An ability to support more than one RCD circuit on the memory subsystem 204 may increase a number of output drivers, which may, correspondingly provide support for an increased number of memories on the memory subsystem 204 as compared with single RCD device memory subsystem implementations. The clock tee circuit 206 may assist the maintenance of a synchronous relationship between the register clock driver circuit 212(1) and the register clock driver circuit 212(2), which may improve reliability.
The memory 314 may include a die stack 342(1) and a die stack 342(2) that each include 10 of the memory die 360 stacked in a shingle or cascade stacked arrangement (e.g., each of the memory die 360 is offset horizontally from adjacent ones of the memory die 360). Each of the memory die 360 may include a DRAM architecture, such as DDR4 DRAM, DDR5 DRAM, DDR6 DRAM, etc.), in some examples. Each of the memory die 360 of the die stack 342(1) and the die stack 342(2) may be coupled to other circuitry to perform memory access operations via respective wire bonds 350. It is appreciated that the die stack 342(1) and the die stack 342(2) may include more or fewer than 10 of the memory die 360 without departing from the scope of the disclosure. It is also appreciated that the die stack 342(1) may include a different number of the memory die 360 than the die stack 342(2), in some examples. It is also appreciated that the die stack 342(1) and/or the die stack 342(2) may be arranged to use other stacking and connection implementations, such as a 3D through-silicon via stack, without departing from the scope of the disclosure.
In some examples, the dual-stack memory package 310 may further include a control plane hub (e.g., device or chip) (not shown) to provide control plane communication between components of the dual-stack memory package 310, such as the register clock driver circuit 312, thermal sensors (not shown), power management integrated circuits (not shown), etc., or any combination thereof based on the respective subchannel C/A information from the respective C/A bus. The control plane communications may be used to configure parameters of the components of the dual-stack memory package 310, such as voltage levels, clock timing characteristics, modes of operation, etc.
The memory 315 may include a die stack 343 that includes 20 of the memory die 360 stacked in a shingle or cascade stacked arrangement (e.g., each of the memory die 360 is offset horizontally from adjacent ones of the memory die 360). Each of the memory die 360 of the die stack 343 may be coupled to other circuitry to perform memory access operations via respective wire bonds 350. It is appreciated that the die stack 343 may include more or fewer than 20 of the memory die 360 without departing from the scope of the disclosure. It is also appreciated that the die stack 343 may be arranged to use other stacking and connection implementations, such as a 3D through-silicon via stack, without departing from the scope of the disclosure.
In some examples, the dual-stack memory package 310 may further include a control plane hub (e.g., device or chip) (not shown) to provide control plane communication between components of the single-stack memory package 311, such as the register clock driver circuit 312, thermal sensors (not shown), power management integrated circuits (not shown), etc., or any combination thereof based on the respective subchannel C/A information from the respective C/A bus. The control plane communications may be used to configure parameters of the components of the single-stack memory package 311, such as voltage levels, clock timing characteristics, modes of operation, etc.
The memory subsystem 404 may be configured to communicate with a memory controller 402 to perform memory access operations based on a clock signal CLK, first subchannel C/A information from a C/A/A bus, second subchannel C/A information from a C/A/B bus, and/or data transferred via signals over respective data buses. In some examples, the memory controller 402 may a C/A A bus driver 462 configured to drive first subchannel C/A information from a C/A/A bus, a C/A B bus driver 464 configured to drive second subchannel C/A information from a C/A/B bus, and a clock driver 466 configured to drive the CLK signal over the clock signal line. The memory controller 402 may further include drivers and receivers (not shown) coupled to the respective data buses to provide write data and to receive read data, respectively.
The memory subsystem 404 may include memories 414(1)-(8) coupled to register clock driver circuit 412(1) and memories 414(9)-(16) coupled to register clock driver circuit 412(2). The memory subsystem 404 may include a printed circuit board configured to mount the memories 414(1)-(16, the register clock driver circuit 412(1), and the register clock driver circuit 412(2).
The printed circuit board may include a first set of traces to route the first subchannel command and address information to the register clock driver circuit 412(1) and a second set of traces to route the second subchannel command and address information to the register clock driver circuit 412(2). In addition, the printed circuit board may include a trace to route the clock signal to the clock tee circuit 406. The clock tee circuit 406 may be configured to split the CLK signal such that is provided to the register clock driver circuit 412(1) and the register clock driver circuit 412(2) contemporaneously. The clock tee circuit 406 may have three legs: a first leg to receive the CLK signal from the external bus, and two similar legs to route the CLK signal to the register clock driver circuit 412(1) and the register clock driver circuit 412(2). The clock tee circuit 406 may be arranged to reduce likelihood of ISI at clock receivers for components of the memory subsystem 404. That is, the architecture of the clock tee circuit 406 may be implemented with physical characteristics to maintain the synchronous timing. The physical characteristics may include impedance matching, matching trace length (e.g., length from the clock tee circuit 406 to each of the register clock driver circuit 412(1) and the register clock driver circuit 412(2)), selecting trace widths to avoid signal loss or reflections, use of passive resistors, etc., or any combination thereof.
The register clock driver circuit 412(1) may be configured to receive first subchannel C/A information from the C/A A bus and the CLK signal and the register clock driver circuit 412(2) may be configured to receive second subchannel C/A information from the C/A B bus and the CLK signal. The first and second subchannel C/A information may correspond to C/A information for a single channel. The first subchannel C/A information and the second subchannel C/A information may include memory access commands and addresses, chip select signals, etc., corresponding to first and second subchannels, respectively. The first and/or second subchannel C/A information may also include information to configure the memory subsystem 404 and/or components of the memory subsystem 404. The register clock driver circuit 412(1) may provide the first subchannel C/A information to each of C/A A1-A2 buses in parallel responsive to the CLK signal and the register clock driver circuit 412(2) may provide the second subchannel C/A information to each of C/A B1-B2 buses in parallel responsive to the CLK signal. It is appreciated that the memory subsystem 404 of
In some examples, the memories 414(1)-(16) may all be the same type of memory. In other examples, the memories 414(1)-(16) may be a mix of different types of memories. In some examples, the memories 414(1)-(16) may implement in the memories 114(1) and/or the memories 114(2) of
Each of the memories 414(1)-(4) may be coupled to the C/A A1 bus and each of the memories 414(5)-(8) may be coupled to the C/A A2 bus to receive first subchannel C/A information. Each of the memories 414(9)-(12) may be coupled to the C/A B1 bus and each of the memories 414(13)-(16) may be coupled to the C/A B2 bus to receive second subchannel C/A information. Each of the memories 414(1)-(16) may also be coupled to a respective data bus to receive write data from and to provide read data to the memory controller memory controller 202 responsive to the first subchannel C/A information or the second subchannel C/A information.
In some embodiments, the memories 414(1)-(16) may be organized into different physical ranks and/or may be included on one or both sides of the memory subsystem 404. In some embodiments, there may be 4, 8, 16, or more memories per physical rank, and one or more physical ranks in the memory subsystem 404. For example, the memory subsystem 404 may include a first physical rank on a first side of the memory subsystem 404 (e.g., the 16 memories 414(1)-(16)), and a second physical rank on a back side of the memory subsystem 404 (e.g., 16 more memories on a reverse side of the memory subsystem 404).
In operation, for a given communication channel, the C/A A bus driver 462 and the C/A B bus driver 464 of the 402 may contemporaneously provide respective first and second subchannel C/A information over two independent subchannels via the C/A A bus and C/A B bus, respectively, along with a clock driver 466 to provide a single clock signal over a clock signal line that is used to synchronize timing of the two subchannels to the memory subsystem 404. In some examples, the memory subsystem 404 may further include a control plane hub (e.g., device or chip) (not shown) to provide control plane communication between components of the memory subsystem 404, such as the register clock driver circuit 412(1), the register clock driver circuit 412(2), thermal sensors (not shown), power management integrated circuits (not shown), etc., or any combination thereof based on at least one of the first subchannel C/A information from the C/A A bus or the second subchannel C/A information from the C/A B bus. The control plane communications may be used to configure parameters of the components of the memory subsystem 404, such as voltage levels, clock timing characteristics, modes of operation, etc.
The first set of traces of the printed circuit board of the memory subsystem 404 may route the first subchannel command and address information to the register clock driver circuit 412(1) and the second set of traces of the printed circuit board of the memory subsystem 404 may route the second subchannel command and address information to the register clock driver circuit 412(1). In addition, the clock trace may route the clock signal to a first set of the clock tee circuit 406. The clock tee circuit 406 may be configured to split the CLK signal such that is provided to the register clock driver circuit 412(1) and the register clock driver circuit 412(2) contemporaneously via two electrically-parallel, similar legs (e.g., branches of physical routing). The clock tee circuit 406 may be arranged to reduce likelihood of ISI at clock receivers for components of the memory subsystem 404. That is, the architecture of the clock tee circuit 406 may be implemented with physical characteristics to maintain the synchronous timing. The physical characteristics may include impedance matching, matching trace length (e.g., length from the clock tee circuit 406 to each of the register clock driver circuit 412(1) and the register clock driver circuit 412(2)), selecting trace widths to avoid signal loss or reflections, use of passive resistors, etc., or any combination thereof. In some examples, the traces for the CLK signal may widen at the clock tee circuit 406.
The register clock driver circuit 412(1) and the register clock driver circuit 412(2) may each be configured to drive the first and second subchannel C/A information received from the C/A A bus and the C/A B bus, respectively, to the C/A A1-A2 buses and the C/A B1-B2 buses, respectively, responsive to the CLK signal.
Each of the memories 414(1)-(4) may receive the first subchannel C/A information via the C/A A1 bus and each of the memories 414(5)-(8) may receive the first subchannel C/A information via the C/A A2 bus. One or more of the memories 414(1)-(8) may perform memory access operations responsive to the first subchannel C/A information to receive data from and provide data to the respective data buses in communication with the memory controller 402.
Each of the memories 414(9)-(12) may receive the second subchannel C/A information via the C/A B1 bus and each of the memories 414(13)-(16) may receive the second subchannel C/A information via the C/A B2 bus. One or more of the memories 414(9)-(16) may perform memory access operations responsive to the second subchannel C/A information to receive data from and provide data to the respective data buses in communication with the memory controller 402.
It is appreciated that, without departing from the scope of the disclosure, the memory subsystem 404 could be scaled to include more than 16 (or 32) memories, more than two register clock driver circuits, and/or more than two groups of memories, such as to support additional subchannels. It is also appreciated that each of the register clock driver circuit 412(1) and the register clock driver circuit 412(2) may be configured with additional driver circuits to support more than four independent C/A buses. An ability to support more than one register clock driver circuit on the memory subsystem 404 may increase a number of output drivers, which may, correspondingly provide support for an increased number of memories on the memory subsystem 404 as compared with single RCD device memory subsystem implementations. The clock tee circuit 406 may assist the maintenance of a synchronous relationship between the register clock driver circuit 412(1) and the register clock driver circuit 412(2), which may improve reliability.
For brevity and clarity of illustration, only the components of one memory die in the stack of memory dies are shown in
The semiconductor device 500 includes a memory array 518. The memory array 518 may be positioned in a die of the stack of memory dies. The memory array 518 is shown as including a plurality of memory banks. In the embodiment of
The semiconductor device 500 may employ a plurality of external terminals that include command and address (C/A) terminals coupled to a command and address bus to receive commands and addresses, and a CS signal, clock terminals to receive clocks CK and /CK, data terminals DQ to receive and provide data (e.g., via a multi-channel data bus), and power supply terminals to receive power supply potentials VDD, VSS, VDDQ, and VSSQ. The external terminals may be positioned on the substrate 523.
The clock terminals are supplied with external clocks CK and /CK that are provided to an input circuit 514. The external clocks may be complementary. The input circuit 514 generates an internal clock ICLK based on the CK and /CK clocks. The ICLK clock is provided to the command decoder 510 and to an internal clock generator 512. The internal clock generator 512 provides various internal clocks LCLK based on the ICLK clock. The LCLK clocks may be used for timing operation of various internal circuits. The internal data clocks LCLK are provided to the input/output circuit 522 to time operation of circuits included in the input/output circuit 522, for example, to data receivers to time the receipt of write data.
The C/A terminals may be supplied with memory addresses. The memory addresses supplied to the C/A terminals are transferred, via a command/address input circuit 502, to an address decoder 504. The address decoder 504 receives the address and supplies a decoded row address XADD to the row decoder 508 and supplies a decoded column address YADD to the column decoder 510. The address decoder 504 may also supply a decoded bank address BADD, which may indicate the bank of the memory array 518 containing the decoded row address XADD and column address YADD. In some embodiments, the address decoder 504 may also indicate a particular memory die of the stack of memory dies for activation. The C/A terminals may be supplied with commands. Examples of commands include timing commands for controlling the timing of various operations, access commands for accessing the memory, such as read commands for performing read operations and write commands for performing write operations, as well as other commands and operations. The access commands may be associated with one or more row address XADD, column address YADD, and bank address BADD to indicate the memory cell(s) to be accessed.
The commands may be provided as internal command signals to a command decoder 506 via the command/address input circuit 502. The command decoder 506 includes circuits to decode the internal command signals to generate various internal signals and commands for performing operations. For example, the command decoder 506 may provide a row command signal to select a word line and a column command signal to select a bit line.
The semiconductor device 500 may receive an access command which is a read command. When a read command is received, and a bank address, a row address and a column address (and optional die address) are timely supplied with the read command, read data is read from memory cells in the memory array 518 corresponding to the row address and column address. The read command is received by the command decoder 506, which provides internal commands so that read data from the memory array 518 is provided to the read/write amplifiers 520. The read data is output to outside from the data terminals DQ via the input/output circuit 522.
The semiconductor device 500 may receive an access command which is a write command. When the write command is received, and a bank address, a row address and a column address (and optional die address) are timely supplied with the write command, write data supplied to the data terminals DQ is written to a memory cells in the memory array 518 corresponding to the row address and column address. The write command is received by the command decoder 506, which provides internal commands so that the write data is received by data receivers in the input/output circuit 522. Write clocks may also be provided to the external clock terminals for timing the receipt of the write data by the data receivers of the input/output circuit 522. The write data is supplied via the input/output circuit 522 to the read/write amplifiers 520, and by the read/write amplifiers 520 to the memory array 518 to be written into the memory cell MC.
The power supply terminals are supplied with power supply potentials VDD and VSS. The power supply potentials VDD and VSS are supplied to an internal voltage generator circuit 524. The internal voltage generator circuit 524 generates various internal potentials VPP, VOD, VARY, VPERI, and the like based on the power supply potentials VDD and VSS supplied to the power supply terminals. The internal potential VPP is mainly used in the row decoder 508, the internal potentials VOD and VARY are mainly used in the sense amplifiers SAMP included in the memory array 518, and the internal potential VPERI is used in many peripheral circuit blocks.
The power supply terminals are also supplied with power supply potentials VDDQ and VSSQ. The power supply potentials VDDQ and VSSQ are supplied to the input/output circuit 522. The power supply potentials VDDQ and VSSQ supplied to the power supply terminals may be the same potentials as the power supply potentials VDD and VSS supplied to the power supply terminals in an embodiment of the disclosure. The power supply potentials VDDQ and VSSQ supplied to the power supply terminals may be different potentials from the power supply potentials VDD and VSS supplied to the power supply terminals in another embodiment of the disclosure. The power supply potentials VDDQ and VSSQ supplied to the power supply terminals are used for the input/output circuit 522 so that power supply noise generated by the input/output circuit 522 does not propagate to the other circuit blocks.
The method 700 may include receiving, at a clock signal splitter circuit of a memory subsystem, a clock signal via a first trace, at 710. The method 700 may include routing the clock signal to a second and a third trace in parallel (electrically), at 720. The clock signal splitter circuit may include the clock tee circuit 106 of
The method 700 may include receiving, at a first register clock driver of the memory subsystem, the clock signal from the second trace and first subchannel command and address information from a first command and address bus, at 730. The method 700 may include receiving, at a second register clock driver of the memory subsystem, the clock signal from the second trace and second subchannel command and address information from a second command and address bus, at 740. The first and/or second register clock drivers may include the register clock driver circuit 112(1) and/or the register clock driver circuit 112(2) of
The method 700 may include, responsive to the clock signal, providing the first command and address information to a first internal command and address bus via the first register clock driver and the second command and address information to a second internal command and address bus via the second register clock driver, at 750. The first internal command and address bus may include any of the C/A A1-A4 buses of
In some examples, the method 700 may further include performing a first memory access operation at one of a first group of memories of the memory subsystem responsive to the first subchannel command and address information provided to the first internal command and address bus, and performing a second memory access operation at one of a second group of memories of the memory subsystem responsive to the second subchannel command and address information provided to the second internal command and address bus. The first group of memories and/or the second group of memories may include the memories 114(1) and/or the memories 114(2) of
Of course, it is to be appreciated that any one of the examples, embodiments or processes described herein may be combined with one or more other examples, embodiments and/or processes or be separated and/or performed amongst separate devices or device portions in accordance with the present systems, devices and methods.
The foregoing description of certain embodiments is merely exemplary in nature and is in no way intended to limit the scope of the disclosure or its applications or uses. In the following detailed description of embodiments of the present systems and methods, reference is made to the accompanying drawings which form a part hereof, and which are shown by way of illustration specific embodiments in which the described systems and methods may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice presently disclosed systems and methods, and it is to be understood that other embodiments may be utilized and that structural and logical changes may be made without departing from the spirit and scope of the disclosure. Moreover, for the purpose of clarity, detailed descriptions of certain features will not be discussed when they would be apparent to those with skill in the art so as not to obscure the description of embodiments of the disclosure. The following detailed description is therefore not to be taken in a limiting sense, and the scope of the disclosure is defined only by the appended claims.
Finally, the above-discussion is intended to be merely illustrative of the present system and should not be construed as limiting the appended claims to any particular embodiment or group of embodiments. Thus, while the present system has been described in particular detail with reference to exemplary embodiments, it should also be appreciated that numerous modifications and alternative embodiments may be devised by those having ordinary skill in the art without departing from the broader and intended spirit and scope of the present system as set forth in the claims that follow. Accordingly, the specification and drawings are to be regarded in an illustrative manner and are not intended to limit the scope of the appended claims.
This application is a continuation application of U.S. patent application Ser. No. 17/360,964, filed Jun. 28, 2021, which claims the filing benefit of U.S. Provisional Application No. 63/047,417, filed Jul. 2, 2020. This application is incorporated by reference herein in its entirety and for all purposes.
Number | Date | Country | |
---|---|---|---|
63047417 | Jul 2020 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 17360964 | Jun 2021 | US |
Child | 17936048 | US |