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