CALIBRACIÓN DE MEMORIA ADAPTIVA UTILIZANDO DEPÓSITOS
CAMPO DE LA INVENCIÓN
La presente descripción se refiere a sistemas y técnicas para calibrar un circuito integrado a un componente electrónico.
ANTECEDENTES DE LA INVENCIÓN
Los circuitos integrados han revolucionado la industria de la electrónica al habilitar nuevas aplicaciones que no eran posibles con dispositivos discretos. La integración permite que los circuitos complejos que constan de millones de componentes electrónicos sean empaquetados en un chip sencillo de material semiconductor. Además, la integración ofrece las ventajas de fabricar cientos de chips en una pastilla de silicio sencilla, el cual reduce tremendamente el costo y aumenta la confiabilidad de cada uno de los circuitos terminados. Los circuitos integrados son ampliamente utilizados hoy en día en dispositivos electrónicos para ejecutar circuitería sofisticada tal como procesadores de aplicación específica y propósito general. Un controlador
integrado en el chip se puede utilizar para conectar en interfaz varios procesadores con componentes fuera de chip, tal como una memoria externa, y similares. Los relojes generados por el controlador se pueden utilizar para tener acceso a estos componentes fuera de chip. Estos relojes deberían operar a una velocidad nominal específica, dentro de una cierta tolerancia permitida, para asegurar que el controlador pueda establecer comunicación con los componentes fuera de chip bajo las peores condiciones de voltaje y temperatura. Debido a los procesos inherentes en el proceso de fabricación de la pastilla de silicio, un conjunto de chips generados a partir de una pastilla sencilla puede caer en un rango de diferentes clasificaciones de velocidad del proceso. Dependiendo de la aplicación, algunos fabricantes se ven forzados a, desechar chips lentos y chips rápidos que están fuera del rango de tolerancia nominal. Esto conduce a grandes cantidades de desecho, lo cual puede resultar muy costoso. En un intento por preservar esas porciones de la pastilla que no producen chips nominales, algunos fabricantes emplean un método de colocación en estante a velocidad, en donde los diversos chips producidos a partir de una pastilla sencilla son probados y colocados en lotes de acuerdo con su velocidad de proceso graduada. Este
método de colocar en lotes los chips de acuerdo con su velocidad consume tiempo y resulta costosa. Se incurre en un costo adicional como resultado de la venta de chips lentos y chips rápidos a precios reducidos. Los retrasos se utilizan para ejecutar la temporización necesaria para asegurar la comunicación libre de error entre el circuito integrado y el componente externo que constituye un dispositivo electrónico. Son una función de muchos factores, incluyendo la velocidad y voltaje del circuito integrado y la velocidad del componente externo. Estos retrasos se pueden determinar, por ejemplo, utilizando un proceso de calibración que prueba dichas comunicaciones y después deriva retrasos de los resultados de prueba. Variaciones en dichos parámetros a través de muchos circuitos integrados y componentes externos pueden resultar en un retraso predeterminado que no es óptimo para un dispositivo electrónico determinado. Sin embargo, no es práctico saber de antemano la velocidad real y el voltaje de cada circuito integrado o la velocidad del componente externo. Por lo tanto, máximo, los fabricantes de chips han tenido que establecer un retraso de programa que funcionará sin error a través de rangos anticipados de dichos parámetros, incluso cuando dichos retrasos predeterminados no serían óptimos para muchos dispositivos electrónicos.
SUMARIO DE LA INVENCIÓN
En un " aspecto de la invención, un dispositivo electrónico comprende un componente electrónico y un circuito integrado configurado para generar un reloj de sistema y un reloj externo que tiene un retraso programable del reloj del sistema, el circuito integrado además está configurado para proveer el reloj externo al componente electrónico, determinar un rango de retraso entre el reloj del sistema y el reloj externo en donde el circuito integrado y el componente electrónico se pueden comunicar, y programar el reloj externo con uno de una pluralidad de valores de retraso predeterminados con base en el rango de retraso. En otro aspecto de la invención, un método para calibrar un circuito integrado a un componente electrónico, el circuito integrado que tiene un reloj de sistema, comprende generar un reloj externo en el circuito integrado, el reloj externo tiene un retraso programable desde el reloj del sistema, el método además comprende proveer un reloj externo desde el circuito integrado al componente electrónico para soportar comunicaciones con el mismo, determinar un rango de retraso entre el reloj del sistema y el reloj externo en donde el circuito integrado y el componente electrónico se pueden comunicar, y programar
el reloj externo con uno de una pluralidad de valores de retraso predeterminados con base en el rango de retraso. En otro aspecto todavía de la invención, un dispositivo electrónico comprende un componente electrónico y un circuito integrado, en donde el circuito integrado incluye medios para generar un reloj de sistema, que comprende medios para generar un reloj externo en el circuito integrado, el reloj externo tiene un retraso programable desde el reloj del sistema, medios para proveer un reloj externo desde el circuito integrado al componente electrónico para soportar comunicaciones con el mismo, medios para determinar un rango de retraso entre el reloj del sistema y el reloj externo en donde el circuito integrado y el componente electrónico se pueden comunicar, y medios para programar el reloj externo con uno de una pluralidad de valores de retraso predeterminados con base en el rango de retraso. En otro aspecto todavía de la invención, un medio legible por computadora incorpora un programa de instrucciones ejecutables por un procesador para realizar un método de calibrar un circuito integrado a un componente electrónico, el circuito integrado incluye un reloj de sistema y un reloj externo que tiene un retraso programable desde el reloj del sistema, el reloj externo es provisto al componente electrónico para soportar comunicaciones con el
mismo, el método comprende determinar un rango de retraso entre el reloj del sistema y el reloj externo en donde el circuito integrado y el componente electrónico se pueden comunicar, y programar el reloj externo con uno de una pluralidad de valores de retraso predeterminados con base en el rango de retraso. Se entenderá que otras modalidades de la presente invención serán fácilmente aparentes para aquellos expertos en la técnica a partir de la siguiente descripción detallada, en donde varias modalidades de la invención se muestran y describen a manera de ilustración. Como se observará, la invención tiene la capacidad para otras modalidades diferentes y sus diversos detalles tienen la capacidad para modificación en varios aspectos, todo sin apartarse del espíritu y alcance de la presente invención. Por consiguiente,- las figuras y descripción detallada se observarán como ilustrativas en naturaleza y no como restrictivas .
BREVE DESCRIPCIÓN DE LAS FIGURAS
Aspectos de la presente invención se ilustran a manera de ejemplo, y no a manera de limitación, en las figuras anexas en donde: La figura 1 es un diagrama en bloques conceptual
que ilustra un ejemplo de un dispositivo electrónico que emplea un circuito integrado; La figura 2 es un diagrama de temporización que ilustra un ejemplo de parámetros de temporización para escribir en memoria fuera de chip; La figura 3 es un diagrama de temporización que ilustra un ejemplo de parámetros de temporización para leer de la memoria fuera de chip; La fígµra. 4 es un diagrama en bloques funcional que ilustra un ejemplo de la operación de un controlador; La figura 5A y la figura 5B son gráficas de barras que muestran los rangos de retraso representativos para un circuito integrado a diferentes voltajes y velocidades; La figura 5C es una gráfica de barras que muestra un rango de retraso dividido en depósitos, de acuerdo con la presente invención; La figura 6 es un diagrama de flujo que ilustra un ejemplo de un algoritmo de calibración que puede servir como un precursor para el algoritmo de calibración adaptiva de la figura 7; y La figura 7 es un diagrama de flujo que ilustra un ejemplo de un algoritmo de calibración adaptiva, de acuerdo con la presente invención.
DESCRIPCIÓN DETALLADA DE LA INVENCIÓN
La descripción detallada a continuación en relación con las figuras anexas se pretende como una descripción de varias modalidades de la presente invención y no pretende representar las únicas modalidades en las cuales se puede practicar la presente invención. La descripción detallada incluye detalles específicos con el fin de proveer n completo entendimiento de la presente invención. Sin embargo, resultará aparente para aquellos expertos en la técnica que la presente invención se puede practicar sin estos detalles específicos. En algunos casos, estructuras bien conocidas y dispositivos se muestran en forma de diagrama en bloques para evitar oscurecer los conceptos de la presente invención. Acrónimos y otra terminología descriptiva se puede utilizar simplemente por conveniencia y claridad y no pretenden limitar el alcance de la invención. En la siguiente descripción detallada, varios aspectos de la presente invención se pueden describir en el contexto de un circuito integrado configurado para ser acoplado a un componente electrónico, tal como un dispositivo de almacenamiento. El circuito integrado puede ser, por ejemplo, un Circuito Integrado de Aplicación Específica (ASIC) que comprende por lo menos un procesador.
El dispositivo de almacenamiento puede, por ejemplo, ser una Memoria de Acceso Aleatorio Dinámica Sincrónica (SDRAM) o dispositivo similar. Aunque estos aspectos inventivos pueden ser muy convenientes para uso con estos componentes, aquellos expertos en la técnica fácilmente apreciarán que estos aspectos inventivos se pueden aplicar para uso en otros dispositivos electrónicos. Por consiguiente, cualquier referencia a un tipo específico de circuito integrado o componente electrónico (por ejemplo, memoria externa o fuera de chip) solo pretende ilustrar los aspectos inventivos, con el entendimiento de que dichos aspectos inventivos tienen un amplio rango de aplicaciones. La figura 1 es un diagrama en bloques conceptual de un dispositivo electrónico 100 que emplea un circuito integrado 102, tal como un ASIC. El circuito integrado 102 puede incluir un microprocesador 104, un Procesador de Señal Digital (DSP) 106, un transceptor 108, una interfaz de entrada/salida (I/O) 110, y una Interfaz de Enlace Externo (EBI) 112. Todos estos componentes se pueden acoplar junto con un Enlace de Sistema Interno (ISB) 114. Se puede utilizar un generador de reloj 116 para generar una señal de reloj de sistema (o "reloj de sistema") para la temporización del sistema. La figura 1 no se debería interpretar para requerir un despliegue físico particular del dispositivo electrónico 100, o los componentes del
mismo. El microprocesador 104 se puede utilizar como una plataforma para correr programas de aplicación que, entre otras cosas, proveen el control de usuario y las funciones de administración del sistema general para el dispositivo electrónico 100. El DSP 106 se puede ejecutar con una capa de software de comunicaciones integradas la cual corre algoritmos de aplicación específica para reducir las demandas de procesamiento en el microprocesador 104. Cualquiera o ambos del microprocesador 104 y el DSP 106 se pueden también utilizar para correr los algoritmos aquí descritos. El transceptor 108 se puede utilizar para proveer acceso a un medio externo, tal como un enlace de radio en el caso de un teléfono inalámbrico, terminal, correo electrónico o dispositivo habilitado por Web, por ejemplo, un Asistente de Datos Personal (PDA) , u otro dispositivo similar. En algunas modalidades, el transceptor 108 puede proveer acceso a Ethernet, línea de módem por cable, fibras ópticas, Línea de Suscriptor Digital (DSL) , Red de Telefonía Pública Conmutada (PSTN) , o cualquier otro medio de comunicaciones. En otras modalidades, el dispositivo electrónico puede estar auto-contenido sin un transceptor para soportar comunicaciones externas. La interfaz I/O 110 se puede utilizar para soportar varias interfaces de usuario. Las interfaces de usuario pueden
incluir un teclado numérico, ratón, pantalla de tacto, altavoz de audio o audífonos, micrófono, cámara y/o similares . El EBI 112 se puede utilizar para proveer acceso entre los componentes en el ISB 114. El EBI 112 puede incluir un controlador 113 que provee una interfaz entre el ISB 114 y los componentes externos al circuito integrado 102, por ejemplo, uno o más componentes fuera de chip, tal como el componente externo 118. La interfaz puede incluir un enlace de reloj 120, un enlace de dirección 122, un enlace de control 124, y un enlace de datos 126. Aunque no se muestra, el EBI 112 también puede proveer una interfaz a una Pantalla de Cristal Líquido (LCD) y/u otros dispositivos de interfaz de usuario. Por lo menos en una modalidad de un dispositivo electrónico 100, el componente externo 118 puede ser memoria, tal como una SDRAM. Alternativamente, el componente externo puede ser un NOR en ráfaga, PSRAM en ráfaga, RAM, ROM, EPROM, EEPROM, VRAM, o cualquier otro componente de memoria o dispositivo, o un arreglo de memoria. En algunos de los casos anteriores, el controlador 113 se puede utilizar para generar una señal de reloj externa (o "reloj externo") y una señal de reloj de retroalimentación (o "reloj de retroalimentación") como una función del reloj de sistema a partir del generador de
reloj 116. El reloj externo puede ser provisto al componente externo 118 sobre el enlace de reloj 120 para leer de, y escribir en el componente externo 118, en lo sucesivo SDRAM 118. El reloj de retroalimentación puede ser utilizado por el controlador 113 para muestrear datos leídos de la SDRAM 118. Un ejemplo de los requerimientos de temporización para escribir a la SDRAM 118 se muestra en la figura 2. El reloj externo, el cual es representado por el reloj externo 204, se puede retrasar del reloj del sistema, el cual es representado por el reloj del sistema 202. Los datos que se van a escribir en SDRAM 118 quedan representados por datos
(o señal de datos) 206, y se pueden liberar en el enlace de datos 120 (ver figura 1) desde el controlador 113 poco tiempo después de la transición del reloj del sistema en el tiempo to- El corto retraso 210 entre la transición del reloj de sistema y t0 se debe a un retraso de propagación del controlador 113. El enlace de datos 120 (ver figura 1) agrega retraso de propagación adicional, ocasionando que los datos 206 lleguen a la entrada a la SDRAM en el tiempo i. Los datos en ,1a entrada para la SDRAM se muestran en la figura 2 con líneas cruzadas en los datos 206. Para asegurar la operación confiable, los datos 206 deben entonces ser estableces en la entrada a la SDRAM 118 durante un breve periodo de tiempo antes de la
transición del reloj externo. Esto se denomina "tiempo de establecimiento mínimo", y se denota en la figura 2 como testabiecimiento • También existe un periodo de tiempo en el que los datos 206 deben permanecer estables después de la transición del reloj externo, es decir, después de testabiecimiento- Esto se denomina el "tiempo de espera mínimo", y se denota en la figura 2 como teSpera- Si los tiempos de establecimiento y espera mínimos no se cumplen, entonces la operación de escritura a la SDRAM no puede ser garantizada. Por lo tanto, fácilmente se puede apreciar en la figura 2 que existe un requerimiento de retraso mínimo entre el reloj de sistema 202 y el reloj externo 204 para cumplir el tiempo de establecimiento mínimo, y un retraso máximo entre los dos para cumplir el tiempo de espera mínimo. El retraso se puede programar, y se puede establecer en cualquier parte entre estos límites, como se muestra en la figura 2 por la porción sombreada 208 del reloj externo 204. Un ejemplo de los requerimientos de temporización para leer de la SDRAM 118 se muestra en la figura 3. Como se explicó anteriormente en relación con la figura 2, el reloj externo 204 se puede retrasar del reloj del sistema 202. El reloj de t retroalimentación 302 también se puede retrasar del reloj del sistema 202 como se muestra en la figura 3. El reloj de retroalimentación 302 se puede utilizar para leer los datos de la SDRAM 118 en el
controlador 113. Los datos 206 se pueden liberar de la SDRAM 118 en el enlace de datos 120 (ver figura 1) poco después de la transición del reloj externo 204 en el tiempo t0. Debido al retraso de propagación de la SDRAM 118 y el enlace de datos 120 (ver figura 1) , los datos 206 llegan a la entrada para el controlador 113 en el tiempo ti. Los datos en la entrada para el controlador 113 (el cual se muestra con líneas cruzadas de datos 206) deben permanecer estables durante un periodo breve de tiempo antes de la transición del reloj de retroalimentación. Este periodo de tiempo queda definido por el tiempo de establecimiento mínimo testabiecimiento del controlador 113. Los datos 206 también deben permanecer estables después de la transición del reloj de retro'ali entación 302 durante un periodo de tiempo definido por el tiempo de espera mínimo teSpera del controlador 113. Una vez que los datos son leídos en el controlador 113 . con la transición del reloj de retroalimentación 302, éstos pueden ser re-muestreados por el reloj del sistema. El proceso de re-muestreo tiene sus propios requerimientos, incluyendo un tiempo de establecimiento mínimo en donde los datos muestreados deben permanecer estables, antes de la siguiente transición del reloj del sistema 202. Por lo tanto, fácilmente se puede apreciar a partir de la figura 3 que existe un requerimiento de retraso mínimo entre el reloj del sistema
202 y el reloj de retroalimentación 302 para cumplir el tiempo de establecimiento mínimo, y un retraso máximo entre los dos para cumplir el tiempo de espera mínimo y tiempos de establecimiento de re-muestreo. El retraso se puede programar en el controlador 113, y se puede establecer en cualquier parte entre estos límites, como se muestra en la figura 3 por medio de la porción sombreada 304. La figura 4 es un diagrama en bloques funcional de una modalidad de un controlador 113. En la modalidad mostrada, el controlador 113 se puede dividir en un controlador sincrónico 402 y un controlador asincrono 404. Esta división es simplemente una preferencia de diseño y aquellos expertos en la técnica fácilmente entenderán que se puede emplear cualquier configuración para realizar las diversas funciones descritas en esta descripción detallada. Los controladores 402 y 404 se pueden configurar para conectar en interfaz el enlace de dirección 122, el enlace de control 124, y el enlace de datos 126 al ISB 114 a través de medios conocidos en la técnica. El controlador 113 se puede utilizar para generar el reloj externo 204 y el reloj de retroalimentación 302. Un multiplexor 408 se puede utilizar para seleccionar el reloj de sistema apropiado 202 dependiendo si los datos 206 están sincronizados fuera del controlador sincrónico o asincrono. En la modalidad mostrada, el multiplexor 408 se
puede establecer para seleccionar el reloj del sistema utilizado por el controlador sincrónico 402 para conectar en interfaz con el SDRAM 118. Una compuerta OR exclusiva 410 se puede utilizar para proveer flexibilidad mediante el aprovisionamiento de un reloj de sistema invertido o no invertido 202 a la salida. Una célula de retraso programable 412 se puede utilizar para establecer el retraso del reloj externo 204. Los controles del multiplexor y la compuerta OR exclusiva, así como el retraso del reloj externo, pueden ser programados, por ejemplo, por software que corre en el microprocesador 104, o a través de otros medios. Un accionador de enlace 414 se puede utilizar para proveer el reloj externo 204 a la SDRAM 118. El reloj de retroalimentación 302 se puede generar a partir del reloj del sistema 202 o el reloj externo 204. Ambos relojes pueden ser provistos a un multiplexor 416 para proveer cierta versatilidad al programador de software. En la modalidad descrita, el reloj de sistema seleccionado se puede proveer a una compuerta OR exclusiva 418. La compuerta OR exclusiva 418 permite que se utilice el reloj invertido o no invertido. Una célula de retraso programable 420 se puede utilizar para retrasar el reloj de retroalimentación. El reloj de retroalimentación 302 puede entonces ser retroalimentado a los controladores
402 y 404. Los controles del multiplexor y la compuerta OR exclusiva, así como el retraso del reloj de retroalimentación, se pueden programar a través de software que corre en el microprocesador 104, o a través de cualquier otro medio. Como se analizó anteriormente, algunas restricciones de' temporización impuestas por el controlador 113 y la SDRAM 118 pueden limitar los posibles escenarios de retraso para los relojes de retroalimentación y externo. El escenario de retraso para el reloj externo, por ejemplo, puede ser restringido por los tiempos de establecimiento y espera mínimos para la SDRAM 118. De manera similar, el escenario de retraso para el reloj de retroalimentación puede ser restringido por los tiempos de establecimiento, espera y establecimiento de re-muestreo mínimos para el controlador 113. Estas restricciones de temporización pueden variar con el proceso, voltaje y temperatura (PVT) . Se puede utilizar un algoritmo de calibración programado en el circuito integrado para programar las células de retraso en una base por dispositivo. Este enfoque puede proveer escenarios de reloj óptimos para cada dispositivo electrónico individual. El algoritmo de calibración puede ser habilitado en el campo cuando el dispositivo electrónico es encendido, o periódicamente durante su operación. El algoritmo de calibración se puede
basar en parte en información estadística programada en memoria. La información estadística se puede derivar de una recopilación de datos obtenidos de la prueba de una muestra suficiente de dispositivos electrónicos en la fábrica. Este proceso se denominará como un "proceso de caracterización". El proceso de caracterización puede comenzar con el cálculo del retraso ("K") entre el reloj de retroalimentación y el reloj externo para una muestra de dispositivos electrónicos. Volviendo a la figura 3, fácilmente se. puede apreciar que el tiempo de establecimiento testablecimiento para el controlador 113 se basa en el retraso de la transición del reloj externo a la transición del reloj de retroalimentación, para la operación de lectura ._ También se puede apreciar que el tiempo de espera teSpera se basa en el retraso de la transición del -reloj de retroalimentación a la siguiente transición del reloj externo. Por consiguiente, si el retraso entre el reloj externo y el reloj de retroalimentación se reduce, el tiempo de establecimiento testabiecimiento disminuye y el tiempo de espera teSpera aumenta. Por el contrario, si el retraso entre el reloj externo y el reloj de retroalimentación aumenta, el tiempo de establecimiento testabiecimiento aumenta y el tiempo de espera tespera disminuye. Por lo tanto, el paso inicial del proceso de caracterización puede ser para calcular un retraso entre
el reloj de retroalimentación y el reloj externo que satisfaga los tiempos de establecimiento y espera mínimos en el peor caso del controlador 113 para la muestra de dispositivos electrónicos. Asumiendo que el retraso entre el dispositivo de reloj de retroalimentación y externo se establece para satisfacer los tiempos de establecimiento y espera mínimos del controlador durante la operación de lectura, entonces la falla o éxito de una operación de lectura dependerá completamente del hecho si el tiempo de establecimiento de re-muestreo mínimo testabiec?miento es satisfecho. Refiriéndose a la figura 3, el tiempo de establecimiento de re-muestreo tiempo de establecimiento testabiecimiento es muy prolongado cuando el retraso entre el reloj del sistema y el reloj de retroalimentación es pequeño. Sin embargo, conforme el retraso entre los dos relojes se incrementa, el tiempo de establecimiento de re-muestreo testabiecimiento disminuye hasta que alcanza el tiempo de establecimiento de re-muestreo mínimo testabiecimiento • Esto es el "retraso máximo" entre el reloj del sistema y el reloj de retroalimentación en donde la operación de lectura puede ser garantizada. Volviendo a la figura 2, el éxito o falla de una operación de escritura dependerá de dos parámetros de temporización: el tiempo de establecimiento mínimo testabiecimiento y el tiempo de espera mínimo tespera para
escribir a la SDRAM 118. Sin embargo, como un asunto práctico, el tiempo de espera mínimo tespera normalmente no es un factor limitante. Esto se debe a que el tiempo de espera es aproximadamente igual al periodo de reloj menos el tiempo de establecimiento testablecimiento, el cual es mucho más prolongado que el tiempo de espera mínimo teSpera- Por consiguiente, el tiempo de establecimiento mínimo testabiecimiento de la SDRAM 118 determinará el "retraso mínimo" entre el reloj del sistema y el reloj externo (o la retroalimentación) en donde se puede garantizar la operación de escritura. Durante el proceso de caracterización, se puede realizar un procedimiento de prueba en cada dispositivo electrónico en la muestra para determinar un rango de valores de retraso entre el reloj del sistema y el reloj de retroalimentación en donde el controlador 113 puede escribir en y leer de la SDRAM 118. Este rango es un rango continuo delimitado por un "retraso máximo" establecido por el tiempo de establecimiento de re-muestreo mínimo testabiecimiento del controlador 113 y un "retraso mínimo" establecido por el tiempo de establecimiento mínimo testabiecimiento de la SDRAM 118. El procedimiento de prueba puede involucrar la programación del retraso calculado entre el reloj de retroalimentación y el reloj externo en las células de retraso programables del controlador 113
para cada uno de los dispositivos electrónicos bajo prueba. A continuación, el rango de sintonización de las células de retraso programable para cada dispositivo electrónico puede ser barrido a través de todo el rango de sintonización, mientras se mantiene el retraso entre el reloj de retroalimentación y externo. De manera más específica, para cada dispositivo electrónico, la célula de retraso programable 420 para el reloj de retroalimentación se puede establecer a retraso cero y la célula de retraso programable 412 para el reloj externo se puede establecer a K. El retraso de las células de retraso programable se puede entonces aumentar de forma incremental conjuntamente. Para cada retraso incremental, el controlador 113 lee de y escribe en la SDRAM 118, y después clasifica cada intento de lectura y escritura como una falla o éxito dependiendo del resultado. Como un asunto práctico, puede haber variaciones en la velocidad de circuitos integrados específicos y en la velocidad de las SDRAM que pueden efectuar los retrasos óptimos de reloj externo y reloj de retroalimentación para un dispositivo electrónico específico. Por ejemplo, las figuras 5A y 5B muestran los resultados del procedimiento de prueba de dos dispositivos electrónicos diferentes de la muestra durante el proceso de caracterización. En cada una de las figuras 5A y 5B, cada gráfica de barras representa
un rango de retrasos de reloj de retroalimentación para el cual se puede operar el dispositivo electrónico respectivo. Como resulta evidente, diferencias en frecuencia (es decir, velocidad del reloj ) del circuito integrado pueden producir requerimientos de retraso de reloj de retroalimentación significativamente diferentes. Aunque el retraso de reloj externo se muestra en cada una de las figuras 5A y 5B, los resultados alternativamente podrían ser presentados para el retraso de reloj externo, debido a que existe una relación conocida entre el reloj externo y el reloj de retroalimentación en la modalidad ilustrativa. Refiriéndose a la figura 5A, el procedimiento de prueba para un dispositivo electrónico durante el proceso de caracterización "•' se puede iniciar estableciendo un voltaje óptimo para el dispositivo electrónico. Entonces, el retraso del reloj de retroalimentación se configura a cero (i-fb=0) , donde nfb es el valor digital programado en la célula de retraso para el reloj de retroalimentación, y el retraso de reloj externo se configura a
, donde next es el valor digital programado en la célula de retraso para el reloj externo. Bajo estas condiciones, los datos son escritos a la SDRAM y después leídos de la SDRAM. Si los datos leídos son válidos, es decir, no ocurrió error, se registra un "pase" para el valor de n. De lo contrario, se registra una "falla" para el valor de n . Entonces el valor
de n es incrementado, por ejemplo, n = 1 , mientras que el voltaje y la frecuencia permanecen sin cambios. Los pasos escritura, lectura y registro de pase/falla son entonces ejecutados para la nueva n . Esto continúa hasta que n = 31, el cual es el valor máximo. Los resultados, por ejemplo, se muestran en la gráfica de barras de la figura 5A. El área sombreada de la gráfica de barras representa valores de pase, y se extiende de alrededor de n = 1 a aproximadamente n = 28. Los valores que fallan caen por debajo de n = 1 o por encima de n = 28. El "retraso mínimo" entre el reloj del sistema y. el reloj de retroalimentación se pueden denominar como el valor de pase más bajo (LPV) y el "retraso máximo" entre el reloj del sistema y el reloj de retroalimentación se puede denominar como el valor de pase más alto (HPV) . El mismo procedimiento de prueba se puede realizar en un segundo dispositivo electrónico en el voltaje óptimo. En este caso, el circuito integrado en el segundo dispositivo .electrónico es más rápido que el primero. Los resultados se muestran en la gráfica de barras de la figura 5B.- El área sombreada de la gráfica de barras representa valores de pase, y se extiende desde alrededor de n = 4 a aproximadamente n = 31. Los valores que fallan caen por debajo de n = 4 o por arriba de n = 31. Al comparar los resultados del primer y segundo dispositivos
electrónicos de la figura 5A y la figura 5B, queda claro que los diversos escenarios de retraso de reloj entre el reloj de sistema y el reloj de retroalimentación para el segundo electrónico, con el circuito integrado más rápido, no funcionaría para el primer dispositivo electrónico, con el circuito integrado más lento. El proceso de caracterización se puede ejecutar sobre muchos dispositivos electrónicos para llegar a una cantidad más grande de soluciones de retraso de reloj de retroalimentación. Estos datos se pueden utilizar para determinar un rango de retraso para valores para diferentes clasificaciones- de dispositivos electrónicos. Estas clasificaciones se denominan como "depósitos" y se basan en la velocidad del circuito integrado y SDRAM para los dispositivos electrónicos. Cada depósito puede representar una combinación de dispositivos probados. En la modalidad ilustrativa, se definen cuatro depósitos que representan combinaciones de circuito integrado y SDRAM, de la siguiente forma: (1) circuito integrado lento, SDRAM rápida; (2) circuito integrado nominal/lento, SDRAM lenta; (3) circuito integrado nominal/rápido, SDRAM rápida; y (4) circuito integrado nominal/rápido, SDRAM lenta. Por supuesto, se podrían definir otras combinaciones, y se podría definir una cantidad mayor o menor de depósitos. La prueba de una muestra lo suficientemente
grande de dispositivos electrónicos durante el proceso de caracterización puede producir una distribución de valores de retraso para cada combinación de circuito integrado y SDRAM. A partir de dichas distribuciones se pueden definir los depósitos. Por supuesto, existen numerosos enfoques estadísticos conocidos que se podrían aplicar a datos de prueba para determinar el ancho de los depósitos (es decir, un rango de valores de retraso entre el reloj de sistema y el reloj de retroalimentación) . En los casos donde existen insuficientes datos de prueba, se podría utilizar la extrapolación para calcular el ancho del depósito y los retrasos correspondientes. La figura 5C es una gráfica de barras 550 que muestra los depósitos 1, 2, 3, y 4 donde cada depósito tiene un ancho de depósito definido. El ancho del depósito 1 es aproximadamente 4-8, el ancho del depósito 2 es aproximadamente 8-12, el ancho del depósito 3 es aproximadamente 12-16, y el ancho del depósito 4 es aproximadamente 16-20. Dentro de cada depósito, se puede seleccionar un escenario de retraso entre el reloj del sistema y el reloj de retroalimentación. El escenario de retraso se puede seleccionar desde el centro del depósito. A manera de ejemplo, el dispositivo electrónico que se caracteriza por tener un circuito integrado lento y una SDRAM rápida se puede relegar al depósito 1, y si el
retraso entre el reloj del sistema y el reloj de retroalimentación se establece a 6 (es decir, el valor de retraso en el centro del depósito 1) , el dispositivo electrónico debería operar de manera adecuada. En este caso, el retraso entre el reloj del sistema y el reloj externo podría ser de 6+K. Si K se establece a 4 para lograr un tiempo de establecimiento aproximado de 2ns y tiempo de espera de Ins, entonces se pueden establecer los siguientes escenarios de retraso para cada depósito: Depósito 1 ? Circuito integrado lento, SDRAM rápida: Retraso de reloj de retroalimentación = 6, Retraso de reloj- externo = 10 Depósito 2 ? Circuito integrado nominal/lento, SDRAM lenta: Retraso de ' reloj de retroalimentación = 10, Retraso de reloj externo = 14 Depósito 3 ? Circuito integrado nominal/rápido, SDRAM rápida: Retraso de reloj de retroalimentación = 14, Retraso de reloj externo = 18 Depósito 4 ? Circuito integrado nominal/rápido, SDRAM lenta: Retraso de reloj de retroalimentación = 18, Retraso de reloj externo = 22. Los escenarios de reloj determinados durante el proceso de caracterización pueden ser utilizados por un
algoritmo de calibración adaptiva programado en el dispositivo electrónico para establecer el retraso de los relojes de retroalimentación y externo en una base por-dispositivo en el campo. Estos escenarios de reloj y las definiciones de depósito se pueden almacenar en memoria en el dispositivo electrónico, o de otra forma se pueden incluir con el algoritmo de calibración adaptiva. La figura 6 provee un diagrama de flujo 600 que muestra un algoritmo de calibración adaptiva utilizado con un dispositivo electrónico específico, en el campo. Al igual que con todos los otros algoritmos, procesos y métodos aquí descritos, el algoritmo de calibración adaptiva 700 se puede incorporar en software, hardware, microprogramación cableada, o cualquier combinación de los mismos. El algoritmo de calibración adaptiva 600 es similar a aquel descrito anteriormente para determinar las gráficas de barras de la figura 5A y 5B. El algoritmo de calibración adaptiva 600 se .puede correr al primer inicio del dispositivo electrónico 100. El algoritmo de calibración adaptiva 600 también se puede correr en inicios posteriores, de manera aleatoria, periódica o en respuesta a una variación a una condición detectada, por ejemplo, voltaje, temperatura o velocidad. En este ejemplo, el algoritmo de calibración adaptiva inicialmente establece el retraso entre el reloj
del sistema y la retroalimentación a cero (nfiyO ) , y el retraso entre el reloj del sistema y el reloj externo a K next=K) en el paso 604. El paso 606 prueba si el reloj de retroalimentación ha sido barrido a través de todo el rango de sintonización. Esto se puede lograr determinando si nfb es mayor que 31. Asumiendo que el retraso del reloj de retroalimentación no ha sido barrido a través de todo el rango de sintonización, en el paso 606, el proceso 600 continúa con el paso 608, donde el circuito integrado 102 escribe datos de prueba para la SDRAM 118. El proceso 600 entonces continúa con el paso 610, donde el circuito integrado 102 lee los datos de prueba de la SDRAM 118. Los datos de prueba que se leen se comparan con aquellos que se escribieron. Si en el paso 612 los datos de lectura son válidos (es decir, correctos) , entonces el proceso 600 continúa con el paso 614 y se observa una condición de "pase" para la operación en los escenarios de reloj externo y de retroalimentación. Si los datos de lectura no coincidieron con aquellos que se escribieron, entonces la prueba falló y se registra una condición de "falla" para los escenarios de reloj externo y de retroalimentación en el paso 616. En cualquier caso, los valores de retraso de reloj externo y de retroalimentación son incrementados en el paso 618, y el proceso 600 regresa al paso 606. De esta forma, el algoritmo de calibración
adaptiva 600 barre todo el rango de retraso. Una vez completo, el proceso 600 continúa con el paso 620 donde se determinan el LPV y HPV para el dispositivo electrónico 100. Una vez que se conocen los LPV y HPV, el algoritmo de calibración adaptiva 700 se puede utilizar para determinar los escenarios de reloj finales. El algoritmo de calibración adaptiva 700 ejecuta pruebas que se basan en principios conocidos de las relaciones entre el HPV, LPV y . velocidades de circuitos integrados y dispositivos de memoria, conforme a lo reflejado en las definiciones de depósito antes analizadas. En el paso 702 se obtienen el LPV y HPV para el dispositivo electrónico 100. Aunque la modalidad ilustrativa determina el LPV y HPV utilizando el proceso de la figura 6, el algoritmo de calibración adaptiva no requiere que el LPV y HPV para el dispositivo electrónico 100 sean determinados por el proceso de la figura 6. Es posible que los valores LPV y HPV puedan ser determinados de otras formas. El LPV y HPV se utilizan para determinar cuál depósito es apropiado para el dispositivo electrónico 100, y por lo tanto, cuál escenario de retraso es apropiado para el dispositivo electrónico 100. Esto se logra probando el LPV y HPV contra todo el rango de sintonización (es decir, nfb es barrido de 0-31) .
En el paso 704, se toma una determinación respecto a si el HPV es mayor que, o igual a 31. Si la prueba realizada en el paso 704 fue falsa, entonces el proceso continúa ?ron el paso 706, donde se toma una determinación respecto a si el LPV es o no menor que, o igual al 0. Si LPV es mayor que, o igual a 0, entonces el dispositivo electrónico 100 pertenece al depósito 1, del paso 708. Si el PLV no es menor que, o igual a 0, entonces el dispositivo electrónico 100 pertenece al depósito 2, del paso 710. Si en el paso 704 el HPV fue mayor que, o igual a 31, el algoritmo procede al paso 712, donde se toma una determinación respecto al LPV. Si el LPV es menor que, o igual a 0, entonces el dispositivo electrónico 100 pertenece al depósito 3, del paso 714. De lo contrario, el dispositivo electrónico 100 pertenece al depósito 4 del paso 716. Una vez que se determina el depósito apropiado, el circuito integrado 102 establece los retrasos de reloj con los escenarios predeterminados para ese depósito. En este ejemplo, es el escenario de retraso en el centro del depósito. En el ' paso 720 se obtiene el retraso reloj de retroalimentación, y en el paso 722 se determina el reloj externo a partir del retraso de reloj de retroalimentación y la compensación K. Y en el paso 724, la célula de retraso de reloj externo prqgramable 412 y la célula de retraso de
reloj de retroalimentación programable 420 se establecen utilizando los valores del paso 722. Como resulta evidente, los algoritmos anteriores se podrían haber presentado como determinando el retraso de reloj externo, y a partir del retraso del reloj externo que determina el retraso de reloj de retroalimentación, en donde el retraso de reloj de retroalimentación = retraso de reloj externo - K. Cualquier enfoque será suficiente, debido a que existe una relación definida entre el reloj de retroalimentación y el reloj externo que proporcionan uno, el otro se puede obtener. Volviendo a la figura 7, y utilizando las definiciones de depósito descritas anteriormente con respecto a la figura 5C, si el dispositivo electrónico 100 cae en el depósito 1, el retraso de reloj de retroalimentación = 6 y el retraso de reloj externo = 10; si el dispositivo electrónico 100 cae en el depósito 2, el retraso de reloj de retroalimentación = 10 y el retraso de reloj externo = 14; si el dispositivo electrónico 100 cae en el depósito 3,. el retraso de reloj de retroalimentación = 14 y el retraso de reloj externo = 18; y si el dispositivo electrónico 100 cae en el depósito 4, el retraso de reloj de retroalimentación = 18 y el retraso de reloj externo = 22. Como se mencionó anteriormente, este proceso se
podría corre, no solo al primer inicio, sino después también. Por ejemplo, el algoritmo de calibración adaptiva se podría correr en cada inicio, de manera periódica, aleatoria, o en respuesta a una condición detectada. Dicha condición detectada podría ser la detección de un voltaje, temperatura, velocidad del circuito integrado o componente externo, o un error en la comunicación entre el circuito integrado y el componente externo. Los diversos bloques lógicos ilustrativos, módulos, y circuitos descritos en relación con las modalidades aquí analizadas se pueden ejecutar o realizar con un procesador de propósito general, un procesador de señal digital (DSP) , un circuito integrado de aplicación específica (ASIC) , un arreglo de compuerta programable en campo (FPGA) -u otro componente lógico programable, compuerta discreta -o lógica de transistor, componentes de hardware discretos, o cualquier combinación de los mismos diseñada para realizar las funciones aquí descritas. Un procesador de propósito general puede ser un microprocesador, pero en la alternativa, el procesador puede ser cualquier procesador convencional, controlador, microcontrolador, o máquina de estado. Un procesador también se puede ejecutar como una combinación de componentes de cómputo, por ejemplo, una combinación de un DSP y un microprocesador, una pluralidad de
microprocesadores, uno o más microprocesadores en conjunto con un DSP núcleo, o cualquier otra configuración. Los métodos o algoritmos descritos en relación con las modalidades aquí descritas se pueden incorporar directamente en hardware, en un módulo de software ejecutado por un procesador o en una combinación de los dos. Un módulo de software puede residir en memoria RAM, memoria instantánea, memoria ROM, memoria EPROM, memoria EEPROM, registros, disco duro, un disco removible, un CD-ROM, o cualquier otra forma de medio de almacenamiento conocida en la técnica. Un medio de almacenamiento se puede acoplar al procesador de manera que el procesador puede leer información de, y escribir información en el medio de almacenamiento. En la alternativa, el medio de almacenamiento puede ser parte integral del procesador. El procesador y el medio de almacenamiento pueden residir en un ASIC. La descripción previa de las modalidades descritas se provee para permitir a cualquier experto en la técnica hacer o utilizar la presente invención. Varias modificaciones a estas modalidades serán fácilmente aparentes para aquellos expertos en la técnica, y los principios genéricos aquí definidos se pueden aplicar a otras modalidades sin apartarse del espíritu o alcance de la invención. Por lo tanto, la presente invención no
pretende quedar limitada a las modalidades aquí mostradas sino que se le acordará el alcance más amplio consistente con los principios y características novedosas aquí descritas .