US20170236572A1 - Systems and methods for individually configuring dynamic random access memories sharing a common command access bus - Google Patents
Systems and methods for individually configuring dynamic random access memories sharing a common command access bus Download PDFInfo
- Publication number
- US20170236572A1 US20170236572A1 US15/142,306 US201615142306A US2017236572A1 US 20170236572 A1 US20170236572 A1 US 20170236572A1 US 201615142306 A US201615142306 A US 201615142306A US 2017236572 A1 US2017236572 A1 US 2017236572A1
- Authority
- US
- United States
- Prior art keywords
- decoder
- command
- mrw
- dram
- mpc
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1694—Configuration of memory controller to different memory types
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/409—Read-write [R-W] circuits
- G11C11/4093—Input/output [I/O] data interface arrangements, e.g. data buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1678—Details of memory controller using bus width
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/4076—Timing circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/408—Address circuits
- G11C11/4082—Address Buffers; level conversion circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/408—Address circuits
- G11C11/4087—Address decoders, e.g. bit - or word line decoders; Multiple line decoders
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/409—Read-write [R-W] circuits
- G11C11/4096—Input/output [I/O] data management or control circuits, e.g. reading or writing circuits, I/O drivers or bit-line switches
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1072—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for memories with random access ports synchronised on clock signal pulse trains, e.g. synchronous memories, self timed memories
Definitions
- Computing devices comprising at least one processor coupled to a memory are ubiquitous.
- Computing devices may include personal computing devices (PCDs) such as desktop computers, laptop computers, portable digital assistants (PDAs), portable game consoles, tablet computers, cellular telephones, smart phones, and wearable computers.
- PCDs personal computing devices
- PDAs portable digital assistants
- DRAM dynamic random access memory
- DRAM memory devices may be configured and/or operate in accordance with various standards, such as one of the double data rate DDR or Low Power DDR (LPDDR) standards.
- LPDDR Low Power DDR
- DRAM memory devices have an IO (input/output) data bus of a specified width, such as 8 bits ( ⁇ 8), 16 bits ( ⁇ 16), 32 bits ( ⁇ 32), depending on the applicable standard and/or use to which the DRAM will be put.
- IO input/output
- Each DRAM memory device or die typically has its own data (DQ) bus. However, in some configurations or some operational modes, multiple DRAM memories or dies may share a common command address (CA) bus.
- DQ data bus
- CA common command address
- the shared or common CA bus prevents individual configuration of the separate DRAM memories or dies using mode register write (MRW) commands during initialization. Instead, all of the DRAM memories or dies are configured the same way due to MRW commands with the configuration information being sent to all of the DRAM memories or dies over the shared or common CA bus. This may result in less than optimal configurations for each of the different DRAM memories or dies.
- MRW mode register write
- Systems, methods, and computer programs are disclosed for implementing individual configuration of DRAM memories in communication with a system on chip (SoC), where the DRAM memories share a command address (CA) bus.
- the shared command access (CA) bus in communication with a first DRAM device and a second DRAM device is provided.
- a first command from a system on a chip (SoC) in communication with the first DRAM device and the second DRAM device is received at the first DRAM device.
- SoC system on a chip
- a decoder of the first DRAM device determines whether to mask a mode register write (MRW) for the first DRAM device.
- MMW mode register write
- a second command from the SoC containing configuration information is received at the first DRAM device and the second DRAM device via the shared CA bus.
- the second command comprises a MRW. If the determination by the decoder was to mask the received MRW, the second command is ignored at the first DRAM device Responsive to the. If the determination by the decoder was to not mask the received MRW, the second command containing the configuration information is executed by the first DRAM device.
- Another embodiment is a computer system for a computing device (PCD), the system comprising a system on a chip (SoC).
- SoC system on a chip
- the system also comprising a first DRAM device in communication with the SoC via a first unique data (DQ) bus and over a shared command access (CA) bus, where the first DRAM device includes a first decoder.
- DQ unique data
- CA shared command access
- the system further comprising a second DRAM device in communication with the SoC over a second unique DQ bus and over the shared CA bus.
- the first DRAM device is configured to: receive a first command from the SoC; determine with the first decoder whether to mask a mode register write (MRW) for the first DRAM device in response to the first command received from the SoC; receive via the shared. CA bus, a second command from the SoC containing configuration information, wherein the second command comprises a MRW. If the determination by the first decoder was to mask the received. MRW, the second command is ignored by the first DRAM device. If the determination by the first decoder was to not mask the MRW, the second command containing configuration information is executed by the first DRAM device.
- MRW mode register write
- FIG. 1 is a block diagram of an embodiment of a system for implementing individual configuration of DRAM memory devices or dies that share a common CA bus, for a DRAM memory in communication with a system on chip (SoC) of an exemplary computing device;
- SoC system on chip
- FIG. 2A is a functional diagram showing the interaction of portions of the system of FIG. 1 when the DRAM memory is in a first configuration or mode of operation;
- FIG. 2B is a functional diagram showing the interaction of portions of the system of FIG. 1 when the DRAM memory is in a second configuration or mode of operation;
- FIG. 3A is a block diagram illustrating aspects of an embodiment of a DRAM die that may be used in the system of FIG. 1 and/or the method of FIG. 4A ;
- FIG. 3B is a block diagram illustrating aspects of another implementation of a DRAM die that may be used in the system of FIG. 1 and/or the method of FIG. 4A ;
- FIG. 3C is a block diagram illustrating aspects of an alternative embodiment to FIGS. 3A-3B for a DRAM die that may be used in the system of FIG. 1 and/or the methods of FIG. 4B or 4C ;
- FIG. 4A is a flowchart illustrating an embodiment of a method for providing individual configuration of DRAM memories or dies that share a common CA bus that may be implemented in a system such as that shown in FIG. 1 ;
- FIG. 4B is a flowchart illustrating an alternative embodiment of a method for providing individual configuration of DRAM memories or dies that share a common CA bus that may be implemented in a system such as that shown in FIG. 1 ;
- FIG. 4C is a flowchart illustrating another implementation of the alternative embodiment of the method of FIG. 4B ;
- FIG. 5 is a block diagram of an exemplary computing device in which the system of FIG. 1 or method of FIG. 4 may be implemented.
- an “application” or “image” may also include files having executable content, such as: object code, scripts, byte code, markup language files, and patches.
- an “application” referred to herein may also include files that are not executable in nature, such as documents that may need to be opened or other data files that need to be accessed.
- content may also include files having executable content, such as: object code, scripts, byte code, markup language files, and patches.
- content referred to herein, may also include files that are not executable in nature, such as documents that may need to be opened or other data files that need to be accessed.
- a component may be, but is not limited to being, a process running on a processor, a processor, an object, an executable, a thread of execution, a program, and/or a computer.
- an application running on a computing device and the computing device may be a component.
- One or more components may reside within a process and/or thread of execution, and a component may be localized on one computer and/or distributed between two or more computers.
- these components may execute from various computer readable media having various data structures stored thereon.
- the components may communicate by way of local and/or remote processes such as in accordance with a signal having one or more data packets (e.g., data from one component interacting with another component in a local system, distributed system, and/or across a network such as the Internet with other systems by way of the signal).
- computing device is used to mean any device implementing a processor (whether analog or digital) in communication with a memory, such as a desktop computer, gaming console, or server.
- a “computing device” may also be a “portable computing device” (PCD), such as a laptop computer, handheld computer, or tablet computer.
- PCD portable computing device
- the terms PCD, “communication device,” “wireless device,” “wireless telephone”, “wireless communication device,” and “wireless handset” are used interchangeably herein.
- 3G third generation
- 4G fourth generation
- LTE Long-Term Evolution
- a portable computing device may also include a cellular telephone, a pager, a smartphone, a navigation device, a personal digital assistant (PDA), a portable gaming console, a wearable computer, or any portable computing device with a wireless connection or link.
- PDA personal digital assistant
- FIG. 1 illustrates an embodiment of a system 100 including a system-on-a-chip (SoC) electrically coupled to a DRAM 130 containing multiple memory devices or dies, such as Die 0134 a , Die 1 , 134 b , Die 2 134 c , and DieN 134 n (collectively referred to as dies 134 a - 134 n ).
- SoC system-on-a-chip
- the system 100 may be used to individually configure the devices or dies 134 a - 134 n in the DRAM 130 , even when the dies 134 a - 134 n share a common CA bus (see FIG. 2B ).
- System 100 may be implemented in any computing device, including a PCD. As illustrated in the embodiment of FIG. 1 , the system 100 comprises the SoC 102 electrically coupled to an external or “off chip” DRAM 130 .
- the SoC 102 comprises various on-chip components, including a central processing unit (CPU) 106 , a memory controller 120 , a cache 110 memory, and a system memory 112 , all interconnected via a SoC bus 116 .
- the SoC 102 may also include one or more additional processors like CPU 114 also connected to the SoC bus 16 .
- the CPU 106 may be controlled by or execute an operating system (OS) 108 that causes the CPU 106 to operate or execute various applications, programs, or code stored in one or more memory of the computing device.
- OS operating system
- the CPU 106 and CPU 114 may be the same type of processor, while in other embodiments the CPU 114 may be a digital signal processor (DSP), a graphics processing unit (GPU), an analog processor, or other type of processor different from CPU 106 executing the OS 108 .
- DSP digital signal processor
- GPU graphics processing unit
- analog processor or other type of processor different from CPU 106 executing the OS 108 .
- the cache 110 memory of FIG. 1 may be an L2, L3, or other desired cache. Additionally the cache 110 may be dedicated to one processor, such as CPU 106 , or may be shared among multiple processors in various embodiments, such as the CPU 106 and CPU 114 illustrated in FIG. 1 . In an embodiment, the cache 110 may be a last level cache (LLC) or the highest (last) level of cache that the CPU 106 calls before accessing a memory like memory device 130 .
- System memory 112 may be a static random access memory (SRAM), a read only memory (ROM) 112 , or any other desired memory type, including a removable memory such as an SD card.
- the memory controller 120 of the SoC 102 is electrically connected to the SoC bus 116 and is also connected to the DRAM 130 by a memory access channel 124 .
- the memory access channel 124 may be a serial channel or a parallel channel in various embodiments.
- Memory controller 120 manages the data read from and/or stored to the various memories accessed by the SoC 102 during operation of the system 100 , including DRAM 130 .
- Memory controller 120 may include other portions or components not illustrated FIG. 1 , such as a read and/or write buffer, control logic, etc., to allow memory control 120 to control the data transfer over the memory access channel 124 .
- some or all of the components of the memory controller 120 may be implemented in hardware, software, or firmware as desired.
- the memory access channel coupling DRAM 130 to the SoC 102 may be any desired width. Data and/or instructions are transferred between CPU 106 (or another component of the SoC 102 ) and a memory device such as DRAM 130 over the access channel 124 . A variety of standards, protocols, or technologies may be used to perform the transfer of the data and instructions, and this disclosure is not limited to any particular data transfer standard.
- DRAM 130 may be comprised of any number of devices or dies, such as dies 134 a - 134 n illustrated in FIG. 1 . Dies 134 a - 134 n may be of the same or different sizes or capacities. Each DRAM device or die will have an IO (input/output) data bus of a specified width, such as 8 bits ( ⁇ 8), 16 bits ( ⁇ 16), 32 bits ( ⁇ 32), depending on the applicable standard and/or the use for which the DRAM 130 or PCD is intended. Each device or die of the DRAM 130 typically has its own data (DQ) bus to read and write data to the registers of the device/die (see FIGS. 2A-2B ).
- DQ data
- the DRAM 130 illustrated in FIG. 1 may be a double data rate synchronous dynamic (DDR) RAM according to one of the DDRx or LPDDRx (Low Power DDR) standards. Additionally, DRAM 130 includes a controller 132 coupled to each of the dies 134 a - 134 n to coordinate and control transfer of data and instructions to and from each of die 134 a - 134 n . As will be understood, the DRAM 130 may be a dual in-line memory module (DIMM) comprised one or more memory arrays arranged within the DRAM 130 to store data. These memory arrays may be arranged in ranks in some embodiments as would be understood.
- DIMM dual in-line memory module
- DRAM 130 may be a LPDDR4 ⁇ 16 memory with a ⁇ 16 access channel 124 .
- each die 134 a - 134 n of the DRAM 130 will have its own DQ bus and its own CA bus (see FIG. 2A ).
- DRAM 130 may be, or may operate in some operational modes as, a LPDDR4 ⁇ 8 memory. In such embodiments or operational modes, each die 134 a - 134 n may have its own DQ bus, but the dies 134 a - 134 n may share a common CA bus (see FIG. 2B ).
- Other types and configurations of the DRAM 130 may be implemented in the system 100 in other embodiments.
- the elements and arrangement of elements of the system 100 , the SoC 102 and/or the DRAM 130 in FIG. 1 are illustrative. In other embodiments, one or more of the system 100 , the SoC 102 and/or DRAM 130 may contain more or fewer components than illustrated in FIG. 1 . Additionally, in some embodiments, the various components of the system 100 , SoC 102 and/or DRAM 130 may be configured differently than illustrated in FIG. 1 .
- FIGS. 2A-2B functional diagrams showing the interaction of portions of the system 100 of FIG. 1 are illustrated.
- each device or die illustrated as Die 0 134 a and Die 1 134 b
- Die 0 134 a and Die 1 134 b may have its own CA bus, 144 a and 144 b respectively.
- a functional diagram 200 A of portions of the system 100 for such a configuration/mode of operation of DRAM 130 is illustrated in FIG. 2A .
- Die 0 134 a will receive control commands, such as mode register write (MRW) commands, over a CA bus 144 a dedicated to Die 0 134 a .
- Die 1 134 b can receive separate or different control commands over its own dedicated CA bus 144 b.
- MMW mode register write
- These separate or different control commands may be sent from outside the DRAM 130 , such as from memory controller 120 of SoC 102 for instance. Each separate command will only be received by the intended die 134 a or 134 b .
- the separate CA buses 142 a and 142 b allow each of Die 0 134 a and Die 1 134 b to be separately controlled and configured.
- these programmable settings may include a voltage reference value (Vref) or any other desired setting for the Die 0134 a .
- the appropriate values for such programmable settings can vary from Die 0 134 a to Die 1 134 b , and the appropriate may depend on a variety of factors unique to each die 134 a - 134 b .
- Such individual configuration of Die 0 134 a and Die 1134 b is available when each die 134 a and 134 b has its own dedicated CA bus 144 a and 144 b , respectively, as illustrated in FIG. 2A .
- multiple devices or dies of a DRAM 130 may share a common CA bus.
- An example of such configuration/mode of operation is illustrated in FIG. 2B , where Die 0 134 a , Die 1 134 b , and DieN 134 n (collectively referred to as dies 134 a - 134 n ) share a common CA bus 144 .
- dies 134 a - 134 n share a common CA bus 144 .
- Die 0 134 a and Die 1 134 b are illustrated in FIG. 2B as ⁇ 8 dies, one or more of Die 0 134 , Die 1 134 b and/or DieN 134 n may have a different IO width, such as ⁇ 32, etc.
- dies 134 a - 134 n share a common CA bus 144 , dies 134 a - 134 n are not individually controllable or configurable using typical commands over the shared CA bus 144 . Any control command, such as an MRW command sent over the shared CA bus 144 , is received and implemented by all of the dies 134 a - 134 n .
- the system and methods of the present disclosure allow for the dies 134 a - 134 n to be separately and/or individually configured, even though dies 134 a - 134 n share a common CA bus 144 . In this manner, each die 134 a - 134 n may be individually configured without the need for separate CA buses as illustrated in FIG. 2A .
- a DRAM 130 is required to use a shared CA bus 144 to support an operational mode (such as the “byte mode” of operation in the LPR4 standard), or if it is desired to avoid the footprint, overhead, etc. of a separate CA bus 144 on each die 134 a , 134 b , 134 n , the present disclosure still allows for individual configuration of dies 134 a - 134 n.
- an operational mode such as the “byte mode” of operation in the LPR4 standard
- FIGS. 3A-3B are block diagrams illustrating embodiments of a DRAM die, Die 0 134 a that may be used in the system of FIG. 1 .
- Die 0 134 a shares a common CA bus 144 with other dies, such as Die 1 134 b and DieN 134 n as illustrated in FIG. 2B .
- Die 0 134 a shares the common CA bus 144 with Die 0 134 a , such as Die 1 134 b and DieN 134 n illustrated in FIG. 2B .
- Die 0 134 a includes a decoder 158 that allows individual programming, configuration, or control of Die 0 134 a using information received over the DQ bus 146 a unique to Die 0 134 a .
- such programming, configuration, or control of Die 0 134 a using the decoder 158 may be accomplished with just information received over the DQ bus 146 a .
- such programming, configuration, or control of Diet) 134 a using the decoder 158 may be accomplished with information received over the DQ bus 146 a in combination with information received over the shared CA bus 144 .
- Die 0 134 a includes a command decoder 150 that receives typical command signals and a clock signal CK 160 over the shared CA bus 144 .
- Command decoder 150 may be implemented in hardware, software, or a combination of hardware and software as desired.
- Die 0 134 a also includes a mode register block 154 in communication with the command decoder 150 .
- the command decoder 150 When the command decoder 150 receives a MRW command over the shared CA bus 144 , the command decoder 150 either forwards the MRW command to the mode register block 154 , or sends a signal 152 to the mode register block 154 indicating that the MRW command has been received.
- the command decoder 150 also sends data associated with that MRW command, such as information identifying a setting of Die 0 134 a to be configured and the value for the setting.
- Die 0 134 a also includes a buffer, such as MPC FIFO 156 that receives information and a pulse signal (DQS 162 ) over the unique DQ bus 146 a for Die 0 134 a .
- MPC FIFO 156 may be implemented in hardware, and may include or may be associated with logic to control the operation of MPC FIFO 156 .
- MPC FIFO 156 in the embodiment of FIG. 3A is a first-in-first-out (fifo) buffer, however other buffers may be used as desired.
- command decoder 150 may all be coupled to decoder 158 .
- decoder 158 determines whether to mask MRW commands received Die 0 134 a . If decoder 158 determines to mask MRW commands received by Die 0 134 a , decoder 158 may send a mask signal 155 to command decoder 150 . The mask signal 155 instructs command decoder 150 to disregard the next MRW command received, or to disregard all subsequent MRW commands until another signal is sent from the decoder 158 .
- decoder 158 determines not to mask MRW commands received by Die 0 134 a . If, on the other hand, decoder 158 determines not to mask MRW commands received by Die 0 134 a , no mask signal 155 is sent from the decoder 158 . Subsequent MRW command(s) received over the shared CA bus 144 will be implemented by Die 0 134 a . As a result, any configuration information in these subsequent MRW commands will be set at Die 0 134 a . At the same time, the subsequent MRW commands may instead be ignored by the other dies 134 b - 134 n (see FIG. 2B ) that are using the shared CA bus 144 .
- each die 134 a - 134 n may selectively mask MRW commands, allowing each of die 134 a - 134 n to be individually configured despite dies 134 a - 134 n all sharing a common CA bus 144 .
- Decoder 158 of Die 0 134 of this embodiment may be implemented and/or operated in a variety of ways as desired.
- a command may be received at the command decoder 150 of Die 0 134 a via the shared or common CA bus 144 .
- the command may be a MRW command or another command that causes command decoder 150 to send a signal 152 to the mode register block 154 .
- the command received at the command decoder 150 may include a bit or other information that causes the command decoder 150 to send the signal 152 to the mode register block 154 .
- the command decoder 150 may include logic to recognize the received command and cause the signal 152 to be generated and sent to the mode register block 154 .
- the mode register block 154 Upon receiving the signal 152 , the mode register block 154 causes a wake-up/enable signal 153 to be sent to the decoder 158 .
- the mode register block 154 may include logic to recognize the received signal 152 from the command decoder 150 and to generate and send the wake-up/enable signal 153 to the decoder 158 .
- the wake-up/enable signal 153 is configured to awaken, enable, and/or cause the decoder 158 to become active.
- awakening the decoder 158 may comprise causing the decoder 158 to poll the MPC FIFO 156 or otherwise look for information from the MPC FIFO 156 .
- the decoder 158 may be coupled to an output of the MPC FIFO 156 .
- information is sent to Die 0 134 a over the DQ bus 146 a to MPC FIFO 156 .
- the DQ bus 146 a is unique to Die 0 .
- the received information is provided from MPC FIFO 156 to decoder 158 , such as by signal 157 .
- Decoder 158 is configured to recognize or determined from the received signal 157 whether to mask MRW commands for Die 0 134 a .
- the information received over the DQ bus 146 a may include a masking bit, and decoder 158 may include logic to recognize whether the received masking bit is “on” or “off” and accordingly determine whether to mask MRW commands for Die 0 134 a .
- the information received over the DQ bus 146 a may include a different instruction or information that is recognized by decoder 158 and from which decoder 158 can determine whether to mask MRW commands for Die 0 134 a.
- decoder 158 determines to mask MRW commands received by Die 0 134 a , decoder 158 send a mask signal 155 to the command decoder 150 in the implementation of FIG. 3A .
- the mask signal 155 may instruct command decoder 150 to disregard the next MRW command received.
- the mask signal 155 may cause command decoder 150 to disregard all subsequent MRW commands until a second mask signal 155 is sent from the decoder 158 .
- the second mask signal 155 may be generated by the decoder 158 in response to a second instruction or command received by the MK FIFO 156 over the DQ 146 a bus. This second instruction may be provided from the MPC FIFO 156 to the decoder 158 and understood by the decoder 158 to be an instruction to stop masking MRW commands, causing the decoder to generate second mask signal 155 .
- the command decoder 150 receives the initial mask signal 155 indicating that MRW commands should be masked, subsequent MRW command(s) received over the shared CA bus 144 will not be implemented by Die 0 134 a . As a result, any configuration information in the subsequent MRW command(s) will be ignored by Die 0 134 a . Instead, the subsequent MRW commands may be implemented by one or more other dies 134 b - 134 n (see FIG. 2B ) using the shared CA bus 144 , if one or more of those other dies 134 b - 134 n are not masked.
- each of dies 134 a - 134 n allows each of dies 134 a - 134 n to have MRW commands unmasked in turn, such that each of dies 134 a - 134 n may be individually configured by MRW commands over the shared or common CA bus 144 .
- FIG. 3B A second implementation of Die 0 134 a is illustrated in FIG. 3B .
- the decoder 158 may be implemented as a write level phase detector.
- a command may be received at the command decoder 150 of Die 0 134 a via the shared or common CA bus 144 .
- the command may be a MRW command or another command that causes command decoder 150 to send a signal 152 to the mode register block 154 .
- the command received at the command decoder 150 may include a bit or other information that causes the command decoder 150 to send the signal 152 to the mode register block 154 .
- the command decoder 150 may include logic to recognize the received command and cause the signal 152 to be generated and sent to the mode register block 154 .
- the mode register block 154 Upon receiving the signal 152 , the mode register block 154 causes a wake-up/enable signal 153 to be sent to the decoder/phase detector 158 .
- a DQS pulse 162 received by Die 0 134 a via the DQ bus 146 a is received by the decoder/phase detector 158 .
- decoder/phase detector 158 is configured to recognize or determine whether to mask MRW commands. Once the decoder/phase detector 158 makes this determination it sends the mask signal 155 to the command decoder 150 if the determination is to mask MRW commands, as discussed above for FIG. 3A .
- decoder 158 contains or implements logic to enable Die 0 134 a to set various configurations from information initially received over the DQ bus 146 a unique to Die 0134 a .
- an instruction received at the MPC FIFO 156 over the DQ bus 146 a causes the decoder 158 to act, without the need for a previous wake up/enable/alert signal to the decoder 158 (see FIGS. 3A-3B ).
- Information received at the MPC FIFO 156 over the DQ bus 146 a such as an MPC command may be recognized by the decoder 158 as an instruction.
- various bits are “reserved” and one or more of such reserved bits may be defined as an instruction recognized by the decoder 158 in this embodiment.
- instructions or information received over the DQ bus 146 a other than the MPC command could also be used.
- a reserve bit in the MPC command may be received over the DQ bus 146 a and provided to decoder 158 .
- decoder 158 is configured to recognize or determine whether to mask MRW commands received over the shared CA bus 144 .
- the decoder 158 sends the mask signal 155 to the command decoder 150 if the determination is to mask MRW commands as discussed above for FIGS. 3A-3B .
- a reserve bit in the MPC command may be received over the DQ bus 146 a and provided to decoder 158 .
- information or data about the desired configurations for Die 0 134 a may also be provided over the DQ bus 146 a .
- decoder 158 is configured to recognize or determine that configuration instructions and/or information have been received over the DQ bus 146 a .
- the decoder 158 is further configured to send an instruction and/or the configuration information via signal 155 to the command decoder 150 .
- the command decoder 150 is configured to send the appropriate command, such as a MRW command to mode register block 154 to set the desired configurations for Die 0 134 a .
- information received at the decoder 158 from the DQ bus 146 a causes the configurations for Die 0 134 a to be set, without the need to mask any MRW commands received over the CA bus 144 .
- Method 400 A begins in block 402 where a command, such as a mode register write (MRW) command is sent to a DRAM device or die to enable a decoder located on the DRAM device.
- the DRAM device may be Diet) 134 a illustrated in FIGS. 1, 2B , and/or 3 A.
- DRAM device/Die 0 134 a shares a common CA bus 144 with other dies such as dies 134 b - 134 n (see FIG. 2B ).
- the command in block 402 may be sent from outside the DRAM device/Die 0 134 a , such as from a memory controller 120 of SoC 102 in communication with the DRAM device/Die 0 134 a (see FIGS. 1 and 2B ).
- the command of block 402 is received by the DRAM device/Die 0 134 a over the shared or common CA bus 144 , such as at a command decoder 150 (see FIG. 3A-3B ).
- the command decoder 402 may then cause a mode register block to send a wake-up/enable signal 153 to the decoder 158 .
- an instruction such as a multi-purpose command (MPC) write fifo command is sent to the DRAM device/Die 0 134 a .
- This instruction may also be sent from outside the DRAM device/Die 0 134 a , such as from memory controller 120 of SoC 102 .
- This instruction is received over the unique DQ bus 146 a of the DRAM device/Die 0 134 a .
- the instruction may contain information used to determine whether to mask subsequent MRW commands.
- the instruction may comprise data or information from which a decoder 158 may recognize or determine whether to mask MRW commands for DRAM device/Die 0 134 a (see FIG. 3A ).
- the instruction may comprise a DQS pulse 162 from which decoder 158 may recognize or determine whether to mask MRW commands for DRAM device/Die 0 134 a (see FIG. 3B ).
- MRW commands are masked at DRAM device/Die 0 134 a .
- Masking the MRW commands may be implemented by decoder 158 of DRAM device/Die 0 134 a determining from the instruction received over the DQ bus 146 a whether to mask MRW commands. If the decoder 158 determines to mask MRW commands, the decoder may send a mask signal 155 to the command decoder 150 .
- an MRW command to program configurable settings in a second DRAM is sent over the common or shared CA bus 144 .
- the configurable settings may be a Vref setting or any other configurable setting that optimizes performance of the individual DRAM device/Die 1 134 b , such as by minimizing error rates.
- DRAM device/Die 1 134 b receives the MRW command over the shared/common CA bus 144 .
- DRAM device/Die 1 134 b has not been masked, so the settings for DRAM device/Die 1 134 b are programmed in accordance with the MRW command.
- command decoder 150 may send a signal 152 to mode register block 154 to implement the configurations/settings.
- DRAM device/Die 0 134 a also receives the MRW command over the shared/common CA bus 144 .
- MRW commands have been masked for DRAM device/Die 0 134 a , so the MRW command is ignored by this DRAM device.
- the settings/configurations—intended for separate DRAM device/Die 1 134 b are not implemented by DRAM device/Die 0 134 a.
- the decoder 158 of DRAM device/Die 0 134 a is cleared and/or the MRW commands unmasked in DRAM device/Die 0 134 a .
- This may comprise a second instruction sent from outside the DRAM device, such as from memory controller 120 of SoC 102 .
- This second instruction is received over the DQ bus 162 a of DRAM device/Die 0 134 a and may comprise a second MPC write command that is received at the MPC FIFO 156 and/or decoder 158 .
- This second instruction may in an embodiment cause decoder 158 to send another mask signal 155 to the command decoder 150 to unmask future MRW commands.
- block 410 may comprise the command decoder 150 sending a signal to mode register block 154 , which in turn sends a signal 153 to clear the decoder 158 and/or cause the decoder 158 to cease looking for instructions from the DQ bus 146 a.
- an MPC read fifo command is sent to DRAM device/Die 0 134 a to clear the MPC FIFO 156 .
- This command in block 412 may be sent from outside the DRAM device/Die 0 134 a , such as by memory controller 120 of the SoC 102 .
- This command may be received at DRAM device/Die 0 134 a via DQ bus 146 a .
- the steps of blocks 402 - 412 may be repeated for each DRAM device such as dies 134 a - 134 n ( FIG. 2B ). In this manner each of dies 134 a - 134 n may have their configurations/settings programmed individually, despite dies 134 a - 134 n sharing a common CA bus 144 .
- FIG. 4B is a flowchart illustrating an alternative method 400 B for providing individual configuration of DRAM memories or dies that share a common CA bus.
- an instruction such as a multi-purpose command (MPC) write fifo command is sent to the DRAM device, such as Die 0 134 a (see FIGS. 1, 2B, and 3C ).
- This instruction may be sent from outside the DRAM device/Die 0 134 a , such as from memory controller 120 of SoC 102 ( FIGS. 1 and 2B ).
- This instruction may be received over the unique DQ bus 146 a of the DRAM device/Die 0 134 a .
- the instruction may contain information used determine whether to mask subsequent MRW commands.
- the instruction may comprise data or information from which the determination whether to mask subsequent MRW commands may be made.
- the instruction may comprise a DQS pulse 162 from which the determination whether to mask subsequent MRW commands may be made.
- MRW commands are masked the DRAM device/Die 0 134 a similar to block 406 discussed above for FIG. 4A .
- Masking the MRW commands may be implemented by the decoder 158 of DRAM device/Die 0 134 a determining from the instruction received over the DQ bus 146 a whether to mask MRW commands. If the decoder 158 determines to mask MRW commands, the decoder may send a mask signal 155 to the command decoder 150 as discussed above.
- a MRW command to program configurable settings in a second DRAM is sent over the common or shared CA bus 144 .
- the configurable settings may be a Vref setting or any other configurable setting that optimizes performance of the individual DRAM device/Die 1 134 b , such as by minimizing error rates.
- DRAM device/Die 1 134 b receives the MRW command over the shared/common CA bus 144 .
- DRAM device/Die 1 134 b has not been masked, so the settings for DRAM device/Die 1 134 b are programmed in accordance with the MRW command.
- command decoder 150 of DRAM device/Die 1 134 b may send a signal 152 to mode register block 154 to implement the configurations/settings for DRAM device/Die 1 134 b .
- DRAM device/Die 0 134 a also receives the MRW command over the shared/common CA bus 144 .
- DRAM device/Die 0 134 a has been masked, so the MRW command is ignored by this DRAM device.
- the decoder 158 of DRAM device/Die 0 134 a is cleared and/or the MRW commands unmasked in DRAM device/Die 0 134 a , similar to block 410 discussed above for FIG. 4A .
- This may comprise a second instruction sent from outside the DRAM device, such as from memory controller 120 of SoC 102 .
- This second instruction is received over the DQ bus 162 a of DRAM device/Die 0 134 a and may comprise a second MPC write command that is received at the MPC FIFO 156 and/or decoder 158 .
- This second instruction may in an embodiment case the decoder 158 to send another mask signal 155 to the command decoder 150 to unmask future MRW commands.
- block 456 may comprise the command decoder 150 sending a signal to mode register block 154 , which in turn sends a signal 153 to clear the decoder 158 and/or cause the decoder 58 to cease looking for instructions from the DQ bus 146 a.
- an MPC read fifo command is sent to DRAM device/Die 0 134 a to clear the MPC FIFO 156 .
- This command in block 458 may be sent from outside the DRAM device/Die 0 134 a , such as by memory controller 120 of the SoC 102 .
- This command may be received at DRAM device/Die 0 134 a via DQ bus 146 a .
- the steps of blocks 450 - 458 may be repeated for each DRAM device such as dies 134 a - 134 n ( FIG. 2B ). In this manner each of dies 134 a - 134 n may have their configurations/settings programmed individually, despite dies 134 a - 134 n sharing a common CA bus 144 .
- FIG. 4C is a flowchart illustrating another implementation of the alternative embodiment of the method 400 B of FIG. 4B .
- method 400 C begins with block 470 where an instruction, such as a multi-purpose command (MPC) write fifo command is sent to the DRAM device/Die 0 134 a .
- MPC multi-purpose command
- This instruction is sent from outside the DRAM device, such as by memory controller 120 of SoC 102 .
- This instruction may be received over the unique DQ bus 146 a of the DRAM device/Die 0 134 a .
- the instruction may contain information to enable the decoder 158 to operate, without need for additional instructions or commands over the shared or common CA bus 144 , and without the need for any previous wake up/enable/alert signal to the decoder 158 (see FIGS. 3A-3B ).
- Information received over the DQ bus 146 a such as an MPC command may be recognized by the decoder 158 as an instruction.
- various bits are “reserved” and such reserved bits may be defined as an instruction recognized by the decoder 158 in this embodiment.
- blocks 470 and 472 may not be separate steps, but instead may comprise one sending of instructions and information to the DRAM device/Die 0 134 a over the DQ bus 146 a
- the desired configurations/settings of the DRAM device/Die 0 134 a are programmed.
- the decoder 158 of DRAM device/Die 0 134 a is able to recognize that configuration instructions and/or information of blocks 470 / 472 have been received over the DQ bus 146 a .
- Programming the configurations in block 474 may comprise the decoder 158 recognizing the received instructions, and sending an instruction and/or the configuration information via signal 155 to the command decoder 150 .
- the command decoder 150 may send the appropriate command, such as a MRW command to mode register block 154 , to set the desired configurations for DRAM device/Die 0 134 a.
- the decoder 158 of DRAM device/Die 0 134 a is cleared. This may comprise a second instruction sent from outside the DRAM device, such as from memory controller 120 of SoC 102 . This second instruction is received over the DQ bus 162 a of DRAM device/Die 0 134 a and may comprise a second MPC write command that is received at the MPC FIFO 156 and/or decoder 158 . The decoder 158 may recognize this second instruction as an instruction to disable and/or cease looking for instructions from the DQ bus 146 a.
- this second instruction may cause the decoder 158 to send a signal 155 to the command decoder 150 .
- the command decoder 150 may then send a signal to mode register block 154 , which in turn may send a signal 153 to decoder 158 to clear the decoder 158 and/or cause the decoder 158 to cease looking for instructions from the DQ bus 146 a.
- an MPC read fifo command is sent to DRAM device/Die 0 134 a to clear the MPC FIFO 156 .
- This command in block 478 may be sent from outside the DRAM device/Die 0 134 a , such as by memory controller 120 of the SoC 102 .
- This command may be received at DRAM device/Die 0 134 a via DQ bus 146 a .
- the steps of blocks 470 - 478 may be repeated for each DRAM device such as dies 134 a - 134 n ( FIG. 2B ). In this manner each of dies 134 a - 134 n may have their configurations/settings programmed individually, despite dies 134 a - 134 n sharing a common CA bus 144 .
- FIG. 5 illustrates the system 100 incorporated in an exemplary PCD 600 .
- the SoC 102 may include a multicore CPU 602 .
- the multicore CPU 602 may include a zeroth core 610 , a first core 612 , and an Nth core 614 .
- One of the cores may comprise, for example, a graphics processing unit (GPU) with one or more of the others comprising the CPU.
- GPU graphics processing unit
- a display controller 628 and a touch screen controller 630 may be coupled to the CPU 602 .
- the touch screen display 606 external to the on-chip system 102 may be coupled to the display controller 628 and the touch screen controller 630 .
- FIG. 5 further shows that a video encoder 634 , e.g., a phase alternating line (PAL) encoder, a sequential color a memoire (SECAM) encoder, or a national television system(s) committee (NTSC) encoder, is coupled to the multicore CPU 602 .
- a video amplifier 636 is coupled to the video encoder 634 and the touch screen display 606 .
- a video port 638 is coupled to the video amplifier 636 .
- a universal serial bus (USB) controller 640 is coupled to the multicore CPU 602 .
- a USB port 642 is coupled to the USB controller 640 .
- Memory 112 and a subscriber identity module (SIM) card 646 may also be coupled to the multicore CPU 602 .
- SIM subscriber identity module
- a digital camera 648 may be coupled to the multicore CPU 602 .
- the digital camera 648 is a charge-coupled device (CCD) camera or a complementary metal-oxide semiconductor (CMOS) camera.
- CCD charge-coupled device
- CMOS complementary metal-oxide semiconductor
- a stereo audio coder-decoder (CODEC) 650 may be coupled to the multi core CPU 602 .
- an audio amplifier 652 may be coupled to the stereo audio CODEC 650 .
- a first stereo speaker 654 and a second stereo speaker 656 are coupled to the audio amplifier 652 .
- FIG. 5 shows that a microphone amplifier 658 may be also coupled to the stereo audio CODEC 650 .
- a microphone 660 may be coupled to the microphone amplifier 658 .
- a frequency modulation (FM) radio tuner 662 may be coupled to the stereo audio CODEC 650 .
- an FM antenna 664 is coupled to the FM radio tuner 662 .
- stereo headphones 666 may be coupled to the stereo audio CODEC 650 .
- FM frequency modulation
- FIG. 5 further illustrates that a radio frequency (RF) transceiver 668 may be coupled to the multicore CPU 602 .
- An RF switch 670 may be coupled to the RF transceiver 668 and an RF antenna 672 .
- a keypad 604 may be coupled to the multicore CPU 602 .
- a mono headset with a microphone 676 may be coupled to the multicore CPU 602 .
- a vibrator device 678 may be coupled to the multicore CPU 602 .
- FIG. 5 also shows that a power supply 680 may be coupled to the on-chip system 102 .
- the power supply 680 is a direct current (DC) power supply that provides power to the various components of the PCD 600 that require power.
- the power supply is a rechargeable DC battery or a DC power supply that is derived from an alternating current (AC) to DC transformer that is connected to an AC power source.
- DC direct current
- FIG. 5 further indicates that the PCD 600 may also include a network card 688 that may be used to access a data network, e.g., a local area network, a personal area network, or any other network.
- the network card 688 may be a Bluetooth network card, a WiFi network card, a personal area network (PAN) card, a personal area network ultra-low-power technology (PeANUT) network card, a television/cable/satellite tuner, or any other network card well known in the art.
- the network card 688 may be incorporated into a chip, i.e., the network card 688 may be a full solution in a chip, and may not be a separate network card 688 .
- the memory 130 , touch screen display 606 , the video port 638 , the USB port 642 , the camera 648 , the first stereo speaker 654 , the second stereo speaker 656 , the microphone 660 , the FM antenna 664 , the stereo headphones 666 , the RF switch 670 , the RF antenna 672 , the keypad 674 , the mono headset 676 , the vibrator 678 , and the power supply 680 may be external to the on-chip system 102 or “off chip.”
- the functions described may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored on or transmitted as one or more instructions or code on a computer-readable medium.
- Computer-readable media include both computer storage media and communication media including any medium that facilitates transfer of a computer program from one place to another.
- a storage media may be any available media that may be accessed by a computer.
- such computer-readable media may comprise RAM, ROM, EEPROM, NAND flash, NOR flash, M-RAM, P-RAM, R-RAM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium that may be used to carry or store desired program code in the form of instructions or data structures and that may be accessed by a computer.
- any connection is properly termed a computer-readable medium.
- the software is transmitted from a website, server, or other remote source using a coaxial cable, fiber optic cable, twisted pair, digital subscriber line (“DSL”), or wireless technologies such as infrared, radio, and microwave
- coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of medium.
- Disk and disc includes compact disc (“CD”), laser disc, optical disc, digital versatile disc (“DVD”), floppy disk and blu-ray disc where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Combinations of the above should also be included within the scope of computer-readable media.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Databases & Information Systems (AREA)
- Dram (AREA)
Abstract
Description
- This application claims the benefit of the priority of U.S. Provisional Patent Application Ser. No. 62/295,236 entitled “Systems and Methods for Individually Configuring Dynamic Random Access Memories Sharing A Common Command Access Bus” and filed on Feb. 15, 2016, which is hereby incorporated by reference in its entirety.
- Computing devices comprising at least one processor coupled to a memory are ubiquitous. Computing devices may include personal computing devices (PCDs) such as desktop computers, laptop computers, portable digital assistants (PDAs), portable game consoles, tablet computers, cellular telephones, smart phones, and wearable computers. One type of memory, dynamic random access memory (DRAM), has become increasing popular in PCDs. DRAM memory devices may be configured and/or operate in accordance with various standards, such as one of the double data rate DDR or Low Power DDR (LPDDR) standards.
- DRAM memory devices have an IO (input/output) data bus of a specified width, such as 8 bits (×8), 16 bits (×16), 32 bits (×32), depending on the applicable standard and/or use to which the DRAM will be put. Each DRAM memory device or die typically has its own data (DQ) bus. However, in some configurations or some operational modes, multiple DRAM memories or dies may share a common command address (CA) bus.
- For such configurations or operational modes of the DRAM memory or die, the shared or common CA bus prevents individual configuration of the separate DRAM memories or dies using mode register write (MRW) commands during initialization. Instead, all of the DRAM memories or dies are configured the same way due to MRW commands with the configuration information being sent to all of the DRAM memories or dies over the shared or common CA bus. This may result in less than optimal configurations for each of the different DRAM memories or dies.
- Accordingly, there is a need for improved systems and methods to implement individual configuration of different DRAM memories or dies that share a common CA bus. In particular there is a need for improved systems and methods for masking MRW commands sent over the CA bus in order to allow individual configuration of each individual DRAM memory or die on the shared CA bus during initialization.
- Systems, methods, and computer programs are disclosed for implementing individual configuration of DRAM memories in communication with a system on chip (SoC), where the DRAM memories share a command address (CA) bus. In one embodiment, the shared command access (CA) bus in communication with a first DRAM device and a second DRAM device is provided. A first command from a system on a chip (SoC) in communication with the first DRAM device and the second DRAM device is received at the first DRAM device. In response to the first command received from the SoC, a decoder of the first DRAM device determines whether to mask a mode register write (MRW) for the first DRAM device.
- A second command from the SoC containing configuration information is received at the first DRAM device and the second DRAM device via the shared CA bus. The second command comprises a MRW. If the determination by the decoder was to mask the received MRW, the second command is ignored at the first DRAM device Responsive to the. If the determination by the decoder was to not mask the received MRW, the second command containing the configuration information is executed by the first DRAM device.
- Another embodiment is a computer system for a computing device (PCD), the system comprising a system on a chip (SoC). The system also comprising a first DRAM device in communication with the SoC via a first unique data (DQ) bus and over a shared command access (CA) bus, where the first DRAM device includes a first decoder. The system further comprising a second DRAM device in communication with the SoC over a second unique DQ bus and over the shared CA bus.
- The first DRAM device is configured to: receive a first command from the SoC; determine with the first decoder whether to mask a mode register write (MRW) for the first DRAM device in response to the first command received from the SoC; receive via the shared. CA bus, a second command from the SoC containing configuration information, wherein the second command comprises a MRW. If the determination by the first decoder was to mask the received. MRW, the second command is ignored by the first DRAM device. If the determination by the first decoder was to not mask the MRW, the second command containing configuration information is executed by the first DRAM device.
- In the Figures, like reference numerals refer to like parts throughout the various views unless otherwise indicated. For reference numerals with letter character designations such as “102A” or “102B”, the letter character designations may differentiate two like parts or elements present in the same Figure. Letter character designations for reference numerals may be omitted when it is intended that a reference numeral to encompass all parts having the same reference numeral in all Figures.
-
FIG. 1 is a block diagram of an embodiment of a system for implementing individual configuration of DRAM memory devices or dies that share a common CA bus, for a DRAM memory in communication with a system on chip (SoC) of an exemplary computing device; -
FIG. 2A is a functional diagram showing the interaction of portions of the system ofFIG. 1 when the DRAM memory is in a first configuration or mode of operation; -
FIG. 2B is a functional diagram showing the interaction of portions of the system ofFIG. 1 when the DRAM memory is in a second configuration or mode of operation; -
FIG. 3A is a block diagram illustrating aspects of an embodiment of a DRAM die that may be used in the system ofFIG. 1 and/or the method ofFIG. 4A ; -
FIG. 3B is a block diagram illustrating aspects of another implementation of a DRAM die that may be used in the system ofFIG. 1 and/or the method ofFIG. 4A ; -
FIG. 3C is a block diagram illustrating aspects of an alternative embodiment toFIGS. 3A-3B for a DRAM die that may be used in the system ofFIG. 1 and/or the methods ofFIG. 4B or 4C ; -
FIG. 4A is a flowchart illustrating an embodiment of a method for providing individual configuration of DRAM memories or dies that share a common CA bus that may be implemented in a system such as that shown inFIG. 1 ; -
FIG. 4B is a flowchart illustrating an alternative embodiment of a method for providing individual configuration of DRAM memories or dies that share a common CA bus that may be implemented in a system such as that shown inFIG. 1 ; and -
FIG. 4C is a flowchart illustrating another implementation of the alternative embodiment of the method ofFIG. 4B ; and -
FIG. 5 is a block diagram of an exemplary computing device in which the system ofFIG. 1 or method ofFIG. 4 may be implemented. - The word “exemplary” is used herein to mean “serving as an example, instance, or illustration.” Any aspect described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other aspects.
- In this description, the term “application” or “image” may also include files having executable content, such as: object code, scripts, byte code, markup language files, and patches. In addition, an “application” referred to herein, may also include files that are not executable in nature, such as documents that may need to be opened or other data files that need to be accessed.
- The term “content” may also include files having executable content, such as: object code, scripts, byte code, markup language files, and patches. In addition, “content” referred to herein, may also include files that are not executable in nature, such as documents that may need to be opened or other data files that need to be accessed.
- As used in this description, the terms “component,” “database,” “module,” “system,” and the like are intended to refer to a computer-related entity, either hardware, firmware, a combination of hardware and software, software, or software in execution. For example, a component may be, but is not limited to being, a process running on a processor, a processor, an object, an executable, a thread of execution, a program, and/or a computer. By way of illustration, both an application running on a computing device and the computing device may be a component. One or more components may reside within a process and/or thread of execution, and a component may be localized on one computer and/or distributed between two or more computers. In addition, these components may execute from various computer readable media having various data structures stored thereon. The components may communicate by way of local and/or remote processes such as in accordance with a signal having one or more data packets (e.g., data from one component interacting with another component in a local system, distributed system, and/or across a network such as the Internet with other systems by way of the signal).
- In this description, the term “computing device” is used to mean any device implementing a processor (whether analog or digital) in communication with a memory, such as a desktop computer, gaming console, or server. A “computing device” may also be a “portable computing device” (PCD), such as a laptop computer, handheld computer, or tablet computer. The terms PCD, “communication device,” “wireless device,” “wireless telephone”, “wireless communication device,” and “wireless handset” are used interchangeably herein. With the advent of third generation (“3G”) wireless technology, fourth generation (“4G”), Long-Term Evolution (LTE), etc., greater bandwidth availability has enabled more portable computing devices with a greater variety of wireless capabilities. Therefore, a portable computing device may also include a cellular telephone, a pager, a smartphone, a navigation device, a personal digital assistant (PDA), a portable gaming console, a wearable computer, or any portable computing device with a wireless connection or link.
-
FIG. 1 illustrates an embodiment of asystem 100 including a system-on-a-chip (SoC) electrically coupled to aDRAM 130 containing multiple memory devices or dies, such as Die0134 a, Die1, 134 b,Die2 134 c, andDieN 134 n (collectively referred to as dies 134 a-134 n). Thesystem 100 may be used to individually configure the devices or dies 134 a-134 n in theDRAM 130, even when the dies 134 a-134 n share a common CA bus (seeFIG. 2B ). -
System 100 may be implemented in any computing device, including a PCD. As illustrated in the embodiment ofFIG. 1 , thesystem 100 comprises theSoC 102 electrically coupled to an external or “off chip”DRAM 130. TheSoC 102 comprises various on-chip components, including a central processing unit (CPU) 106, amemory controller 120, acache 110 memory, and asystem memory 112, all interconnected via a SoC bus 116. In some embodiments, such as the one illustrated inFIG. 1 , theSoC 102 may also include one or more additional processors likeCPU 114 also connected to the SoC bus 16. - The
CPU 106 may be controlled by or execute an operating system (OS) 108 that causes theCPU 106 to operate or execute various applications, programs, or code stored in one or more memory of the computing device. In some embodiments theCPU 106 andCPU 114 may be the same type of processor, while in other embodiments theCPU 114 may be a digital signal processor (DSP), a graphics processing unit (GPU), an analog processor, or other type of processor different fromCPU 106 executing theOS 108. - The
cache 110 memory ofFIG. 1 may be an L2, L3, or other desired cache. Additionally thecache 110 may be dedicated to one processor, such asCPU 106, or may be shared among multiple processors in various embodiments, such as theCPU 106 andCPU 114 illustrated inFIG. 1 . In an embodiment, thecache 110 may be a last level cache (LLC) or the highest (last) level of cache that theCPU 106 calls before accessing a memory likememory device 130.System memory 112 may be a static random access memory (SRAM), a read only memory (ROM) 112, or any other desired memory type, including a removable memory such as an SD card. - The
memory controller 120 of theSoC 102 is electrically connected to the SoC bus 116 and is also connected to theDRAM 130 by amemory access channel 124. Thememory access channel 124 may be a serial channel or a parallel channel in various embodiments.Memory controller 120 manages the data read from and/or stored to the various memories accessed by theSoC 102 during operation of thesystem 100, includingDRAM 130.Memory controller 120 may include other portions or components not illustratedFIG. 1 , such as a read and/or write buffer, control logic, etc., to allowmemory control 120 to control the data transfer over thememory access channel 124. In various implementations, some or all of the components of thememory controller 120 may be implemented in hardware, software, or firmware as desired. - The memory access
channel coupling DRAM 130 to theSoC 102 may be any desired width. Data and/or instructions are transferred between CPU 106 (or another component of the SoC 102) and a memory device such asDRAM 130 over theaccess channel 124. A variety of standards, protocols, or technologies may be used to perform the transfer of the data and instructions, and this disclosure is not limited to any particular data transfer standard. -
DRAM 130 may be comprised of any number of devices or dies, such as dies 134 a-134 n illustrated inFIG. 1 . Dies 134 a-134 n may be of the same or different sizes or capacities. Each DRAM device or die will have an IO (input/output) data bus of a specified width, such as 8 bits (×8), 16 bits (×16), 32 bits (×32), depending on the applicable standard and/or the use for which theDRAM 130 or PCD is intended. Each device or die of theDRAM 130 typically has its own data (DQ) bus to read and write data to the registers of the device/die (seeFIGS. 2A-2B ). - The
DRAM 130 illustrated inFIG. 1 may be a double data rate synchronous dynamic (DDR) RAM according to one of the DDRx or LPDDRx (Low Power DDR) standards. Additionally,DRAM 130 includes acontroller 132 coupled to each of the dies 134 a-134 n to coordinate and control transfer of data and instructions to and from each of die 134 a-134 n. As will be understood, theDRAM 130 may be a dual in-line memory module (DIMM) comprised one or more memory arrays arranged within theDRAM 130 to store data. These memory arrays may be arranged in ranks in some embodiments as would be understood. - In an embodiment,
DRAM 130 may be a LPDDR4×16 memory with a ×16access channel 124. In such an embodiment, each die 134 a-134 n of theDRAM 130 will have its own DQ bus and its own CA bus (seeFIG. 2A ). In anotherembodiment DRAM 130 may be, or may operate in some operational modes as, a LPDDR4×8 memory. In such embodiments or operational modes, each die 134 a-134 n may have its own DQ bus, but the dies 134 a-134 n may share a common CA bus (seeFIG. 2B ). Other types and configurations of theDRAM 130 may be implemented in thesystem 100 in other embodiments. - The elements and arrangement of elements of the
system 100, theSoC 102 and/or theDRAM 130 inFIG. 1 are illustrative. In other embodiments, one or more of thesystem 100, theSoC 102 and/orDRAM 130 may contain more or fewer components than illustrated inFIG. 1 . Additionally, in some embodiments, the various components of thesystem 100,SoC 102 and/orDRAM 130 may be configured differently than illustrated inFIG. 1 . - Turning to
FIGS. 2A-2B , functional diagrams showing the interaction of portions of thesystem 100 ofFIG. 1 are illustrated. As mentioned, in some configurations ofDRAM 130, or modes of operation ofDRAM 130, each device or die (illustrated asDie0 134 a andDie1 134 b) of theDRAM 130 may have its own CA bus, 144 a and 144 b respectively. A functional diagram 200A of portions of thesystem 100 for such a configuration/mode of operation ofDRAM 130 is illustrated inFIG. 2A . In such aconfiguration Die0 134 a will receive control commands, such as mode register write (MRW) commands, over aCA bus 144 a dedicated to Die0 134 a. Similarly,Die1 134 b can receive separate or different control commands over its owndedicated CA bus 144 b. - These separate or different control commands may be sent from outside the
DRAM 130, such as frommemory controller 120 ofSoC 102 for instance. Each separate command will only be received by the intended die 134 a or 134 b. Thus, theseparate CA buses Die0 134 a andDie1 134 b to be separately controlled and configured. For instance, at initialization of a PCD it is beneficial to configure various programmable settings in aDRAM 130 using MRW commands to ensure optimal performance of theDRAM 130. As will be understood, these programmable settings may include a voltage reference value (Vref) or any other desired setting for the Die0134 a. As will also understood, the appropriate values for such programmable settings can vary fromDie0 134 a toDie1 134 b, and the appropriate may depend on a variety of factors unique to each die 134 a-134 b. Thus, it is desirable to be able to individually program or configureDie0 134 a andDie1 134 b to ensure optimal performance, such as to reduce error rates for example. Such individual configuration ofDie0 134 a and Die1134 b is available when each die 134 a and 134 b has its owndedicated CA bus FIG. 2A . - However, as illustrated in
FIG. 2B , in some configurations ofDRAM 130, or for some operational modes ofDRAM 130 according various standards, multiple devices or dies of aDRAM 130 may share a common CA bus. An example of such configuration/mode of operation is illustrated inFIG. 2B , whereDie0 134 a,Die1 134 b, andDieN 134 n (collectively referred to as dies 134 a-134 n) share acommon CA bus 144. Note that although illustrated with three dies 134 a-134 n, more or fewer dies may be coupled to the common or sharedCA bus 144 as desired, subject to architectural limitations and the electrical capabilities ofDRAM 130. Additionally, althoughDie0 134 a andDie1 134 b are illustrated inFIG. 2B as ×8 dies, one or more of Die 0 134,Die1 134 b and/orDieN 134 n may have a different IO width, such as ×32, etc. - Because dies 134 a-134 n share a
common CA bus 144, dies 134 a-134 n are not individually controllable or configurable using typical commands over the sharedCA bus 144. Any control command, such as an MRW command sent over the sharedCA bus 144, is received and implemented by all of the dies 134 a-134 n. The system and methods of the present disclosure allow for the dies 134 a-134 n to be separately and/or individually configured, even though dies 134 a-134 n share acommon CA bus 144. In this manner, each die 134 a-134 n may be individually configured without the need for separate CA buses as illustrated inFIG. 2A . Thus, if aDRAM 130 is required to use a sharedCA bus 144 to support an operational mode (such as the “byte mode” of operation in the LPR4 standard), or if it is desired to avoid the footprint, overhead, etc. of aseparate CA bus 144 on each die 134 a, 134 b, 134 n, the present disclosure still allows for individual configuration of dies 134 a-134 n. -
FIGS. 3A-3B are block diagrams illustrating embodiments of a DRAM die,Die0 134 a that may be used in the system ofFIG. 1 . Although not illustrated,Die0 134 a shares acommon CA bus 144 with other dies, such asDie1 134 b andDieN 134 n as illustrated inFIG. 2B . Additionally, although discussed in terms ofDie0 134 a, the following discussion of the various embodiments and implementations is equally applicable to any die that shares thecommon CA bus 144 withDie0 134 a, such asDie1 134 b andDieN 134 n illustrated inFIG. 2B . -
Die0 134 a includes adecoder 158 that allows individual programming, configuration, or control ofDie0 134 a using information received over theDQ bus 146 a unique to Die0 134 a. In some embodiments such programming, configuration, or control ofDie0 134 a using thedecoder 158 may be accomplished with just information received over theDQ bus 146 a. In other embodiments, such programming, configuration, or control of Diet) 134 a using thedecoder 158 may be accomplished with information received over theDQ bus 146 a in combination with information received over the sharedCA bus 144. - Turning to
FIG. 3A ,Die0 134 a includes acommand decoder 150 that receives typical command signals and aclock signal CK 160 over the sharedCA bus 144.Command decoder 150 may be implemented in hardware, software, or a combination of hardware and software as desired.Die0 134 a also includes amode register block 154 in communication with thecommand decoder 150. When thecommand decoder 150 receives a MRW command over the sharedCA bus 144, thecommand decoder 150 either forwards the MRW command to themode register block 154, or sends asignal 152 to themode register block 154 indicating that the MRW command has been received. Thecommand decoder 150 also sends data associated with that MRW command, such as information identifying a setting ofDie0 134 a to be configured and the value for the setting. -
Die0 134 a also includes a buffer, such asMPC FIFO 156 that receives information and a pulse signal (DQS 162) over theunique DQ bus 146 a forDie0 134 a. Among the information received by theMPC FIFO 156 over theDQ bus 146 a may be a multi-purpose command (MPC).MPC FIFO 156 may be implemented in hardware, and may include or may be associated with logic to control the operation ofMPC FIFO 156. As indicated by its name,MPC FIFO 156 in the embodiment ofFIG. 3A is a first-in-first-out (fifo) buffer, however other buffers may be used as desired. - In some embodiments, such as the embodiment of
FIG. 3A ,command decoder 150,mode register block 154, andMPC FIFO 156 may all be coupled todecoder 158. In this embodiment,decoder 158 determines whether to mask MRW commands receivedDie0 134 a. Ifdecoder 158 determines to mask MRW commands received byDie0 134 a,decoder 158 may send amask signal 155 tocommand decoder 150. Themask signal 155 instructscommand decoder 150 to disregard the next MRW command received, or to disregard all subsequent MRW commands until another signal is sent from thedecoder 158. These subsequent MRW command(s) received over the sharedCA bus 144 will not be implemented byDie0 134 a. As a result, any configuration information in the subsequent MRW commands will be ignored byDie0 134 a. Instead, the subsequent MRW command(s) may be implemented by one or more other diesDie1 134 b,DieN 134 n, etc. (seeFIG. 2B ) using the sharedCA bus 144 if one or more of those other dies 134 b-134 n are not masked. - If, on the other hand,
decoder 158 determines not to mask MRW commands received byDie0 134 a, nomask signal 155 is sent from thedecoder 158. Subsequent MRW command(s) received over the sharedCA bus 144 will be implemented byDie0 134 a. As a result, any configuration information in these subsequent MRW commands will be set atDie0 134 a. At the same time, the subsequent MRW commands may instead be ignored by the other dies 134 b-134 n (seeFIG. 2B ) that are using the sharedCA bus 144. By configuring each of dies 134 a-134 n with adecoder 158 as described above, each die 134 a-134 n may selectively mask MRW commands, allowing each of die 134 a-134 n to be individually configured despite dies 134 a-134 n all sharing acommon CA bus 144. -
Decoder 158 of Die0 134 of this embodiment may be implemented and/or operated in a variety of ways as desired. For example, in the embodiment ofFIG. 3A , a command may be received at thecommand decoder 150 ofDie0 134 a via the shared orcommon CA bus 144. The command may be a MRW command or another command that causescommand decoder 150 to send asignal 152 to themode register block 154. The command received at thecommand decoder 150 may include a bit or other information that causes thecommand decoder 150 to send thesignal 152 to themode register block 154. Thecommand decoder 150 may include logic to recognize the received command and cause thesignal 152 to be generated and sent to themode register block 154. - Upon receiving the
signal 152, themode register block 154 causes a wake-up/enablesignal 153 to be sent to thedecoder 158. Themode register block 154 may include logic to recognize the receivedsignal 152 from thecommand decoder 150 and to generate and send the wake-up/enablesignal 153 to thedecoder 158. The wake-up/enablesignal 153 is configured to awaken, enable, and/or cause thedecoder 158 to become active. In an implementation, awakening thedecoder 158 may comprise causing thedecoder 158 to poll theMPC FIFO 156 or otherwise look for information from theMPC FIFO 156. As illustrated inFIG. 3A , thedecoder 158 may be coupled to an output of theMPC FIFO 156. - Separately in this implementation, information is sent to
Die0 134 a over theDQ bus 146 a toMPC FIFO 156. As discussed, theDQ bus 146 a is unique to Die0. The received information is provided fromMPC FIFO 156 todecoder 158, such as bysignal 157.Decoder 158 is configured to recognize or determined from the receivedsignal 157 whether to mask MRW commands forDie0 134 a. For example, in an implementation, the information received over theDQ bus 146 a may include a masking bit, anddecoder 158 may include logic to recognize whether the received masking bit is “on” or “off” and accordingly determine whether to mask MRW commands forDie0 134 a. In other implementations, the information received over theDQ bus 146 a may include a different instruction or information that is recognized bydecoder 158 and from which decoder 158 can determine whether to mask MRW commands forDie0 134 a. - If
decoder 158 determines to mask MRW commands received byDie0 134 a,decoder 158 send amask signal 155 to thecommand decoder 150 in the implementation ofFIG. 3A . Themask signal 155 may instructcommand decoder 150 to disregard the next MRW command received. In another implementation, themask signal 155 may causecommand decoder 150 to disregard all subsequent MRW commands until asecond mask signal 155 is sent from thedecoder 158. Thesecond mask signal 155 may be generated by thedecoder 158 in response to a second instruction or command received by theMK FIFO 156 over theDQ 146 a bus. This second instruction may be provided from theMPC FIFO 156 to thedecoder 158 and understood by thedecoder 158 to be an instruction to stop masking MRW commands, causing the decoder to generatesecond mask signal 155. - Regardless of how the
mask signal 155 is implemented, once thecommand decoder 150 receives theinitial mask signal 155 indicating that MRW commands should be masked, subsequent MRW command(s) received over the sharedCA bus 144 will not be implemented byDie0 134 a. As a result, any configuration information in the subsequent MRW command(s) will be ignored byDie0 134 a. Instead, the subsequent MRW commands may be implemented by one or more other dies 134 b-134 n (seeFIG. 2B ) using the sharedCA bus 144, if one or more of those other dies 134 b-134 n are not masked. As will be understood, implementing adecoder 158 in each of dies 134 a-134 n allows each of dies 134 a-134 n to have MRW commands unmasked in turn, such that each of dies 134 a-134 n may be individually configured by MRW commands over the shared orcommon CA bus 144. - A second implementation of
Die0 134 a is illustrated inFIG. 3B . In this second implementation, thedecoder 158 may be implemented as a write level phase detector. As with the discussion above forFIG. 3A , in the implementation ofFIG. 3B a command may be received at thecommand decoder 150 ofDie0 134 a via the shared orcommon CA bus 144. The command may be a MRW command or another command that causescommand decoder 150 to send asignal 152 to themode register block 154. The command received at thecommand decoder 150 may include a bit or other information that causes thecommand decoder 150 to send thesignal 152 to themode register block 154. Thecommand decoder 150 may include logic to recognize the received command and cause thesignal 152 to be generated and sent to themode register block 154. Upon receiving thesignal 152, themode register block 154 causes a wake-up/enablesignal 153 to be sent to the decoder/phase detector 158. - Once the decoder/
phase detector 158 ofFIG. 3B is awakened/enabled, aDQS pulse 162 received byDie0 134 a via theDQ bus 146 a is received by the decoder/phase detector 158. From theDQS pulse 162 and/or the information about the phase of theDQS pulse 162, decoder/phase detector 158 is configured to recognize or determine whether to mask MRW commands. Once the decoder/phase detector 158 makes this determination it sends themask signal 155 to thecommand decoder 150 if the determination is to mask MRW commands, as discussed above forFIG. 3A . - An alternative embodiment to
FIGS. 3A-3B is illustrated inFIG. 3C . In the embodiment ofFIG. 3C ,decoder 158 contains or implements logic to enableDie0 134 a to set various configurations from information initially received over theDQ bus 146 a unique to Die0134 a. In this embodiment, an instruction received at theMPC FIFO 156 over theDQ bus 146 a causes thedecoder 158 to act, without the need for a previous wake up/enable/alert signal to the decoder 158 (seeFIGS. 3A-3B ). Information received at theMPC FIFO 156 over theDQ bus 146 a, such as an MPC command may be recognized by thedecoder 158 as an instruction. For example, under the MPC standard, various bits are “reserved” and one or more of such reserved bits may be defined as an instruction recognized by thedecoder 158 in this embodiment. As would be understood, instructions or information received over theDQ bus 146 a other than the MPC command could also be used. - For example, in an implementation, a reserve bit in the MPC command (or other instruction) may be received over the
DQ bus 146 a and provided todecoder 158. From the received instruction and/or other information,decoder 158 is configured to recognize or determine whether to mask MRW commands received over the sharedCA bus 144. In this implementation, once thedecoder 158 makes the determination it sends themask signal 155 to thecommand decoder 150 if the determination is to mask MRW commands as discussed above forFIGS. 3A-3B . - In another implementation, a reserve bit in the MPC command (or other instruction) may be received over the
DQ bus 146 a and provided todecoder 158. Additionally, information or data about the desired configurations forDie0 134 a may also be provided over theDQ bus 146 a. From the received instruction,decoder 158 is configured to recognize or determine that configuration instructions and/or information have been received over theDQ bus 146 a. In this implementation, thedecoder 158 is further configured to send an instruction and/or the configuration information viasignal 155 to thecommand decoder 150. Thecommand decoder 150 is configured to send the appropriate command, such as a MRW command tomode register block 154 to set the desired configurations forDie0 134 a. Thus, in this implementation, information received at thedecoder 158 from theDQ bus 146 a causes the configurations forDie0 134 a to be set, without the need to mask any MRW commands received over theCA bus 144. - Turning to
FIG. 4A an embodiment of amethod 400A for providing individual configuration of DRAM memories or dies that share a common CA bus is illustrated.Method 400A begins inblock 402 where a command, such as a mode register write (MRW) command is sent to a DRAM device or die to enable a decoder located on the DRAM device. The DRAM device may be Diet) 134 a illustrated inFIGS. 1, 2B , and/or 3A. DRAM device/Die0 134 a shares acommon CA bus 144 with other dies such as dies 134 b-134 n (seeFIG. 2B ). The command inblock 402 may be sent from outside the DRAM device/Die0 134 a, such as from amemory controller 120 ofSoC 102 in communication with the DRAM device/Die0 134 a (seeFIGS. 1 and 2B ). The command ofblock 402 is received by the DRAM device/Die0 134 a over the shared orcommon CA bus 144, such as at a command decoder 150 (seeFIG. 3A-3B ). Thecommand decoder 402 may then cause a mode register block to send a wake-up/enablesignal 153 to thedecoder 158. - In
block 404 an instruction, such as a multi-purpose command (MPC) write fifo command is sent to the DRAM device/Die0 134 a. This instruction may also be sent from outside the DRAM device/Die0 134 a, such as frommemory controller 120 ofSoC 102. This instruction is received over theunique DQ bus 146 a of the DRAM device/Die0 134 a. The instruction may contain information used to determine whether to mask subsequent MRW commands. In an implementation, the instruction may comprise data or information from which adecoder 158 may recognize or determine whether to mask MRW commands for DRAM device/Die0 134 a (seeFIG. 3A ). In another implementation, the instruction may comprise aDQS pulse 162 from which decoder 158 may recognize or determine whether to mask MRW commands for DRAM device/Die0 134 a (seeFIG. 3B ). - Continuing to block 406, MRW commands are masked at DRAM device/
Die0 134 a. Masking the MRW commands may be implemented bydecoder 158 of DRAM device/Die0 134 a determining from the instruction received over theDQ bus 146 a whether to mask MRW commands. If thedecoder 158 determines to mask MRW commands, the decoder may send amask signal 155 to thecommand decoder 150. - In
block 408 an MRW command to program configurable settings in a second DRAM, such as DRAM device/Die1 134 b (seeFIG. 2B ) is sent over the common or sharedCA bus 144. In an embodiment the configurable settings may be a Vref setting or any other configurable setting that optimizes performance of the individual DRAM device/Die1 134 b, such as by minimizing error rates. - DRAM device/
Die1 134 b receives the MRW command over the shared/common CA bus 144. However, DRAM device/Die1 134 b has not been masked, so the settings for DRAM device/Die1 134 b are programmed in accordance with the MRW command. For example,command decoder 150 may send asignal 152 tomode register block 154 to implement the configurations/settings. As will be understood, DRAM device/Die0 134 a also receives the MRW command over the shared/common CA bus 144. However, MRW commands have been masked for DRAM device/Die0 134 a, so the MRW command is ignored by this DRAM device. As a result, the settings/configurations—intended for separate DRAM device/Die1 134 b—are not implemented by DRAM device/Die0 134 a. - In
block 410 thedecoder 158 of DRAM device/Die0 134 a is cleared and/or the MRW commands unmasked in DRAM device/Die0 134 a. This may comprise a second instruction sent from outside the DRAM device, such as frommemory controller 120 ofSoC 102. This second instruction is received over the DQ bus 162 a of DRAM device/Die0 134 a and may comprise a second MPC write command that is received at theMPC FIFO 156 and/ordecoder 158. This second instruction may in anembodiment cause decoder 158 to send anothermask signal 155 to thecommand decoder 150 to unmask future MRW commands. Additionally, block 410 may comprise thecommand decoder 150 sending a signal tomode register block 154, which in turn sends asignal 153 to clear thedecoder 158 and/or cause thedecoder 158 to cease looking for instructions from theDQ bus 146 a. - In
block 412 an MPC read fifo command is sent to DRAM device/Die0 134 a to clear theMPC FIFO 156. This command inblock 412 may be sent from outside the DRAM device/Die0 134 a, such as bymemory controller 120 of theSoC 102. This command may be received at DRAM device/Die0 134 a viaDQ bus 146 a. Inoptional block 414, the steps of blocks 402-412 may be repeated for each DRAM device such as dies 134 a-134 n (FIG. 2B ). In this manner each of dies 134 a-134 n may have their configurations/settings programmed individually, despite dies 134 a-134 n sharing acommon CA bus 144. -
FIG. 4B is a flowchart illustrating analternative method 400B for providing individual configuration of DRAM memories or dies that share a common CA bus. Inblock 450 an instruction, such as a multi-purpose command (MPC) write fifo command is sent to the DRAM device, such asDie0 134 a (seeFIGS. 1, 2B, and 3C ). This instruction may be sent from outside the DRAM device/Die0 134 a, such as frommemory controller 120 of SoC 102 (FIGS. 1 and 2B ). This instruction may be received over theunique DQ bus 146 a of the DRAM device/Die0 134 a. The instruction may contain information used determine whether to mask subsequent MRW commands. In an implementation, the instruction may comprise data or information from which the determination whether to mask subsequent MRW commands may be made. In another implementation, the instruction may comprise aDQS pulse 162 from which the determination whether to mask subsequent MRW commands may be made. - In
block 452, MRW commands are masked the DRAM device/Die0 134 a similar to block 406 discussed above forFIG. 4A . Masking the MRW commands may be implemented by thedecoder 158 of DRAM device/Die0 134 a determining from the instruction received over theDQ bus 146 a whether to mask MRW commands. If thedecoder 158 determines to mask MRW commands, the decoder may send amask signal 155 to thecommand decoder 150 as discussed above. - In
block 454 similar to block 408 discussed above forFIG. 4A —a MRW command to program configurable settings in a second DRAM, such as DRAM device/Die1 134 b (seeFIG. 2B ) is sent over the common or sharedCA bus 144. In an embodiment the configurable settings may be a Vref setting or any other configurable setting that optimizes performance of the individual DRAM device/Die1 134 b, such as by minimizing error rates. - DRAM device/
Die1 134 b receives the MRW command over the shared/common CA bus 144. However, DRAM device/Die1 134 b has not been masked, so the settings for DRAM device/Die1 134 b are programmed in accordance with the MRW command. For example,command decoder 150 of DRAM device/Die1 134 b may send asignal 152 tomode register block 154 to implement the configurations/settings for DRAM device/Die1 134 b. As will be understood, DRAM device/Die0 134 a also receives the MRW command over the shared/common CA bus 144. However, DRAM device/Die0 134 a has been masked, so the MRW command is ignored by this DRAM device. As a result, the settings/configurations—intended for separate DRAM device/Die1 134 b—are not implemented by DRAM device/Die0 134 a. - In
block 456 thedecoder 158 of DRAM device/Die0 134 a is cleared and/or the MRW commands unmasked in DRAM device/Die0 134 a, similar to block 410 discussed above forFIG. 4A . This may comprise a second instruction sent from outside the DRAM device, such as frommemory controller 120 ofSoC 102. This second instruction is received over the DQ bus 162 a of DRAM device/Die0 134 a and may comprise a second MPC write command that is received at theMPC FIFO 156 and/ordecoder 158. This second instruction may in an embodiment case thedecoder 158 to send anothermask signal 155 to thecommand decoder 150 to unmask future MRW commands. Additionally, block 456 may comprise thecommand decoder 150 sending a signal tomode register block 154, which in turn sends asignal 153 to clear thedecoder 158 and/or cause the decoder 58 to cease looking for instructions from theDQ bus 146 a. - In
block 458 an MPC read fifo command is sent to DRAM device/Die0 134 a to clear theMPC FIFO 156. This command inblock 458 may be sent from outside the DRAM device/Die0 134 a, such as bymemory controller 120 of theSoC 102. This command may be received at DRAM device/Die0 134 a viaDQ bus 146 a. Inoptional block 460, the steps of blocks 450-458 may be repeated for each DRAM device such as dies 134 a-134 n (FIG. 2B ). In this manner each of dies 134 a-134 n may have their configurations/settings programmed individually, despite dies 134 a-134 n sharing acommon CA bus 144. -
FIG. 4C is a flowchart illustrating another implementation of the alternative embodiment of themethod 400B ofFIG. 4B . As illustrated inFIG. 4C ,method 400C begins withblock 470 where an instruction, such as a multi-purpose command (MPC) write fifo command is sent to the DRAM device/Die0 134 a. This instruction is sent from outside the DRAM device, such as bymemory controller 120 ofSoC 102. This instruction may be received over theunique DQ bus 146 a of the DRAM device/Die0 134 a. The instruction may contain information to enable thedecoder 158 to operate, without need for additional instructions or commands over the shared orcommon CA bus 144, and without the need for any previous wake up/enable/alert signal to the decoder 158 (seeFIGS. 3A-3B ). Information received over theDQ bus 146 a, such as an MPC command may be recognized by thedecoder 158 as an instruction. For example, under the MPC standard various bits are “reserved” and such reserved bits may be defined as an instruction recognized by thedecoder 158 in this embodiment. - In
block 472 information or data about the desired configurations for DRAM device/Die0 134 a is also provided over theDQ bus 146 a. Note that in some implementations, blocks 470 and 472 may not be separate steps, but instead may comprise one sending of instructions and information to the DRAM device/Die0 134 a over theDQ bus 146 a - In
block 474 the desired configurations/settings of the DRAM device/Die0 134 a are programmed. As discussed above, thedecoder 158 of DRAM device/Die0 134 a is able to recognize that configuration instructions and/or information ofblocks 470/472 have been received over theDQ bus 146 a. Programming the configurations inblock 474 may comprise thedecoder 158 recognizing the received instructions, and sending an instruction and/or the configuration information viasignal 155 to thecommand decoder 150. Thecommand decoder 150 may send the appropriate command, such as a MRW command tomode register block 154, to set the desired configurations for DRAM device/Die0 134 a. - In
block 476 thedecoder 158 of DRAM device/Die0 134 a is cleared. This may comprise a second instruction sent from outside the DRAM device, such as frommemory controller 120 ofSoC 102. This second instruction is received over the DQ bus 162 a of DRAM device/Die0 134 a and may comprise a second MPC write command that is received at theMPC FIFO 156 and/ordecoder 158. Thedecoder 158 may recognize this second instruction as an instruction to disable and/or cease looking for instructions from theDQ bus 146 a. - In another implementation, this second instruction may cause the
decoder 158 to send asignal 155 to thecommand decoder 150. Thecommand decoder 150 may then send a signal tomode register block 154, which in turn may send asignal 153 todecoder 158 to clear thedecoder 158 and/or cause thedecoder 158 to cease looking for instructions from theDQ bus 146 a. - In
block 478 an MPC read fifo command is sent to DRAM device/Die0 134 a to clear theMPC FIFO 156. This command inblock 478 may be sent from outside the DRAM device/Die0 134 a, such as bymemory controller 120 of theSoC 102. This command may be received at DRAM device/Die0 134 a viaDQ bus 146 a. Inoptional block 480, the steps of blocks 470-478 may be repeated for each DRAM device such as dies 134 a-134 n (FIG. 2B ). In this manner each of dies 134 a-134 n may have their configurations/settings programmed individually, despite dies 134 a-134 n sharing acommon CA bus 144. - System 100 (
FIG. 1 ), as well asmethods 400A-400C (FIGS. 4A-4C ) may be incorporated into or performed by any desired computing system, including a PCD.FIG. 5 illustrates thesystem 100 incorporated in anexemplary PCD 600. In this embodiment, theSoC 102 may include amulticore CPU 602. Themulticore CPU 602 may include azeroth core 610, afirst core 612, and anNth core 614. One of the cores may comprise, for example, a graphics processing unit (GPU) with one or more of the others comprising the CPU. - A
display controller 628 and atouch screen controller 630 may be coupled to theCPU 602. In turn, thetouch screen display 606 external to the on-chip system 102 may be coupled to thedisplay controller 628 and thetouch screen controller 630.FIG. 5 further shows that avideo encoder 634, e.g., a phase alternating line (PAL) encoder, a sequential color a memoire (SECAM) encoder, or a national television system(s) committee (NTSC) encoder, is coupled to themulticore CPU 602. Further, avideo amplifier 636 is coupled to thevideo encoder 634 and thetouch screen display 606. - Also, a
video port 638 is coupled to thevideo amplifier 636. As shown inFIG. 5 , a universal serial bus (USB)controller 640 is coupled to themulticore CPU 602. Also, aUSB port 642 is coupled to theUSB controller 640.Memory 112 and a subscriber identity module (SIM)card 646 may also be coupled to themulticore CPU 602. - Further, as shown in
FIG. 5 , adigital camera 648 may be coupled to themulticore CPU 602. In an exemplary aspect, thedigital camera 648 is a charge-coupled device (CCD) camera or a complementary metal-oxide semiconductor (CMOS) camera. - As further illustrated in
FIG. 5 , a stereo audio coder-decoder (CODEC) 650 may be coupled to themulti core CPU 602. Moreover, anaudio amplifier 652 may be coupled to thestereo audio CODEC 650. In an exemplary aspect, afirst stereo speaker 654 and asecond stereo speaker 656 are coupled to theaudio amplifier 652.FIG. 5 shows that amicrophone amplifier 658 may be also coupled to thestereo audio CODEC 650. Additionally, amicrophone 660 may be coupled to themicrophone amplifier 658. In a particular aspect, a frequency modulation (FM)radio tuner 662 may be coupled to thestereo audio CODEC 650. Also, anFM antenna 664 is coupled to theFM radio tuner 662. Further,stereo headphones 666 may be coupled to thestereo audio CODEC 650. -
FIG. 5 further illustrates that a radio frequency (RF)transceiver 668 may be coupled to themulticore CPU 602. AnRF switch 670 may be coupled to theRF transceiver 668 and anRF antenna 672. Akeypad 604 may be coupled to themulticore CPU 602. Also, a mono headset with amicrophone 676 may be coupled to themulticore CPU 602. Further, avibrator device 678 may be coupled to themulticore CPU 602. -
FIG. 5 also shows that apower supply 680 may be coupled to the on-chip system 102. In a particular aspect, thepower supply 680 is a direct current (DC) power supply that provides power to the various components of thePCD 600 that require power. Further, in a particular aspect, the power supply is a rechargeable DC battery or a DC power supply that is derived from an alternating current (AC) to DC transformer that is connected to an AC power source. -
FIG. 5 further indicates that thePCD 600 may also include anetwork card 688 that may be used to access a data network, e.g., a local area network, a personal area network, or any other network. Thenetwork card 688 may be a Bluetooth network card, a WiFi network card, a personal area network (PAN) card, a personal area network ultra-low-power technology (PeANUT) network card, a television/cable/satellite tuner, or any other network card well known in the art. Further, thenetwork card 688 may be incorporated into a chip, i.e., thenetwork card 688 may be a full solution in a chip, and may not be aseparate network card 688. - Referring to
FIG. 5 , it should be appreciated that thememory 130,touch screen display 606, thevideo port 638, theUSB port 642, thecamera 648, thefirst stereo speaker 654, thesecond stereo speaker 656, themicrophone 660, theFM antenna 664, thestereo headphones 666, theRF switch 670, theRF antenna 672, the keypad 674, themono headset 676, thevibrator 678, and thepower supply 680 may be external to the on-chip system 102 or “off chip.” - It should be appreciated that one or more of the method steps described herein may be stored in the memory as computer program instructions. These instructions may be executed by any suitable processor in combination or in concert with the corresponding module to perform the methods described herein.
- Certain steps in the processes or process flows described in this specification naturally precede others for the invention to function as described. However, the invention is not limited to the order of the steps or blocks described if such order or sequence does not alter the functionality of the invention. That is, it is recognized that some steps or blocks may performed before, after, or parallel (substantially simultaneously with) other steps or blocks without departing from the scope and spirit of the invention. In some instances, certain steps or blocks may be omitted or not performed without departing from the invention. Further, words such as “thereafter”, “then”, “next”, etc. are not intended to limit the order of the steps. These words are simply used to guide the reader through the description of the exemplary method.
- Additionally, one of ordinary skill in programming is able to write computer code or identify appropriate hardware and/or circuits to implement the disclosed invention without difficulty based on the flow charts and associated description in this specification, for example.
- Therefore, disclosure of a particular set of program code instructions or detailed hardware devices is not considered necessary for an adequate understanding of how to make and use the invention. The inventive functionality of the claimed computer implemented processes is explained in more detail in the above description and in conjunction with the Figures which may illustrate various process flows.
- In one or more exemplary aspects, the functions described may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored on or transmitted as one or more instructions or code on a computer-readable medium. Computer-readable media include both computer storage media and communication media including any medium that facilitates transfer of a computer program from one place to another. A storage media may be any available media that may be accessed by a computer. By way of example, and not limitation, such computer-readable media may comprise RAM, ROM, EEPROM, NAND flash, NOR flash, M-RAM, P-RAM, R-RAM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium that may be used to carry or store desired program code in the form of instructions or data structures and that may be accessed by a computer.
- Also, any connection is properly termed a computer-readable medium. For example, if the software is transmitted from a website, server, or other remote source using a coaxial cable, fiber optic cable, twisted pair, digital subscriber line (“DSL”), or wireless technologies such as infrared, radio, and microwave, then the coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of medium.
- Disk and disc, as used herein, includes compact disc (“CD”), laser disc, optical disc, digital versatile disc (“DVD”), floppy disk and blu-ray disc where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Combinations of the above should also be included within the scope of computer-readable media.
- Alternative embodiments will become apparent to one of ordinary skill in the art to which the invention pertains without departing from its spirit and scope. Therefore, although selected aspects have been illustrated and described in detail, it will be understood that various substitutions and alterations may be made therein without departing from the spirit and scope of the present invention, as defined by the following claims.
Claims (30)
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/142,306 US9734890B1 (en) | 2016-02-15 | 2016-04-29 | Systems and methods for individually configuring dynamic random access memories sharing a common command access bus |
CN201780011119.0A CN108604212B (en) | 2016-02-15 | 2017-01-12 | System and method for individually configuring dynamic random access memory sharing a common command access bus |
EP17702209.2A EP3417379B1 (en) | 2016-02-15 | 2017-01-12 | Systems and methods for individually configuring dynamic random access memories sharing a common command access bus |
PCT/US2017/013141 WO2017142650A1 (en) | 2016-02-15 | 2017-01-12 | Systems and methods for individually configuring dynamic random access memories sharing a common command access bus |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662295236P | 2016-02-15 | 2016-02-15 | |
US15/142,306 US9734890B1 (en) | 2016-02-15 | 2016-04-29 | Systems and methods for individually configuring dynamic random access memories sharing a common command access bus |
Publications (2)
Publication Number | Publication Date |
---|---|
US9734890B1 US9734890B1 (en) | 2017-08-15 |
US20170236572A1 true US20170236572A1 (en) | 2017-08-17 |
Family
ID=59561657
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/142,316 Active US9734878B1 (en) | 2016-02-15 | 2016-04-29 | Systems and methods for individually configuring dynamic random access memories sharing a common command access bus |
US15/142,306 Active US9734890B1 (en) | 2016-02-15 | 2016-04-29 | Systems and methods for individually configuring dynamic random access memories sharing a common command access bus |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/142,316 Active US9734878B1 (en) | 2016-02-15 | 2016-04-29 | Systems and methods for individually configuring dynamic random access memories sharing a common command access bus |
Country Status (4)
Country | Link |
---|---|
US (2) | US9734878B1 (en) |
EP (2) | EP3417379B1 (en) |
CN (2) | CN108604213B (en) |
WO (2) | WO2017142651A1 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10997096B2 (en) * | 2017-05-22 | 2021-05-04 | Intel Corporation | Enumerated per device addressability for memory subsystems |
KR102538703B1 (en) | 2018-05-02 | 2023-06-01 | 에스케이하이닉스 주식회사 | Semiconductor system comprising mode register control circuit |
US11468925B2 (en) | 2018-12-03 | 2022-10-11 | Rambus Inc. | DRAM interface mode with improved channel integrity and efficiency at high signaling rates |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3503276A1 (en) * | 1985-01-31 | 1986-08-07 | Wacker-Chemie GmbH, 8000 München | REINFORCEMENT ELEMENTS PROTECTED BY CORROSION AGAINST CORROSION OR IN PORO CONCRETE |
JPS634343A (en) * | 1986-06-24 | 1988-01-09 | Nec Corp | Microcomputer for evaluation |
US7102958B2 (en) | 2001-07-20 | 2006-09-05 | Samsung Electronics Co., Ltd. | Integrated circuit memory devices that support selective mode register set commands and related memory modules, memory controllers, and methods |
KR100630726B1 (en) * | 2004-05-08 | 2006-10-02 | 삼성전자주식회사 | Mode set memory devices by component in a memory system and method thereof |
US6895474B2 (en) | 2002-04-29 | 2005-05-17 | Micron Technology, Inc. | Synchronous DRAM with selectable internal prefetch size |
US9171585B2 (en) | 2005-06-24 | 2015-10-27 | Google Inc. | Configurable memory circuit system and method |
US20070260841A1 (en) * | 2006-05-02 | 2007-11-08 | Hampel Craig E | Memory module with reduced access granularity |
US7405992B2 (en) | 2006-10-25 | 2008-07-29 | Qimonda North America Corp. | Method and apparatus for communicating command and address signals |
US8006044B2 (en) | 2006-12-21 | 2011-08-23 | Intel Corporation | Flexible selection command for non-volatile memory |
US20130100755A1 (en) | 2011-10-21 | 2013-04-25 | Samsung Electronics Co., Ltd. | Semiconductor memory device implementing comprehensive partial array self refresh scheme |
US8792294B2 (en) * | 2012-01-09 | 2014-07-29 | Mediatek Inc. | DRAM and access and operating method thereof |
KR20130084369A (en) | 2012-01-17 | 2013-07-25 | 삼성전자주식회사 | Memory device, method for operating the same, and apparatus including the same |
US9280454B1 (en) * | 2012-03-02 | 2016-03-08 | Cadence Design Systems, Inc. | Method and system for re-ordering bits in a memory system |
US9183910B2 (en) | 2012-05-31 | 2015-11-10 | Samsung Electronics Co., Ltd. | Semiconductor memory devices for alternately selecting bit lines |
KR20160076889A (en) * | 2014-12-23 | 2016-07-01 | 에스케이하이닉스 주식회사 | Semiconductor device and semiconductor system |
-
2016
- 2016-04-29 US US15/142,316 patent/US9734878B1/en active Active
- 2016-04-29 US US15/142,306 patent/US9734890B1/en active Active
-
2017
- 2017-01-12 WO PCT/US2017/013143 patent/WO2017142651A1/en active Application Filing
- 2017-01-12 EP EP17702209.2A patent/EP3417379B1/en active Active
- 2017-01-12 CN CN201780011121.8A patent/CN108604213B/en active Active
- 2017-01-12 CN CN201780011119.0A patent/CN108604212B/en active Active
- 2017-01-12 EP EP17701780.3A patent/EP3417378B1/en active Active
- 2017-01-12 WO PCT/US2017/013141 patent/WO2017142650A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2017142650A1 (en) | 2017-08-24 |
WO2017142651A1 (en) | 2017-08-24 |
EP3417379A1 (en) | 2018-12-26 |
US20170236567A1 (en) | 2017-08-17 |
US9734890B1 (en) | 2017-08-15 |
EP3417378B1 (en) | 2020-07-08 |
CN108604213A (en) | 2018-09-28 |
CN108604212B (en) | 2021-08-31 |
CN108604212A (en) | 2018-09-28 |
US9734878B1 (en) | 2017-08-15 |
CN108604213B (en) | 2021-03-16 |
EP3417378A1 (en) | 2018-12-26 |
EP3417379B1 (en) | 2019-08-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3047352B1 (en) | System and method for conserving memory power using dynamic memory i/o resizing | |
US20150199134A1 (en) | System and method for resolving dram page conflicts based on memory access patterns | |
CN107924225B (en) | System and method for dynamically adjusting memory state transition timers | |
US20170371812A1 (en) | System and method for odd modulus memory channel interleaving | |
US8959298B2 (en) | System and method for managing performance of a computing device having dissimilar memory types | |
US9747038B2 (en) | Systems and methods for a hybrid parallel-serial memory access | |
US20150248741A1 (en) | System and method for providing power-saving static image display refresh in a dram memory system | |
US9383809B2 (en) | System and method for reducing memory I/O power via data masking | |
US9734890B1 (en) | Systems and methods for individually configuring dynamic random access memories sharing a common command access bus | |
US20170262367A1 (en) | Multi-rank collision reduction in a hybrid parallel-serial memory system | |
US20160077959A1 (en) | System and Method for Sharing a Solid-State Non-Volatile Memory Resource | |
EP3646162B1 (en) | System and method for dynamic buffer sizing in a computing device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
AS | Assignment |
Owner name: QUALCOMM INCORPORATED, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:AQUIL, FARRUKH;DROP, MICHAEL;SRINIVAS, VAISHNAV;AND OTHERS;SIGNING DATES FROM 20170228 TO 20170405;REEL/FRAME:042260/0556 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |