Organización de la unidad central de procesamiento (CPU)

Slides:



Advertisements
Presentaciones similares
Equipo #3 Unidad III: ALU Efraín Corral Eduardo Castillo Elías Alarcón
Advertisements

Instrucciones de operación sobre datos
El modelo de Von Neumann
UNIVERSIDAD DEL VALLE DE MEXICO CAMPUS CHAPULTEPEC
Ing. María Rosa Dámaso Ríos CPU(cuarta semana)
REGISTROS INTERNOS DEL PROCESADOR.
ORGANIZACIÓN COMPUTACIONAL
CLASE 3 SOFTWARE DEL MICROPROCESADOR
TEMA 2 Arquitectura de un Ordenador
Integrantes: Moyolehuani Tatéi Temai
Integrantes Carlos Junior Salinas Rivera (ILHUICOATL). Comunidad: coatl (serpiente).
Sistemas Operativos Funcionamiento general de una computadora bajo el control de un programa.
Programación en ensamblador
Introducción al lenguaje ensamblador
PROGRAMACION DE ESTRUCTURAS DE DATOS
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
ARQUITECTURA INTEL Modos de direccionamiento
El procesador: la ruta de datos y el control (II Parte)
COMUNI DAD MAYA tuukul may (fantasia)
3. INTRODUCCIÓN A LA PROGRAMACIÓN
Programación en Lenguaje Ensamblador.
Arquitectura de Conjunto de Instrucciones (ISA)
PROG. EN ENSAMBLADOR Ing. Pablo Cesar Tapia Catacora.
Composición Interna de un Procesador

Lenguaje Ensamblador integrantes: Esthela Vianey Vázquez Medina No.30
MODOS DE DIRECCIONAMIENTO

Arquitectura del 8086/8088 El 8086 Arquitectura de computadoras II
ARQUITECTURA DE LOS MICROPROCESADORES DE 8 BITS
Prof. Jaime José Laracuente-Díaz
Introducción al lenguaje ensamblador
2.2 Registro de Banderas Conjunto de bits que nos dan información sobre el estado del procesador y sobre el resultado de la última operación efectuada.
Unidad 2: Organización del CPU

Instrucciones Aritméticas Instrucciones Aritméticas Instrucciones Aritméticas Instrucciones Aritméticas Instrucciones Transferencia de Datos Instrucciones.
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 13.
Arquitectura del 8086/8088 TEEL 4011
Conceptos Arquitectónicos del computador
Lenguaje de Programación cap. 1 Estructura del Computador.
Tema 1: DATOS Y REGISTROS
Funcionamiento de la CPU
Unidad I: Registros e Interrupciones Facilitador: Ing. Eduardo Brando.
Microcomputadores Prof: Tatiana Marín R.. Lenguaje máquina = lenguaje binario InstrucciónLenguaje máquina (binario)OP ( hex)Nemónico Restar F0SUB.

Tema 2: Lenguaje máquina
MODOS DE DIRECCIONAMIENTO
A este registro se le conoce también como registro de estado. Consta de 16 bits y únicamente 9 de ellos contiene información, indican el estado de la.
introducción al Lenguaje Ensamblador
Unidad 1: FUNDAMENTOS DE COMPUTACIÓN Y PSEUDOLENGUAJE
Microprocesador (8086) Universidad Nacional de Ingeniería
PROGRAMACION A BAJO NIVEL
Capítulo 4 CPU y la memoria.
Maquinas Digitales Funciones del Procesador Buscar instrucciones Interpretar instrucciones Buscar datos Procesar datos Escribir datos.

introducción al Lenguaje Ensamblador
Modos de direccionamiento
Maquinas Digitales UNIDADES DE CONTROL.
Principio unidad 1.
Unidad Central de Proceso
COMUNIDAD YAQUI! Sikiri#4 Heeka#7 Ba’am#19.
José Alvarado – Cristian Anzola
Arquitectura de Computadores
 PRESENTADO POR : ANDRES MAYORGA DANIELA PAEZ VEGA.
El microprocesador y su arquitectura
El Computador. Computador. Máquina compuesta de elementos físicos (en su mayoría de origen electrónico) capaz de aceptar unos datos de entrada, realizar.
Lenguaje ensamblador Conceptos introductorios. Formatos de Instrucción. Modos de Direccionamiento. Conjunto de instrucciones básico. Introducción al Lenguaje.
Omar Herrera Caamal Rigoberto Lizárraga Luis Cetina Luna.
Arquitectura de Computadoras (Taller) Semestre II de 2008.
Unidad de Control Ubicación: Es uno de los tres bloques funcionales principales en los que se divide una unidad central de procesamiento (CPU). Realizar.
Transcripción de la presentación:

Organización de la unidad central de procesamiento (CPU) Organización Computacional TC 1004

Unidad Central de Proceso (CPU)

Función: ejecutar secuencias de instrucciones. Buscar instrucciones (memoria). Interpretar instrucciones. Buscar datos (memoria o E/S). Procesar datos. Escribir datos (memoria o E/S). Programación computadora. Preparar secuencia de instrucciones (conjunto de instrucciones). Almacenar datos (memoria). Instruir al CPU para que inicie la ejecución.

Unidad Arimética y Lógica (ALU) Realiza cálculos: Aritméticos. Suma, Resta, Multiplicación y División. Lógicos (comparaciones). AND, OR, NOT. Utiliza banderas (signo, overflow, etc.). Unidad de Control, Registros y E/S llevan datos.

Unidad de Control (UC) Ejecución de una instrucción = conjunto de ciclos: Captación (fetch): obtener instrucción de la memoria. Indirecto: obtener operandos. Ejecución. Interrupción: instrucciones que requieren atención urgente. Ciclos compuestos de microoperaciones. Utiliza los registros de Control y Estado.

Registros Almacenamiento temporal interno del CPU. Dos tipos: Acceso de alta velocidad. Localización de la última instrucción. Almacenar instrucciones y datos mientras se ejecuta alguna instrucción. Dos tipos: Disponibles al usuario. Control y Estado (UC).

Disponibles al usuario: Propósito General. AX, BX, CX, DX (H/L). Registros de Datos. Registros de Dirección. Propósito general. SI y DI. Direccionamiento. SP, BP, CS, DS, ES, SS, IP. Banderas (códigos de condición). Control: control CPU. Estado: estado de resultados de operaciones aritméticas y lógicas.

Control y Estado. Contador de Programa (PC): dirección de la instrucción a ser buscada (siguiente). Registro de Instrucción (IR): instrucción reciente. Registro de Dirección de Memoria (MAR): dirección de la localidad de memoria. Registro de Dato de Memoria (MDR): palabra de memoria mas reciente. Palabra de Estado de Programa (PSW): códigos de condición e información de estado. Signo, cero, acarreo, igual, overflow, etc.

Instrucciones de Máquina

Instrucciones de Máquina Determinan la operación del CPU. Existe una gran variedad que varian en función: conjunto de instrucciones. Elementos de una instrucción de máquina: Cada instrucción contiene la información requerida por el CPU para ser ejecutada. Código de operación: Ej: ADD, SUB, MOV. Referencia de Operando Fuente: Dirección de los operandos requeridos por la instrucción. Referencia de Operando Resultante: Dir. guardar resultado. Referencia de Siguiente Instrucción.: Dir. sig. instrucción.

Op. Code Operand Ref Operand Ref Representación de Instrucciones. Secuencia de bits. Mnemonicos. Representación simbólica de una instrucción de máquina. Abreviaciones que indican la operación. Ej: ADD, JMP, LOAD. Dividida en campos. La estructura de una instrucción es conocida como: formato de instrucción. Op. Code Operand Ref Operand Ref

Diseño del Conjunto de Instrucciones. Complejo y Debatido. Tipos de datos: Direcciones. Números. Caracteres. Lógicos. Formato de la instrucción: Longitud, # campos, tipo de direccionamiento. Registros: No. de registros del CPU a ser usados. Direccionamiento: Modo(s) de especificar la dirección de un operando.

Repertorio de operaciones. Transferencia de datos. Aritméticas. Manipulación de bits (lógica). Control de programa. Manipulación de cadenas (strings). Control del CPU. Número de direcciones de las instrucciones: Cero – HLT. Una – DIV BX Dos – MOV AL, 1

Instrucciones de Transferencia de Datos MOV Mover PUSH, POP Operaciones en Stack XCHG Intercambiar IN, OUT Puertos entrada/salida MOV destino, fuente Transfiere datos entre registros y memoria. Destino: registro o localidad de memoria. Fuente: registro, dirección memoria o número. MOV AX, 10 MOV BX, DX

Instrucciones Aritméticas ADD / SUB Suma / Resta INC / DEC Incremento / Decremento NEG Complemento a dos MUL / DIV Multiplicación / División ADD / SUB Op1, Op2 Suma / resta del Op1 y el Op2. El resultado es almacenado en el Op1. MOV AX, 1 MOV BX, 2 MOV CX, 10 ADD AX, BX SUB CX, 5

INC / DEC Op MUL / DIV Op Incremento / Decremento de Op en una unidad. Resultado almacenado en Op. MOV AX, 8 INC AX MOV BX, AX DEC BX MUL / DIV Op Multiplicación / División de AX por / entre Op. Resultado almacenado en AX. MOV AX, 5 MOV BX, 4 MUL BX DIV 3

Instrucciones Lógicas AND AND OR OR Inclusivo NOT Complementar (a uno) NOT Op Complemento a uno de Op. Resultado almacenado en Op. AND / OR Op1, Op2 AND / OR del Op1 con el Op2. Resultado almacenado en Op1. MOV AL, 5 AND AL, FH OR AL, 0H NOT AL

Instrucciones de Manipulación de Cadenas MOVS Mover cadenas CMPS Comparar cadenas SCAS Recorrer cadena LODS Leer cadena STOS Guardar cadena

OF – Overflow Flag DF – Direction Flag IF – Interruption Flag TF SF ZF AF PF CF OF – Overflow Flag DF – Direction Flag IF – Interruption Flag TF – Trap Flag SF – Sign Flag ZF – Zero Flag AF – Aux. Carry Flag PF – Parity Flag CF – Carry Flag Registro de Banderas de 16 bits Procesador 8088

Instrucciones de Control de Programa CALL Llamar a una subrutina RET Regresar de una subrutina JMP Salto JZ, JNZ Saltos condicionales LOOP Ciclo LOOPNE Ciclos condicionales INT Interrupción JMP etiqueta Provoca cambio en el flujo del programa sin considerar condición alguna. La etiqueta especifica a partir de donde se continua la ejecución del programa.

JZ / JNZ etiqueta Transfiere el control de ejecución si y solo si la bandera “Zero Flag (ZF)” se encuentra prendida / apagada.. La etiqueta especifica a partir de donde se continua la ejecución del programa. Si AX = 0 entonces AX = AX + 1 de otra forma AX = AX + 2 ADD AX, 0 JNZ SumaDos INC AX JMP Fin ADD AX, 2 ... SumaDos: Fin:

LOOP etiqueta Utilizada cuando se necesita ejecutar un conjunto de instrucciones varias veces. Brinca a la etiqueta siempre y cuando el valor de CX sea diferente de cero. En cada LOOP: CX = CX – 1, si CX <> 0 salta. Ej: Realice un programa que sume los numeros enteros del 1 al 20. Almacene el resultado en DX. MOV CX, 20 MOV AX, 0 MOV BX, 1 ADD AX, BX INC BX LOOP Suma MOV DX, AX Suma:

Instrucciones de Control del Procesador CLC Limpiar bandera CF CLD Limpiar bandera DF CLI Limpiar Bandera IF CMC Complementar CF STC Prender CF STD Prender DF STI Prender IF HLT Detener el procesador (Alto)

Realice un programa que dado un número K, obtenga su número de Fibonacci. Almacene el resultado en DX. La sucesión de Fibonacci se define como la suma de los dos últimos elementos de una serie que empieza con los números 1, 1. Ej: 1, 1, 2, 3, 5, 8, 13, ... Formalmente se define de la siguiente manera: F(1) = 1 F(2) = 1 F(K) = F(K-1) + F(K-2) Ej: F(5) = F(4) + F(3) = 3 + 2 = 5 F(4) = F(3) + F(2) = 2 + 1 = 3 F(3) = F(2) + F(1) = 1 + 1 = 2

MOV CX, K SUB CX, 1 JZ Uno JNZ Otro MOV DX, 1 JMP Fin MOV AX, 1 MOV BX, 1 MOV DX, AX ADD AX, BX MOV BX, DX LOOP Serie ... Uno: Otro: Serie: Fin:

SHL Op1, Op2 Corrimiento lógico a la izquierda Recorre los bits de Op1 un número Op2 de posiciones a la izquierda. En cada corrimiento: Agrega en el bit menos significativo un cero. El bit más significativo pasa a la bandera CF. MOV AX, 11001100B SHL AX, 1 AX = 10011000, CF = 1

Realice un programa que utilizando la instrucción SHL, multiplique por dos un número N, K veces. Las entradas al programa serán: el número N a multiplicar. el numero de veces K que se desea realizar la multiplicación. Pruebe su programa con N = 2, K = 3 (Resultado = 16).

Modos de Direccionamiento

Modos de Direccionamiento Permiten interpretar los bits de una dirección para encontrar el valor de un operando. Modos: Implícito Inmediato Directo Indirecto Registro Registro Indirecto Desplazamiento No todas las computadoras utilizan todos los modos.

Direccionamiento Implícito. No necesita recibir la dirección del operando, esta se encuentra implícita en la operación. Ej.: MUL BX Ventaja: Acceso rápido. Desventaja: Conocer perfectamente la operación.

Direccionamiento Inmediato. Recibe el operando y no la dirección de este. Ej.: MOV AX, 4 Ventaja: no requiere memoria extra para traer el operando. Desventaja: Solo puede utilizar constantes.

Direccionamiento Directo. Recibe la dirección en memoria del operando. Ej.: MOV AX, [10] Ventaja: Acceso rápido para variables globales. Desventajas: La instrucción siempre accesará la misma localidad de memoria. Solo puede cambiar el valor del operando pero no su dirección.

Direccionamiento Indirecto. Recibe la dirección de la palabra en memoria (apuntador) que contiene la dirección del operando. Ej.: MOV AX, [[10]] Ventaja: La dirección en memoria puede apuntar a distintas localidades de memoria. Desventaja: La ejecución de la instrucción requiere de dos referencias a memoria para traer el operando (una para obtener su dirección y la otra para obtener su valor).

Direccionamiento de Registro (directo). Similar al direccionamiento directo. Recibe un registro en lugar de una dirección en memoria. Ej.: MOV AX, BX Ventaja: No necesita referencias a memoria. Desventaja: Número limitado de registros en el CPU -> usar este direccionamiento para operandos muy utilizados. Este es el modo de direccionamiento más común.

Direccionamiento de Registro Indirecto. Similar al direccionamiento indirecto. Recibe un registro que contiene la dirección (apuntador) en memoria del operando. Ej.: MOV AX, [BX] Ventaja: La dirección en el registro puede apuntar a distintas localidades de memoria (misma indirecta). Utiliza una referencia menos a memoria en comparción con el direccionamiento inderecto. Utilizado para apuntadores de uso frecuente.

Direccionamiento de Desplazamiento. Combina los modos de direccionamiento directo y de registro indirecto. Se requiere que la dirección del operando sea calculada en base a una dirección fija más otra dirección de desplazamiento. Dirección = Fija + Desplazamiento. Tanto la dirección fija como la de desplazamiento pueden ser referenciadas de manera directa o indirecta. La dirección fija puede estar ímplicita en la instrucción. Relativo. Indexado. Base.

Relativo. La dirección fija es el registro PC y se encuentra implícita en la instrucción. Ej.: MOVPC AX, BX (BX = 5, PC = 10) Indexado. La dirección fija referencia a la memoria. El desplazamiento contiene un número positivo para calcular la dirección del operando. Ventaja: Eficiente para operaciones ciclicas. Desventaja: dos accesos a memoria. Dos tipos principales: Preindexado. Postindexado.

La dirección fija es sumada al desplazamiento. Preindexado (indexamiento previo) La dirección fija es sumada al desplazamiento. El resultado es usado como una dirección en memoria donde se encuentra la dirección del operando. Ej.: MOV AX, [BX,CX] Postindexado (indexamiento posterior) La dirección fija contiene la dirección en memoria que a su vez contiene la dirección a ser utilizada para obtener el operando. A la dirección obtenida a partir de la dirección fija se le suma el desplazamiento para obtener la dirección del operando. MOV AX, [BX]CX

. . . PC = 100 AX = 20 BX = 4 CX = 5 DX = 2 DIV BX Implícito 7 1 100 2 3 100 4 20 5 105 6 . DIV BX Implícito MOV AX, 10 Inmediato MOV AX, [0] Directo MOV AX, [[2]] Indirecto MOV AX, BX Registro MOV AX, [CX] Registro Indirecto MOVPC AX, DX Relativo MOV AX, [DX,BX] Preindexado MOV AX, [BX]BX Postindexado . . 100 18 101 102 100 103 104 17 105 15

PC = 100 AX = 20 BX = 5 CX = 4 DX = 100 1 2 3 4 100 101 102 103 104 5 . Por cada tipo de direccionamiento escriba una instrucción de máquina que almacene en AX el valor 5. Utilice los siguientes valores en los registros de CPU y en la memoria principal. Asuma que estos nunca cambian.

Ciclos de Máquina

Ciclos de Máquina La función de una computadora es ejecutar programas. La ejecución de un programa consiste en ejecutar una secuencia de instrucciones de máquina. Cada instrucción de máquina esta a su vez compuesta de un conjunto de ciclos llamados ciclos de instrucciones. Cada uno de los ciclos de instrucciones esta compuesto de una serie de pasos conocidos como microoperaciones.

Programa Ciclo de instrucción Ciclo de instrucción . . . . . . . . Interrupción Ejecución Indirecto Captación Ciclo de instrucción Interrupción Ejecución Indirecto Captación . . . . . . . .

Ciclo de Instrucción Interrupción Ejecución Captación Indirecto

Ciclo de captación (fetch). Ocurre al inicio de cada ciclo de máquina. Produce que una instrucción de máquina sea traída de memoria principal. Pasos del ciclo: Se asume que existe un reloj para sincronizar la ejecución. Tiempo 1: Mover el contenido del PC al MAR. Tiempo 2: Mover el contenido de la dirección de memoria apuntado por el MAR al MDR. Incrementar el contenido del PC en uno. Tiempo 3: Mover el contenido del MDR al IR.

Microoperaciones del ciclo de captación: t1: MAR PC t2: MDR Memoria PC PC + 1 t3: IR MDR

Ciclo Indirecto. Obtiene los operandos indirectos de la instrucción de máquina. Objetivo es transformar un direccionamiento indirecto en uno directo. Microoperaciones del ciclo: Se asume un formato de instrucción de una sola dirección. t1: MAR IR(dirección) t2: MDR Memoria t3: IR(dirección) MDR (dirección)

Ciclo de Interrupción. Puede ocurrir al finalizar el ciclo de ejecución. Se ejecuta si alguna señal de interrupción ha sido emitida. Objetivo: Guardar la siguiente dirección a ejecutarse. Pasar el control a la rutina de interrupción. Microoperaciones del ciclo: t1: MDR PC t2: MAR Dirección almacenamiento PC Dirección rutina interrupción t3: Memoria MDR

Ciclo de Ejecución. El número de microoperaciones a ejecutarse no es fijo como en los ciclos de captación, indirecto e interrupción. La cantidad de microoperaciones depende de la instrucción de máquina. Ejemplos: ADD AX, [5] t1: MAR IR(5) t2: MDR Memoria t3: AX AX + MDR MOV AX, [100] t1: MAR IR(100) t3: AX MDR

Diagrama de Flujo del Ciclo de Instrucción

Ejecución de una instrucción completa. MUL 5 Ciclo de Captación t1: MAR PC t2: MDR Memoria PC PC + 1 t3: IR MDR Ciclo de Ejecución t4: AX AX * 5

SUB AX, [[10]] Ciclo de Captación Ciclo Indirecto t1: MAR PC t2: MDR Memoria PC PC + 1 t3: IR MDR Ciclo Indirecto t4: MAR IR(10) t5: MDR Memoria t6: IR(20) MDR(20) Ciclo de Ejecución (SUB AX, [20]) t7: MAR IR(20) t8: MDR Memoria t9: AX AX - MDR