Está en la página 1de 6

INTEGRACIN DEL MULTIPROCESADOR BASADO EN LA ARQUITECTURA DE DETECCIN DE EVENTOS (MADE)

Andrs UPEGUI (1), Ivn HERRERA (2), Hernn SNCHEZ (3) Grupo de Microelectrnica U.P.B., Medelln-Colombia
Email: microele@logos.upb.edu.co Direccin General de Investigaciones - Universidad Pontificia Bolivariana (U.P.B.) Emails: (1) andreseu@logos.upb.edu.co (2) ivan.herrera.mejia@intel.com (3) hernan.sanchez@iname.com

Resumen:

El Multiprocesador basado en la arquitectura de construido con base en una

deteccin de eventos (MADE),

novedosa arquitectura de multiprocesadores multiprogramados, es diseado para ser aplicado en sistemas de buses seriales de alta velocidad y aplicaciones que requieran grandes volumenes de operaciones matemticas. En el presente artculo se describe el diseo del Multiprocesador descrito en [1] y [2], integrando en un solo encapsulado cuatro procesadores, un mdulo detector de eventos y cada uno de los controladores necesarios para administrar la memoria de cada procesador.

I. INTRODUCCIN Las redes industriales se han diseando con el objetivo de controlar sistemas distribuidos en campo, donde existen grandes distancias entre las unidades de control y los diferentes actuadores o elementos finales del sistema. Hay dos parmetros a optimizar en dichas redes: mnima utilizacin de cableado y mxima velocidad. En la actualidad se tienen diferentes estndares de buses seriales de comunicacin (i.e. Profibus , PCI ) que cumplen con las condiciones descritas: slo utilizan un cable para interconectar los elementos y pueden transmitir a velocidades del orden de hasta 66 MHz.

El MADE en su primera etapa utilizaba la tcnica de memoria compartida [3], con dos microcontroladores 8031 como unidades bsicas de proceso, una memoria de programa para cada mdulo y una memoria de datos compartidos que permita coherencia entre los dos mdulos. En la segunda etapa se integran los nodos de procesamiento en una sola unidad, de modo que se puede lograr una mayor velocidad de trabajo, suprimiendo problemas de velocidad de transmisin entre buses externos. De igual forma, se busca optimizar el manejo de memoria con una tcnica de memoria compartida distribuida, reemplazando la memoria centralizada de la versin anterior. El diseo electrnico utilizando arreglos lgicos programables por voltajes (FPGAs) constituye una alternativa muy econmica y eficiente [5], que permite no slo la integracin de un gran nmero de lgica digital dentro de un mismo chip, sino que evita la necesidad de cableado y permite aumentar el rendimiento del sistema hasta frecuencias del orden de 100 MHz.

II. ESTADO ACTUAL DEL MULTIPROCESADOR MADE A.) Arquitectura del MADE En su primera etapa el multiprocesador cuenta con dos microcontroladores 8031, cada uno con memoria propia de programa y de datos, y un sistema de memoria de datos compartida. Los bloques se encuentran interconectados por medio de un bus bidireccional (Figura #1), el cual dispone de 8 lneas destinadas a transmitir las direcciones y datos y cuatro lneas de control, distribuidas de la siguiente manera: - Lnea de peticin del bus - Lnea de lectura / escritura - Lneas de asignacin del bus - Lnea de reloj del bus BP R/W_ LDA CK_BUS

El Multiprocesador MADE [1,2], ha sido diseado con el objetivo de procesar la informacin que reciba por el bus de datos a una elevada velocidad. Su principio de funcionamiento est basado en una arquitectura de deteccin de eventos [3]. La metodologa de funcionamiento de esta arquitectura consiste en ejecutar ciertos procesos como respuesta a la deteccin de uno o ms eventos. De esta manera no se tiene un sistema sincrnico que dependa de una nica seal de sincronismo, sino que cada nodo procesador acta independientemente en funcin de los procesos que le correspondan y hayan sido activados. La aparicin de un evento determinado libera la ejecucin de un nuevo proceso. De esta manera se economiza tiempo y se maximiza la utilizacin del Multiprocesador.

(El nmero de lneas LDA depende del nmero de nodos procesadores utilizados).

forma: en su memoria propia dispone de 16 Kbytes para memoria de programa, y otros 16 Kbytes destinados a datos. Los 32 Kbytes sobrantes son destinados para direccionar memoria compartida.

FIG. # 1. ARQUITECTURA DEL MADE

B.) Estructura del Nodo de Procesamiento Cada nodo procesador cuenta con un microcontrolador 8031, una memoria RAM esttica de 32 Kbytes y el controlador de la unidad de proceso (CODUP), implementado en una FPGA XC4010XL, la cual se encarga de administrar el acceso a la memoria externa propia y compartida (Ver Fig. #2).

FIG. #3. BLOQUE DE MEMORIA DEL MADE

E.) Manejo de Tiempos Para el manejo de tiempos del MADE es necesario monitorear las lneas de control del 8031 de modo que se pueda discriminar cuando se desea acceder a la memoria propia o memoria compartida. Igualmente es necesario garantizarle al microcontrolador que su esquema de tiempos ser respetado en cada acceso a la memoria compartida, an cuando la memoria ya est siendo usada por otro nodo de procesamiento, teniendo en cuenta que para el acceso a la memoria compartida es necesario solicitar el uso del bus, recibir una confirmacin, transmitir la direccin y enviar o recibir el dato deseado. Todo esto se debe realizar buscando lograr la menor latencia posible del sistema. Una descripcin detallada se encuentra disponible en [1]. F.) Implementacin del Sistema
FIG. #2. NODO DE PROCESAMIENTO

La memoria RAM compartida requiere el uso del administrador de memoria compartida (ADCOM) implementado en otra FPGA XC4010XL (Ver Fig.#3), con el fin de establecer las comunicaciones desde y hacia los nodos de procesamiento y para conmutar las seales de control de la memoria RAM. Este bloque ejecuta funciones tales como generar el reloj y administrar el uso del bus, asignando prioridades a cada uno de los nodos con las lneas LDA. C.) Administracin de Memoria Cada microcontrolador 8031 tiene la capacidad de direccionar 64 KB, los cuales se distribuirn de la siguiente

El multiprocesador est construido sobre tres tarjetas de desarrollo XS-40 de la compaa XESS (http://www.xess.com) las cuales contienen una FPGA XC4010XL, un microcontrolador Intel 8031, una memoria RAM esttica de 32 KB y tiene la capacidad de almacenar la configuracin de la FPGA usando una EEPROM serial de la familia AT17 de Atmel. Usando las tarjetas XS-40, se programan las FPGAs para que realicen una interconexin coherente entre los microcontroladores. La interconexin fsica se realiza usando una tarjeta especialmente diseada para tal propsito con lo que se logra un mejor rendimiento del sistema.

G.) Software de Prueba El software diseado para probar el sistema consiste en un programa desarrollado para el microcontrolador 8031. La funcin bsica del programa es encontrar el nmero mayor entre un conjunto de nmeros de longitud definida (en principio se habla de 100 nmeros). Para el multiprocesador, se envan serialmente los numeros a un 8031, el cual los almacena en la memoria compartida. Posteriormente, cada nodo de procesamiento realiza la comparacin de la mitad de los nmeros encontrando el mayor respectivo. Luego el primer microcontrolador que termine escribe su resultado en una direccin asignada en la memoria compartida, as como un registro designado para indicar que ha terminado la tarea. Cuando el otro nodo lee dicho registro, procede a capturar el dato arrojado por el primer microcontrolador y a realizar la comparacin final entre los dos nmeros y lo retorna por el puerto serial al PC. Esta tarea se repite indefinidamente generando un pulso cada vez que sta se complete. A partir del programa realizado para el microcontrolador 8031 y del anlisis de sistemas multiprocesados hermanos del MADE como el TORCH [7], se determin tericamente el nmero de ciclos de reloj que requiere el sistema para ejecutar toda la labor de comparacin de datos y devolucin del resultado. De acuerdo a la arquitectura del multiprocesador y a la estructura del programa se obtiene un resultado que denota mayor eficiencia para los programas que manejan grandes cantidades de informacin (Tabla # 1).
TABLA # 1. COMPARACIN DEL NMERO DE CICLOS

de Unidad de Proceso (CODUP II). Adicionalmente hay un mdulo detector de eventos (MODE), el cual se encarga de detectar los eventos configurados por el usuario y ejecutar las acciones necesarias para atender dicho evento.

FIG. # 4. ARQUITECTURA DEL MADE II

N um er os # Ci os M ono cl # Ci os M uli cl t Gananci a

10 1584 1095 1. 44

100 15624 8250 1. 89

1000 156024 79800 1. 95

Los datos obtenidos son ms satisfactorios a medida que el tamao del conjunto aumenta. Se puede observar en la Tabla 1. que para el caso de n=1000 se obtuvo una ganancia de 1.95, muy cercana a la ganancia ideal 2 descrita en [7]. Cabe anotar que la ganancia que se obtiene para alguna tarea depende en gran parte de la habilidad del programador para aprovechar los recursos que ofrece el multiprocesador.

Cada nodo de procesamiento dispone de una memoria externa, formando un sistema de memoria compartida distribuida con cuatro memorias y en el cual un nodo de procesamiento puede direccionar cualquier unidad de memoria. El sistema cuenta con cuatro buses: Bus de datos, el cual transmite direcciones y datos. Bus de deteccin de eventos externos, el cual tiene como funcin interconectar al MODE con las interfaces de entrada y salida. Bus de deteccin de eventos internos, el cual interconecta al MODE directamente con los procesadores. Bus de control, que interconecta al mdulo detector de eventos con los diferentes nodos de procesamiento. Como es evidente el sistema cuenta con una elevada cantidad de buses, lo cual implica un hardware ms costoso, pero se justifica en la medida que disminuye la latencia del sistema. B.) Nodo de Procesamiento Cada nodo de procesamiento esta compuesto por un procesador, un CODUP II y una memoria externa (Fig. # 5). Dicha memoria esta destinada a almacenar programa y datos. El programa tan solo podr ser accedido por el procesador correspondiente a su nodo, mientras que los datos estarn disponibles para cualquier procesador que requiera tanto escribir como leer. El procesador es un procesador RISC de 8 bits que cuenta con una interface de comunicacin UART, un modulo detector de eventos y un banco de 16 registros. El CODUP II es un mdulo controlado por una mquina de estados, que basicamente tiene tres estados principales. Tiene acceso al bus compartido y a la memoria correspondiente a su nodo, y tiene el control de la seal de reloj del procesador. A continuacin se describen los tres estados basicos del CODUP II.

III. MULTIPROCESADOR MADE II A.) Arquitectura La nueva versin del Multiprocesador Paralelo Basado en la Arquitectura de deteccin de Eventos (Figura # 4) consiste en 4 nodos de procesamiento independientes, cada uno consta de un procesador controlado por un Controlador

FIG.# 6. PROCESADOR DE 4 BITS FIG.# 5. NODO DE PROCESAMIENTO DEL MADE II.

El primer estado es considerado el estado normal de operacin, en el cual el procesador esta leyendo su memoria de programa y bien esta leyendo o escribiendo datos en su propia memoria, en este caso el CODUP II actua como un puente que permite la interconeccin entre ambos. El segundo estado es de acceso a memoria de otro nodo de procesamiento. En este caso el CODUP II detiene el oscilador del procesador, solicita el uso del bus compartido para luego enviar la direccin deseada y el dato si es un ciclo de escritura o espera el dato si el ciclo es de lectura. El tercer estado se da cuando la memoria del nodo procesador es requerida por otro nodo. En este caso la prioridad la tiene el otro nodo, de modo que se recibe la direccin requerida (y el dato si el ciclo es de escritura), se verifica si dicho espacio de memoria le corresponde, se detiene el reloj del procesador, se ejecuta la operacin de lectura o escritura y vuelve al estado normal de operacin. Dado el caso que en el momento de la solicitud del otro procesador la memoria este siendo utilizada por el procesador perteneciente al nodo, tanto la direccin como el dato son almacenados en buferes para reponer los datos al culminar la operacin. C.) Procesador Para efectos de prototipaje se implemento en un principio un procesador de 4 bits escalable a 4*n bits tipo RISC para procesamiento de datos seriales a una alta velocidad. En la primera versin del proyecto se desarroll en 4 bits como un ejercicio para ser escalado posteriormente a un nmero mayor de bits segn sea necesario. Se dise un procesador integrado en lenguaje VHDL (Figura # 6), con una cantidad de 5000 compuertas en un dispositivo de lgica programable FPGA de Xilinx. El procesador tiene actualmente una frecuencia de operacin es de 25 MHz (100 Mhz es la frecuencia mxima de la FPGA XC4010XL de Xilinx) que consume 4 ciclos de reloj por instruccin. Las cuatro micro-operaciones que realiza el procesador por instruccin son: fetch, decode, execution y memory read and writeback.

El procesador funcionar en dos posibles modos; el modo LOAD o de carga del programa, (por medio del cual se almacena el cdigo en la memoria RAM externa), y el modo EXECUTE o de ejecucin del programa previamente almacenado en la memoria RAM. La seleccin del modo de trabajo para el procesador se realiza mediante la seal de control Enable, as: (Enable = 0 => LOAD PROGRAM ; Enable = 1 ==> Modo EXECUTE). El bajo consumo de recursos del procesador permite multiplicar la cantidad de unidades procesadoras en un solo circuito integrado y construir de esta manera un solo sistema multiprocesador integrado en una nica pastilla semiconductora. D.) Mdulo Detector de Eventos Conforme con el principio de sincrona por medio de eventos externos al procesador, se dise un sistema de interrupciones programables por medio del software del procesador. El procesador incluye toda la lgica para que por medio de la instruccin PRG se permita accesar un modo especial de configuracin de eventos, tales como diferentes tipos de datos y de valores en registros que al presentarse generan seales de sincronismo para los procesadores adyacentes. De esta forma se puede activar la ejecucin de nuevos procesos hijos que no necesitarn informacin adicional del procesador padre ni ningn tipo de protocolo de arbitramento de buses. Aca se presenta una de las ventajas mas grandes del procesador, ya que con esta metodologa de sincronismo, se logra tener varias unidades procesadoras funcionando simultneamente, con el ms bajo contenido de encabezados o de informacin no til para el usuario externo. De esta forma, los mdulos detectores de eventos de cada uno de los nodos de procesamiento, estan programados para atender de cierta forma ciertos eventos en forma programable. Mientras que el detector de eventos global del multiprocesador tiene como funcin informarle a cada uno de dichos mdulos que tipo de eventos han ocurrido, bien sean externos o internos.

E.) Administracin de Memoria El procesador cuenta con un espacio total de memoria de 128 Kbytes, distribuido en 4 memorias RAM de 32 Kbytes. Cada memoria esta asignada a un procesador y es directamente manejada por el Controlador de Unidad de Proceso (CODUP), correspondiente al nodo. De estos 32 Kbytes, los 16 de menor peso estn asignados a la memoria de programa, y solo puede ser accedida por el procesador correspondiente a dicho nodo. Los 16 de mayor peso estn destinados a datos y pueden ser accedidos por cualquier procesador. El procesador a utilizar en cada nodo de procesamiento tiene la capacidad de direccionar 64 Kbytes de memoria de datos, los cuales son compartidos por los cuatro procesadores. El espacio de memoria de datos tiene un direccionamiento absoluto (Figura # 7), de modo que la memoria del nodo 0 almacena las direcciones desde la 0 hasta 16 Kbytes, la del nodo 1 va desde la direccin 16 K hasta 32 K, la del nodo 2 desde 32 K hasta 48 K y la del nodo 3 desde la direccin 48 K hasta 64 K

obtiene la direccin absoluta 0101111111111111 equivalente a 23 K. Cabe anotar que el sumador viene incluido en el CODUP II y solo es usado para el acceso a datos. Las direcciones de programa no se ven modificadas por el sumador, ya que cada procesador tan solo lee programa de su propia memoria. El programa esta almacenado dentro del espacio de memoria de 0 a 16 K. El procesador cuenta con una linea de P/D (Program / Data) (Figura # 5) que va al CODUP, dicha linea indica si el acceso es a memoria de programa o de datos y simplemente habilita o deshabilita el sumador. F.) Manejo de Tiempos El acceso a memorias de diferentes nodos implica una latencia adicional, ya que el procesador debe esperar a que el CODUP II ejecute la comunicacin con los otros nodos. Cada tipo de acceso (lectura o escritura) implicar una latencia diferente, cuando se realiza un ciclo de lectura de datos en otra memoria, el CODUP II se debe encargar de detener el procesador, comunicarse con el procesador deseado y enviarle la direccin, el otro CODUP II debe recibirla, leer el dato y devolverlo al solicitante. Para llevar a cabo dicha operacin la latencia estar entre 5 y 8 ciclos de reloj dependiendo de la asignacin del bus. Para un ciclo de escritura no habr necesidad de detener el reloj, ya que el procesador no estar esperando respuesta, a menos que dicha operacin este precedida por otro acceso a bus que no haya sido atendido. De igual forma, cuando una memoria va a ser accedida por otro nodo, se debe deshabilitar su procesador correspondiente. En este caso la latencia es de 2 ciclos tanto para el ciclo de lectura como de escritura. Se obtiene menor latencia del sistema, en general, con rutinas de escritura en memoria compartida, que con rutinas de lectura de memoria compartida, por lo tanto es virtud del programador y del compilador tratar de evitar al mximo las lecturas de memoria de otros nodos, ya que ademas de tomar mas ciclos de reloj, congestionan ms el bus ya que tienen que enviar una direccin y esperar una respuesta.

FIG.# 7. DISTRIBUCIN DE MEMORIA DE DATOS

Para cada nodo de procesamiento el espacio de memoria no ser absoluto sino relativo, de modo que cuando cualquier procesador requiere una direccin de la 0 a la 16 K, se refiere a su propia memoria, de 16 a 32 K se refiere al nodo de procesamiento que le sucede y asi sucesivamente. Dicho direccionamiento se logra sumandole cierta cantidad (+0,+1,+2,+3) a los 2 bits de mayor peso del bus de direcciones (Figura # 7). Por ejemplo, el procesador 2 requiere el dato que se encuentra en la direccin 7 K de la memoria del nodo 1, dicha direccin es 16 K + 7 K = 23 K en el espacio de direccionamiento absoluto. Pero cada procesador tiene un direccionamiento relativo, de modo que para el procesador 2 es la direccin (16 K x 3) + 7 K = 55 K (16 K se multiplica por 3 debido a que el nodo 1 esta tres puestos mas adelante que el nodo 2). Asi que el procesador direcciona 55 K equivalente a 1101111111111111 al sumar 2 (10) a los dos bits de mayor peso (11) queda 10 + 11 = 01 (no se tiene en cuenta carry). Asi se

IV. CONCLUSIONES La caracterstica de ser un sistema multiprocesado con nodos de proceso ejecutando programas independientes sugiere una plataforma de desarrollo muy novedosa para aplicaciones que requieran alta velocidad de ejecucin y posibilidad de asignacin de proceso concurrentes. El MADE presenta un modelo muy apropiado para los sistemas de comunicacin serial, donde los requisitos de velocidad y volumen de informacin no permiten el uso de sistemas monoprocesados tradicionales. El sistema brinda la posibilidad de manejar grandes cantidades de informacin que requieran cierto tratamiento matemtico, ya que el multiprocesador se presta para que cada nodo procese ciertos datos o realice ciertas

operaciones arrojando varios resultados parciales. Y as lograr un sistema multitarea a nivel de hardware. La siguiente tarea del MADE ser demostrar su capacidad de procesamiento al ser utilizado como unidad de proceso en un enlace con un sistema de comunicaciones PCI de 32 bits a 32 MHz.

V. REFERENCIAS [1] I. Herrera, H. Snchez, A. Upegui, L. Restrepo. Multiprocesador Paralelo Basado en la Arquitectura de deteccin de Eventos (MADE), En: SE99: 1er. Seminario Nacional de Investigacin en Ingeniera Electrnica y Telecomunicaciones en Colombia. Universidad de los Andes. Bogot. 1999. [2] I. Herrera, H. Snchez, A. Upegui, L. Restrepo. Modelo de Simulacin y Prueba para el Multiprocesador Paralelo Basado en la Arquitectura de deteccin de Eventos (MADE), En: VI Workshop Iberchip. Sao Paulo, Brasil, Marzo, 2000. [3] R. Gerndt, An Event-Driven Multi-Threading Architecture for Embedded Systems, Proceedings of the codes/CASHE '97 [4] John D. Kubiatowicz. Integrated Shared-Memory and Message-Passing Communication in the Alewife Multiprocessor. PhD thesis, Massachusetts Institute of Technology, Department of Electrical Engineering and Computer Science, February 1998. [5] S. Hauck. The Roles of FPGAs Reprogrammable Systems. In Proceedings of theIEEE, Vol 86. No 4, Abr. 1998. p 615 635. [6] The Programmable Logic Data Book 1998. XILINX. [7] The Torchers. TORCH Architectural Specification. 1992. Stanford University. [8] K. Hwang, F. Briggs. Arquitecturas de computadores y procesamiento paralelo. 1ed. McGraw-Hill. Madrid, 1988. [9] M. Flynn, Computer Architecture: Pipelined and Parallel Processor Design. Ago. 1995.

UPB, en el cual dirige varios proyectos de investigacin de arquitecturas de procesadores, tratamiento de seales de audio y video y diseo y construccin de dispensadores inteligentes entre otros. Profesor de la materia Electrnica Integrada en la misma universidad. Miembro activo del grupo de Microelectrnica de la U.P.B. desde 1998. Ha asistido a eventos como el 37 Design Automation Conference en Los Angeles como expositor y como ponente al 1 Congreso Internacional de Ingenieras elctrica y electrnica en Bucaramanga entre otros, adems de una publicacin en el VI Workshop de Iberchip en Sao Paulo. Ha asistido a cursos como al Xilinx University Workshop (San Jose, CA , USA) , y al Seventh Training on SoC Design Using Design and Prototyping Platforms (Santa Clara, CA, USA) entre otros. reas de Inters: Lenguajes HDL, Microelectrnica, Arquitecturas y programacin de procesadores Ivn Herrera: Ingeniero Electrnico de la Universidad Pontificia Bolivariana. Ingeniero de planta en Intel ( Costa Rica), fue profesor de tiempo completo en la Facultad de Ingeniera Electrnica, de la cual tambin fue coordinador del Grupo de Investigacin en Microelectrnica. Desde 1997 se encuentra vinculado con investigaciones en el rea de arquitectura de procesadores y el diseo de circuitos utilizando lgica reconfigurable. Entre 1998 y 1999 trabaj en el laboratorio de Profibus del Instituto de Microelectrnica Aplicada IAM FuE GmbH en Braunschweig - Alemania. Ha participado en varios eventos de microelectrnica entre los cuales figura el 37 Design Automation Conference en Los Angeles, el VI Workshop de Iberchip en Sao Paulo, Seventh Training on SoC Design Using Design and Prototyping Platforms en Santa Clara, California y los Workshop de Xilinx ITESM en Guadalajara y en San Jose, California. Hernn Snchez: Ingeniero Electrnico de la U.P.B. Trabaja como profesor de la materia Electrnica Integrada desde 1995, en la cual introduce el diseo de lgica programable empleando lenguajes de descripcin de hardware VHDL y dispositivos tipo FPGA's. Miembro fundador del grupo de microelectrnica U.P.B del cual es coordinador del rea de investigaciones. Ha desarrollado conferencias y cursos especiales con la UPB desde 1997. Asistente a varios eventos de Microelectrnica, como el Workshop de Xilinx (Guadalajara, Mxico) y el Curso Internacional de Tcnicas de Diseo de Circuitos Integrados VLSI (Medelln, Colombia). Actualmente se desempea como Analista de Telecomunicaciones en SURATEP.

VI. CURRCULUMS Andrs E. Upegui Posada: Ingeniero Electrnico de la UPB, Coordinador del Grupo de Microelectrnica de la

También podría gustarte