New! View global litigation for patent families

US20110176679A1 - Suppressing power supply noise using data scrambling in double data rate memory systems - Google Patents

Suppressing power supply noise using data scrambling in double data rate memory systems Download PDF

Info

Publication number
US20110176679A1
US20110176679A1 US13072026 US201113072026A US20110176679A1 US 20110176679 A1 US20110176679 A1 US 20110176679A1 US 13072026 US13072026 US 13072026 US 201113072026 A US201113072026 A US 201113072026A US 20110176679 A1 US20110176679 A1 US 20110176679A1
Authority
US
Grant status
Application
Patent type
Prior art keywords
data
memory
lfsr
logic
bits
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.)
Abandoned
Application number
US13072026
Inventor
Christopher P. Mozak
Original Assignee
Mozak Christopher P
Priority date (The priority date 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 date listed.)
Filing date
Publication date

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRICAL DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/582Pseudo-random number generators
    • G06F7/584Pseudo-random number generators using finite field arithmetic, e.g. using a linear feedback shift register
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRICAL DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/58Indexing scheme relating to groups G06F7/58 - G06F7/588
    • G06F2207/582Parallel finite field implementation, i.e. at least partially parallel implementation of finite field arithmetic, generating several new bits or trits per step, e.g. using a GF multiplier

Abstract

Embodiments of the invention are generally directed to systems, methods, and apparatuses for suppressing power supply noise using data scrambling in double data rate memory systems. In some embodiments, an integrated circuit includes a transmit data path to transmit data to one or more memory devices. The transmit data path may include scrambling logic to generate, in parallel, N pseudo random outputs that are uncorrelated with each other. The output data and the pseudo random outputs are input to XOR logic. The transmit data path transmits the output the of XOR logic which has a substantially white frequency spectrum. Other embodiments are described and claimed.

Description

  • [0001]
    This application is a Continuation of pending U.S. patent application Ser. No. 11/864,141 filed Sep. 28, 2007 and claims priority thereto.
  • TECHNICAL FIELD
  • [0002]
    Embodiments of the invention generally relate to the field of integrated circuits and, more particularly, to systems, methods and apparatuses for suppressing power supply noise using data scrambling in double data rate memory systems.
  • BACKGROUND
  • [0003]
    Memory systems are frequently defined by specifications such as the DDR (double data rate) Specification. The “DDR Specification” refers to any of the specifications that define DDR technology including, for example, The DDR2 Specification published by the Joint Electron Device Engineering Council (JEDEC). The DDR Specification calls for very tight jitter and timing specifications. Meeting these jitter and timing specifications is becoming more difficult because the IO (input/output) frequencies of DDR memory systems is increasing. The majority of the jitter and timing error is due to power supply noise.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • [0004]
    Embodiments of the invention are illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings in which like reference numerals refer to similar elements.
  • [0005]
    FIG. 1 is a high-level block diagram illustrating selected aspects of a computing system implemented according to an embodiment of the invention.
  • [0006]
    FIG. 2 is a block diagram illustrating selected aspects of a transmit data path according to an embodiment of the invention.
  • [0007]
    FIG. 3 is a block diagram illustrating selected aspects of a receive data path according to an embodiment of the invention.
  • [0008]
    FIG. 4 is a conceptual diagram illustrating selected aspects of a scrambling process based on a linear feedback shift register implemented according to an embodiment of the invention.
  • [0009]
    FIG. 5 is a flow diagram illustrating selected aspects of a method for suppressing power supply noise using data scrambling according to an embodiment of the invention.
  • DETAILED DESCRIPTION
  • [0010]
    Embodiments of the invention are generally directed to systems, methods, and apparatuses for suppressing power supply noise using data scrambling in double data rate memory systems. In some embodiments, an integrated circuit includes a transmit data path to transmit data to one or more memory devices. The transmit data path may include scrambling logic to generate, in parallel, N pseudo random outputs that are uncorrelated with each other. The output data and the pseudo random outputs are input to XOR logic. The transmit data path transmits the output the of XOR logic which has a substantially white frequency spectrum.
  • [0011]
    In the context of input/output (IO) performance, the most important power supply noise cases are package resonance and first droop. Package resonance is created by the LC tank circuit formed by the on die decap and package inductance. It generally occurs in the 100-200 MHz frequency range. Somewhat related to package resonance is first droop, which is due to the sharp current steps that are created when the IO starts or stops transmitting data. In either case, the supply noise is highly dependent on the data pattern. In the case of package resonance, the worst case occurs when the data pattern contains a significant amount of energy at the resonance frequency. In the case of first droop, the worst case occurs when all IO buffers drive in the same direction (e.g., transmit 0). Using normal data traffic, it is fairly easily to hit either one of these cases. As is further described below, embodiments of the invention suppress supply noise by scrambling data that is transmitted on the memory interconnect.
  • [0012]
    FIG. 1 is a high-level block diagram illustrating selected aspects of a computing system implemented according to an embodiment of the invention. System 100 includes memory controller 110 and dynamic random access memory (DRAM) 130 coupled together via memory interconnect 140. In some embodiments, system 100 implements, at least in part, the DDR specification. In alternative embodiments, system 100 may include more elements, fewer elements, and/or different elements.
  • [0013]
    Memory controller 110 controls the flow of information into and out of DRAM 130. In some embodiments, memory controller 110 is integrated onto the same integrated circuit as one or more processing cores. In alternative embodiments, memory controller 110 may be part of a separate integrated circuit such as a memory controller hub.
  • [0014]
    Memory controller 110 includes transmit (TX) data path 112 and receive (RX) data path 114. The TX and RX data paths enable memory controller 110 to reduce power supply noise by scrambling transmitted data in a manner that is transparent to DRAM 130. In some embodiments, scrambling logic 116 generates, in parallel, a plurality of pseudo random outputs that are uncorrelated with one another. The WR data is XOR'd with the outputs of scrambling logic 116 so that the data transmitted to DRAM 130 has a substantially pseudo random pattern. Conversely, unscramble logic 118 generates a plurality of pseudo random outputs to unscramble the read (RD) data received from DRAM 130. In some embodiments, the power supply noise exhibited in data transmitted over interconnect 140 is substantially reduced because the transmitted data has a substantially white frequency spectrum. As shown in FIG. 1, embodiments of the invention may suppress supply noise on both the memory controller side and the DRAM side because the data transmitted over the memory interconnect is always scrambled. The TX and RX data paths are further discussed below with reference to FIGS. 2-5.
  • [0015]
    FIG. 2 is a block diagram illustrating selected aspects of a TX data path according to an embodiment of the invention. TX data path 200 includes control logic 202, FIFO (first in, first out) buffer 204, parallel linear feedback shift register (LFSR) 206, and XOR logic 208. In alternative embodiments, TX data path 200 may include more elements, fewer elements, and/or different elements.
  • [0016]
    LFSR 206 creates a pseudo random pattern that is used to scramble WR data before it is sent to memory. Unlike other LFSR's which provide single bit outputs, LFSR 206 provides a parallel output of multiple bits. In the illustrated embodiment, LFSR 206 provides an output of 16 bits per cycle. In alternative embodiments, LFSR 206 may output (in parallel) a different number of bits (e.g., 8, 32, 64, etc.) per cycle. The number of cycles may depend on the number of transmissions per burst. The LFSR may also shift based on the number of transmissions per burst. For example, if a burst includes transmitting 16 “chunks” of data, then LFSR 206 may execute a shift to generate a new code for each “chunk” of data in the burst. The outputs of LFSR 206 are uncorrelated with one another. Each output is XOR'd with one or more bits of the transmit bit lanes (e.g., using XOR logic 208) to “scramble” the data prior to transmitting it. Thus, the data transmitted to memory has a pseudo random pattern since the WR data is XOR'd with the pseudo random outputs of LFSR 206.
  • [0017]
    In some embodiments, LFSR 206 is initialized (or “seeded”) with at least a portion of the address associated with the WR data. This simplifies the process of unscrambling the data since the same address can be used to seed an LFSR in the RX direction during a RD operation (see, e.g., FIG. 3). In the illustrated embodiment, the seed is based on the column address including, for example, the following bits: MA[13, 11, 9:4], BA[2:0], CS[7:0]. “MA” refers to memory address and is used to select a column from a row of memory. “BA” refers to the bank address and “CS” selects the rank. In alternative embodiments, the seed may be based on a different portion of the address. In yet other alternative embodiments, the seed may be based on something other than the address of the data. Reference number 210 illustrates a seed for LFSR 206 according to an embodiment of the invention.
  • [0018]
    FIFO 204 provides a buffer for multiple write column address strobes (CASs) 212. In some embodiments, each time a write CAS is issued, a portion of the write CAS is saved in FIFO 204 to provide the seed to LFSR 206 (e.g., as shown by 214). When the write data is available (e.g., on bit lanes 216), the seed is pushed to LFSR 206. The WR data and the outputs of LFSR 206 are XOR'd (e.g., using XOR logic 208) to create scrambled data (e.g., data that has a substantially pseudo random pattern). A TX (e.g., TX 112, shown in FIG. 1) transmits the scrambled data to memory via an interconnect (e.g., interconnect 140, shown in FIG. 1).
  • [0019]
    Control logic 202 controls TX data path 200. For example, control logic 202 instructs FIFO 204 to load the seed at the appropriate times. In addition, control logic 202 may determine when LFRS 206 generates the pseudo random outputs. As illustrated in FIG. 2, in some embodiments, the TX data is split into two 16-bit portions and the same LFSR codes (or outputs) are used for each portion. That is, a 16 bit LFSR output may be used to scramble 32 bits of data. In alternative embodiments, the outputs of the LFSR may be reused (or not) differently.
  • [0020]
    FIG. 3 is a block diagram illustrating selected aspects of a receive data path according to an embodiment of the invention. RX data path 300 includes control logic 302, FIFO buffer 304, parallel LFSR 306, reorder buffer 318, and XOR logic 308. In alternative embodiments, RX data path 300 may include more elements, fewer elements, and/or different elements.
  • [0021]
    LFSR 306 creates a pseudo random pattern that is used to unscramble RD data that is received from memory. LFSR 306 provides a parallel output of multiple uncorrelated bits. In the illustrated embodiment, LFSR 306 provides an output of 16 bits per cycle. In alternative embodiments, LFSR 306 may output (in parallel) a different number of bits (e.g., 8, 32, 64, etc.) per cycle. The outputs of LFSR 306 are uncorrelated with one another. Each output is XOR'd with one or more bits of the RX lanes (e.g., using XOR logic 308) to “unscramble” the data received from memory.
  • [0022]
    In some embodiments, LFSR 306 is seeded with at least a portion of the address associated with the RD data. In the illustrated embodiment, the seed is based on the column address including, for example, the following bits: MA[13, 11, 9:4], BA[2:0], CS[7:0]. In alternative embodiments, the seed may be based on a different portion of the address. In yet other alternative embodiments, the seed may be based on something other than the address of the data. Reference number 310 illustrates a seed for LFSR 306 according to an embodiment of the invention.
  • [0023]
    FIFO 304 provides a buffer for multiple RD column address strobes (CASs) 312. In some embodiments, each time a RD CAS is issued, a portion of the RD CAS is saved in FIFO 304 to provide the seed to LFSR 306 (e.g., as shown by 314). When the RD data is available (e.g., on bit lanes 316), the seed is pushed to LFSR 306. The RD data and the outputs of LFSR 306 are XOR'd (e.g., using XOR logic 308) to create scrambled data (e.g., data that has a substantially pseudo random pattern).
  • [0024]
    The DDR Specification supports out of order data reads. Thus, data that is read back from memory may not be received in the same order that it is transmitted to memory. In some embodiments, RX data path 300 includes reorder buffer 318 to reorder the pseudo random codes that are generated from the LFSR to match the order in which data is actually received. The RD CAS may include information that indicates the order in which data is going to be read. For example, bits MA [2:0] may indicate the order of the RD data. In some embodiment, the unscramble codes are pre-calculated and stored in reorder buffer 318. Reorder buffer 318 may alter the order of the codes so that they match the order of the RD data. The RD data may then be properly unscrambled by the reordered codes. In alternative embodiments, a different mechanism may be used to match the codes with RD data that is received in a different order than it was transmitted.
  • [0025]
    Control logic 302 controls RX data path 300. For example, control logic 302 instructs FIFO 304 to load the seed at the appropriate times. In addition, control logic 302 may determine when LFRS 306 generates the pseudo random outputs. Control logic 302 may also control the operation of reorder buffer 318.
  • [0026]
    FIG. 4 is a conceptual diagram illustrating selected aspects of a scrambling (or unscrambling) process based on a parallel linear feedback shift register (LFSR) implemented according to an embodiment of the invention. Each row of table 400 illustrates the logic for calculating the output of an LFSR (e.g., LFSR 206 shown in FIG. 2 and LFSR 306 shown in FIG. 3). In some embodiments, the LFSR implements the polynomial: X16+X13+X10+X9+X8+X4+1. For example, referring to row 2, the output N+1 of bit 2 is determined by the following expression: OutN+1[2]=OutN[2]+OutN[5]+OutN[8]+OutN[9]+OutN[A]+OutN[E]. In alternative embodiments, the LFSR may implement different polynomials and/or different logic.
  • [0027]
    The effectiveness of scrambling was analyzed using MATLAB for 1333 MTs (mega transfers per second) DDR with extracted power delivery models. Table 1 (shown below) summarizes the results for both first droop and package resonance. For continuous data streams, scrambling largely eliminated supply noise. These results, however, degraded substantially when gaps were added to the data transmission. The worst case occurred when the gaps corresponded to the resonance frequency of the power delivery network. Smaller or larger gaps produced less noise since they were further away from the resonance frequency. Even with these gaps, however, scrambling still reduced the worst case supply noise by an impressive 45%.
  • [0000]
    TABLE 1
    1st Droop Resonance Pattern
    Peak 2 Peak Peak 2 Peak
    Clear Scrambled Clear Scrambled
    6.0 nS Data/0 nS Gap 479 mV 107 mV 485 mV  66 mV
    6.0 nS Data/1.5 nS Gap 509 mV 222 mV 486 mV 231 mV
    6.0 nS Data/3.0 nS Gap 357 mV 245 mV 348 mV 271 mV
    6.0 nS Data/4.5 nS Gap 205 mV 150 mV 137 mV 152 mV
    Worst Case 509 mV 245 mV 486 mV 271 mV
    Noise Reduction Baseline 52 Baseline 45
  • [0028]
    FIG. 5 is a flow diagram illustrating selected aspects of a method for suppressing power supply noise using data scrambling according to an embodiment of the invention. Referring to process block 502, scheduling logic (e.g., scheduling logic 120, shown in FIG. 1) issues a command. The command may be any of a number of different types of commands including, for example, a RD command or a WR command as shown by 502.
  • [0029]
    If the command is a WR command, then scrambling logic in the WR data path generates, in parallel, N pseudo random outputs that are uncorrelated with each other at 506. In some embodiments, the N pseudo random outputs are based, at least in part, on the WR command. For example, the scrambling logic may include a parallel LFSR and a portion of the WR CAS command may be used to seed the LFSR.
  • [0030]
    Referring to process block 508, M TX bits are scrambled by N pseudo random outputs. In some embodiments, M is 32 and N is 16. In alternative embodiments, M and/or N may have different values. In some embodiments, the M TX bits are “scrambled” by XOR'ing them with the N pseudo random outputs. The LFSR may shift once per burst of data and a different N (e.g., 16) bit code may be used for each chunk of data in a burst.
  • [0031]
    Referring to process block 510, the M scrambled bits are transmitted to one or more memory devices via a memory interconnect. In some embodiments, the M scrambled bits have a white frequency spectrum. That is, the energy at any frequency is substantially the same. On average, half of the received scrambled bits are logical highs and half of the received scrambled bits are logical lows. The scramble and transmit process may be repeated until all of the entire burst of data is sent.
  • [0032]
    If the issued command is a RD command, then scrambling logic in the RD data path generates, in parallel, N pseudo random outputs that are uncorrelated with each other at 512. In some embodiments, the N pseudo random outputs are based, at least in part, on the RD command. For example, the scrambling logic may include a parallel LFSR and a portion of the RD CAS command may be used to seed the LFSR.
  • [0033]
    Referring to process block 514, the M scrambled bits are received from one or more memory devices via the memory interconnect. The received scrambled bits, like the transmitted scrambled bits have a white frequency spectrum. On average, half of the received scrambled bits are logical highs and half of the received scrambled bits are logical lows.
  • [0034]
    Referring to process block 516, M RD bits are unscrambled by the N pseudo random outputs. In some embodiments, M is 32 and N is 16. In alternative embodiments, M and/or N may have different values. In some embodiments, the M RD bits are “unscrambled” by XOR'ing them with the N pseudo random outputs. The LFSR may shift once per burst of data and a different N (e.g., 16) bit code may be used for each chunk of data in a burst.
  • [0035]
    Embodiments of the invention do not affect the performance of error correction codes (ECCs). In fact, embodiments of the invention may actually enhance ECC coverage by protecting against transmission errors on the command interconnect. For example, if a RD address is corrupted by a transmission error on the command interconnect, then the wrong data will be returned to the memory controller. The data will be unscrambled using the “wrong” seed (e.g., based on the correct RD address) and this will flag an ECC error.
  • [0036]
    Elements of embodiments of the present invention may also be provided as a machine-readable medium for storing the machine-executable instructions. The machine-readable medium may include, but is not limited to, flash memory, optical disks, compact disks-read only memory (CD-ROM), digital versatile/video disks (DVD) ROM, random access memory (RAM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), magnetic or optical cards, propagation media or other type of machine-readable media suitable for storing electronic instructions. For example, embodiments of the invention may be downloaded as a computer program which may be transferred from a remote computer (e.g., a server) to a requesting computer (e.g., a client) by way of data signals embodied in a carrier wave or other propagation medium via a communication link (e.g., a modem or network connection).
  • [0037]
    In the description above, certain terminology is used to describe embodiments of the invention. For example, the term “logic” is representative of hardware, firmware, software (or any combination thereof) to perform one or more functions. For instance, examples of “hardware” include, but are not limited to, an integrated circuit, a finite state machine, or even combinatorial logic. The integrated circuit may take the form of a processor such as a microprocessor, an application specific integrated circuit, a digital signal processor, a micro-controller, or the like.
  • [0038]
    It should be appreciated that reference throughout this specification to “one embodiment” or “an embodiment” means that a particular feature, structure or characteristic described in connection with the embodiment is included in at least one embodiment of the present invention. Therefore, it is emphasized and should be appreciated that two or more references to “an embodiment” or “one embodiment” or “an alternative embodiment” in various portions of this specification are not necessarily all referring to the same embodiment. Furthermore, the particular features, structures or characteristics may be combined as suitable in one or more embodiments of the invention.
  • [0039]
    Similarly, it should be appreciated that in the foregoing description of embodiments of the invention, various features are sometimes grouped together in a single embodiment, figure, or description thereof for the purpose of streamlining the disclosure aiding in the understanding of one or more of the various inventive aspects. This method of disclosure, however, is not to be interpreted as reflecting an intention that the claimed subject matter requires more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive aspects lie in less than all features of a single foregoing disclosed embodiment. Thus, the claims following the detailed description are hereby expressly incorporated into this detailed description.

Claims (24)

  1. 1. An integrated circuit comprising:
    a transmit data path to transmit data to one or more memory devices, the transmit data path including,
    scrambling logic to generate, in parallel, N pseudo random outputs that are uncorrelated with each other,
    XOR logic having as a first input the N pseudo random outputs of the scrambling logic and having as a second input M data bits, the XOR logic to output, in parallel, M scrambled bits, and
    a transmitter coupled with the XOR logic, the transmitter to transmit the M scrambled bits to the one or more memory devices via a memory interconnect, wherein the M scrambled bits have a substantially pseudo random pattern.
  2. 2. The integrated circuit of claim 1, wherein the scrambling logic comprises a parallel linear feedback shift register (LFSR).
  3. 3. The integrated circuit of claim 2, wherein a seed for the parallel LFSR is based, at least in part, on a memory address associated with the M scrambled bits.
  4. 4. The integrated circuit of claim 3, wherein the seed for the parallel LFSR is based, at least in part, on a column address associated with the M scrambled bits.
  5. 5. The integrated circuit of claim 4, wherein the seed for the parallel LFSR is scrambled prior to use.
  6. 6. The integrated circuit of claim 4, wherein the parallel LFSR is to be seeded at the beginning of each write burst.
  7. 7. The integrated circuit of claim 2, wherein the parallel LFSR is based, at least in part, on the polynomial: X16+X13+X10+X9+X8+X4+1.
  8. 8. The integrated circuit of claim 1, further comprising:
    a receive data path to receive data from the one or more memory devices, the receive data path including,
    a receiver to receive, in parallel, M scrambled bits from the memory interconnect,
    unscrambling logic to generate, in parallel, N pseudo random outputs that are uncorrelated with each other, and
    XOR logic having as a first input the M scrambled bits from the memory interconnect and having as a second input the N pseudo random outputs of the unscrambling logic, the XOR logic to output, in parallel, M unscrambled bits.
  9. 9. The integrated circuit of claim 8, wherein the unscrambling logic comprises a parallel linear feedback shift register (LFSR).
  10. 10. The integrated circuit of claim 9, wherein a seed for the parallel LFSR is based, at least in part, on a column address associated with the M scrambled bits.
  11. 11. The integrated circuit of claim 4, wherein the parallel LFSR is to be seeded at the beginning of each read burst.
  12. 12. A method comprising:
    issuing a write command to instruct a transmit data path to write a burst of data to memory;
    generating, in parallel, N pseudo random outputs that are uncorrelated with each other based, at least in part, on the write command;
    scrambling M transmit bits based, at least in part, on the N pseudo random outputs to create M scrambled bits; and
    transmitting the M scrambled bits to one or more memory devices via a memory interconnect.
  13. 13. The method of claim 12, wherein generating, in parallel, N pseudo random outputs that are uncorrelated with each other based, at least in part, on the write command comprises:
    generating, in parallel, N pseudo random outputs that are uncorrelated with each other based, at least in part, on a memory address associated the burst of data.
  14. 14. The method of claim 13, wherein generating, in parallel, N pseudo random outputs that are uncorrelated with each other based, at least in part, on a memory address associated the burst of data comprises:
    generating, in parallel, N pseudo random outputs that are uncorrelated with each other based, at least in part, on a column address associated the burst of data.
  15. 15. The method of claim 12, further comprising:
    issuing a read command to instruct a receive data path to read a burst of data from memory;
    generating, in parallel, N pseudo random outputs that are uncorrelated with each other based, at least in part, on the read command;
    receiving M scrambled bits from one or more memory devices via a memory interconnect; and
    unscrambling the M scrambled bits based, at least in part, on the N pseudo random outputs to create M unscrambled bits.
  16. 16. A system comprising:
    one or more dynamic random access memory devices (DRAMs); and
    an integrated circuit coupled with the one or more DRAMs via a memory interconnect, the integrated circuit having a transmit data path to transmit data to the one or more memory devices, the transmit data path including,
    scrambling logic to generate, in parallel, N pseudo random outputs that are uncorrelated with each other,
    XOR logic having as a first input the N pseudo random outputs of the scrambling logic and having as a second input M data bits, the XOR logic to output, in parallel, M scrambled bits, and
    a transmitter coupled with the XOR logic, the transmitter to transmit the M scrambled bits to the one or more memory devices via the memory interconnect, wherein the M scrambled bits have a substantially pseudo random pattern.
  17. 17. The system of claim 16, wherein the scrambling logic comprises a parallel linear feedback shift register (LFSR).
  18. 18. The system of claim 17, wherein a seed for the parallel LFSR is based, at least in part, on a memory address associated with the M scrambled bits.
  19. 19. The system of claim 18, wherein the seed for the parallel LFSR is scrambled prior to use.
  20. 20. The system of claim 17, wherein the parallel LFSR is based, at least in part, on the polynomial: X16+X13+X10+X9+X8+X4+1.
  21. 21. The system of claim 16, wherein the integrated circuit further comprises:
    a receive data path to receive data from the one or more memory devices, the receive data path including,
    a receiver to receive, in parallel, M scrambled bits from the memory interconnect,
    unscrambling logic to generate, in parallel, N pseudo random outputs that are uncorrelated with each other, and
    XOR logic having as a first input the M scrambled bits from the memory interconnect and having as a second input the N pseudo random outputs of the unscrambling logic, the XOR logic to output, in parallel, M unscrambled bits.
  22. 22. The system of claim 21, wherein the unscrambling logic comprises a parallel linear feedback shift register (LFSR).
  23. 23. The system of claim 22, wherein a seed for the parallel LFSR is based, at least in part, on a column address associated with the M scrambled bits.
  24. 24. The system of claim 23, wherein the parallel LFSR is to be seeded at the beginning of each read burst.
US13072026 2007-09-28 2011-03-25 Suppressing power supply noise using data scrambling in double data rate memory systems Abandoned US20110176679A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US11864141 US7945050B2 (en) 2007-09-28 2007-09-28 Suppressing power supply noise using data scrambling in double data rate memory systems
US13072026 US20110176679A1 (en) 2007-09-28 2011-03-25 Suppressing power supply noise using data scrambling in double data rate memory systems

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13072026 US20110176679A1 (en) 2007-09-28 2011-03-25 Suppressing power supply noise using data scrambling in double data rate memory systems

Publications (1)

Publication Number Publication Date
US20110176679A1 true true US20110176679A1 (en) 2011-07-21

Family

ID=40019709

Family Applications (2)

Application Number Title Priority Date Filing Date
US11864141 Active 2029-12-26 US7945050B2 (en) 2007-09-28 2007-09-28 Suppressing power supply noise using data scrambling in double data rate memory systems
US13072026 Abandoned US20110176679A1 (en) 2007-09-28 2011-03-25 Suppressing power supply noise using data scrambling in double data rate memory systems

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US11864141 Active 2029-12-26 US7945050B2 (en) 2007-09-28 2007-09-28 Suppressing power supply noise using data scrambling in double data rate memory systems

Country Status (5)

Country Link
US (2) US7945050B2 (en)
JP (1) JP4981008B2 (en)
CN (1) CN101447216B (en)
DE (1) DE102008048941A1 (en)
GB (1) GB2453259B (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8996947B2 (en) * 2012-01-04 2015-03-31 Samsung Electronics Co., Ltd. Generation of program data for nonvolatile memory

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8503678B2 (en) * 2007-09-28 2013-08-06 Intel Corporation Suppressing power supply noise using data scrambling in double data rate memory systems
US7945050B2 (en) * 2007-09-28 2011-05-17 Intel Corporation Suppressing power supply noise using data scrambling in double data rate memory systems
KR101504338B1 (en) * 2009-03-04 2015-03-23 삼성전자주식회사 Method of operating a non-volatile memory device
CN101925056B (en) 2009-06-10 2013-08-28 华为技术有限公司 Scrambling code sequence generation method, device and system for scrambling or descrambling
US8386856B2 (en) 2009-07-01 2013-02-26 Silicon Motion, Inc. Data storage device capable of selecting scrambled signals according to transmission power
CN101937705B (en) * 2009-07-01 2012-05-09 慧帝科技(深圳)有限公司 Data storage device and method for data access
KR20110055178A (en) * 2009-11-19 2011-05-25 삼성전자주식회사 Flash memory device and memory system including the same
US8375225B1 (en) 2009-12-11 2013-02-12 Western Digital Technologies, Inc. Memory protection
WO2011105247A1 (en) 2010-02-26 2011-09-01 シスメックス株式会社 Analysis device and reagent container
CN102208210B (en) * 2010-03-31 2016-04-27 深圳市朗科科技股份有限公司 A flash memory device and data storage method
US8689018B2 (en) 2010-12-21 2014-04-01 Intel Corporation Apparatus, method, and system for predictive power delivery noise reduction
US20130279622A1 (en) * 2011-09-30 2013-10-24 Venkatraman Iyer Method and system of reducing power supply noise during training of high speed communication links
US8923417B1 (en) * 2012-01-12 2014-12-30 Altera Corporation Methods and apparatus for transceiver power noise reduction
US8731199B2 (en) * 2012-09-28 2014-05-20 Sap Ag Zero knowledge proofs for arbitrary predicates over data
KR101401953B1 (en) 2013-01-08 2014-05-30 홍익대학교 산학협력단 Apparatus and method for generating random number using graphic processing unit
US9374004B2 (en) * 2013-06-28 2016-06-21 Intel Corporation I/O driver transmit swing control
US9542261B2 (en) 2013-07-01 2017-01-10 Ixia Methods, systems, and computer readable media for multi-packet cyclic redundancy check engine
US9684580B2 (en) * 2013-11-05 2017-06-20 Ixia Methods, systems, and computer readable media for efficient scrambling of data for line rate transmission in high speed communications networks
US9792246B2 (en) * 2014-12-27 2017-10-17 Intel Corporation Lower-power scrambling with improved signal integrity

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5412665A (en) * 1992-01-10 1995-05-02 International Business Machines Corporation Parallel operation linear feedback shift register
US5504479A (en) * 1995-06-07 1996-04-02 Western Atlas International, Inc. Carrierless amplitude and phase modulation telementry for use in electric wireline well logging
US6240432B1 (en) * 1998-12-28 2001-05-29 Vanguard International Semiconductor Corporation Enhanced random number generator
US20020120897A1 (en) * 2001-02-28 2002-08-29 Eby David H. Test generator having a poisson distribution error signal
US20030048903A1 (en) * 2001-06-13 2003-03-13 Fujitsu Limited Encryption secured against DPA
US6640236B1 (en) * 1999-08-31 2003-10-28 Qualcomm Incorporated Method and apparatus for generating multiple bits of a pseudonoise sequence with each clock pulse by computing the bits in parallel
US20040111663A1 (en) * 2002-11-08 2004-06-10 Michael Lewis Method of error control coding and decoding of messages in a packet-based data transmission system
US20060041800A1 (en) * 2004-08-23 2006-02-23 Johnson James B Method and apparatus for generating and detecting initialization patterns for high speed DRAM systems
US20060085710A1 (en) * 2004-09-30 2006-04-20 Michael Spica Testing memories
US20060281425A1 (en) * 2005-06-08 2006-12-14 Jungerman Roger L Feed forward spur reduction in mixed signal system
US20070290902A1 (en) * 2006-05-27 2007-12-20 Samsung Electronics Co., Ltd Semiconductor devices, a system including semiconductor devices and methods thereof
US20090086972A1 (en) * 2007-09-28 2009-04-02 Intel Corporation Suppressing power supply noise using data scrambling in double data rate memory systems
US20100153699A1 (en) * 2007-09-28 2010-06-17 Falconer Maynard C Suppressing power supply noise using data scrambling in double data rate memory systems
US7793195B1 (en) * 2006-05-11 2010-09-07 Link—A—Media Devices Corporation Incremental generation of polynomials for decoding reed-solomon codes
US7843926B1 (en) * 2005-04-05 2010-11-30 Oracle America, Inc. System for providing virtualization of network interfaces at various layers

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2927163B2 (en) * 1993-11-30 1999-07-28 日本ビクター株式会社 Information signal recording method and an information signal recording apparatus
JP2723832B2 (en) * 1994-06-07 1998-03-09 松下電器産業株式会社 Optical information recording medium and optical information recording method, and optical information reproducing apparatus using them
JPH0850562A (en) * 1994-08-05 1996-02-20 Fujitsu Ltd Monitoring circuit for memory
KR100657240B1 (en) 1999-07-10 2007-01-12 삼성전자주식회사 Random data generator and scrambler using the same
JP3861878B2 (en) * 2002-03-29 2006-12-27 ソニー株式会社 Data recording and reproducing method and a data recording and reproducing apparatus
CN1838323A (en) * 2005-01-19 2006-09-27 赛芬半导体有限公司 Methods for preventing fixed pattern programming
JP2008217857A (en) * 2007-02-28 2008-09-18 Toshiba Corp Memory controller and semiconductor device

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5412665A (en) * 1992-01-10 1995-05-02 International Business Machines Corporation Parallel operation linear feedback shift register
US5504479A (en) * 1995-06-07 1996-04-02 Western Atlas International, Inc. Carrierless amplitude and phase modulation telementry for use in electric wireline well logging
US6240432B1 (en) * 1998-12-28 2001-05-29 Vanguard International Semiconductor Corporation Enhanced random number generator
US6640236B1 (en) * 1999-08-31 2003-10-28 Qualcomm Incorporated Method and apparatus for generating multiple bits of a pseudonoise sequence with each clock pulse by computing the bits in parallel
US20020120897A1 (en) * 2001-02-28 2002-08-29 Eby David H. Test generator having a poisson distribution error signal
US20030048903A1 (en) * 2001-06-13 2003-03-13 Fujitsu Limited Encryption secured against DPA
US20040111663A1 (en) * 2002-11-08 2004-06-10 Michael Lewis Method of error control coding and decoding of messages in a packet-based data transmission system
US20060041800A1 (en) * 2004-08-23 2006-02-23 Johnson James B Method and apparatus for generating and detecting initialization patterns for high speed DRAM systems
US20060085710A1 (en) * 2004-09-30 2006-04-20 Michael Spica Testing memories
US7843926B1 (en) * 2005-04-05 2010-11-30 Oracle America, Inc. System for providing virtualization of network interfaces at various layers
US20060281425A1 (en) * 2005-06-08 2006-12-14 Jungerman Roger L Feed forward spur reduction in mixed signal system
US7793195B1 (en) * 2006-05-11 2010-09-07 Link—A—Media Devices Corporation Incremental generation of polynomials for decoding reed-solomon codes
US20070290902A1 (en) * 2006-05-27 2007-12-20 Samsung Electronics Co., Ltd Semiconductor devices, a system including semiconductor devices and methods thereof
US20090086972A1 (en) * 2007-09-28 2009-04-02 Intel Corporation Suppressing power supply noise using data scrambling in double data rate memory systems
US20100153699A1 (en) * 2007-09-28 2010-06-17 Falconer Maynard C Suppressing power supply noise using data scrambling in double data rate memory systems

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Vigoda, Benjamin, "Analog Logic: Continious-Time Analog Circuits for Statistical Signal Processing", September 2003, pp. 1 and 112. *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8996947B2 (en) * 2012-01-04 2015-03-31 Samsung Electronics Co., Ltd. Generation of program data for nonvolatile memory

Also Published As

Publication number Publication date Type
JP2009104598A (en) 2009-05-14 application
CN101447216A (en) 2009-06-03 application
GB0817778D0 (en) 2008-11-05 grant
DE102008048941A1 (en) 2009-04-09 application
US20090086972A1 (en) 2009-04-02 application
JP4981008B2 (en) 2012-07-18 grant
CN101447216B (en) 2012-04-04 grant
GB2453259A (en) 2009-04-01 application
US7945050B2 (en) 2011-05-17 grant
GB2453259B (en) 2010-02-10 grant

Similar Documents

Publication Publication Date Title
US20100262889A1 (en) Reliability, availability, and serviceability in a memory device
US6393597B1 (en) Mechanism for decoding linearly-shifted codes to facilitate correction of bit errors due to component failures
US20100253555A1 (en) Encoding method and system, decoding method and system
US6741253B2 (en) Embedded memory system and method including data error correction
US20050207574A1 (en) System and method for generating pseudorandom numbers
US6473880B1 (en) System and method for protecting data and correcting bit errors due to component failures
US6279135B1 (en) On-the-fly row-syndrome generation for DVD controller ECC
US6738942B1 (en) Product code based forward error correction system
US5477551A (en) Apparatus and method for optimal error correcting code to parity conversion
US4888773A (en) Smart memory card architecture and interface
US5173905A (en) Parity and error correction coding on integrated circuit addresses
US6816991B2 (en) Built-in self-testing for double data rate input/output
US4956709A (en) Forward error correction of data transmitted via television signals
US5379304A (en) Method and structure for providing error correction code and parity for each byte on SIMM's
US20110032932A2 (en) Apparatus and method for producing device identifiers for serially interconnected devices of mixed type
US6976194B2 (en) Memory/Transmission medium failure handling controller and method
US7073117B1 (en) Method and apparatus for generating bit errors in a forward error correction (FEC) system to estimate power dissipation characteristics of the system
US7644347B2 (en) Silent data corruption mitigation using error correction code with embedded signaling fault detection
US6996766B2 (en) Error detection/correction code which detects and corrects a first failing component and optionally a second failing component
US6639865B2 (en) Memory device, method of accessing the memory device, and reed-solomon decoder including the memory device
US4961193A (en) Extended errors correcting device having single package error correcting and double package error detecting codes
US6052815A (en) ECC system for generating a CRC syndrome over randomized data in a computer storage device
US7421525B2 (en) System including a host connected to a plurality of memory modules via a serial memory interconnect
US5991911A (en) Concurrent generation of ECC error syndromes and CRC validation syndromes in a DVD storage device
US6163871A (en) RAM based error correction code encoder and syndrome generator with programmable interleaving degrees