Figura 1. Símbolo que representa una ALU. El sentido y la funcionalidad de las señales de la ALU de la Figura 1 es el siguiente:



Documentos relacionados
3.8 Construcción de una ALU básica

Por ejemplo, los números binarios sin signo que se pueden construir con 4 bits son: bit más significativo more significant bit (msb)

ELO311 Estructuras de Computadores Digitales. Unidad Aritmética

x

T6. CIRCUITOS ARITMÉTICOS

INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA INGENIERIA EN COMUNICACIONES Y ELECTRÓNICA ACADEMIA DE COMPUTACIÓN

Tema 11: Sistemas combinacionales

Generación de funciones lógicas mediante decodificadores binarios con salidas activas a nivel alto

Transformación de binario a decimal. Transformación de decimal a binario. ELECTRÓNICA DIGITAL

La Unidad Procesadora.

Sistemas de numeración

CIRCUITOS ARITMÉTICOS

Clase 02: Representación de datos

Universidad Autónoma de Baja California Facultad de Ingeniería Mexicali

Tema IV. Unidad aritmético lógica

CODIFICADORES. Cuando solo una de las entradas está activa para cada combinación de salida, se le denomina codificador completo.

21/02/2012. Agenda. Unidad Central de Procesamiento (CPU)

ALU. Unidad aritmético-lógica

5.1.1 Sumadores con anticipación de Acarreo. g i = a i b i. c i = c i-1 p i + g i s i = p i + c i-1. c 0 = g 0 + c -1 p 0

FUNCIONES ARITMÉTICAS Y

Los sistemas de numeración se clasifican en: posicionales y no posicionales.

28 = =

Unidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal)

Sistemas Digitales Ingeniería Técnica en Informática de Sistemas Curso Aritmética binaria

Naturaleza binaria. Conversión decimal a binario

TEMA 6. Circuitos Aritméticos.

Modelo de examen tipo resuelto 1

Primeros conmutadores: diodos de cristal y de tubos de vacío (1906). Transistor (TRT): más pequeño y fiable, de material semiconductor (1950).

ELO211: Sistemas Digitales. Tomás Arredondo Vidal 1er Semestre 2009

ELECTRÓNICA DIGITAL. Una señal es la variación de una magnitud que permite transmitir información. Las señales pueden ser de dos tipos:

1. Se establecen los conceptos fundamentales (símbolos o términos no definidos).

Aritmética Binaria. Luis Entrena, Celia López, Mario García, Enrique San Millán. Universidad Carlos III de Madrid

18. Camino de datos y unidad de control

LECCIÓN 8: CIRCUITOS Y ALGORITMOS DE MULTIPLICACIÓN DE ENTEROS

DISEÑO DE CIRCUITOS LOGICOS COMBINATORIOS

Laboratorio 1 Implementación de un sumador binario

OR (+) AND( ). AND AND

Tema I. Sistemas Numéricos y Códigos Binarios

DOMINIO Y RANGO DE UNA FUNCIÓN I N D I C E. martilloatomico@gmail.com. Página. Titulo:

TEMA 6 ARITMÉTICA BINARIA Y CIRCUITOS ARITMÉTICOS

Representación de números en binario

Circuitos Electrónicos. Primer parcial curso

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso

Ecuaciones de primer grado con dos incógnitas

Maria José González/ Dep. Tecnología

SISTEMAS DE NUMERACIÓN. Sistema de numeración decimal: = =8245,97

ELO211: Sistemas Digitales. Tomás Arredondo Vidal

Computación I Representación Interna Curso 2011

Funciones, x, y, gráficos

LABORATORIO DE ARQUITECTURA DE COMPUTADORES. I. T. I. SISTEMAS / GESTIÓN GUÍA DEL ALUMNO

Circuitos Electrónicos. Septiembre 2005/2006. Problema 1º parcial

SISTEMAS DE NUMERACIÓN. Sistema decimal

Elementos requeridos para crearlos (ejemplo: el compilador)

FORMATO DE CONTENIDO DE CURSO

TEMA 5. SISTEMAS COMBINACIONALES MSI.

ÍNDICE DISEÑO DE CONTADORES SÍNCRONOS JESÚS PIZARRO PELÁEZ

Informática Bioingeniería

TECNOLOGÍA 4º ESO Realizando la lectura como indica la flecha obtenemos: 20 10) = ) Lectura

Puertas Lógicas. Contenidos. Objetivos

Tema 2. La Información y su representación

Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología

Instructivo Postulación en Línea Admisión Año Académico 2015 Escuela de Postgrado

Matemáticas Básicas para Computación. Sesión 7: Compuertas Lógicas

Simulín. Qué es Simulín? Características. Simulador de circuitos digitales para uso docente. v5.60 (Julio 2014) Función lógica (expresión algebraica)

Sumador: C o. C in. Sumador serie: Sumador paralelo con propagación de arrastre:

DESARROLLO DE HABILIDADES DEL PENSAMIENTO LÓGICO

Introducción a la Firma Electrónica en MIDAS

DEPARTAMENTO DE CIENCIAS BÁ SICAS E INGENIERÍAS INGENIERÍA EN TELEMÁ TICA

SITEMA BINARIO, OCTAL Y HEXADECIMAL: OPERACIONES

Capítulo 1: Sistemas de representación numérica Introducción. Dpto. de ATC, Universidad de Sevilla - Página 1 de 8

Práctica 4 Diseño de circuitos con puertas lógicas.

UNIDADES FUNCIONALES DEL ORDENADOR TEMA 3

Anterior Sistemas binarios: Aritmética binaria Siguiente ARITMÉTICA BINARIA. Operaciones elementales con números binarios

El álgebra booleana (Algebra de los circuitos lógicos tiene muchas leyes o teoremas muy útiles tales como :

3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON)

Lo que definimos como CPU (Central Process Unit) o Unidad Central de Proceso, está estructurado por tres unidades operativamente diferentes:

Representación de números enteros: el convenio signo y magnitud

COMO CONFIGURAR UNA MAQUINA VIRTUAL EN VIRTUALBOX PARA ELASTIX

La nueva criba de Eratóstenes Efraín Soto Apolinar 1 F.I.M.E. U.A.N.L. San Nicolás, N.L. México. efrain@yalma.fime.uanl.mx

5.4. Manual de usuario

Sistemas de Numeración Operaciones - Códigos

SUMADOR BINARIO. Instituto Internacional de Investigación de Tecnología Educativa

Figura 1: Símbolo lógico de un flip-flop SR

Estructuras de Control - Diagrama de Flujo

Solecmexico Página 1 SUMADOR BINARIO

AGREGAR UN EQUIPO A UNA RED Y COMPARTIR ARCHIVOS CON WINDOWS 7

Instructivo Interno UNIVERSIDAD. Popular del cesar

❷ Aritmética Binaria Entera

Algoritmos y Diagramas de Flujo 2

Operaciones Booleanas y Compuertas Básicas

TEMA II: ÁLGEBRA DE CONMUTACIÓN

Tema 16 ELECTRÓNICA DIGITAL LENGUAJES DE DESCRIPCIÓN DE LOS SISTEMAS DIGITALES (PARTE 1)


capitulo3 MARCO TEÓRICO Para el diseño de la reubicación de los procesos se hará uso de la Planeación

PROGRAMA DE LA ASIGNATURA: LABORATORIO DE ELECTRÓNICA DIGITAL

LABORATORIO DE COMPUTADORAS

FORMATO BINARIO DE NÚMEROS NEGATIVOS

Proyecto de Diseño 2

Práctica 5. Curso

Transcripción:

Departamento de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Antioquia Arquitectura de Computadores y Laboratorio ISI355 (2011 2) Práctica No. 1 Diseño e implementación de una unidad aritmético lógica (ALU) 1. Objetivo Aplicar el proceso de diseño de sistemas digitales combinacionales. Emplear herramientas de software para el diseño y la simulación de sistemas digitales. 2. Descripción En esta práctica se diseñará y simulará un modelo combinacional de una unidad aritmético lógica (ALU), siguiendo un estilo de diseño jerárquico, partiendo de componentes básicos para luego implementar otros más complejos. La ALU es uno de los componentes fundamentales de un computador ya que se encarga de realizar operaciones aritméticas y lógicas sobre datos de entrada o valores producidos durante la ejecución de los programas. Su símbolo se muestra en la Figura 1. Figura 1. Símbolo que representa una ALU El sentido y la funcionalidad de las señales de la ALU de la Figura 1 es el siguiente: a, b: Operandos de entrada. ALU operation: Señal de control que ordena la operación a realizar sobre los operandos de entrada. Result: Resultado de la operación. 1

Zero: Overflow: Salida que se activa (se pone en 1 ) cuando Result es igual a cero. Salida que se activa (se pone en 1 ) cuando la operación produce un desbordamiento. Como la arquitectura MIPS que vamos a estudiar en la segunda parte del curso tiene un tamaño de palabra de 32 bits, construiremos una ALU con operandos de este tamaño. Para lograr este propósito, debemos permitir que la ALU soporte las operaciones AND, OR, NOR, suma, resta y active si es menor que (set on less than, SLT) 1. Gracias a la regularidad de las operaciones que realiza una ALU, una ALU con operandos de 32 bits puede construirse conectando 32 ALUs de 1 bit. Por lo tanto, seguiremos un estilo diseño estructural y jerárquico, partiendo de componentes simples para lograr otros más complejos, y así hacer manejable la complejidad del problema. El proceso de diseño de la ALU de 32 bits empieza, entonces, por el diseño de una ALU de 1 bit. ALU de 1 bit Las operaciones lógicas AND y OR a realizar por la ALU son muy simples porque mapean directamente a componentes de hardware básicos. La unidad lógica de 1 bit para las operaciones AND y OR tiene la forma descrita en el Figura 2. El multiplexor se encarga de dirigir a la salida el resultado de la operación elegida sobre los operandos de entrada. Figura 2. Unidad lógica de 1 bit para las operaciones AND y OR Para implementar la operación de suma requerimos de dos entradas para los operandos y una salida para el resultado, además de una entrada y una salida extras que harán las veces de acarreos de entrada y salida, respectivamente. El objetivo es construir un sumador completo de 1 bit, como el que se muestra en la Figura 3. Conociendo el comportamiento de la operación de suma, podemos construir una tabla de verdad que relaciona las entradas y salidas del sumador completo de 1 bit, tal como se muestra en la Tabla 1. A partir de esta tabla, y empleando los mapas de Karnaugh, es posible obtener expresiones lógicas minimizadas para las dos salidas del sumador completo de 1 bit (CarryOut y Sum). 1 La operación set on less than compara los operandos de entrada, produciendo un 1 en la salida Result cuando a sea menor que b (a < b). En cualquier otro caso, produce un 0. 2

Figura 3. Vista de alto nivel del sumador completo de 1 bit Combinando el sumador completo de 1 bit con los elementos mostrados en la Figura 1 para realizar las operaciones lógicas AND y OR, y expandiendo el multiplexor para dar cuenta de las tres operaciones posibles, obtenemos una ALU de 1 bit que puede realizar las operaciones suma, AND y OR, tal como se muestra en la Figura 4. Ahora la entrada Operation requiere de 2 bits, y su codificación se hace explícita en la misma figura. Si el diseñador desea agregar más operaciones a la ALU, debe expandir el multiplexor de salida y sus líneas de selección, además de agregar los componentes digitales necesarios para implementar las nuevas operaciones. Tabla 1. Relación de entradas y salidas para el sumador completo de 1 bit Figura 4. ALU de 1 bit que realiza las operaciones suma, AND y OR 3

La operación de resta equivale a la de suma usando la versión negativa de uno de los operandos. Esta es la manera como la operación de resta se implementa mediante un sumador. Por ejemplo, para calcular a b, podríamos emplear el sumador completo de 1 bit haciendo la operación a + ( b). Los números negativos se representan usando el complemento a dos, el cual se calcula invirtiendo cada bit del número y luego sumándole 1. Por lo tanto, es válido escribir: a b = a + ( b) = a + (b + 1) Para lograr que la ALU de 1 bit pueda restar, debemos tener la posibilidad de invertir la entrada b y sumarle 1. Para invertir la entrada b podemos agregar una puerta NOT, y usar un multiplexor para elegir entre el valor de b y su complemento, tal como se muestra en la Figura 5, en donde la nueva señal Binvert es la señal de control de este multiplexor. Para sumar el 1 que demanda el complemento a dos en caso de una operación de resta, podemos fijar un 1 en la entrada CarryIn, logrando el efecto deseado. Figura 5. ALU de 1 bit que realiza las operaciones suma, resta, AND, OR Para implementar la operación NOR podemos reutilizar mucho del hardware de la ALU de 1 bit de la Figura 5. Recordando el teorema de De Morgan: (a + b) = a b Vemos que NOT (a OR b) equivale a (NOT a) AND (NOT b), y para calcular esto último disponemos de una puerta AND y del valor NOT b, de modo que sólo requerimos del complemento de a. Para invertir la entrada a podemos agregar una puerta NOT, y usar un multiplexor para elegir entre el valor de a y su complemento, mediante la señal de control Ainvert, tal como se muestra en la Figura 6. Por lo tanto, para realizar la 4

operación NOT (a OR b) elegimos los valores a (haciendo Ainvert = 1) y b (haciendo Binvert = 1), y tomamos como resultado aquel que produce la puerta AND. Así completamos una ALU de 1 bit que puede realizar las operaciones suma, resta, AND, OR y NOR, la cual se ilustra en la Figura 6. ALU de 32 bits Figura 6. ALU de 1 bit que realiza las operaciones suma, resta, AND, OR y NOR La ALU de 32 bits se puede construir a partir del encadenamiento de 32 ALUs de 1 bit, tal como se ilustra en la Figura 7, en donde cada ALU de 1 bit aporta un bit al resultado de 32 bits. Observe que el acarreo de salida de la ALU que calcula el bit menos significativo del resultado (ALU0) se propaga a través de todo el sumador. Aún debemos lograr que la ALU realice la operación set on less than (SLT). Recordemos que esta operación produce un 1 cuando a < b, y 0 en otro caso. Por lo tanto, en el caso de una ALU de 32 bits, la operación SLT ajusta todos los bits del resultado a 0, excepto el menos significativo, el cual se ajusta de acuerdo al resultado de la comparación. Para que la ALU pueda realizar la operación SLT, es necesario expandir el multiplexor de salida de la Figura 6 agregándole una entrada para producir el resultado de la operación SLT. Esta nueva entrada se denomina Less y se usa solamente en la operación SLT, tal como se puede observar en la Figura 8. De la descripción previa de la operación SLT, la entrada Less de los 31 bits más significativos de la ALU debe conectarse a 0, ya que estos bits son siempre cero. Para el bit menos significativo del resultado de la operación SLT, necesitamos que sea 1 si a < b. Observe que si se sustrae b de a, y la diferencia es negativa, entonces a < b. De manera que si se realiza la operación a b, basta con analizar el bit de signo del resultado ( 1 significa negativo, 0 significa positivo) para conocer el resultado de la operación SLT. 5

Figura 7. ALU de 32 bits construida a partir de 32 ALUs de 1 bit Figura 8. ALU de 1 bit que realiza las operaciones suma, resta, AND, OR y NOR y con una entrada directa para la operación SLT Para conformar el resultado de la operación SLT necesitamos tomar el bit de signo del resultado de la operación a b, el cual corresponde a la salida del sumador completo de 1 bit de la ALU que calcula el bit más significativo del resultado. La Figura 9 ilustra el nuevo diseño de la ALU de 1 bit necesaria para calcular el bit más significativo del resultado. 6

Aquí, la salida del sumador completo de 1 bit se lleva a la salida Set, usada solamente por la operación SLT. Como se necesita una ALU especial para el bit más significativo, también se considera aquí la lógica necesaria para la detección de la condición de desbordamiento (bloque Overflow detection), que calcula la salida Overflow. El desbordamiento ocurre cuando el resultado de una operación no puede representarse con el hardware disponible. Por ejemplo, cuando se suman dos números de 32 bits el resultado puede requerir de 33 bits para ser representado correctamente. La ausencia de este bit extra significa que cuando ocurre un desbordamiento, el bit de signo del resultado es realmente el bit más significativo del mismo. La lógica del bloque Overflow detection se puede implementar de muy diversas maneras. Figura 9. ALU de 1 bit que realiza las operaciones suma, resta, AND, OR y NOR, con una entrada y una salida directas para la operación SLT La ALU de 32 bits capaz de realizar también la operación SLT se construye como se muestra en la Figura 10. Los 31 bits menos significativos se implementan con la ALU de 1 bit de la Figura 8, mientras que el bit más significativo se implementa con la ALU de 1 bit de la Figura 9. La salida Zero de la ALU de la Figura 1 es una salida de 1 bit que se activa cuando el resultado es igual a cero. Tal como se muestra en la Figura 11, esta condición se detecta mediante el bloque Zero detection, el cual se encarga de analizar el resultado producido por la ALU de 32 bits, para generar la salida Zero. Considerando la Figura 10, observe que cada vez que deseamos que la ALU realice la operación de resta es necesario ajustar la entrada Binvert a 1 y asegurarnos de que el acarreo de entrada de la ALU que calcula el bit menos significativo del resultado sea igualmente 1. Cuando la ALU realiza las demás operaciones, ambas líneas de control deben ser 0. Por consiguiente, podemos simplificar el control de la ALU mediante la combinación de las señales CarryIn (de la ALU que calcula el bit menos significativo del 7

resultado) y Binvert en una sola línea de control llamada Bnegate, que será 1 cuando la ALU deba calcular una resta, y 0 cuando la ALU deba realizar otra operación. De manera similar, podemos combinar la señal Ainverter, la señal Bnegate y la señal de 2 bits Operation en sola una señal de control de 4 bits para la ALU, que le indica calcular las operaciones suma, resta, AND, OR, NOR y SLT, con la codificación que se muestra en la Tabla 2. En la Figura 11 se ilustra la forma definitiva de la ALU de 32 bits. Figura 10. ALU de 32 bits que realiza las operaciones suma, resta, AND, OR, NOR y SLT Tabla 2. Valores de las líneas de control de la ALU de 32 bits(ainvert, Bnegate y Operation(2)) y su correspondiente función 8

Figura 11. ALU de 32 bits que realiza las operaciones suma, resta, AND, OR, NOR y SLT, con salidas Zero y Overflow 3. Procedimiento Cada grupo de trabajo seguirá la descripción del numeral anterior para implementar una ALU de 32 bits. El diseño se hará siguiendo un estilo de diseño estructural en el que se diseñan bloques básicos que luego son instanciados para crear otros más complejos y de mayor nivel en la jerarquía de diseño. Para el diseño y simulación de la ALU de 32 bits se debe emplear Logisim, una herramienta gráfica, de código abierto, para el diseño y simulación de circuitos digitales. Para familiarizarse con su uso se recomienda seguir el tutorial para principiantes del que dispone y conocer la estructura de la guía de usuario para recurrir a ella cada vez que sea necesario resolver una duda sobre su empleo. La estructura a nivel de bloques (en diferentes niveles de la jerarquía de diseño) que debe tener la ALU de 32 bits es la siguiente: ALU 32 bits (Figura 1) ALU 1 bit (Para los 31 bits menos significativos. Ver Figura 8) ALU 1 bit (Para el bit más significativo. Ver Figura 9) 9

Overflow detection (Bloque para detectar el desbordamiento en el bit más significativo. Ver Figura 9) Zero detection (Bloque para generar la salida Zero. Ver Figura 11) Sumador completo de 1 bit (Bloque para implementar las ALUs de 1 bit. Ver Figura 3) Multiplexor 4:1 (Para elegir el resultado de la operación de las ALUs de 1 bit) Para el diseño del sumador completo de 1 bit se deben obtener las expresiones lógicas minimizadas para sus salidas empleando mapas de Karnaugh, partiendo de la descripción funcional que se muestra en la Tabla 1. La implementación de los bloques Overflow detection y Zero detection se debe realizar mediante compuertas lógicas básicas, documentando ampliamente su diseño. Los demás elementos necesarios para implementar la ALU de 32 bits serán tomados de la biblioteca de componentes de Logisim. La ALU de 32 bits tiene que ser simulada exhaustivamente con la misma herramienta para verificar su correcto funcionamiento. Especial atención se debe dar a la verificación de la detección correcta de las condiciones de desbordamiento. 4. Informe Cada equipo debe realizar un informe escrito que incluya una descripción completa del proceso de diseño de la ALU de 32 bits, los esquemáticos de los diferentes componentes del diseño, una simulación exhaustiva del mismo, y las observaciones y conclusiones del trabajo. 5. Sustentación Cada equipo debe demostrar un dominio completo del desarrollo de la práctica. El profesor planteará preguntas para evaluar los conocimientos adquiridos, cubriendo los siguientes aspectos: Diseño jerárquico de circuitos combinacionales. Simplificación de expresiones lógicas mediante mapas de Karnaugh Detección del desbordamiento en operaciones aritméticas. Manejo de la herramienta Logisim. 10

6. Evaluación El informe escrito debe enviarse por correo electrónico al profesor (farivera@udea.edu.co) antes de la fecha y hora por él designada. El proyecto Logisim con el diseño de ALU se debe enviar como adjunto al informe. La sustentación se hará en el horario estipulado para la realización de las prácticas. El informe tiene un peso del 30% en la calificación de la práctica. La sustentación, por su parte, tiene un peso del 70%. 7. Material de soporte La herramienta Logisim se puede descargar aquí: http://ozark.hendrix.edu/~burch/logisim 11