WO2023211613A1 - Adaptive data encoding for memory systems - Google Patents
Adaptive data encoding for memory systems Download PDFInfo
- Publication number
- WO2023211613A1 WO2023211613A1 PCT/US2023/016693 US2023016693W WO2023211613A1 WO 2023211613 A1 WO2023211613 A1 WO 2023211613A1 US 2023016693 W US2023016693 W US 2023016693W WO 2023211613 A1 WO2023211613 A1 WO 2023211613A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- memory
- memory controller
- memory device
- sent
- 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.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- 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/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
Definitions
- the technology of the disclosure relates generally to sending and receiving data to and from a memory device and, particularly, to an encoding scheme for the same.
- aspects disclosed in the detailed description include systems and methods for adaptive data encoding for memory systems.
- exemplary aspects of the present disclosure contemplate replacing a data bus inversion encoding technique with a more flexible encoding scheme which periodically calculates cluster centers based on pending data transactions.
- the dynamic cluster centers are used with an exclusive OR (XOR) function to minimize the number of bits that consume power sent over a memory bus. For example, in some standards, sending a one involves a state transition and consumes power. In other standards, sending a zero involves a state transition and consumes power.
- the present disclosure is applicable to both situations. By minimizing the power consuming bits sent over the memory bus, less power is consumed.
- an integrated circuit includes a bus interface configured to be coupled to a memory bus.
- the IC also includes a memory controller coupled to the bus interface.
- the memory controller is configured to send one or more data masks from a plurality of data masks to a memory device through the bus interface.
- the one or more data masks comprise respective patterns to be used in decoding encoded data sent to the memory device.
- an IC in another aspect, includes a bus interface configured to be coupled to a memory bus.
- the IC also includes a memory controller coupled to the bus interface.
- the memory controller is configured to send one or more data masks from a plurality of data masks to a memory device through the bus interface.
- the one or more data masks include an encoding mask used by the memory device to encode data sent to the memory controller.
- an IC in another aspect, includes a bus interface configured to be coupled to a memory bus.
- the IC also includes a mode register including a plurality of data masks stored therein.
- the IC also includes an encoding circuit configured to encode data to be sent to a memory controller through the bus interface using at least one data mask of the plurality of data masks.
- an IC in another aspect, includes a bus interface configured to be coupled to a memory bus.
- the IC also includes a mode register configured to have one or more data masks stored therein for decoding data sent from a memory controller.
- Figure l is a block diagram of an exemplary memory system that may benefit from the adaptive encoding techniques of the present disclosure
- Figure 2 is a block diagram of a mobile terminal that may include the memory system of Figure 1;
- Figure 3 is a flowchart illustrating an exemplary process for adaptively encoding data transmissions according to exemplary aspects of the present disclosure; and [0012] Figures 4A-4F illustrate the steps of the process of Figure 3.
- aspects disclosed in the detailed description include systems and methods for adaptive data encoding for memory systems.
- exemplary aspects of the present disclosure contemplate replacing a data bus inversion encoding technique with a more flexible encoding scheme which periodically calculates cluster centers based on pending data transactions.
- the dynamic cluster centers are used with an exclusive OR (XOR) function to minimize bits that consume power sent over a memory bus. For example, in some standards, sending a one involves a state transition and consumes power. In other standards, sending a zero involves a state transition and consumes power.
- XOR exclusive OR
- sending a zero involves a state transition and consumes power.
- the present disclosure is applicable to both situations. By minimizing the power consuming bits sent over the memory bus, less power is consumed
- Figure 1 is a block diagram of a memory system 100 that includes a host 102 and a plurality of memory devices 104(l)-104(N) coupled by one or more memory buses 106 (only one shown).
- the host 102 may be an integrated circuit (IC) that performs as a system on a chip (SoC), application processor, main modem, or other control circuit that is designed to access the memory devices 104(l)-104(N).
- the host 102 may include a neural processing unit 108, a graphics processing unit (GPU) and multimedia engine 110, and/or a multi-core central processing unit (CPU) 112.
- the neural processing unit 108, the GPU and multimedia engine 110, and/or the multi-core CPU 112 may communicate with a memory controller 114 through a system bus 116.
- the memory controller 114 may send data to a physical layer (PHY) 118 across a data line 120.
- PHY physical layer
- the PHY 118 is a memory bus interface and may include an encoding logic 122 that routes the data from the data line 120 to appropriate pins (e.g., data pins) coupled to the memory bus 106.
- the memory devices 104(l)-104(N) may be identical, and accordingly, a discussion of a generic memory device 104 is provided.
- the memory device 104 may include an input-output (I/O) block 124.
- the I/O block 124 is a memory bus interface and communicates with banks 126 of data cell arrays 128 using read and write commands as is well understood.
- the I/O block 124 may also include an encoding logic 130 that routes the data from the data line to appropriate pins coupled to the memory bus 106.
- the memory bus 106 may include twenty-four data conductors, four clock conductors, and four read clock strobe (RDQS) conductors.
- RQS read clock strobe
- the memory bus interfaces 118, 124 may include twenty-four pins (e.g., data pins) corresponding to the data conductors, four pins (e.g., clock pins) corresponding to the clock conductors, and four pins corresponding to the RDQS conductors. Additional conductors may be provided for command and address signals, an additional clock signal, a chip select signal, and/or a reset signal.
- pins e.g., data pins
- clock pins e.g., clock pins
- Additional conductors may be provided for command and address signals, an additional clock signal, a chip select signal, and/or a reset signal.
- the conductors of the memory bus 106 are arranged in a specific layout. Namely, from a first edge moving inwards, there are data conductors (DQ0), a differential clock channel having two conductors (WCKO t, WCKO c), a differential RDQS channel having two conductors (RDQSO t, RDQSO c) and more data conductors (DQ0) shown generally as a first group 132.
- a command and address (CA[0:k]) channel conductor In a center section of the memory bus 106, a command and address (CA[0:k]) channel conductor, a differential command clock channel having two conductors (CK_t, CK_c), a chip select channel conductor, and a reset channel conductor may be positioned shown generally as a middle group 134. Then, moving outwards toward a second edge of the memory bus 106, there are data conductors (DQ1) a differential clock channel having two conductors (WCKl t, WCKl c), a differential RDQS channel having two conductors (RDQSl t, RDQSl c) and more data conductors (DQ1) shown generally as a second group 136. While there are reasons for this arrangement in terms of ease of routing, electromagnetic interference (EMI), and/or electromagnetic compatibility (EMC), it should be appreciated that other arrangements may also be used.
- EMI electromagnetic interference
- EMC electromagnetic compatibility
- the memory controller 114 may include an error correcting code (ECC) circuit 140, which may encode and decode ECC signals.
- ECC error correcting code
- the data cell arrays 128 may include an ECC cell 142 that stores parity bits and works with the ECC circuit 140 for error correction.
- ECC parity bits (p, as opposed to data 2*n) may be transmitted over an RDQS pin (e.g., RDQS t, RDQS c, or both) from the host 102 to the memory device 104 such as during a write operation.
- the ECC parity bits may be transmitted over data mask slots during a read operation.
- the host 102 may use the data mask slots (e.g., M[0:31]) for a write operation.
- Each memory device 104(l)-104(N) may have a mode register 146 and encoding circuit (not shown), which will be used to identify whether aspects of the present disclosure are in use as explained in greater detail below.
- FIG. 2 is a system-level block diagram of an exemplary mobile communication device or mobile terminal 200 such as a smart phone, mobile computing device tablet, or the like in which a memory system such the memory system 100 of Figure 1 may be found. While a mobile terminal is particularly contemplated as being capable of benefiting from exemplary aspects of the present disclosure, it should be appreciated that the present disclosure is not so limited and may be useful in any system having a memory bus that will be compliant with existing or emerging memory standards.
- the mobile terminal 200 includes an application processor 204 (sometimes referred to as a host or an SoC) that communicates with a mass storage element 206 through a universal flash storage (UFS) bus 208.
- an application processor 204 sometimes referred to as a host or an SoC
- UFS universal flash storage
- the application processor 204 may communicate with a double data rate (DDR) memory device 104 through a memory bus 106 according to exemplary aspects of the present disclosure.
- the application processor 204 may further be connected to a display 210 through a display serial interface (DSI) bus 212 and a camera 214 through a camera serial interface (CSI) bus 216.
- Various audio elements such as a microphone 218, a speaker 220, and an audio codec 222 may be coupled to the application processor 204 through a serial low-power interchip multimedia bus (SLIMbus) 224. Additionally, the audio elements may communicate with each other through a SOUNDWIRE bus 226.
- a modem 228 may also be coupled to the SLIMbus 224 and/or the SOUND WIRE bus 226.
- the modem 228 may further be connected to the application processor 204 through a peripheral component interconnect (PCI) or PCI express (PCIe) bus 230 and/or a system power management interface (SPMI) bus 232.
- PCI peripheral component interconnect
- PCIe PCI express
- SPMI system power management interface
- the SPMI bus 232 may also be coupled to a local area network (LAN or WLAN) IC (LAN IC or WLAN IC) 234, a power management integrated circuit (PMIC) 236, a companion IC (sometimes referred to as a bridge chip) 238, and a radio frequency IC (RFIC) 240.
- LAN or WLAN local area network
- PMIC power management integrated circuit
- companion IC sometimes referred to as a bridge chip
- RFIC radio frequency IC
- separate PCI buses 242 and 244 may also couple the application processor 204 to the companion IC 238 and the WLAN IC 234.
- the application processor 204 may further be connected to sensors 246 through a sensor bus 248
- the RFIC 240 may couple to one or more RFFE elements, such as an antenna tuner 252, a switch 254, and a power amplifier 256 through a radio frequency front end (RFFE) bus 258. Additionally, the RFIC 240 may couple to an envelope tracking power supply (ETPS) 260 through a bus 262, and the ETPS 260 may communicate with the power amplifier 256.
- RFFE elements including the RFIC 240, may be considered an RFFE system 264. It should be appreciated that the RFFE bus 258 may be formed from a clock line and a data line (not illustrated).
- data communication between the memory controller 114 and the memory device 104 may be one of the largest power consumers.
- LPDDR low power double data rate
- DBI data bus inversion
- DMI data mask inversion
- DBI does provide some power savings over non-encoded signaling
- the granularity of DBI encoding is relatively coarse and may not optimally encode ones and zeros.
- DBI may also be used in other systems such as a normal DDR memory, graphical DDR (GDDR) memory, high bandwidth memory (HBM) and the like. It is also possible that DBI may be used outside memory configurations.
- GDDR graphical DDR
- HBM high bandwidth memory
- DBI may be used outside memory configurations.
- sending a logical one involves a logical high or state transition on the line that consumes power
- some systems may consume power when sending a zero.
- the present disclosure works in either event with the substitution of the zeros for ones. Accordingly, all such environments may benefit from aspects of the present disclosure.
- double data rate is a term of art within the JEDEC specifications and the memory world in general.
- DDR is defined to be a signaling technique that uses both the falling and rising edges of the clock signal. This use of both edges is independent of frequency, and changes (e.g., doubling) in frequency do not fall within DDR unless both edges are used.
- DDR with single data rate (SDR) which can transfer data on a rising edge or a falling edge, but not both.
- Exemplary aspects of the present disclosure provide an adaptive encoding scheme that provides greater granularity by allowing for better data masks to be used to encode the data.
- the DMI bits may be repurposed to indicate which data mask is being used so that the memory device may decode using the correct data mask.
- the techniques of the present disclosure are readily expressed as a process and specifically as a process 300 illustrated in Figure 3, with additional explanation of the steps provided with reference to Figures 4A-4F.
- the process 300 begin by calculating optimum masks based on observed traffic (block 302). That is, the memory controller 114 knows the data contained in any write command and is likely to know certain types of read data (e.g., weights in a machine learning system).
- the memory controller 114 may have a plurality of write transactions in a queue 400 and periodically, (e.g., every sixty-four (64) transactions) the memory controller 114 may calculate a set of cluster centers 402(0)-402(N) (where, as illustrated, N is 3) based on the transactions in the queue. This calculation may be done by having an up/down counter 408 (see Figure 4C) representing each cluster center (e.g., one counter per data line per cluster for sixty -four counters in an exemplary system). For each sixteen- bit chunk of data 404, the memory controller 114 may find the closest cluster center 402(0) based on finding a minimum Hamming distance 406(0)-406(3), see also Figure 4B where cluster center 402(0) is identified.
- cluster sizes may be chosen. Thus, for example, instead of sixteen-bit chunks of data, four, eight, thirty-two, sixty- four, or more may be used. Likewise, while powers of two are contemplated, other values are possible. [0029] Note that because in some instances the memory controller 114 may know what the pattern is within data that is being read, the memory controller 114 may instruct the memory device 104 to encode data using the data masks. That is, the data mask may act as an encoding mask comprising values inserted into a function (e.g., XOR) that encodes the data to be sent to the memory device 104.
- a function e.g., XOR
- the corresponding counters 408 for the found cluster center 402(0) is incremented if a one is indicated and decremented if a zero is indicated in the data 404.
- a new cluster 410 is calculated as shown in Figure 4D.
- the new cluster 410 is chosen based on whether the updated counters are greater than five. So, for example, as illustrated in Figure 4D, elements 412(1)-412(2), 412(4)-412(6), 412(9)-412(14), and 412(16) are less than five, so those bits are 0, whereas elements 412(3), 412(7), 412(8), and 412(15) are more than five and those bits are 1. It should be appreciated that at start up or configuration, a set of default cluster centers may initially be provided.
- the memory controller 114 communicates the new data masks based on the updated clusters 410 to the memory device 104 and particularly to the mode register 146 (block 304, see also Figure 4E).
- the memory controller 114 may XOR data bits with the mask that minimizes the Hamming distance (block 306), see also Figure 4F where a DMI signal that is used for DBI may be used to communicate which cluster center is to be used by the memory device 104 by repurposing pins to indicate the selected mask (block 308).
- the memory device 104 will then XOR the received bits with the identified mask to recover the data and perform the write command (block 310).
- the adaptive data encoding for memory systems may be provided in or integrated into any processor-based device.
- Examples include a set top box, an entertainment unit, a navigation device, a communications device, a fixed location data unit, a mobile location data unit, a global positioning system (GPS) device, a mobile phone, a cellular phone, a smart phone, a session initiation protocol (SIP) phone, a tablet, a phablet, a server, a computer, a portable computer, a mobile computing device, a wearable computing device (e.g., a smart watch, a health or fitness tracker, eyewear, etc.), a desktop computer, a personal digital assistant (PDA), a monitor, a computer monitor, a television, a tuner, a radio, a satellite radio, a music player, a digital music player, a portable music player, a digital video player, a video player, a digital video disc (DVD) player, a portable
- GPS global positioning system
- PDA personal
- DSP Digital Signal Processor
- ASIC Application Specific Integrated Circuit
- FPGA Field Programmable Gate Array
- a processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine.
- a processor may also be implemented as a combination of computing devices (e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration).
- RAM Random Access Memory
- ROM Read Only Memory
- EPROM Electrically Programmable ROM
- EEPROM Electrically Erasable Programmable ROM
- registers a hard disk, a removable disk, a CD-ROM, or any other form of computer readable medium known in the art.
- An exemplary storage medium is coupled to the processor such that the processor can read information from, and write information to, the storage medium.
- the storage medium may be integral to the processor.
- the processor and the storage medium may reside in an ASIC.
- the ASIC may reside in a remote station.
- the processor and the storage medium may reside as discrete components in a remote station, base station, or server.
- An integrated circuit comprising: a bus interface configured to be coupled to a memory bus; and a memory controller coupled to the bus interface and configured to: send one or more data masks from a plurality of data masks to a memory device through the bus interface, wherein the one or more data masks comprise respective patterns to be used in decoding encoded data sent to the memory device.
- the memory controller is further configured to send an identifier indicating which of the one or more data masks is used to encode data sent to the memory device.
- the memory controller is further configured to determine the one or more data masks to be sent.
- the one or more data masks are based on cluster centers associated with patterns in data to be sent to the memory device.
- bus interface comprises a low power double data rate (LPDDR) bus interface.
- LPDDR low power double data rate
- the memory controller is further configured to decode data sent from the memory device using one of the plurality of data masks.
- An integrated circuit comprising: a bus interface configured to be coupled to a memory bus; and a memory controller coupled to the bus interface and configured to: send one or more data masks from a plurality of data masks to a memory device through the bus interface, wherein the one or more data masks comprise an encoding mask used by the memory device to encode data sent to the memory controller.
- An integrated circuit (IC) comprising: a bus interface configured to be coupled to a memory bus; a mode register comprising a plurality of data masks stored therein; and an encoding circuit configured to encode data to be sent to a memory controller through the bus interface using at least one data mask of the plurality of data masks.
- An integrated circuit (IC) comprising: a bus interface configured to be coupled to a memory bus; and a mode register configured to have one or more data masks stored therein for decoding data sent from a memory controller.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Bus Control (AREA)
Abstract
Description
Claims
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| EP23719541.7A EP4515408A1 (en) | 2022-04-28 | 2023-03-29 | Adaptive data encoding for memory systems |
| CN202380032678.5A CN119053953A (en) | 2022-04-28 | 2023-03-29 | Adaptive data encoding for memory systems |
| KR1020247033450A KR20250003551A (en) | 2022-04-28 | 2023-03-29 | Adaptive data encoding for memory systems |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US202217661084A | 2022-04-28 | 2022-04-28 | |
| US17/661,084 | 2022-04-28 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2023211613A1 true WO2023211613A1 (en) | 2023-11-02 |
Family
ID=86185171
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/US2023/016693 Ceased WO2023211613A1 (en) | 2022-04-28 | 2023-03-29 | Adaptive data encoding for memory systems |
Country Status (5)
| Country | Link |
|---|---|
| EP (1) | EP4515408A1 (en) |
| KR (1) | KR20250003551A (en) |
| CN (1) | CN119053953A (en) |
| TW (1) | TW202347111A (en) |
| WO (1) | WO2023211613A1 (en) |
-
2023
- 2023-03-28 TW TW112111744A patent/TW202347111A/en unknown
- 2023-03-29 KR KR1020247033450A patent/KR20250003551A/en active Pending
- 2023-03-29 CN CN202380032678.5A patent/CN119053953A/en active Pending
- 2023-03-29 EP EP23719541.7A patent/EP4515408A1/en active Pending
- 2023-03-29 WO PCT/US2023/016693 patent/WO2023211613A1/en not_active Ceased
Non-Patent Citations (2)
| Title |
|---|
| SEOL HOSEOK ET AL: "Energy Efficient Data Encoding in DRAM Channels Exploiting Data Value Similarity", 2013 21ST INTERNATIONAL CONFERENCE ON PROGRAM COMPREHENSION (ICPC); [INTERNATIONAL SYMPOSIUM ON COMPUTER ARCHITECTURE.(ISCA)], IEEE, US, 18 June 2016 (2016-06-18), pages 719 - 730, XP032950701, ISSN: 1063-6897, ISBN: 978-0-7695-3174-8, [retrieved on 20160824], DOI: 10.1109/ISCA.2016.68 * |
| WANG SHIBO ET AL: "Reducing data movement energy via online data clustering and encoding", 2016 49TH ANNUAL IEEE/ACM INTERNATIONAL SYMPOSIUM ON MICROARCHITECTURE (MICRO), IEEE, 15 October 2016 (2016-10-15), pages 1 - 13, XP033022439, DOI: 10.1109/MICRO.2016.7783735 * |
Also Published As
| Publication number | Publication date |
|---|---|
| EP4515408A1 (en) | 2025-03-05 |
| CN119053953A (en) | 2024-11-29 |
| KR20250003551A (en) | 2025-01-07 |
| TW202347111A (en) | 2023-12-01 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP7417576B2 (en) | Power saving techniques for memory systems | |
| EP3704591B1 (en) | Write credits management for non-volatile memory | |
| US10922168B2 (en) | Dynamic link error protection in memory systems | |
| US12340859B2 (en) | Hybrid memory system with increased bandwidth | |
| US11334134B2 (en) | Integrated circuit | |
| US11520727B2 (en) | Sideband signaling in a peripheral component interconnect (PCI) express (PCIE) link | |
| WO2023211613A1 (en) | Adaptive data encoding for memory systems | |
| US20140331006A1 (en) | Semiconductor memory devices | |
| US20250077447A1 (en) | Systems and methods for balancing memory speeds | |
| US20230359373A1 (en) | Selective refresh for memory devices | |
| HK40025012A (en) | Dynamic link error protection in memory systems | |
| HK40025012B (en) | Dynamic link error protection in memory systems |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 23719541 Country of ref document: EP Kind code of ref document: A1 |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 202447065008 Country of ref document: IN |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 12024552072 Country of ref document: PH |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 202380032678.5 Country of ref document: CN |
|
| REG | Reference to national code |
Ref country code: BR Ref legal event code: B01A Ref document number: 112024021518 Country of ref document: BR |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 2023719541 Country of ref document: EP |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| ENP | Entry into the national phase |
Ref document number: 2023719541 Country of ref document: EP Effective date: 20241128 |
|
| ENP | Entry into the national phase |
Ref document number: 112024021518 Country of ref document: BR Kind code of ref document: A2 Effective date: 20241016 |