ES2883587T3 - Sistema de memoria con interconexión de solicitud punto a punto - Google Patents
Sistema de memoria con interconexión de solicitud punto a punto Download PDFInfo
- Publication number
- ES2883587T3 ES2883587T3 ES17157845T ES17157845T ES2883587T3 ES 2883587 T3 ES2883587 T3 ES 2883587T3 ES 17157845 T ES17157845 T ES 17157845T ES 17157845 T ES17157845 T ES 17157845T ES 2883587 T3 ES2883587 T3 ES 2883587T3
- Authority
- ES
- Spain
- Prior art keywords
- memory
- request
- ports
- data
- controller
- 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
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1072—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for memories with random access ports synchronised on clock signal pulse trains, e.g. synchronous memories, self timed memories
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1678—Details of memory controller using bus width
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1684—Details of memory controller using multiple buses
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1694—Configuration of memory controller to different memory types
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C5/00—Details of stores covered by group G11C11/00
- G11C5/06—Arrangements for interconnecting storage elements electrically, e.g. by wiring
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1015—Read-write modes for single port memories, i.e. having either a random port or a serial port
- G11C7/1045—Read-write mode select circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1075—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for multiport memories each having random access ports and serial ports, e.g. video RAM
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Dram (AREA)
- Multi Processors (AREA)
Abstract
Un aparato que comprende un dispositivo (1552) de memoria dinámica de acceso aleatorio, DRAM, donde el dispositivo de DRAM tiene al menos dos puertos de solicitud, y un circuito integrado que tiene un controlador de memoria (1220) para controlar el funcionamiento del dispositivo de DRAM, comprendiendo el circuito integrado: una interfaz de solicitud unidireccional que tiene al menos dos puertos de comando / dirección (CA1, CA2), cada puerto de comando / dirección para enviar, en un modo operativo, comandos de escritura y direcciones correspondientes a un puerto de solicitud respectivo de los al menos dos puertos de solicitud del dispositivo de DRAM, y cada puerto de comando / dirección para enviar, en un modo de bucle de retorno, al menos un patrón de prueba al puerto de solicitud respectivo de los al menos dos puertos de solicitud del dispositivo de DRAM; y una pluralidad de interfaces de datos bidireccionales (DQ1, DQ2) para enviar, en el modo operativo, datos correspondientes a cada comando de escritura de los comandos de escritura al dispositivo de DRAM y para recibir de vuelta, en el modo de bucle de retorno, desde el dispositivo de DRAM, el al menos un patrón de prueba, donde el dispositivo de DRAM comprende: circuito de bucle de retorno para proporcionar, en el modo de bucle de retorno, rutas de bucle de retorno desde el puerto de solicitud respectivo de los al menos dos puertos de solicitud a una interfaz de datos bidireccional respectiva de la pluralidad de interfaces de datos bidireccionales (DQ1, DQ2) del circuito integrado.
Description
DESCRIPCIÓN
Sistema de memoria con interconexión de solicitud punto a punto
Campo
Esta invención se refiere a tecnología de memoria de semiconductores así como a usos relacionados de la tecnología de memoria de semiconductores.
Antecedentes
La tecnología de diseño y fabricación de dispositivos de memoria de semiconductores ha evolucionado rápidamente durante la última década. En el caso de las memorias dinámicas de acceso aleatorio (DRAM), por ejemplo, el número de bits de datos almacenados en un solo chip DRAM se ha multiplicado por cuatro aproximadamente cada tres años. Esto ha dado como resultado la duplicación del tamaño de los sistemas de memoria al mismo ritmo. Cada nueva generación de DRAM de mayor densidad reduce a la mitad el número de chips de memoria individuales necesarios en un sistema. Menos chips DRAM individuales (pero de mayor densidad) en los sistemas de memoria da como resultado una menor cantidad total de pines disponibles para la transferencia de datos dentro del sistema. Reducir el número de pines disponibles para recibir y transmitir información disminuye el ancho de banda del sistema de memoria. Es decir, mientras que dentro del chip de memoria se puede acceder a una gran cantidad de bits por ciclo, solo un pequeño porcentaje de los datos puede atravesar el límite del dispositivo hacia el mundo externo en un intervalo de tiempo determinado.
Sin embargo, los microprocesadores y los sistemas informáticos avanzados de hoy exigen anchos de banda de datos cada vez mayores de los sistemas de memoria. Esto ha resultado en un esfuerzo más concertado en la industria de memorias para diseñar soluciones al cuello de botella del ancho de banda. Un enfoque para mejorar el ancho de banda de datos en los sistemas de memoria se ha centrado en diseñar estructuras de interfaz de alta velocidad. Un subsistema de memoria basado en una tecnología de interfaz muz rápida y eficiente que explota una serie de técnicas innovadoras de transmisión de datos se describe en las patentes de EE.UU. 5.319.755 (Farmwald et al.) y en 5.430.676 (Ware et al.). Otros enfoques se han centrado más en los circuitos internos de los dispositivos de memoria para aumentar la tasa de transferencia de datos. El documento US2007050167 se refiere en general a dispositivos de memoria de alta velocidad y, más específicamente, a técnicas para inicializar y calibrar controladores en dispositivos de memoria de alta velocidad.
Breve descripción de los dibujos
El objeto descrito se ilustra a modo de ejemplo, y no a modo de limitación, en las figuras de los dibujos adjuntos y en los que números de referencia similares se refieren a elementos similares y en los que:
la figura 1 muestra un sistema con un controlador acoplado a una memoria en una primera configuración.
La figura 2 muestra el sistema de la figura 1 en una segunda configuración.
La figura 3 muestra el sistema de la figura 1 en una tercera configuración.
La figura 4 muestra un sistema con un controlador acoplado a una memoria en una cuarta configuración.
La figura 5 muestra el sistema de la figura 4 en una quinta configuración.
La figura 6 muestra el sistema de la figura 4 en una sexta configuración.
La Figura 7 ilustra un esquema simplificado de una memoria para su uso en el sistema de las Figuras 1-6, en esta ilustración se proporciona el detalle del enrutador de la ruta de datos de escritura.
La Figura 8 ilustra un esquema simplificado para el enrutador de ruta de datos de lectura para la memoria de la Figura 7.
La figura 9 es un diagrama de una realización de módulo sin búfer en una configuración básica.
La figura 10 es un diagrama de una realización de módulo sin búfer en una configuración mejorada.
La figura 11A es un diagrama de un módulo sin búfer para usar en el sistema de las figuras 9-10.
La figura 11B muestra un diagrama de tiempos que compara la serialización de la solicitud (RQ) entre DDR3, GDDR3/4, XDR y la serialización utilizada de acuerdo con una realización descrita en el presente documento.
La figura 11C muestra un sistema alternativo que emplea un controlador de acuerdo con una realización descrita en este documento.
La figura 11D muestra un posible enfoque de reloj y señalización utilizable de acuerdo con una realización descrita en el presente documento.
La figura 12 es un diagrama de bloques que ilustra un sistema de memoria 1200 en un primer modo de operación, según una realización de la presente divulgación.
La figura 13 es un diagrama de bloques que ilustra un sistema de memoria 1250 en un segundo modo de operación, según una realización.
La figura 14 es un diagrama de flujo que ilustra un método de operar un sistema de memoria en una pluralidad de modos de operación, de acuerdo con una realización de la presente divulgación.
La figura 15 es un diagrama de bloques que ilustra un sistema de memoria 1500 en un primer modo de operación, según otra realización de la presente divulgación.
La figura 16 es un diagrama de bloques que ilustra un sistema de memoria en un segundo modo de operación. La figura 17 es un diagrama de flujo que ilustra un método de operar un sistema de memoria en una pluralidad de modos de operación.
La figura 18 es un diagrama de bloques que ilustra un sistema de memoria con una topología de enlace CA de "punto a 2 punto".
La figura 19 representa un sistema de memoria 1900 que incluye un controlador de memoria IC 1905 conectado a un único dispositivo de memoria IC (por ejemplo, una matriz DRAM) 1910 de acuerdo con una realización.
La Figura 20 muestra un diagrama de tiempos 2000 en el que cuatro transacciones de lectura se dirigen a bancos ubicados en cada uno de los cuatro cuadrantes BLKA0, BLKA1, BLKBO y BLKB1 en la memoria 1910 de la Figura 19. La figura 21 representa un sistema de memoria de dispositivo dual 2100 en el que el controlador 1905 de la figura 19 está configurado para comunicarse con dos dispositivos de memoria 1905, para el doble de capacidad de memoria del sistema 1900, mientras se mantiene el mismo número de bancos y la misma granularidad de acceso.
La Figura 22 muestra un diagrama de tiempo 2200 en el que cuatro transacciones de lectura se dirigen a bancos ubicados en cada uno de los cuatro cuadrantes BLKA0, BLKA1, BLKBO y BLKB1 de cada uno de los dos dispositivos de memoria (por ejemplo, DRAMS) 1910 del sistema 2100 de la Figura 21.
La Figura 23 muestra un sistema de memoria de cuatro dispositivos 2300 en el que el controlador 1905 de la Figura 19 está configurado para comunicarse con cuatro dispositivos de memoria 1905, por cuatro veces la capacidad de memoria del sistema 1900, mientras se mantiene el mismo número de bancos de memoria lógica y la misma granularidad de acceso para las secciones 2105 y controlador 1905 en general.
La figura 24 representa un dispositivo de memoria integrado 1910 de acuerdo con una realización, que incluye todos los puertos de interfaz y los principales bloques de circuitos internos.
La figura 25 representa un sistema de memoria 2500 de acuerdo con otra realización.
La Figura 26 detalla partes del sistema 2500 de la Figura 25, dos interfaces de datos del lado del controlador 2605 y 2610 y dos interfaces de datos del lado del dispositivo de memoria 2615 y 2620.
La Figura 27 muestra el proceso de configuración de un enlace de escritura "uniforme" en el modo de bucle de retorno. El multiplexor 2660 en la interfaz 2620 en el lado del dispositivo de memoria selecciona la salida del deserializador 2662 de la interfaz 2615.
La figura 28 representa un sistema de memoria de acuerdo con una realización en la que una placa de circuito impreso 2800 soporta un controlador de memoria 2805, un módulo de memoria 2810 y tres módulos de continuidad 2815.
La Figura 29 muestra el sistema de memoria introducido en la Figura 28 en una configuración o modo de módulo dual.
La Figura 30 representa el sistema de memoria descrito en relación con las Figuras 28 y 29, pero esta vez en una configuración de cuatro módulos completamente poblada.
Descripción detallada
Resumen
Se describe un dispositivo de memoria avanzado y un sistema con puertos de solicitud múltiple (RQ). Las realizaciones permiten que el ancho de banda RQ se escale con el ancho de banda de datos (DQ) mediante el uso de topologías de punto a punto y tasas de señalización similares al tiempo que permiten el escalado de capacidad con disposiciones para mantener una granularidad de acceso baja o constante. La descripción de las figuras se centra en mostrar el enrutamiento de las comunicaciones y el funcionamiento de los dispositivos, pero a menudo omite esquemas detallados que de otro modo saturarían la descripción y obstruirían la comprensión de las realizaciones mostradas.
Terminología y notación
"Punto a punto": para los propósitos de esta descripción, el término "punto a punto" se referirá generalmente a un canal de comunicación dedicado entre dos puntos, por ejemplo, de un controlador a una memoria. Generalmente, la señal de punto a punto viajará directamente entre los dos puntos sin componentes activos intermedios. Sin embargo, en algunos casos pueden estar presentes búferes y / o inversores u otros elementos en la ruta de señalización. El contraste general es versus un canal de comunicación compartido, como un bus multipunto, donde el mismo canal se comparte con otros componentes activos, por ejemplo, para que el controlador se comunique con una primera memoria, la señal debe pasar por una segunda memoria.
"Puerto": Para los propósitos de esta descripción, el término "puerto" generalmente se referirá a uno o más cables de señalización usados para transmitir un grupo de información relacionado lógicamente. Por ejemplo, si una unidad de transmisión comprende dos símbolos transmitidos en serie usando señalización de un solo extremo, entonces un puerto en ese ejemplo podría implementarse físicamente usando un solo cable, o traza de placa de circuito impreso (PCB), etc. Si la misma unidad de transmisión se envió usando señalización diferencial, entonces un puerto podría implementarse físicamente usando dos cables, o trazas de PCB, etc. En el contexto de memoria de un paquete de solicitud (RQ), un puerto proporciona cables de señalización adecuados para toda la información necesaria de comando y dirección (CA o C/A) para describir la solicitud según la metodología de señalización, codificaciones de símbolos y serialización / deserialización en uso. El significado para paquetes y puertos DQ es análogo. Se hace notar que, si se utilizan esquemas de codificación de múltiples cables para la transmisión, es posible que algunos cables se compartan a través de múltiples puertos en la implementación física específica en un chip y / o circuito dado.
Número de puertos mostrados en las figuras: dado que los controladores de memoria y los dispositivos de memoria reconfigurables, así como los sistemas relacionados, son el foco de las realizaciones descritas en este documento, es conveniente en las figuras anotar a menudo el número de puertos en uso para una función determinada, por ejemplo, ya sea RQ o DQ. Por ejemplo, en la Figura 1, el dispositivo de memoria 102A se muestra con RQ 4x1 y DQ 4x8. Esto indica una configuración que incluye cuatro puertos RQ de enlace único y cuatro puertos DQ de ocho enlaces. Compárese esto con la Figura 3, donde se muestra el mismo dispositivo de memoria 102A con RQ 1x1 y DQ 1x8, que indica una configuración que incluye un puerto RQ de enlace único y un puerto DQ de ocho enlaces. La Figura 7 y el texto adjunto, más adelante, proporcionan contexto para una implementación única de los dispositivos de memoria 102A-D mostrados en las Figuras 1-6. En algunas realizaciones, el número de puertos que están en uso puede ser diferente del número de puertos físicos. Si una referencia dada es a un puerto físico o a un subconjunto de puertos físicos que se utilizan en una realización dada, quedará claro en el contexto.
"Solicitud" o "RQ": cuando se utiliza en el contexto de memoria en esta descripción, el término solicitud (RQ) es intercambiable por comando y dirección (C/A). De manera similar, C/A puede usarse indistintamente para RQ.
Sistemas de ejemplo
Las figuras 1-3 muestran las capacidades de escalamiento de capacidad de esta arquitectura configurable punto a punto mediante la discusión de un sistema 100 ejemplar.
La figura 1 muestra un sistema 100 según una primera configuración. En esta configuración, un controlador 101 está acoplado en comunicación con un dispositivo de memoria 102A. El controlador 101 tiene cuatro puertos de solicitud de enlace único RQ y, para cada puerto de solicitud, un puerto de datos de ocho enlaces dQ. En esta primera configuración, todos los puertos RQ (cuatro puertos de enlace único o 4x1) y todos los puertos DQ (cuatro puertos de ocho enlaces o 4x8) del controlador 101 están acoplados en comunicación con un solo dispositivo de memoria 102A.
Como se mencionó anteriormente, el cableado físico o la topología de comunicación es específica de la implementación. Por ejemplo, si el sistema emplea un paquete de solicitud de 32 símbolos, cada uno de los cuatro puertos RQ recibirá un paquete diferente por período de tiempo. En esta configuración, cada uno de los puertos de solicitud está acoplado a una matriz de memoria diferente dentro del dispositivo de memoria. Consulte la explicación de la Figura 7, más adelante, para obtener más información sobre el dispositivo de memoria 102A. Los términos alternativos para la matriz de memoria pueden ser cuadrantes (quads) o secciones. La propia matriz de memoria se puede subdividir en varios bancos. A lo largo de estos ejemplos, en los cálculos se supone una longitud de ráfaga, o captación previa, de 32 símbolos por enlace, a menos que se indique lo contrario.
Es útil considerar que algunas realizaciones hacen uso ventajoso de puertos RQ de alta velocidad que pueden ser tan pequeños como un enlace (por ejemplo, un cable para señalización de un solo extremo o dos cables para señalización diferencial). En tales realizaciones, si los enlaces RQ se ejecutan a, o cerca de, la velocidad de los enlaces DQ, hay menos cables asociados con cada puerto RQ para enrutar. Por ejemplo, en un sistema de memoria XDR®, hay 12 cables o enlaces de un solo extremo que se utilizan para proporcionar información de solicitud (comando y dirección) a los dispositivos de memoria. Cada paquete de solicitud tiene 24 bits enviados en dos símbolos por paquete a través de los 12 enlaces. (Véase la discusión de la Figura 11B, más abajo, para un diagrama de tiempo de muestra.) En la nomenclatura de esta descripción, esos 12 cables o enlaces de un solo extremo se considerarían un puerto RQ. Por el contrario, según algunas realizaciones, el enlace o enlaces RQ se pueden implementar usando uno o más pares de cableado diferencial que transportan paquetes de solicitud a la misma velocidad que los enlaces DQ (por ejemplo, 32 símbolos o paquetes RQ). En tales realizaciones, la Figura 1 requeriría solo cuatro pares de cableado diferencial (8 cables en total) para acoplar los cuatro puertos RQ del controlador 101 a los puertos RQ del dispositivo de memoria 102A. Según la realización ilustrada, la tasa de bits para cada enlace RQ es idéntica a la tasa de bits para cada enlace DQ, por lo que un enlace RQ podría enviar una solicitud de lectura o escritura independiente para 32 bytes (32 símbolos x 8 enlaces DQ por enlace RQ). Si se envían cuatro (4) solicitudes simultáneas a través de cada uno de los cuatro puertos RQ, el número total de bytes de datos a los que se accede por tiempo de paquete sería 4 x 32 bytes o 128 bytes.
La figura 2 muestra el sistema 100 en una configuración de dispositivo dual en la que el controlador 101 está acoplado en comunicación con los dispositivos de memoria 102A y 102B. El controlador 101 tiene dos puertos RQ acoplados a cada dispositivo de memoria 102A, y cada dispositivo de memoria 102A está configurado para incluir dos puertos RQ de enlace único (por ejemplo, 2x1). Los puertos DQ en el controlador 101 están divididos de manera similar, dos para el dispositivo de memoria 102A y dos para el dispositivo de memoria 102B, o dieciséis enlaces de datos para cada dispositivo de memoria. Para adaptarse a esta división, cada dispositivo de memoria está configurado para proporcionar dos puertos de solicitud de enlace único (2x1). Como resultado, el número total de bytes de datos a los que se accede por dispositivo de memoria 102A (o dispositivo de memoria 102B) por tiempo de paquete se reduce a la mitad a 2 x 32 bytes, o 64 bytes. El controlador 101 agregará información de direccionamiento adicional, por ejemplo, 1 bit, a cada paquete de solicitud enviado a través de los puertos RQ porque el controlador 101 necesita direccionar el doble de la capacidad del dispositivo de memoria como en la Figura 1, pero ahora a la mitad del número de bytes de datos por dispositivo de memoria por tiempo de paquete. Vea la discusión de la Figura 7, más abajo, para ver cómo las cuatro matrices de memoria dentro de un dispositivo se pueden dividir en grupos pares e impares. En una realización, el tamaño del paquete RQ permanece fijo, por ejemplo, 32 símbolos, a pesar de la información de direccionamiento adicional. La longitud del paquete DQ permanece fija ya que las realizaciones de las Figuras 1-3 se centran en la escalabilidad de la capacidad.
La figura 3 muestra el sistema 100 según una tercera configuración. En esta configuración, el controlador 101 está acoplado en comunicación con los dispositivos de memoria 102A-D. De los cuatro puertos RQ del controlador 101, uno está acoplado a cada uno de los dispositivos de memoria 102A-D. De manera similar, de los cuatro puertos DQ, uno (ocho enlaces de datos) está acoplado a cada uno de los dispositivos de memoria 102A-D. Como resultado, el número total de bytes de datos a los que se accede por dispositivo de memoria 102A-D por tiempo de paquete se reduce a la mitad nuevamente en comparación con la Figura 2, a 1 x 32 bytes, o 32 bytes en total. Aquí, el controlador agrega aún más información de direccionamiento que la utilizada en la Figura 2, por ejemplo, un bit más, para cada paquete RQ, mientras se mantiene fijo el tamaño del paquete RQ, porque el controlador 101 necesitará direccionar el doble de la capacidad del dispositivo de memoria que en las Figuras 1-2, pero ahora a 32 bytes de datos por dispositivo de memoria por tiempo de paquete. La interfaz de solicitud de cada dispositivo de memoria incluye un puerto de enlace único en esta configuración. Por tanto, en esta tercera configuración, los cuatro paquetes RQ van cada uno a diferentes dispositivos de memoria, y cada dispositivo de memoria 102A-D tiene 8 enlaces Dq que se encaminan a la matriz de memoria apropiada dentro del dispositivo de acuerdo con la información de direccionamiento. El tiempo del paquete DQ no se modifica en esta configuración. En efecto, la capacidad de memoria se duplica en la Figura 2 en comparación con la Figura 1, y se duplica nuevamente en la Figura 3, mientras se mantiene el mismo número de conexiones punto a punto para los enlaces de datos DQ y de solicitud RQ que se extienden entre el controlador de memoria 101 y el dispositivo o dispositivos de memoria adjuntos. También es ventajoso desde la perspectiva del controlador de memoria, que la granularidad de la transacción sea la misma para uno, dos o cuatro dispositivos de memoria. Por
tanto, la capacidad de almacenamiento del sistema 100 se puede escalar mientras se mantiene el uso de conexiones punto a punto y una granularidad de acceso por puerto constante.
Habiendo descrito la topología básica y la disposición de los elementos, el sistema 100 se describirá ahora con mayor detalle junto con los aspectos funcionales. En una realización, el sistema 100 es un sistema informático, por ejemplo, una computadora servidor, una consola de videojuegos o un ordenador personal; una placa de circuito impreso; módulo de varios chips, o sistema en cápsula.
El controlador 101 es un circuito integrado con un controlador de memoria, por ejemplo, una CPU, GPU, puente norte, puente sur, etc. Por ejemplo, en una realización, el sistema 100 podría ser un sistema de consola de juegos, el controlador 101 podría ser un motor de banda ancha celular (Cell Broadband Engine) modificado de IBM. El sistema de consola de juegos podría tener un número fijo de dispositivos de memoria del mismo tipo que el dispositivo de memoria 102A, por ejemplo, dos dispositivos como en la Figura 2. Otros números de dispositivos de memoria que los que se muestran en las Figuras 1-3 podrían ser compatibles con un solo controlador con los ajustes apropiados al número de puertos RQ / DQ en el controlador 101. Véase, por ejemplo, la discusión de la Figura 11, más adelante.
Los dispositivos de memoria 102A-D pueden ser cualquier memoria de lectura / escritura con una interfaz adecuada para comunicarse con el controlador, por ejemplo, RAM, DRAM, memoria no volátil, SRAM o incluso dispositivos ROM en modo de solo lectura, pueden ser también usados. Los dispositivos de memoria 102A-D pueden estar acoplados directamente al sistema 100, por ejemplo, soldados a la placa de circuito impreso (PCB) o extraíbles en módulos tales como DIMM, SIMM, etc. Véase la discusión de la Figura 9, más adelante, para una realización que utiliza módulos.
Resumiendo, diferentes realizaciones proporcionan una forma de tener un solo controlador, por ejemplo, controlador 101, que admite una amplia gama de capacidad de memoria (de uno a cuatro dispositivos de memoria en el ejemplo) mientras mantiene el enrutamiento punto a punto para los puertos RQ y DQ. Todos los dispositivos de memoria 102A-D están acoplados al controlador de forma punto a punto. En estas realizaciones, los dispositivos de memoria 102A-D son programables en ancho DQ y tienen lógica de solicitud configurable. La programabilidad y reconfigurabilidad pueden detectarse automáticamente en función de la presencia / ausencia de dispositivos o módulos de memoria, programables a través de uno o más registros fusibles, flasheables o programables eléctricamente, configurados mediante puentes en el sistema 100, controlados por la información de paquete de solicitud, y / u otros medios. Todas estas realizaciones ofrecen ventajas en el sentido de que un solo tipo de dispositivo de memoria, por ejemplo, el dispositivo de memoria 102A, se puede utilizar en configuraciones muy diferentes.
El controlador 101 también se puede utilizar en otro conjunto de configuraciones para una granularidad de acceso escalable. En las tres configuraciones discutidas hasta ahora en relación con las Figuras 1-3, la granularidad de acceso por puerto RQ permaneció constante en 32 bytes. Este resultado se puede derivar de las siguientes suposiciones, 32 símbolos / enlace DQ / solicitud * 8 enlaces DQ / puerto RQ. El controlador 101 también se puede utilizar en configuraciones que permitan la escalabilidad de granularidad, que se describirá junto con las Figuras 4-6.
La figura 4 muestra un sistema 400 en una cuarta configuración. El sistema 400 proporciona escalabilidad de granularidad utilizando diferentes configuraciones. En la cuarta configuración, el controlador 101 está acoplado al dispositivo de memoria 102A. En particular, solo uno de los cuatro puertos RQ (1/4) en el controlador 101 se usa en esta primera configuración. De nuevo, según la discusión de la notación, más arriba, el número real de puertos en el controlador 101 y el dispositivo de memoria 102A puede ser diferente.
El punto relevante es el número en uso en esta configuración. Siguiendo este ejemplo de las Figuras 4-6, resultará evidente la adaptabilidad de un único dispositivo 102A de memoria a una variedad de configuraciones de controlador diferentes. Nótese que la longitud de la dirección en cada paquete de solicitud en la Figura 4 sería más corta que la información de dirección para el sistema 100 como se configura en la Figura 1. Esto se debe a que la misma memoria con mayor granularidad de acceso tiene menos ubicaciones direccionables. Sin embargo, el formato del paquete de solicitud aún podría tener un tamaño constante en todas estas configuraciones.
En la quinta configuración mostrada en la Figura 5, el sistema 400 tiene el controlador 101 acoplado al dispositivo de memoria 102A usando dos de los cuatro puertos RQ (2/4) en el controlador 101 y el dispositivo de memoria 102A. En la sexta configuración, de la Figura 6, cada uno de los cuatro puertos RQ (4/4) se utilizan en ambos dispositivos. Usando el ejemplo, en la cuarta configuración, que se muestra en la Figura 4, la granularidad de acceso sería de 128 bytes. Este resultado puede derivarse de los siguientes supuestos: 32 símbolos / enlace DQ / solicitud * 32 enlaces DQ / canal RQ. La granularidad de acceso sería de 64 bytes y 32 bytes, en las Figuras 5 y 6, respectivamente, porque el número de enlaces DQ asociados con cada canal de solicitud sería de 16 y 8, respectivamente. El sistema 400 permite a los diseñadores de sistemas asignar los enlaces RQ mínimos requeridos para una granularidad de acceso deseada.
En una realización, solo se implementa el número deseado de enlaces de solicitud en el controlador 101 para la granularidad de acceso al sistema deseada. El dispositivo de memoria 102A se puede programar en el número
deseado de canales de solicitud independientes. Específicamente, un fabricante de sistemas de consola de juegos puede preferir una granularidad de acceso de 128 bytes, mientras que los fabricantes de sistemas de computadoras de escritorio y servidores pueden preferir una granularidad de acceso de 32 bytes. En consecuencia, cada fabricante puede poner solo el número real de puertos de solicitud externos necesarios para la granularidad de acceso deseada; sin embargo, el mismo dispositivo de memoria 102A puede ser utilizado por estas configuraciones enormemente diferentes. Por ejemplo, el deseo de tener ahorros en las clavijas del controlador y / o reducción de costos podría ser la razón por la que el número de puertos de solicitud podría variar en el controlador 101.
Como se ha comentado, el dispositivo de memoria 102A incluirá una o más matrices de memoria, a veces denominadas cuadrantes, secciones o sectores, o incluso bancos. Cada matriz de memoria es capaz de decodificar solicitudes de acceso (por ejemplo, lectura) independientes. El enrutador de solicitudes dentro del dispositivo de memoria 102A se puede configurar para transmitir la misma solicitud a todas las matrices de memoria, para enviar solicitudes únicas a cada matriz de memoria y / o combinaciones de estas u otras opciones para hacer un uso eficiente de las matrices de memoria. Esto se describe con más detalle junto con una implementación de ejemplo en las Figuras 7-8. Además, cada una de las matrices de memoria puede hacer uso de micro-subprocesado (micro-threading) y puede estar compuesta por matrices más pequeñas de celdas de memoria. En ejemplos posteriores, las matrices de memoria se dividen en cuatro "quads" direccionables de forma independiente, cada uno de los cuales incluye cuatro bancos.
La figura 7 ilustra un esquema simplificado de un dispositivo de memoria 102A para su uso en el sistema de las figuras 1-6. Los elementos de la Figura 7 se describirán seguidos de su uso.
El dispositivo de memoria 102A se compone de cuatro matrices de memoria 700A-D. Son posibles más matrices en configuraciones alternativas. Cada matriz de memoria 700A-D puede funcionar de forma independiente. Las matrices de memoria están acopladas a un enrutador de solicitud 702, un enrutador de ruta de datos de escritura 704 y un enrutador de ruta de datos de lectura 706. Para mayor claridad, el enrutador de ruta de datos de lectura 706 no se muestra en detalle en la Figura 7. La Figura 8 proporciona detalles sobre el enrutador de ruta de datos de lectura 706. Para el resto de la discusión de la Figura 7, los detalles del enrutador de ruta de datos de lectura 706 se omitirán con el entendimiento de que la operación y la funcionalidad son paralelas al enrutador de ruta de datos de escritura 704.
El enrutador de solicitud 702 y el enrutador de ruta de datos de escritura 704 reciben señales de selección: RQ Config select 710 y DQ width select 708, respectivamente. Pueden ser señales distintas o la misma señal. La señal puede provenir del dispositivo de memoria 102A, por ejemplo, a partir de configuraciones, puentes, señales, cables, etc., o la señal puede calcularse en el dispositivo de memoria 102A, por ejemplo, usando de una combinación de registros, lógica, etc. En cualquier caso, RQ Config select 710 controla el número de puertos C/A utilizados, mientras que DQ width select 708 controla el ancho del dispositivo y el número de puertos d Q utilizados. En la realización de ejemplo con cuatro matrices de memoria 700A-D, las señales de selección varían de cero a dos. Específicamente, si RQ Config select 710 es cero, solo se usará un puerto de solicitud RQ0; si es uno, se utilizarán dos puertos de solicitud RQ0 y RQ1; si son dos, se utilizarán los cuatro puertos de solicitud RQ [3:0]. De manera similar, DQ width select 708 varía el ancho del dispositivo de memoria: si es cero, entonces se usa un puerto DQ (enlaces DQ [7:0]); si es uno, entonces se utilizan dos puertos DQ (enlaces DQ [7: 0] y DQ [15:8]); y si es dos, entonces se utilizan cuatro puertos DQ (enlaces DQ [7:0], DQ [15:8], DQ [23:16] y DQ [31:24]). En otras realizaciones, la escala puede ser en x1, x2, x4, x8, x16 y x32. También son posibles otros factores de escala. Las señales de habilitación de escritura a las matrices de memoria 700A-D se eliminan para mayor claridad de la ilustración. Véanse, por ejemplo, las figuras 18-20 de la publicación de patente estadounidense 2004/0221106 y el texto adjunto para una discusión sobre la habilitación de escritura a nivel de módulo para enrutar señales a dispositivos de memoria en una topología configurable punto a punto.
Al cambiar el valor de RQ Config select 710 y de DQ width select 708, el dispositivo de memoria 102A puede funcionar en las diferentes configuraciones descritas anteriormente en relación con las figuras 1-6.
Las selecciones 716A-H son lógicas que utilizan los valores de la RQ Config select 710 y DQ width select 708 para lograr el enrutamiento de señales dentro del enrutador de solicitud 702 y el enrutador de ruta de datos de escritura 704. En una realización, las selecciones 716A-H se implementan usando multiplexores. En esta configuración de ejemplo, RQ Config select 710 y DQ width select 708 podrían ser dos cables para proporcionar entradas a los multiplexores.
Los otros componentes del dispositivo de memoria 102A se muestran brevemente como referencia. Específicamente en el lado de la solicitud, se utilizan búferes seguidos de deserializadores 712A-D y controladores de solicitud de memoria 714A-D (abreviado como CTL en la figura). Los controladores de solicitud de memoria 714A-D están acoplados al enrutador de solicitud 702.
Los controladores de solicitud de memoria 714A-D (etiquetados como CTL 0 a CTL 3) reciben información de dirección y comando deserializada, la decodifican y generan señales de dirección y control para interactuar con las matrices de
memoria 700A-D. Los controladores de solicitud de memoria 714A-D pueden incluir máquinas de estado, registros, decodificadores, secuenciadores y similares. La realización de ejemplo muestra los controladores de solicitud de memoria 714A-D colocados delante del enrutador de solicitud 702. Los controladores de solicitud de memoria 714A-D podrían colocarse opcionalmente después del enrutador de solicitud 702. En esa realización, el enrutador de solicitudes enrutaría la información de solicitud deserializada, pero no codificada. La funcionalidad del enrutador de solicitud 702 es independiente de la información específica que se está enrutando.
En el lado DQ, los búferes seguidos por los deserializadores 720A-D aceptan la entrada desde fuera del dispositivo de memoria 102A y los serializadores 722A-D se acoplan a los búferes para enviar la salida desde la memoria al exterior. Los deserializadores 720A-D y los serializadores 722A-D están acoplados a los respectivos módulos de ruta de datos 718A-D. Los módulos de ruta de datos 718A-D están acoplados al enrutador de ruta de datos de escritura 704 (y al enrutador de ruta de datos de lectura 706).
Los módulos de ruta de datos 718A-D (abreviado como DP en la figura) brindan soporte tanto para lectura como para escritura. En algunas realizaciones, los módulos de ruta de datos 718A-D tienen rutas de lectura y escritura separadas. Para escrituras, los módulos de ruta de datos 718A-D realizan modificaciones de los datos de escritura (por ejemplo, inversión de bits, corrección de errores, reemplazo de bytes enmascarados, comparación de claves de máscara, etc.) y generan, o transmiten, datos de escritura y señales de habilitación de escritura a las matrices de memoria 700A-D. Para las lecturas, los módulos de ruta de datos 718A-D realizan cualquier modificación necesaria de los datos leídos (por ejemplo, inversión de bits, corrección de errores, generación de paridad, modificación de latencia, etc.) a medida que se reenvían desde las matrices de memoria 700A-D a los serializadores. Como se discutió en conexión con los controladores de solicitud de memoria 714A-D, los módulos de ruta de datos 718A-D podrían ubicarse después / antes del enrutador de ruta de datos de escritura 704 / enrutador de ruta de datos de lectura 706 y la funcionalidad de esos enrutadores es independiente de la información específica que se está enrutando.
La figura 8 ilustra un esquema simplificado para el enrutador de ruta de datos de lectura 706 para el dispositivo de memoria 102A de la figura 7. Centrándose específicamente en diferentes elementos frente a la Figura 7, el enrutador de ruta de datos de lectura 706 se muestra ahora en detalle, incluyendo las selecciones 816A-B para lograr la funcionalidad de enrutamiento. En esta realización de ejemplo se proporcionan dos selecciones de lectura para controlar las selecciones 816A-B: Read CH 0 Select 802 y Read CH 1 Select 804. El valor de estos dos es una función de la configuración actual de DQ width select 708 y la decodificación de la dirección. Véanse, por ejemplo, las figuras 18-20 de la publicación de patente estadounidense 2004/0221106 y el texto adjunto para una discusión de la decodificación de direcciones a nivel de módulo para enrutar señales a dispositivos de memoria en una topología configurable punto a punto.
En algunas realizaciones, el uso de los puertos de solicitud se puede multiplexar en tiempo para escalonar las solicitudes en diferentes matrices de memoria. Por ejemplo, si una solicitud está en uso, en lugar de enviar el mismo paquete a las cuatro matrices de memoria, la información C/A se puede escalonar en el tiempo de modo que se proporcione información C/A diferente a cada matriz de memoria dentro del dispositivo.
Aunque se muestran una realización del enrutador de ruta de datos de escritura 704 y del enrutador de ruta de datos de lectura 706, son posibles otras realizaciones de enrutamiento para proporcionar un uso flexible de las matrices de memoria 700A-D. Por ejemplo, se podría utilizar una barra transversal completa con la capacidad de enrutar cualquier puerto de entrada a cualquier puerto de salida en función de una selección de ruta dinámica. La selección de ruta en estas realizaciones podría decodificarse a partir de pines de entrada, fusibles, configuraciones de registro, bits de dirección y / o campos de los paquetes de solicitud, otras señales y / o alguna combinación de estas opciones.
Uso junto con módulos de memoria
La discusión de las Figuras 1-6 con respecto a las configuraciones del sistema que emplean dispositivos de memoria y controladores que soportan una variedad de realizaciones se ha centrado principalmente en controladores acoplados directamente a dispositivos de memoria individuales, en oposición a los dispositivos de memoria en módulos de memoria. También son posibles realizaciones que hacen uso de módulos tales como DIMM, SIMM y / u otros tipos de módulos de memoria. Estas realizaciones tienen dos sabores principales: sin búfer y con búfer. La figura 9 ilustra una realización de módulo sin búfer.
La figura 9 es un diagrama de una realización de módulo sin búfer en una configuración básica. La configuración mejorada se considerará junto con la Figura 10, más abajo. La Figura 9 ilustra un sistema 900 con un controlador 902 y zócalos 903A-B para recibir módulos de memoria y módulos de continuidad. En la configuración básica, se muestra un módulo de memoria 906A en el zócalo 903A y un módulo de continuidad 920A se muestra en el zócalo 903B. El módulo de continuidad también se puede denominar módulo de cortocircuito. La parte del controlador 902 mostrada tiene dos partes 904A-B, estas partes también pueden denominarse canales de memoria. La implementación del controlador 902 no necesita separar las dos partes físicamente, por ejemplo, pueden estar entremezcladas. En la
figura no se muestra una "mitad inferior" paralela del sistema 900 donde el controlador 902 tiene dos porciones adicionales, rutas de comunicación y zócalos para dos módulos de memoria o módulos de continuidad adicionales. Se discutirá el funcionamiento de la parte 904A; la parte 904B funciona de manera similar. Las partes inferiores invisibles también funcionan de manera similar. Al considerar la capacidad y otras características del sistema 900, se considerará la contribución de los módulos de memoria, dispositivos de memoria, etc.
Si las dos porciones 904A-B operan independientemente o en un "paso de bloqueo (block step)" (por ejemplo, información de solicitud independiente para puertos DQ en la parte 904A y la parte 904B o información de solicitud común, idéntica) es una decisión de implementación. Además, los círculos rellenos identifican los puertos de comunicaciones activos. En esta configuración de módulo único, la parte 904A está acoplada a un módulo de memoria 906A y un módulo de continuidad 920A. El módulo de continuidad 920A, a veces llamado módulo de cortocircuito, se inserta en la configuración base del sistema 900 para proporcionar las conexiones punto a punto "de regreso" al módulo de memoria 906A. Algunas realizaciones alternativas no usan módulos de continuidad y en su lugar usan otros enfoques para proporcionar la topología punto a punto al módulo de memoria 906A.
El módulo de memoria 906A incluye dispositivos de memoria 908A-D. Cada uno de los cuales es del diseño general del dispositivo de memoria 102A que se discutió anteriormente en detalle junto con las Figuras 7-8; sin embargo, en este ejemplo, los dispositivos de memoria 908A-D tienen solo dos puertos de solicitud y dos puertos DQ de ocho enlaces. Todas las conexiones desde el controlador 902 a las memorias 908A-D son punto a punto. En la configuración básica, en la parte 904A, los dos puertos de solicitud que se comunican con el módulo 906A directamente se encaminan a un puerto de solicitud respectivo en cada uno de los dispositivos de memoria 908A-B. Los otros dos puertos de solicitud en la parte 904A se comunican con los dispositivos de memoria 908A-B, un puerto de solicitud en cada memoria por medio del módulo de continuidad 920A. La configuración de DQ es análoga pero en grupos de ocho enlaces. El enrutamiento específico en el módulo de los puertos RQ y DQ en los módulos 906A-B se omite para mayor claridad.
La figura 10 es un diagrama de una realización de módulo sin búfer en una configuración mejorada. Es similar a la Figura 9, sin embargo, el módulo de continuidad 920A se ha quitado del zócalo 903B y se ha reemplazado por un módulo de memoria 906B que tiene dispositivos de memoria 908E-H (todos los cuales son de diseño similar a los dispositivos de memoria 908A-D). Como se muestra, todos los dispositivos de memoria 908A-H ahora utilizan un solo puerto RQ y un solo puerto DQ de ocho enlaces. Esto es directamente análogo a la diferencia entre la Figura 1 y la Figura 2. En la Figura 10, los círculos sin rellenar con rutas de línea de puntos indican puertos de comunicación inactivos. Específicamente, las líneas de puntos entre el módulo de memoria 906A y el módulo de memoria 906B muestran que esos enlaces de solicitud para la ruta de regreso al módulo de memoria 906A no están activos para el canal de memoria que está siendo controlado por la parte 904A.
Suponiendo que el sistema 900 requiere al menos un zócalo lleno para cada "mitad" del controlador 902 (por ejemplo, dos módulos como mínimo ya que este es un sistema de cuatro zócalos), las dos configuraciones son posibles como se describe en la Tabla 1.
Tabla 1
Las unidades utilizadas en la Tabla 1 son solo para fines de referencia, otras unidades más apropiadas para los valores específicos de X, Y y Z funcionarían igualmente bien.
Como se muestra, este sistema 900 proporciona los beneficios de capacidad en forma modular. Algunas observaciones surgen de la discusión de esto:
El número de puertos RQ por parte puede crecer asintóticamente hasta el número de enlaces DQ por parte (por ejemplo, para admitir configuraciones de alta capacidad).
El número máximo de dispositivos de memoria en el sistema está limitado por el número de puertos RQ en el caso del módulo sin búfer, ya que todos los dispositivos de memoria se sirven a través de enlaces Rq y DQ punto a punto.
El uso de módulos con búfer (no ilustrados) podría permitir módulos adicionales por puerto RQ o puerto DQ detrás de cada búfer.
La figura 11A es un diagrama de un módulo sin búfer para usar en el sistema de las figuras 9-10. El módulo de memoria 906A se muestra con mayor detalle. La Figura 11 es ilustrativa de la configuración básica de la Figura 9 y el enrutamiento específico de los puertos RQ y DQ es evidente. En la configuración mejorada de la Figura 10, los canales de comunicaciones en el lado derecho del módulo de memoria 906A estarían sin usar.
Diagramas de tiempo comparativos
La figura 11B muestra un diagrama de tiempos que compara la serialización de la solicitud (RQ) entre DDR3, GDDR3 / 4, XDR y la serialización utilizada de acuerdo con una realización descrita en el presente documento. El diagrama de tiempo que se muestra también ilustra la serialización de datos DQ de acuerdo con varios enfoques existentes. La sección inferior etiquetada "TBI" ilustra una serialización propuesta para RQ y DQ según las realizaciones descritas en el presente documento. En el ejemplo, se utiliza una velocidad de datos de 16 Gbps (gigabits por segundo) para transmitir tanto solicitudes como datos. Como se ve en la columna más a la derecha, en esta realización, un solo paquete RQ comprende 32 bits.
Diagrama de sistema alternativo
La figura 11C muestra un sistema alternativo que emplea un controlador de acuerdo con una realización descrita en este documento. El elemento etiquetado controlador se compone de múltiples partes etiquetadas PHY con dispositivos de memoria (que se muestran con la etiqueta Mem) acoplados al controlador a través de dos puertos C/A y dos puertos DQ. La figura 11C es notable porque muestra cómo utilizar la granularidad escalable del dispositivo de memoria 102A y el controlador 101 en un sistema a gran escala. El controlador ilustrado tiene la capacidad de emitir una o dos solicitudes por dispositivo de memoria y hasta treinta y dos solicitudes simultáneas al sistema de memoria. La Figura 11C muestra un sistema de memoria de un TBps (terabyte por segundo) con granularidad de acceso de 64 bytes. Sin embargo, la granularidad de acceso de 32 bytes también sería posible, al igual que la de 128 bytes aumentando el número de puertos de solicitud usados por parte en el controlador a cuatro; sin embargo, no es necesario cambiar el tipo de dispositivo de memoria, solo la configuración del dispositivo de memoria, por ejemplo, a través de las selecciones de configuración discutidas, más arriba, en relación con las Figuras 7-8. Una diferencia entre la Figura 11C y las Figuras 9-10 es que el sistema 900 emplea enrutamiento punto a punto de los puertos RQ y DQ desde el controlador más allá de los zócalos vacíos (por ejemplo, usando módulos de continuidad) para la expansión de la capacidad. Esto requiere que el módulo de memoria incluya algún enrutamiento de los puertos RQ y DQ para manejar las diferentes topologías de módulos que son posibles. En la Figura 11C, en la medida en que se utilizan módulos de memoria, son para la conveniencia de la inserción de los dispositivos de memoria, por ejemplo, no se utilizan módulos de continuidad.
Reloj y señalización
La figura 11D muestra un posible enfoque de reloj y señalización utilizable de acuerdo con una realización descrita en el presente documento. El controlador (por ejemplo, 101 o 902) y los dispositivos de memoria (por ejemplo, 102A-D y 908A-H) pueden usar señalización completamente diferencial, aunque son posibles otros enfoques de señalización y reloj. Este ejemplo utiliza una distribución de reloj solo por cable
Las realizaciones de las Figuras 1-11D permiten que el ancho de banda de solicitud se escale con el ancho de banda de datos mediante el uso de topologías punto a punto y tasas de señalización iguales o similares para solicitudes y datos, al tiempo que permiten escalar la capacidad con disposiciones para mantener una granularidad de acceso baja o constante. Para obtener la máxima flexibilidad con respecto al escalado de capacidad y granularidad, es ventajoso que el número de secciones de matriz de memoria controladas independientemente sea mayor o igual que el número de canales de solicitud implementados. Sin embargo, hay muchas formas posibles de utilizar un dispositivo de memoria con este grado de flexibilidad de configuración en un sistema, y aquí solo se han descrito algunas de las posibles realizaciones.
Una configuración sería cuatro puertos RQ con cuatro matrices de memoria en una memoria. Esto, a su vez, conduciría a las siguientes configuraciones comunes: un puerto RQ controla todas las matrices de memoria; dos puertos RQ, uno controla matrices de memoria "pares" y el otro matrices de memoria "impares"; cada uno de los cuatro puertos RQ controla de forma independiente una matriz de memoria. El número de puertos RQ se puede variar con el ancho de la
ruta de datos para permitir una granularidad de acceso fija por puerto de solicitud. Los sistemas de memoria pueden admitir micro-subprocesado en algunas realizaciones, lo que permite al controlador direccionar de forma independiente diferentes partes de un núcleo de dispositivo de memoria.
Realizaciones con solicitud de acceso y granularidad de datos constantes
Los enfoques descritos en relación con las Figuras 1-11D se pueden aplicar en una variedad de aplicaciones para permitir que un controlador de memoria se adapte a números y tipos de matrices de memoria y / o módulos de memoria. El controlador de memoria admite una interfaz de solicitud flexible y eficiente que proporciona enlaces de solicitud de punto a punto de alta velocidad, y que puede ser utilizada por un dispositivo o módulo de memoria, o puede compartirse entre varios dispositivos o varios módulos, conservando la granularidad de las solicitudes y del acceso a los datos.
Algunas realizaciones soportan tasas de señalización de paquetes de solicitud ajustables, y una velocidad seleccionada puede depender del número de módulos o dispositivos de memoria en un sistema de memoria dado y / o de cuántos dispositivos de memoria residen en un módulo de memoria respectivo. En un modo de dispositivo dual, por ejemplo, un controlador de memoria transmite paquetes de solicitud a dos dispositivos de memoria a través de los respectivos puertos de solicitud a la misma tasa de señalización. Los dos dispositivos de memoria pueden residir en un mismo módulo o en módulos diferentes. En un modo de dispositivo único, el controlador de memoria transmite paquetes de solicitud a un dispositivo de memoria único a través de ambos puertos a una tasa de señalización menor que (por ejemplo, la mitad de) la tasa de señalización utilizada en el modo de módulo dual. Los sistemas de memoria de acuerdo con las diversas realizaciones pueden incluir un búfer acoplada entre el controlador de memoria y uno o más dispositivos de memoria. El búfer puede residir en un módulo de memoria en el que residen tanto el primer como el segundo dispositivo de memoria.
La figura 12 es un diagrama de bloques que ilustra un sistema de memoria 1200 en un primer modo de operación, según una realización de la presente divulgación. El sistema de memoria 1200 incluye al menos un módulo de memoria 1202, un controlador de memoria 1220 y un canal de comunicación 1230 que acopla el módulo de memoria 1202 al controlador de memoria 1220. En una realización, el canal de comunicación 1230 incluye enlaces de datos (DQ) que forman uno o más puertos DQ (por ejemplo, enlace DQ1, enlace DQ2) y enlaces de comando / dirección (c a ) que forman uno o más puertos CA (por ejemplo, enlace CA1, enlace CA2). Por ejemplo, las líneas DQ y las líneas CA pueden formarse usando trazas de señal sobre o en una placa de circuito (por ejemplo, una placa base) a la que están fijados el controlador 1220 y el módulo de memoria 1202.
El módulo de memoria 1202 puede incluir uno o más dispositivos de memoria, tales como dispositivos de memoria 1204 y 1206, un conector 1218 para acoplar el módulo de memoria 1202 a los enlaces DQ y CA en el canal de comunicación 1230, y líneas conductoras, o trazas, 1219 para conectar los dispositivos de memoria 1204 y 1206 a los respectivos puertos Dq y CA. Las líneas conductoras 1219 pueden ser patrones conductores formados, por ejemplo, en una placa de circuito impreso, a la que se fijan los dispositivos de memoria 1204 y 1206. Aunque solo se muestran dos dispositivos de memoria 1204 y 1206 en la Figura 12, en la práctica, el sistema de memoria 1200 puede incluir más o menos dispositivos de memoria que residen en un mismo módulo de memoria o en diferentes módulos. Además, aunque los dispositivos de memoria 1204 y 1206 se muestran como residiendo en un mismo módulo de memoria 1202, la siguiente discusión sobre el sistema de memoria 1200 se aplica a situaciones en las que los dispositivos de memoria 1204 y 1206 residen en diferentes módulos de memoria.
Por ejemplo, el módulo de memoria 1202 puede ser un DIMM (módulo de memoria dual en línea, “Dual In-line Memory module”) y los dispositivos de memoria 1204 y 1206 pueden ser SDRAM (memoria de acceso aleatorio dinámico síncrono, “Synchronous Dynamic Random Access”), aunque se pueden utilizar diferentes tipos de dispositivos de memoria y módulos de memoria. El dispositivo de memoria 1204 incluye las celdas de memoria 1210 y el circuito de interfaz 1212, que también puede incluir un registro de control (no mostrado). Asimismo, el dispositivo de memoria 1206 incluye las celdas de memoria 1214 y el circuito de interfaz 1216, que también puede incluir un registro de control (no mostrado). Los circuitos de interfaz 1212 y 1216 pueden incluir pines de entrada / salida 1232 y 1234 que están conectados a las líneas conductoras 1219 para la entrada y salida de señales DQ y CA. Por ejemplo, el primer conjunto de pines de entrada / salida 1232 está conectado a CA1 y DQ1 y el segundo conjunto de pines de entrada / salida 1234 está conectado a CA2 y DQ2.
El controlador de memoria 1220 incluye un generador de solicitud de memoria 1224, un registro de modo de operación 1226 y la lógica de controlador 1222. El generador de solicitud de memoria 1224 genera solicitudes de lectura o escritura de memoria correspondientes a ciertas ubicaciones de las celdas de memoria 1210 y 1214 de los dispositivos de memoria 1204 y 1206. La lógica de controlador 1222 genera señales de control y dirección (CA, C/A o RQ) correspondientes a las ubicaciones particulares de las celdas de memoria 1210, 1214. Las señales CA pueden incluir un comando de lectura o escritura en el módulo de memoria 1202.
El controlador de memoria 1220 y por tanto el sistema de memoria 1200 son capaces de funcionar en al menos dos modos de funcionamiento para generar las señales CA con diferentes tasas de señalización CA. Al generar las señales CA, la lógica de controlador 1222 determina el modo de operación del sistema de memoria 1200 basándose, por ejemplo, en un indicador de modo de operación almacenado en el registro de modo de operación 1226. Por ejemplo, el controlador de memoria 1220 puede determinar el tipo o configuración (modo de operación) del módulo de memoria o los dispositivos de memoria 1204 y 1206 a través de la información SPD (detección de presencia en serie, “serial presence detect”) proporcionada por el módulo de memoria 1202 al controlador de memoria 1220. El ejemplo mostrado en la Figura 12 ilustra el caso en el que el sistema de memoria 1200 está en un primer modo de operación, en el que cada uno de los dispositivos de memoria 1204 y 1206 está acoplado al controlador 1220 a través de líneas dedicadas CA y DQ, por ejemplo, enlaces punto a punto. Cuando el sistema de memoria 1200 está en el primer modo de operación, la lógica de controlador 1222 genera las señales CA (CA1 y CA2) con una primera tasa de señalización (por ejemplo, 32 bits por un intervalo tRR, donde tRR representa un intervalo de tiempo mínimo entre accesos de filas independientes a un dispositivo de memoria en particular). El puerto CA1 o CA2 puede incluir múltiples enlaces de señales capaces de transportar múltiples bits de información en paralelo. En el ejemplo de la Figura 12, el puerto CA1 o CA2 puede incluir dos líneas de señal capaces de transportar dos bits de información en paralelo, o el puerto CA1 o CA2 tiene dos bits de ancho. Así, cuando la tasa de señalización de CA es 32 bits / tRR, el puerto CA1 o CA2 puede transportar un máximo de 64 bits CA durante un intervalo tRR o durante 32 intervalos tBIT-CA, donde tBIT-CA representa un intervalo de bits en una señal CA. Nótese que los puertos CA1 y CA2 pueden tener intervalos tRR desalineados (escalonados), aunque en algunos ejemplos, los puertos CA1 y CA2 pueden tener intervalos tRR alineados. La lógica de controlador 1222 también sirve para transmitir las señales CA y para transmitir y recibir señales de datos de memoria DQ a través de los puertos DQ1 y DQ2.
Como se muestra en la Figura 12, el sistema de memoria 1200 en el primer modo de operación tiene un dispositivo de memoria 1204 conectado al puerto DQ DQ1 y al puerto CA CA1 y otro dispositivo de memoria 1206 conectado al puerto DQ DQ2 y al puerto CA CA2. Por ejemplo, cada uno de los puertos DQ DQ1 y DQ2 puede tener 4 bits de ancho, lo que da como resultado un puerto de datos DQ de 8 bits de ancho. Como se indicó anteriormente, el sistema de memoria 1200 puede incluir más módulos y un módulo de memoria puede incluir más o menos dispositivos de memoria. Por ejemplo, un módulo de memoria puede contener dieciséis dispositivos de memoria, con cada dispositivo de memoria conectado a un puerto DQ de cuatro bits de ancho y a un puerto CA de dos bits de ancho, de modo que el módulo de memoria pueda transmitir o recibir 32 señales de CA en señales paralelas y 64 DQ en paralelo. Cada uno de los puertos CA1 y CA2 de CA puede tener 2 bits de ancho, lo que permite que se comuniquen 64 bits de información de CA en 32 intervalos tBIT-CA. Dado que cada uno de los dispositivos de memoria 1204 y 1206 en el primer modo de operación en la Figura 13 está conectado a un puerto CA que tiene dos bits de ancho con una tasa de señalización de 32 bits / tRR, cada dispositivo de memoria 1204 y 1206 puede recibir un máximo de 64 bits de información de CA en un intervalo tRR. Por tanto, cada dispositivo de memoria 1204 y 1206 tiene al menos un puerto CA dedicado de modo que CA1 está conectado al dispositivo de memoria 1204 y no está conectado al dispositivo de memoria 1206 y CA2 está conectado al dispositivo de memoria 1206 y no está conectado al dispositivo de memoria 1204. En este sentido, además de los puertos DQ DQ1 y DQ2, los puertos CA CA1 y CA2 también cuentan con una conexión punto a punto, proporcionando una topología simple y simétrica a la topología de los enlaces DQ. Como resultado, se puede acceder de forma independiente a cada dispositivo de memoria 1204 y 1206 a través de la línea CA dedicada. Dado que las topologías de los enlaces CA son sustancialmente las mismas que las topologías de los enlaces DQ, los enlaces CA pueden funcionar a una tasa de señalización que es del mismo orden de magnitud que la tasa de señalización de los enlaces DQ.
En una realización, la lógica de controlador 1222 incluye lógica de multiplexación/guiado (no mostrada) para permitir la generación y / o transmisión de las señales CA de acuerdo con el ancho y la tasa de señalización de los enlaces CA. Los datos de CA resultantes se transmiten luego a través de los puertos CA CA1, CA2 a sus correspondientes dispositivos de memoria 1204 y 1206.
Las señales de CA transmitidas a través del puerto CA1 son recibidas por el circuito de interfaz 1212 del dispositivo de memoria 1204 a través de los pines de entrada (CA) 1232, y las señales de CA transmitidas a través del puerto CA2 son recibidas por el circuito de interfaz 1216 del dispositivo de memoria 1206 a través de pines de entrada (CA) 1234. El dispositivo de memoria 1204 o 1206 puede ser un dispositivo de memoria de un ancho CA fijo que es el mismo que el ancho del puerto CA CA1 o CA2, respectivamente. O el dispositivo de memoria 1204 o 1206 puede tener un ancho de CA ajustable, y el circuito de interfaz 1212, 1216 puede incluir lógica de demultiplexación/guiado (no mostrada) para convertir los datos de CA recibidos en los puertos de CA (CA1 y CA2) en datos CA paralelos, con la relación de conversión serie / paralelo ajustable según el ancho y la tasa de señalización de los puertos CA.
Cuando el dispositivo de memoria 1204 y 1206 tiene un ancho CA ajustable, el circuito de interfaz 1212, 1216 puede incluir un registro de control, que almacena un indicador, indicando en qué modo de operación opera el sistema de memoria 1200. Es decir, el registro de control tiene un campo que indica el modo de operación del sistema de memoria 1200. Este campo puede ser programado en la inicialización por el controlador de memoria 1220, una vez que el controlador de memoria 1220 determina la configuración del sistema de memoria 1200. El registro de control puede
escribirse a través de los puertos CA, los puertos DQ o un enlace de banda lateral (no mostrado). También es posible utilizar un fusible, un pin de entrada dedicado u otro método no volátil, en lugar de un campo de registro volátil, para especificar el modo de operación de los dispositivos de memoria 1204, 1206. En el primer modo de operación, el circuito de interfaz 1212 y 1216 decodifica las señales CA recibidas a la primera tasa de señalización y proporciona acceso (lectura o escritura) a las celdas de memoria asociadas 1210, 1214. Nótese que cada dispositivo de memoria 1204 y 1206 se comunica con puertos CA que tienen anchos de CA1 y CA2, respectivamente, que tienen cada uno dos bits de ancho (2b) como ejemplo. Por lo tanto, en el primer modo de operación, cuando el sistema de memoria 1200 opera con una primera tasa de señalización (32 bits / tRR) para cada línea CA, la cantidad máxima de datos CA comunicados a través de cada puerto CA CA1 y CA2 es de 64 bits en cada intervalo tRR, como se muestra en la Figura 12.
Nótese que en la Figura 12 se omiten otros componentes del sistema de memoria 1200 que no son particularmente relevantes para ilustrar las características de la presente realización. Además, aunque la Figura 12 ilustra solo un módulo de memoria 1202 y solo dos dispositivos de memoria 1204 y 1206 en el módulo de memoria 1202, esto es simplemente para simplificar la ilustración y el sistema de memoria 1200 puede incluir más módulos de memoria y un módulo de memoria real puede tener más dispositivos de memoria. Por ejemplo, una configuración utiliza dieciséis dispositivos de memoria.
La figura 13 es un diagrama de bloques que ilustra un sistema de memoria 1250 en un segundo modo de operación, según una realización. El sistema de memoria 1250 es similar al sistema de memoria 1200 en la Figura 12, excepto que el módulo de memoria 1252 en este ejemplo tiene un dispositivo de memoria #1 1204, y que ambos puertos DQ DQ1 y DQ2 y ambos puertos CA CA1 y CA2 están conectados al mismo dispositivo de memoria 1204. Esta realización es similar a la realización de la Figura 2.
Cuando el sistema de memoria 1250 está en el segundo modo de operación, la lógica de controlador 1222 genera las señales CA (CA1 y CA2) con una segunda tasa de señalización (16 bits por un intervalo tRR), que es menor que la primera tasa de señalización (32 bits / tRR) en el ejemplo de la Figura 12. Nuevamente, el puerto CA1 o CA2 puede incluir múltiples enlaces de señales capaces de transportar múltiples bits de información en paralelo. En el ejemplo de la Figura 13, cada uno de los puertos CA1 y CA2 pueden incluir dos enlaces de señal capaces de transportar dos bits de información en paralelo, o cada uno de los puertos CA1 y CA2 tiene dos bits de ancho. Así, cuando la tasa de señalización de CA es 16 bits / tRR, cada uno de los puertos CA1 y CA2 puede transportar un máximo de 32 bits CA durante un intervalo tRR o durante 16 intervalos tBIT-CA, donde tBIT-CA representa un intervalo de bits en una señal CA
El sistema de memoria 1250 en el segundo modo de operación tiene un dispositivo de memoria 1204 conectado a ambos puertos DQ DQ1 y DQ2 y ambos enlaces CA CA1 y CA2. Dado que los puertos CA, CA1 y CA2 juntos, pueden transportar un máximo de 64 bits CA durante un intervalo t RR o durante 16 intervalos t BIT-CA, el dispositivo de memoria 1204 en el segundo modo de operación en la Figura 2 todavía recibe 64 bits de información Ca, lo mismo que la cantidad de información CA que recibe el dispositivo de memoria 1204 en el primer modo de operación de la Figura 12. El dispositivo de memoria 1204 tiene puertos CA dedicados de manera que ambos puertos CA1 y CA2 están conectados al dispositivo de memoria 1204 y no a otros dispositivos de memoria. En este sentido, además de los puertos DQ DQ1 y DQ2, los puertos CA CA1 y CA2 también cuentan con conexiones punto a punto, proporcionando una topología simple y simétrica a la topología de los puertos DQ. Como resultado, se puede acceder de forma independiente a cada dispositivo de memoria a través del puerto CA dedicado. Dado que las topologías de los enlaces CA son sustancialmente las mismas que las topologías de los enlaces DQ, los enlaces CA se pueden operar a una tasa de señalización que está en el mismo orden de magnitud que la tasa de señalización de los enlaces DQ. En un ejemplo, la tasa de CA puede ser la mitad de la tasa de DQ, mientras que otros ejemplos admiten tasas de CA y DQ equivalentes.
Como se explicó anteriormente, la lógica de controlador 1222 incluye lógica de multiplexación/guiado (no mostrada) para permitir la generación y / o transmisión de las señales CA de acuerdo con el ancho y la tasa de señalización de los enlaces CA. Los datos de CA resultantes se transmiten luego a través de los enlaces de CA CA1, CA2 al dispositivo de memoria 1204.
Las señales CA transmitidas a través de los puertos CA1 y CA2 son recibidas por el circuito de interfaz 1212 del dispositivo de memoria 1204 a través de los pines de entrada (CA) 1232, 1235. El circuito de interfaz 1212 puede incluir lógica de desmultiplexación / guiado (no mostrada) para convertir los datos CA recibidos en los puertos CA en datos CA paralelos, con la relación de conversión serie / paralelo ajustable dependiendo del ancho y la tasa de señalización del puerto CA. En el segundo modo de operación, el circuito de interfaz 1212 decodifica las señales CA recibidas a la segunda tasa de señalización y proporciona acceso (lectura o escritura) a las celdas 1210 de memoria asociadas. El dispositivo de memoria 1204 se comunica con puertos CA que tienen anchos de CA1 y CA2, que tienen cada uno 2 bits de ancho como ejemplo. Así, en el segundo modo de operación, cuando el sistema de memoria 1250 opera con una segunda tasa de señalización (16 bits / tRR) para cada enlace CA, la cantidad máxima de datos CA comunicados al dispositivo de memoria 1204 a través de los puertos CA CA1 y CA2 es 64 bits en cada intervalo tRR.
Como es evidente a partir de las Figuras 12 y 13, el sistema de memoria 1200, 1250 se puede operar en uno de al menos dos modos de operación. En el primer modo de operación, el módulo de memoria tiene un primer número de dispositivos de memoria (dos, en el ejemplo de la Figura 12), y el ancho de la señal CA para cada dispositivo de memoria en el primer modo de operación es de 2 bits de ancho, que es la mitad del ancho de la señal CA (4 bits de ancho) para cada dispositivo de memoria en el segundo modo de operación. En contraste, la tasa de señalización de CA para cada dispositivo de memoria en el primer modo de operación es el doble de la tasa de señalización de CA para cada dispositivo de memoria en el segundo modo de operación. Tener una tasa de señalización de CA más baja cuando aumenta el ancho de la señal DQ (o el número de dispositivos de memoria) es beneficioso, porque el ruido aumenta con el ancho de la señal DQ. Una tasa de señalización de CA más baja hace que el sistema de memoria sea menos susceptible al aumento de ruido en la señal DQ resultante del aumento del ancho de la señal DQ. La cantidad máxima de datos de la señal CA que se pueden transmitir a cada dispositivo de memoria sigue siendo la misma en cualquier modo de operación. Sin embargo, dependiendo del número de módulos de memoria y de la configuración y el número de dispositivos de memoria en un módulo de memoria, el ancho de la señal de CA es ajustable y la tasa de señalización de Ca también es ajustable. En cualquier modo de operación, la tasa de señalización CA puede ser del mismo orden de magnitud que la tasa de señalización DQ, ya que tanto las señales CA como las señales DQ emplean topología punto a punto. Además, la tasa de señalización CA se puede ajustar para que sea diferente de la tasa de señalización DQ.
La figura 14 es un diagrama de flujo que ilustra un método de operar un sistema de memoria en una pluralidad de modos de operación, de acuerdo con una realización de la presente divulgación. Para controlar el sistema de memoria, el controlador de memoria primero determina 1402 el modo de operación del sistema de memoria. El controlador de memoria también establece 1403 los registros de control en los dispositivos de memoria de acuerdo con el modo de operación determinado. Luego, el controlador de memoria genera 1404 las señales CA en base al modo de operación determinado. Por tanto, si el sistema de memoria está en el primer modo de operación con cada dispositivo de memoria recibiendo un primer ancho de señales CA, el controlador de memoria genera 1404 las señales CA a la primera tasa de señalización. Por otro lado, si el sistema de memoria está en el segundo modo de operación con cada dispositivo de memoria recibiendo un segundo ancho de señales CA que es más ancho que el primer ancho, el controlador de memoria genera 1404 las señales CA a la segunda tasa de señalización menor que la primera tasa de señalización. El controlador de memoria transmite 1406 las señales CA generadas al módulo de memoria a través de los puertos CA, y las señales CA se enrutan entonces 1408 en el módulo de memoria a los dispositivos de memoria correspondientes. Los dispositivos de memoria decodifican 1410 las señales CA basándose en el modo de operación del sistema de memoria, y se accede a las celdas de memoria en los dispositivos de memoria 1412 utilizando las señales CA decodificadas.
La figura 15 es un diagrama de bloques que ilustra un sistema de memoria 1500 en un primer modo de operación, según otra realización de la presente divulgación. El sistema de memoria 1500 de la Figura 15 es similar al sistema de memoria 1200 de la Figura 12, excepto que los dispositivos de memoria 1504, 1506 son componentes de memoria estándar que no están diseñados para funcionar en diferentes modos de funcionamiento por sí mismos. Por tanto, con el fin de proporcionar al sistema de memoria 1500 las características de múltiples modos de funcionamiento, el sistema de memoria 1500 de la Figura 15 incluye además un micro-búfer 1524, que se explicará con más detalle a continuación.
Como se explica con referencia a la Figura 12, el controlador de memoria 1220 en la Figura 15 también es capaz de operar en al menos dos modos de operación, para generar las señales CA con diferentes tasas de señalización CA. Al generar las señales CA, la lógica de controlador 1222 determina el modo de operación del sistema de memoria 1500 basándose en el indicador de modo de operación almacenado en el registro de modo de operación 1226. El ejemplo que se muestra en la Figura 15 es el caso en el que el sistema de memoria 1500 está en un primer modo de operación. Cuando el sistema de memoria 1500 está en el primer modo de operación, la lógica de controlador 1222 genera las señales CA (CA1 y CA2) con una primera tasa de señalización (32 bits / tRR en este ejemplo). El puerto CA1 o CA2 puede incluir múltiples enlaces de señales capaces de transportar múltiples bits de información en paralelo. En el ejemplo de la Figura 15, el puerto CA1 o CA2 puede incluir múltiples enlaces de señales capaces de transportar dos bits de información en paralelo, o el puerto CA1 o CA2 tiene dos bits de ancho. Así, cuando la tasa de señalización de CA es 32 bits / tRR, el puerto CA1 o CA2 puede transportar un máximo de 64 bits CA durante un intervalo tRR o durante 32 intervalos tBIT-CA, donde tBIT-CA representa un intervalo de bits en una señal CA. La lógica de controlador 1222 también sirve para transmitir señales CA a través de los puertos CA CA1 y CA2 y transmitir y recibir señales de datos de memoria DQ a través de los puertos DQ DQ1 y DQ2. Como se explicó anteriormente, la lógica de controlador 1222 incluye lógica de multiplexación/guiado (no mostrada) para permitir la generación y / o transmisión de las señales CA de acuerdo con el ancho y la tasa de señalización de los puertos CA.
El micro-búfer 1524 puede comprender un circuito integrado específico de la aplicación (ASIC, application specific integrated circuit) que incluye los pines de entrada 1532, 1533 y los pines de salida 1534, 1535. Por ejemplo, un primer conjunto de pines de entrada 1532 puede conectarse a CA1, DQ1, y un segundo conjunto de pines de entrada 1533
puede conectarse a CA2, DQ2. Además, por ejemplo, un primer conjunto de pines de salida 1534 puede conectarse a CA1#, DQ1# y un segundo conjunto de pines de salida 1535 puede conectarse a CA2#, DQ2#. El micro-búfer 1524 está acoplado para recibir las señales CA y las señales DQ a través de los puertos CA principales y DQ principales, CA1, CA2, DQ1 y DQ2, el conector 1218 y los pines de entrada 1532, 1533. El micro-buffer 1524 incluye circuitería que convierte las señales CA recibidas para que tengan un ancho CA y una tasa de señalización CA compatibles con el circuito de interfaz 1512, 1516 de los dispositivos de memoria estándar 1504, 1506. Más específicamente, el microbuffer 1524 es capaz de convertir las señales CA entre dos tipos diferentes de topologías de señalización en la interfaz primaria (al controlador 1220) y la interfaz secundaria (a los dispositivos de memoria 1504, 1506). Por ejemplo, la interfaz principal para el controlador de memoria 1220 puede estar compuesta por señales de alta velocidad punto a punto, y la interfaz secundaria para los dispositivos de memoria 1504, 1506 puede ser más lenta y más ancha que la interfaz principal, y puede utilizar no señales de punto a punto (por ejemplo, topología multipunto o fly-by). Las señales CA convertidas se emiten a través de los pines de salida 1534, 1535 y se enrutan a los dispositivos de memoria correspondientes 1504, 1506 a través de los puertos CA secundarios, CA1#, CA2#. Asimismo, el búfer 1524 también convierte las señales de datos recibidas en los puertos DQ DQ1, DQ2 para que tengan un ancho DQ y una tasa de señalización DQ compatibles con el circuito de interfaz 1512, 1516 de los dispositivos de memoria estándar 1504, 1506. Las señales DQ convertidas se enrutan a los dispositivos de memoria correspondientes 1504, 1506 a través de los puertos DQ secundarios, DQ1#, DQ2#.
Como se muestra en la Figura 15, el sistema de memoria 1500 en el primer modo de operación tiene un dispositivo de memoria 1504 conectado al puerto DQ secundario DQ1# y el puerto CA1 secundario CA1# y otro dispositivo de memoria 1506 conectado al puerto DQ secundario DQ2# y el puerto CA secundario CA2#. Por tanto, el sistema de memoria 1500 tiene una topología punto a punto para los enlaces DQ y CA. Sin embargo, el uso del micro-búfer 1524 permite que los enlaces CA de punto a punto ajustables se agreguen a los dispositivos de memoria convencionales 1504, 1506 sin cambiar la estructura de los componentes de memoria estándar 1504, 1506, agregando el micro-búfer 1524 y el controlador 1220 capaz de manejar múltiples modos de operación con ancho ajustable y tasa de señalización CA ajustable.
La figura 16 es un diagrama de bloques que ilustra un sistema de memoria en un segundo modo de operación, según otra realización de la presente divulgación. En el sistema de memoria 1550, los dispositivos de memoria 1504, 1506 son componentes de memoria estándar que no están diseñados para funcionar en diferentes modos de funcionamiento por sí mismos. Por tanto, con el fin de proporcionar al sistema de memoria 1550 las características de múltiples modos de funcionamiento, el sistema de memoria 1550 de la Figura 16 incluye además el micro-búfer 1524.
Como se explica con referencia a la Figura 13, el controlador de memoria 1220 en la Figura 16 también es capaz de operar en al menos dos modos de operación, para generar las señales CA con diferentes tasas de señalización CA. Al generar las señales CA, la lógica de controlador 1222 determina el modo de operación del sistema de memoria 1550 en base al indicador de modo de operación almacenado en el registro de modo de operación 1226. El ejemplo que se muestra en la Figura 16 es el caso en el que el sistema de memoria 1550 está en un segundo modo de operación. Cuando el sistema de memoria 1550 está en el segundo modo de operación, la lógica de controlador 1222 genera las señales CA (CA1 y CA2) con una segunda tasa de señalización (16 bits / tRR en este ejemplo), que es menor que la primera tasa de señalización (32 bits / tRR) en la Figura 15. El puerto CA1 o CA2 puede incluir múltiples enlaces de señales capaces de transportar múltiples bits de información en paralelo. En el ejemplo de la Figura 16, el puerto CA1 o CA2 puede incluir dos líneas de señal capaces de transportar dos bits de información en paralelo, o el puerto CA1 o CA2 tiene dos bits de ancho. Así, cuando la tasa de señalización de CA es 126 bits / tRR, cada uno de los puertos CA1 o CA2 puede transportar un máximo de 32 bits CA durante un intervalo tRR o durante 126 intervalos tBIT-CA, donde tBIT-CA representa un intervalo de bits en un Señal CA
La lógica de controlador 1222 también sirve para transmitir las señales CA a través de los puertos CA1 y CA2 y transmitir y recibir señales de datos de memoria DQ a través de los puertos DQ1 y DQ2.
El micro-búfer 1524 está acoplado para recibir las señales CA y las señales DQ a través de los puertos CA y DQ primarios, CA1, CA2, DQ1 y DQ2, y el conector 1218. El micro-búfer 1524 convierte entonces las señales CA recibidas para que tengan un ancho Ca y una tasa de señalización CA compatibles con el circuito de interfaz 1512 del dispositivo de memoria estándar 1504. Más específicamente, el micro-buffer 1524 es capaz de convertir las señales CA entre dos tipos diferentes de topologías de señalización en la interfaz primaria (al controlador 1220) y la interfaz secundaria (al dispositivo de memoria 1504). Por ejemplo, la interfaz principal del controlador de memoria 1220 puede estar compuesta por señales de alta velocidad de punto a punto, y la interfaz secundaria del dispositivo de memoria 1504 puede ser más lenta y más ancha, y puede usar señales que no son de punto a punto. (por ejemplo, topología multipunto o fly-by). Las señales de CA convertidas se enrutan al dispositivo de memoria correspondiente 1504 a través de los puertos CA secundarios, CA1#, CA2#. Asimismo, el búfer 1524 también convierte las señales de datos recibidas en los puertos DQ DQ1, DQ2 para que tengan un ancho DQ y una tasa de señalización DQ compatibles con el circuito de interfaz 1512 del dispositivo de memoria estándar 1504. Las señales DQ convertidas se enrutan al dispositivo de memoria correspondiente 1504 a través de los puertos DQ secundarios, DQ #, DQ2#.
Como se muestra en la Figura 16, el sistema de memoria 1550 en el segundo modo de operación tiene un dispositivo de memoria 1504 conectado a ambos puertos DQ secundarios, DQ# y DQ2# y ambos puertos CA secundarios, CA1# y CA2#. El sistema de memoria 1550 tiene una topología de punto a punto para los enlaces DQ y CA. Sin embargo, el uso del micro-buffer 1524 permite que los enlaces CA de punto a punto ajustables se agreguen a los dispositivos de memoria estándar sin cambiar la estructura del componente de memoria estándar 1504, agregando el micro-buffer 1524 y el controlador 1220 capaz de manejar múltiples modos de operación con ancho ajustable y tasa de señalización CA ajustable.
Con referencia a las Figuras 16 y 17, en una realización, el micro-búfer 1524 puede recibir las señales de CA en los puertos CA primarios CA1, CA2 en diferentes anchos y tasas de señalización dependiendo del modo de operación, pero deja el ancho y la tasa de señalización de las señales de CA en los puertos CA secundarios CA1#, CA2# iguales independientemente del modo de operación, pero más lentas y más anchas que la interfaz principal. Sin embargo, en otra realización, el micro-búfer 1524 también puede cambiar el ancho y la tasa de señalización de las señales CA en los puertos CA secundarios CA1#, CA2# dependiendo del modo de operación (por ejemplo, una tercera tasa de señalización en el primer modo, y una cuarta tasa de señalización menor que la tercera tasa de señalización en el segundo modo).
La figura 17 es un diagrama de flujo que ilustra un método de operar un sistema de memoria en una pluralidad de modos de operación, según otra realización de la presente divulgación. El método de la Figura 17 es sustancialmente similar al método ilustrado en la Figura 14, excepto que se agrega el paso 1701 y que se agregan los pasos 1702, 1704 y 1706 en lugar de los pasos 1408, 1410.
Con referencia a la Figura 17, para controlar el sistema de memoria, el controlador de memoria determina primero 1402 el modo de operación del sistema de memoria. Entonces, el controlador de memoria establece 1701 el registro de control en el micro-búfer del módulo de memoria para configurar el módulo de memoria con el modo de operación determinado, y genera 1404 las señales CA en base al modo de operación determinado. Por tanto, si el sistema de memoria está en el primer modo de operación con cada dispositivo de memoria recibiendo un primer ancho de señales CA, el controlador de memoria genera 1404 las señales CA a la primera tasa de señalización. Por otro lado, si el sistema de memoria está en el segundo modo de operación y cada dispositivo de memoria recibe un segundo ancho de señales CA que es más ancho que el primer ancho de señales CA, el controlador de memoria genera 1404 las señales CA a la segunda tasa de señalización, menor que la primera tasa de señalización. El controlador de memoria transmite 1406 las señales CA generadas al módulo de memoria a través de los enlaces CA.
El micro-buffer recibe las señales CA a través de los puertos CA y convierte 1702 las señales CA para que estén en un formato adecuado para las interfaces lógicas de los componentes de memoria acoplados a los puertos CA secundarios. A continuación, las señales de CA convertidas se enrutan 1704 en el módulo de memoria a los dispositivos de memoria correspondientes a través de los puertos de CA secundarios. Los dispositivos de memoria decodifican 1706 las señales CA, y se accede a las celdas de memoria en los dispositivos de memoria 1412 usando las señales CA decodificadas.
La figura 18 es un diagrama de bloques que ilustra un sistema de memoria con una topología de enlace CA de "punto a 2 punto", según otra realización más de la presente divulgación. El sistema de memoria 1800 de la Figura 18 es sustancialmente el mismo que el sistema de memoria 1200 de la Figura 12, excepto por la configuración de los puertos CA y DQ 1819 y que los dispositivos de memoria 1204 y 1206 residen en los lados frontal 1802 y posterior y 1804 del módulo de memoria, respectivamente, como dispositivos de memoria reflejados. Cada uno de los puertos CA CA1 y CA2 están conectados desde el controlador de memoria 1220 a los circuitos de interfaz 1212 y 1216 de ambos dispositivos de memoria 1204 y 1206, mientras que los puertos DQ DQ1 y DQ2 están conectados por separado con DQ1 conectado al dispositivo de memoria 1204, y DQ2 está conectado al dispositivo de memoria 1206. Por lo tanto, los puertos DQ DQ1 y DQ2 están conectados "punto a punto" a los dispositivos de memoria 1204 y 1206, mientras que los puertos CA CA1 y CA2 están conectados "punto a 2 punto" a los dispositivos de memoria 1204 y 1206. Dicha topología permite reducir a la mitad el número de enlaces CA en comparación con los enlaces CA punto a punto, al tiempo que permite que la tasa de señalización CA sea comparable a la tasa de señalización CA utilizada con enlaces CA punto a punto. Las señales DQ emplean topología punto a punto para mantener un alto margen de señalización y también para minimizar la granularidad del acceso a los datos. Los dispositivos de memoria 1210 y 1214 reciben la misma información de solicitud en los puertos CA1 y CA2 y, en respuesta a las solicitudes, transmiten y reciben datos diferentes en sus respectivos puertos de datos DQ1 y DQ2.
Sistemas de memoria ejemplares
La siguiente discusión describe los sistemas de memoria que emplean un dispositivo controlador de circuito integrado (IC) que admite solicitudes de micro subprocesos a través de interfaces de solicitud de alta velocidad para topologías de dispositivos de memoria única y múltiple. El controlador de memoria y el dispositivo de memoria asociado admiten
la solicitud punto a punto y las interfaces de datos, y la granularidad de acceso a la memoria es la misma independientemente del número de dispositivos de memoria.
La figura 19 representa un sistema de memoria 1900 que incluye un controlador de memoria IC 1905 conectado a un único dispositivo de memoria IC (por ejemplo, una matriz DRAM) 1910 de acuerdo con una realización. El controlador 1905 incluye cuatro bloques de controlador de memoria 1915, etiquetados como W, X, Y y Z, cada uno de los cuales ensambla y emite solicitudes de transacciones completas proporcionadas, por ejemplo, por un procesador integrado o externo (no mostrado). Los bloques de controlador de memoria 1915 comunican señales de datos DQ y señales de solicitud RQ a puertos de solicitud y datos externos 1920 y 1925 a través de interfaces de señal 1930 correspondientes, cada una de las cuales incluye una pluralidad de interfaces de datos y una única interfaz de solicitud en la realización representada. El término "externo" se refiere a la manifestación física de un puerto que es accesible para líneas de señal fuera del chip. En un ejemplo típico, un controlador de memoria IC se monta en una placa de circuito impreso (PCB) junto con uno o más IC de dispositivos de memoria. La PCB también admite trazas conductoras que se conectan a los puertos externos en el controlador y los circuitos integrados de dispositivos de memoria para facilitar la comunicación entre ellos.
La interconexión de memoria 1935 que se extiende entre el controlador 1905 y el dispositivo de memoria 1910 muestra que cada puerto DQ representado desde el controlador 1905, aunque se muestra como cuatro líneas DQ, se transmite a través de cuatro pares de enlaces para llegar a una interfaz de datos 1940 como ocho señales de datos diferenciales. (El número encerrado en un círculo asociado con una ruta de señal dada identifica el número de enlaces en la ruta). El dispositivo de memoria 1910 soporta así treinta y dos enlaces de datos diferenciales 1920 DQ [31 0] agrupados en cuatro puertos de datos de ocho enlaces. La lógica de guiado 1945 permite que los bloques de controlador de memoria 1915 dirijan sus respectivas solicitudes de transacciones completas a varias combinaciones de ocho puertos de solicitud diferencial, pares de los cuales se muestran como bloques 1925. La lógica de guiado 1945 se muestra separada de los bloques de controlador de memoria 1915 para facilitar la ilustración, y se puede implementar de esta manera, pero también se puede implementar en otro lugar, por ejemplo, dentro o entre los bloques 1915 e interfaces 1930. La conectividad para la lógica de guiado 1945, y la conectividad de la ruta de datos descrita más adelante, se define usando un registro de modo 1947 que almacena un valor indicativo del número de dispositivos de memoria conectados. La conectividad proporcionada por la lógica de guiado 1945 en este ejemplo se explica a continuación.
La memoria 1910 incluye cuatro bloques de celdas de memoria BLKA0, BLKA1, BLKBO y BLKB1, que pueden denominarse "quads" en esta realización porque representan cuatro matrices de memoria discretas y accesibles de forma independiente. (Los grupos de dos bloques también se pueden denominar bloques, pero se denominan "mitades de banco" para facilitar la ilustración). Cada bloque a su vez incluye cuatro bancos (por ejemplo, el bloque BLKA0 incluye los bancos a, b, c y d). La memoria 1910 incluye adicionalmente una interfaz de solicitud 1955 y alguna lógica de guiado de solicitud (RSL) 1960. La interfaz de solicitud 1955 recibe señales de solicitud de la lógica de guiado 1945 a través del canal 1935, y la lógica de guiado 1960 dirige tales solicitudes a los bloques apropiados BLKA0, BLKA1, BLKBO y BLKB1.
Como se explica a continuación, las configuraciones de la lógica de guiado 1945 en el controlador de memoria 1905 y la lógica de guiado 1960 en el dispositivo de memoria 1960 dependen del número de dispositivos de memoria acoplados al controlador de memoria 1905. El sistema 1900 es una realización de un solo dispositivo en la que el dispositivo de memoria 1910 puede responder a las solicitudes del controlador de memoria 1905 leyendo o escribiendo hasta treinta y dos paquetes de datos paralelos, cada uno de los cuales incluye 32 bits, para un total de 1.024 bits de datos. Cada bloque 1915 de controlador de memoria genera sus propios subprocesos de solicitud, que son reenviados por la lógica de guiado 1945 y 1960 a los bloques de memoria apropiados. Más específicamente, cada controlador de memoria 1915 comunica información de solicitudes a su respectiva PHY 1930. La información de solicitud se proporciona luego desde la PHY respectiva a uno o más de los bloques de memoria a través de la lógica de guiado 1945, el canal 1935, la interfaz de solicitud 1955 y la lógica de guiado 1960. Se proporciona un segundo conjunto de puertos de solicitud 1925, los dos más bajos en esta descripción, pero no se utilizan en este ejemplo de módulo único. La lógica de guiado 1960 enruta las solicitudes según corresponda para una configuración de memoria dada, como lo indica un registro de modo del lado de la memoria 1967 en este ejemplo. La información de modo para esto y el controlador se puede almacenar de manera diferente, usando por ejemplo, fusibles, anti-fusibles, puentes, etc.
En esta realización, los subprocesos de solicitud de los bloques de controlador [W] 1915 y [X] 1915 se transmiten a los bloques de memoria BLKA0 y BLKA1, respectivamente, a través de la lógica de guiado 1945, el canal 1935 y la lógica de guiado 1960. La parte del canal 1935 utilizada para estos hilos de solicitud incluye dos enlaces diferenciales. La lógica de guiado 1945 y 1960 se puede configurar para dedicar un enlace a cada bloque de controlador, o los enlaces se pueden compartir de manera diferente, como a través de multiplexación de tiempo. El contenido de los registros de modo 1947 y 1967 definen el enrutamiento y la conectividad adecuados para transportar los subprocesos a sus bloques de memoria de destino. La importancia de esta conectividad selectiva se hará evidente a la luz de la realización de la Figura 21.
La Figura 20 muestra un diagrama de tiempos 2000 en el que cuatro transacciones de lectura se dirigen a bancos ubicados en cada uno de los cuatro quads BLKA0, BLKA1, Bl KBO y BLKB1 en la memoria 1910 de la Figura 19. El dispositivo de memoria 1910 tiene 32 enlaces DQ habilitados (por ejemplo, DQ [31:0] / DQN [31:0] en un sistema de señalización diferencial, donde la "N" indica una señal complementaria), y dos pares de enlaces RQ habilitados (RQ [1:0] / RQN [1:0 ] y RQ [3:2] / RQN [3:2]). Los enlaces RQ se pueden habilitar dentro de la interfaz 1955 o la lógica de guiado 1960. La leyenda CFM (y CFMN) muestra la señal de reloj, o reloj-desde-maestro (y su complementario para un reloj diferencial). En la parte superior, los ciclos (cada uno con una longitud de toYCLE) están etiquetados de 0 a 21.
En el momento T0, una transacción de lectura se dirige al banco "a" del bloque BLKA0 a través de los enlaces RQ [1:0] / RQN [1:0], que sirven como dos puertos de solicitud, y luego los datos de lectura Q (a1, a2) se transmite en los enlaces DQ [7:0] / DQN [7:0] del canal 1935 que se extienden entre las interfaces de datos opuestas 1930 y 1940. Simultáneamente, debido a que el tiempo tRR-N requerido para presentar comandos de fila sucesivos a través de un enlace diferente es cero, una transacción se puede dirigir al banco "m" a través de los enlaces RQ [3:2] / RQN [3:2] y posteriormente trasmitir los datos de lectura Q (m1, m2) en los enlaces DQ [15:8] / DQN [15:8]. Después de un retardo tRR-S, el tiempo necesario para presentar comandos de fila sucesivos sobre el mismo enlace de solicitud, se dirige una transacción al banco "g" a través de los enlaces RQ [1:0] / RQN [1:0], y los datos de lectura Q (g1, g2) se transmiten en los enlaces DQ [23:16] / DQN [23:16]. Simultáneamente, una transacción se puede dirigir al banco "s" a través de los enlaces RQ [3:2] / RQN [3:2], y los datos leídos Q (sl, s2) se transmiten en el DQ [31:24] / Enlaces DQN [31:24].
Cada transacción de lectura incluye un paquete ROW con un comando ACT, una dirección de banco, una dirección de fila y una dirección de subfila. La dirección de la subfila no se utiliza en este caso x32. Cada transacción de lectura también incluye un paquete COL con un comando RDA, una dirección de banco, dos direcciones de columna y dos direcciones de subcolumna. Las direcciones de las subcolumnas no se utilizan en este caso x32. El paquete COL sigue al paquete ROW por el retardo de lectura de fila a columna tRCD-R. Los datos leídos del acceso a la primera columna siguen al paquete COL por el tiempo de acceso a la columna (tCAC). Los datos leídos del segundo acceso a la columna siguen un intervalo de ciclo de columna (to o ) más tarde. Cada acceso a la columna produce 256 bits de datos. Esto se serializa como 32 bits de datos en cada uno de los 8 enlaces DQ asociados con una interfaz de datos dada 1940. Por lo tanto, en este ejemplo, la granularidad de la columna es de 32 bytes (32B), la granularidad de la fila es de 64 bytes (64B) y cada uno de los dos paquetes Q (por ejemplo, Q(a1) y Q(a2) es de 32 bytes).
El controlador de memoria 1905 mantiene una cola de transacciones de lectura y escritura. Cada transacción realiza dos accesos de columna en 32B cada uno en este sistema de ejemplo. Operando de forma independiente, cada bloque de controlador de memoria 1915 y su interfaz asociada 1930 dirige las solicitudes a uno de los cuatro quads en la memoria 1910. Los ocho enlaces DQ de la interfaz de datos 1930 se conectan directamente a los enlaces DQ correspondientes en la memoria 1910. La información RQ de cada MC PHY se multiplexa con otra MC PHY en esta realización, aunque otras realizaciones difieren. Las transacciones de escritura intercaladas guiarían los datos de una manera similar a la que se muestra en la Figura 19, excepto que los datos de escritura se mueven del controlador 1905 a la memoria 1910.
La figura 21 representa un sistema de memoria de dispositivo dual 2100 en el que el controlador 1905 de la figura 19 está configurado para comunicarse con dos dispositivos de memoria 1905, para el doble de capacidad de memoria del sistema 1900, mientras se mantiene el mismo número de bancos y la misma granularidad de acceso. Para facilitar la ilustración, los bloques del controlador de memoria y las interfaces del controlador 1905 se combinan en las secciones 2105. Los puertos de solicitud no utilizados se acoplan a líneas punteadas, que representan trazas opcionales que se pueden proporcionar, por ejemplo, en una placa que soporta el controlador 1905 y los dispositivos de memoria 1910 para soportar diferentes números de módulos y diferentes tipos de conectividad de solicitud.
El controlador 1905 incluye el mismo número de puertos de datos que en la realización de módulo único de la Figura 19, y cada puerto de datos tiene el mismo ancho de ocho enlaces. Sin embargo, los enlaces de datos de cada bloque de controlador 2105 se dividen entre los dos módulos 1910 en esta realización. Además, aunque todavía se utilizan dos puertos RQ, uno por módulo, son diferentes de los dos utilizados en la Figura 19. Cada dispositivo de memoria 1910 está configurado para que cada bloque de memoria (por ejemplo, BLKA0) tiene la mitad del ancho de datos y el doble de ubicaciones de direcciones en comparación con la realización de un solo dispositivo de la Figura 19.
La Figura 22 muestra un diagrama de tiempos 2200 para el sistema de memoria 2100 de la Figura 21 en el que dos transacciones de lectura se dirigen a los bancos ubicados en cada una de las cuatro transacciones de lectura se dirigen a los bancos ubicados en pares de quads (por ejemplo, bloques BLKA0 y BLKB0) en cada uno de los dispositivos de memoria 1910 etiquetados respectivamente como DRAM-0 y DRAM-1. Cada dispositivo de memoria tiene 16 enlaces DQ habilitados (por ejemplo, DQ [3:0] / DQN [3:0], DQ [11:8] / DQN [11:8], DQ [19:16] / DQN [19:16] y DQ [27:24] / DQN [27:24]) y un par de enlaces RQ habilitado (RQ [1:0] / RQN [1:0]). Las diferencias en esta configuración de dispositivo dual en comparación con la configuración de dispositivo único de la Figura 19 incluyen:
dieciséis enlaces DQ (frente a treinta y dos);
un par de enlaces RQ (frente a dos)
dos dispositivos de memoria conectados al controlador 1905 a través del canal 1935 (frente a un dispositivo de memoria 1905);
operación paralela de bancos en quads diagonales, por ejemplo, bancos "a" y "m" de bloques de memoria BLKA0 y BLKB0 (frente a operación individual de bancos);
dirección de sub-fila SR [1] usada para seleccionar sub-filas dentro de los bancos de memoria; y
direcciones de subcolumnas SCx [3], SCy [3] utilizadas para seleccionar subcolumnas dentro de los bancos de memoria.
Se recibe una solicitud de lectura al banco "a" en los enlaces RQ [1:0] / RQN [1:0] y los datos leídos se transmiten en los enlaces DQ [3:0] / DQN [3:0]. Simultáneamente, la misma solicitud de lectura se dirige al banco "m"; en otras palabras, los bancos "a" y "m" están vinculados para operación en paralelo y reciben los mismos campos de dirección de los paquetes de solicitud. Los datos leídos de "m" se transmiten en los enlaces DQ [11:8] / DQN [11:8].
Después de un lapso (tRR-S), la solicitud al banco "g" se recibe en los enlaces RQ [1:0] / RQN [1:0] y los datos leídos se transmiten en los enlaces DQ [19:16] / DQN [19:16]. Simultáneamente, la misma solicitud se dirige al banco "s"; en otras palabras, los bancos "g" y "s" están vinculados para operación en paralelo y reciben los mismos campos de dirección de los paquetes de solicitud. Los datos leídos de "s" se transmiten en los enlaces DQ [27:24] / DQN [27:24].
Cada transacción de lectura incluye un paquete ROW con un comando ACT, una dirección de banco, una dirección de fila y una dirección de subfila. La dirección de sub-fila SR [1] se usa en esta realización x16. El término "x16" o "por dieciséis" se refiere al ancho efectivo combinado de las interfaces 1940 en cada dispositivo de memoria 1910. El ancho combinado de los dos dispositivos de memoria es por lo tanto de treinta y dos, al igual que en la realización de la Figura 19. Cada transacción de lectura también incluye un paquete COL con un comando RDA, una dirección de banco, dos direcciones de columna y dos direcciones de subcolumna. Las direcciones de subcolumna SCx [3], SCy [3] se utilizan en este caso x16. El paquete COL sigue al paquete ROW mediante el retardo de lectura de fila a columna tRCD-R. Los datos leídos del acceso a la primera columna siguen el paquete COL de Tcac. Los datos leídos del acceso a la segunda columna siguen tcc más tarde.
Cada acceso a la columna produce 128 bits de datos. Esto se serializa como 32 bits de datos en cada uno de los cuatro enlaces DQ. Dos accesos a columnas paralelas producen 32 bits de datos en cada uno de los ocho enlaces DQ. La granularidad de la columna es de 32 bytes (32B) y la granularidad de la fila es de 64 bytes (64B), lo mismo que el sistema de la Figura 19.
Con referencia de nuevo a la Figura 21, la lógica de guiado 1945 y 1960 están configuradas de manera que solo se utilizan los pares de enlaces RQ [1:0] / RQN [1:0] y RQ [5:4] / r Qn [5:4]. Cada sección de memoria independiente 2105 del controlador 1905 dirige las solicitudes a dos de los cuatro quads en cada uno de los dispositivos de memoria DRAM-0 y DRAM-1. Los puertos de salida DQ de cada sección 2105 se dividen entre dos interfaces de datos 1940. Por ejemplo, cuatro enlaces DQ de la sección [W] están acoplados al bloque BLKA0 a través de la interfaz de datos 1940 que soporta enlaces DQ DQ [7:0], mientras que los cuatro enlaces DQ restantes están acoplados al bloque BLKB0 a través de la interfaz de datos 1940 que soporta enlaces DQ DQ [15:8]. El enrutamiento diferente de las señales de datos en esta realización frente al de la Figura 19 usa lógica de guiado de datos dentro de las interfaces PHY que dirige selectivamente los datos de cada bloque controlador de memoria a un subconjunto de puertos de datos externos 1920 en un primer modo operativo o un segundo subconjunto de los puertos de datos externos en un segundo modo operativo. En particular, el primer bloque de controlador de memoria 1915 marcado como "W" está acoplado a un puerto de datos externo de ocho por ocho asociado con los datos DQ [7:0] en la realización de dispositivo único de la Figura 19 y a los puertos de datos externos asociados con los datos. DQ [11:8, 3:0] en la realización de dispositivo dual de la Figura 21.
La información RQ de cada sección 2105 se multiplexa con la información RQ de otra sección 2105 porque los pares de enlaces RQ se comparten entre dos puertos RQ en este ejemplo. En la Figura 21, esta función de multiplexación se representa como lógica de guiado 1945, pero la lógica de guiado se puede implementar de manera diferente. Además, se muestra que la lógica de guiado 1945 soporta la multiplexación de enlaces DQ entre los diferentes bancos y dispositivos. Este guiado de datos se puede implementar en otro lugar, por ejemplo, dentro de los circuitos de interfaz de datos introducidos anteriormente en relación con la Figura 19. Las transacciones de escritura intercaladas dirigirían los datos de una manera similar a la que se muestra en la Figura 21, excepto que los datos de escritura se mueven desde el controlador 1905 a los dispositivos de memoria 1910, en lugar de en sentido contrario como en el caso de lectura.
La Figura 23 muestra un sistema de memoria de cuatro dispositivos 2300 en el que el controlador 1905 de la Figura 19 está configurado para comunicarse con cuatro dispositivos de memoria 1905, para cuatro veces la capacidad de memoria del sistema 1900, mientras se mantiene el mismo número de bancos de memoria lógica y la misma granularidad de acceso para las secciones 2105 y controlador 1905 en general. El hecho de que cada enlace DQ y RQ se establezca a través de una conexión punto a punto independientemente del número de dispositivos de memoria facilita el rendimiento de la velocidad, y la constancia de la granularidad del acceso simplifica el diseño de las secciones 2105.
Cada dispositivo de memoria 1910 (DRAM-0, DRAM-1, DRAM-2 y DRAM-3) tiene ocho enlaces DQ habilitados, dos para cada una de las cuatro interfaces de datos 1940. En este ejemplo, esos enlaces son DQ [1:0] / DQN [1:0], DQ [9:8] / DQN [9:8], DQ [17:16] / DQN [17:16] y DQ [25:24] / DQN [25:24]. Cada dispositivo de memoria tiene dos enlaces de solicitud habilitados o un par de enlaces habilitado (por ejemplo, RQ [1:0] / RQN [1:0]).
Las diferencias en esta configuración de dispositivo dual en comparación con la configuración de dispositivo único de la Figura 19 incluyen:
ocho enlaces DQ (frente a treinta y dos);
un par de enlaces RQ (frente a dos);
cuatro dispositivos de memoria conectados al controlador 1905 a través del canal 1935 (frente a un dispositivo de memoria 1905);
operación paralela de bancos en cuatro quads, bloques de memoria BLKA0, BLKA1, BLKBO y BLKB1 (vs operación individual de bancos);
dirección de sub-fila SR [1] usada para seleccionar sub-filas dentro de los bancos de memoria;
direcciones de subcolumnas SCx [3:2] y SCy [3:2] utilizadas para seleccionar subcolumnas dentro de los bancos de memoria;
la mitad de los slots de paquetes de solicitud no se utilizan en el par de enlaces RQ;
las solicitudes dirigidas al bloque A (bloques BLKA0 y BLKA1) se reciben en los enlaces RQ [1:0] / RQN [1:0] y los datos leídos se transmiten en los enlaces DQ [1:0] / DQN [1:0 ];
las solicitudes se dirigen simultáneamente a bancos vinculados (por ejemplo, bancos "a", "g", "m" y "s" de los bloques respectivos BLKA0, BLKA1, BLKBO y BLKB1 de la Figura 19) están vinculados para operación en paralelo y reciben los mismos campos de dirección de los paquetes de solicitud; y
los datos leídos de los bancos "m", "g" y "s" se transmiten en los enlaces DQ [9:8] / DQN [9:8], DQ [17:16] / DQN [17:16], y DQ [25:24] / DQN [25:24], respectivamente.
Cada solicitud de lectura incluye un paquete ROW con un comando ACT, una dirección de banco, una dirección de fila y una dirección de subfila. La dirección de sub-fila SR [1:0] se utiliza en este caso x8. Cada transacción de lectura también incluye un paquete COL con un comando RDA, una dirección de banco, dos direcciones de columna y dos direcciones de subcolumna. Las direcciones de subcolumna SCx [3:2], SCy [3:2] se utilizan en este caso x8. El paquete COL sigue al paquete ROW por el retardo de lectura de fila a columna tRCD-R. Los datos leídos del primer acceso a columna siguen al paquete COL por toAC. Los datos leídos del acceso a la segunda columna siguen too más tarde.
Cada acceso a la columna produce 64 bits de datos, que se serializan como 32 bits de datos en cada uno de los dos enlaces DQ habilitados. Cuatro accesos a columnas paralelas producen 32 bits de datos en cada uno de los 8 enlaces DQ. La granularidad de la columna es de 32 bytes (32B) y la granularidad de la fila es de 64 bytes (64B), lo mismo que el sistema de la Figura 19. Aunque la lógica de guiado en el controlador 1905 se omite en la figura, la conectividad para los enlaces de datos y solicitud es como se muestra. En esta realización de cuatro dispositivos de memoria, cada par de enlaces RQ se conecta a los cuatro quads en cada dispositivo de memoria 1910. Las transacciones de escritura intercaladas dirigirían los datos de manera similar pero en la dirección opuesta al caso de lectura.
En la Figura 23, cada dispositivo de memoria 1910 está acoplado al controlador de memoria 1905 mediante dos pares diferenciales. En ese caso, los dos enlaces se pueden compartir entre el controlador y los bloques de memoria de varias formas (por ejemplo, mediante multiplexación por tiempo o por cable). En otras realizaciones, un sistema de memoria completamente poblado con dispositivos de memoria incluye un enlace de solicitud para cada dispositivo de
memoria. De interés, tanto la solicitud como los anchos de datos en cada dispositivo cambian en proporción inversa al número de dispositivos de memoria. La proporción de enlaces de solicitud a enlaces de datos permanece constante, lo que simplifica el diseño y la conectividad de los bloques de controlador de memoria.
Los métodos de guiado de solicitudes utilizados en los sistemas anteriores son beneficiosos por varias razones. Entre ellas, los diversos enlaces se pueden intercalar en la parte física (PHY) de los datos y las interfaces de solicitud para facilitar el enrutamiento punto a punto de los enlaces de solicitud y de datos en PCB (placa de circuito impreso), POP (paquete en -paquete) y entornos de empaquetado SIP (system-in-package). Además, el mismo dispositivo controlador de memoria puede conectarse a diferentes números de dispositivos de memoria para soportar diferentes capacidades de memoria simplemente estableciendo un registro de configuración. La opción de configuración puede ser fija, como en un sistema en el que uno o dos dispositivos de memoria están acoplados permanentemente al componente controlador. Alternativamente, la opción de configuración puede ser ajustable, como en el caso de un sistema que usa uno o dos módulos de memoria (también llamados DPP o punto a punto dinámico, dynamic point-to-point) insertados en dos zócalos de memoria que se conectan al componente del controlador.
La figura 24 representa un dispositivo de memoria integrado 1910 de acuerdo con una realización, que incluye todos los puertos externos y los principales bloques de circuitos internos. El enlace de reloj CFM / CFMN es recibido y utilizado por la lógica de generación de reloj (no se muestra) para producir los eventos de temporización internos necesarios para la interfaz y el núcleo. Los enlaces RQ [1:0] / RQN [1:0] reciben la información de solicitud para los quads BLKA0 / 1, y los enlaces RQ [3:2] / RQN [3:2] reciben la información de solicitud para los otros dos quads BLKB0 / 1. Cada quad contiene cuatro bancos independientes.
Se reciben dos palabras de solicitud de 32 bits en cada intervalo toyoLE. Estas dos palabras se decodifican y suministran información de control y dirección al núcleo. El dispositivo de memoria 1910, en esta realización, soporta modos estándar y de subprocesos. El modo de subprocesos admite operaciones principales simultáneas, que pueden denominarse subprocesos, microprocesos o mThreading. Por el contrario, en el modo estándar, diferentes tipos de operaciones (por ejemplo, activación de fila, lectura de columna, escritura de columna y precarga de fila) se superponen entre diferentes bancos en un quad, pero los quads están bloqueados juntos en operación paralela (por ejemplo, mismo banco / fila / direcciones de columna).
La operación de subprocesos es mejor que la operación en el modo estándar al permitir que diferentes quads funcionen de forma independiente (diferentes direcciones de banco / fila / columna). En esta realización, los paquetes de solicitud en los enlaces RQ [1:0] / RQN [1:0] y los enlaces RQ [3:2] / RQN [3:2] se dirigen a quads diagonalmente opuestos; es decir, los dos paquetes de solicitud pueden dirigirse a uno de los bancos 0A, 2A, 4A y 6A y uno de los bancos 0B, 2B, 4B y 6B; o los dos paquetes de solicitud pueden dirigirse a uno de los bancos 1A, 3a, 5A y 7A y uno de los bancos 1B, 3B, 5B y 7B. Esto incluye las direcciones de banco (BA) y fila (R) para un comando de activación (ACT), las direcciones de banco (BA) y de fila (REFr) para un comando de activación de actualización (REFA), la dirección de banco (BP) para una precarga (PRE), la dirección del banco (BR) para un comando de precarga de actualización (REFP) y las direcciones del banco (BC) y de dos columnas (Cx, Cy, SCx y SCy) para un comando de lectura (RD) o escritura (WR o WM). Además, se utiliza una máscara (M) para un comando de escritura enmascarado (WRM). Nótese que todas estas señales de dirección y control reciben un sufijo "A" o "B" para indicar si están actuando sobre los dos quads de la izquierda o de la derecha, respectivamente. Algunas de estas señales de dirección y control se pueden retardar opcionalmente en incrementos de tCYCLE bajo el control de los campos de retardo en la solicitud.
Se decodifica una dirección de banco para un comando ACT. La fila indicada del banco seleccionado se detecta y se coloca en la matriz de amplificadores de detección asociada para el banco. La detección de una fila también se conoce como "abrir una página" para el banco. Se decodifica otra dirección de banco para un comando PRE. El banco indicado y la matriz de amplificadores de detección asociados se cargan previamente a un estado en el que se puede aplicar un comando ACT posterior. Precargar un banco también se denomina "cerrar la página" del banco. Después de que un banco recibe un comando ACT y antes de recibir un comando PRE, puede recibir comandos de lectura (RD) y escritura (WR) de columna. Estos comandos permiten acceder a los datos de la matriz de amplificadores de detección asociados del banco (ahora mostrada).
Para un comando WR, se decodifica la dirección del banco. La columna indicada de la matriz de amplificadores de detección asociada del banco seleccionado se escribe con los datos recibidos de uno de los subconjuntos de 8 enlaces DQ de los pines DQ [31:0]. Se reciben ocho palabras de 32 bits en un intervalo tCC. La dirección del banco se decodifica para un comando RD. Se lee la columna indicada de la matriz de amplificadores de detección asociados del banco seleccionado. Los datos se transmiten a uno de los subconjuntos de 8 enlaces DQ de los pines DQ [31:0]. Se accede a ocho palabras de 32 bits para la transacción de lectura y se transmiten en un intervalo tCC.
Los pines RST, SCK y CMD se conectan al bloque de registro de control. Estos pines proporcionan los datos, la dirección y el control necesarios para escribir los registros de control. Se accede a los datos leídos para estos registros a través de los pines SDO / SDI. Estos pines también se utilizan para inicializar el dispositivo. El pin VREF proporciona
un voltaje de referencia utilizado por los receptores RQ. Los registros de control se utilizan para la transición entre los modos de potencia y también para calibrar los circuitos de transmisión y recepción de alta velocidad del dispositivo. Los registros de control también suministran direcciones de banco (REFB) y de fila (REFr) para operaciones de refresco. El bloque etiquetado "Modo de energía, Calib., Refresco, Lógica de inicio" administra las transiciones del modo de energía, las operaciones de calibración, las operaciones de refresco y la inicialización.
Los enlaces de solicitud de acuerdo con algunas realizaciones operan a velocidades de o acercándose a la de los enlaces de datos de alta velocidad. Los enlaces RQ que funcionan a velocidades de enlace altas pueden requerir una calibración cuidadosa. La descripción siguiente y las figuras de apoyo detallan los métodos y circuitos de calibración que se pueden usar para garantizar que los enlaces de solicitud de alta velocidad proporcionen tasas de error de bit adecuadamente bajas. La calibración involucra dos componentes que pueden ocurrir por separado o juntos: calibración fina (ajuste de fase) y calibración aproximada (alineación de bits). Esto se puede realizar en presencia o ausencia de ruido.
La figura 25 representa un sistema de memoria 2500 de acuerdo con otra realización, y resalta los circuitos de prueba y calibración para sintonizar la solicitud y los enlaces de datos. El sistema de memoria 2500 incluye un controlador de memoria 2505 y un dispositivo de memoria 2510 que pueden ser como el controlador 1905 y el dispositivo de memoria 1910 de la Figura 19, respectivamente. En el controlador 2505, los bloques etiquetados como DQ y RQ pueden ser partes de las interfaces de datos y solicitudes descritas anteriormente. La Figura 25 se centra en partes del sistema 2500 que se utilizan para calibrar los parámetros de temporización para las interfaces de datos y solicitud, que se representan en cada uno de los controladores 2505 y el dispositivo de memoria 2510 como bloques de datos y solicitudes opuestos DQ [31:0] y RQ [3:0]. En el controlador 2505, los recursos de calibración y configuración incluyen un generador de patrones 2515 (etiquetado como PattB 2515) y una interfaz de comando en serie convencional 2530. En una realización, el generador de patrones 2515 es un registro de desplazamiento de retroalimentación lineal (LFSR). En el dispositivo 2510, los recursos de configuración incluyen una interfaz de comandos 2535, un decodificador de comandos 2540, un generador de patrones 2545 (etiquetado como PattA 2545) y un generador de direcciones ficticias 2555. Las interfaces de comando 2530 y 2535 son interfaces robustas de baja velocidad que se utilizan para comunicar señales de calibración e información para ajustar los enlaces de mayor velocidad entre el controlador 2505 y el dispositivo de memoria 2510. Se pueden incluir generadores de patrones adicionales en el controlador y en el dispositivo de memoria o en ambos.
En este ejemplo, la calibración fina y aproximada se describirán como si ocurrieran secuencialmente. Para comenzar la calibración fina, el controlador 2505 emite un comando a través de la interfaz en serie 2530 que hace que el dispositivo de memoria 2510 entre en un modo de calibración. En respuesta al comando del modo de calibración, la memoria 2510 envía el controlador 2505 patrones de prueba deterministas desde el generador de patrones 2545 a través de los enlaces de datos y los enlaces de solicitud. El controlador 2505 luego sintoniza las fases de recepción de la solicitud del controlador y los bloques de interfaz de datos con referencia a un reloj de recepción (no mostrado). El generador de direcciones ficticias 2555 se puede utilizar para simular ruido durante esta calibración fina. En este ejemplo, ahora puede ocurrir una calibración aproximada del receptor del controlador; de nuevo, el generador de direcciones ficticias 2555 se puede utilizar para simular ruido.
A continuación, el controlador 2505 emite comandos al dispositivo de memoria 2510 que hacen que los datos y las interfaces de solicitud entren en un modo de "bucle de retorno" en el que las señales transmitidas al dispositivo de memoria 2510 se devuelven inmediatamente al controlador 2505. (Los circuitos para retornar datos y señales de solicitud se detallan a continuación en relación con las Figuras 26 y 27). En una realización, cada enlace de solicitud y de datos de número par se devuelve en bucle a través de un enlace de número impar adyacente. Por ejemplo, el enlace de datos para DQ [0] puede volverse en bucle en el lado de la memoria del sistema 2500 a través del enlace de datos para d Q [1]. El controlador 2505 luego transmite patrones de prueba deterministas desde el generador de patrones 2515 al dispositivo de memoria 2510 a través de los enlaces pares, y el dispositivo de memoria 2510 devuelve los patrones de prueba a través de los enlaces impares.
El controlador 2505, al recibir el patrón de prueba devuelto, los compara con los patrones transmitidos originalmente para completar la calibración fina y aproximada. Debido a que los enlaces de retorno ya están calibrados, los errores se pueden atribuir a problemas en los enlaces de avance (hacia el dispositivo de memoria 2510). El controlador 2505 luego calibra la sincronización de los enlaces directos para minimizar los errores.
En esta realización no cubierta por la invención reivindicada, los enlaces de solicitud (RQ [3:0]) emplean el mismo circuito de interfaz bidireccional que los enlaces de datos y, por lo tanto, pueden sintonizarse de la misma manera que los enlaces de datos. En una realización alternativa, de acuerdo con la invención reivindicada, las rutas de retorno desde los enlaces de solicitud a los enlaces de datos se incluyen en el dispositivo de memoria para las realizaciones en las que los enlaces de solicitud son unidireccionales. Los enlaces de solicitud que operan a velocidades más bajas pueden no requerir el mismo grado de ajuste que los enlaces de datos.
Es posible que el entorno de ruido durante la calibración no represente con precisión el funcionamiento normal del sistema de memoria. Por lo tanto, el esquema de calibración de bucle de retorno que se describe aquí puede ser inadecuado para obtener un rendimiento de velocidad máxima. Por lo tanto, el sistema de memoria 2500 admite un entorno de ruido simulado. En respuesta a un comando del controlador 2505, el generador de direcciones ficticias 2555 proporciona direcciones ficticias a los bloques de memoria BLKA0, BLKA1, BLKBO y BLKB1, que simula un entorno de ruido realista. De manera más general, el procedimiento de prueba se puede repetir periódicamente en un entorno de ruido real o simulado para adaptarse, por ejemplo, a fluctuaciones de temperatura o suministro.
Ahora se describirán circuitos de ejemplo específicos para soportar los procedimientos de prueba descritos anteriormente. Las siguientes Figuras 26 y 27 detallan aspectos de una realización del sistema de memoria 2500 de la Figura 25 que soporta la calibración de bucle de retorno. Más específicamente, la Figura 26 muestra la calibración de lectura usando la banda lateral y las transmisiones desde la memoria al controlador que se describió anteriormente y la Figura 27 muestra la calibración de escritura que ocurre después de que se completa la calibración de lectura.
La Figura 26 detalla partes del sistema 2500 de la Figura 25, dos interfaces de datos del lado del controlador 2605 y 2610 y las dos correspondientes interfaces de datos del lado del dispositivo de memoria 2615 y 2620. Cada interfaz de datos del lado del controlador incluye un multiplexor de prueba 2625, dos circuitos de nivelación 2630 y 2632, un serializador 2635, un deserializador 2640 y un circuito de coincidencia 2645. Con referencia a la interfaz de datos 2605, el multiplexor 2625 selecciona dieciséis bits de datos de escritura Wdata o un patrón de dieciséis bits de, por ejemplo, el generador de patrones 2515 de la Figura 25. La salida del multiplexor 2625 está acoplada a uno de los circuitos de nivelación 2630, 2632. Cada circuito de nivelación 2630 y 2632 se usa para alinear de manera aproximada los patrones de prueba recibidos y esperados por bit utilizando técnicas conocidas. El serializador 2625, por ejemplo, un multiplexor, luego convierte los datos de dieciséis bits resultantes en datos en serie para su transmisión a la interfaz 2616.
En el ejemplo ilustrado, se distribuye un reloj de 400 MHz tanto al controlador como al dispositivo de memoria para sincronizar sus respectivos núcleos, y las señales de datos y de solicitud se transmiten en serie a 6,4 Gb/s utilizando relojes de transmisión y recepción debidamente sincronizados. Se conocen métodos y circuitos para generar y distribuir señales de reloj adecuadas y para barrer fases de reloj para capturar datos correctamente. Por lo tanto, se omiten las discusiones detalladas sobre la generación, distribución y alineación del reloj por motivos de brevedad.
En el lado de la recepción, un deserializador de uno a dieciséis convierte los datos de recepción en serie en datos de dieciséis bits, que se transmiten al circuito de nivelación 2632. Cuando el dispositivo de memoria está operativo, los datos recibidos Rdata se transmiten finalmente a la lógica central (no mostrada). En el modo de calibración, el circuito de coincidencia 2645 examina los datos de prueba recibidos Rdata con los patrones esperados y emite señales de control de fase al serializador 2640, al circuito de nivelación 2632 y al deserializador 2635 de la interfaz vecina 2610. La interfaz 2610 tiene componentes similares y funciona de manera similar.
La interfaz de escritura 2615 en el lado de la memoria incluye dos serializadores de cuatro a uno 2650 y 2655, lógica de selección de bucle de retorno (un multiplexor) 2660, dos deserailizadores de uno a cuatro 2662 y 2665, y un multiplexor de habilitación de patrones 2670. En el modo de calibración, en respuesta a una señal de patrón de habilitación EnPattAB, el multiplexor 2670 dirige los patrones desde el generador de patrones 2545 al deserializador 2640, que reduce los dieciséis bits del bus de patrones PatternSetA,B a cuatro bits. El multiplexor 2660 transmite los patrones de prueba resultantes al serializador 2650, que produce un flujo de datos en serie a la interfaz 2605 del controlador de memoria. De dos señales de habilitación EnOddLoop y EnEvenLoop, la última es el búfer de entrada y salida de la interfaz 2615 (DQ [0] se considera un enlace "par" y DQ [1] impar). La interfaz 2620 tiene componentes similares y funciona de manera similar, aunque los búferes de entrada y salida están controlados por la señal de habilitación EnEvenLoop. Se omite un tratamiento detallado de la interfaz 2620 por brevedad.
Con referencia al par de interfaces superiores, los patrones de prueba atraviesan ambas interfaces 2615 y 2605, llegando finalmente al circuito de coincidencia 2645. El circuito de coincidencia 2645, que puede implementarse en hardware o usando una combinación de hardware y software, manipula la señal de ajuste de fase ADJrck y, en consecuencia, la fase de entrada del deserializador 2640, hasta que los patrones deterministas de la interfaz 2615 sean los esperados. En un ejemplo típico, el circuito de coincidencia 2645 podría escanear la fase del reloj de recepción con respecto a un reloj de referencia externo para encontrar el desfase de fase centrado dentro de un rango de valores de fase que produce datos muestreados correctamente. Otras características de la señal distintas de la fase también se pueden ajustar (por ejemplo, valores de terminación, fuerza del variador y parámetros de ecualización). En realizaciones que soportan enlaces RQ de alta velocidad, las características de fase y señal ajustadas en los enlaces DQ también pueden requerir ajuste en los enlaces RQ. El circuito de coincidencia 2645 almacena entonces el valor de fase resultante. La interfaz 2610 también se calibra en fase al mismo tiempo.
La Figura 27 muestra el proceso de configuración para un enlace de escritura "par" en el modo de bucle de retorno. El multiplexor 2660 en la interfaz 2620 en el lado del dispositivo de memoria selecciona la salida del deserializador
2662 de la interfaz 2615. Por lo tanto, los patrones transportados en la dirección de escritura desde la interfaz 2605 se retroalimentan a la interfaz 2610 y, en última instancia, al circuito de coincidencia de patrones 2645. Debido a que los canales de lectura se sintonizaron como se indicó anteriormente en relación con la Figura 26, los errores observados por el circuito de adaptación 2645 son atribuibles al canal de escritura. Este proceso a veces se denomina calibración de "lanzamiento de escritura", en la que la fase de transmisión de los datos de escritura se calibra con respecto a un reloj de referencia. Los circuitos de coincidencia de patrones barren la fase del reloj de transmisión a través de una señal de ajuste de reloj de transmisión ADJtck de la misma manera descrita anteriormente para el reloj de recepción, llegando finalmente a un ajuste de fase que proporciona una tasa de error deseada. A continuación, el proceso se puede repetir para los enlaces de escritura impares utilizando los enlaces de lectura pares para el canal de bucle de retorno.
En este ejemplo, todos los enlaces pares se sintonizan juntos, seguidos de todos los enlaces impares. Los enlaces de solicitud son bidireccionales y se pueden sintonizar de la misma manera. Otras realizaciones pueden tener enlaces RQ unidireccionales, en cuyo caso las interfaces de solicitud en el dispositivo de memoria se pueden modificar para usar, por ejemplo, un enlace DQ vecino para pruebas de bucle de retorno. Una vez que todos los enlaces de lectura y escritura están ajustados, el sistema puede repetir la calibración en un entorno de ruido artificial utilizando operaciones de núcleo ficticias para un ajuste fino.
En los sistemas de memoria de la Figura 19-23, los controladores y dispositivos de memoria incluían una lógica de guiado integrada para administrar el flujo de solicitudes para diferentes números de dispositivos. En otras realizaciones, la lógica de guiado para el controlador de memoria puede proporcionarse externamente al controlador IC, y la lógica de guiado de cada IC de memoria puede proporcionarse también externamente. Las siguientes Figuras 28-30 representan un sistema de memoria que admite de uno a cuatro dispositivos de memoria que utilizan lógica de guiado externa a un controlador de memoria y uno o más dispositivos de memoria para mantener datos punto a punto y enlaces de solicitud y granularidad de acceso constante independientemente del número de dispositivos de memoria.
La figura 28 representa un sistema de memoria de acuerdo con una realización en la que la lógica de guiado de solicitud se proporciona externamente a un IC controlador de memoria y un IC de dispositivo de memoria. En el sistema representado, una placa de circuito impreso (PCB) 2800 soporta un controlador de memoria 2805, un módulo de memoria 2810 y tres módulos de continuidad 2815. El controlador de memoria 2805 incluye cuatro bloques de controlador de memoria independientes 2817, todos los cuales están acoplados al módulo de memoria único instalado 2810 a través de cuatro canales de solicitud física CAw, CAx, CAy y CAz. Aunque los canales CAw, CAx y CAy están acoplados al módulo 2810 a través de uno o más módulos de continuidad 2815 y conectores asociados 2820, cada conexión es punto a punto. Cada canal de solicitud CAw, CAx, CAy y CAz incluye dieciséis enlaces CA.
El módulo de memoria 2810 incluye ocho matrices de memoria MEM y búferes asociados BUFF. Cada par de matriz / búfer admite cuatro pares de enlaces, por lo que el módulo 2810 admite un total de 64 enlaces en este ejemplo. Cada búfer BUFF recibe cuatro flujos de solicitud independientes. Cada flujo de solicitud, a su vez, se transmite a través de dos enlaces y tiene una longitud de 32 bits en cada intervalo tRR. Los búferes proporcionan una lógica de guiado y un ajuste de ancho de datos similar a lo que se describe previamente como integrado con matrices de memoria en otras realizaciones. Por tanto, las matrices de memoria convencionales se pueden utilizar en sistemas que aprovechan algunos aspectos de las realizaciones anteriores. El controlador de memoria 2805 omite la lógica de guiado descrita anteriormente en relación con las Figuras 19-24. Sin embargo, la presencia o ausencia de módulos de continuidad cumple una función similar. En otras realizaciones, los módulos de continuidad se pueden reemplazar por otros mecanismos de conmutación, por ejemplo, conectores que cortocircuitan cuando no hay un módulo de memoria, o interruptores activos dentro de los conectores 2820 o la placa 2800. La leyenda en la parte inferior derecha indica que el módulo 2810 instalado comunica cuatro paquetes de solicitud de 32 bytes a través
La Figura 29 muestra el sistema de memoria introducido en la Figura 28 en una configuración o modo de módulo dual. Los enlaces discontinuos indican partes de los canales de solicitud que están desconectados por la eliminación del módulo de continuidad 2815 situado más a la izquierda en la Figura 28. Los canales de solicitud que se extendían a ese módulo ahora proporcionan conexiones punto a punto a un segundo módulo de memoria 2810. Cada búfer BUFF recibe dos flujos de solicitud independientes, cada uno de los cuales se transmite a través de dos enlaces y tiene una longitud de 32 bits en cada intervalo tRR. El ancho del canal de solicitud de cada uno de los dos módulos se reduce a la mitad en relación con la realización de módulo único, por lo que el ancho del canal de solicitud es el mismo en ambas configuraciones desde la perspectiva del controlador de memoria 2805.
La Figura 30 representa el sistema de memoria descrito en relación con las Figuras 28 y 29, pero esta vez en una configuración de cuatro módulos completamente poblada. Las líneas discontinuas nuevamente indican partes de los canales de solicitud que están desconectados por la eliminación de los módulos de continuidad 2815. Cada uno de los cuatro canales de solicitud se extiende a un módulo de memoria 2810, lo que permite que cada bloque controlador de memoria 2817 comunique solicitudes completas a uno respectivo de los módulos 2810. El ancho del canal de solicitud de cada uno de los dos módulos se reduce a la mitad de nuevo con respecto a la realización de módulo dual,
por lo que el ancho del canal de solicitud es nuevamente el mismo desde la perspectiva del controlador de memoria 2805. Cada búfer BUFF recibe un flujo de solicitud independiente, que a su vez, se transmite a través de dos enlaces y tiene una longitud de 32 bits en cada intervalo tRR. Los búferes BUFF permiten el guiado de datos y solicitudes, pero pueden omitirse si los dispositivos de memoria admiten esta funcionalidad.
El controlador de memoria 2805 ajusta los campos de dirección de banco, fila y columna en solicitudes dirigidas al módulo o módulos de memoria 2810 dependiendo del número de módulos. Aunque no se muestra, el controlador de memoria 2805 puede incluir un registro u otro mecanismo para indicar el número de dispositivos de memoria conectados. Los módulos de memoria 2810 también pueden incluir un registro u otro mecanismo de configuración. Por ejemplo, el controlador de memoria 2805 puede cargar un registro en cada módulo instalado para configurar los puertos de datos y solicitudes según sea apropiado para un número y tipo de módulo instalado. El sistema de memoria de las Figuras 28-30 soporta así un número diferente de dispositivos de memoria mientras mantiene la misma granularidad de solicitud de datos desde la perspectiva del controlador de memoria.
Una salida de un proceso para diseñar un circuito integrado, o una parte de un circuito integrado, que comprende uno o más de los circuitos descritos en este documento, puede ser un medio legible por computadora como, por ejemplo, una cinta magnética o un disco óptico o magnético. El medio legible por computadora puede codificarse con estructuras de datos u otra información que describa circuitos que pueden instanciarse físicamente como un circuito integrado o parte de un circuito integrado. Aunque se pueden usar varios formatos para dicha codificación, estas estructuras de datos se escriben comúnmente en Caltech Intermediate Format (CIF), Calma GDS II Stream Format (GDSII) o Electronic Design Interchange Format (EDIF). Los expertos en la técnica de diseño de circuitos integrados pueden desarrollar tales estructuras de datos a partir de diagramas esquemáticos del tipo detallado anteriormente y las descripciones correspondientes y codificar las estructuras de datos en un medio legible por ordenador. Los expertos en la técnica de fabricación de circuitos integrados pueden usar dichos datos codificados para fabricar circuitos integrados que comprenden uno o más de los circuitos descritos en este documento.
Además, el término "sistema" puede referirse a un sistema de comunicación completo, que incluye un transmisor y un receptor, o puede referirse a una parte de un sistema de comunicación, como un transmisor, un receptor o un IC u otro componente que incluye un transmisor y / o receptor.
Realizaciones diversas
En una realización, un controlador de memoria comprende: un generador de solicitudes de memoria para generar una o más solicitudes de memoria; y lógica de controlador para generar, en base a las solicitudes de memoria, una pluralidad de señales de control y dirección (CA) para direccionar o controlar uno o más dispositivos de memoria que residen en un módulo de memoria, en uno de al menos dos modos, que incluyen: un primer modo en el que la lógica de controlador genera primeras señales CA para un primer dispositivo de memoria y transmite las primeras señales CA al primer dispositivo de memoria a través de un primer enlace a una primera tasa de señalización, y en el que la lógica de controlador genera segundas señales CA para un segundo dispositivo de memoria y transmite las segundas señales CA al segundo dispositivo de memoria a través de un segundo enlace a la primera tasa de señalización; y un segundo modo en el que la lógica de controlador genera terceras señales CA para un tercer dispositivo de memoria y transmite las terceras señales CA para el tercer dispositivo de memoria tanto en el primer enlace como en el segundo enlace a una segunda tasa de señalización. En un ejemplo del controlador de memoria, la segunda tasa de señalización es menor que la primera tasa de señalización. En un caso particular, la segunda tasa de señalización es la mitad de la primera tasa de señalización.
En una realización, un dispositivo de memoria comprende: una pluralidad de celdas de memoria que almacenan datos; un circuito de interfaz acoplado a las celdas de memoria y una pluralidad de pines de entrada y salida que incluyen un primer y segundo conjunto de pines de control y dirección (CA), siendo el circuito de interfaz configurable para recibir señales de CA en uno de al menos dos modos, que incluyen: un primer modo en el que las señales CA se reciben a una primera tasa de señalización a través del primer y segundo conjunto de pines CA; y un segundo modo en el que las señales CA se reciben a una segunda tasa de señalización a través del primer conjunto de pines CA y no a través del segundo conjunto de pines CA. En un ejemplo del dispositivo de memoria, la segunda tasa de señalización es más alta que la primera tasa de señalización. En otro ejemplo, la segunda tasa de señalización es el doble de la primera tasa de señalización.
En una realización, un sistema de memoria comprende: uno o más dispositivos de memoria que residen en uno o más módulos de memoria; un controlador de memoria que genera una pluralidad de señales de control y dirección (CA) para direccionar o controlar al uno o más dispositivos de memoria en uno de al menos dos modos, que incluyen: un primer modo en el que el controlador de memoria genera primeras señales CA para un primer dispositivo de memoria y transmite las primeras señales CA al primer dispositivo de memoria a través de un primer enlace a una primera tasa de señalización, y en el que el controlador de memoria genera segundas señales CA para un segundo dispositivo de memoria y transmite las segundas señales CA al segundo dispositivo de memoria a través de un segundo enlace a
una segunda tasa de señalización; y un segundo modo en el que el controlador de memoria genera terceras señales CA para un tercer dispositivo de memoria y transmite las terceras señales CA al tercer dispositivo de memoria a través del primer enlace y el segundo enlace a una segunda tasa de señalización. En otros ejemplos del sistema de memoria, (1) el tercer dispositivo de memoria es el primer dispositivo de memoria, (2) la segunda tasa de señalización es menor que la primera tasa de señalización, (3) la segunda tasa de señalización es la mitad de la primera tasa de señalización, (4) en el primer modo, la primera tasa de señalización es la mitad de la tasa de señalización de datos de las señales de datos que se leen desde el primer y segundo dispositivos de memoria, y / o (5) tanto el primer enlace como el segundo enlace están conectados a cada uno de los dispositivos de memoria primero y segundo, y los dispositivos de memoria primero y segundo residen en lados opuestos de una placa de circuito en la que se forma el módulo de memoria.
En una realización, un búfer a acoplar entre un controlador de memoria y uno o más dispositivos de memoria comprende: un primer y segundo conjuntos de pines de entrada para recibir señales de comando y dirección (CA) desde el controlador de memoria; y un primer y segundo conjuntos de pines de salida para enviar señales CA convertidas a uno o más dispositivos de memoria; siendo el búfer configurable para operar en uno de al menos dos modos, en el que: en un primer modo, el búfer recibe primeras señales CA para un primer dispositivo de memoria a una primera tasa de señalización a través del primer conjunto de pines de entrada y segundas señales CA para un segundo dispositivo de memoria a la primera tasa de señalización a través del segundo conjunto de pines de entrada, convierte la primera y segunda señal CA en primera y segunda señales CA convertidas que son compatibles con un dispositivo de memoria respectivo del primer dispositivo de memoria y el segundo dispositivo de memoria, y transmite las primeras señales CA convertidas al primer dispositivo de memoria a través del primer conjunto de pines de salida y las segundas señales CA convertidas al segundo dispositivo de memoria a través del segundo conjunto de pines de salida; y en el segundo modo, el búfer recibe terceras señales CA para un tercer dispositivo de memoria a una segunda tasa de señalización a través del primer y segundo conjunto de pines de entrada, convierte las terceras señales CA en terceras señales CA convertidas que son compatibles con el tercer dispositivo de memoria y transmite las terceras señales CA convertidas al tercer dispositivo de memoria a través de los primeros y segundos pines de salida. En varios ejemplos del búfer, la segunda tasa de señalización es menor que la primera tasa de señalización (por ejemplo, la segunda tasa de señalización es la mitad de la primera tasa de señalización); los primeros y segundos pines de salida tienen un mismo ancho de señal más ancho que los primeros y segundos pines de entrada, respectivamente, y los primeros y segundos pines de salida operan a una tercera tasa de señalización más baja que la primera tasa de señalización y la segunda tasa de señalización tanto en el primera modo y el segundo modo; y en el primer modo, los primeros y segundos pines de salida operan a una tercera tasa de señalización, y en el segundo modo, los primeros y segundos pines de salida operan a una cuarta tasa de señalización menor que la tercera tasa de señalización.
En una realización, un método para controlar uno o más dispositivos de memoria que residen en uno o más módulos de memoria comprende: generar una pluralidad de señales de control y dirección (CA) para direccionar o controlar uno o más dispositivos de memoria, en uno de al menos dos modos, que incluyen: un primer modo en el que primeras señales CA se transmiten a un primer dispositivo de memoria a través de un primer enlace a una primera tasa de señalización y las segundas señales CA se transmiten a un segundo dispositivo de memoria a través de un segundo enlace a la primera tasa de señalización; y un segundo modo en el que terceras señales CA para un tercer dispositivo de memoria se transmiten tanto a través del primer enlace como del segundo enlace a una segunda tasa de señalización; y acceder a uno o más dispositivos de memoria con las señales CA. En ejemplos del método, la segunda tasa de señalización es menor que la primera tasa de señalización (por ejemplo, la segunda tasa de señalización es la mitad de la primera tasa de señalización); y en el primer modo, la primera tasa de señalización es la mitad de la tasa de señalización de datos de las señales de datos que se leen desde el primer y segundo dispositivo de memoria.
En una realización, un método para operar un dispositivo de memoria comprende: recibir señales de control y dirección (CA) en uno de al menos dos modos, incluyendo: un primer modo en el que las señales CA se reciben a una primera tasa de señalización a través de un primer y un segundo conjunto de pines CA del dispositivo de memoria; y un segundo modo en el que las señales Ca se reciben a una segunda tasa de señalización a través del primer conjunto de pines CA y no a través del segundo conjunto de pines CA; y acceder a las celdas de memoria en el dispositivo de memoria usando las señales CA. En ejemplos de este método, la segunda tasa de señalización es mayor que la primera tasa de señalización (por ejemplo, la segunda tasa de señalización es el doble de la primera tasa de señalización); y en el segundo modo, la segunda tasa de señalización es la mitad de la tasa de señalización de datos de las señales de datos que se leen desde el dispositivo de memoria.
Claims (10)
1. Un aparato que comprende un dispositivo (1552) de memoria dinámica de acceso aleatorio, DRAM, donde el dispositivo de DRAM tiene al menos dos puertos de solicitud, y un circuito integrado que tiene un controlador de memoria (1220) para controlar el funcionamiento del dispositivo de DRAM, comprendiendo el circuito integrado: una interfaz de solicitud unidireccional que tiene al menos dos puertos de comando / dirección (CA1, CA2), cada puerto de comando / dirección para enviar, en un modo operativo, comandos de escritura y direcciones correspondientes a un puerto de solicitud respectivo de los al menos dos puertos de solicitud del dispositivo de DRAM, y cada puerto de comando / dirección para enviar, en un modo de bucle de retorno, al menos un patrón de prueba al puerto de solicitud respectivo de los al menos dos puertos de solicitud del dispositivo de DRAM; y
una pluralidad de interfaces de datos bidireccionales (DQ1, DQ2) para enviar, en el modo operativo, datos correspondientes a cada comando de escritura de los comandos de escritura al dispositivo de DRAM y para recibir de vuelta, en el modo de bucle de retorno, desde el dispositivo de DRAM, el al menos un patrón de prueba, donde el dispositivo de DRAM comprende:
circuito de bucle de retorno para proporcionar, en el modo de bucle de retorno, rutas de bucle de retorno desde el puerto de solicitud respectivo de los al menos dos puertos de solicitud a una interfaz de datos bidireccional respectiva de la pluralidad de interfaces de datos bidireccionales (DQ1, DQ2) del circuito integrado.
2. El circuito integrado de la reivindicación 1, que comprende además:
primer y segundo bloques de controlador de memoria independientes (1915), cada bloque para emitir solicitudes de transacciones completas; y
lógica de guiado de solicitud (1925) para dirigir selectivamente las solicitudes de transacción desde el primer bloque controlador de memoria a uno de los al menos dos puertos de comando / dirección (CA1, CA2).
3. El circuito integrado de la reivindicación 1, en el que:
cada puerto de comando / dirección puede enviar comandos de escritura y direcciones correspondientes, así como comandos de lectura y direcciones correspondientes a los al menos dos puertos de solicitud del dispositivo de DRAM (1552) de acuerdo con al menos dos modos de operación con ancho ajustable y tasa de señalización ajustable; y
la pluralidad de interfaces de datos bidireccionales son para recibir datos correspondientes a los comandos de lectura del dispositivo de DRAM.
4. El circuito integrado de la reivindicación 1, en el que:
cada patrón de prueba es un primer patrón de prueba; y
el circuito integrado, para cada interfaz individual de la pluralidad de interfaces de datos bidireccionales (DQ1, DQ2), tiene que
recibir un segundo patrón de prueba del dispositivo de DRAM (1552) y comparar el segundo patrón de prueba con el segundo patrón de prueba esperado, y
sintonizar una fase de recepción utilizada de un reloj para muestrear datos para la interfaz individual de la pluralidad de interfaces de datos bidireccionales, hasta que se reciba el segundo patrón de prueba como se esperaba, identificar un valor para la fase de recepción para el cual el segundo patrón de prueba recibido es como esperado, donde cada una de las interfaces individuales de la pluralidad de interfaces de datos bidireccionales tiene que utilizar el valor identificado correspondiente para intercambiar datos con el dispositivo de DRAM (1552).
5. El circuito integrado de la reivindicación 4, en el que:
cada una de las interfaces individuales de la pluralidad de interfaces de datos bidireccionales (DQ1, DQ2) comprende además circuitería para alinear aproximadamente los segundos patrones de prueba recibidos y esperados.
6. El circuito integrado de la reivindicación 1, en el que:
cada puerto de comando / dirección (CA1, CA2) comprende dos transmisores, cada uno para enviar los bits respectivos de un comando de escritura y dirección correspondiente al puerto de solicitud respectivo de los puertos de solicitud del dispositivo de DRAM (1552); y
la pluralidad de interfaces bidireccionales (DQ1, DQ2) comprende dieciséis interfaces bidireccionales por puerto de comando / dirección, para enviar datos de escritura en asociación con cada comando de escritura y dirección correspondiente enviada al dispositivo de DRAM a través de uno de los al menos dos puertos comandos / dirección.
7. Un método para operar un aparato que comprende un dispositivo (1552) de memoria dinámica de acceso aleatorio, DRAM, teniendo el dispositivo de DRAM al menos dos puertos de solicitud y un circuito de bucle de retorno, donde el aparato comprende además un circuito integrado que comprende
un controlador de memoria (1220) para controlar el funcionamiento del dispositivo de DRAM, donde el método comprende:
hacer que cada uno de al menos dos puertos de comando / dirección (CA1, CA2) de una interfaz de solicitud unidireccional envíe, en un modo operativo, comandos de escritura y direcciones correspondientes a un puerto de solicitud respectivo de los al menos dos puertos de solicitud del dispositivo de DRAM;
hacer que cada uno de los al menos dos puertos de comando / dirección envíe, en un modo de bucle de retorno, al menos un patrón de prueba al puerto de solicitud respectivo de los al menos dos puertos de solicitud del dispositivo de DRAM;
usar una pluralidad de interfaces de datos bidireccionales (DQ1, DQ2) para enviar, en el modo operativo, datos correspondientes a los comandos de escritura al dispositivo de DRAM;
recibir de vuelta, en el modo de bucle de retorno, desde el dispositivo de DRAM a través de la pluralidad de interfaces de datos bidireccionales el al menos un patrón de prueba; y
hacer que el circuito de bucle de retorno proporcione, en el modo de bucle de retorno, rutas de bucle de retorno desde el puerto de solicitud respectivo de los al menos dos puertos de solicitud a una interfaz de datos bidireccional respectiva de la pluralidad de interfaces de datos bidireccionales (DQ1, DQ2) del circuito integrado.
8. El método de la reivindicación 7, en el que el método comprende además hacer que
cada uno de los al menos dos puertos de comando / dirección envíe comandos de escritura y direcciones correspondientes, así como comandos de lectura y direcciones correspondientes a los al menos dos puertos de solicitud del dispositivo de DRAM (1552) de acuerdo con al menos dos modos de operación con ancho ajustable y tasa de señalización ajustable; y
la pluralidad de interfaces de datos bidireccionales (DQ1, DQ2) reciba datos correspondientes a los comandos de lectura del dispositivo de DRAM.
9. El método de la reivindicación 7, en el que:
cada patrón de prueba es un primer patrón de prueba; y
donde el método comprende además, para cada interfaz individual de la pluralidad de interfaces de datos bidireccionales (DQ1, DQ2), hacer que cada uno de las interfaces individuales reciba un segundo patrón de prueba del dispositivo de DRAM (1552) y compare el segundo patrón de prueba con el segundo patrón de prueba esperado, y
sintonizar una fase de recepción utilizada de un reloj para muestrear datos para la interfaz individual de la pluralidad de interfaces de datos bidireccionales, hasta que el segundo patrón de prueba recibido se reciba como se esperaba, identificar un valor para la fase de recepción para el cual el segundo patrón de prueba es el esperado, donde cada una de las interfaces individuales de la pluralidad de interfaces de datos bidireccionales debe utilizar el valor identificado correspondiente para intercambiar datos con el dispositivo de DRAM (1552).
10. El método de la reivindicación 9, en el que el método comprende además, para cada uno de las interfaces individuales de la pluralidad de interfaces de datos bidireccionales (DQ1, DQ2), alinear aproximadamente los segundos patrones de prueba recibidos y esperados.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US91143507P | 2007-04-12 | 2007-04-12 | |
| US98882607P | 2007-11-19 | 2007-11-19 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2883587T3 true ES2883587T3 (es) | 2021-12-09 |
Family
ID=39744868
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES17157845T Active ES2883587T3 (es) | 2007-04-12 | 2008-04-11 | Sistema de memoria con interconexión de solicitud punto a punto |
Country Status (5)
| Country | Link |
|---|---|
| US (11) | US20100211748A1 (es) |
| EP (5) | EP3200189B1 (es) |
| CN (2) | CN106407136B (es) |
| ES (1) | ES2883587T3 (es) |
| WO (1) | WO2008127698A2 (es) |
Families Citing this family (128)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7280428B2 (en) | 2004-09-30 | 2007-10-09 | Rambus Inc. | Multi-column addressing mode memory system including an integrated circuit memory device |
| US8595459B2 (en) | 2004-11-29 | 2013-11-26 | Rambus Inc. | Micro-threaded memory |
| US20070260841A1 (en) | 2006-05-02 | 2007-11-08 | Hampel Craig E | Memory module with reduced access granularity |
| KR101533120B1 (ko) * | 2006-12-14 | 2015-07-01 | 램버스 인코포레이티드 | 멀티 다이 메모리 디바이스 |
| EP3200189B1 (en) | 2007-04-12 | 2021-06-02 | Rambus Inc. | Memory system with point-to-point request interconnect |
| WO2009137157A1 (en) * | 2008-03-31 | 2009-11-12 | Rambus Inc. | Independent threading of memory devices disposed on memory modules |
| US8683149B2 (en) | 2008-07-23 | 2014-03-25 | Rambus Inc. | Reconfigurable memory controller |
| US8949520B2 (en) | 2009-01-22 | 2015-02-03 | Rambus Inc. | Maintenance operations in a DRAM |
| US20110307672A1 (en) * | 2009-03-06 | 2011-12-15 | Rambus Inc. | Memory interface with interleaved control information |
| US20120030420A1 (en) | 2009-04-22 | 2012-02-02 | Rambus Inc. | Protocol for refresh between a memory controller and a memory device |
| JP2010282511A (ja) * | 2009-06-05 | 2010-12-16 | Elpida Memory Inc | メモリモジュール及びこれを備えるメモリシステム |
| US8675076B2 (en) * | 2009-07-21 | 2014-03-18 | Qualcomm Incorporated | System for embedded video test pattern generation |
| EP2513802B1 (en) | 2009-12-14 | 2015-03-18 | Rambus Inc. | Expandable asymmetric-channel memory system |
| JP2011227834A (ja) * | 2010-04-22 | 2011-11-10 | Sony Corp | 信号制御装置及び信号制御方法 |
| US20110320699A1 (en) * | 2010-06-24 | 2011-12-29 | International Business Machines Corporation | System Refresh in Cache Memory |
| US8533403B1 (en) | 2010-09-30 | 2013-09-10 | Apple Inc. | Arbitration unit for memory system |
| US20130194881A1 (en) * | 2010-11-09 | 2013-08-01 | Steven C. Woo | Area-efficient multi-modal signaling interface |
| US8504531B2 (en) * | 2010-11-27 | 2013-08-06 | Netapp, Inc. | System and method for application aware de-duplication of data blocks on a virtualized storage array |
| US8942056B2 (en) * | 2011-02-23 | 2015-01-27 | Rambus Inc. | Protocol for memory power-mode control |
| US8593885B2 (en) * | 2011-03-18 | 2013-11-26 | Rambus Inc. | Staggered mode transitions in a segmented interface |
| US9337872B2 (en) * | 2011-04-30 | 2016-05-10 | Rambus Inc. | Configurable, error-tolerant memory control |
| US9244867B1 (en) * | 2011-06-01 | 2016-01-26 | Altera Corporation | Memory controller interface with adjustable port widths |
| JP2013031151A (ja) * | 2011-06-20 | 2013-02-07 | Renesas Electronics Corp | 暗号通信システムおよび暗号通信方法 |
| US9330735B2 (en) * | 2011-07-27 | 2016-05-03 | Rambus Inc. | Memory with deferred fractional row activation |
| US9268719B2 (en) | 2011-08-05 | 2016-02-23 | Rambus Inc. | Memory signal buffers and modules supporting variable access granularity |
| US9025409B2 (en) | 2011-08-05 | 2015-05-05 | Rambus Inc. | Memory buffers and modules supporting dynamic point-to-point connections |
| JP5864957B2 (ja) * | 2011-08-31 | 2016-02-17 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
| WO2013068862A1 (en) | 2011-11-11 | 2013-05-16 | International Business Machines Corporation | Memory module and memory controller for controlling a memory module |
| US8990490B2 (en) | 2011-11-29 | 2015-03-24 | Rambus Inc. | Memory controller with reconfigurable hardware |
| WO2013177310A2 (en) | 2012-05-22 | 2013-11-28 | Xockets IP, LLC | Offloading of computation for rack level servers and corresponding methods and systems |
| US20130318268A1 (en) | 2012-05-22 | 2013-11-28 | Xockets IP, LLC | Offloading of computation for rack level servers and corresponding methods and systems |
| US8762607B2 (en) * | 2012-06-29 | 2014-06-24 | Intel Corporation | Mechanism for facilitating dynamic multi-mode memory packages in memory systems |
| US9275699B2 (en) | 2012-08-17 | 2016-03-01 | Rambus Inc. | Memory with alternative command interfaces |
| US20140085995A1 (en) * | 2012-09-25 | 2014-03-27 | Zvika Greenfield | Method, apparatus and system for determining a count of accesses to a row of memory |
| US8966348B2 (en) * | 2012-11-30 | 2015-02-24 | Hewlett-Packard Development Company, L.P. | Memory error identification based on corrupted symbol patterns |
| KR102036693B1 (ko) * | 2012-12-13 | 2019-10-28 | 에스케이하이닉스 주식회사 | 반도체 메모리 시스템 및 그의 동작 방법 |
| US9286964B2 (en) * | 2012-12-21 | 2016-03-15 | Intel Corporation | Method, apparatus and system for responding to a row hammer event |
| US10847251B2 (en) | 2013-01-17 | 2020-11-24 | Illumina, Inc. | Genomic infrastructure for on-site or cloud-based DNA and RNA processing and analysis |
| US9378161B1 (en) | 2013-01-17 | 2016-06-28 | Xockets, Inc. | Full bandwidth packet handling with server systems including offload processors |
| US10691775B2 (en) | 2013-01-17 | 2020-06-23 | Edico Genome, Corp. | Bioinformatics systems, apparatuses, and methods executed on an integrated circuit processing platform |
| US9792405B2 (en) | 2013-01-17 | 2017-10-17 | Edico Genome, Corp. | Bioinformatics systems, apparatuses, and methods executed on an integrated circuit processing platform |
| US20140201416A1 (en) | 2013-01-17 | 2014-07-17 | Xockets IP, LLC | Offload processor modules for connection to system memory, and corresponding methods and systems |
| US9679104B2 (en) | 2013-01-17 | 2017-06-13 | Edico Genome, Corp. | Bioinformatics systems, apparatuses, and methods executed on an integrated circuit processing platform |
| US10068054B2 (en) | 2013-01-17 | 2018-09-04 | Edico Genome, Corp. | Bioinformatics systems, apparatuses, and methods executed on an integrated circuit processing platform |
| US9489323B2 (en) | 2013-02-20 | 2016-11-08 | Rambus Inc. | Folded memory modules |
| US9037948B2 (en) | 2013-03-13 | 2015-05-19 | International Business Machines Corporation | Error correction for memory systems |
| WO2014193574A1 (en) | 2013-05-13 | 2014-12-04 | Rambus Inc. | Buffer circuit with data bit inversion |
| US20150016046A1 (en) * | 2013-07-10 | 2015-01-15 | Samsung Electronics Co., Ltd. | Ina cabled memory appliance |
| WO2015057865A1 (en) | 2013-10-15 | 2015-04-23 | Rambus Inc. | Load reduced memory module |
| US9361973B2 (en) | 2013-10-28 | 2016-06-07 | Cypress Semiconductor Corporation | Multi-channel, multi-bank memory with wide data input/output |
| CN105612580B (zh) | 2013-11-11 | 2019-06-21 | 拉姆伯斯公司 | 使用标准控制器部件的大容量存储系统 |
| WO2015095612A1 (en) | 2013-12-18 | 2015-06-25 | Rambus Inc. | High capacity memory system with improved command-address and chip-select signaling mode |
| US9606944B2 (en) | 2014-03-20 | 2017-03-28 | International Business Machines Corporation | System and method for computer memory with linked paths |
| US9558143B2 (en) | 2014-05-09 | 2017-01-31 | Micron Technology, Inc. | Interconnect systems and methods using hybrid memory cube links to send packetized data over different endpoints of a data handling device |
| US20170337144A1 (en) | 2014-12-01 | 2017-11-23 | Rambus Inc. | High Performance, High Capacity Memory Systems and Modules |
| KR102178538B1 (ko) | 2014-12-16 | 2020-11-13 | 삼성전자주식회사 | 메모리 장치, 메모리 장치의 커맨드 신호/어드레스 신호의 로그 생성 방법 및 메모리 장치의 에러 분석 방법 |
| US9857328B2 (en) | 2014-12-18 | 2018-01-02 | Agilome, Inc. | Chemically-sensitive field effect transistors, systems and methods for manufacturing and using the same |
| CA2971589C (en) | 2014-12-18 | 2021-09-28 | Edico Genome Corporation | Chemically-sensitive field effect transistor |
| US10020300B2 (en) | 2014-12-18 | 2018-07-10 | Agilome, Inc. | Graphene FET devices, systems, and methods of using the same for sequencing nucleic acids |
| US9859394B2 (en) | 2014-12-18 | 2018-01-02 | Agilome, Inc. | Graphene FET devices, systems, and methods of using the same for sequencing nucleic acids |
| US9618474B2 (en) | 2014-12-18 | 2017-04-11 | Edico Genome, Inc. | Graphene FET devices, systems, and methods of using the same for sequencing nucleic acids |
| US10006910B2 (en) | 2014-12-18 | 2018-06-26 | Agilome, Inc. | Chemically-sensitive field effect transistors, systems, and methods for manufacturing and using the same |
| US10592120B2 (en) | 2014-12-19 | 2020-03-17 | Rambus Inc. | Memory system with threaded transaction support |
| US10223309B2 (en) | 2014-12-19 | 2019-03-05 | Rambus Inc. | Dynamic random access memory (DRAM) component for high-performance, high-capacity registered memory modules |
| US9324397B1 (en) * | 2015-01-16 | 2016-04-26 | Qualcomm Incorporated | Common die for supporting different external memory types with minimal packaging complexity |
| KR102336455B1 (ko) * | 2015-01-22 | 2021-12-08 | 삼성전자주식회사 | 집적 회로 및 집적 회로를 포함하는 스토리지 장치 |
| US10360972B2 (en) | 2015-03-10 | 2019-07-23 | Rambus Inc. | Memories and memory components with interconnected and redundant data interfaces |
| CN113806243B (zh) * | 2015-03-11 | 2025-05-30 | 拉姆伯斯公司 | 高性能非易失性存储器模块 |
| WO2016154154A2 (en) | 2015-03-23 | 2016-09-29 | Edico Genome Corporation | Method and system for genomic visualization |
| CA2982173A1 (en) * | 2015-04-09 | 2016-10-13 | Edico Genome, Corp. | Bioinformatics systems, apparatuses, and methods executed on an integrated circuit processing platform |
| TWI569284B (zh) * | 2015-05-27 | 2017-02-01 | 慧榮科技股份有限公司 | 記憶體控制器與記憶體模組 |
| KR102359370B1 (ko) * | 2015-10-05 | 2022-02-09 | 에스케이하이닉스 주식회사 | 반도체장치 |
| US9997233B1 (en) | 2015-10-08 | 2018-06-12 | Rambus Inc. | Memory module with dynamic stripe width |
| US10146711B2 (en) * | 2016-01-11 | 2018-12-04 | Intel Corporation | Techniques to access or operate a dual in-line memory module via multiple data channels |
| US20170270245A1 (en) | 2016-01-11 | 2017-09-21 | Edico Genome, Corp. | Bioinformatics systems, apparatuses, and methods for performing secondary and/or tertiary processing |
| US10068183B1 (en) | 2017-02-23 | 2018-09-04 | Edico Genome, Corp. | Bioinformatics systems, apparatuses, and methods executed on a quantum processing platform |
| US10152262B2 (en) | 2016-05-03 | 2018-12-11 | Micron Technology, Inc. | Memory access techniques in memory devices with multiple partitions |
| WO2017201081A1 (en) | 2016-05-16 | 2017-11-23 | Agilome, Inc. | Graphene fet devices, systems, and methods of using the same for sequencing nucleic acids |
| KR102721736B1 (ko) * | 2016-07-26 | 2024-10-25 | 에스케이하이닉스 주식회사 | 데이터 맵핑을 수행하는 반도체 장치 및 시스템 |
| US9825730B1 (en) * | 2016-09-26 | 2017-11-21 | Dell Products, Lp | System and method for optimizing link performance with lanes operating at different speeds |
| US10229883B2 (en) | 2016-10-01 | 2019-03-12 | Intel Corporation | Systems, methods, and apparatuses for implementing late fusing of processor features using a non-volatile memory |
| US10528286B2 (en) * | 2016-11-11 | 2020-01-07 | Sandisk Technologies Llc | Interface for non-volatile memory |
| US10528267B2 (en) | 2016-11-11 | 2020-01-07 | Sandisk Technologies Llc | Command queue for storage operations |
| US10528255B2 (en) | 2016-11-11 | 2020-01-07 | Sandisk Technologies Llc | Interface for non-volatile memory |
| US10503435B2 (en) * | 2016-12-01 | 2019-12-10 | Qualcomm Incorporated | Providing extended dynamic random access memory (DRAM) burst lengths in processor-based systems |
| KR101853210B1 (ko) * | 2016-12-22 | 2018-04-27 | 한양대학교 산학협력단 | 하이브리드 메모리 큐브를 위한 링크 선택 방법 및 장치 |
| US10825545B2 (en) * | 2017-04-05 | 2020-11-03 | Micron Technology, Inc. | Memory device loopback systems and methods |
| KR102298923B1 (ko) * | 2017-05-24 | 2021-09-08 | 에스케이하이닉스 주식회사 | 반도체 장치, 테스트 방법 및 이를 포함하는 시스템 |
| US11243600B2 (en) | 2017-07-03 | 2022-02-08 | Industry-University Cooperation Foundation Hanyang University | HMC control device and method of CPU side and HMC side for low power mode, and power management method of HMC control device |
| KR101931880B1 (ko) | 2017-07-03 | 2018-12-21 | 한양대학교 산학협력단 | 저전력 모드를 위한 cpu측과 hmc측의 hmc컨트롤 장치 및 방법과 이에 관한 기록매체 |
| CN109308928B (zh) * | 2017-07-28 | 2020-10-27 | 华邦电子股份有限公司 | 存储器装置的行解码器 |
| KR102438991B1 (ko) | 2017-11-28 | 2022-09-02 | 삼성전자주식회사 | 메모리 장치 및 그것의 동작 방법 |
| US10649025B2 (en) * | 2018-03-23 | 2020-05-12 | Cavium, Llc. | External DQS bi-directional loopback with use of feed forward equalization path |
| US10991445B2 (en) | 2018-09-06 | 2021-04-27 | Micron Technology, Inc. | Memory sub-system including an in-package sequencer to perform error correction and memory testing operations |
| KR102617016B1 (ko) | 2018-09-17 | 2023-12-27 | 삼성전자주식회사 | 자주 접근되는 어드레스를 검출하는 레지스터 클럭 드라이버를 포함하는 메모리 모듈 |
| US10732892B2 (en) * | 2018-09-24 | 2020-08-04 | Micron Technology, Inc. | Data transfer in port switch memory |
| WO2020117700A1 (en) | 2018-12-03 | 2020-06-11 | Rambus Inc. | Dram interface mode with improved channel integrity and efficiency at high signaling rates |
| CN109887531B (zh) * | 2018-12-25 | 2021-04-16 | 北京兆易创新科技股份有限公司 | 一种非易失存储器模式转换方法以及装置 |
| KR20200086143A (ko) * | 2019-01-08 | 2020-07-16 | 삼성전자주식회사 | 저장 장치 및 그것의 데이터 처리 방법 |
| US11803328B2 (en) | 2019-02-12 | 2023-10-31 | Rambus Inc. | Memory with variable access granularity |
| US20200272564A1 (en) | 2019-02-22 | 2020-08-27 | Micron Technology, Inc. | Memory device interface and method |
| CN118606237A (zh) | 2019-02-28 | 2024-09-06 | 拉姆伯斯公司 | 四通道dram |
| US11308017B2 (en) | 2019-05-31 | 2022-04-19 | Micron Technology, Inc. | Reconfigurable channel interfaces for memory devices |
| US11107507B2 (en) * | 2019-06-21 | 2021-08-31 | Micron Technology, Inc. | Transmitting data signals on separate layers of a memory module, and related methods, systems and apparatuses |
| US11921649B1 (en) * | 2019-09-12 | 2024-03-05 | Kioxia Corporation | Multiple parallel mode flash channels with serial link |
| US11675716B2 (en) | 2019-12-10 | 2023-06-13 | Intel Corporation | Techniques for command bus training to a memory device |
| EP4081954A4 (en) | 2019-12-27 | 2023-04-05 | Micron Technology, Inc. | NEUROMORPHIC STORAGE DEVICE AND METHOD |
| KR20220116258A (ko) | 2019-12-30 | 2022-08-22 | 마이크론 테크놀로지, 인크. | 메모리 디바이스 인터페이스 및 방법 |
| CN114902332A (zh) * | 2019-12-31 | 2022-08-12 | 美光科技公司 | 存储器模块多端口缓冲技术 |
| CN111383154A (zh) * | 2020-04-02 | 2020-07-07 | 广东金宇恒软件科技有限公司 | 一种数据接口及便于管理的公共财政预算管理一体化平台系统 |
| US11409684B2 (en) | 2020-07-31 | 2022-08-09 | Alibaba Group Holding Limited | Processing accelerator architectures |
| US11625341B2 (en) * | 2020-08-11 | 2023-04-11 | Alibaba Group Holding Limited | Narrow DRAM channel systems and methods |
| US11556279B2 (en) | 2020-08-21 | 2023-01-17 | Samsung Electronics Co., Ltd. | System device, and method for memory interface including reconfigurable channel |
| CN114141279B (zh) * | 2020-09-04 | 2026-03-17 | 美光科技公司 | 存储器拓扑 |
| US11599484B2 (en) * | 2020-12-01 | 2023-03-07 | Micron Technology, Inc. | Semiconductor device having plural signal buses for multiple purposes |
| US11289135B1 (en) * | 2020-12-08 | 2022-03-29 | Micron Technology, Inc. | Precharge timing control |
| US20220413768A1 (en) | 2021-06-28 | 2022-12-29 | Rambus Inc. | Memory module with double data rate command and data interfaces supporting two-channel and four-channel modes |
| US11593024B1 (en) | 2021-08-30 | 2023-02-28 | Micron Technology, Inc. | Request control for memory sub-systems |
| US12444450B2 (en) * | 2021-11-16 | 2025-10-14 | Samsung Electronics Co., Ltd. | Memory device and method for managing dynamic voltage frequency scaling operations based on host configuration |
| CN114398301A (zh) * | 2021-12-10 | 2022-04-26 | 江苏清微智能科技有限公司 | 多通道访问存储部件以及处理器 |
| EP4490735A1 (en) | 2022-03-08 | 2025-01-15 | Illumina Inc | Multi-pass software-accelerated genomic read mapping engine |
| US12125554B2 (en) | 2022-03-21 | 2024-10-22 | Nxp Usa, Inc. | Systems and methods for resolving data (DQ) line swapping configurations in double data rate (DDR) memories |
| KR20240039924A (ko) | 2022-09-20 | 2024-03-27 | 삼성전자주식회사 | 다양한 동작 모드를 가지는 반도체 메모리 장치 및 메모리 모듈 |
| CN120188148A (zh) * | 2022-12-07 | 2025-06-20 | 拉姆伯斯公司 | 用于多裸片存储器堆叠的封装件内纠错 |
| CN116257188B (zh) * | 2023-03-24 | 2026-04-14 | 联想(北京)有限公司 | 一种数据读写方法及系统、控制方法 |
| US12341829B2 (en) * | 2023-03-30 | 2025-06-24 | Zoom Communications, Inc. | Using a peripheral device to transition between user devices within a video conference |
| CN119270040A (zh) * | 2023-06-30 | 2025-01-07 | 深圳市中兴微电子技术有限公司 | 芯片及电子设备 |
| US20260023692A1 (en) * | 2024-07-17 | 2026-01-22 | Texas Instruments Incorporated | Memory interfaces and controllers |
Family Cites Families (54)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| FR2460526A1 (fr) | 1979-06-29 | 1981-01-23 | Ibm France | Procede de mesure du temps d'acces d'adresse de memoires mettant en oeuvre la technique de recirculation des donnees, et testeur en resultant |
| FR2644260B1 (fr) * | 1989-03-08 | 1993-10-29 | Nec Corp | Dispositif de commande d'acces en memoire pouvant proceder a une commande simple |
| IL96808A (en) | 1990-04-18 | 1996-03-31 | Rambus Inc | Introductory / Origin Circuit Agreed Using High-Performance Brokerage |
| US5430676A (en) | 1993-06-02 | 1995-07-04 | Rambus, Inc. | Dynamic random access memory system |
| US5699506A (en) * | 1995-05-26 | 1997-12-16 | National Semiconductor Corporation | Method and apparatus for fault testing a pipelined processor |
| US5906003A (en) * | 1996-04-17 | 1999-05-18 | Cirrus Logic, Inc. | Memory device with an externally selectable-width I/O port and systems and methods using the same |
| US5892981A (en) | 1996-10-10 | 1999-04-06 | Hewlett-Packard Company | Memory system and device |
| US6167487A (en) * | 1997-03-07 | 2000-12-26 | Mitsubishi Electronics America, Inc. | Multi-port RAM having functionally identical ports |
| US6044412A (en) * | 1997-10-21 | 2000-03-28 | Vlsi Technology, Inc. | Integrated circuit pin sharing method and apparatus for diverse memory devices by multiplexing subsets of pins in accordance with operation modes |
| US6256256B1 (en) * | 1998-01-30 | 2001-07-03 | Silicon Aquarius, Inc. | Dual port random access memories and systems using the same |
| US6742098B1 (en) | 2000-10-03 | 2004-05-25 | Intel Corporation | Dual-port buffer-to-memory interface |
| US6170041B1 (en) * | 1998-09-24 | 2001-01-02 | Integrated Silicon Soulution, Inc. | Integrated circuit memory with a bus transceiver |
| US7061821B2 (en) | 1998-10-20 | 2006-06-13 | International Business Machines Corporation | Address wrap function for addressable memory devices |
| US6578104B1 (en) * | 1999-06-30 | 2003-06-10 | Quick Logic Corporation | RAM with configurable depth and width |
| US6839393B1 (en) * | 1999-07-14 | 2005-01-04 | Rambus Inc. | Apparatus and method for controlling a master/slave system via master device synchronization |
| US6671836B1 (en) * | 1999-09-23 | 2003-12-30 | Rambus Inc. | Method and apparatus for testing memory |
| AU1801201A (en) * | 1999-12-08 | 2001-06-18 | Rambus Inc. | Memory system with channel multiplexing of multiple memory devices |
| GB2357602A (en) | 1999-12-22 | 2001-06-27 | Nokia Mobile Phones Ltd | Memory controller for a memory array comprising different memory types |
| US6499089B1 (en) | 2000-01-18 | 2002-12-24 | Cypress Semiconductor Corp. | Method, architecture and circuitry for independently configuring a multiple array memory device |
| US6778491B1 (en) | 2000-03-31 | 2004-08-17 | Alcatel | Method and system for providing redundancy for signaling link modules in a telecommunication system |
| US6434081B1 (en) | 2000-05-12 | 2002-08-13 | Micron Technology, Inc. | Calibration technique for memory devices |
| US6748556B1 (en) | 2000-08-15 | 2004-06-08 | International Business Machines Corporation | Changing the thread capacity of a multithreaded computer processor |
| US6691214B1 (en) | 2000-08-29 | 2004-02-10 | Micron Technology, Inc. | DDR II write data capture calibration |
| US7610447B2 (en) * | 2001-02-28 | 2009-10-27 | Rambus Inc. | Upgradable memory system with reconfigurable interconnect |
| US6889304B2 (en) | 2001-02-28 | 2005-05-03 | Rambus Inc. | Memory device supporting a dynamically configurable core organization |
| US20030025519A1 (en) * | 2001-08-06 | 2003-02-06 | Cheng-Ju Hsieh | Inspection apparatus and method for test ambient and test mode circuit on integrated circuit chip |
| US6877071B2 (en) * | 2001-08-20 | 2005-04-05 | Technology Ip Holdings, Inc. | Multi-ported memory |
| EP1442615B1 (en) * | 2001-11-09 | 2013-10-23 | Panasonic Corporation | Display device, receiver, and test apparatus |
| US7093083B1 (en) * | 2001-12-18 | 2006-08-15 | Integrated Device Technology, Inc. | Integrated circuit memory devices having asynchronous flow-through capability |
| US7239669B2 (en) | 2002-04-30 | 2007-07-03 | Fulcrum Microsystems, Inc. | Asynchronous system-on-a-chip interconnect |
| US7269709B2 (en) * | 2002-05-15 | 2007-09-11 | Broadcom Corporation | Memory controller configurable to allow bandwidth/latency tradeoff |
| US6854043B2 (en) * | 2002-07-05 | 2005-02-08 | Hewlett-Packard Development Company, L.P. | System and method for multi-modal memory controller system operation |
| JP4159415B2 (ja) | 2002-08-23 | 2008-10-01 | エルピーダメモリ株式会社 | メモリモジュール及びメモリシステム |
| AU2002368402A1 (en) * | 2002-12-05 | 2004-06-23 | Nokia Corporation | Device and method for operating memory components |
| US7043611B2 (en) * | 2002-12-11 | 2006-05-09 | Lsi Logic Corporation | Reconfigurable memory controller |
| KR100929143B1 (ko) * | 2002-12-13 | 2009-12-01 | 삼성전자주식회사 | 컴퓨터 및 그 제어방법 |
| US7313639B2 (en) * | 2003-01-13 | 2007-12-25 | Rambus Inc. | Memory system and device with serialized data transfer |
| JP3632691B2 (ja) | 2003-01-30 | 2005-03-23 | セイコーエプソン株式会社 | テスト回路、集積回路及びテスト方法 |
| US7165153B2 (en) | 2003-06-04 | 2007-01-16 | Intel Corporation | Memory channel with unidirectional links |
| US7120727B2 (en) * | 2003-06-19 | 2006-10-10 | Micron Technology, Inc. | Reconfigurable memory module and method |
| JP4489454B2 (ja) * | 2004-02-16 | 2010-06-23 | 富士通マイクロエレクトロニクス株式会社 | 半導体集積回路 |
| US7562193B2 (en) * | 2004-04-19 | 2009-07-14 | Nokia Corporation | Memory with single and dual mode access |
| US7290160B2 (en) * | 2004-11-23 | 2007-10-30 | Intel Corporation | Method and apparatus to deskew data to clock for memory |
| US7757037B2 (en) * | 2005-02-16 | 2010-07-13 | Kingston Technology Corporation | Configurable flash memory controller and method of use |
| US20070022333A1 (en) * | 2005-06-17 | 2007-01-25 | Terry Steven W | Testing of interconnects associated with memory cards |
| US8335894B1 (en) * | 2008-07-25 | 2012-12-18 | Google Inc. | Configurable memory system with interface circuit |
| US7333908B2 (en) * | 2005-09-01 | 2008-02-19 | Micron Technology, Inc. | Techniques for generating test patterns in high speed memory devices |
| US7577039B2 (en) * | 2005-11-16 | 2009-08-18 | Montage Technology Group, Ltd. | Memory interface to bridge memory buses |
| KR100655081B1 (ko) * | 2005-12-22 | 2006-12-08 | 삼성전자주식회사 | 가변적 액세스 경로를 가지는 멀티 포트 반도체 메모리장치 및 그에 따른 방법 |
| US7613883B2 (en) * | 2006-03-10 | 2009-11-03 | Rambus Inc. | Memory device with mode-selectable prefetch and clock-to-core timing |
| US7698589B2 (en) | 2006-03-21 | 2010-04-13 | Mediatek Inc. | Memory controller and device with data strobe calibration |
| US20070260841A1 (en) * | 2006-05-02 | 2007-11-08 | Hampel Craig E | Memory module with reduced access granularity |
| EP3200189B1 (en) * | 2007-04-12 | 2021-06-02 | Rambus Inc. | Memory system with point-to-point request interconnect |
| WO2009137157A1 (en) | 2008-03-31 | 2009-11-12 | Rambus Inc. | Independent threading of memory devices disposed on memory modules |
-
2008
- 2008-04-11 EP EP17157845.3A patent/EP3200189B1/en active Active
- 2008-04-11 CN CN201610847700.3A patent/CN106407136B/zh active Active
- 2008-04-11 EP EP08742848.8A patent/EP2143107B1/en active Active
- 2008-04-11 CN CN200880011660.2A patent/CN101702947B/zh active Active
- 2008-04-11 US US12/595,125 patent/US20100211748A1/en not_active Abandoned
- 2008-04-11 EP EP23150668.4A patent/EP4198751B1/en active Active
- 2008-04-11 EP EP21176841.1A patent/EP3923287B1/en active Active
- 2008-04-11 EP EP24193358.9A patent/EP4451270A3/en active Pending
- 2008-04-11 WO PCT/US2008/004790 patent/WO2008127698A2/en not_active Ceased
- 2008-04-11 ES ES17157845T patent/ES2883587T3/es active Active
- 2008-04-11 US US12/745,494 patent/US8924680B2/en active Active
-
2009
- 2009-11-30 US US12/627,769 patent/US8069379B2/en active Active
-
2010
- 2010-06-22 US US12/820,973 patent/US8261039B2/en active Active
-
2014
- 2014-06-16 US US14/305,799 patent/US9378787B2/en active Active
-
2016
- 2016-05-31 US US15/169,331 patent/US9959914B2/en active Active
-
2018
- 2018-03-08 US US15/916,193 patent/US10600455B2/en active Active
-
2020
- 2020-02-13 US US16/790,183 patent/US11276440B2/en active Active
-
2022
- 2022-02-06 US US17/665,544 patent/US11727966B2/en active Active
-
2023
- 2023-06-23 US US18/340,803 patent/US12198780B2/en active Active
-
2024
- 2024-12-03 US US18/967,513 patent/US20250182801A1/en active Pending
Also Published As
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES2883587T3 (es) | Sistema de memoria con interconexión de solicitud punto a punto | |
| US20200194052A1 (en) | Memory System Topologies Including A Buffer Device And An Integrated Circuit Memory Device | |
| EP1587112B1 (en) | Buffered memory module with configurable interface width. | |
| US12394471B2 (en) | Memory system topologies including a memory die stack | |
| US20040256638A1 (en) | Configurable width buffered module having a bypass circuit | |
| US20070088995A1 (en) | System including a buffered memory module | |
| US10762010B2 (en) | Multi-mode memory module and memory component |
