Download Informe - Escuela de Ingeniería Eléctrica
Document related concepts
no text concepts found
Transcript
Universidad de Costa Rica Facultad de Ingeniería Escuela de Ingeniería Eléctrica IE – 0502 Proyecto Eléctrico Herramienta para la Detección de Fallas de Funcionalidad en Microprocesadores Debidas a Sensibilidad a Variaciones en la Frecuencia de Operación Por: Christopher Williams Meneses Ciudad Universitaria Rodrigo Facio Julio del 2005 Herramienta para la Detección de Fallas de Funcionalidad en Microprocesadores Debidas a Sensibilidad a Variaciones en la Frecuencia de Operación Por: Christopher Williams Meneses Sometido a la Escuela de Ingeniería Eléctrica de la Facultad de Ingeniería de la Universidad de Costa Rica como requisito parcial para optar por el grado de: BACHILLER EN INGENIERÍA ELÉCTRICA Aprobado por el Tribunal: _________________________________ Ing. Federico Ruiz Ugalde Profesor Guía _________________________________ Ing. Roberto Rodríguez Rodríguez Profesor lector _________________________________ Ing. Julio Víquez Fernández Lector ii DEDICATORIA A mis padres, guía y ejemplo. iii ÍNDICE GENERAL ÍNDICE DE FIGURAS................................................................................ vi ÍNDICE DE TABLAS................................................................................ viii DERECHOS DE PROPIEDAD INTELECTUAL ..................................... ix NOMENCLATURA ..................................................................................... x RESUMEN ................................................................................................. xiii CAPÍTULO 1: Introducción ........................................................................ 1 1.1 1.2 Formulación del problema ......................................................................................2 Objetivos.................................................................................................................2 1.2.1 Objetivo general..............................................................................................2 1.2.2 Objetivos específicos ......................................................................................3 1.3 Metodología ............................................................................................................4 1.3.1 Investigación...................................................................................................4 1.3.2 Desarrollo del prototipo ..................................................................................4 1.3.3 Documentación y creación de un Manual del Usuario ...................................4 1.4 Alcances y limitaciones ..........................................................................................5 CAPÍTULO 2: Desarrollo teórico................................................................ 7 2.1 Antecedentes Históricos .........................................................................................7 2.1.1 Breve reseña histórica de los computadores ...................................................7 2.1.2 Reseña histórica de la Corporación Intel ........................................................8 2.2 Marco Teórico.......................................................................................................10 2.2.1 Estructura de un computador ........................................................................10 2.2.2 Fabricación de microprocesadores................................................................11 2.2.3 Prueba de microprocesadores .......................................................................13 2.2.4 Generación y distribución de frecuencia en un computador.........................17 CAPÍTULO 3: Investigación, propuestas y solución final........................ 19 3.1 3.2 3.3 Resultados de la investigación preliminar ............................................................19 Soluciones propuestas al problema.......................................................................21 Solución final........................................................................................................23 CAPÍTULO 4: Implementación del prototipo .......................................... 26 4.1 Generador externo de señal...................................................................................26 4.1.1 Señales de programación del «sintetizador de frecuencia» AD9850 DDS y conexiones de I/O digitales...........................................................................................28 iv 4.2 Programa de control del generador externo de señal ............................................30 4.2.1 Flujo del programa de control del generador externo de señal.....................30 4.3 Funcionamiento del prototipo...............................................................................35 CAPÍTULO 5: Prueba del prototipo y análisis de resultados .................. 41 CAPÍTULO 6: Conclusiones y recomendaciones...................................... 50 6.1 6.2 Conclusiones.........................................................................................................50 Recomendaciones .................................................................................................54 BIBLIOGRAFÍA ........................................................................................ 57 v ÍNDICE DE FIGURAS Figura 2.1 - Diagrama básico de un computador..............................................................11 Figura 2.2 - Diagrama básico de la plataforma de prueba. ...............................................14 Figura 2.3 - Diagrama básico de un programa de prueba en SysTest. Fuente confidencial. ..........................................................................................................................................16 Figura 2.4 - Diagrama básico de distribución de reloj en un computador........................17 Figura 3.1 - Esquema básico del circuito en la tarjeta madre utilizado para realizar la inyección externa de la señal que sustituye la del cristal de referencia. ...........................24 Figura 4.1 - Izquierda: vistas lateral y superior de un conector SMA «hembra» empotrado en una tarjeta para componentes electrónicos. Derecha: conector terminal SMA «macho» para cable coaxial (1)...............................................................................27 Figura 4.2 – Diagrama de flujo básico del programa de control de la FGC.....................34 Figura 4.3 - Diagrama de bloques básico que muestra el flujo de información introducida en el GUI hacia el GTF y TPF..........................................................................................37 Figura 3.1 (repetida) - Esquema básico del circuito en la tarjeta madre utilizado para realizar la inyección externa de la señal que sustituye la del cristal de referencia. ..........38 Figura 4.4 - Conexiones de la plataforma de prueba: PC servidor-Centrix/CelbridgeFGC-Tarjeta madre de prueba-Periféricos........................................................................39 Figura 5.1 - Señal senoidal del cristal de referencia del reloj del sistema de la tarjeta madre de prueba capturada en la terminal de entrada Xtal IN del circuito reloj (ver figura 3.1). ...................................................................................................................................43 Figura 5.2 - Señales correspondientes a la señal inyectada en la tarjeta madre para frecuencias teóricas programadas de (columna izquierda, columna derecha): 15-1413MHz, 14,5-13,5-12,5MHz. A la derecha de cada señal se muestra la frecuencia en el instante de la captura. La captura se realizó en la terminal Xtal IN del reloj....................44 Figura 5.3 – Ruido presente en la señal de referencia del reloj del sistema. Izquierda: señal del cristal de referencia, derecha: señal externa proveniente de la FGC. Imágenes obtenidas para un valor de frecuencia de 14,318MHz y con la misma escala en el osciloscopio Tektronix TDS 784C. ...................................................................................45 Figura 5.4 - Gráficas correspondientes a dos pruebas con la plataforma implementando la herramienta de detección de sensibilidad a la frecuencia. Eje X: Frecuencia (KHz), eje Y: Voltaje (_10-4V) Los puntos significan éxito en la prueba, los rectángulos, fallo. ...........47 vi Figura 5.5 - GUI de SysTest aprovechado para recibir los parámetros que el programa de prueba utiliza para implementar la herramienta de prueba por sensibilidad a la frecuencia. El eje x se mantiene estático y no se llama ninguna función en el GTF........49 vii ÍNDICE DE TABLAS Tabla 3.1 - Características básicas de la tarjeta madre Chelan de Intel. Fuente confidencial.......................................................................................................................20 Tabla 3.2 - Comparación de las soluciones propuestas al problema. ...............................22 Tabla 4.1 - Señales de datos y control del AD9850 DDS. Fuente confidencial...............28 Tabla 4.2 - Señales de los flip-flop’s 74HCT574. Fuente confidencial............................29 viii DERECHOS DE PROPIEDAD INTELECTUAL Amphenol es una marca registrada de Amphenol Corporation. Analog Devices es una marca registrada de Analog Devices Incorporated. Intel es una marca registrada de Intel Corporation. Microsoft es una marca registrada de Microsoft Corporation. Pentium es una marca registrada de Intel Corporation. SysTest es una marca registrada de Racal Instruments. Tektronix es una marca registrada de Tektronix Incorporated. Visual Basic es una marca registrada de Microsoft Corporation. ix NOMENCLATURA ATX Advanced Technology Extended (Extendido a tecnología avanzada). Término utilizado para referirse a tarjetas madre, fuentes de poder y otros dispositivos utilizados en las versiones modernas de computadores con ciertas características funcionales y físicas que los diferencian de estándares anteriores. BIOS Basic Input/Output System (Sistema Básico de Entradas y Salidas). Grupo de rutinas almacenadas en memoria que habilitan al computador a arrancar el sistema operativo y comunicar algunos elementos del sistema como unidades de almacenamiento, puertos o periféricos. Bit Unidad más pequeña de la información digital, equivale a un único símbolo que puede tener solamente uno de dos valores. CMOS C omplementary Metal-Oxide-Semiconductor (Metal-Óxido-Semiconductor Complementario). Tecnología de construcción de estructuras básicas para circuitos integrados basados en semiconductores. CPU Central Processing Unit (Unidad Central de Procesamiento). «Procesador» o también «microprocesador». Dispositivo de control y cálculo, base de todo computador electrónico moderno. CI Circuito Integrado. Circuito construido como una sola unidad electrónica que contiene todos los componentes en su interior, invisibles al usuario. CU Control Unit (Unidad de Control). Parte del CPU que controla el flujo de información entre sus componentes. DB Tipo de conectores usados ampliamente en comunicaciones y computación, se pueden encontrar con diferentes cantidades de pines o receptores, cuyo número se especifica x DB9, DB25). comúnmente al final del nombre (por ej.: encontrar con diferentes cantidades de pines o receptores, cuyo número se especifica comúnmente al final del nombre (por ej.: DB9, DB25). FGC Frequency Generator Card (Tarjeta Generadora de Frecuencia). Tarjeta electrónica que funciona como un generador de señal. FSB Front Side Bus. Bus de transmisión de datos el cual es la principal vía de comunicación entre el procesador, la memoria y periféricos de sistema GTF Global Template File (Archivo plantilla global). Archivo adjunto al TPF que contiene la definición de variables, constantes y funciones globales de un programa. GUI Graphical User’s Interface (Interfaz Gráfica con el Usuario). Interfaz que permite el intercambio de información entre un programa en ejecución y su usuario. Hz Hertz. Unidad de frecuencia de un movimiento físico, señal electromagnética, etc., que puede estar precedida por el símbolo de un factor multiplicativo (KHz, MHz, GHz). Ej.: 3GHz = 3X109Hz I/O Input/Ouput (Entrada/Salida). Dispositivo para el intercambio de información electrónica entre componentes de un sistema electrónico o entre éstos y un usuario. nm Nanómetro. Cuando se dice, por ejemplo, «tecnología de 90nm» significa que un circuito integrado fue construido con tecnología que permite que la medida del ancho, del más delgado de los conductores internos, sea 90nm. PC Personal Computer (Computador Personal). QSC Quality Support Center (Centro de Soporte de Calidad). Centro de servicio y soporte a los clientes de la Corporación Intel. xi SMA Sub-miniature version A (Subminiatura versión A). Conectores de 50 Ω para cable coaxial. TPF Test Program File (Archivo de Programa de Prueba). Archivo que contiene el texto del código de un programa de prueba. TTL Transistor-Transistor Logic (Lógica Transistor-Transistor). Designación de la lógica de diseño de un circuito digital formado por transistores bipolares. Cuando un puerto de I/O es designado de esta forma se indica que es para una señal digital en contraste con uno para señal analógica. Unidad En este documento en ciertas ocasiones este término se utiliza para designar un procesador (CPU). V Voltio. Unidad eléctrica de voltaje o diferencia de potencial. Ej.: 5V Ω Ohm. Unidad de impedancia u oposición al flujo de la corriente eléctrica alternante. La impedancia es la combinación de la resistencia y la reactancia, capacitiva e inductiva, de un circuito. 9850 Circuito integrado sintetizador de frecuencia AD9850 DDS, fabricado por Analog Devices. xii RESUMEN El presente documento expone el proceso de investigación, diseño y construcción de prototipo, llevado a cabo para crear y validar una herramienta que le permite a cierta plataforma de prueba de microprocesadores (del Laboratorio del QSC de Componentes Intel de Costa Rica) detectar fallas debidas a sensibilidad a la variación en la frecuencia de operación y definir márgenes de funcionalidad debidos a esta variable. La herramienta habilita a la plataforma para que pueda realizar pruebas a los procesadores operando a diferente frecuencia cada vez. El proyecto se dividió en dos etapas básicas, una de investigación y otra de desarrollo del prototipo, ambas de igual importancia para lograr una culminación exitosa del mismo. Además, se redactó un manual de implementación y operación del prototipo. El prototipo está limitado a una plataforma de prueba para un modelo específico de microprocesador, pero se consideró en el diseño de la herramienta que ésta pueda ser migrada a plataformas para otros modelos de procesador. Todos los objetivos propuestos se cumplieron satisfactoriamente y se probó de forma exhaustiva el prototipo construido, el cual cumplió con todos los requisitos definidos al inicio del proyecto. xiii CAPÍTULO 1: Introducción En el laboratorio del Centro de Soporte de Calidad (QSC, Quality Support Center) de la empresa Componentes Intel de Costa Rica se realizan pruebas en microprocesadores que han sido devueltos por clientes para buscar fallas de funcionalidad1 y determinar si la falla es consecuencia de la fabricación del producto; esto con el fin de tomar las medidas necesarias en el proceso de fabricación que permitan garantizar a los clientes el buen funcionamiento de los microprocesadores durante determinado tiempo de vida. Las plataformas de prueba del laboratorio del QSC están constituidas por un computador personal, una tarjeta madre de prueba y una interfaz de comunicación entre el computador y la tarjeta madre. Los microprocesadores se colocan en la tarjeta madre y se ponen a funcionar con programas de prueba sobre diferentes sistemas operativos que ejercitan las unidades funcionales del procesador. Esta prueba actualmente se realiza solamente para los valores nominales de frecuencia de los procesadores. La necesidad de implementar la prueba a diferentes frecuencias surge del hecho de que en los microprocesadores, debido a su arquitectura interna, se pueden presentar fallas que no se dejan ver cuando funcionan a su valor nominal de frecuencia, únicamente a valores mayores o menores que el nominal. Dos procesadores construidos al mismo tiempo 1 Se entiende por falla de funcionalidad cuando un procesador es incapaz de ejecutar o finalizar con éxito la ejecución de una aplicación o programa trabajando sobre cierto sistema operativo. En una plataforma de prueba la aplicación o programa y el sistema operativo son definidos por un programa de prueba principal que controla la plataforma. 1 2 y mediante el mismo proceso pueden tener características de desempeño diferentes y también diferentes márgenes de funcionalidad en frecuencia. 1.1 Formulación del problema El problema a resolver es: ¿Cómo darle al Laboratorio del QSC un medio para detectar fallas de funcionalidad en microprocesadores debidas a sensibilidad a la frecuencia de operación? Los microprocesadores deben ser probados modificando el valor de la frecuencia de operación a un paso constante y dentro de ciertos límites seguros ya definidos por el fabricante. 1.2 Objetivos 1.2.1 Objetivo general Diseñar una herramienta para una plataforma de detección de fallas de funcionalidad en microprocesadores que sea capaz de realizar la prueba de los mismos operando a diferentes frecuencias, permitiendo la detección de fallas por sensibilidad a las variaciones en la frecuencia y la definición de márgenes de funcionalidad debidos a esta variable. 3 1.2.2 Objetivos específicos 1. Estudiar las plataformas de prueba utilizadas en el laboratorio del Centro Soporte de Calidad de Componentes Intel de Costa Rica para validar microprocesadores. 2. Estudiar como se definen las frecuencias de operación de un procesador Intel y la relación que existe entre éstas y las frecuencias de la tarjeta madre utilizada para la realización de las pruebas de validación. 3. Determinar las modificaciones en el software y/o hardware necesarias para permitir la prueba de los procesadores a diferentes frecuencias, teniendo en cuenta la futura adaptabilidad de la herramienta a plataformas de prueba para diferentes modelos de procesadores. 4. Implementar las modificaciones requeridas a la plataforma de prueba para desarrollar un prototipo con la capacidad de realizar las pruebas a diferentes frecuencias y presentar un informe gráfico de los resultados. 5. Crear un documento de implementación de la prueba que incluya las modificaciones en software/hardware así como un manual de operación del prototipo desarrollado. 4 1.3 Metodología 1.3.1 Investigación Por la naturaleza del proyecto, es necesaria una etapa de investigación que permita adquirir los conocimientos necesarios para estructurar la forma en la que se cumplirá el objetivo principal. Esta etapa de investigación esta conformada por tres partes básicas a saber: estudiar la plataforma de prueba para microprocesadores, estudiar la definición de la frecuencia en el microprocesador y la tarjeta madre en la que trabaja y por último identificar cuales pueden ser las posibles soluciones al problema planteado en el objetivo principal. 1.3.2 Desarrollo del prototipo Una vez determinada cuál es la propuesta a implementar y todas las modificaciones en hardware y software necesarias en la plataforma de prueba, se procede a construir un prototipo que realice las funciones requeridas. Es necesario probar de forma exhaustiva este prototipo para poder encontrar cualquier posible mal funcionamiento, además de definir los rangos de funcionalidad y las limitaciones del mismo. 1.3.3 Documentación y creación de un Manual del Usuario Al terminar con la construcción y prueba del prototipo se llega al modelo final de la herramienta de detección de fallas y se documenta toda la investigación, las modificaciones 5 en hardware y software realizadas a la plataforma de prueba así como las características y limitaciones del modelo. También es necesario crear un manual de operación para que quienes utilicen la herramienta de prueba cuenten con una guía detallada de cómo implementarla. 1.4 Alcances y limitaciones El alcance del proyecto abarca el desarrollo e implementación de un prototipo de herramienta de detección de fallas funcionales en microprocesadores debidas a sensibilidad a la frecuencia. Está limitado a una plataforma de prueba para un modelo específico de procesador (Pentium® 4, nombre código Prescott-N) pero considerando, durante el desarrollo del prototipo, que en un futuro esta herramienta pueda ser migrada a plataformas para otros modelos de procesador. Es necesario mencionar que, debido a la naturaleza confidencial de mucha de la información, la cual es propiedad de la Corporación Intel, se han omitido detalles técnicos en los resultados de la investigación y en la descripción del prototipo construido como parte de este proyecto. Por las mismas razones se ha omitido la inclusión del documento de implementación y el manual de operación de la prueba, mencionados en el objetivo específico número cinco. 6 Luego del presente capítulo introductorio se expone, en el Capítulo 2, el desarrollo teórico del proyecto, que incluye los antecedentes y el marco teórico; posteriormente, el Capítulo 3 muestra los resultados de la investigación que llevaron a la solución final del problema y el Capitulo 4 una descripción de los componentes del prototipo construido y la explicación de su funcionamiento. Los dos capítulos restantes son básicamente análisis y conclusiones; el Capítulo 5 es la presentación y análisis de los resultados de las pruebas realizadas sobre el prototipo y el Capítulo 6 esta constituido por las conclusiones y recomendaciones surgidas del análisis de resultados y el desarrollo del proyecto en general. CAPÍTULO 2: Desarrollo teórico 2.1 Antecedentes Históricos 2.1.1 Breve reseña histórica de los computadores A lo largo de la historia de la humanidad han aparecido máquinas creadas con el fin de realizar cálculos y manipular información que podrían ser consideradas los antecesores de lo que hoy es llamado computador, sin embargo, es a finales de la primera mitad del siglo XX, al utilizar la electrónica, que comienza una evolución vertiginosa en el desempeño y capacidad de estos aparatos. La historia de los computadores electrónicos modernos se puede dividir, de acuerdo a su evolución, en seis generaciones básicas (14) (15), la primera de las cuales inicia luego de la Segunda Guerra Mundial en 1946 con la aparición de ENIAC (Electronic Numerical Integrator and Computer). Durante esta etapa aparece la definición ampliamente conocida como los «Criterios de von Neumann» que da los requerimientos básicos de la constitución de un computador: medio de entrada para introducir instrucciones; almacenamiento para las instrucciones y resultados; unidad de cálculo aritmético y lógico; unidad de control, capaz de interpretar instrucciones y direccionar la información; y un medio de salida para transmitir al usuario los resultados de los cálculos. 7 8 En 1948 se inventa el transistor y para 1956 comienza a ser usado en la construcción de computadores sustituyendo a los tubos al vacío y marcando el inicio de una segunda generación. En 1964 da inicio la tercera generación al sustituirse el uso de transistores individuales por circuitos integrados con cada vez más transistores y al utilizarse por primera vez un sistema operativo. La cuarta generación va desde la aparición del primer microprocesador desarrollado en 1971 por Intel hasta alrededor de 1987, durante esta etapa se continua el desarrollo de la integración a gran escala y aparecen los computadores personales. El auge de las redes de computadores y la Internet son las características principales de la quinta etapa la cual se extiende hasta 1995 cuando aparece la sexta generación en la cual el computador se convierte en no sólo una estación de trabajo sino también en un centro de entretenimiento multimedia con capacidad de conexión con otros aparatos electrónicos presentes en la vida diaria. 2.1.2 Reseña histórica de la Corporación Intel Fundada en 1968 por Robert Noyce y Gordon Moore con el objetivo principal de fabricar memorias, la Corporación Intel es actualmente líder mundial en la construcción de microprocesadores; también fabrica memorias, otros diversos tipos de chips, tarjetas y productos electrónicos variados así como software para computadores. Fue, como se mencionó anteriormente, la empresa que lanzó al mercado en 1971 el primer microprocesador o unidad central de procesamiento (CPU, Central Processing Unit). 9 Esta Corporación cuenta actualmente con 17 plantas alrededor del mundo, 11 de las cuales se dedican a fabricar en silicio los componentes para enviarlos luego a las plantas de ensamblaje y prueba. Además tiene representación en prácticamente todos los países del mundo. Componentes Intel de Costa Rica inicio actividades en el mes de marzo de 1998 y es una de las plantas de ensamblaje y prueba que además es la sede de Servicios de Ingeniería de América Latina (LAES, Latin American Engineering Services) que se dedica al diseño y desarrollo de nuevos productos y software. La Corporación Intel mantiene con las comunidades en las que tiene instalaciones una relación basada en un compromiso con el desarrollo de las mismas que incluye proyectos y programas de diversas índoles así como el fortalecimiento de la educación de todo nivel. También apoya a estudiantes mediante la colaboración con donaciones de equipo, ayuda en ferias científico-tecnológicas y los programas de prácticas profesionales y pasantías. 10 2.2 Marco Teórico 2.2.1 Estructura de un computador Un computador moderno puede seguir siendo definido por los básicos «Criterios de von Neumann» mencionados anteriormente, aunque en forma un poco más detallada (ver figura 2.1) su estructura está constituida por: • Sistema de entradas y salidas (I/O, input/output) de información. • Bus del sistema, el cual comunica los diferentes componentes del computador transmitiendo instrucciones o datos entre ellos. • Memoria principal, donde se almacenan las instrucciones y/o datos. • Unidad Central de Procesamiento (CPU), conformado a su vez por: - Unidad de Control (CU, Control Unit), controla y coordina el procesamiento de instrucciones y/o datos. - Unidad Lógico/Aritmética (ALU, Arithmetic/Logic Unit), realiza las operaciones requeridas al procesar la información. - Registros Internos, mantienen memorizada información a procesar y cualquier otra necesaria para el CPU. - Conexión interna del CPU, comunica las unidades que conforman el CPU. 11 ALU I/O Bus del Sistema Memoria Bus CU CPU Registros Internos Figura 2.1 - Diagrama básico de un computador. El microprocesador (CPU) se coloca en una tarjeta llamada tarjeta madre, la cual sirve como base para conectar todos los componentes del computador y a la cual se conecta cualquier componente periférico que pueda ser también parte del sistema. 2.2.2 Fabricación de microprocesadores La fabricación de un microprocesador, al igual que cualquier otro circuito integrado, está basada en la utilización de un material semiconductor como germanio o silicio, aunque este último es prácticamente el único que se utiliza en la actualidad. 12 Básicamente, se toma una oblea delgada de silicio la cual es sometida a varios procesos de dopaje (adición de impurezas que modifican sus cualidades conductoras), oxidación, adición de material aislante y conductor, con el fin de obtener estructuras CMOS (Complementary Metal-Oxide-Semiconductor, Metal-Óxido-Semiconductor Complementario) que se comportan como un transistor. En una misma oblea se crean muchas copias del mismo circuito integrado y cada una de estas está formada, en el caso de un microprocesador, por millones de transistores CMOS (13). El proceso descrito anteriormente de forma muy sencilla es de hecho bastante complejo; implica varios lavados con químicos, exposición a rayos ultravioleta y se realiza trabajando en el orden de los nanómetros. Esto hace fácil que se presenten ligeras variaciones en el ancho y grosor de los conductores y de las capas de los diferentes materiales que componen los circuitos causando diferencias de funcionamiento, aún entre los circuitos integrados que nacieron de una misma oblea. Estas diferencias hacen que los procesadores tengan distintos valores de parámetros de funcionamiento como voltaje o frecuencia así como diferentes niveles de desempeño, además esto implica que los márgenes de funcionalidad relacionados con la variación de determinado parámetro también serán variables de un procesador a otro. Un procesador marginal es aquel que nominalmente trabaja muy cerca de los márgenes de funcionalidad (límites entre los que opera correctamente), es decir, es más sensible a las variaciones en las 13 condiciones de operación, para el caso de interés, más sensible a las variaciones en frecuencia. 2.2.3 Prueba de microprocesadores Los microprocesadores deben ser probados para confirmar su correcto funcionamiento durante varias de las etapas de su producción, desde que forman parte de la oblea hasta cuando forman parte de un sistema completo (computador) y se encuentran colocados en una tarjeta madre. Cuando un microprocesador logra pasar las pruebas de producción y aun así falla al utilizarlo un cliente, es necesario ponerlo a prueba de forma más exhaustiva y determinar las condiciones que provocaron el mal funcionamiento. Las plataformas de prueba del laboratorio del QSC realizan su función con el microprocesador formando parte de un sistema completo. Como fue mencionado en la introducción y para el caso particular del QSC de Intel, los componentes básicos de una de estas plataformas son: un computador personal (PC, personal computer) que se utiliza como servidor; el sistema en el que se coloca el procesador a probar, el cual consiste en una tarjeta madre, unidad de almacenamiento y algunos periféricos; y una pareja unificada de tarjetas llamada Centrix/Celbridge que funciona como interfaz de comunicación entre el 14 sistema a probar y el servidor, con el cual se comunica a través de una conexión RS-2322. Ver Figura 2.2. PC estándar o computador especializado PC destino de la prueba Tarjeta Centrix Puerto de comunicación Celbridge Teclado, mouse, puertos (Con el microprocesador a probar) Figura 2.2 - Diagrama básico de la plataforma de prueba. El servidor utiliza un paquete de software llamado SysTest con el cual se crean los programas de prueba (archivos TPF, test program file) y que funciona como una interfaz con el usuario de la plataforma. Cuando se ejecuta un archivo TPF se necesita definir las constantes y variables globales, así como las funciones a utilizar creando un archivo global de referencia (GTF, global template file) sobre el cual se basa el programa de prueba. Los programas de prueba son escritos en el lenguaje de programación de alto nivel V i s u a l B a s i c ®. Cada programa debe ser escrito en unidades de ejecución o «procedimientos»; existen dos tipos de procedimientos, los subprogramas o subrutinas 2 Protocolo estándar para la transmisión serial binaria de datos, oficialmente conocido en la actualidad como TIA/EIA-232-E. 15 (sub) y las funciones. A diferencia de los sub, las funciones son capaces de devolver un valor como respuesta de su ejecución. Un programa de prueba en SysTest se ejecuta siguiendo la secuencia básica que se muestra en la Figura 2.3. Cada uno de los grupos y las pruebas se escribe como un sub y juntos conforman el programa de prueba o archivo TPF; las funciones deben ser escritas en el archivo GTF para que puedan ser llamadas y utilizadas por otras funciones o por los sub del programa. Básicamente un programa de prueba controla el sistema con la unidad a probar (procesador), haciéndolo ejecutar ciertas rutinas o procesos, programas y aplicaciones sobre varios sistemas operativos. Los grupos Arranque y Apagado realizan respectivamente el encendido y apagado del sistema destino a probar. Ver figura 2.3. 16 Programa de prueba Grupo Arranque Arranque 1 Arranque 2 Arranque 3 Arranque n constantes / variables globales Grupo(s) de pruebas Funciones Prueba 1 Prueba 2 Asignación de Puertos Prueba 3 Prueba n Archivo .GTF Grupo Apagado Apagado 1 Apagado 2 Apagado 3 Archivo .TPF Apagado n Figura 2.3 - Diagrama básico de un programa de prueba en SysTest. Fuente confidencial. 17 2.2.4 Generación y distribución de frecuencia en un computador La tarjeta madre de un sistema cuenta con un chip conocido como «reloj», el cual es un circuito integrado que se utiliza para generar las señales a diferentes frecuencias que regulan el movimiento de información en el sistema y las frecuencias a las que funciona el procesador. Este reloj posee un cristal oscilador que produce una señal senoidal que sirve como base o referencia para determinar la frecuencia de todas las señales que se distribuyen en el sistema. Ver Figura 2.3. Cristal CPU Reloj del sistema Chipset Memoria Diversos elementos del sistema Figura 2.4 - Diagrama básico de distribución de reloj en un computador. 18 En lo que respecta al procesador en si, el reloj del sistema determina la frecuencia a la que funciona el reloj base del procesador que a su vez determina la velocidad del Front Side Bus (FSB) el cual es la principal vía de comunicación entre el procesador, la memoria y periféricos de sistema. Es necesario hacer notar que en los procesadores actuales muchas funciones antes delegadas al FSB han sido encargadas a buses de datos individuales que conectan puntos específicos en el procesador. La velocidad a la que opera el procesador (con la que se le caracteriza) es determinada al aplicar un multiplicador de reloj a la velocidad del FSB. Muchas tarjetas madre permiten que el usuario modifique el valor de los multiplicadores al cambiar conexiones en la tarjeta mediante jumpers (conectores o «puentes») o modificando el BIOS3 del sistema, sin embargo, algunos fabricantes, incluyendo a Intel, optan por bloquear la posibilidad de hacer estas modificaciones. Para describir cuando se realiza algún procedimiento para obtener una velocidad mayor que la nominal se emplea el término overclocking (aumentar el reloj). Cabe mencionar que cuando lo que se altera es la velocidad del FSB se altera también la velocidad de acceso a memoria, por lo que es necesario considerar las limitaciones de los módulos de memoria. 3 Basic Input/Output System (Sistema Básico de Entradas y Salidas). Grupo de rutinas almacenadas en memoria que habilitan al computador a arrancar el sistema operativo y comunicar algunos elementos del sistema como unidades de almacenamiento, puertos o periféricos. CAPÍTULO 3: Investigación, propuestas y solución final 3.1 Resultados de la investigación preliminar Se comenzó familiarizándose con la plataforma de prueba en donde debía ser implementada la herramienta de detección de fallas por sensibilidad a la frecuencia; sus componentes con sus conexiones y forma de interactuar, software para realizar las pruebas y la estructura de las mismas, etc. (tópicos detallados en el marco teórico de este documento). También se estudió la generación y distribución de la señal de reloj en un sistema (también detallado en el marco teórico) y las características específicas, relacionadas con la frecuencia de operación, de la tarjeta madre a utilizar y los procesadores a probar. Además se limitó la prueba a procesadores Pentium® 4 modelo específico Prescott-N4 ya que cada una de las plataformas disponibles y los programas de prueba son definidos para un único modelo específico. En cuanto a la tarjeta madre a utilizar en la plataforma esta es propia de Intel y de uso interno solamente. No esta diseñada para uso comercial, si no pensando en su utilización como herramienta de experimentación y prueba. La siguiente tabla resume algunas de las características básicas de esta tarjeta madre conocida como Chelan: 4 Procesador de la familia Pentium® 4 construido con tecnología de 90nm en empaquetado de 478 pines existente en diseños que trabajan desde 2,8GHz hasta 3,4GHz con 800MHz de FSB. 19 20 Tabla 3.1 - Características básicas de la tarjeta madre Chelan de Intel. Fuente confidencial. Procesador que soporta Chipset Memoria Video Capacidad de expansión Audio Intel Pentium® 4 de 800/533/400 MHz de FSB, socket mPGA478 Springdale-G/P con soporte para bus de sistema de 667/533 MHz ICH5 con soporte para 8 puertos USB 2.0/1.1 DDR 333/266 4 DIMMs, 2 GB máximo por canal AGP 8x (1.5 V) 5 PCI 1 CNR 8 puertos USB 2.0 (6 atrás, 2 al frente) 1 Puerto Paralelo, COM1, unidad de disquette, 2 PS/2, 2 IDE (ATA 100/66/33), 2-SATA Codec de 6 canales STAC9752 ó AD1981A, AD1981B, AD1980 y otros Al estudiar esta tarjeta madre se determinó que a pesar de ser una tarjeta para experimentación y prueba no permite la manipulación de los multiplicadores de frecuencia mediante modificaciones de configuraciones de jumpers, lo que la hace similar a tarjetas comerciales recientes de Intel que siguen la tendencia de evitar que se dé el uso de los productos fuera de los límites establecidos o en condiciones irregulares que pudieran causar daños al equipo o cualquier clase de accidentes. Sin embargo esta tarjeta sí permite, mediante un par de jumpers, tener acceso a la ruta de transmisión de la señal senoidal de 14,318 MHz del cristal oscilador (referencia principal del sistema) hacia el circuito reloj del sistema. 21 Esta última característica mencionada hizo resaltar la posibilidad de utilizar alguna clase de generador externo para modificar la referencia del reloj del sistema y así modificar la frecuencia de operación del procesador. Sabiendo que no se podían manipular los multiplicadores de frecuencia del FSB del procesador mediante la tarjeta madre, se investigó la posibilidad de cambiarlos mediante modificaciones en el BIOS que se pudieran realizar desde el programa de prueba en ejecución. Para esto fue necesario encontrar los registros que debían ser modificados y buscar la forma de accesar el BIOS desde el programa de prueba. 3.2 Soluciones propuestas al problema Básicamente se llegó a dos posibles soluciones, una que sólo implicaba utilización de software para reconfigurar los multiplicadores de frecuencia a través del BIOS y otra que utilizaría hardware adicional para ser utilizado como generador externo de frecuencia. La primera de las posibles soluciones requería que se redactara el software necesario para que desde el programa de prueba ejecutándose en SysTest se reconfigurara el BIOS para lograr variaciones en los registros del procesador que definen la frecuencia del FSB y almacenan los multiplicadores que determinan la frecuencia de operación del procesador (ver tabla 3.2). Pero este BIOS específico resultó no ser configurable con la versatilidad y facilidad requeridas para realizar la prueba con una variada gama de 22 frecuencias y de forma eficiente; primero, porque los respectivos registros solo permiten la definición de 2 velocidades para el FSB, con un resultado final de únicamente 4 diferentes frecuencias de operación para el procesador y segundo, porque el acceso a los espacios reservados de tales registros implica utilizar complejos códigos encriptados de clasificación confidencial. En el segundo caso se necesitaba conseguir un generador de señal que tuviera las características que le permitieran ser sustituto del cristal de referencia del reloj del sistema y que pudiera ser conectado al PC servidor de la plataforma a través de la Centrix/Celbridge y controlado mediante rutinas en el programa de prueba. Además era necesario determinar cómo y dónde en la tarjeta madre se podría realizar esta inyección de la señal de referencia del reloj. Ver tabla 3.2. Tabla 3.2 - Comparación de las soluciones propuestas al problema. Manipulación de multiplicadores de frecuencia Modificaciones al software: Rutina de manipulación del BIOS Modificaciones al hardware: - Hardware adicional: - Ventajas: No hay necesidad de conseguir y acoplar hardware adicional Desventajas: No se pueden realizar variaciones pequeñas en el valor de la frecuencia Generador externo de señal Rutina de manipulación del generador externo Modificación de la tarjeta madre para poder realizar la inyección de la señal externa Generador externo de señal Las variaciones en la frecuencia pueden ser tan pequeñas como el generador lo permita Necesario adquirir y acoplar hardware adicional 23 Se pensó también en la posibilidad de implementar ambas soluciones utilizando las modificaciones del poco flexible BIOS para cambios grandes en la frecuencia de operación y un generador externo para realizar modificaciones más pequeñas. Sin embargo esta posible solución no se tomó en cuenta ya que al investigar sobre que tipo de generador externo se podría utilizar se determinó que, para los requerimientos de la herramienta de prueba y considerando los límites máximos seguros de frecuencia de operación del sistema determinados por los diseñadores de Intel, los generadores externos disponibles y más prácticos de implementar eran capaces de suministrar el rango de frecuencias necesario y a un paso suficientemente manipulable, haciendo innecesaria la complicada manipulación del BIOS. Esto redujo las opciones a la aplicación independiente de alguna de las dos propuestas mencionadas al inicio de este apartado y en la tabla 3.2. 3.3 Solución final Debido a la complejidad y poca flexibilidad de la solución mediante software únicamente y a las facilidades que brinda la tarjeta madre de prueba para interceptar la ruta de la referencia principal del reloj del sistema, la elección para continuar y desarrollar un prototipo fue realizar una inyección externa de la señal de referencia del reloj, sin accesar los multiplicadores del FSB. La variación en la frecuencia con la que se caracteriza la velocidad de un procesador es directamente proporcional a esta señal de referencia. 24 Se continuó analizando la tarjeta madre para contemplar todos los detalles y posibles modificaciones que se requirieran para realizar la inyección externa del reloj. De acuerdo al análisis de los esquemáticos y layouts (planos de la distribución física de los componentes y conexiones) disponibles, básicamente era necesario cerrar una conexión al reloj del sistema cortocircuitando un jumper que funcionaría como interruptor habilitador de la inyección y colocar un conector para el generador externo en otro jumper en el extremo opuesto de la ruta habilitada para hacer contacto con la vía de alimentación del reloj del sistema. Esto se muestra en el diagrama básico simplificado de la figura 3.1; sobre la resistencia de 0_5 se muestra el jumper que cierra el circuito y en el extremo izquierdo el conector colocado en el jumper en el que se realiza la inyección: Figura 3.1 - Esquema básico del circuito en la tarjeta madre utilizado para realizar la inyección externa de la señal que sustituye la del cristal de referencia. 5 La colocación de esta resistencia, con un valor muy cercano a 0Ω, es sugerida por el fabricante para evitar interferencia de señal causada por la terminal del jumper y el conector que lo cortocircuita. Su papel en el circuito es más complejo que el mostrado en la figura 3.1 ya que, a pesar de reforzar el camino entre el conector SMA y el reloj, no permite el paso de señal cuando se abre el circuito en el jumper colocado en paralelo. 25 Tanto la solución mediante software solamente como la utilización de un generador externo, permiten que la herramienta sea adaptable a otras plataformas para otros procesadores. Sin embargo, la rutina de manipulación del BIOS era menos flexible debido a que debía ser adaptada a las diferentes versiones de BIOS cada vez que se migrara a otra plataforma. La solución utilizando un generador externo es totalmente independiente del procesador y el sistema en el que funciona, ya que la rutina de control del generador en el programa de prueba se mantiene exactamente igual mientras se utilice el mismo generador de señal al migrar la herramienta. La única condición con la que debe cumplir una plataforma para utilizar el generador externo es que su tarjeta madre permita la inyección externa de señal, ya sea mediante modificaciones físicas menores o que cuente desde la fábrica con esa capacidad. Esta capacidad de adaptabilidad a otras plataformas fue también determinante en le elección del esquema de implementación de la herramienta para la detección de fallas de funcionalidad debidas a variaciones en la frecuencia. CAPÍTULO 4: Implementación del prototipo 4.1 Generador externo de señal La búsqueda de un posible generador de señal iniciada en la etapa investigativa resultó en la escogencia de una tarjeta generadora de frecuencia (FGC, Frequency Generator Card) fabricada por Intel que hubo de ser traída desde la planta de Intel en Oregon, EE.UU. Esta tarjeta conocida como XPV/PPV Frequency Generator Card cumple todos los requerimientos de la herramienta de detección de fallas, es posible programarla desde un PC servidor a través de un puerto de 25 pines y se alimenta de una fuente externa regulada estilo ATX con conector 12V/5V, además, que la tarjeta fuera un producto fabricado por Intel facilitaría su obtención en un tiempo relativamente corto. Para acoplar el generador externo de señal a la tarjeta madre fue necesario realizar la configuración de jumpers explicada en el apartado 3.3 para formar el circuito mostrado anteriormente en la figura 3.1. El jumper a través del cual se realizaría la inyección de la señal de referencia a la tarjeta madre permite la colocación de un conector SMA6; este tipo de conector también es compatible con la terminal de salida de la tarjeta generadora de señal, por lo que para realizar el acople físico entre ambas tarjetas fueron necesarios dos conectores empotrables 6 Sub-miniature version A ( Subminiatura Versión A). Conectores de 50Ω que proveen un excelente desempeño eléctrico en la transmisión de señales desde corriente directa hasta 18GHz (1). 26 27 «hembra» además de un cable con las características requeridas por la tarjeta generadora y los conectores (cable coaxial de 50_) el cual debe contar a su vez con terminales SMA «macho» en ambos extremos. Ver Figura 4.1. Figura 4.1 - Izquierda: vistas lateral y superior de un conector SMA «hembra» empotrado en una tarjeta para componentes electrónicos. Derecha: conector terminal SMA «macho» para cable coaxial (1). El componente principal de esta tarjeta es el circuito integrado (CI) «sintetizador de frecuencia» AD9850 DDS de Analog Devices. Para modificar la salida de la FGC es necesario programar el 9850 mediante un conjunto de I/O digitales a través del puerto con conector DB25 ya integrado en la tarjeta. Este CI puede ser programado con señales de bits transmitidos tanto de forma serial como paralela; aunque en paralelo se requieren más señales, los tiempos de programación menores llevaron a escoger este método. La onda senoidal de salida del 9850 es luego filtrada por un circuito sintonizador para posteriormente amplificarla con un amplificador operacional. Otros componentes principales incluyen un regulador de voltaje de 5V, un cristal oscilador de 125MHz como 28 reloj de referencia del 9850 y dos flip-flop’s 74HCT574 usados como buffer (almacenamiento temporal) de las señales de datos y control del 9850. 4.1.1 Señales de programación del «sintetizador de frecuencia» AD9850 DDS y conexiones de I/O digitales El AD9850 utiliza para su programación en paralelo 8 bits de datos y 3 bits de control, todas señales de 5V TTL y con las funciones específicas mostradas en la tabla 4.1: Tabla 4.1 - Señales de datos y control del AD9850 DDS. Fuente confidencial. Señal D0-D7 RESET WCLK FQUD Función Funcionan como el bus de datos de 8 bits del 9850, múltiples cargas de palabras de 8 bits a través de D0-D7 definen la frecuencia de salida de la FGC Limpia los registros internos del 9850 produciendo una salida nula cuando las I/O llegan a un estado desconocido Word Clock es usada para sincronizar y cargar simultáneamente los 8 bits de datos a los registros internos de 9850 Frequency Update es usada para notificar al 9850 que la palabra de 8 bits se cargó y que se debe actualizar la frecuencia de salida de la forma que respecte Además, los flip-flop’s utilizados como buffer antes de cargar las señales (datos y control) al 9850, agregan dos señales a considerar: CHECK y STROBE. Estas señales se muestran y explican en la tabla 4.2: 29 Tabla 4.2 - Señales de los flip-flop’s 74HCT574. Fuente confidencial. Señal 1D-8D RRESET FFQUD STROBE CHECK Función Entradas del flip-flop que corresponden a D7-D0 respectivamente Entrada del flip-flop que corresponde a RESET Entrada del flip-flop que corresponde a FQUD Señal que cuando cambia a «alto» se transfiere la información de la entrada de los flip-flop’s a su salida y por lo tanto al 9850 Señal de salida que puede ser utilizada por un software de control para comprobar que la FGC esta encendida y con el cable de datos conectado Flip-flop Datos Control Control Control Control La tarjeta Centrix/Celbridge cuenta con varios puertos de I/O digitales de 5V TTL que pueden ser controlados mediante el programa de prueba desde el PC servidor; uno de los cuales fue utilizado para enviar y recibir las señales requeridas para la programación de la FGC. Fue necesario construir el cable con los conectores respectivos para acoplar el puerto de la Centrix/Celbridge con el conector DB25 de la FGC, relacionando el total de 18 señales (5 de «tierra» y 13 de control y datos) con los conductores componentes del cable y los pines respectivos en los puertos de cada tarjeta. 30 4.2 Programa de control del generador externo de señal El programa de control del generador de señal está constituido por las subrutinas que programan la FGC para que supla las diferentes señales de referencia del reloj a la tarjeta madre con el microprocesador a probar. Éste se colocó dentro del programa de prueba principal, más específicamente en el grupo Arranque del TPF (ver figura 2.3); la importancia de que esté colocado en ese grupo se debe a que el sistema no podrá completar el arranque sin una frecuencia base definida. También fue necesario definir dentro del GTF la función que recibe los parámetros de la prueba que deben ser definidos por el usuario. La forma en la que el usuario ingresa los parámetros de la prueba y como se define el lazo de ejecución del programa de prueba principal se explicarán en el apartado 4.3 de este documento. 4.2.1 Flujo del programa de control del generador externo de señal La nueva función creada en el GTF recibe cada nuevo valor de frecuencia y lo almacena en una variable global cada vez que se corre un ciclo del programa de prueba. Esta variable global puede ser leída desde el TPF cuando se esta ejecutando. 31 Durante la ejecución de cada ciclo del TPF, dentro del nuevo sub en el grupo de Arranque (ver figura 2.3), se toma el valor de la variable global que guarda el nuevo valor de frecuencia y se procesa para que sea interpretado por la FGC para generar la señal con la frecuencia deseada; además aquí, se incluye todo el protocolo de control de la tarjeta generadora y el código para el manejo de los puertos de I/O digitales de la Centrix/Celbridge que comunican al PC servidor con la FGC. El valor decimal de la nueva frecuencia base, introducido por el usuario, se compara con el rango seguro para el procesador, definido por el fabricante7, para asegurar que la frecuencia definida sea válida, si lo es, se introduce en una rutina de conversión que procesa el valor para obtener un número multiplicador para el valor de la frecuencia del cristal de referencia de la tarjeta generadora (125MHz) que luego es convertido a un número binario de 32bits. Este es el valor binario que se envía a la FGC para determinar el nuevo valor de frecuencia de la señal generada. Ver figura 4.2. Además de los 32 bits del valor del multiplicador de frecuencia se ocupan 8 bits adicionales de control dos de los cuales son reservados al fabricante y deben ser cero, otro es para encender la FGC y los restantes cinco bits se utilizan para modificar la fase de la señal generada, característica de la tarjeta generadora que no es necesaria para la herramienta de prueba. 7 Dicho rango va de 12MHz a 16MHz y es consecuencia de las limitaciones estructurales del procesador. 32 El total de 40 bits de datos debe ser enviado a la FGC en cinco grupos de 8 bits a través del segmento del puerto de I/O digital de la Centrix/Celbridge que funciona como bus de datos del 9850 (D0-D7, ver tabla 4.1). El proceso de carga de las señales de programación de la FGC debe realizarse siguiendo todo el protocolo relacionado con las señales de control del 9850 (ver tabla 4.1 y figura 4.2). Previo al proceso de programación de la FGC se debe realizar en el programa de control la asignación de puertos de la Centrix/Celbridge conectada a través del puerto serial al PC servidor donde se corre el programa de prueba en SysTest. Ver figura 4.2. 33 34 Inicio Fin Éxito: continuar con la ejecución del programa de prueba con la nueva frecuencia Introducción manual de los parámetros de la prueba Configuración de I/O de Centrix/Celbridge para control de FGC Enviar a Centrix/CelbridgeFGC señales de protocolo para generación de nueva frecuencia Fallo: no se definió frecuencia base => apagado del sistema Rango: 1216MHz No Envío de los 5 grupos de 8 bits a Centrix/CelbridgeFGC Sí Crear palabra de 32 bits a partir del nuevo valor de frecuencia Re-inicializar registros internos del AD9850 DDS Sí No Dividir en 4 palabras de 8 bits para preparar carga en paralelo Crear 5ta palabra de 8 bits con bits de control para un total de 40 bits Enviar a Centrix/CelbridgeFGC señales de protocolo para carga de datos No FGC conectada y encendida Inicio de carga de datos verificado por FGC Sí Figura 4.2 – Diagrama de flujo básico del programa de control de la FGC. 35 4.3 Funcionamiento del prototipo Con la tarjeta generadora de señal acoplada a la tarjeta madre y a la Centrix/Celbridge (ver figura 4.3) y el programa de control añadido al GTF y al TPF se debe abrir en el PC servidor el SysTest y el programa de prueba (extensión TPF) relacionado con el archivo global (extensión GTF) del mismo nombre. Con el fin de introducir el rango de frecuencias de operación y el paso a los que se requiere realizar la prueba se debía implementar una interfaz gráfica con el usuario (GUI, Graphical User Interface) desde donde tomar los parámetros a ser utilizados por el programa. El SysTest ya contiene una herramienta llamada Shmoo Tool que al activarla abre un GUI para hacer un barrido de dos variables a escoger y muestra automáticamente una gráfica con los valores de las variables en los ejes X y Y destacando con diferente forma y color los puntos en los que el procesador superó o no con éxito el programa de prueba. Dicho GUI se muestra con detalle más adelante en la figura 5.5. Este GUI relaciona el valor de las variables en cada punto del barrido con una función que puede ser definida en el GTF para recibir la variable correspondiente y almacenarla con un nombre en una variable global para poder ser utilizada en el TPF, debido a esto esta herramienta del SysTest fue aprovechada para el prototipo de la herramienta de detección de fallas por sensibilidad a la frecuencia. 36 El usuario digita en el GUI los límites del rango de frecuencias base en el que se va a hacer la prueba (frecuencias que sustituirán la señal del cristal de referencia de 14,318MHz de la tarjeta madre), el paso con el que se va a avanzar durante la prueba y el nombre de la función definida dentro del GTF que recibirá la variable que se modifica en cada ciclo. Como el SysTest puede hacer un barrido en dos dimensiones es necesario deshabilitar la otra variable en el GUI a no ser que la plataforma ya tenga la capacidad de realizar variaciones en algún otro parámetro. Para realizar la ejecución del programa de prueba principal a diferentes frecuencias era necesario crear un ciclo dentro del cual se colocaría dicho programa para repetirlo tantas veces como se requiera, modificando la frecuencia cada vez al ejecutar el programa de control de la FGC, de acuerdo a los parámetros definidos por el usuario. El GUI del Shmoo Tool del SysTest permite definir también el nombre de una función del TPF para que se encicle y hacer el barrido. Entonces, en este caso, el lazo que contiene el programa de prueba principal (Main) se repetirá tantas veces como lo determine la fórmula (o el valor entero inmediato inferior al resultado de la misma): número _ de _ ejecuciones = frecuencia _ mayor − frequencia _ menor paso (4.1-1) La relación entre el GUI, SysTest, GTF y TPF se muestra de forma básica en la siguiente figura: 37 GUI S Y S T E S T Valor actual de la variable GTF Mandato de repetición de ciclo TPF Programa enciclado Parámetros de la prueba Figura 4.3 - Diagrama de bloques básico que muestra el flujo de información introducida en el GUI hacia el GTF y TPF. El valor de frecuencia calculado para cada ciclo llega al GTF, se almacena en una variable global y se lee en el TPF para programar la FGC a través de la Centrix/Celbridge y el puerto paralelo DB25 como se explicó en el subapartado 4.2.1. La señal de salida de la tarjeta generadora se transmite por el cable coaxial conectado al jumper respectivo en la tarjeta madre modificada para realizar la inyección de la señal de referencia del reloj (ver figuras 3.1 y 4.3). 38 Figura 3.1 (repetida) - Esquema básico del circuito en la tarjeta madre utilizado para realizar la inyección externa de la señal que sustituye la del cristal de referencia. 39 SMA FGC DB25 Microprocesador bajo prueba Cable coaxial DB25 DB9 Periféricos Sistema bajo prueba Tarjeta madre DB9 Puertos PS-2 DB9 PC Servidor COM1 Centrix/Celbridge Figura 4.4 - Conexiones de la plataforma de prueba: PC servidor-Centrix/CelbridgeFGC-Tarjeta madre de prueba-Periféricos. 40 Como se mencionó anteriormente el PC servidor se comunica a través del puerto serial con la Centrix/Celbridge que también está conectada a la tarjeta madre para hacer parecer al procesador que se encuentra en un sistema funcional y realice las acciones determinadas por el programa de prueba. Superada la etapa de Arranque se continúa con las pruebas definidas por el TPF ya con una frecuencia base de operación suplida por la FGC. Terminado el programa de pruebas se apaga el sistema y se reinicia redefiniendo al arranque el valor de frecuencia base y realizando todas las pruebas nuevamente con un nuevo valor de referencia en el reloj. Cabe mencionar que es posible, si así se deseara, realizar la prueba únicamente a la frecuencia nominal, definiendo una única frecuencia base (14,318MHz) para la FGC o removiendo el conector que cierra el circuito en el jumper sobre la resistencia de 0_ (ver figura 3.1) y ejecutando el programa de prueba prescindiendo del GUI para los parámetros del barrido de frecuencia. CAPÍTULO 5: Prueba del prototipo y análisis de resultados Una vez definidas e implementadas todas las modificaciones a la plataforma de prueba, las conexiones y el hardware adicional necesario, asegurando la integridad del acople físico de los componentes y habiendo definido la versión final del software adicional se puso a funcionar el sistema realizando pruebas a una unidad Pentium® 4 Prescott-N de velocidad nominal 3GHz escogida al azar. Esto con el fin de cerciorarse de que el flujo de la prueba fuera el correcto y percibir cualquier problema de software o hardware. Tanto la plataforma sin modificar como la FGC (y su programa de control) habían sido probadas por separado usando la Centrix/Celbridge y el PC servidor antes de probarlas en conjunto para así reducir las fuentes de error en la identificación anomalías durante la puesta en funcionamiento del sistema completo. Cabe mencionar que no importa cual sea la frecuencia con la que se caracteriza el procesador Intel la frecuencia base nominal sigue siendo 14,318MHz y los límites mínimo y máximo del rango seguro de variación 12MHz y 16MHz respectivamente. Se realizó la prueba en repetidas ocasiones definiendo diferentes rangos de frecuencia base y diferentes valores para el paso de la variación cada vez, siguiendo cuidadosamente el proceso de ejecución del programa de prueba para poder notar cualquier anomalía en el funcionamiento de la plataforma (software y/o hardware) y diferenciar 41 42 claramente entre las fallas en las que podría incurrir un procesador bajo prueba y las posibles fallas de la plataforma en si. Las pruebas iniciales y todas las pruebas realizadas posteriormente para caracterizar experimentalmente a la herramienta fueron un éxito. Mediante el uso de un osciloscopio se pudo observar como la salida de la tarjeta generadora de señal variaba de acuerdo a lo definido para realizar la prueba y que la señal tenía las características necesarias para poder sustituir sin problema alguno a la señal senoidal del cristal de referencia. También se comprobó que las señales de salida del circuito integrado que funciona como reloj del sistema (cuya referencia es en este caso la FGC) no presentaban ninguna anomalía, es decir, todo el sistema estaba siendo suplido por el reloj basado en una señal válida de referencia proveniente de la tarjeta generadora de señal. En la figura 5.1 se muestra la forma de onda del cristal de referencia del reloj del sistema obtenida mediante un osciloscopio Tektronix TDS 784C8. La señal es teóricamente 14,318MHz, sin embargo después de un periodo de observación de tres minutos (tiempo de duración aproximado de una ejecución del programa de prueba aplicado) se obtuvieron valores mínimo y máximo de 14,1MHz y 14,5MHz lo que implica porcentajes de error de − 8 14,318 − 14,1 14,318 100 = −1,523% y 14,318 − 14,5 14,318 100 = 1,271% respectivamente. Calibrado a 2X109 muestras/segundo, utilizando puntas de medición de 400MHz con atenuación 10X. 43 Figura 5.1 - Señal senoidal del cristal de referencia del reloj del sistema de la tarjeta madre de prueba capturada en la terminal de entrada Xtal IN del circuito reloj (ver figura 3.1). Al comparar la señal del cristal con la suministrada por la FGC, mostrada más adelante, se comprueba claramente que esta última cuenta con las características para poder ser sustituto de la primera. De hecho las señales de la tarjeta generadora presentan porcentajes de error con respecto a la frecuencia teórica menores que los de cristal, estos nunca superan ±1,5% durante periodos de observación de igual duración (tres minutos). Estas observaciones ya habían sido hechas desde el momento de la prueba por separado de la plataforma y la FGC, lo que desde un inicio dio confianza en el éxito de la inyección de señal de referencia del reloj. En la siguiente figura (5.2) se muestran varias señales obtenidas en el punto de entrada de la señal de la FGC al circuito reloj del sistema (Xtal IN, ver también figura 3.1): 44 Figura 5.2 - Señales correspondientes a la señal inyectada en la tarjeta madre para frecuencias teóricas programadas de (columna izquierda, columna derecha): 15-1413MHz, 14,5-13,5-12,5MHz. A la derecha de cada señal se muestra la frecuencia en el instante de la captura. La captura se realizó en la terminal Xtal IN del reloj. 45 En la figura anterior se nota que existe cierto ruido presente en la señal de salida de la tarjeta generadora, pero en realidad no es significativo si se compara con el ruido en la señal de la oscilación del cristal mostrada anteriormente en la figura 5.1. Claramente si el circuito reloj del sistema soporta las variaciones en la señal del cristal debidas al ruido puede también soportar las variaciones en la señal de la FGC. Ver figura 5.3. Figura 5.3 – Ruido presente en la señal de referencia del reloj del sistema. Izquierda: señal del cristal de referencia, derecha: señal externa proveniente de la FGC. Imágenes obtenidas para un valor de frecuencia de 14,318MHz y con la misma escala en el osciloscopio Tektronix TDS 784C. La única diferencia importante entre las señales de la FGC y la del cristal es el valor de la amplitud. El valor pico a pico de la salida de la FGC ya viene regulado a 3,6V mientras que la señal del cristal al funcionar en la tarjeta madre es de alrededor de 2,5V, sin 46 embargo el circuito de reloj del sistema, CK 409, soportó este valor en la referencia sin ningún problema o variación en las señales de salida. La implementación de la función de SysTest que permitió enciclar el programa principal y enviarle los parámetros de prueba funcionó sin problema. Únicamente fue necesario definir el orden exponencial de los valores de frecuencia al ingresarlos. Ya que el GUI no acepta la introducción de valores decimales, las frecuencias límite del rango y el valor del paso deben ser ingresadas en KHz para poder realizar, si así se desea, definiciones más finas de las frecuencias (tan pequeñas como 1KHz); si las frecuencias se ingresaran en MHz la variación mínima de los valores captada por el programa de prueba sería 1MHz. Por ejemplo, en lugar de: rango: [12,5 , 15,5] , paso: [0,5] en MHz, se debe definir: rango: [12500 , 15500], paso: [500] en KHz. Las gráficas obtenidas usando SysTest para dos pruebas realizadas con la plataforma con el prototipo de la herramienta de detección de fallas por sensibilidad a la frecuencia se muestran a continuación en la figura 5.4: 47 Figura 5.4 - Gráficas correspondientes a dos pruebas con la plataforma implementando la herramienta de detección de sensibilidad a la frecuencia. Eje X: Frecuencia (KHz), eje Y: Voltaje (_10-4V) Los puntos significan éxito en la prueba, los rectángulos, fallo. 48 La gráfica de la izquierda se hizo para un rango desde 12,5MHz hasta 15,5MHz de frecuencia base con un paso de 0,5MHz; cada punto significa que todo el programa de prueba fue ejecutado con éxito. En la gráfica de la derecha el rango fue de 13,5MHz a 15,5MHz a un paso de 1MHz; en esta prueba se forzó una falla al deshabilitar momentáneamente la conexión entre la Centrix/Celbridge y la tarjeta madre al realizar la prueba a 14,5MHz, por eso aparece un rectángulo indicando falla a esa frecuencia. El eje x se definió como se muestra en las gráficas anteriores únicamente con fines ilustrativos; en realidad la prueba no afectó el voltaje de operación del procesador, éste permaneció funcionando con el voltaje nominal. El GUI con los valores de los parámetros de prueba correspondientes a la gráfica superior de la figura 5.4 se muestra a continuación, en la figura 5.5: 49 Figura 5.5 - GUI de SysTest aprovechado para recibir los parámetros que el programa de prueba utiliza para implementar la herramienta de prueba por sensibilidad a la frecuencia. El eje x se mantiene estático y no se llama ninguna función en el GTF. En lo que al programa de control de la FGC se refiere la única modificación posterior al inicio de las pruebas en conjunto fue la modificación de un multiplicador del valor de frecuencia que recibe, ajuste debido a la incapacidad de la herramienta de barrido del SysTest, mencionada anteriormente, de enviar valores decimales al GTF. CAPÍTULO 6: Conclusiones y recomendaciones 6.1 Conclusiones Todos los objetivos propuestos para el proyecto se cumplieron satisfactoriamente como se puede notar a lo largo de este documento y se resalta a continuación: • Se logró con éxito el diseño y la construcción de un prototipo de herramienta de detección de fallas de funcionalidad en microprocesadores capaz de realizar la prueba a diferentes frecuencias, permitiendo la detección de fallas debidas a sensibilidad a la frecuencia de operación y la definición de márgenes de funcionalidad debidos a la mencionada variable. • Se estudiaron las plataformas de prueba del laboratorio del QSC de Componentes Intel de Costa Rica y los resultados sirvieron como base sólida para el diseño e implementación de la herramienta de detección de fallas. • El estudio de la generación y distribución de las señales de reloj del sistema y las relaciones entre éstas fue vital para definir la solución final para la implementación de la herramienta de detección de fallas. Esto implicó análisis tanto de software como de hardware. 50 51 • Se determinaron las modificaciones en software y hardware necesarias para implementar la herramienta logrando conseguir un modelo que puede ser adaptado a otras plataformas para otros microprocesadores. • El prototipo se construyó siguiendo el modelo diseñado obteniendo una herramienta funcional y que cumple con todos los requerimientos propuestos para el proyecto. • La creación del documento de implementación de la prueba, que describe detalladamente la plataforma y permite duplicar el prototipo, así como el manual del usuario, también se llevó a cabo exitosamente, sin embargo, estos documentos no se presentan en conjunto con este informe por ser considerados material confidencial de la Corporación Intel. La prueba de los microprocesadores en una empresa como Intel es un proceso vital para asegurar la calidad del producto y poder caracterizarlo, definiendo en el proceso sus límites de operación. Cuando estas pruebas se realizan en procesadores que han fallado, la prueba y definición de las condiciones de falla se convierte en parte del proceso de mejora del producto; más aún cuando la falla ocurrió estando ya el procesador en manos del cliente, porque esto implica que la unidad logró superar todas las pruebas realizadas en la fábrica sin mostrar el error, es decir, no es una falla obvia ni fácil de encontrar. Determinar las condiciones que hicieron que la falla se mostrara (como el valor de la frecuencia de operación) se convierte, en estos casos, en parte importante del análisis del procesador. 52 La etapa de investigación en un proyecto como este es fundamental para poder completarlo de forma exitosa y sin tener que repetir procesos de implementación y experimentación con prototipos. No solo la eficacia y eficiencia del proceso investigativo son importantes si no también la disponibilidad de la información y la posibilidad de acceso a personas con conocimientos específicos útiles para el proyecto. Al escoger la solución final luego del análisis de los resultados de la investigación es necesario tomar en cuenta varios aspectos para definir la propuesta más viable, entre los más importantes para este proyecto destacaron: • Cumplimiento de los requerimientos de la plataforma de acuerdo a los parámetros definidos por el laboratorio del QSC de Intel Costa Rica para la prueba de microprocesadores. • Calidad de la solución, en cuanto a que debería tener una robustez que le permitiera funcionar sin problemas sin mantenimiento excesivo. • Adaptabilidad de la herramienta a otras plataformas para otros procesadores, diferentes a la utilizada para desarrollar el prototipo. • Costo monetario de la solución. • Disponibilidad de los componentes, herramientas y software requeridos para la implementación del prototipo. 53 La etapa de construcción, prueba y experimentación del prototipo debe ser llevada a cabo con sumo cuidado para poder depurar la herramienta y caracterizarla para comprobar que cumple con los requerimientos. En este caso particular hubo que dedicar un tiempo mayor (en comparación con el montaje del hardware) a la parte de programación para poder controlar el generador externo de señal acoplado a la Centrix/Celbridge y la tarjeta madre de prueba, de forma que el programa fuera robusto y pudiera reaccionar ante todas las posibles excepciones y errores que se pudieran presentar durante la ejecución de la prueba de un procesador. Aunque algunos modelos de tarjetas madre y de BIOS presentan características que permiten modificarlos más fácilmente para realizar una prueba como la que hace el prototipo de este proyecto, en general esto no es común, y menos para realizar una prueba con requerimientos como los definidos específicamente por el laboratorio del QSC de Intel Costa Rica. El overclocking que es simplemente acelerar el procesador, es más fácil de aplicar en muchas plataformas comerciales o de prueba, pero dista mucho de tener la complejidad de control y hardware/software necesarios para realizar un barrido de frecuencia como el que el prototipo de este proyecto es capaz de realizar. El hecho de que la señal de referencia del circuito de reloj de una tarjeta madre no deba contar con características difíciles de imitar o con una relación señal a ruido demasiado alta permitió sustituir la señal del cristal con una generada por un sintetizador. 54 Siendo esta transmitida a través de un cable coaxial sin perder calidad ni modificarse de forma que afectara el funcionamiento del reloj del sistema. El cuidado, precauciones y consideraciones tomadas al definir y diseñar la solución final y el prototipo permitieron reducir los problemas al pasar a la construcción y prueba, etapa que resultó muy exitosa, a parte de la depuración normal necesaria que no implicó ninguna modificación grande al prototipo. 6.2 Recomendaciones Para poder validar oficialmente la plataforma completa ante el QSC será necesario que en el laboratorio se pruebe cierta cantidad de unidades que hubieran sido ya caracterizadas para comprobar que cualquier posible fallo de una unidad a una frecuencia específica se repite consistentemente y no es causado por un posible mal funcionamiento de la plataforma. Sin embargo, para probar específicamente la herramienta de detección por sensibilidad a la frecuencia basta con realizar la prueba sobre una sola unidad comprobando que todos los requerimientos de la herramienta se están cumpliendo y que los resultados de las repetidas pruebas son consistentes; este último procedimiento se llevó a cabo con éxito. Aunque la posibilidad de implementar la herramienta de detección de fallas utilizando tanto un generador externo como manipulando los multiplicadores del FSB se descartó para este proyecto (debido a la complejidad del acceso y manipulación de los 55 registros que definen la velocidad del FSB y los multiplicadores del mismo, y a que un generador externo era suficiente para cumplir los requerimientos de la herramienta), existe una ventaja en este esquema de implementación, la cual se expone en los siguientes párrafos. Cuando se modifica la referencia del reloj del sistema, no sólo el procesador, si no el sistema completo, modifica sus frecuencias de funcionamiento, debido a lo cual cabe la posibilidad de que se detecte una falla de funcionalidad causada por el mal funcionamiento de algún componente distinto al procesador que podría llevar a una mala caracterización de éste. Si bien el fabricante asegura que el rango de funcionamiento del procesador es soportado también por el sistema, un error de este tipo no puede ser descartado del todo. Debido a esto sería recomendable considerar la posibilidad de implementar la herramienta de detección de fallas utilizando tanto un generador externo como manipulando los multiplicadores del FSB, para reducir la variación de la frecuencia en otros elementos del sistema, ya que manipular los multiplicadores solo afecta al procesador. De esta forma, se usarían los multiplicadores para realizar cambios grandes en la frecuencia del procesador sin modificarla en otros elementos del sistema y, dentro del rango definido por cada valor determinado por los multiplicadores, realizar cambios con el generador externo para lograr una mayor gama de frecuencias de operación. 56 57 BIBLIOGRAFÍA 1 . Amphenol® RF. «SMA connectors» (breve nota histórico-descriptiva de los conectores SMA), http://www.amphenolrf.com/ products /sma.asp 2. Corporación Intel. «IA-32 Intel® Architecture Software Developer’s Manual Volume 1: Basic Architecture», http://www.intel.com/design/Pentium4/manuals/ 25366515.pdf 3. Corporación Intel. «IA-32 Intel® Architecture Software Developer’s Manual Volume 3: System Programming Guide», http://www.intel.com/design/Pentium4/ manuals/25366815.pdf 4. Corporación Intel. «Intel Corporate Overview», http://www.intel.com/pressroom/ CorpOverview.htm 5. Corporación Intel. «Intel en Costa Rica», http//intel.com/costarica/encostarica.htm 6. Corporación Intel. «Intel en la comunidad», http//intel.com/costarica/costarica/ comunidad.htm 58 7. Corporación Intel. «Intel® Pentium® 4 Processor on 90nm Process Datasheet», http://www.intel.com/design/Pentium4/datashts/Pentium_4_90nm_Prescott30056102 8. Corporación Intel. «Intel® Processor Identification and the CPUID Instruction» http://www.intel.com/design/Pentium4/Processor_identification_and_CPUID_instru ction.pdf 9 . Corporación Intel. «Intel y la educación», http//intel.com/costarica/costarica/ educación.htm 1 0 .Elizondo, A. «Herramienta de Detección de Fallas de Funcionalidad en Procesadores Pentium® 4 de Intel® Debido a Sensibilidad de Voltaje». Proyecto presentado para optar por el grado de Bachiller en Ingeniería Eléctrica, Universidad de Costa Rica, Costa Rica, 2004. 11. Hennessy J., Patterson D. «Computer Architecture, A Quantitative Approach», 3era edición, Morgan Kaufmann, EE.UU., 2002. 12. Wakerly, J. «Diseño Digital, Principios y Prácticas», 3era edición (traducción del inglés), Pearson Educación, México, 2001. 59 13. Weste, N., Eshraghian, K. «Principles of VLSI Design, A Systems Perspective», 2da edición, Addison Wesley, EE.UU., 1993. 1 4 .«A Brief History Of Computers And Networks», http://goldenink.com/ computersandnetworks.shtml 15. «A History Of Computers», http://www.maxmon.com/history.htm 1 6 .«CMOS Gates Demonstration», http://tech-www.informatik.uni-hamburg.de/ applets/cmos/cmosdemo.html