La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Unidad Central de Proceso

Presentaciones similares


Presentación del tema: "Unidad Central de Proceso"— Transcripción de la presentación:

1 Unidad Central de Proceso
INTRODUCCION - Una máquina puede resolver problemas ejecutando instrucciones sencillas - Programa: secuencia de instrucciones Instrucciones Básicas: Sumar dos números Comprobar si un número es cero Acceder a la memoria Conjunto de instrucciones primitivas Lenguaje Máquina

2 Unidad Central de Proceso
Máquina virtual Mn, con lenguaje de máquina Ln Nivel n Los programas en Ln, son interpretados por un programa que se ejecuta en un nivel inferior, o son traducidos al lenguaje de una máquina de nivel inferior. Máquina virtual M4, con lenguaje de máquina L4 Nivel 4 Máquina virtual M3, con lenguaje de máquina L3 Nivel 3 Los programas en L3, son interpretados por programas que se ejecutan en M2 o M1, o son traducidos a L2 oL1. Máquina virtual M2, con lenguaje de máquina L2 Nivel 2 Los programas en L2, son interpretados por programas que se ejecutan en M1, o son traducidos a L1. Máquina real M1, con lenguaje de máquina L1 Nivel 1 Los programas en L1, pueden ser ejecutados directamente por los circuitos electrónicos.

3 Unidad Central de Proceso
Nivel de lenguajes orientados a problemas Nivel 5 Traducción (compilador) Nivel de lenguaje ensamblador Nivel 4 Traducción (ensamblador) Nivel de máquina del sistema operativo Nivel 3 Interpretación parcial (sistema operativo) Nivel de máquina del sistema convencional Nivel 2 Interpretación (microprograma) Nivel de microprogramación Nivel 1 Los microprogramas son ejecutados directamente por el hardware Nivel de lógica digital Nivel 0

4 Unidad Central de Proceso
Ejemplos de diferentes tipos de lenguajes basados en : Una rutina que calcula e imprime la suma de los cuadrados de los enteros entre 0 y 100.

5 Unidad Central de Proceso
Lenguaje de máquina MIPS

6 Unidad Central de Proceso
Lenguaje de assembler MIPS

7 Unidad Central de Proceso
Lenguaje alto nivel ( “C” ) #include <stdio.h> int main( int argc, char *argv[]) { int i; int sum = 0; for (i=0; i<100; i+1) sum = sum + i * i ; printf("Sum is %d\n",sum); }

8 Unidad Central de Proceso
Archivo Fuente Assembler Archivo Objeto Archivo Fuente Archivo Fuente Archivo Objeto Assembler Assembler Archivo Objeto B i b l o t e c a Vinculador Archivo Ejecutable

9 Unidad Central de Proceso
ORGANIZACIÓN BASICA DE COMPUTADORAS Funciones Procesador (CPU) Sumar dos números Comprobar si un número es cero Acceder a la memoria Unidad de Control Extraer instrucciones de la memoria principal y determinar su tipo ALU Unidad Aritmética y Lógica Realizar las operaciones aritméticas y lógicas Memoria de alta velocidad utilizada para almacenar resultados intermedios y cierta información de control Registros ... Registro de Instrucción (RI) Contador de Programa (CP)

10 Unidad Central de Proceso
ORGANIZACIÓN BASICA DE COMPUTADORAS Procesador (CPU) Unidad de Control ALU Unidad Aritmética y Lógica Memoria Registros ... Disco Impresora Bus

11 Unidad Central de Proceso
EJECUCION DE LAS INSTRUCCIONES Búsqueda de la Instrucción Se extrae de la memoria la siguiente instrucción y se la lleva al registro de Insrucción (RI). Decodificación de la Instrucción Se determina el tipo de instrucción y los operandos que tiene. Búsqueda de Operandos Se busca el/los operandos y se los carga en los registros internos de la CPU. Ejecución de la Instrucción Se ejecuta la operación. Almacenamiento del Resultado Se almacena el resultado en el lugar apropiado. Próxima Instrucción Se pasa a la siguiente instrucción.

12 Unidad Central de Proceso
EJECUCION DE LAS INSTRUCCIONES Búsqueda de la Instrucción ¿ Que debe especificarse ? El formato o codificación de la instrucción ¿Cómo es decodificada? Decodificación de la Instrucción Ubicación de los Operando y el Resultado ¿Qué otro lugar aparte de la memoria? ¿Cuántos operandos explícitos? ¿Cómo se localizan en memoria? ¿Cuál puede o no estar en memoria? Búsqueda de Operandos Ejecución de la Instrucción Tipos de Datos y Tamaños Almacenamiento del Resultado Operaciones ¿Cómo son soportadas? Instrucción Sucesora Jumps, conditions, branches Próxima Instrucción

13 Unidad Central de Proceso
ORGANIZACIÓN DE UN PROCESADOR 68000 PC EAR Memoria e Interfase E / S 32x32 Bus Interno Registros Generales IR 16 Unidad De Control TEMP A L U CC

14 Unidad Central de Proceso
ORGANIZACIÓN DE LA CPU ADD R0,A,B A + B R0 R1 R2 A R3 Registros R4 B R5 R6 R7 Registro de entrada de la ALU A B A L U Registro de salida de la ALU A + B Camino de Datos en una máquina clásica de Von Neuman

15 Unidad Central de Proceso
DIRECCIONAMIENTO SIMBOLICO - Si queremos sumar dos números y almacenar su resultado, por lo general ocupan posiciones de memoria. Lenguaje de Alto Nivel X = Y + Z Notación: (10732) El contenido de 10732 (10732) + (27501) se almacena en (10571) X = Y + Z 1.- Contenido 2.- Dirección - Es conveniente independizar las variables de las posiciones de memoria: (Y) + (Z) se almacena en (X)

16 Unidad Central de Proceso
REGISTROS - Existen diferentes tipo de registros de acuerdo a su uso: Generales: no tienen un propósito específico Acumulador: las operaciones se realizan sobre este registro. Bandera: contiene información de control y de estado. Datos: para manejar datos Direcciones: para manejar direcciones. PC - program counter SP - stack pointer Depende de la Arquitectura

17 Unidad Central de Proceso
MAQUINAS DE TRES DIRECCIONES - La operación X = Y + Z se le puede indicar a la CPU como una instrucción ADD y las direcciones X, Y, Z. ADD X,Y,Z significa sumar Y con Z y guardar en X Ejemplo: A= B*(C + D *E -F/G) MPY T1,D, E ADD T1,C, T1 DIV T2,F, G SUB T1, T1,T2 MPY A,T1,B

18 Unidad Central de Proceso
MAQUINAS DE DOS DIRECCIONES - La operación X = X + Y se le puede indicar a la CPU como una instrucción ADD y las direcciones X, Y. ADD X,Y significa sumar X con Y y guardar en X Ejemplo: A= B*(C + D *E -F/G) MOVE A, D MPY A, E MOVE T1, F DIV T1, G SUB A, T1 ADD A, C MPY A, B MPY D, E DIV F, G ADD D, C SUB D, F MOVE A, B MPY A, D

19 Unidad Central de Proceso
MAQUINAS DE UNA DIRECCION - Para este tipo de máquinas se requiere de un registro Acumulador (AC). SUB A significa AC - A y guardar en AC Ejemplo: A= B*(C + D *E -F/G) LOAD F DIV G STORE T1 LOAD D MPY E ADD C SUB T1 MPY B STORE A

20 Unidad Central de Proceso
MAQUINAS DE CERO DIRECCIONES - Para este tipo de máquinas se requiere de una Pila de registros. El registro del tope se denomina “Top Level” (TL), al segundo “Secon Level” (SL) y así. Cada registro contiene una palabra y se opera con los dos registros del tope, almacena el resultado en SL y descarta el TL. LOAD A PUSH (A) en el tope de la Pila STORE A POP (TL) y lo almacena en (A) ADD (SL) + (TL) y guarda en (SL); POP SUB (SL) - (TL) y guarda en (SL); POP MPY (SL) * (TL) y guarda en (SL); POP STORE (SL) / (TL) y guarda en (SL); POP

21 Unidad Central de Proceso
MAQUINAS DE CERO DIRECCIONES Ejemplo: A= B*(C + D *E -F/G) LOAD B LOAD C LOAD D LOAD E MPY ADD LOAD F LOAD G DIV SUB STORE A

22 Tipos de operaciones Transferencias de datos. Aritméticas. Lógicas.
Conversión. Entrada/Salida. Control del sistema. Control de flujo.

23 Transferencia de datos
Especificar: Fuente. Destino. Cantidad de datos. LD: transferencia de memoria a algun registro. STORE: transferencia de algun registro a la memoria.

24 Aritméticas Add (sumar), Sub (restar), Mpy (multiplicar), Div (dividir). Números enteros con signo. Puede incluir: Increment: incrementa en 1 el operando (a++). Decrement: decrementa en 1 el operando (a--). Negate: cambia el signo del operador (-a).

25 Lógicas Operaciones bit a bit. AND, OR, NOT.

26 Conversión Ejemplo: conversión de binario a decimal. TR

27 Entrada/Salida Pueden ser instrucciones específicas.
Se pueden realizar utilizando instrucciones de movimiento de datos (asignadas en memoria). Se pueden realizadar a través de un controlador aparte (DMA).

28 Control de flujo Bifurcación: Ejemplo: saltar a la posición x, si el resultado es 0. Salto implícito: Ejemplo: incrementar y saltar, si es cero: ISZ Registro 1 Saltar xxxx ADD A cmp x,y : compara x con y. no afecta ningun operando pero si a bit de control Llamada a procedimiento. CALL, JMP

29

30

31

32

33 Otras instrucciones condicionales ampliamente utilizadas
CMP: Sirve para comparar. Internamente es una resta entre los 2 operandos que se comparan JE: éste es un salto que se ejecuta cuando la comparación anterior dio como resultado que los 2 operandos son iguales. JNE: Salta si no es igual. JG: Salta si es mayor. JGE: Salta si es mayor o igual. JL: Salta si es menor. JLE: Salta si es menor o igual. JMP: Salta siempre.

34 (Num1+num2)*(num3+num4) (num3*num4 + num1) Si num1 > num2 A =
Realice el codigo assembler para la siguiente expresion, suponiendo las siguientes direcciones: Num1 [6000], num2 [4000], num3[4502], num4[4607] La respuesta debe quedar en la direccion [8000] (Num1+num2)*(num3+num4) (num3*num4 + num1) Si num1 > num2 A = (Num2-num1)/(num3+num4) (num3*num4 + num1) Si num2 >= num1

35 Para el siguiente pseudocodigo, escriba su correspondiente assembler:
Int a, b; A=5; B=10; While a<=b do A=a+1 B=b-1 End while


Descargar ppt "Unidad Central de Proceso"

Presentaciones similares


Anuncios Google