ES2777777T3 - Codificación de datos mediante la combinación de máscara de datos y la inversión del bus de datos - Google Patents

Codificación de datos mediante la combinación de máscara de datos y la inversión del bus de datos Download PDF

Info

Publication number
ES2777777T3
ES2777777T3 ES17153209T ES17153209T ES2777777T3 ES 2777777 T3 ES2777777 T3 ES 2777777T3 ES 17153209 T ES17153209 T ES 17153209T ES 17153209 T ES17153209 T ES 17153209T ES 2777777 T3 ES2777777 T3 ES 2777777T3
Authority
ES
Spain
Prior art keywords
data
encoded data
encoded
mask signal
memory device
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.)
Active
Application number
ES17153209T
Other languages
English (en)
Inventor
Aliazam Abbasfar
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Rambus Inc
Original Assignee
Rambus Inc
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
Application filed by Rambus Inc filed Critical Rambus Inc
Application granted granted Critical
Publication of ES2777777T3 publication Critical patent/ES2777777T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4265Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Dram (AREA)
  • Dc Digital Transmission (AREA)
  • Error Detection And Correction (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

Un controlador de memoria (102) para controlar el funcionamiento de un dispositivo de memoria DRAM (104), comprendiendo el controlador de memoria (102): un codificador (106) para generar datos codificados (DQ) y una señal de máscara de datos (DM) que acompaña a los datos codificados (DQ), donde el codificador (106) está configurado para: (i) si los datos codificados (DQ) deben enmascararse por el dispositivo de memoria DRAM (104), generar los datos codificados (DQ) como un patrón de bits predeterminado y generar que la señal de máscara de datos (DM) tenga un primer estado; (ii) si los datos codificados (DQ) se deben invertir y escribir en una matriz del dispositivo de memoria DRAM (104), generar los datos codificados (DQ) como datos invertidos y generar que la señal de máscara de datos (DM) tenga un segundo estado. (iii) si los datos codificados (DQ) se deben no invertir y escribir en la matriz del dispositivo de memoria DRAM (104), generar los datos codificados (DQ) como datos no invertidos y generar que la señal de máscara de datos (DM) tenga el primer estado; y un transmisor (108) configurado para transmitir los datos codificados (DQ) y la señal de máscara de datos (DM) al dispositivo de memoria DRAM (104).

Description

DESCRIPCIÓN
Codificación de datos mediante la combinación de máscara de datos y la inversión del bus de datos
La presente descripción se refiere a datos de codificación para transferir en un enlace de comunicación chip a chip. Los dispositivos de circuito integrado se comunican entre sí mediante circuitos de entrada/salida (E/S) que están configurados para transmitir y recibir datos de varios bits a través de una pluralidad de líneas de señal. Cuando varios controladores de salida en los circuitos cambian de estado al mismo tiempo a alta velocidad para transmitir los datos de varios bits, la corriente cambiante que los controladores de salida extraen de una fuente de alimentación induce un voltaje que produce una perturbación de la fuente de alimentación, comúnmente conocida como ruido de salida de conmutación simultánea (“SSO”) (o ruido de conmutación simultánea (“SSN”)). El SSN puede causar un comportamiento transitorio no deseado entre los controladores de salida, los receptores de entrada o la lógica interna en los circuitos.
El documento US 2003/0158981 A1 describe un procedimiento y un sistema para transferir datos leídos desde un dispositivo de memoria que tiene un bus de datos y un pin de enmascaramiento de datos adaptado para recibir una señal de enmascaramiento durante las operaciones de escritura del dispositivo de memoria. El procedimiento incluye colocar una secuencia de palabras de datos leídos en el bus de datos y aplicar una señal de inversión del bus de datos en el pin de enmascaramiento de datos, indicando la señal de inversión del bus de datos si los datos contenidos en cada palabra de datos leídos se han invertido.
Resumen de la invención
La invención es como se define en las reivindicaciones independientes 1, 3, 5 y 7. Otros aspectos de la invención son como se establecen en las reivindicaciones dependientes.
Breve descripción de los dibujos
La figura 1 ilustra un sistema que incluye un codificador y un decodificador capaces de codificar y decodificar datos, según una realización. La figura 2 es un diagrama de flujo que ilustra un procedimiento de codificación de datos, según una realización. La figura 3 ilustra un ejemplo de un circuito codificador, según una realización. La figura 4 es un diagrama de flujo que ilustra un procedimiento de decodificación de datos, según una realización. La figura 5 ilustra un ejemplo de un circuito decodificador, según una realización. La figura 6A ilustra los pesos de Hamming (HW) presentes en los datos de 9 bits, incluidos los datos no codificados de 8 bits y un bit DBI. La figura 6B ilustra los pesos de Hamming presentes en los datos codificados de 9 bits incluidos un bit DBI y los datos codificados de 8 bits codificados según una realización.
Descripción detallada de las realizaciones
Las técnicas utilizadas para reducir el SSN en enlaces en paralelo incluyen la inversión del bus de datos (DBI), también conocida como inversión dinámica del bus. La DBI invierte algunos de los datos de varios bits que se transferirán en función de los bits anteriores transmitidos a través del enlace de comunicación en paralelo, por ejemplo, para reducir el SSN al disminuir el número de transiciones de conmutación del transmisor que se producen a través del enlace. Un circuito usa una señal de máscara de datos (dm) para indicar a otro circuito que los datos enviados por un circuito deben ser ignorados por el otro circuito. Por ejemplo, la señal de máscara de datos puede ser utilizada por un controlador de memoria para indicar a un dispositivo de memoria que los datos transmitidos por el controlador de memoria al dispositivo de memoria deben ignorarse. La señal de máscara de datos puede ser un nivel de voltaje en un pin del circuito integrado del controlador de memoria o parte de un comando transmitido entre el controlador de memoria y el dispositivo de memoria.
Las realizaciones de la presente descripción incluyen un esquema de codificación de datos para la transmisión de datos de un circuito a otro circuito que combina codificación DBI y codificación no DBI y usa una señal de máscara de datos para indicar el tipo de codificación utilizada. En este caso, la expresión “codificación no DBI” se utiliza para referirse a cualquier esquema de codificación que sea diferente de DBI. La señal de máscara de datos en un primer estado indica que los datos transmitidos de un circuito a dicho otro circuito deben ser ignorados, y la señal de máscara de datos en un segundo estado indica que los datos transmitidos de un circuito a dicho otro circuito no deben ser ignorados. Si la señal de máscara de datos está en el segundo estado, un primer subconjunto de los datos se codifica con la inversión del bus de datos y un segundo subconjunto de datos se codifica de manera diferente a la inversión del bus de datos. El esquema de codificación según las realizaciones descritas en esta invención tiene la ventaja de que el ruido SSO puede reducirse drásticamente cuando los datos codificados se transmiten de un circuito a otro circuito.
Ahora se hará referencia a varias realizaciones de la presente descripción, cuyos ejemplos se ilustran en las figuras adjuntas. Se observa que, siempre que sea posible, pueden usarse números de referencia parecidos o similares en las figuras y pueden indicar una funcionalidad parecida o similar. Las figuras representan realizaciones de la presente descripción solo con fines ilustrativos. Un experto en la materia reconocerá fácilmente a partir de la siguiente descripción que se pueden emplear realizaciones alternativas de las estructuras y procedimientos ilustrados en esta invención sin apartarse de los principios de la descripción descritos en esta invención.
La figura 1 ilustra un sistema que incluye un codificador y un decodificador capaces de codificar y decodificar datos, según una realización. El sistema de la figura 1 incluye dos circuitos que se comunican entre sí en un enlace de comunicación en paralelo 114. Por ejemplo, el circuito 102 puede ser un controlador de memoria, y el circuito 104 puede ser un dispositivo de memoria tal como una DRAM o SRAM. Sin embargo, los circuitos 102, 104 pueden ser otros tipos de circuitos que comunican datos entre sí.
El enlace de comunicación en paralelo 114 puede ser un bus en una placa de circuito en la que residen los circuitos 102, 104, y tiene un ancho de datos (n 2 bits) mayor que el número de bits (n bits) de datos Dn a transmitir desde el controlador de memoria 102 al dispositivo de memoria 104. En este caso, n es un número entero positivo mayor que uno (n>1). Los datos Dn de n bits tienen diferentes pesos de Hamming (HW) dependiendo del número de nivel lógico “1” en los datos Dn de n bits. En este caso, el peso de Hamming se refiere al número de bits distintos de cero (es decir, nivel lógico “1”) en los datos Dn de n bits. Aunque el enlace 114 se muestra en esta invención como un enlace de comunicación en paralelo de un solo extremo, observe que el enlace 114 también puede ser un enlace configurado para transmitir señales diferenciales o señales de múltiples hilos.
El controlador de memoria 102 incluye un codificador 106 y un transmisor (Tx) 108. Los datos Dn pueden ser proporcionados al codificador 106 como, por ejemplo, datos en serie o en paralelo. El dispositivo de memoria 104 también incluye el decodificador 112 y un receptor (Rx) 110. Además, el dispositivo de memoria 104 también puede incluir otro codificador y un transmisor para transmitir datos codificados al controlador de memoria 102, y el controlador de memoria 102 también puede incluir un receptor y un decodificador para recibir y decodificar los datos codificados recibidos del dispositivo de memoria 104. Sin embargo, el codificador y transmisor del dispositivo de memoria 104 y el receptor y decodificador del controlador de memoria 102 no se muestran en la figura 1 ya que no son necesarios para explicar las realizaciones de la presente descripción.
El codificador 106 recibe los datos Dn de n bits y una señal de máscara de datos de 1 bit (dm) de otros circuitos (no mostrados) u otros componentes del circuito (por ejemplo, máquinas de estado, no mostradas) dentro del controlador de memoria 102. Como se explicó anteriormente, el controlador de memoria 102 utiliza la señal de máscara de datos (dm) para indicar al dispositivo de memoria 104 que ignore los datos recibidos desde el controlador de memoria 102 (es decir, para indicar la operación sin escritura). La señal dm puede ser un nivel de voltaje en un pin, que está desplazado o acompaña a los datos que se envían desde el controlador de memoria 102 al dispositivo de memoria. Como alternativa, la información de enmascaramiento transmitida por la señal dm puede incluirse como parte de un comando transmitido entre el controlador de memoria 102 y el dispositivo de memoria 104, y por lo tanto no es necesario que la señal de máscara de datos físicos dm esté presente en el enlace en paralelo 114. El codificador 106 incluye puertas lógicas combinatorias o tablas de consulta (LUT) que están configuradas para realizar la codificación de los datos Dn de n bits que recibe para convertir los datos de n bits a datos codificados DQn de n bits y un bit DBI (1 bit). El codificador 106 también convierte la señal de máscara de datos (dm) en una señal de máscara de datos modificada (DM). Como se explicará con más detalle a continuación con referencia a las figuras 2 y 3, el codificador 106 utiliza la codificación DBI en algunos casos de los datos Dn de n bits y la codificación no DBI en otros casos de los datos Dn de n bits para codificar los datos Dn de n bits, dependiendo de los pesos de Hamming de los datos Dn de n bits. El codificador 106 también genera la señal de máscara de datos modificada (DM) para indicar al dispositivo de memoria 104 el tipo de codificación utilizada en los datos codificados DQn de n bits en esos casos diferentes.
Además, el codificador 106 también recibe una señal de modo 116. En una realización, cuando se afirma la señal de modo 116 (por ejemplo, lógica alta), el codificador 106 codifica los datos Dn de n bits utilizando el esquema de codificación según las realizaciones de la presente descripción como se describe en esta invención. Cuando no se afirma la señal de modo 116 (por ejemplo, lógica baja), el codificador 106 usa codificación DBI (que es independiente del uso de información de enmascaramiento) para codificar los datos Dn de n bits.
En una realización, el transmisor (Tx) 108 transmite los datos codificados DQn, el bit DBI y el bit DM a través del enlace en paralelo 114 al receptor (Rx) 110 del dispositivo de memoria 104. Al hacerlo, el transmisor (Tx) 108 extrae corriente de suministro Idd de una fuente de alimentación (no mostrada) que proporciona el voltaje de alimentación (Vdd), consume energía de la fuente de alimentación y genera ruido s So . Sin embargo, el ruido SSO generado por el transmisor (Tx) 108 puede reducirse según las realizaciones de la presente descripción.
En una realización, el receptor 110 recibe los datos codificados DQn, el bit DBI y el bit DM a través del enlace en paralelo 114 del controlador de memoria 102. Al hacerlo, el receptor 110 también extrae corriente de suministro Idd de una fuente de alimentación (no mostrada) que proporciona el voltaje de alimentación (Vdd), consume energía de la fuente de alimentación y genera ruido SSO. Nuevamente, el ruido SSO generado por el receptor (Rx) 110 puede reducirse según las realizaciones de la presente descripción.
El receptor 110 proporciona los datos codificados recibidos DQn, el bit DBI y el bit DM al decodificador 112. El decodificador 112 decodifica los datos codificados DQn y el bit DBI de nuevo a datos Dn de n bits y convierte la señal de máscara de datos modificada (DM) de nuevo a la señal de máscara de datos (dm), como se explicará con más detalle a continuación con referencia a las figuras 4 y 5.
Además, el decodificador 112 también recibe una señal de modo 516. En una realización, cuando se afirma la señal de modo 516 (por ejemplo, lógica alta), el decodificador 112 decodifica los datos codificados DQn de n bits usando el esquema de decodificación según las realizaciones de la presente descripción como se describe en esta invención. Cuando no se afirma la señal de modo 516 (es decir, lógica baja), la lógica del decodificador 112 utiliza la decodificación DBI (que es independiente del uso de información de enmascaramiento) para decodificar los datos codificados DQn de n bits.
La figura 2 es un diagrama de flujo que ilustra un procedimiento de codificación de datos, según una realización. Según el esquema de codificación de la realización de la figura 2, se usa una combinación de codificación DBI y codificación no DBI para codificar los datos Dn de n bits dependiendo del peso de Hamming de los datos Dn de n bits, es decir, el número de bits distintos de cero bits (es decir, nivel lógico “1”) en los datos Dn de n bits.
Primero, se determina 202 si se afirma la señal de máscara de datos (dm) (en este ejemplo “1” o lógica alta). Si se afirma la señal de máscara de datos (dm), los datos Dn de n bits se codifican de manera que los datos codificados [DBI, DQn] de n 1 bits son un patrón de datos predeterminado (DQM) de (n 1) bits indicativo de una señal de máscara al dispositivo de memoria 104. Además, la señal de máscara de datos modificada (DM) se establece en “1” o lógica alta. Por otro lado, si la señal de máscara de datos (dm) no se afirma (“0” o lógica baja), se determina además 206 si los datos Dn de n bits, cuando se codifica DBI, tienen un peso de Hamming inferior a un umbral predeterminado. En otras palabras, en la etapa 206 se determina además si los datos Dn de n bits no codificados tiene un peso de Hamming inferior a un primer umbral predeterminado o mayor que un segundo umbral predeterminado. Por ejemplo, cuando Dn son datos de 8 bits, se puede usar un umbral de peso de Hamming 3 de modo que los datos Dn de 8 bits se consideren datos de bajo peso de Hamming si los datos Dn de 8 bits, cuando se codifica DBI, tienen un peso de Hamming inferior a 4 (es decir, HW de Dn codificado DBI es 0, 1, 2 o 3), es decir, cuando los datos Dn de 8 bits no codificados tienen un peso de Hamming inferior a 4 (es decir, HW de Dn no codificado n es 0, 1, 2 o 3) o mayor que 5 (es decir, HW de Dn no codificado es 6 , 7 u 8).
Si los datos Dn de n bits codificados DBI no son datos de bajo peso de Hamming en la etapa 206, entonces los datos Dn de n bits se codifican de tal manera que los datos [DBI, DQn] de n+ 1 bits codificados son codificados DBI. Por ejemplo, cuando los datos Dn de n bits son datos de 8 bits y tienen un peso de Hamming de 4, no se produce inversión de los bits de datos y no se afirma el bit DBI (es decir, lógica baja). Por otro lado, si los datos Dn de 8 bits tienen un peso de Hamming de 5, se produce inversión de los bits de datos y se afirma el bit DBI (es decir, lógica alta). Por tanto, para datos de entrada Dn de 8 bits, los datos codificados [DBI, DQn] de n 1 bits con codificación DBI en la etapa 210 tendrán un peso de Hamming de solo 4. Además, no se afirma la señal de máscara de datos modificada (DM) (“0” o lógica baja) en la etapa 210.
Por otro lado, si los datos Dn de n bits codificados DBI son datos de bajo peso de Hamming en la etapa 206, entonces los datos Dn de n bits se codifican utilizando un esquema de codificación no DBI. En algunas realizaciones, todos o la mayoría de los datos codificados [DBI, DQn] de n 1 bits están codificados para ser datos que no son de bajo peso de Hamming. Por ejemplo, cuando los datos Dn de n bits son datos de 8 bits, los datos Dn de 8 bits están codificados con un esquema de codificación no DBI que da como resultado la mayor parte (252) de los datos codificados [DBI, DQn] de 9 bits con pesos de Hamming de cuatro y simplemente algunos (4) de los datos codificados de 9 bits [DBI, DQn] con pesos de Hamming de tres. Además, la señal de máscara de datos modificada (DM) se afirma (“1” o lógica alta) incluso cuando la señal de máscara de datos original (dm) no se afirma para indicar al dispositivo de memoria 104 que se utilizó un esquema de codificación no DBI para codificar los datos codificados [DBI, DQn] de n 1 bits. Por tanto, la señal de máscara de datos modificada (DM) se usa para indicar al dispositivo de memoria 104 si se utilizó la codificación DBI o no DBI para codificar los datos codificados [DBI, DQn] de n 1 bits. El esquema de codificación de la realización de la figura 2 reduce significativamente el ruido SSO porque los pesos de Hamming de los datos codificados [DBI, DQn] están limitados a un pequeño intervalo de variaciones (por ejemplo, pesos de Hamming de 3 o 4 en el ejemplo de datos Dn de 8 bits).
La tabla 1 a continuación ilustra un ejemplo de lógica combinatoria que puede usarse para codificar datos de entrada Dn de 8 bits a datos codificados [DBI, DQn] de 9 bits según la realización como se muestra en la figura 2. La lógica combinatoria que se muestra en la tabla 1 es meramente ejemplar, y se puede usar otra lógica combinatoria para realizar la codificación como se ilustra en la figura 2. x
Tabla 1
Figure imgf000005_0001
Como se puede ver de la tabla 1 anterior, cuando se afirma la señal de máscara de datos (dm), los datos codificados [DBI, DQn] son DQM (111000000). Por otro lado, cuando no se afirma la señal de máscara de datos (dm), entonces los datos Dn con pesos de Hamming de 4 o 5 se codifican usando DBI de modo que los bits de datos de datos Dn con un peso de Hamming de 4 no están invertidos y el bit DBI se establece en 0 mientras que los bits de datos Dn con un peso de Hamming de 5 están invertidos y el bit DBI se establece en 1. Los datos codificados DBI [DBI, DQn] tienen un peso de Hamming de 4 solamente. Además, cuando la señal de máscara de datos (dm) no se afirma, entonces los datos Dn con pesos de Hamming de 0, 1,2 o 3 (inferior a 4) o 6, 7 u 8 (mayor que 5) se codifican utilizando un esquema de codificación no DBI como se muestra anteriormente en la tabla 1 que limita los pesos de Hamming de los datos codificados [DBI, DQn] a pesos de Hamming de 3 o 4.
Más específicamente, como se muestra en la tabla 1, el patrón de datos de 8 bits en forma de 000000000 con HW de cero se codifica en el patrón de datos codificados de 9 bits 101010000 con HW de tres. Los datos de 8 bits en forma de X7 xq X5 X4OOOO con HW de uno se codifican en los datos de 9 bits en forma de 01000 X7 xq X5 X4con HW de cuatro y los patrones de datos de 8 bits en forma de 0000 X3 X2 X1 xq con HW de uno se codifican en los patrones de datos codificados de 9 bits en forma de 00100 X3 X2 X1 xq con HW de cuatro, donde Xn es el enésimo bit de un bit menos significativo del patrón de datos de 8 bits y Xn es el complementos de Xn. Los patrones de datos de 8 bits en forma de 00 X5 X4 X3 X2 X1 xq con HW de dos se codifican en los patrones de datos codificados de 9 bits en forma de 011 X5 X4 X3 X2 X1 xq con HW de cuatro, los patrones de datos de 8 bits en forma de 01 X5 X4 X3 X2 X1 xq con HW de dos se codifican en los patrones de datos codificados de 9 bits en forma de 01010 y3 y2 y 1 yo con HW de cuatro, los patrones de datos de 8 bits en forma de 10 X5 X4 X3 X2 X1 xq con HW de dos se codifican en los patrones de datos codificados de 9 bits en forma de 0100173 y271 yo con HW de cuatro, y los patrones de datos de 8 bits en forma de 11 X5 X4 X3 X2 X1 xq con HW de dos se codifican en un patrón de datos codificados de 9 bits 010010001 con HW de tres, donde Xn es el enésimo bit de un bit menos significativo del patrón de datos de 8 bits, y3 = X5 X2 xq , y2 = X5 X4 x-i , y-\ = X4 X3 xq e yo = X3 X2 X1 y donde es la operación OR.
Para otro ejemplo, los patrones de datos de 8 bits en forma de X7 X6 X5 X4 X3 X2 X1 xq con HW de tres se codifican en los patrones de datos codificados de 9 bits en forma de 1 xj xq x¡ X4 X3 X2 xi xo con HW de cuatro, donde x„ es el enésimo bit de un bit menos significativo del patrón de datos de 8 bits. Los patrones de datos de 8 bits en forma de X7 xq xs X4 X3 X2 X1 xo con HW de cuatro se codifican DBI en los patrones de datos codificados de 9 bits 0 X7 xq xs X4 X3 X2 X1 xo con HW de cuatro, donde Xn es el enésimo bit de un bit menos significativo del patrón de datos de 8 bits. Los patrones de datos de 8 bits en forma de xj xq xs X4 X3 X2 xi xo con HW de cinco también se codifican DBI en los patrones de datos codificados de 9 bits en forma de 1 X7XQ xs X4 X3 X2 xi xocon HW de cuatro, donde Xn es el enésimo bit de un bit menos significativo del patrón de datos de 8 bits y Xn es el complemento (inverso) de x.
Para otro ejemplo más, los patrones de datos de 8 bits en forma de 11 xs X4 X3 X2 xi xo con HW de seis se codifican en los patrones de datos codificados de 9 bits en forma de ooo xs X4 X3 X2 X1 xo con HW de cuatro, los patrones de datos de 8 bits en forma de 1o xs X4 X3 X2 X1 xo con HW de seis se codifican en los patrones de datos codificados de 9 bits oo1o1 Z3 Z2 Z1 zo con HW de cuatro, los patrones de datos de 8 bits en forma de o1 xs X4 X3 X2 X1 xo con HW de seis se codifican en los patrones de datos codificados de 9 bits oo11o Z3 Z2 Z1 zo con HW de cuatro, y los patrones de datos de 8 bits en forma de oo xs X4 X3 X2 X1 xo con HW de seis se codifican en los patrones de datos codificados de 9 bits oo11oooo1 con HW de tres, donde Xn es el enésimo bit de un bit menos significativo del patrón de datos de 8 bits, Z3 = x5 x2 xo, z2 = x5 x4 x1, z1 = x5 x4 x1 y zo = x3 x2 x1, xn es el complemento de xn, y “+” es la operación OR. Los patrones de datos de 8 bits en forma de xj xq xs X41111 con HW de siete se codifican en los patrones de datos codificados de 9 bits en forma de oo111 de X7 xq xs X4 con HW de cuatro, y los patrones de datos de 8 bits en forma de 1111 X3 X2 X1 xo con HW de siete se codifican en los patrones de datos codificados de 9 bits en forma de o1o11 X3 X2 X1 xo con HW de cuatro, donde Xn es el enésimo bit de un bit menos significativo del patrón de datos de 8 bits, y Xn es el complemento de Xn, Para otro ejemplo más, el patrón de datos de 8 bits 11111111 con HW de ocho se codifica en el patrón de datos codificados de 9 bits 11o1ooooo con HW de tres. Además, el patrón de datos DQM se establece e n 111oooooo.
Aunque se supone que los datos Dn de n bits que se transmitirán desde el controlador de memoria 1o2 al dispositivo de memoria 1o4 son datos de 8 bits en los ejemplos anteriores, el uso de datos de 8 bits en esta invención es meramente ejemplar. Por tanto, el esquema de codificación descrito en esta invención puede usarse con cualquier número de bits de datos a transmitir desde el controlador de memoria 1o2 al dispositivo de memoria 1o4. Las asignaciones entre datos no codificados de 8 bits y datos codificados de 9 bits como los mostrados en la tabla 1 anterior pueden predeterminarse y almacenarse en una LUT (no mostrada) en un controlador de memoria 1o2. De esa manera, la codificación de datos según las realizaciones descritas en esta invención puede realizarse rápidamente.
La figura 3 ilustra un ejemplo de un circuito codificador, según una realización. El circuito codificador de la figura 3 es un ejemplo de un circuito configurado para realizar el esquema de codificación como se describió anteriormente con referencia a la figura 2, aunque pueden estar disponibles diferentes configuraciones de circuito con las mismas funciones para realizar el esquema de codificación de la figura 2. El codificador 1oQ incluye un codificador DBI 3o2, un codificador no DBI 3o4, una puerta AND 312, una puerta OR 314 y multiplexores 3o8, 31o. El codificador DBI 3o2 está configurado para realizar codificación DBI en los datos de entrada Dn como se explicó anteriormente con la etapa 21o de la figura 2 y el codificador no DBI 3o4 está configurado para llevar a cabo una codificación no DBI en los datos de entrada Dn como se explicó anteriormente con la etapa 2o8 de la figura 2 , por ejemplo, como se muestra anteriormente en la tabla 1. La señal de modo 116 se usa para indicar al codificador 116 si se debe usar (cuando se afirma el modo 116) el esquema de codificación según las realizaciones de esta invención (figura 2) o se debe usar (cuando no se afirma el modo 116) la codificación DBI (que es independiente del uso de información de enmascaramiento). Para fines de ilustración en esta invención del esquema de codificación de la figura 2, se supondrá afirmada la señal de modo 116 (lógica alta).
Volviendo al funcionamiento del circuito codificador 1oQ, cuando se afirma la señal de máscara de datos (dm) 312 (“1” o lógica alta), la salida de la señal de máscara de datos modificada DM 326 de la puerta OR 314 también es “1” o lógica alta. Además, la señal de máscara de datos (dm) 312 también hace que el multiplexor 31o seleccione el patrón de bits predeterminado DQM 323 como su salida 316.
Por otro lado, si la señal de máscara de datos (dm) 312 no se afirma (“o” o lógica baja), el multiplexor 31o selecciona la salida 322 del multiplexor 3o8 como sus datos codificados [DBI, DQn]. La salida 322 del multiplexor 3o8 es la salida 318 del codificador d Bi 3o2 o la salida 32o del codificador no DBI 3o4, seleccionada según la salida 324 de la puerta AND 312. A este respecto, el codificador DBI 3o2 incluye lógica (no mostrada) configurado para determinar si los datos de entrada Dn, cuando están codificados DBI por el codificador 3o2 de DBI, tienen un peso de Hamming inferior a un umbral predeterminado. En otras palabras, el codificador DBI 3o2 también está configurado para determinar si los datos Dn de n bits no codificados tienen un peso de Hamming inferior a un primer umbral predeterminado o mayor que un segundo umbral predeterminado. Cuando los datos de entrada Dn, cuando están codificados DBI por el codificador DBI 3o2, tienen un peso de Hamming inferior a un umbral predeterminado, el codificador DBI 3o2 genera la señal de
Q
bajo HW 306 para ser lógica alta (“1”), pero genera de otra manera la señal de bajo HW 306 para ser lógica baja (“0”). Dado que la señal de modo 116 se fija para ser lógica alta, la salida 324 de la puerta AND 312 se convierte en lógica alta si los datos de entrada Dn, cuando están codificados DBI por el codificador DBI 302, tienen un peso de Hamming inferior a un umbral predeterminado y por tanto se afirma la señal de bajo HW 306. Como resultado, el multiplexor 308 selecciona la salida 320 del codificador no DBI 304 que como su salida 322. Además, la salida 326 de la puerta OR 314 también se vuelve lógica alta (señal de máscara de datos modificada DM =1) aunque no se afirme la señal de máscara de datos original dm 312. Por tanto, la señal de máscara de datos modificada DM 326 a una lógica alta puede indicar al dispositivo de memoria 104 que se ha usado una codificación no DBI para codificar los datos de entrada Dn. Por otro lado, la salida 324 de la puerta AND 312 se vuelve lógica baja si los datos de entrada Dn, cuando están codificados DBI por el codificador DBI 302, tienen un peso de Hamming no inferior a un umbral predeterminado y, por tanto, no se afirma la señal de bajo HW 306. Como resultado, el multiplexor 308 selecciona la salida 318 del codificador DBI 302 como su salida 322. Además, la salida 326 de la puerta OR 314 también se vuelve lógica baja (señal de máscara de datos modificada DM = 0) cuando no se afirma la señal de máscara de datos original (dm) 312. Por tanto, la señal de máscara de datos modificada DM 326 a lógica baja puede indicar al dispositivo de memoria 104 que la codificación DBI se ha utilizado para codificar los datos de entrada Dn.
Finalmente, cuando la señal de modo 116 está en lógica baja (“0”), entonces la salida 324 de la puerta AND 312 está siempre en lógica baja independientemente de la señal de bajo HW 306. Por tanto, la salida de la señal de máscara de datos modificada (DM) 326 de la puerta OR 314 sigue la señal de máscara de datos original (dm) 312, y el multiplexor 308 siempre selecciona la salida 318 del codificador DBI 302. Por tanto, cuando la señal de máscara de datos original (dm) 312 no se afirma, el multiplexor 310 selecciona la salida 322 de multiplexor 308, que es siempre la salida 318 del codificador DBI, lo que resulta en codificación DBI independientemente del peso de Hamming de los datos de entrada Dn. Cuando se afirma la señal de máscara de datos original (dm) 312, el multiplexor 310 selecciona la señal DQM para indicar una señal de máscara al dispositivo de memoria 104. Por tanto, cuando la señal de modo 116 está en lógica baja, el codificador 106 realiza la codificación DBI (que es independiente del uso de información de enmascaramiento), y por tanto el codificador 106 tiene una compatibilidad completamente retroactiva con los esquemas de codificación DBI convencionales. Por ejemplo, la señal de modo 116 puede almacenarse como un valor en un registro de configuración programable o cableada por medio de un fusible o máscara de metal, etc.
La figura 4 es un diagrama de flujo que ilustra un procedimiento de decodificación de datos, según una realización. El esquema de decodificación de la realización de la figura 4 se usa para decodificar los datos [DBI, DQn] codificados usando una combinación de codificación DBI y codificación no DBI según el esquema de codificación como se explicó anteriormente con referencia a la figura 2.
Primero, se determina 402 si se afirma la señal de máscara de datos modificada (DM) (“1” o lógica alta). Si la señal de máscara de datos modificada (DM) no se afirma, eso significa que los datos [DBI, DQn] estaban codificados DBI (etapa 210 de la figura 2). Por tanto, los datos [DBI, DQn] se decodifican utilizando DBI y la señal de máscara de datos (dm) se establece en “0” para indicar que los datos decodificados Dn no deben ignorarse. Por otro lado, si la señal de máscara de datos modificada (DM) no se afirma, entonces se determina además 406 si los datos codificados [DBI, DQn] coinciden con el patrón de datos predeterminado DQM.
Si los datos codificados [DBI, DQn] coinciden con el patrón de datos predeterminado DQM, eso significa que se afirmó la señal de máscara de datos original (dm) (etapa 204 de la figura 2). Por tanto, la señal de máscara de datos (dm) se establece en “1” para indicar que los datos codificados DQn deben ignorarse y DQn no se tiene en cuenta por el dispositivo de memoria 104. Por otro lado, si los datos codificados [DBI, DQn] no coinciden con el patrón de datos predeterminado DQM, entonces eso significa que los datos [DBI, DQn] se codificaron utilizando una codificación no DBI (etapa 208 de la figura 2). Por tanto, los datos [DBI, DQn] se decodifican utilizando una decodificación no DBI y la señal de máscara de datos (dm) se establece en “0”.
Observe que la decodificación de los datos [DBI, DQn] puede realizarse simplemente invirtiendo la lógica combinatoria utilizada para codificar los datos DQn. Por ejemplo, cuando los datos DQn de 8 bits se codifican en datos [DBI, DQn] de 9 bits utilizando la lógica combinatoria que se muestra en la tabla 1, los datos [DBI, DQn] de 9 bits se pueden decodificar para recuperar los datos DQn de 8 bits, simplemente invirtiendo la lógica combinatoria que se muestra en la tabla 1. Por ejemplo, los datos de 9 bits en forma de 01000 X7 X6 x¡ X4 con HW de cuatro se pueden decodificar en datos de 8 bits X7 X6 xs X4 000 con HW de uno. Numerosos otros ejemplos de inversión de la lógica combinatoria para la decodificación son evidentes a partir de la tabla 1. En algunas realizaciones, dichas asignaciones inversas de lógica también pueden predeterminarse y almacenarse en una LUT.
La figura 5 ilustra un ejemplo de un circuito decodificador, según una realización. El circuito decodificador de la figura 5 es un ejemplo de un circuito configurado para realizar el esquema de decodificación como se describió anteriormente con referencia a la figura 4, aunque pueden estar disponibles diferentes configuraciones de circuito con las mismas funciones para llevar a cabo el esquema de decodificación de la figura 4. El decodificador 112 incluye un decodificador DBI 502, un decodificador no DBI 504, puertas AND 506, 530, una puerta OR 526, un comparador 514 y un multiplexor 510. El decodificador DBI 502 está configurado para realizar la decodificación DBI en los datos codificados [DBI, DQn] como se explicó anteriormente con la etapa 404 de la figura 5 y el codificador no DBI 504 está configurado para realizar la decodificación no DBI en los datos codificados [DBI, DQn] como se explicó anteriormente con la etapa 410 de la figura 4. La señal de modo 516 se usa para indicar al decodificador 112 si se debe usar (cuando se afirma la señal de modo 516) el esquema de decodificación según las realizaciones de esta invención (figura 4) o se debe usar (cuando no se afirma la señal de modo 516) la decodificación DBI (que es independiente del uso de información de enmascaramiento) Para fines de ilustración en esta invención del esquema de decodificación de la figura 4, se supondrá afirmada la señal de modo 516 (lógica alta).
Volviendo al funcionamiento del circuito decodificador 112, cuando la señal de máscara de datos modificada (DM) 512 no se afirma (“0” o lógica baja), eso significa que los datos [DBI, DQn] fueron codificados DBI (etapa 210 de la figura 2). Por tanto, la salida de la señal de máscara de datos (dm) 532 de la puerta AND 530 se establece en lógica baja (“0”). Además, la salida 508 de la puerta AND 506 también está en lógica baja haciendo así que el multiplexor 510 seleccione la salida 518 del decodificador DBI 502 como su salida DQn 522. Por tanto, los datos [DBI, DQn] se decodifican usando DBI (etapa 404 de la figura 4).
Cuando se afirma la señal de máscara de datos modificada (DM) 512 (“1” o lógica alta), la señal de máscara de datos de salida (dm) 532 de la puerta AND 530 está en lógica alta si la salida 524 del comparador 512 está en lógica alta, es decir, cuando los datos codificados [DBI, DQn] coinciden con el patrón de datos predeterminado DQM como en la etapa 406 de la figura 4. Cuando la señal de máscara de datos (dm) 532 está en lógica alta, los datos codificados no se tienen en cuenta (etapa 408 de la figura 4).
Por otro lado, si la salida 524 del comparador 512 está en lógica baja (es decir, cuando los datos codificados [DBI, DQn] no coinciden con el patrón de datos predeterminado DQM), la salida 528 de la puerta OR 528 también está en lógica baja (“0”) y, por tanto, la salida de la señal de máscara de datos (dm) 532 desde la puerta AND 530 también se establece en lógica baja. Además, la salida 508 de la puerta AND 506 también está en lógica alta, haciendo así que el multiplexor 510 seleccione la salida 520 del decodificador no DBI 504 como su salida DQn 522. Por tanto, los datos [DBI, DQn] se decodifican usando decodificación no DBI (etapa 410 de la figura 4).
Finalmente, cuando la señal de modo 516 está en lógica baja (“0”), entonces la salida 508 de la puerta AND 506 está siempre en lógica baja independientemente del estado de la señal de máscara de datos modificada (DM) 512, haciendo así que el multiplexor 308 siempre seleccione la salida 518 del codificador DBI 502 como su salida DQn 522. Además, la salida 528 de la puerta OR 526 está siempre en lógica alta si la señal de modo 516 está en lógica baja, y por tanto la salida de la señal de máscara de datos (dm) 532 desde la puerta AND 530 sigue el estado de la señal de máscara de datos modificada (DM) 512. Por tanto, los datos [DBI, DQn] siempre se decodifican utilizando la decodificación DBI cuando no se afirma la señal de modo 516. En otras palabras, cuando la señal de modo 516 está en lógica baja, el decodificador 112 realiza la decodificación DBI (que es independiente del uso de información de enmascaramiento) y, por tanto, el decodificador 112 tiene una compatibilidad completamente retroactiva con los esquemas de decodificación DBI convencionales. Por ejemplo, la señal de modo 516 puede almacenarse como un valor en un registro de configuración programable o cableada por medio de un fusible o máscara de metal etc.
Con la técnica de codificación según las realizaciones descritas en esta invención, el SSN puede reducirse significativamente y la corriente de CA extraída de la fuente de alimentación también puede reducirse significativamente en comparación con los procedimientos de codificación convencionales como DBI. Esto se explica con más detalle con referencia a las figuras 6A y 6B. La figura 6A ilustra los pesos de Hamming (HW) presentes en datos de 9 bits, incluidos datos no codificados de 8 bits y un bit DBI, y la figura 6B ilustra los pesos de Hamming presentes en datos codificados de 9 bits que incluyen un bit DBI y datos codificados de 8 bits codificados según una realización.
Con referencia a la figura 6A, el histograma HW ilustra la distribución de HW en los datos de 9 bits, incluidos los datos no codificados DBI (1 bit) y 8 bits, y los histogramas HW 602 cuando dichos datos no codificados de 9 bits se codifican utilizando DBI convencional ([DBI datos codificados DBI de 8 bits]). Entre los posibles patrones de datos (29) de los datos no codificados en paralelo de 9 bits, hay 1 patrón de datos con HW = 0, 9 patrones de datos con HW = 1, 36 patrones de datos con HW = 2, 84 patrones de datos con HW = 3, 126 patrones de datos con HW = 4, 126 patrones de datos con HW = 5, 84 patrones de datos con HW = 6 , 36 patrones de datos con HW = 7, 9 patrones de datos con HW = 8 y 1 patrón de datos con HW = 9. La variación máxima posible en los HW en el patrón de datos no codificados de 9 bits es, por tanto, 9 (entre HW = 0 y HW = 9), lo que da como resultado un SSN significativo si se transmite sin codificar.
Aún con referencia a la figura 6A, los histogramas HW 602 ilustran que solo los pesos de Hamming de 0 a 4 estarían presentes cuando dichos datos de 8 bits se codifican utilizando DBI ([DBI datos codificados DBI de 8 bits]), ya que los datos con pesos de Hamming de 5 a 8 se invertirían. Entre los posibles patrones de datos (28) de los datos codificados en paralelo de 9 bits, hay 1 patrón de datos con HW = 0, 9 patrones de datos con HW = 1, 36 patrones de datos con HW = 2, 84 patrones de datos con HW = 3 y 128 patrones de datos con HW = 4. La variación máxima posible en los HW en el patrón de datos codificados DBI de 9 bits es, por tanto, 4 (entre HW = 0 y HW = 4), lo que da como resultado un SSN reducido en comparación a cuando los datos se transmiten sin codificar.
Con referencia a la figura 6B, el histograma HW 652 ilustra la distribución de HW en los datos de 9 bits ([DBI datos codificados de 8 bits]) incluidos los codificados según el esquema combinado de codificación de máscara de datos y DBI como se describió anteriormente con referencia a la figura 2. Entre los posibles patrones de datos (28) de los datos codificados en paralelo de 9 bits, hay 5 patrones de datos con HW = 3 (incluido el patrón DQM) y 252 patrones de datos con HW = 4. La variación máxima posible en los HW en el patrón de datos de 9 bits es, por tanto, solo 1 (entre HW = 3 y HW = 4), lo que da como resultado una reducción significativa de SSN en comparación con el SSN cuando los datos se transmiten sin codificar o están codificados por DBI convencional.
Estas ventajas se muestran más específicamente en la tabla 2 a continuación, que muestra la corriente (Idd) que extraería el transmisor (Tx) 108 (figura 1). Cuando los datos Dn se transmiten sin codificar, codificados por DBI convencional, y codificados con DM/DBI combinados según las realizaciones de esta invención, se hace referencia a la corriente de suministro Idd que se va a extraer cuando los datos Dn se transmiten sin codificar como referencia (100 %).
Tabla 2
Figure imgf000009_0001
Como se muestra en la tabla 2 anterior, la corriente de suministro de CC promedio Idd aumenta ligeramente (del 40 % al 45 %) cuando se usa el esquema de codificación combinado DM/DBI descrito en esta invención, en comparación con la codificación DBI convencional. Esto se debe a que una gran cantidad de patrones de datos codificados se concentran con un alto peso de Hamming (HW = 4), lo que aumenta la corriente de CC promedio Idd extraída de la fuente de alimentación (no mostrada). Por otro lado, la corriente de suministro de CA extraída de la fuente de alimentación se reduce drásticamente, del 50 % al 25 % para la corriente de suministro CA pico a pico Idd del 61 % al 13 % para los valores CA rms (raíz cuadrática media), cuando se utiliza el esquema combinado de codificación DM/DBI según las realizaciones descritas en esta invención, en comparación con la codificación DBI convencional. Por tanto, el ruido SSO puede reducirse drásticamente cuando se usa el esquema combinado de codificación DM/DBI según las realizaciones descritas en esta invención.
Al leer esta descripción, los expertos en la materia apreciarán aún diseños estructurales y funcionales alternativos adicionales para codificar datos para reducir el ruido SSO, a través de los principios descritos de la presente descripción. Por tanto, aunque se han ilustrado y descrito realizaciones y aplicaciones particulares de la presente descripción, debe entenderse que la descripción no se limita a la construcción precisa y los componentes descritos en esta invención. Se pueden hacer varias modificaciones, cambios y variaciones que serán evidentes para los expertos en la materia en la disposición, funcionamiento y detalles del procedimiento y aparato de la presente descripción descrita en esta invención sin apartarse del alcance de la descripción como se define en las reivindicaciones adjuntas.

Claims (8)

REIVINDICACIONES
1. Un controlador de memoria (102) para controlar el funcionamiento de un dispositivo de memoria DRAM (104), comprendiendo el controlador de memoria (102):
un codificador (106) para generar datos codificados (DQ) y una señal de máscara de datos (DM) que acompaña a los datos codificados (DQ), donde el codificador (106) está configurado para:
(i) si los datos codificados (DQ) deben enmascararse por el dispositivo de memoria DRAM (104), generar los datos codificados (DQ) como un patrón de bits predeterminado y generar que la señal de máscara de datos (DM) tenga un primer estado;
(ii) si los datos codificados (DQ) se deben invertir y escribir en una matriz del dispositivo de memoria DRAM (104), generar los datos codificados (DQ) como datos invertidos y generar que la señal de máscara de datos (DM) tenga un segundo estado.
(iii) si los datos codificados (DQ) se deben no invertir y escribir en la matriz del dispositivo de memoria DRAM (104), generar los datos codificados (DQ) como datos no invertidos y generar que la señal de máscara de datos (DM) tenga el primer estado; y
un transmisor (108) configurado para transmitir los datos codificados (DQ) y la señal de máscara de datos (DM) al dispositivo de memoria DRAM (104).
2. El controlador de memoria (102) según la reivindicación 1, donde el codificador está adaptado para recibir una señal de modo (116), donde
(a) si la señal de modo define un primer estado, el codificador está configurado para realizar las etapas (i) a (iii); y (b) si la señal de modo define un segundo estado, el codificador está configurado para generar los datos codificados utilizando la inversión del bus de datos.
3. Un dispositivo de memoria DRAM (104), que comprende:
una matriz para almacenar datos;
un receptor (110) configurado para recibir datos codificados (DQ) y una señal de máscara de datos (DM) que acompaña a los datos codificados (DQ) desde un controlador de memoria (102); y
un decodificador (112) configurado para decodificar los datos codificados (DQ) y la señal de máscara de datos (DM) para generar datos (Dn),
donde el decodificador (112) está configurado además para:
(i) si la señal de máscara de datos (DM) está en un primer estado y los datos codificados coinciden con un patrón de bits predeterminado, enmascarar que los datos codificados (DQ) recibidos desde dicho controlador de memoria (102) se escriban en la matriz.
(ii) si la señal de máscara de datos (DM) está en un segundo estado, invertir los datos codificados antes de escribir los datos en la matriz del dispositivo de memoria DRAM 20 (104):
(iii) si la señal de máscara de datos (DM) está en el primer estado y los datos codificados no coinciden con el patrón de bits predeterminado, escribir los datos (Dn) en la matriz del dispositivo de memoria DRAM (104) sin inversión.
4. El dispositivo de memoria DRAM (104), según la reivindicación 2, que comprende además un registro que especifica un modo para que la DRAM indique cómo usar los datos codificados (DQ) y la señal de máscara de datos (DM), donde
(a) si el modo define un primer estado, el decodificador está configurado para realizar las etapas (i) a (iii); y (b) si el modo define un segundo estado, el decodificador está configurado para invertir los datos codificados antes de escribir los datos en la matriz del dispositivo de memoria DRAM (104) independientemente de la señal de máscara de datos (DM).
5. Un procedimiento realizado por un controlador de memoria (102) para controlar el funcionamiento de un dispositivo de memoria DRAM (104), comprendiendo el procedimiento las etapas de:
(i) generar datos codificados (DQ) como un patrón de bits predeterminado y generar una señal de máscara de datos (DM) que acompaña a los datos codificados (DQ) que tiene un primer estado, si el dispositivo de memoria DRAM (104) debe enmascarar los datos codificados (DQ);
(ii) generar datos codificados (DQ) como datos invertidos y generar que una señal de máscara de datos (DM) que acompaña a los datos codificados (DQ) tenga un segundo estado, si los datos codificados (DQ) se deben invertir y escribir en una matriz del dispositivo de memoria DRAM (104);
(iii) generar datos codificados (DQ) como datos no invertidos y generar que una señal de máscara de datos (DM) que acompaña a los datos codificados (DQ) tenga el primer estado, si los datos codificados (DQ) se deben no invertir y escribir en una matriz del dispositivo de memoria DRAM (104); y
(iv) transmitir los datos codificados (DQ) y la señal de máscara de datos (DM) al dispositivo de memoria DRAM (104).
6. El procedimiento según la reivindicación 5, donde el procedimiento comprende además recibir antes de la etapa (i) una señal de modo por el controlador de memoria;
(a) si la señal de modo define un primer estado, realizar las etapas (i) a (iv); y
(b) si la señal de modo define un segundo estado, generar datos codificados como datos invertidos en lugar de las etapas (i) a (iii) antes de realizar la etapa (iv).
7. Un procedimiento realizado por un dispositivo de memoria DRAM (104) de recepción de datos de un controlador de memoria (102), comprendiendo el procedimiento las etapas de:
recibir datos codificados (DQ) y una señal de máscara de datos (DM) que acompaña a los datos codificados (DQ) desde un controlador de memoria (102); y
decodificar los datos codificados (DQ) y la señal de máscara de datos (DM) para generar datos (Dn),
donde la decodificación comprende:
(i) si la señal de máscara de datos (DM) está en un primer estado y los datos codificados coinciden con un patrón de bits predeterminado, enmascarar los datos codificados (DQ) recibidos desde dicho controlador de memoria (102);
(ii) si la señal de máscara de datos (DM) está en un segundo estado, invertir los datos antes de escribir los datos en la matriz del dispositivo de memoria DRAM (104);
(iii) si la señal de máscara de datos (DM) está en el primer estado y los datos no coinciden con el patrón de bits predeterminado, escribir los datos (DQ) en la matriz del dispositivo de memoria DRAM (104).
8. El procedimiento según la reivindicación 7, donde el procedimiento comprende además obtener de un registro un modo para que la DRAM indique cómo usar los datos codificados (DQ) y la señal de máscara de datos (DM),
(a) si el modo define un primer estado, realizar las etapas (i) a (iii); y
(b) si el modo define un segundo estado, invertir los datos antes de escribir los datos en la matriz del dispositivo de memoria DRAM (104) independientemente de la señal de máscara de datos (DM).
ES17153209T 2009-07-13 2010-06-14 Codificación de datos mediante la combinación de máscara de datos y la inversión del bus de datos Active ES2777777T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US22510209P 2009-07-13 2009-07-13

Publications (1)

Publication Number Publication Date
ES2777777T3 true ES2777777T3 (es) 2020-08-06

Family

ID=43450053

Family Applications (1)

Application Number Title Priority Date Filing Date
ES17153209T Active ES2777777T3 (es) 2009-07-13 2010-06-14 Codificación de datos mediante la combinación de máscara de datos y la inversión del bus de datos

Country Status (5)

Country Link
US (1) US8510490B2 (es)
EP (5) EP4224328A3 (es)
JP (1) JP5575237B2 (es)
ES (1) ES2777777T3 (es)
WO (1) WO2011008394A2 (es)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8539301B2 (en) * 2009-10-21 2013-09-17 Nec Laboratories America, Inc. Message-wise unequal error protection
US8581755B2 (en) * 2010-01-20 2013-11-12 Rambus Inc. Multiple word data bus inversion
KR101145317B1 (ko) * 2010-04-29 2012-05-14 에스케이하이닉스 주식회사 데이터 전송회로 및 데이터 전송방법, 데이터 송/수신 시스템
US8726139B2 (en) * 2011-12-14 2014-05-13 Advanced Micro Devices, Inc. Unified data masking, data poisoning, and data bus inversion signaling
US9275692B2 (en) 2012-02-28 2016-03-01 Micron Technology, Inc. Memory, memory controllers, and methods for dynamically switching a data masking/data bus inversion input
KR20130098681A (ko) 2012-02-28 2013-09-05 삼성전자주식회사 반도체 메모리 장치
US9529749B2 (en) 2013-03-15 2016-12-27 Qualcomm Incorporated Data bus inversion (DBI) encoding based on the speed of operation
US9252802B2 (en) 2014-02-07 2016-02-02 Qualcomm Incorporated Encoding for partitioned data bus
US9148171B1 (en) * 2014-07-29 2015-09-29 Avago Technologies General Ip (Singapore) Pte. Ltd. Parallel interface pattern modification for addressing signal integrity concerns
KR102201642B1 (ko) * 2014-11-28 2021-01-13 삼성전자주식회사 Puf 회로 및 그것의 키 등록 방법
US9665527B2 (en) 2014-12-09 2017-05-30 Intel Corporation Dynamic bus inversion with programmable termination level to maintain programmable target ratio of ones and zeros in signal lines
US20160173134A1 (en) * 2014-12-15 2016-06-16 Intel Corporation Enhanced Data Bus Invert Encoding for OR Chained Buses
KR20160076889A (ko) 2014-12-23 2016-07-01 에스케이하이닉스 주식회사 반도체장치 및 반도체시스템
US9922686B2 (en) 2016-05-19 2018-03-20 Micron Technology, Inc. Apparatuses and methods for performing intra-module databus inversion operations
US10373657B2 (en) 2016-08-10 2019-08-06 Micron Technology, Inc. Semiconductor layered device with data bus
KR20180057028A (ko) * 2016-11-21 2018-05-30 에스케이하이닉스 주식회사 데이터 반전 회로
US10146719B2 (en) * 2017-03-24 2018-12-04 Micron Technology, Inc. Semiconductor layered device with data bus
US10290289B2 (en) 2017-04-01 2019-05-14 Intel Corporation Adaptive multibit bus for energy optimization
US10664432B2 (en) 2018-05-23 2020-05-26 Micron Technology, Inc. Semiconductor layered device with data bus inversion
KR102638791B1 (ko) * 2018-09-03 2024-02-22 에스케이하이닉스 주식회사 반도체장치 및 반도체시스템
US10964702B2 (en) 2018-10-17 2021-03-30 Micron Technology, Inc. Semiconductor device with first-in-first-out circuit
US10944435B1 (en) * 2020-03-27 2021-03-09 Nxp B.V. Tearing save encoding
KR20220086904A (ko) * 2020-12-17 2022-06-24 삼성전자주식회사 데이터 전송 방법 및 데이터 전송 장치
KR20220140234A (ko) * 2021-04-09 2022-10-18 삼성전자주식회사 멀티 레벨 신호 시스템에서 최적 전이 코드를 생성하기 위한 신호 처리 방법 및 반도체 장치
US11720516B2 (en) 2021-08-15 2023-08-08 Apple Inc. Methods for data bus inversion
US11836107B2 (en) 2022-03-01 2023-12-05 Apple Inc. Power consumption control based on random bus inversion

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08316840A (ja) * 1995-03-16 1996-11-29 Toshiba Corp 符号化装置および復号化装置
US20020156953A1 (en) 2001-02-28 2002-10-24 Beiley Mark A. Dynamic bus inversion method
US6898648B2 (en) * 2002-02-21 2005-05-24 Micron Technology, Inc. Memory bus polarity indicator system and method for reducing the affects of simultaneous switching outputs (SSO) on memory bus timing
KR100546335B1 (ko) * 2003-07-03 2006-01-26 삼성전자주식회사 데이터 반전 스킴을 가지는 반도체 장치
US7519893B2 (en) * 2005-10-14 2009-04-14 Nvidia Corporation Binary data encoding/decoding for parallel bus
US7519892B1 (en) 2005-10-14 2009-04-14 Nvidia Corporation Binary data encoding/decoding with error detection, such as for communicating between computing platform components
US7574647B1 (en) 2005-10-14 2009-08-11 Nvidia Corporation Binary data encoding/decoding such as for communicating between computing platform components over a parallel interconnect
KR100877680B1 (ko) 2006-04-04 2009-01-09 삼성전자주식회사 반도체 장치 사이의 단일형 병렬데이터 인터페이스 방법,기록매체 및 반도체 장치
JP2008099204A (ja) * 2006-10-16 2008-04-24 Toshiba Corp 論理回路
US7925844B2 (en) * 2007-11-29 2011-04-12 Micron Technology, Inc. Memory register encoding systems and methods
US8363707B2 (en) * 2008-03-21 2013-01-29 Micron Technology, Inc. Mixed-mode signaling
EP2294770B1 (en) * 2008-06-20 2013-08-07 Rambus, Inc. Frequency responsive bus coding

Also Published As

Publication number Publication date
WO2011008394A2 (en) 2011-01-20
US20120131244A1 (en) 2012-05-24
EP2454672B1 (en) 2015-01-21
EP4224328A2 (en) 2023-08-09
EP3654191A1 (en) 2020-05-20
EP3193259A1 (en) 2017-07-19
EP3654191C0 (en) 2023-08-02
EP2454672A2 (en) 2012-05-23
EP2894571A1 (en) 2015-07-15
EP3654191B1 (en) 2023-08-02
WO2011008394A3 (en) 2011-03-10
JP2012533264A (ja) 2012-12-20
EP2454672A4 (en) 2013-11-20
US8510490B2 (en) 2013-08-13
EP4224328A3 (en) 2023-10-18
EP3193259B1 (en) 2019-12-25
EP2894571B1 (en) 2017-03-08
JP5575237B2 (ja) 2014-08-20

Similar Documents

Publication Publication Date Title
ES2777777T3 (es) Codificación de datos mediante la combinación de máscara de datos y la inversión del bus de datos
US20200364121A1 (en) Data encoding using spare channels in a memory system
KR102156844B1 (ko) 멀티-레벨 통신 아키텍처를 위한 신호 라인의 인코딩 및 디코딩 장치 및 방법
US11159153B2 (en) Data bus inversion (DBI) on pulse amplitude modulation (PAM) and reducing coupling and power noise on PAM-4 I/O
US8706958B2 (en) Data mask encoding in data bit inversion scheme
CN104272389B (zh) 用于低功率多电平经编码信号的方法及设备
US8824581B2 (en) Data transmission apparatus, data transmission system and data transmission method
US8223042B2 (en) Encoding data with minimum hamming weight variation
US20110246857A1 (en) Memory system and method
KR20130045257A (ko) 데이터 버스 반전 시그널링을 이용한 동시 스위칭 출력들의 감소
KR20130009865A (ko) 반도체 장치 및 상호접속된 장치들을 갖는 시스템에서의 전력 소비를 감소시키는 방법
EP2526492A1 (en) Multiple word data bus inversion
US8964879B2 (en) Crosstalk reduction coding schemes
US10657094B2 (en) Relaxed 433 encoding to reduce coupling and power noise on PAM-4 data buses
KR20110101012A (ko) 컴바인드 코딩을 이용한 병렬데이터 인터페이스 방법, 기록매체 및 그 장치
TWI814271B (zh) 編碼及解碼設備
KR20160121224A (ko) 고속 통신을 위한 전송장치, 이를 포함하는 인터페이스 회로 및 시스템
CN114171074A (zh) 生成多电平信号的发送器和包括发送器的存储器系统
Mohanram et al. Context-independent codes for off-chip interconnects