SlideShare a Scribd company logo
1 of 86
DISEÑO RTL DE PROCESADORESARITMÉTICOS MICROELECTRÓNICA IE. MSc. José Armando Becerra Vargas
REQUISITOS DEL CURSO Para abordar temas de diseño jerárquico, descripción a nivel RTL y diseño de procesadores aritméticos en general, el estudiante debe tener conocimientos de los siguientes temas: Análisis y síntesis de sistemas combinacionales; lógica cableada, Lógica modular y descripción en VHDL de sistemas combinacionales. Análisis y síntesis de sistemas secuenciales; Máquinas de estado de Mealy y Moore, Diseño de alto nivel y descripción en VHDL de sistemas secuenciales. Conocimiento básico de arquitectura de computadores; Funcionamiento de una ALU, sistemas que realizan operaciones, Registros, Contadores, Memorias RAM y ROM, descripción en VHDL de sistemas complejos. Manejo adecuado de las herramientas EDA. Para el caso específico, conocimiento, destreza y manejo del software ISE FOUNDATION de XILINX.
CONSIDERACIONES GENERALES DE UN SISTEMA DE TRANSFERENCIA DE REGISTROS Los componentes básicos de este método son aquellos que describen un sistema digital a partir del nivel operacional. La operación de un sistema digital se describe de mejor manera especificando: El conjunto de registros en el sistema y sus funciones. La información en código binario almacenada en los registros. Las operaciones realizadas a partir de la información almacenada en los registros. Las funciones de control que inician la secuencia de operaciones. Estos cuatro componentes forman la base del método de lógica de transferencia entre registros para describir sistemas digitales. Un registro como se define en la notación de lógica de transferencia entre registros, no solamente implica un registro en general, sino que abarca todos los otros tipos de registros, tales como registros de desplazamiento,  contadores y unidades de memoria.  Un contador se considera como un registro cuya función es incrementar en 1 la información almacenada en él.  Una unidad de memoria se considera como una colección de registros de almacenamiento donde se va a almacenar la información. Un Flip-Flop por si solo se toma como un registro  de 1 bit, los Flip-Flop y las compuertas asociadas de cualquier circuito secuencia se llaman registro.
CONSIDERACIONES GENERALES DE UN SISTEMA DE TRANSFERENCIA DE REGISTROS La información binaria almacenada en los registros  podría ser números binarios, números decimales codificados en binario, caracteres alfanuméricos, control de información ó cualquier información binaria codificada. Las operaciones que se realizan mediante los datos almacenados en los registros, depende del tipo de datos que se encuentren.  Los números se manipulan con operaciones aritméticas, mientras que el control de información se manipula por lo general con operaciones lógicas tales como activar o borrar bits del registro. Las operaciones realizadas con los datos almacenados en los registros, se llaman microoperaciones.  Una microoperación es una operación elemental que puede ser realizada en paralelo durante un periodo de pulso de reloj.  El resultado de la operación puede reemplazar la información binaria previa de un registro o puede ser transferida a otro registro. Ejemplos de microoperaciones son: Desplazar, contar, sumar, borrar y cargar.
CONSIDERACIONES GENERALES DE UN SISTEMA DE TRANSFERENCIA DE REGISTROS Las microoperaciones especifican las operaciones elementales que se realizan con la información almacenada en los registros.  Los tipos de microoperaciones encontradas más a menudo en los sistemas digitales pueden clasificarse en cuatro categorías:  Microoperaciones de transferencia entre registros que no cambian el contenido de la información cuando la información binaria se mueve de un registro a otro. Las microoperaciones aritméticas realizan aritmética con los números almacenados en los registros. Microoperaciones lógicas realizan operaciones tales como la AND y OR con el par de bits individuales almacenados en los registros. Las microoperaciones de desplazamiento especifican operaciones para los registros de desplazamiento.
ESTRUCTURA GENERAL DE UN SISTEMA DE TRANSFERENCIA DE REGISTROS Diagrama de GLUSHKOV
NIVEL DE TRANSFERENCIA ENTRE REGISTROS El comportamiento de un sistema digital a nivel de transferencia de registros se puede definir mediante un conjunto de operaciones O1 ,O2 , O3 , … On  realizadas sobre diferentes datos externos o internos.  Cada una de estas operaciones elementales se lleva a cabo mediante transferencias entre registros  cuya forma mas general puede ser:           R[m]   f ( R[i], R[j], R[k], …)
LENGUAJE DE TRANSFERENCIA DE REGISTROS ,[object Object]
En caso de necesitar saber el número o posición de los bits transferidos se indica de la siguiente manera:   B[7-0]  A[15-8]
Normalmente la transferencia está controlada mediante una señal de habilitación E (enable), se suele expresar de la siguiente forma:    E : B  A
La señal de habilitación puede ser mas compleja, por ejemplo:Si x = 0 y t = 1      B A En otro caso        B  C
LENGUAJE DE TRANSFERENCIA DE REGISTROS Los registros pueden ser objeto de las operaciones aritméticas y lógicas habituales, así tendremos: 	D  A B 	LSR (A) 	ASR (A) 	A  A + 1 Otro operador disponible es & (concatenación)  p.ej LSR (A&B)
LENGUAJE DE TRANSFERENCIA DE REGISTROS Las transferencias de datos entre registros y memoria se pueden tratar como casos particulares del caso anterior donde tendremos dos operaciones gobernadas por las señales de control R (lectura) y W (escritura) y usando los registros MAR y MBR con la notación habitual tendremos: 	R:	MBR  M((MAR)) 	W:	M((MAR))  MBR  MAR: MemoryAddressRegister  MBR: Memory Buffer Register  MDR: Memory Data Register Por último las transferencias entre buses y registros se escriben de forma similar: A Inbus [8] Outbus [8]  A
    OPERACIÓN                                    DESCRIPCIÓN :  El contenido de R1 se transfiere a R2 OPERACIONES DE TRANSFERENCIA Identificación de Registros en operaciones de transferencia:
OPERACIONES DE TRANSFERENCIA Operación condicional: Notación de transferencia entre registros:
OPERACIONES DE TRANSFERENCIA Símbolos usados en el lenguaje de transferencia de Registros:
OPERACIONES DE TRANSFERENCIA Ejemplo de Micro-operaciones Aritméticas:
OPERACIONES DE TRANSFERENCIA Implementación de las operaciones de transferencia:
OPERACIONES DE TRANSFERENCIA Micro-operaciones Lógicas:  Ejemplo de operaciones de desplazamiento:
TRANSFERENCIA UTILIZANDO MULTIPLEXORES Ejemplo: Implementación de la operación condicional múltiple.
TRANSFERENCIA UTILIZANDO MULTIPLEXORES Circuito detallado de la implementación de:
TRANSFERENCIA UTILIZANDO MULTIPLEXORES Multiplexores dedicados Un solo Bus
TRANSFERENCIA UTILIZANDO MULTIPLEXORES Ejemplo de Transferencia de Registros utilizando una configuración de un solo BUS.
TIPOS DE BUSES BUS Multiplexado BUS Tri estado con Registros bidireccionales
TIPOS DE BUSES Funcionamiento de un Registro Bidireccional:
TIPOS DE BUSES – ESTRUCTURA CON MEMORIA Conexión de una Memoria al Bus de Datos y al Bus de Direcciones:
UNIDAD DE DATOS Conjunto e Registros (RTL) Unidad Funcional (Operaciones)
UNIDAD FUNCIONAL (ALU) Unidad Aritmético-Lógica (ALU)
ESTRUCTURA COMPLETA DE UNA ALU UNIDAD LÓGICA UNIDAD ARITMÉTICA
CICLO DE MICRO-OPERACIONES DE UNA ALU Tabla de Funciones Mapa de Karnaugh Tabla de Verdad
UNIDAD ARITMÉTICA DE CUATRO BITs Se basa en un diseño totalmente combinacional, los bloques FA, se refieren a sumadores completos de un bit
UNIDAD LÓGICA TABLA FUNCIONAL CIRCUITO LÓGICO El Multiplexor selecciona la función lógica deseada. Pueden existir más de cuatro funciones lógicas, lo que requiere un MUX de mayor capacidad.
UNA ETAPA DE LA ALU
TABLA FUNCIONAL DE LA ALU
DESPLAZADORES (SHIFTERS)
DESPLAZADOR ROTATORIO Tabla Funcional Circuito Lógico
DIAGRAMA GENERAL DE UNA UNIDAD DE DATOS La unidad de datos presentada en la figura, tiene una arquitectura tipo Hardvard (Bus de datos e instrucciones separados). El arreglo de registros permite cargar, almacenar y operar fácilmente los datos que se desean procesar. MB: MUX BUS MD: MUX DATA FS: FUNCTION SELECT V: OVERFLOW C: CARRY N: NEGATIVE Z: ZERO
TABLA PARA LA UNIDAD FUNCIONAL
DETALLE DE LA UNIDAD FUNCIONAL
VARIABLES DE CONTROL PARA LA UNIDAD DE DATOS
CODIFICACIÓN DEL VECTOR DE CONTROL PARA LA UNIDAD DE DATOS
EJEMPLOS DE MICROOPERACIONES  Notación Simbólica  Codificación Binaria
SIMULACIÓN DE LA SECUENCIA DE MICROOPERACIONES      R2               R2 – R3      R4               sl R6      R7               R7 + 1      R1               R0 + 2      Data out    R3      R4               Data in      R5               0
INTRODUCCIÓN A LA ARQUITECTURA DE PROCESADORES  TAREAS DE LA CPU ,[object Object]
Interpretar la instrucción: Decodificar la instrucción y determinar acciones a realizar.
Captar datos: Leer datos de memoria y/o E/S.
Procesar datos: realizar operación aritmética y/o lógica.
Escribir datos: llevar datos a memoria o E/S.Para realizar estas operaciones, la CPU requiere memoria interna
INTRODUCCIÓN A LA ARQUITECTURA DE PROCESADORES   COMPONENTES DEL PROCESADOR
INTRODUCCIÓN A LA ARQUITECTURA DE PROCESADORES  ESTRUCTURA INTERNA DE UNA CPU
INTRODUCCIÓN A LA ARQUITECTURA DE PROCESADORES ORGANIZACIÓN DE LOS REGISTROS La memoria para almacenamiento interno posee REGISTROS (nivel más alto en jerarquía de memoria), existen dos tipos de registros: Registros Visibles para el usuario: El usuario puede usarlos para minimizar los  accesos a memoria. Registros de control y de estado:Son usados por la unidad de control y por programas privilegiados para controlar la ejecución de un programa. REGISTROS DE USO GENERAL ,[object Object]
Puede haber excepciones: Ej. Registros para almacenar punto flotante, punteros de pila, etc.
Algunas veces pueden almacenar direcciones, en otros, existen registros para datos y otros para direcciones ,[object Object]
Registros índices: Usado en direccionamiento indexado, pueden ser autoindexados.
Puntero de pila: Mantiene la dirección de la cabeza de la pila.CÓDIGOS DE CONDICIÓN ,[object Object]
Son bits fijados por la CPU como resultado de una operación
Los códigos de condición se reúnen en uno o más registros, generalmente forman parte de un registro de control
Generalmente los bits pueden ser leídos por referencia implícita, pero no pueden ser modificados,[object Object]
Registro de Instrucción: Instrucción captada mas reciente.
Registro de Dirección de Memoria: Dirección de una posición de memoria.
Registro intermedio de memoria:Contiene la palabra leída o a escribir en memoria.NOMBRE DE LOS REGISTROS DE CONTROL Y DE ESTADO ,[object Object]
IR = InstructionRegister: Contiene la última instrucción captada.
MAR = MemoryAddressRegister: Contiene la dirección de una posición de memoria.
MBR = Memory Buffer Register: Contiene la palabra de datos a escribir en memoria, o la palabra leída más reciente.,[object Object]
Cero: Indica si el último resultado fue cero
Acarreo: Usado en operaciones multipalabra
Igual: Resultado de una operación lógica es igual
Desbordamiento: Overflow aritmético
Interrupciones:Habilitadas/ deshabilitadas
Supervisor: Estado de la CPU en modo supervisor o usuario,[object Object]
CICLOS  FETCH, DECODE Y EXECUTE DEL PROCESADOR CICLO DE INSTRUCCIÓN
CICLOS  FETCH, DECODE Y EXECUTE DEL PROCESADOR CICLO FETCH (Captación) Función:  Lleva la siguiente instrucción de la memoria a la CPU. ElPCtiene la dirección de la siguiente instrucción. El procesador capta la instrucción de la memoria direccionada por el PC. Se incrementa PCen 1. El código de la instrucción se carga en IR. CICLO DECODE (Decodificación) Función:  Decodifica los bits presentes en IR Interpreta el código de operación.
CICLOS  FETCH, DECODE Y EXECUTE DEL PROCESADOR CICLO EXECUTION(Ejecución) Función:  Ejecuta la instrucción Procesador - memoria: Transferencia CPU  Memoria Procesador - I/O: Transferencia CPU  Módulos I/O. Procesamiento de datos: Operaciones aritméticas o lógicas. Control: Cambio de secuencias.
CICLOS  FETCH, DECODE Y EXECUTE DEL PROCESADOR Ejemplo:  El PC contiene el valor 300. Se carga esta instrucción en IR (esto implica el uso de MAR y MBR)
CICLOS  FETCH, DECODE Y EXECUTE DEL PROCESADOR Ejemplo:  Los primeros cuatro bits de IR (“1”) indican que el acumulador AC se va a cargar con un dato de la memoria. Los restantes 12 bits especifican la dirección. (es decir “940”)
CICLOS  FETCH, DECODE Y EXECUTE DEL PROCESADOR Ejemplo:  El registro PC se incrementa  y se capta la siguiente instrucción
CICLOS  FETCH, DECODE Y EXECUTE DEL PROCESADOR Ejemplo:  Los primeros cuatro bits (“5”) indican que la instrucción es de suma entre el acumulador y una memoria. Los siguientes 12 bits indican la dirección de la memoria (“941”). El contenido de AC y el de la posición 941 se suman y el resultado se almacena en AC.
CICLOS  FETCH, DECODE Y EXECUTE DEL PROCESADOR Ejemplo:  El registro PC se incrementa  en 1 y se capta la siguiente instrucción.
CICLOS  FETCH, DECODE Y EXECUTE DEL PROCESADOR Ejemplo:  Los primeros cuatro bits indican (“2”) que el acumulador se debe almacenar en una memoria. Los siguientes 12 bits indican la dirección de la memoria  (“941”). El contenido de AC se almacena en la posición 941. Se requieren tres ciclos de instrucción para ejecutar esta tarea.
CONJUNTO DE INSTRUCCÍONES DEL PROCESADOR Las instrucciones de una CPU a otra difieren bastante, sin embargo en todas las CPU se puede encontrar como mínimo el siguiente conjunto de instrucciones: Instrucciones de transferencia de datos. Instrucciones aritméticas. Instrucciones lógicas. Control de flujo. Entrada / Salida.
ESTRUCTURA DE UN PROCESADOR CON ARQUITECTURA TIPO HARDVARD
DIAGRAMA DE BLOQUES DE UN PROCESADOR CON ARQUITECTURA TIPO HARDVARD
DIAGRAMA DE BLOQUES DE UN PROCESADOR CON ARQUITECTURA TIPO VON NEUMAN
ARQUITECTURA HARVARD vs VON NEUMAN  1. MEMORY: Harvard dispone de dos tipos de memoria una para Instrucciones y otra para datos;  la arquitectura Von Neuman, comparte la memoria entre instrucciones y datos.  2.  BUS: Al igual que la memoria, Harvard dispone de dos buses dedicados, uno para datos y otro para instrucciones; Von Neuman comparte el Bus de instrucciones y Datos.
EJEMPLO DE APLICACIÓN Para aclarar lo visto, vamos a desarrollar el siguiente ejercicio: La figura muestra la memoria (MEM) de un sistema: el registro de direcciones (MAR) puede ser cargado con el contador del programa (PC) o con el puntero de pila (SP), el registro de datos (MDR) está conectado a un bus de datos internos (IDB), al que también se conecta el registro [A], y otro externo (EDB) conectado con la memoria.   Se quiere incorporar las dos operaciones de pila: EMPUJAR (PUSH) y EXTRAER (POP) que consisten respectivamente, en llevar [A] a la pila y en llevar de la pila a [A] (recuerde que PUSH [A] implica MEM  [A] y SP SP+1, mientras que POP [A] implica SP SP–1 y [A]  MEM (SP)).  Cuando no hay operación de la pila, el puntero SP apunta a la primera dirección libre.   Desarrollar la Carta ASM y a partir de ella diseñar adecuadamente la unidad de control que permita ejecutar las operaciones de PUSH (I1I0 = 00) y POP (I1I0 = 01).   Nota: los códigos I1I0 = 1X están reservados para otras operaciones no definidas en el enunciado.
EJEMPLO DE APLICACIÓN

More Related Content

What's hot

Unidad Aritmética Lógica
Unidad Aritmética LógicaUnidad Aritmética Lógica
Unidad Aritmética LógicaGrmandma
 
Arquitecturas harvard y von neumann
Arquitecturas harvard y von neumannArquitecturas harvard y von neumann
Arquitecturas harvard y von neumannJesusRivero7
 
Sistemas operativos memoria virtual
Sistemas operativos memoria virtualSistemas operativos memoria virtual
Sistemas operativos memoria virtualandreapab
 
Mapa conceptual sobre
Mapa conceptual sobre Mapa conceptual sobre
Mapa conceptual sobre Juan Anaya
 
Dispositivos Programables por el usuario
Dispositivos Programables por el usuarioDispositivos Programables por el usuario
Dispositivos Programables por el usuarioRaúl García Titos
 
Arquitectura de computadores power point
Arquitectura de computadores power pointArquitectura de computadores power point
Arquitectura de computadores power pointfayl1905
 
Arquitectura de Computadoras - Memoria
Arquitectura de Computadoras - MemoriaArquitectura de Computadoras - Memoria
Arquitectura de Computadoras - MemoriaMiguel Rodríguez
 
Diagrama de bloques de una computadora
Diagrama de bloques de una computadoraDiagrama de bloques de una computadora
Diagrama de bloques de una computadoravixtor
 
Memoria prom y eprom
Memoria prom y epromMemoria prom y eprom
Memoria prom y eprompollo7
 
Power point memoria ram
Power point memoria ramPower point memoria ram
Power point memoria ramKoldo92
 
Diseño de Archivos y Bases de Datos
Diseño de Archivos y Bases de DatosDiseño de Archivos y Bases de Datos
Diseño de Archivos y Bases de DatosVictor Reyes
 
Administración de la Memoria, organización y administración del almacenamient...
Administración de la Memoria, organización y administración del almacenamient...Administración de la Memoria, organización y administración del almacenamient...
Administración de la Memoria, organización y administración del almacenamient...Javier Alvarez
 
chapter3 - Basic Processing Unit.ppt
chapter3 - Basic Processing Unit.pptchapter3 - Basic Processing Unit.ppt
chapter3 - Basic Processing Unit.pptPoliceNiranjanReddy
 

What's hot (20)

Unidad Aritmética Lógica
Unidad Aritmética LógicaUnidad Aritmética Lógica
Unidad Aritmética Lógica
 
Unidad aritmetico logica ALU
Unidad aritmetico logica ALUUnidad aritmetico logica ALU
Unidad aritmetico logica ALU
 
Arquitecturas harvard y von neumann
Arquitecturas harvard y von neumannArquitecturas harvard y von neumann
Arquitecturas harvard y von neumann
 
Administración de Memoria
Administración de MemoriaAdministración de Memoria
Administración de Memoria
 
Sistemas operativos memoria virtual
Sistemas operativos memoria virtualSistemas operativos memoria virtual
Sistemas operativos memoria virtual
 
Unidad de Control
Unidad de ControlUnidad de Control
Unidad de Control
 
Mapa conceptual sobre
Mapa conceptual sobre Mapa conceptual sobre
Mapa conceptual sobre
 
Dispositivos Programables por el usuario
Dispositivos Programables por el usuarioDispositivos Programables por el usuario
Dispositivos Programables por el usuario
 
Arquitectura de computadores power point
Arquitectura de computadores power pointArquitectura de computadores power point
Arquitectura de computadores power point
 
Lenguaje de Transferencia de Registro
Lenguaje de Transferencia de RegistroLenguaje de Transferencia de Registro
Lenguaje de Transferencia de Registro
 
Mapeo de memoria
Mapeo de memoriaMapeo de memoria
Mapeo de memoria
 
Arquitectura de Computadoras - Memoria
Arquitectura de Computadoras - MemoriaArquitectura de Computadoras - Memoria
Arquitectura de Computadoras - Memoria
 
Diagrama de bloques de una computadora
Diagrama de bloques de una computadoraDiagrama de bloques de una computadora
Diagrama de bloques de una computadora
 
Memoria prom y eprom
Memoria prom y epromMemoria prom y eprom
Memoria prom y eprom
 
Power point memoria ram
Power point memoria ramPower point memoria ram
Power point memoria ram
 
Diseño de Archivos y Bases de Datos
Diseño de Archivos y Bases de DatosDiseño de Archivos y Bases de Datos
Diseño de Archivos y Bases de Datos
 
Administración de la Memoria, organización y administración del almacenamient...
Administración de la Memoria, organización y administración del almacenamient...Administración de la Memoria, organización y administración del almacenamient...
Administración de la Memoria, organización y administración del almacenamient...
 
chapter3 - Basic Processing Unit.ppt
chapter3 - Basic Processing Unit.pptchapter3 - Basic Processing Unit.ppt
chapter3 - Basic Processing Unit.ppt
 
Mapas k de 2 3 4 variables
Mapas k de 2 3 4 variablesMapas k de 2 3 4 variables
Mapas k de 2 3 4 variables
 
Tópicos Avanzados de Programación - Unidad 1 GUI
Tópicos Avanzados de Programación - Unidad 1 GUITópicos Avanzados de Programación - Unidad 1 GUI
Tópicos Avanzados de Programación - Unidad 1 GUI
 

Similar to Rtl

Arquitectura de una computadora
Arquitectura de una computadoraArquitectura de una computadora
Arquitectura de una computadorajessiicasaldana
 
Microoperaciones y transferencia de registros.pptx
Microoperaciones y transferencia de registros.pptxMicrooperaciones y transferencia de registros.pptx
Microoperaciones y transferencia de registros.pptxyayopyahir
 
Diagrama de bloque procesador intel
Diagrama de bloque procesador intelDiagrama de bloque procesador intel
Diagrama de bloque procesador intelCristian Paredes
 
Arquitectura de computadores y redes
Arquitectura de computadores y redesArquitectura de computadores y redes
Arquitectura de computadores y redesYeison Montaña
 
Registros ensayo
Registros ensayoRegistros ensayo
Registros ensayoMarp Aerov
 
capacidad de unidad de procesamiento, universidad santiago mariño
capacidad de unidad de procesamiento, universidad santiago mariño capacidad de unidad de procesamiento, universidad santiago mariño
capacidad de unidad de procesamiento, universidad santiago mariño MiguelSifontes6
 
SISTEMA OPERATIVOS
SISTEMA OPERATIVOSSISTEMA OPERATIVOS
SISTEMA OPERATIVOSAnel Sosa
 
arquitectura pipeline
arquitectura pipelinearquitectura pipeline
arquitectura pipelineIngrid L
 
INTRODUCCION A LOS SISTEMAS OPERATIVOS
INTRODUCCION A LOS SISTEMAS OPERATIVOSINTRODUCCION A LOS SISTEMAS OPERATIVOS
INTRODUCCION A LOS SISTEMAS OPERATIVOSAnel Sosa
 
1 Arquitectura de computadores
1  Arquitectura de computadores1  Arquitectura de computadores
1 Arquitectura de computadoresJohan Silva Cueva
 
Casos de estudio de cpu reales
Casos de estudio de cpu realesCasos de estudio de cpu reales
Casos de estudio de cpu realesKikivan Cortez
 
3 programacion
3 programacion3 programacion
3 programacionsimon28c
 
aspectos_basicos_de_la_programacion_en_ensamblador
aspectos_basicos_de_la_programacion_en_ensambladoraspectos_basicos_de_la_programacion_en_ensamblador
aspectos_basicos_de_la_programacion_en_ensambladorGloria Azúa
 

Similar to Rtl (20)

Arquitectura de una computadora
Arquitectura de una computadoraArquitectura de una computadora
Arquitectura de una computadora
 
Microoperaciones y transferencia de registros.pptx
Microoperaciones y transferencia de registros.pptxMicrooperaciones y transferencia de registros.pptx
Microoperaciones y transferencia de registros.pptx
 
Diagrama de bloque procesador intel
Diagrama de bloque procesador intelDiagrama de bloque procesador intel
Diagrama de bloque procesador intel
 
Arquitectura de computadores y redes
Arquitectura de computadores y redesArquitectura de computadores y redes
Arquitectura de computadores y redes
 
Hernan espinoza 5_b_t#2
Hernan espinoza 5_b_t#2Hernan espinoza 5_b_t#2
Hernan espinoza 5_b_t#2
 
Registros
RegistrosRegistros
Registros
 
Arquitectura Computacional.pdf
Arquitectura Computacional.pdfArquitectura Computacional.pdf
Arquitectura Computacional.pdf
 
Registros
RegistrosRegistros
Registros
 
Registros ensayo
Registros ensayoRegistros ensayo
Registros ensayo
 
capacidad de unidad de procesamiento, universidad santiago mariño
capacidad de unidad de procesamiento, universidad santiago mariño capacidad de unidad de procesamiento, universidad santiago mariño
capacidad de unidad de procesamiento, universidad santiago mariño
 
Microprocesadores
MicroprocesadoresMicroprocesadores
Microprocesadores
 
SISTEMA OPERATIVOS
SISTEMA OPERATIVOSSISTEMA OPERATIVOS
SISTEMA OPERATIVOS
 
arquitectura pipeline
arquitectura pipelinearquitectura pipeline
arquitectura pipeline
 
INTRODUCCION A LOS SISTEMAS OPERATIVOS
INTRODUCCION A LOS SISTEMAS OPERATIVOSINTRODUCCION A LOS SISTEMAS OPERATIVOS
INTRODUCCION A LOS SISTEMAS OPERATIVOS
 
1 Arquitectura de computadores
1  Arquitectura de computadores1  Arquitectura de computadores
1 Arquitectura de computadores
 
Ut03 1 cpu
Ut03 1 cpuUt03 1 cpu
Ut03 1 cpu
 
Casos de estudio de cpu reales
Casos de estudio de cpu realesCasos de estudio de cpu reales
Casos de estudio de cpu reales
 
Arquitectura x86_ Registros
Arquitectura x86_ RegistrosArquitectura x86_ Registros
Arquitectura x86_ Registros
 
3 programacion
3 programacion3 programacion
3 programacion
 
aspectos_basicos_de_la_programacion_en_ensamblador
aspectos_basicos_de_la_programacion_en_ensambladoraspectos_basicos_de_la_programacion_en_ensamblador
aspectos_basicos_de_la_programacion_en_ensamblador
 

Recently uploaded

trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 

Recently uploaded (16)

trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 

Rtl

  • 1. DISEÑO RTL DE PROCESADORESARITMÉTICOS MICROELECTRÓNICA IE. MSc. José Armando Becerra Vargas
  • 2. REQUISITOS DEL CURSO Para abordar temas de diseño jerárquico, descripción a nivel RTL y diseño de procesadores aritméticos en general, el estudiante debe tener conocimientos de los siguientes temas: Análisis y síntesis de sistemas combinacionales; lógica cableada, Lógica modular y descripción en VHDL de sistemas combinacionales. Análisis y síntesis de sistemas secuenciales; Máquinas de estado de Mealy y Moore, Diseño de alto nivel y descripción en VHDL de sistemas secuenciales. Conocimiento básico de arquitectura de computadores; Funcionamiento de una ALU, sistemas que realizan operaciones, Registros, Contadores, Memorias RAM y ROM, descripción en VHDL de sistemas complejos. Manejo adecuado de las herramientas EDA. Para el caso específico, conocimiento, destreza y manejo del software ISE FOUNDATION de XILINX.
  • 3. CONSIDERACIONES GENERALES DE UN SISTEMA DE TRANSFERENCIA DE REGISTROS Los componentes básicos de este método son aquellos que describen un sistema digital a partir del nivel operacional. La operación de un sistema digital se describe de mejor manera especificando: El conjunto de registros en el sistema y sus funciones. La información en código binario almacenada en los registros. Las operaciones realizadas a partir de la información almacenada en los registros. Las funciones de control que inician la secuencia de operaciones. Estos cuatro componentes forman la base del método de lógica de transferencia entre registros para describir sistemas digitales. Un registro como se define en la notación de lógica de transferencia entre registros, no solamente implica un registro en general, sino que abarca todos los otros tipos de registros, tales como registros de desplazamiento, contadores y unidades de memoria. Un contador se considera como un registro cuya función es incrementar en 1 la información almacenada en él. Una unidad de memoria se considera como una colección de registros de almacenamiento donde se va a almacenar la información. Un Flip-Flop por si solo se toma como un registro de 1 bit, los Flip-Flop y las compuertas asociadas de cualquier circuito secuencia se llaman registro.
  • 4. CONSIDERACIONES GENERALES DE UN SISTEMA DE TRANSFERENCIA DE REGISTROS La información binaria almacenada en los registros podría ser números binarios, números decimales codificados en binario, caracteres alfanuméricos, control de información ó cualquier información binaria codificada. Las operaciones que se realizan mediante los datos almacenados en los registros, depende del tipo de datos que se encuentren. Los números se manipulan con operaciones aritméticas, mientras que el control de información se manipula por lo general con operaciones lógicas tales como activar o borrar bits del registro. Las operaciones realizadas con los datos almacenados en los registros, se llaman microoperaciones. Una microoperación es una operación elemental que puede ser realizada en paralelo durante un periodo de pulso de reloj. El resultado de la operación puede reemplazar la información binaria previa de un registro o puede ser transferida a otro registro. Ejemplos de microoperaciones son: Desplazar, contar, sumar, borrar y cargar.
  • 5. CONSIDERACIONES GENERALES DE UN SISTEMA DE TRANSFERENCIA DE REGISTROS Las microoperaciones especifican las operaciones elementales que se realizan con la información almacenada en los registros. Los tipos de microoperaciones encontradas más a menudo en los sistemas digitales pueden clasificarse en cuatro categorías: Microoperaciones de transferencia entre registros que no cambian el contenido de la información cuando la información binaria se mueve de un registro a otro. Las microoperaciones aritméticas realizan aritmética con los números almacenados en los registros. Microoperaciones lógicas realizan operaciones tales como la AND y OR con el par de bits individuales almacenados en los registros. Las microoperaciones de desplazamiento especifican operaciones para los registros de desplazamiento.
  • 6. ESTRUCTURA GENERAL DE UN SISTEMA DE TRANSFERENCIA DE REGISTROS Diagrama de GLUSHKOV
  • 7. NIVEL DE TRANSFERENCIA ENTRE REGISTROS El comportamiento de un sistema digital a nivel de transferencia de registros se puede definir mediante un conjunto de operaciones O1 ,O2 , O3 , … On realizadas sobre diferentes datos externos o internos. Cada una de estas operaciones elementales se lleva a cabo mediante transferencias entre registros cuya forma mas general puede ser: R[m]  f ( R[i], R[j], R[k], …)
  • 8.
  • 9. En caso de necesitar saber el número o posición de los bits transferidos se indica de la siguiente manera: B[7-0]  A[15-8]
  • 10. Normalmente la transferencia está controlada mediante una señal de habilitación E (enable), se suele expresar de la siguiente forma: E : B  A
  • 11. La señal de habilitación puede ser mas compleja, por ejemplo:Si x = 0 y t = 1  B A En otro caso  B  C
  • 12. LENGUAJE DE TRANSFERENCIA DE REGISTROS Los registros pueden ser objeto de las operaciones aritméticas y lógicas habituales, así tendremos: D  A B LSR (A) ASR (A) A  A + 1 Otro operador disponible es & (concatenación) p.ej LSR (A&B)
  • 13. LENGUAJE DE TRANSFERENCIA DE REGISTROS Las transferencias de datos entre registros y memoria se pueden tratar como casos particulares del caso anterior donde tendremos dos operaciones gobernadas por las señales de control R (lectura) y W (escritura) y usando los registros MAR y MBR con la notación habitual tendremos: R: MBR  M((MAR)) W: M((MAR))  MBR MAR: MemoryAddressRegister MBR: Memory Buffer Register MDR: Memory Data Register Por último las transferencias entre buses y registros se escriben de forma similar: A Inbus [8] Outbus [8]  A
  • 14. OPERACIÓN DESCRIPCIÓN : El contenido de R1 se transfiere a R2 OPERACIONES DE TRANSFERENCIA Identificación de Registros en operaciones de transferencia:
  • 15. OPERACIONES DE TRANSFERENCIA Operación condicional: Notación de transferencia entre registros:
  • 16. OPERACIONES DE TRANSFERENCIA Símbolos usados en el lenguaje de transferencia de Registros:
  • 17. OPERACIONES DE TRANSFERENCIA Ejemplo de Micro-operaciones Aritméticas:
  • 18. OPERACIONES DE TRANSFERENCIA Implementación de las operaciones de transferencia:
  • 19. OPERACIONES DE TRANSFERENCIA Micro-operaciones Lógicas: Ejemplo de operaciones de desplazamiento:
  • 20. TRANSFERENCIA UTILIZANDO MULTIPLEXORES Ejemplo: Implementación de la operación condicional múltiple.
  • 21. TRANSFERENCIA UTILIZANDO MULTIPLEXORES Circuito detallado de la implementación de:
  • 22. TRANSFERENCIA UTILIZANDO MULTIPLEXORES Multiplexores dedicados Un solo Bus
  • 23. TRANSFERENCIA UTILIZANDO MULTIPLEXORES Ejemplo de Transferencia de Registros utilizando una configuración de un solo BUS.
  • 24. TIPOS DE BUSES BUS Multiplexado BUS Tri estado con Registros bidireccionales
  • 25. TIPOS DE BUSES Funcionamiento de un Registro Bidireccional:
  • 26. TIPOS DE BUSES – ESTRUCTURA CON MEMORIA Conexión de una Memoria al Bus de Datos y al Bus de Direcciones:
  • 27. UNIDAD DE DATOS Conjunto e Registros (RTL) Unidad Funcional (Operaciones)
  • 28. UNIDAD FUNCIONAL (ALU) Unidad Aritmético-Lógica (ALU)
  • 29. ESTRUCTURA COMPLETA DE UNA ALU UNIDAD LÓGICA UNIDAD ARITMÉTICA
  • 30. CICLO DE MICRO-OPERACIONES DE UNA ALU Tabla de Funciones Mapa de Karnaugh Tabla de Verdad
  • 31. UNIDAD ARITMÉTICA DE CUATRO BITs Se basa en un diseño totalmente combinacional, los bloques FA, se refieren a sumadores completos de un bit
  • 32. UNIDAD LÓGICA TABLA FUNCIONAL CIRCUITO LÓGICO El Multiplexor selecciona la función lógica deseada. Pueden existir más de cuatro funciones lógicas, lo que requiere un MUX de mayor capacidad.
  • 33. UNA ETAPA DE LA ALU
  • 36. DESPLAZADOR ROTATORIO Tabla Funcional Circuito Lógico
  • 37. DIAGRAMA GENERAL DE UNA UNIDAD DE DATOS La unidad de datos presentada en la figura, tiene una arquitectura tipo Hardvard (Bus de datos e instrucciones separados). El arreglo de registros permite cargar, almacenar y operar fácilmente los datos que se desean procesar. MB: MUX BUS MD: MUX DATA FS: FUNCTION SELECT V: OVERFLOW C: CARRY N: NEGATIVE Z: ZERO
  • 38. TABLA PARA LA UNIDAD FUNCIONAL
  • 39. DETALLE DE LA UNIDAD FUNCIONAL
  • 40. VARIABLES DE CONTROL PARA LA UNIDAD DE DATOS
  • 41. CODIFICACIÓN DEL VECTOR DE CONTROL PARA LA UNIDAD DE DATOS
  • 42. EJEMPLOS DE MICROOPERACIONES Notación Simbólica Codificación Binaria
  • 43. SIMULACIÓN DE LA SECUENCIA DE MICROOPERACIONES R2  R2 – R3 R4  sl R6 R7  R7 + 1 R1  R0 + 2 Data out R3 R4  Data in R5  0
  • 44.
  • 45. Interpretar la instrucción: Decodificar la instrucción y determinar acciones a realizar.
  • 46. Captar datos: Leer datos de memoria y/o E/S.
  • 47. Procesar datos: realizar operación aritmética y/o lógica.
  • 48. Escribir datos: llevar datos a memoria o E/S.Para realizar estas operaciones, la CPU requiere memoria interna
  • 49. INTRODUCCIÓN A LA ARQUITECTURA DE PROCESADORES COMPONENTES DEL PROCESADOR
  • 50. INTRODUCCIÓN A LA ARQUITECTURA DE PROCESADORES ESTRUCTURA INTERNA DE UNA CPU
  • 51.
  • 52. Puede haber excepciones: Ej. Registros para almacenar punto flotante, punteros de pila, etc.
  • 53.
  • 54. Registros índices: Usado en direccionamiento indexado, pueden ser autoindexados.
  • 55.
  • 56. Son bits fijados por la CPU como resultado de una operación
  • 57. Los códigos de condición se reúnen en uno o más registros, generalmente forman parte de un registro de control
  • 58.
  • 59. Registro de Instrucción: Instrucción captada mas reciente.
  • 60. Registro de Dirección de Memoria: Dirección de una posición de memoria.
  • 61.
  • 62. IR = InstructionRegister: Contiene la última instrucción captada.
  • 63. MAR = MemoryAddressRegister: Contiene la dirección de una posición de memoria.
  • 64.
  • 65. Cero: Indica si el último resultado fue cero
  • 66. Acarreo: Usado en operaciones multipalabra
  • 67. Igual: Resultado de una operación lógica es igual
  • 70.
  • 71. CICLOS FETCH, DECODE Y EXECUTE DEL PROCESADOR CICLO DE INSTRUCCIÓN
  • 72. CICLOS FETCH, DECODE Y EXECUTE DEL PROCESADOR CICLO FETCH (Captación) Función: Lleva la siguiente instrucción de la memoria a la CPU. ElPCtiene la dirección de la siguiente instrucción. El procesador capta la instrucción de la memoria direccionada por el PC. Se incrementa PCen 1. El código de la instrucción se carga en IR. CICLO DECODE (Decodificación) Función: Decodifica los bits presentes en IR Interpreta el código de operación.
  • 73. CICLOS FETCH, DECODE Y EXECUTE DEL PROCESADOR CICLO EXECUTION(Ejecución) Función: Ejecuta la instrucción Procesador - memoria: Transferencia CPU  Memoria Procesador - I/O: Transferencia CPU  Módulos I/O. Procesamiento de datos: Operaciones aritméticas o lógicas. Control: Cambio de secuencias.
  • 74. CICLOS FETCH, DECODE Y EXECUTE DEL PROCESADOR Ejemplo: El PC contiene el valor 300. Se carga esta instrucción en IR (esto implica el uso de MAR y MBR)
  • 75. CICLOS FETCH, DECODE Y EXECUTE DEL PROCESADOR Ejemplo: Los primeros cuatro bits de IR (“1”) indican que el acumulador AC se va a cargar con un dato de la memoria. Los restantes 12 bits especifican la dirección. (es decir “940”)
  • 76. CICLOS FETCH, DECODE Y EXECUTE DEL PROCESADOR Ejemplo: El registro PC se incrementa y se capta la siguiente instrucción
  • 77. CICLOS FETCH, DECODE Y EXECUTE DEL PROCESADOR Ejemplo: Los primeros cuatro bits (“5”) indican que la instrucción es de suma entre el acumulador y una memoria. Los siguientes 12 bits indican la dirección de la memoria (“941”). El contenido de AC y el de la posición 941 se suman y el resultado se almacena en AC.
  • 78. CICLOS FETCH, DECODE Y EXECUTE DEL PROCESADOR Ejemplo: El registro PC se incrementa en 1 y se capta la siguiente instrucción.
  • 79. CICLOS FETCH, DECODE Y EXECUTE DEL PROCESADOR Ejemplo: Los primeros cuatro bits indican (“2”) que el acumulador se debe almacenar en una memoria. Los siguientes 12 bits indican la dirección de la memoria (“941”). El contenido de AC se almacena en la posición 941. Se requieren tres ciclos de instrucción para ejecutar esta tarea.
  • 80. CONJUNTO DE INSTRUCCÍONES DEL PROCESADOR Las instrucciones de una CPU a otra difieren bastante, sin embargo en todas las CPU se puede encontrar como mínimo el siguiente conjunto de instrucciones: Instrucciones de transferencia de datos. Instrucciones aritméticas. Instrucciones lógicas. Control de flujo. Entrada / Salida.
  • 81. ESTRUCTURA DE UN PROCESADOR CON ARQUITECTURA TIPO HARDVARD
  • 82. DIAGRAMA DE BLOQUES DE UN PROCESADOR CON ARQUITECTURA TIPO HARDVARD
  • 83. DIAGRAMA DE BLOQUES DE UN PROCESADOR CON ARQUITECTURA TIPO VON NEUMAN
  • 84. ARQUITECTURA HARVARD vs VON NEUMAN 1. MEMORY: Harvard dispone de dos tipos de memoria una para Instrucciones y otra para datos; la arquitectura Von Neuman, comparte la memoria entre instrucciones y datos. 2. BUS: Al igual que la memoria, Harvard dispone de dos buses dedicados, uno para datos y otro para instrucciones; Von Neuman comparte el Bus de instrucciones y Datos.
  • 85. EJEMPLO DE APLICACIÓN Para aclarar lo visto, vamos a desarrollar el siguiente ejercicio: La figura muestra la memoria (MEM) de un sistema: el registro de direcciones (MAR) puede ser cargado con el contador del programa (PC) o con el puntero de pila (SP), el registro de datos (MDR) está conectado a un bus de datos internos (IDB), al que también se conecta el registro [A], y otro externo (EDB) conectado con la memoria.   Se quiere incorporar las dos operaciones de pila: EMPUJAR (PUSH) y EXTRAER (POP) que consisten respectivamente, en llevar [A] a la pila y en llevar de la pila a [A] (recuerde que PUSH [A] implica MEM  [A] y SP SP+1, mientras que POP [A] implica SP SP–1 y [A]  MEM (SP)). Cuando no hay operación de la pila, el puntero SP apunta a la primera dirección libre.   Desarrollar la Carta ASM y a partir de ella diseñar adecuadamente la unidad de control que permita ejecutar las operaciones de PUSH (I1I0 = 00) y POP (I1I0 = 01).   Nota: los códigos I1I0 = 1X están reservados para otras operaciones no definidas en el enunciado.
  • 87. SOLUCIÓN AL EJEMPLO DE APLICACIÓN Según el enunciado, la pila se va llenando desde las direcciones más bajas hasta las más altas. Las dos operaciones de pila implican direccionar la memoria MEM con la dirección que indica el puntero de pila, SP. De aquí que, tras apuntar SP a la dirección adecuada, habrá que transferir SP hacia MAR. En ambas operaciones la transferencia entre MEM y A debe pasar por MDR. Operación PUSH (I1I0 = 00): Como SP apunta a la dirección vacía, es ahí a donde hay que transferir A y, después, se incrementa SP para que continúe apuntando a la primera dirección vacía. Operación POP (I1I0 = 01): Hay que decrementar SP para que apunte a la última dirección llena. Sólo entonces se lleva SP a MAR para, después, leer de MEM hacia MDR y, de este registro, llevar el dato leído hacia A.
  • 88. CARTA ASM DEL EJEMPLO En el desarrollo de la carta ASM puede verse claramente la rutina de cada una de las operaciones solicitadas, también se incluye la salida hacia otras operaciones que no son de interés en este ejemplo. El estado S6 devolverá el sistema hacia S0 con la señal de RESET, con las interrupciones del sistema o simplemente el siguiente pulso de reloj lo devolverá.
  • 89. OTROS EJEMPLOS Bit Counter Shift-and-Add Multiplier
  • 90. BIT COUNTER Sistema que permite contar el número de ‘1s’ presentes en el Registro A, guardando el resultado en el Registro B Pseudo-código para el Bit Counter B = 0; while A≠0 do if a0 = 1 then B = B + 1; end if; Right-shift A; end while ; Se utiliza un lenguaje estándar de programación para describir el algoritmo que se va a utilizar. Luego se describe como diseño ASM
  • 91. CARTA ASM PARA EL BIT COUNTER Carta ASM para el diseño del DATAPATH del contador de bits ‘1’, describe las micro-operaciones presentes en el diseño.
  • 92. DIAGRAMA DE TIEMPOS DEL BIT COUNTER
  • 93. DISEÑO DEL DATAPATH PARA EL BIT COUNTER
  • 94. CARTA ASM PARA EL CONTROL DEL BIT COUNTER Carta ASM para el diseño de la lógica de control del contador de bits ‘1’. Obsérvese que las señales utilizadas son las señales de STATUS. Z = ‘1’ when A[n] = ‘0’ a0 Bit menos significativo de A s  Señal de inicio START Done Indica que el proceso terminó LB  Load B, Borra el contador B LA Load A, Carga el registro A EB  Incrementa el contador B EA  Desplaza A hacia la derecha
  • 95. CÓDIGO VHDL PARA DESCRIBIR EL BIT COUNTER (1) -- Descripción en Código VHDL del contador de ‘1s’ -- Declaración de Librerías, cláusula USE LIBRARY ieee ; USEieee.std_logic_1164.all ; LIBRARY work ; USE work.components.shiftrne ; -- Declaración de la entidad ENTITY bitcount IS PORT(Clock, Resetn : INSTD_LOGIC ; LA, s : INSTD_LOGIC ; Data : IN STD_LOGIC_VECTOR(7 DOWNTO 0) ; B : BUFFERINTEGER RANGE 0 to 8 ; Done : OUTSTD_LOGIC ) ; END bitcount ;
  • 96. CÓDIGO VHDL PARA DESCRIBIR EL BIT COUNTER (2) ARCHITECTURE Behavior OF bitcount IS TYPE State_type IS ( S1, S2, S3 ) ; SIGNAL y : State_type ; SIGNAL A : STD_LOGIC_VECTOR(7 DOWNTO 0) ; SIGNAL z, EA, LB, EB, low : STD_LOGIC ; BEGIN FSM_transitions: PROCESS ( Resetn, Clock ) BEGIN IF Resetn = '0' THEN y <= S1 ; ELSIF (Clock'EVENT AND Clock = '1') THEN CASE y IS WHEN S1 => IF s = '0' THEN y <= S1 ; ELSE y <= S2 ; END IF ; WHEN S2 => IF z = '0' THEN y <= S2 ; ELSE y <= S3 ; END IF ; WHEN S3 => IF s = '1' THEN y <= S3 ; ELSE y <= S1 ; END IF ; END CASE ; END IF ; END PROCESS ;
  • 97. CÓDIGO VHDL PARA DESCRIBIR EL BIT COUNTER (3) FSM_outputs: PROCESS ( y, A(0) ) BEGIN EA <= '0' ; LB <= '0' ; EB <= '0' ; Done <= '0' ; CASE y IS WHEN S1 => LB <= '1' WHEN S2 => EA <= '1' ; IF A(0) = '1' THEN EB <= '1' ; ELSE EB <= '0' ; END IF ; WHEN S3 => Done <= '1' ; END CASE ; END PROCESS ;
  • 98. CÓDIGO VHDL PARA DESCRIBIR EL BIT COUNTER (4) -- El DATAPATH es descrito a continuación upcount: PROCESS ( Resetn, Clock ) BEGIN IF Resetn = '0' THEN B <= 0 ; ELSIF (Clock'EVENT AND Clock = '1') THEN IF LB = '1' THEN B <= 0 ; ELSEIF EB = '1' THEN B <= B + 1 ; END IF ; END IF; END PROCESS; low <= '0' ; ShiftA: shiftrne GENERIC MAP ( N => 8 ) PORT MAP ( Data, LA, EA, low, Clock, A ) ; z <= '1' WHEN A = "00000000" ELSE '0' ; END Behavior ;
  • 99. P = 0; For i = 0 to n – 1 do if bi = 1 then P = P + A; end if; Left-Shift A; End for; Decimal Binaria 13 1 1 0 1 Multiplicando x 11 1 0 1 1 Multiplicador 13 1 1 0 1 13 1 1 0 1 143 0 0 0 0 1 1 0 1 1 0 0 0 1 1 1 1 Producto b. Pseudo - Code a. Método manual MULTIPLICADOR BINARIO DE n BITS ALGORITMO PARA LA MULTIPLICACIÓN
  • 100. CARTA ASM PARA EL MULTIPLICADOR BINARIO Carta ASM para el diseño del DATAPATH del multiplicador binario, describe las micro-operaciones presentes en el diseño.
  • 101. DIAGRAMA DE TIEMPOS PARA EL MULTIPLICADOR
  • 102. DISEÑO DEL DATAPATH PARA EL MULTIPLICADOR RA  Shift-Left Register RB  Shift-Right Register ADDER  Sumador de 2n bits MUX  Multiplexor 2:1 de 2n bits P  Registro genérico de 2n bits NOR  Compuerta NOR de n entradas Data P  Resultado de la multiplicación B0  LSB del registro B
  • 103. CARTA ASM PARA EL CONTROL DEL MULTIPLICADOR Carta ASM para el diseño de la lógica de control del Multiplicador Binario. Obsérvese que las señales utilizadas son las señales de STATUS. Z = ‘1’ when B[n] = ‘0’ b0 Bit menos significativo de B s  Señal de inicio START Done Indica que el proceso terminó RB  Shift-Right B RA Shift-Left A Psel  Control del MUX EP  Suma a P el contenido de A
  • 104. CÓDIGO VHDL PARA DESCRIBIR EL MULTIPLICADOR (1) LIBRARY ieee ; USEieee.std_logic_1164.all ; USEieee.std_logic_unsigned.all ; USE work.components.all ; ENTITY multiply IS GENERIC ( N : INTEGER := 8; NN : INTEGER := 16 ) ; PORT ( Clock : INSTD_LOGIC ; Resetn : INSTD_LOGIC ; LA, LB, s : INSTD_LOGIC ; DataA : INSTD_LOGIC_VECTOR(N–1 DOWNTO 0) ; DataB : INSTD_LOGIC_VECTOR(N–1 DOWNTO 0) ; P : BUFFERSTD_LOGIC_VECTOR(N–1 DOWNTO 0) ; Done : OUTSTD_LOGIC ) ; END multiply ;
  • 105. CÓDIGO VHDL PARA DESCRIBIR EL MULTIPLICADOR (2) ARCHITECTURE Behavior OF multiply IS TYPE State_type IS ( S1, S2, S3 ) ; SIGNAL y : State_type ; SIGNAL Psel, z, EA, EB, EP, Zero : STD_LOGIC ; SIGNAL B, N_Zeros : STD_LOGIC_VECTOR(N–1 DOWNTO 0) ; SIGNAL A, Ain, DataP, Sum : STD_LOGIC_VECTOR(NN–1 DOWNTO 0) ; BEGIN FSM_transitions: PROCESS ( Resetn, Clock ) BEGIN IF Resetn = '0’ THEN y <= S1 ; ELSIF (Clock'EVENT AND Clock = '1') THEN CASE y IS WHEN S1 => IF s = '0' THEN y <= S1 ; ELSE y <= S2 ; END IF; WHEN S2 => IF z = '0' THEN y <= S2 ; ELSE y <= S3 ; END IF; WHEN S3 => IF s = '1' THEN y <= S3 ; ELSE y <= S1 ; END IF; END CASE ; END IF ; END PROCESS;
  • 106. CÓDIGO VHDL PARA DESCRIBIR EL MULTIPLICADOR (2) FSM_outputs: PROCESS ( y, s, B(0) ) BEGIN EP <= '0' ; EA <= '0' ; EB <= '0' ; Done <= '0' ; Psel <= '0'; CASE y IS WHEN S1 => EP <= '1‘ ; WHEN S2 => EA <= '1' ; EB <= '1' ; Psel <= '1‘ ; IF B(0) = '1' THEN EP <= '1' ; ELSE EP <= '0' ; END IF ; WHEN S3 => Done <= '1‘ ; END CASE ; END PROCESS ;
  • 107. CÓDIGO VHDL PARA DESCRIBIR EL MULTIPLICADOR (3) - - Define the datapath circuit Zero <= '0' ; N_Zeros <= (OTHERS => '0' ) ; Ain <= N_Zeros & DataA ; ShiftA: shiftlne GENERICMAP ( N => NN ) PORT MAP ( Ain, LA, EA, Zero, Clock, A ) ; ShiftB: shiftrne GENERIC MAP ( N => N ) PORT MAP ( DataB, LB, EB, Zero, Clock, B ) ; z <= '1' WHEN B = N_Zeros ELSE '0' ; Sum <= A + P ; - - Define the 2n 2-to-1 multiplexers for DataP GenMUX: FOR i IN 0 TO NN–1 GENERATE Muxi: mux2to1 PORT MAP ( Zero, Sum(i), Psel, DataP(i) ) ; END GENERATE; RegP: regne GENERIC MAP ( N => NN ) PORT MAP ( DataP, Resetn, EP, Clock, P ) ; END Behavior ;