ES2904933T3 - Calibración de señal estroboscópica de datos de memoria de acceso aleatorio dinámica síncrona de tasa de datos doble ("DDR SDRAM") - Google Patents

Calibración de señal estroboscópica de datos de memoria de acceso aleatorio dinámica síncrona de tasa de datos doble ("DDR SDRAM") Download PDF

Info

Publication number
ES2904933T3
ES2904933T3 ES18724395T ES18724395T ES2904933T3 ES 2904933 T3 ES2904933 T3 ES 2904933T3 ES 18724395 T ES18724395 T ES 18724395T ES 18724395 T ES18724395 T ES 18724395T ES 2904933 T3 ES2904933 T3 ES 2904933T3
Authority
ES
Spain
Prior art keywords
memory
data
sdram
data signal
error count
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES18724395T
Other languages
English (en)
Inventor
Lakshmi Neeharika Gamini
Sanku Mukherjee
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Application granted granted Critical
Publication of ES2904933T3 publication Critical patent/ES2904933T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/50Marginal testing, e.g. race, voltage or current testing
    • G11C29/50012Marginal testing, e.g. race, voltage or current testing of timing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/12015Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details comprising clock generation or timing circuitry
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/4076Timing circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/022Detection or location of defective auxiliary circuits, e.g. defective refresh counters in I/O circuitry
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/023Detection or location of defective auxiliary circuits, e.g. defective refresh counters in clock generator or timing circuitry
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • G11C7/1093Input synchronization
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/22Control and timing of internal memory operations
    • G11C2207/2254Calibration
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/1201Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details comprising I/O circuitry
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • G11C7/1084Data input buffers, e.g. comprising level conversion circuits, circuits for adapting load

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Memory System (AREA)
  • Dram (AREA)

Abstract

Un método para controlar una calibración de sistema de memoria, que comprende: ajustar un circuito de excitación de señal de datos para deteriorar el equilibrado de impedancia en un canal de señales de datos durante una pluralidad de pruebas de memoria de nivel de sistema; realizar la pluralidad de pruebas de memoria de nivel de sistema usando un controlador de memoria (220) y una memoria de acceso aleatorio dinámica síncrona, SDRAM (218), correspondiendo cada prueba de memoria a uno de una pluralidad de valores de sesgo de fase entre una señal estroboscópica de datos (DQS) y una señal de datos (DQ) en el canal de señales de datos, comprendiendo cada prueba de memoria: establecer un retardo de señal estroboscópica de datos para el controlador de memoria para que se corresponda con uno de la pluralidad de valores de sesgo de fase; escribir una pluralidad de palabras de datos en la SDRAM (218) a través del canal de señales de datos; leer la pluralidad de palabras de datos desde la SDRAM (218) a través del canal de señales de datos; y determinar un recuento de errores para la prueba de memoria, indicando el recuento de errores unos errores de desajuste de datos entre la pluralidad de palabras de datos leídas desde la SDRAM (218) y la pluralidad de palabras de datos escritas en la SDRAM (218); determinar, siguiendo a la pluralidad de pruebas de memoria de nivel de sistema, un valor de sesgo de fase óptimo correspondiente a un recuento de errores que es el más bajo entre la pluralidad de pruebas de memoria de nivel de sistema; y establecer el retardo de señal estroboscópica de datos para el controlador de memoria (220) para que se corresponda con el valor de sesgo de fase óptimo.

Description

DESCRIPCIÓN
Calibración de señal estroboscópica de datos de memoria de acceso aleatorio dinámica síncrona de tasa de datos doble ("DDR SDRAM")
Un dispositivo informático, tal como un ordenador de escritorio, portátil o de tipo tableta, teléfono inteligente, asistente digital portátil, consola de juegos portátil, etc., incluye uno o más procesadores, tales como unidades centrales de procesamiento, unidades de procesamiento de gráficos, procesadores de señales digitales, etc., así como una o más memorias. Para promover una capacidad de proceso alta, una memoria de este tipo puede ser de un tipo capaz de un funcionamiento de velocidad alta, tal como una memoria de acceso aleatorio dinámica síncrona de tasa de datos doble ("DDR SDRAM").
Las DRAM síncronas, o SDRAM, utilizan una interfaz de memoria síncrona con el origen, en la que se confía en el origen de una señal de datos ("DQ") durante una transferencia de datos para proporcionar una señal estroboscópica de datos ("DQS") que es usada por el objetivo de la transferencia de datos para capturar una señal de datos de este tipo cuando esta se está transfiriendo a través de una línea de datos (canal) al objetivo. En DDR SDRAM, la señal de DQ es muestreada, es decir, retenida, en el objetivo por los flancos tanto ascendentes como descendentes de las señales de DQS.
Un encaminamiento denso de pistas conductoras de circuito puede promover la diafonía entre pistas conductoras adyacentes, incluyendo aquellas que portan las señales de DQ y de DQS. Los desequilibrios de impedancia también pueden producir efectos adversos sobre las señales de DQ y de DQS, tales como ruido de anillamiento de retorno. La diafonía, el ruido de anillamiento de retorno y otros efectos adversos pueden inducir errores de datos en el sistema de memoria. El muestreo de la señal de DQ en un punto en el tiempo en el que esta tiene una integridad máxima promueve unas tasas de error de datos bajas.
La integridad de señal se puede caracterizar por un así denominado diagrama de ojo. Una técnica de muestreo de señales de DQ convencional y sencilla se basa en la suposición de que una señal de D q tiene una integridad de señal máxima en el centro del ojo. En consecuencia, en una técnica convencional de este tipo, la señal de DQS se retarda con respecto a las señales de DQ para proporcionar un sesgo de fase de 90 grados entre las mismas, de tal modo que la señal de DQ se muestrea en el centro del ojo. Esta técnica puede no minimizar los errores de datos debido a que efectos tales como el ruido de anillamiento de retorno pueden deteriorar la integridad de señal de DQ en el centro del ojo.
Una técnica de muestreo de señal de DQ convencional más sofisticada se basa en un procedimiento de calibración. En el procedimiento de calibración, el sesgo de fase entre la señal de DQS y de DQ se escalona a través de un intervalo de valores entre 0 y 180 grados. Para cada valor de sesgo de fase de DQS-DQ, se escriben datos en la DRAM y se leen de vuelta desde la DRAM, y se cuenta el número de errores. De esta forma, se genera un histograma que indica el valor de sesgo de fase de DQS-DQ en el que el recuento de errores fue el más bajo. La interfaz de memoria se establece o se programa entonces con este valor de sesgo de fase de DQS-DQ, de tal modo que, durante un funcionamiento en modo normal o en el así denominado de misión del dispositivo informático, la interfaz de memoria usa este valor en operaciones de escritura. Aunque esta técnica puede mejorar la técnica sencilla descrita anteriormente, efectos tales como la diafonía pueden, no obstante, inducir errores de datos durante un funcionamiento en modo de misión.
El documento US 2015/066819 A1 divulga que unos parámetros de E/S se ajustan basándose en un número de errores detectados en una señal de entrenamiento recibida. Un dispositivo de control envía la señal de entrenamiento mientras un dispositivo de memoria está en un modo de entrenamiento. El dispositivo de memoria muestrea la señal de entrenamiento y el sistema provoca un ajuste en al menos un parámetro de E/S basándose en un número detectado de errores. O bien el controlador o bien el dispositivo de memoria puede realizar la detección de errores, dependiendo de la configuración del sistema. Se puede ajustar o bien un parámetro de E/S del controlador o bien un parámetro de E/S del dispositivo de memoria, dependiendo de la configuración del sistema.
El documento JP 2011061666 A divulga un dispositivo para ajustar la impedancia que incluye un ajustador de impedancia de memoria, un ajustador de impedancia de FI y una unidad de sincronización de ajuste de impedancia. El ajustador de impedancia de memoria emite una orden de ajuste de ZQ que da instrucciones de un ajuste de impedancia de una memoria intermedia de salida de una memoria. El ajustador de impedancia de FI genera y proporciona como salida un código de ajuste de impedancia de FI para el ajuste de impedancia de una memoria intermedia de salida de una interfaz de memoria. La unidad de sincronización de ajuste de impedancia suministra el código de ajuste de impedancia de FI a la interfaz de memoria en sincronización con la emisión de la orden de ajuste de ZQ desde el ajustador de impedancia de memoria.
Sumario de la divulgación
La invención se define mediante las reivindicaciones independientes. También se definen realizaciones de la invención mediante las reivindicaciones dependientes. Se divulgan sistemas, métodos y productos de programa informático para controlar una calibración de un sistema de memoria de acceso aleatorio dinámica síncrona ("SDRAM").
En un aspecto, un método puede incluir ajustar un circuito de excitación de señal de datos para deteriorar el equilibrado de impedancia en un canal de señales de datos durante una pluralidad de pruebas de memoria de nivel de sistema y realizar la pluralidad de pruebas de memoria de nivel de sistema usando un controlador de memoria y una SDRAM. Cada prueba de memoria puede corresponder a uno de una pluralidad de valores de sesgo de fase entre una señal estroboscópica de datos y una señal de datos en el canal de señales de datos. Cada prueba de memoria puede incluir establecer un retardo de señal estroboscópica de datos para el controlador de memoria para que se corresponda con uno de la pluralidad de los valores de sesgo de fase, escribir una pluralidad de palabras de datos en la SDRAM a través del canal de señales de datos, leer la pluralidad de palabras de datos desde la SDRAM a través del canal de señales de datos y determinar un recuento de errores para la prueba de memoria. El recuento de errores indica unos errores de desajuste de datos entre la pluralidad de palabras de datos leídas desde la SDRAM y la pluralidad de palabras de datos escritas en la SDRAM. El método puede incluir además, siguiendo a la pluralidad de pruebas de memoria de nivel de sistema, determinar un valor de sesgo de fase óptimo correspondiente a un recuento de errores que es el más bajo entre la pluralidad de pruebas de memoria de nivel de sistema y establecer un retardo de señal estroboscópica de datos para el controlador de memoria para que se corresponda con el valor de sesgo de fase óptimo.
En otro aspecto, un sistema para calibrar un sistema de memoria puede incluir un sistema de memoria que comprende un controlador de memoria y una SDRAM. El sistema puede incluir además uno o más procesadores configurados para ajustar un circuito de excitación de señal de datos para deteriorar el equilibrado de impedancia en un canal de señales de datos durante una pluralidad de pruebas de memoria de nivel de sistema y realizar la pluralidad de pruebas de memoria de nivel de sistema. Cada prueba de memoria puede corresponder a uno de una pluralidad de valores de sesgo de fase entre una señal estroboscópica de datos y una señal de datos en el canal de señales de datos. Los uno o más procesadores se pueden configurar para, para cada prueba de memoria, establecer un retardo de señal estroboscópica de datos para el controlador de memoria para que se corresponda con uno de la pluralidad de los valores de sesgo de fase, escribir una pluralidad de palabras de datos en la SDRAM a través del canal de señales de datos, leer la pluralidad de palabras de datos desde la SDRAM a través del canal de señales de datos, determinar un recuento de errores para la prueba de memoria. El recuento de errores indica unos errores de desajuste de datos entre la pluralidad de palabras de datos leídas desde la SDRAM y la pluralidad de palabras de datos escritas en la SDRAM Los uno o más procesadores se pueden configurar además para, siguiendo a la pluralidad de pruebas de memoria de nivel de sistema, determinar un valor de sesgo de fase óptimo correspondiente a un recuento de errores que es el más bajo entre la pluralidad de pruebas de memoria de nivel de sistema y establecer el retardo de señal estroboscópica de datos para el controlador de memoria para que se corresponda con el valor de sesgo de fase óptimo.
En otro aspecto más, un producto de programa informático para controlar una calibración de sistema de memoria puede incluir lógica ejecutable por procesador incorporada en al menos un medio de almacenamiento no transitorio. La ejecución de la lógica por uno o más procesadores de un sistema puede configurar el sistema para ajustar un circuito de excitación de señal de datos para deteriorar el equilibrado de impedancia en un canal de señales de datos durante una pluralidad de pruebas de memoria de nivel de sistema, realizar la pluralidad de pruebas de memoria de nivel de sistema usando un controlador de memoria y una SDRAM. Cada prueba de memoria puede corresponder a uno de una pluralidad de valores de sesgo de fase entre una señal estroboscópica de datos y una señal de datos en el canal de señales de datos. La ejecución de la lógica por los uno o más procesadores puede configurar el sistema para, para cada prueba de memoria, establecer un retardo de señal estroboscópica de datos para el controlador de memoria para que se corresponda con uno de la pluralidad de los valores de sesgo de fase, escribir una pluralidad de palabras de datos en la SDRAM a través del canal de señales de datos, leer la pluralidad de palabras de datos desde la SDRAM a través del canal de señales de datos y determinar un recuento de errores para la prueba de memoria. El recuento de errores indica unos errores de desajuste de datos entre la pluralidad de palabras de datos leídas desde la SDRAM y la pluralidad de palabras de datos escritas en la SDRAM La ejecución de la lógica por los uno o más procesadores puede configurar además el sistema para, siguiendo a la pluralidad de pruebas de memoria de nivel de sistema, determinar un valor de sesgo de fase óptimo correspondiente a un recuento de errores que es el más bajo entre la pluralidad de pruebas de memoria de nivel de sistema y establecer el retardo de señal estroboscópica de datos para el controlador de memoria para que se corresponda con el valor de sesgo de fase óptimo.
Breve descripción de los dibujos
En las figuras, números de referencia semejantes se refieren a partes semejantes en las diversas vistas, salvo que se indique lo contrario. Para los números de referencia con designaciones de caracteres de tipo letra tales como "102A" o "102B", las designaciones de caracteres de tipo letra pueden diferenciar dos partes o elementos semejantes presentes en la misma figura. Las designaciones de caracteres de tipo letra para los números de referencia se pueden omitir cuando se pretende que un número de referencia abarque todas las partes que tienen el mismo número de referencia en todas las figuras.
La figura 1 es un diagrama de bloques de un dispositivo informático portátil, de acuerdo con una realización ilustrativa.
La figura 2 es un diagrama de bloques de un sistema de procesamiento, de acuerdo con una realización ilustrativa.
La figura 3 es un diagrama de bloques de un sistema de memoria del sistema de procesamiento, de acuerdo con una realización ilustrativa.
La figura 4 es un diagrama de temporización de forma de onda de una señal de datos y una señal estroboscópica de datos del sistema de memoria, de acuerdo con una realización ilustrativa.
La figura 5 es un diagrama de flujo que ilustra un método para una calibración de sistema de memoria, de acuerdo con una realización ilustrativa.
La figura 6 es un histograma que relaciona un recuento de errores de prueba de memoria con unos valores de sesgo de fase entre la señal de datos y la señal estroboscópica de datos, de acuerdo con una realización ilustrativa. La figura 7 es un diagrama de flujo que ilustra un método para determinar un nivel de impedancia de unidad de excitación de señal de datos que deteriora el equilibrado de impedancia en el canal de datos, de acuerdo con una realización ilustrativa.
Descripción detallada
La palabra "ilustrativo" se usa en el presente documento para significar "que sirve como un ejemplo, caso o ilustración". Cualquier aspecto descrito en el presente documento como "ilustrativo" no necesariamente tiene que interpretarse como preferido o ventajoso sobre otros aspectos.
Se entenderá que una referencia en el presente documento a componentes de memoria de "DDR" o "SDRAM" contempla cualquiera de una clase más amplia de memoria de acceso aleatorio dinámica síncrona ("SDRAM") y no limitará el alcance de las soluciones divulgadas en el presente documento a una generación o tipo específico de SDRAM. Además, ciertas realizaciones de las soluciones divulgadas en el presente documento pueden ser aplicables a DDR, DDR-2, DDR-3, DDR de baja potencia ("LPDDR") o cualquier generación posterior de SDRAM.
Las expresiones "unidad central de procesamiento" ("CPU"), "procesador de señales digitales" ("DSP") y "unidad de procesamiento de gráficos" ("GPU") son ejemplos no limitantes de procesadores que pueden residir en un PCD. Estas expresiones se usan de forma intercambiable en el presente documento, excepto en donde se indique lo contrario.
La expresión "dispositivo informático portátil" ("PCD") se usa en el presente documento para describir cualquier dispositivo que funcione con una fuente de alimentación de capacidad limitada, tal como una batería. Aunque los PCD que funcionan con baterías han estado en uso durante décadas, los avances tecnológicos en baterías recargables en conjunción con la aparición de la tecnología inalámbrica de tercera generación ("3G") y de cuarta generación ("4G") han habilitado numerosos PCD con capacidades múltiples. Por lo tanto, un PCD puede ser un teléfono celular o móvil, un teléfono por satélite, un dispositivo de radiobúsqueda, un asistente digital personal ("PDA"), un teléfono inteligente, un dispositivo de navegación, un lector o libro inteligente, un reproductor de medios, una combinación de los dispositivos mencionados anteriormente, un ordenador portátil o de mano con una conexión o enlace inalámbrico, entre otros.
Las expresiones "componente", "base de datos", "módulo", "sistema" y similares se usan en el presente documento para hacer referencia a una entidad relacionada con un ordenador, ya sea hardware, firmware, una combinación de hardware y software, software o software en ejecución. Por ejemplo, un componente puede ser, pero sin limitación, un proceso que se ejecuta en un procesador, un procesador, un objeto, un ejecutable, un hilo de ejecución, un programa y/o un ordenador. A modo de ilustración, tanto una aplicación que se ejecuta en un dispositivo informático como el dispositivo informático pueden ser un componente. Uno o más componentes pueden residir dentro de un proceso y/o subproceso de ejecución, y un componente se puede localizar en un ordenador y/o distribuirse entre dos o más ordenadores. Además, estos componentes se pueden ejecutar desde diversos medios legibles por ordenador que tienen diversas estructuras de datos almacenadas en los mismos. Los componentes se pueden comunicar por medio de procesos locales y/o remotos, tal como de acuerdo con una señal que tiene uno o más paquetes de datos (por ejemplo, datos procedentes de un componente que interaccionan con otro componente en un sistema local, sistema distribuido y/o a través de una red tal como Internet con otros sistemas por medio de la señal).
Las expresiones "aplicación" o "programa de aplicación" se pueden usar a modo de sinónimos para hacer referencia a una entidad de software que tiene contenido ejecutable, tal como código objeto, secuencias de comandos, código de bytes, archivos de lenguaje de marcado, parches, etc. Además, una "aplicación" puede incluir además archivos que no son de naturaleza ejecutable, tales como archivos de datos, archivos de configuración, documentos, etc.
Como se ilustra en la figura 1, en realizaciones ilustrativas o de ejemplo, se pueden incorporar sistemas, métodos y productos de programa informático para una calibración de sistema de memoria en un PCD 100. El PCD 100 incluye un sistema en chip ("SoC") 102, es decir, un sistema incorporado en un chip de circuito integrado. El SoC 102 puede incluir una unidad de procesamiento central ("CPU") 104, una unidad de procesamiento de gráficos ("GPU") 106 u otros procesadores. El PCD 102 puede incluir un procesador de señales analógicas 108.
Un controlador de visualizador 110 y un controlador de pantalla táctil 112 se pueden acoplar a la CPU 104. Un visualizador de pantalla táctil 114 externo al SoC 102 se puede acoplar al controlador de visualizador 110 y al controlador de pantalla táctil 112. El PCD 102 puede incluir además un descodificador de vídeo 116. El descodificador de vídeo 116 se acopla a la CPU 104. Un amplificador de vídeo 118 se puede acoplar al descodificador de vídeo 116 y al visualizador de pantalla táctil 114. Un puerto de vídeo 120 se puede acoplar al amplificador de vídeo 118. Un controlador de bus serie universal ("USB") 122 también se puede acoplar a la CPU 104, y un puerto de USB 124 se puede acoplar al controlador de USB 122. Una tarjeta de módulo de identidad de abonado ("SIM") 126 también se puede acoplar a la CPU 104.
Una o más memorias se pueden acoplar a la CPU 104. Las una o más memorias pueden incluir memorias tanto volátiles como no volátiles, tales como una memoria flash 128 y una DDR SDRAM 130, respectivamente. En otras realizaciones, se puede incluir memoria adicional, tal como una DDR SDRAM adicional, de forma externa al SoC 102. Un controlador de memoria 132 acoplado a la CPU 104 controla la escritura de datos en, y la lectura de datos desde, la DDR SDRAM 130. En otras realizaciones, un controlador de memoria de este tipo se puede incluir dentro de un procesador, tal como la CPU 104.
Un CÓDEC de audio estéreo 134 se puede acoplar al procesador de señales analógicas 108. Además, un amplificador de audio 136 se puede acoplar al CÓDEC de audio estéreo 134. El primer y el segundo altavoces estéreo 138 y 140, respectivamente, se pueden acoplar al amplificador de audio 136. Además, un amplificador de micrófono 142 también se puede acoplar al CÓDEC de audio estéreo 134, y un micrófono 144 se puede acoplar al amplificador de micrófono 142. Un sintonizador de radio de modulación de frecuencia ("FM") 146 se puede acoplar al CÓDEC de audio estéreo 134. Una antena de FM 148 se puede acoplar al sintonizador de radio de FM 146. Además, los auriculares estéreo 150 se pueden acoplar al CÓ d E c de audio estéreo 134. Otros dispositivos que se pueden acoplar a la CPU 104 incluyen una cámara digital 152.
Un módem o transceptor de radiofrecuencia ("RF") 154 se puede acoplar al procesador de señales analógicas 108. Un conmutador de RF 156 se puede acoplar al transceptor de RF 154 y a una antena 158. Además, un teclado numérico 160, unos auriculares mono con un micrófono 162 y un dispositivo vibrador 164 se pueden acoplar al procesador de señales analógicas 108.
Una fuente de alimentación 166 se puede acoplar al SoC 102 a través de un circuito integrado de gestión de energía ("PMIC") 168. La fuente de alimentación 166 puede incluir una batería recargable o una fuente de alimentación de CC que se obtiene de un transformador de CA a CC conectado a una fuente de alimentación de CA.
La CPU 104 también se puede acoplar a uno o más sensores térmicos en chip internos 170A así como a uno o más sensores térmicos en chip externos 170B. Los sensores térmicos 170A y 170B pueden producir una caída de voltaje que se convierte en señales digitales con un controlador de convertidor de analógico a digital ("ADC") 222.
El visualizador de pantalla táctil 114, el puerto de vídeo 120, el puerto de USB 124, la cámara 152, el primer altavoz estéreo 138, el segundo altavoz estéreo 140, el micrófono 144, la antena de FM 148, los auriculares estéreo 150, el conmutador de RF 156, la antena de RF 172, el teclado numérico 160, el auricular mono 162, el vibrador 164, los sensores térmicos 170B, el PMIC 168 y la fuente de alimentación 166 son externos al SoC 102 en esta realización de ejemplo o ilustrativa. Sin embargo, se entenderá que, en otras realizaciones, uno o más de estos dispositivos se pueden incluir en un SoC de este tipo.
Las expresiones "modo de funcionamiento normal" y "modo de misión" se usan a modo de sinónimos en el presente documento para hacer referencia a cualquier modo de funcionamiento de un dispositivo que no sean modos en los que el dispositivo está experimentando operaciones de configuración, de aprovisionamiento, de calibración, de pruebas, de arranque, de encendido o de apagado, u operaciones transitorias similares. Por ejemplo, en un modo operativo normal o modo de misión, el PCD 100 puede realizar aquellas operaciones o funciones que un experto en la materia reconoce como características de un dispositivo informático portátil, tales como telefonía de voz, mensajería, correo electrónico, transmisión por secuencias de vídeo y de audio o reproducción, etc. Tales funciones se pueden asociar con aplicaciones. El término "tráfico" se puede usar en el presente documento para hacer referencia a datos que se producen, se transmiten, se reciben o se comunican o se procesan de otro modo en asociación con funciones en modo de misión.
Como se ilustra en la figura 2, en una realización ilustrativa, un sistema de procesamiento 200 incluye un procesador 202 y una memoria de arranque no volátil 204. El procesador 202 y la memoria de arranque 204 pueden ser un procesador y una memoria, respectivamente, del PCD 100 (la figura 1). Por ejemplo, el procesador 202 puede ser la CPU 104 del PCD 100. La memoria 204 puede ser la memoria 128 del PCD 100, en la que se puede almacenar, en forma no volátil, software o firmware para, entre otras funciones, arrancar el PCD 100. El procesador 202 y la memoria de arranque 204 pueden comunicar señales entre sí y con otros dispositivos a través de una o más interconexiones 206, tales como buses. De acuerdo con principios informáticos convencionales, el procesador 202 funciona bajo el control de un código de firmware o software, que configura el procesador 202 para realizar diversas funciones o métodos, incluyendo los métodos de calibración de sistema de memoria descritos en el presente documento. A través de tal código, el procesador 202 se puede configurar con la lógica de calibración 208 en relación con los métodos de calibración de sistema de memoria descritos en el presente documento. La lógica de calibración 208 puede incluir la lógica de impedancia 209, la lógica de sesgo de fase 210, la lógica de escritura de datos 212, la lógica de lectura de datos 214 y la lógica de recuento de errores 216. Aunque la lógica 208-216 se muestra de forma conceptual con fines de ilustración como almacenada o residente en la memoria de arranque 204 en forma de software o firmware, se entiende que la lógica 208-216 surge en el sistema de procesamiento 200 a través del funcionamiento del procesador 202 bajo el control de software o firmware, que se puede almacenar en la memoria de arranque 204 u en otra memoria. Durante el funcionamiento, la lógica 208-216 define una configuración del procesador 202. Por lo tanto, el procesador 202 se configura para realizar los métodos de calibración de sistema de memoria descritos en el presente documento. Aunque no se muestra en la figura 2 con fines de claridad, además de configurarse para realizar los métodos de calibración de sistema de memoria descritos en el presente documento, el procesador 202 o el sistema de procesamiento 200 se pueden configurar para realizar métodos convencionales, tales como, por ejemplo, métodos de sistema operativo, métodos de programa de aplicación, etc. También se debería observar que la combinación de la lógica 208-216 o elementos de software relacionados y el medio no transitorio en el que las mismas se almacenan o residen (por ejemplo, la memoria de arranque 204 u otra memoria) define en general lo que, en el léxico de patentes, se denomina "producto de programa informático". Además, la lógica 208-216 define unos medios para realizar las funciones descritas a continuación.
El sistema de procesamiento 200 incluye además una SDRAM 218 y un controlador de memoria 220. La SDRAM 218 puede ser, por ejemplo, la DDR SDRAM 130 del PCD 100 (la figura 1). El controlador de memoria 220 puede ser, por ejemplo, el controlador de memoria 132 del PCD 100. La SDRAM 218 puede ser una memoria de sistema o una memoria principal que es usada por el procesador 202 para ejecutar las aplicaciones 222. Los métodos de calibración de sistema de memoria descritos en el presente documento se refieren a la determinación de un sesgo de fase entre las señales estroboscópica de datos ("DQS") y de datos ("DQ") y a la configuración del controlador de memoria 220 con un valor de sesgo de fase correspondiente, como se indica de forma conceptual mediante la flecha con línea trazo discontinuo en la figura 2. El procesador 202, que funciona de acuerdo con tales métodos, puede determinar tales valores de sesgo de fase y efectuar su transferencia o comunicación al controlador de memoria 220 a través de las interconexiones 206.
Como se ilustra en la figura 3, el controlador de memoria 220 puede usar un valor de sesgo de fase para ajustar un elemento de retardo ajustable 302. El elemento de retardo 302 se configura para retardar la señal de DQS una cantidad de tiempo ajustable, que puede corresponder al valor de sesgo de fase. El controlador de memoria 220 puede generar la señal de DQS de una forma convencional, como será bien entendido por un experto en la materia, y proporcionar la señal de DQS a una entrada de señal del elemento de retardo 302. El controlador de memoria 220 puede ajustar el elemento de retardo 302 proporcionando un valor de retardo ("DLY_ADJ") a una entrada de ajuste de retardo del elemento de retardo 302. En respuesta al valor de retardo, el elemento de retardo 302 emite una señal de DQS retardada que se ha retardado con respecto a la señal de DQS en la entrada del elemento de retardo 302 una cantidad de tiempo representada por el valor de retardo (la forma en la que se proporciona una sincronización entre las señales de DQ y de DQS antes de retardar la señal de DQS es bien conocida por un experto en la materia y, por lo tanto, no se describe en el presente documento). La señal de DQS retardada en la salida del elemento de retardo 302 se proporciona a la SDRAM 218 a través de un bus 304. Aunque las señales de DQ y de DQS son bidireccionales en el bus 304, la circuitería en el controlador de memoria 220 en relación con señales de DQ y de DQS recibidas a través del bus 304 no se muestra con fines de claridad.
El bus 304 puede ser de un tipo convencional empleado en sistemas de DDR SDRAM. En consecuencia, el bus 304 puede incluir no solo las señales de DQS y de DQ, sino también una señal de habilitación de escritura ("WE"), una señal estroboscópica de dirección de fila ("RAS"), una señal estroboscópica de dirección de columna ("CAS"), y señales de bus de orden y dirección ("CA"), señales de selección de chip ("CS"), señales de dirección de banco ("BA"), una señal de reloj ("CK"), una señal de habilitación de reloj ("CKE") u otras señales incluidas comúnmente en tales buses de sistema de DDR SDRAM. Aunque algunas de estas señales pueden ser diferenciales en lugar de ser de un solo terminal, las mismas se representan como de un solo terminal en la figura 3 con fines de claridad. Debido a que la forma en la que se generan y se usan estas señales en relación con las operaciones de escritura, de lectura y otras operaciones de memoria es bien entendida por un experto en la materia, tales aspectos no se describen en el presente documento.
El controlador de memoria 220 también incluye unas unidades de excitación de impedancia ajustable 306 que proporcionan unas señales de DQ salientes sobre las porciones de línea de señal de DQ bidireccional del bus 304. Las unidades de excitación 306 se configuran para tener una impedancia de salida ajustable. El controlador de memoria 220 puede generar las señales de DQ de una forma convencional en asociación con una operación de escritura, como será bien entendido por un experto en la materia, y proporcionar las señales de DQ a unas entradas de señal de las unidades de excitación de impedancia ajustable 306. El controlador de memoria 220 puede establecer o ajustar la impedancia de salida con la que las unidades de excitación 306 acoplan las señales de d Q sobre las líneas de señal de DQ del bus 304 proporcionando un valor de impedancia ("Z_ADJ") a una entrada de ajuste de impedancia de las unidades de excitación 306. Las salidas de las unidades de excitación 306 se proporcionan a la SD RA m 218 a través de las porciones de línea de señal de DQ del bus 304.
Los métodos de calibración de sistema de memoria descritos en el presente documento incluyen determinar los valores de impedancia a los que se establece o se ajusta la impedancia de las unidades de excitación 306. El procesador 202, que funciona de acuerdo con tales métodos, puede determinar tales valores de impedancia y efectuar su transferencia o comunicación al controlador de memoria 220 a través de las interconexiones 206 (la figura 2).
Debido a que la forma en la que un bus de DDR SDRAM funciona para efectuar operaciones de escritura, de lectura y otras operaciones es bien entendida por un experto en la materia, tales aspectos no se describen en el presente documento. Excepto por los aspectos del controlador de memoria 220 descritos en el presente documento, todos los otros aspectos del controlador de memoria 220 pueden ser convencionales o, por lo demás, inmediatamente evidentes para un experto en la materia a la vista de las descripciones en el presente documento. En consecuencia, tales aspectos convencionales de la estructura y el funcionamiento del controlador de memoria 220 no se describen en el presente documento.
El desequilibrio de impedancia en el canal de señales definido por las porciones de línea de señal de DQ del bus 304 puede afectar de forma adversa a la integridad de señal de las señales de DQ al introducir un ruido de anillamiento de retorno. Una integridad de señal deficiente de las señales de DQ entrantes en la SDRAM 218 puede dar como resultado errores de escritura. Un ejemplo de una señal de DQ 402 que exhibe un ruido de anillamiento de retorno en la SDRAM 218 se muestra (con una línea de trazo continuo) en el diagrama de ojo 400 de la figura 4. Este ejemplo de una señal de DQ 402 que exhibe un ruido de anillamiento de retorno se puede contrastar con un ejemplo de una señal de DQ 404 (mostrada en una línea de trazo discontinuo) que no exhibe un ruido de anillamiento de retorno. Obsérvese que el ruido de anillamiento de retorno es lo más prominente en la señal de DQ 402 ilustrativa cerca del centro del ojo. Si la SDRAM 218 tuviera que muestrear la señal de DQ 402 ilustrativa cerca del centro 406 del ojo (es decir, en un punto en el tiempo a 90 grados del inicio o la transición 408 del ojo), en donde la integridad de señal es deficiente, se podría esperar un número mayor de errores de escritura que si la SDRAM 218 tuviera que muestrear la señal de DQ 402 ilustrativa en un punto en el tiempo en el que la integridad de señal es mejor.
De acuerdo con los métodos ilustrativos descritos a continuación, el sistema de procesamiento 200 (la figura 2) calibra la temporización de la señal de DQS con respecto a la señal de DQ de tal modo que los flancos de la señal de DQS coinciden con una porción de la señal de DQ que tiene una integridad de señal buena. En la figura 4 se muestra un ejemplo de un sesgo de fase óptimo ("SESGO") determinado de acuerdo con los métodos ilustrativos. En la figura 4, se muestra un ejemplo de una señal de DQS 410 que se retarda una cantidad de tiempo que proporciona el sesgo de fase óptimo entre los flancos de la señal de DQS y una porción de la señal de DQ que tiene una integridad de señal buena. De la forma descrita a continuación, una porción de la señal de DQ que tiene una integridad de señal buena se determina indirectamente al realizar, de forma iterativa, pruebas de memoria de nivel de sistema en la SDRAM 218 (la figura 2). El sesgo de fase entre las señales de DQS y de DQ se barre a lo largo de un intervalo. Es decir, cada prueba de memoria o iteración corresponde a un valor de sesgo de fase discreto en el intervalo. El valor de sesgo de fase correspondiente a la prueba de memoria o iteración que produce el recuento de errores más bajo entre todas las pruebas de memoria se determina y se selecciona como el valor de sesgo de fase óptimo descrito anteriormente. Por lo tanto, por ejemplo, establecer el sesgo de fase entre la señal de DQS 410 ilustrativa y la señal de DQ 402 ilustrativa a un valor de sesgo de fase óptimo "SESGO" como se muestra en la figura 4 da como resultado que la SDRAM 218 muestree la señal de DQ 402 ilustrativa en un punto de tiempo 412. Es decir, la muestra es activada por el flanco ascendente de la señal de DQS 402 ilustrativa en el punto de tiempo 412. Tal muestreo tiene lugar en respuesta a los flancos tanto ascendentes como descendentes de la señal de d Qs 402 ilustrativa, de acuerdo con los principios de DDR. En este ejemplo, como resultado de establecer el sesgo de fase entre la señal de DQS 410 ilustrativa y la señal de DQ 402 ilustrativa al valor de sesgo de fase óptimo "SESGO", es probable que las operaciones de escritura den como resultado menos errores de memoria debido a que la señal de DQ 402 ilustrativa exhibe menos ruido de anillamiento de retorno en el punto de tiempo de muestreo 412 que cerca del centro 406 del ojo.
Un método ilustrativo para controlar una calibración de sistema de memoria se ilustra mediante el diagrama de flujo de la figura 5. Aunque ciertos actos o etapas en los métodos descritos a continuación preceden naturalmente a otros para que las realizaciones ilustrativas funcionen como se describe, la invención no se limita al orden de esos actos o etapas si tal orden o secuencia no altera la funcionalidad de la invención. Es decir, se reconoce que algunos actos o etapas se pueden realizar antes de, después de o en paralelo (es decir, de forma sustancialmente simultánea) con otros actos o etapas sin apartarse del alcance y espíritu de la invención. En algunos casos, ciertos actos o etapas se pueden omitir o no realizarse, sin apartarse del alcance y espíritu de la invención. Además, expresiones tales como "a continuación de lo anterior", "entonces", "a continuación", etc., no pretenden limitar el orden de los actos o etapas. En su lugar, tales palabras se usan para ayudar a guiar al lector a través de las descripciones de los métodos ilustrativos.
Como se ilustra mediante el diagrama de flujo de la figura 5, en una realización ilustrativa, el sistema de procesamiento 200 descrito anteriormente con respecto a la figura 2 puede calibrar la temporización de la señal de DQS con respecto a la señal de DQ para operaciones de escritura. El método se puede realizar de forma sustancialmente simultánea con los métodos de puesta en marcha convencionales que se realizan como preparación para que el PCD 100 u otro dispositivo comience o vuelva a un funcionamiento en modo de misión. Realizar tales métodos de puesta en marcha se denomina comúnmente arrancar o iniciar el PCD 100 u otro dispositivo de este tipo. Como alternativa, o además, los métodos se pueden realizar en el momento en el que se fabrica el PCD 100 u otro dispositivo de este tipo.
Como se indica mediante el bloque 502, el método ilustrativo comienza con el ajuste o la configuración de la impedancia de salida de las unidades de excitación 306 (la figura 3). Por ejemplo, el procesador 202 (la figura 2) puede dotar de un valor de impedancia ("Z_ADJ") al controlador de memoria 220. Quizá de forma contraria al sentido común, la impedancia de las unidades de excitación 306 se establece a un valor de impedancia que puede deteriorar el equilibrado de impedancia en el canal de señales de DQ durante las pruebas de memoria de nivel de sistema que siguen. Es decir, la impedancia de las unidades de excitación 306 se establece a un valor de impedancia que puede introducir o exacerbar efectos normalmente no deseables tales como ruido de anillamiento de retorno. Un valor de impedancia al que se establecen o se ajustan las unidades de excitación 306 se puede determinar mediante un método tal como el descrito a continuación con respecto a la figura 7, u otro método. La lógica de impedancia 209 (la figura 2) puede contribuir a esta función. En consecuencia, el sistema de procesador 200 o el procesador 202, como se configura con la lógica de impedancia 209, puede servir como unos medios para realizar esta función.
Como se indica mediante el bloque 504, el sesgo de fase entre las señales de DQS y de DQ se establece o se ajusta. Por ejemplo, el procesador 202 puede dotar de un valor de retardo ("DLY_ADJ") al controlador de memoria 220. La cantidad de tiempo que se retarda la señal de DQS con respecto a las señales de DQ se puede usar como un valor sustitutivo para el sesgo de fase relativo entre las señales de DQS y de DQ debido a que, de lo contrario, estas señales están sincronizadas entre sí. El método se realiza de forma iterativa, barriéndose el valor de retardo desde un valor inicial de, por ejemplo, cero grados, a un valor final de, por ejemplo, 180 grados. El intervalo de valores de retardo se puede dividir en una secuencia de valores de retardo discretos, en incrementos de, por ejemplo, 10 grados. Por lo tanto, por ejemplo, durante la primera iteración o prueba de memoria, el valor de retardo correspondiente se establece a 10 grados; durante la segunda iteración o prueba de memoria, el valor de retardo correspondiente se establece a 20 grados; etc., hasta 180 grados. La lógica de sesgo de fase 210 puede contribuir a esta función. En consecuencia, el sistema de procesador 200 o el procesador 202, como se configura con la lógica de sesgo de fase 210, puede servir como unos medios para realizar esta función.
Como se indica mediante el bloque 506, una pluralidad de palabras de datos se escribe en la SDRAM 218. Las palabras de datos pueden ser representativas de un tráfico de datos en modo de misión real que se escribiría en la SDRAM 218. De esta forma, las pruebas de memoria se realizan en condiciones de integridad de señal potencialmente adversas que surgen de efectos tales como diafonía y fluctuaciones de potencia, que pueden surgir durante un funcionamiento en modo de misión, pero que pueden no surgir en condiciones de prueba de memoria convencionales, en donde unos patrones de datos cortos y predecibles se escriben en y se leen desde una memoria en ausencia de otra actividad en el dispositivo. La lógica de escritura de datos 212 puede incluir porciones que emulan porciones de una o más de las aplicaciones 222, como se indica de forma conceptual mediante la conexión con línea de trazo discontinuo en la figura 2 entre la lógica de escritura de datos 212 y las aplicaciones 222. La lógica de escritura de datos 212 puede contribuir a configurar el sistema de procesamiento 200 o porciones del PCD 100 para emular aspectos del funcionamiento en modo de misión. De esta forma, la escritura de datos en la SDRAM 218 durante las pruebas de memoria emula la escritura de datos en la SDRAM 218 durante un funcionamiento en modo de misión del PCD 100. El sistema de procesador 200 o el procesador 202, como se configura con la lógica de escritura de datos 212, puede servir como unos medios para realizar esta función.
Como se indica mediante el bloque 508, una pluralidad de palabras de datos se lee desde las mismas ubicaciones en la SDRAM 218 que aquellas en las que se escribieron las palabras de datos. En esta descripción, el término "error" se refiere a un desajuste entre una palabra de datos escrita en una ubicación de memoria y una palabra de datos leída posteriormente desde la misma ubicación de memoria. Como se usa en el presente documento, la expresión "recuento de errores" o "recuento de aptos/no aptos" se refiere al número de errores distintos que resultan de una prueba de memoria. La lógica de lectura de datos 214 (la figura 2) puede contribuir a esta función. En consecuencia, el sistema de procesador 200 o el procesador 202, como se configura con la lógica de lectura de datos 214, puede servir como unos medios para realizar esta función.
Como se indica mediante el bloque 510, se determina el recuento de errores para la prueba de memoria. Se pueden detectar errores de prueba de memoria de una diversidad de formas, tales como comparando archivos de datos de entrada y de salida, como será bien entendido por un experto en la materia.
Como se indica mediante el bloque 512, se determina si el valor de retardo proporcionado al controlador de memoria 220 como se ha descrito anteriormente con respecto al bloque 504 ha alcanzado 180 grados, es decir, si se han de realizar iteraciones adicionales. Si se determina (el bloque 512) que se han de realizar iteraciones adicionales, entonces el valor de retardo se incrementa, como se indica mediante el bloque 514, y el método continúa en el bloque 504 descrito anteriormente. Continuando en el bloque 504, se realiza entonces otra prueba de memoria o iteración de la forma descrita anteriormente con respecto a los bloques 504-512.
Si se determina (el bloque 512) que no se han de realizar iteraciones adicionales, es decir, el valor de retardo se ha barrido de 0 a 180 grados, entonces se determina un valor de retardo óptimo a partir de los recuentos de errores, como se indica mediante el bloque 516. Como se muestra en la figura 6, se puede usar un histograma 600 que comprende los puntos 602 para determinar el valor de retardo óptimo. Cada punto 602 representa un valor de retardo y un recuento de errores correspondiente. En la figura 6, la señal de DQ 402 ilustrativa se muestra superpuesta en el histograma 600. El valor de retardo óptimo se puede determinar a partir del recuento de errores más bajo. El recuento de errores más bajo se puede denominar recuento de errores "de aprobación" para las pruebas de memoria. La lógica de recuento de errores 216 (la figura 2) puede contribuir a estas funciones. En consecuencia, el sistema de procesador 200 o el procesador 202, como se configura con la lógica de recuento de errores 216, puede servir como unos medios para realizar estas funciones.
En algunos casos, puede no haber más de un valor de retardo que dé como resultado un número de errores mínimo o que sea el más bajo. Sin embargo, la figura 6 representa un caso o ejemplo en el que varios valores de retardo dan como resultado un número de errores mínimo o que sea el más bajo. En este ejemplo, entre todas las pruebas de memoria que se realizaron, el número más bajo de errores tuvo lugar en las pruebas de memoria realizadas usando unos valores de retardo correspondientes de 40, 50, 60, 70, 80, 120, 130, 140 y 150 grados. El valor de retardo óptimo se selecciona de entre estos valores de retardo seleccionando un punto medio entre un intervalo de valores de retardo. Por ejemplo, se pueden seleccionar 60 grados como el valor de retardo óptimo debido a que 60 es el punto medio entre 40 y 80.
Se puede observar que, en este ejemplo, hay dos intervalos de valores de retardo que dan como resultado un número de errores mínimo o que sea el más bajo. Es decir, hay dos intervalos de aprobación: 40-80 grados y 120-150 grados. En el caso de que las pruebas de memoria den como resultado dos o más de tales intervalos de aprobación de los valores de retardo, entonces el valor de retardo óptimo se puede seleccionar de entre el más grande de los intervalos de aprobación. En el ejemplo mostrado en la figura 6, un valor de retardo óptimo se puede seleccionar de entre el intervalo de aprobación de 40-80 en lugar del intervalo de aprobación de 120-150, debido a que el intervalo de aprobación de 40-80 es más grande que el intervalo de aprobación de 120-150.
Volviendo a la figura 5, como se indica mediante el bloque 518, la cantidad de tiempo que se ha de retardar la señal de DQS con respecto a la señal de DQ se establece al valor de retardo óptimo. El procesador 202 puede dotar del valor de retardo óptimo al controlador de memoria 220, y el controlador de memoria 220 puede usar el valor de retardo óptimo, de la forma descrita anteriormente con respecto al bloque 504. En consecuencia, el controlador de memoria 220 retarda la señal de DQS con respecto a la señal de DQ una cantidad de tiempo representada por el valor de retardo óptimo, produciendo de ese modo el sesgo de fase óptimo entre las señales de DQS y de DQ. Cuando el PCD 100 u otro dispositivo comienza o vuelve al modo de misión posteriormente, el controlador de memoria 220 retarda la señal de DQS en consecuencia en las operaciones de escritura en modo de misión. Además, antes de entrar en un modo de misión, la impedancia de las unidades de excitación 306 se establece a un valor de impedancia que restablece el equilibrado de impedancia en el canal de señales de DQ.
Como se ilustra en la figura 7, un ejemplo de una forma en la que se puede realizar o implementar la operación indicada por el bloque 502 (la figura 5) implica determinar cómo responde el recuento de errores a un cambio en la impedancia de unidad de excitación y seleccionar la impedancia de unidad de excitación en consecuencia, de tal modo que se deteriora el equilibrado de impedancia. Es decir, se determina si una impedancia de unidad de excitación más alta da como resultado un recuento de errores más alto que una impedancia de unidad de excitación más baja.
Como se indica mediante el bloque 702, el valor de retardo se inicializa o se establece (como se ha descrito anteriormente con respecto al bloque 504) a un valor que es probable que dé como resultado un recuento de errores bajo (aunque no necesariamente cero o mínimo) cuando se realiza una prueba de memoria. Por ejemplo, el valor de retardo se puede establecer a 90 grados. Como se ha descrito anteriormente con respecto a la figura 4, es probable que muestrear la señal de DQ 404 ilustrativa, que no está sujeta a ruido de anillamiento de retorno, diafonía u otras condiciones adversas, cerca del centro 406 del ojo dé como resultado un recuento de errores bajo.
Como se indica mediante el bloque 704, la impedancia de unidad de excitación se establece (como se ha descrito anteriormente con respecto al bloque 502) a un valor bajo. Como se usa en esta descripción, las expresiones "valor bajo" y "valor alto" no tienen significado alguno que no sea indicar un valor relativo de uno con respecto a otro; el valor alto es más alto que el valor bajo.
Como se indica mediante el bloque 706, un patrón de datos de prueba se escribe en la SDRAM 218. El patrón de datos de prueba puede comprender patrones de datos cortos del tipo usado convencionalmente para probar sistemas de memoria. Como se indica mediante el bloque 708, se leen de vuelta las mismas ubicaciones de memoria en las que se escribió el patrón de prueba. Como se indica mediante el bloque 710, se determina un recuento de errores (el "recuento de errores A").
Como se indica mediante el bloque 712, la impedancia de unidad de excitación se establece entonces (como se ha descrito anteriormente con respecto al bloque 502) a un valor alto. Los bloques 714, 716 y 718 pueden ser iguales que los bloques 706, 708 y 710, respectivamente. Por lo tanto, un patrón de datos de prueba se escribe en ubicaciones de memoria en la SDRAM 218, las ubicaciones de memoria se leen y se determina un recuento de errores ("recuento de errores B").
Como se indica mediante el bloque 720, se determina si el recuento de errores A es mayor que el recuento de errores B. Si se determina (el bloque 720) que el recuento de errores A es mayor que el recuento de errores B, entonces se selecciona el valor alto, como se indica mediante el bloque 722. Posteriormente, en el bloque 502 (la figura 5), la impedancia de unidad de excitación se establece al valor alto seleccionado. Si se determina (el bloque 720) que el recuento de errores A no es mayor que el recuento de errores B, entonces se selecciona el valor bajo, como se indica mediante el bloque 724. Posteriormente, en el bloque 502 (la figura 5), la impedancia de unidad de excitación se establece al valor bajo seleccionado. El método descrito anteriormente con respecto a la figura 7 pretende ser solo un ejemplo de cómo se puede determinar la forma en la que el recuento de errores responde a cambios, es decir, aumenta y disminuye, en la impedancia de unidad de excitación. A un experto en la materia se le pueden ocurrir fácilmente otros, a la vista de estas descripciones y ejemplos.

Claims (13)

REIVINDICACIONES
1. Un método para controlar una calibración de sistema de memoria, que comprende:
ajustar un circuito de excitación de señal de datos para deteriorar el equilibrado de impedancia en un canal de señales de datos durante una pluralidad de pruebas de memoria de nivel de sistema;
realizar la pluralidad de pruebas de memoria de nivel de sistema usando un controlador de memoria (220) y una memoria de acceso aleatorio dinámica síncrona, SDRAM (218), correspondiendo cada prueba de memoria a uno de una pluralidad de valores de sesgo de fase entre una señal estroboscópica de datos (DQS) y una señal de datos (DQ) en el canal de señales de datos, comprendiendo cada prueba de memoria:
establecer un retardo de señal estroboscópica de datos para el controlador de memoria para que se corresponda con uno de la pluralidad de valores de sesgo de fase;
escribir una pluralidad de palabras de datos en la SDRAM (218) a través del canal de señales de datos; leer la pluralidad de palabras de datos desde la SDRAM (218) a través del canal de señales de datos; y determinar un recuento de errores para la prueba de memoria, indicando el recuento de errores unos errores de desajuste de datos entre la pluralidad de palabras de datos leídas desde la SDRAM (218) y la pluralidad de palabras de datos escritas en la SDRAM (218);
determinar, siguiendo a la pluralidad de pruebas de memoria de nivel de sistema, un valor de sesgo de fase óptimo correspondiente a un recuento de errores que es el más bajo entre la pluralidad de pruebas de memoria de nivel de sistema; y
establecer el retardo de señal estroboscópica de datos para el controlador de memoria (220) para que se corresponda con el valor de sesgo de fase óptimo.
2. El método de la reivindicación 1, en donde la pluralidad de palabras de datos simula un tráfico de datos en modo normal.
3. El método de la reivindicación 2, en donde el tráfico de datos en modo normal se basa en una o más aplicaciones.
4. El método de la reivindicación 1, en donde ajustar un circuito de excitación de señal de datos comprende:
determinar si un recuento de errores de prueba de memoria más alto corresponde a una impedancia de circuito de excitación de señal de datos más alta o a una impedancia de circuito de excitación de señal de datos más baja; aumentar la impedancia de circuito de excitación de señal de datos en respuesta a una determinación de que un recuento de errores de prueba de memoria más alto corresponde a una impedancia de circuito de excitación de señal de datos más alta; y
disminuir la impedancia de circuito de excitación de señal de datos en respuesta a una determinación de que un recuento de errores de prueba de memoria más alto corresponde a una impedancia de circuito de excitación de señal de datos más baja.
5. El método de la reivindicación 1, en donde determinar un valor de sesgo de fase óptimo correspondiente a un recuento de errores que es el más bajo comprende:
determinar una pluralidad de intervalos de aprobación de prueba de memoria; y
seleccionar el valor de sesgo de fase óptimo de entre un intervalo de aprobación de prueba de memoria que es el más grande de la pluralidad de intervalos de aprobación de prueba de memoria.
6. El método de la reivindicación 1, en donde la SDRAM comprende una SDRAM de tasa de datos doble, DDR SDRAM.
7. El método de la reivindicación 1, en donde el sistema de memoria se incluye en un dispositivo informático portátil, PCD.
8. El método de la reivindicación 7, en donde el PCD comprende al menos uno de entre un teléfono móvil, un asistente digital personal, un dispositivo de radiobúsqueda, un teléfono inteligente, un dispositivo de navegación y un ordenador de mano con una conexión o enlace inalámbrico.
9. El método de la reivindicación 7, en donde ajustar el circuito de excitación de señal de datos, realizar la pluralidad de pruebas de memoria de nivel de sistema, determinar un valor de sesgo de fase óptimo y establecer el retardo de señal estroboscópica de datos se realizan durante el arranque del PCD.
10. El método de la reivindicación 7, en donde ajustar el circuito de excitación de señal de datos, realizar la pluralidad de pruebas de memoria de nivel de sistema, determinar un valor de sesgo de fase óptimo y establecer el retardo de señal estroboscópica de datos se realizan durante la fabricación del PCD.
11. Un sistema (200) para controlar una calibración de señal de sistema de memoria, que comprende:
unos medios para ajustar un circuito de excitación de señal de datos para deteriorar el equilibrado de impedancia en un canal de señales de datos durante una pluralidad de pruebas de memoria de nivel de sistema;
unos medios para realizar la pluralidad de pruebas de memoria de nivel de sistema usando un controlador de memoria (220) y una memoria de acceso aleatorio dinámica síncrona, SDRAM (218), correspondiendo cada prueba de memoria a uno de una pluralidad de valores de sesgo de fase entre una señal estroboscópica de datos (DQS) y una señal de datos (DQ) en el canal de señales de datos, comprendiendo los medios para realizar la pluralidad de pruebas de memoria de nivel de sistema, para cada prueba de memoria:
unos medios para establecer un retardo de señal estroboscópica de datos para el controlador de memoria para que se corresponda con uno de la pluralidad de los valores de sesgo de fase;
unos medios para escribir una pluralidad de palabras de datos en la SDRAM (218) a través del canal de señales de datos;
unos medios para leer la pluralidad de palabras de datos desde la SDRAM (218) a través del canal de señales de datos; y
unos medios para determinar un recuento de errores para la prueba de memoria, indicando el recuento de errores unos errores de desajuste de datos entre la pluralidad de palabras de datos leídas desde la SDRAM (218) y la pluralidad de palabras de datos escritas en la SDRAM (218);
unos medios para determinar, siguiendo a la pluralidad de pruebas de memoria de nivel de sistema, un valor de sesgo de fase óptimo correspondiente a un recuento de errores que es el más bajo entre la pluralidad de pruebas de memoria de nivel de sistema; y
unos medios para establecer el retardo de señal estroboscópica de datos para el controlador de memoria (220) para que se corresponda con el valor de sesgo de fase óptimo.
12. El sistema (200) de acuerdo con la reivindicación 11, en donde el sistema comprende dicho sistema de memoria que comprende dicho controlador de memoria (220) y dicha memoria de acceso aleatorio dinámica síncrona, SDRAM (218), y uno o más procesadores (202), en donde dichos medios para ajustar un circuito de excitación de señal de datos para deteriorar el equilibrado de impedancia en un canal de señales de datos durante una pluralidad de pruebas de memoria de nivel de sistema y dichos medios para realizar la pluralidad de pruebas de memoria de nivel de sistema son proporcionados por dichos uno o más procesadores.
13. Un programa informático que comprende instrucciones de programa que, cuando el programa es ejecutado por un ordenador, hacen que el ordenador lleve a cabo todas las etapas del método de una cualquiera de las reivindicaciones 1 a 10.
ES18724395T 2017-07-03 2018-04-24 Calibración de señal estroboscópica de datos de memoria de acceso aleatorio dinámica síncrona de tasa de datos doble ("DDR SDRAM") Active ES2904933T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/640,855 US10115480B1 (en) 2017-07-03 2017-07-03 Double data rate synchronous dynamic random access memory (“DDR SDRAM”) data strobe signal calibration
PCT/US2018/029159 WO2019009942A1 (en) 2017-07-03 2018-04-24 CALIBRATION OF SYNCHRONOUS DATA SYNCHRONOUS DYNAMIC RANDOM DATA SAMPLING SIGNAL CALIBRATION ("DDR SDRAM")

Publications (1)

Publication Number Publication Date
ES2904933T3 true ES2904933T3 (es) 2022-04-06

Family

ID=62152655

Family Applications (1)

Application Number Title Priority Date Filing Date
ES18724395T Active ES2904933T3 (es) 2017-07-03 2018-04-24 Calibración de señal estroboscópica de datos de memoria de acceso aleatorio dinámica síncrona de tasa de datos doble ("DDR SDRAM")

Country Status (7)

Country Link
US (1) US10115480B1 (es)
EP (1) EP3649645B1 (es)
CN (1) CN110800060B (es)
ES (1) ES2904933T3 (es)
SG (1) SG11201910712RA (es)
TW (1) TWI781169B (es)
WO (1) WO2019009942A1 (es)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10580476B2 (en) * 2018-01-11 2020-03-03 International Business Machines Corporation Simulating a single data rate (SDR) mode on a dual data rate (DDR) memory controller for calibrating DDR memory coarse alignment
CN113450866B (zh) 2020-03-27 2022-04-12 长鑫存储技术有限公司 存储器测试方法
CN116324993A (zh) * 2020-11-17 2023-06-23 瑞萨电子美国有限公司 存储器接口应用中用于电源终端的低功率输出驱动器
JP2022146494A (ja) * 2021-03-22 2022-10-05 キオクシア株式会社 半導体記憶装置およびメモリシステム
CN113064844B (zh) * 2021-04-27 2022-10-28 长江存储科技有限责任公司 存储器写入的训练方法和系统
CN114020667B (zh) * 2021-10-20 2024-08-06 瑞芯微电子股份有限公司 一种支持ddr自动调节最优信号参数的方法和存储设备
CN114496047B (zh) * 2021-12-29 2023-08-29 深圳市紫光同创电子有限公司 双向数据选通采样信号dqs相位的调整方法及装置
CN117056269B (zh) * 2023-10-11 2024-02-09 芯耀辉科技有限公司 用于并行接口连接的数据对齐方法、计算机设备及介质

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6609167B1 (en) * 1999-03-17 2003-08-19 Adaptec, Inc. Host and device serial communication protocols and communication packet formats
US6137734A (en) 1999-03-30 2000-10-24 Lsi Logic Corporation Computer memory interface having a memory controller that automatically adjusts the timing of memory interface signals
US6671211B2 (en) * 2001-04-17 2003-12-30 International Business Machines Corporation Data strobe gating for source synchronous communications interface
JP2003059298A (ja) 2001-08-09 2003-02-28 Mitsubishi Electric Corp 半導体記憶装置
US6807650B2 (en) 2002-06-03 2004-10-19 International Business Machines Corporation DDR-II driver impedance adjustment control algorithm and interface circuits
US7404116B2 (en) 2002-11-13 2008-07-22 Etron Technology, Inc. Semiconductor integrated circuit with full-speed data transition scheme for DDR SDRAM at internally doubled clock testing application
AU2003255533A1 (en) 2003-07-15 2005-02-25 Agilent Technologies, Inc. Integrated circuit with bit error test capability
US6940768B2 (en) * 2003-11-04 2005-09-06 Agere Systems Inc. Programmable data strobe offset with DLL for double data rate (DDR) RAM memory
JP4477450B2 (ja) * 2004-08-12 2010-06-09 株式会社アドバンテスト タイミング発生器、試験装置、及びスキュー調整方法
TWI306343B (en) * 2005-09-01 2009-02-11 Via Tech Inc Bus receiver and method of deskewing bus signals
US8121237B2 (en) 2006-03-16 2012-02-21 Rambus Inc. Signaling system with adaptive timing calibration
US7698589B2 (en) * 2006-03-21 2010-04-13 Mediatek Inc. Memory controller and device with data strobe calibration
KR100832021B1 (ko) * 2006-06-29 2008-05-26 주식회사 하이닉스반도체 반도체 메모리 소자 및 그 구동방법
JP2010086246A (ja) * 2008-09-30 2010-04-15 Nec Electronics Corp メモリインターフェース及びメモリインターフェースの動作方法
JP5070607B2 (ja) 2009-09-14 2012-11-14 エヌイーシーコンピュータテクノ株式会社 インピーダンス調整装置、インピーダンス調整方法
TWI404339B (zh) * 2009-11-25 2013-08-01 Mstar Semiconductor Inc 記憶體信號相位調整方法
US20130318393A1 (en) * 2011-11-15 2013-11-28 Ocz Technology Group Inc. Solid-state mass storage device and methods of operation
US8692600B1 (en) 2013-01-09 2014-04-08 International Business Machines Corporation Multi-protocol driver slew rate calibration system for calibration slew rate control signal values
US20140368667A1 (en) * 2013-06-14 2014-12-18 Intel Corporation Apparatus, system, and method for n-phase data mapping
US9218575B2 (en) 2013-09-04 2015-12-22 Intel Corporation Periodic training for unmatched signal receiver
JP2018049677A (ja) * 2016-09-23 2018-03-29 株式会社東芝 磁気ディスク装置、調整方法、及び製造方法
US10692566B2 (en) * 2016-11-18 2020-06-23 Samsung Electronics Co., Ltd. Interface method of memory system, interface circuitry and memory module

Also Published As

Publication number Publication date
EP3649645B1 (en) 2021-12-29
US10115480B1 (en) 2018-10-30
CN110800060B (zh) 2021-04-23
CN110800060A (zh) 2020-02-14
EP3649645A1 (en) 2020-05-13
TWI781169B (zh) 2022-10-21
SG11201910712RA (en) 2020-01-30
TW201907411A (zh) 2019-02-16
WO2019009942A1 (en) 2019-01-10

Similar Documents

Publication Publication Date Title
ES2904933T3 (es) Calibración de señal estroboscópica de datos de memoria de acceso aleatorio dinámica síncrona de tasa de datos doble ("DDR SDRAM")
US7443741B2 (en) DQS strobe centering (data eye training) method
US9971975B2 (en) Optimal data eye for improved Vref margin
US10482936B2 (en) Signal training for prevention of metastability due to clocking indeterminacy
CN110870010B (zh) 在ddr5 dram中调整到锁存路径的指令延迟
KR102024682B1 (ko) 부정합형 신호 수신기에 대한 주기적 트레이닝
US9021293B2 (en) Methods for operating a memory interface circuit including calibration for CAS latency compensation in a plurality of byte lanes
US7215584B2 (en) Method and/or apparatus for training DQS strobe gating
US20120284576A1 (en) Hardware stimulus engine for memory receive and transmit signals
US9477259B2 (en) Calibration of clock signal for data transmission
US8938578B2 (en) Memory device with multi-mode deserializer
US10734983B1 (en) Duty cycle correction with read and write calibration
US20090245010A1 (en) Data Driver Circuit for a Dynamic Random Access Memory (DRAM) Controller or the Like and Method Therefor
US8520455B2 (en) Method and apparatus for training a DLL in a memory subsystem
US9990973B1 (en) Systems and methods using neighboring sample points in memory subsystem calibration
US20140029364A1 (en) Bit error testing and training in double data rate (ddr) memory system
CN108009372B (zh) 一种ddr内存虚拟写电平校准响应的方法
US20090244996A1 (en) Circuit Using a Shared Delay Locked Loop (DLL) and Method Therefor
US20090168563A1 (en) Apparatus, system, and method for bitwise deskewing
US7978546B2 (en) Memory controller, PCB, computer system and memory adjusting method adjusting a memory output signal characteristic
US9928890B2 (en) System and method for calibrating memory using credit-based segmentation control
US10991403B2 (en) Memory calibration with end point replay
US10902896B2 (en) Memory circuit and method thereof
US9691470B1 (en) Apparatus and method for restricted range memory calibration
US9891853B1 (en) Memory calibration abort