1 / 35

Unidad Central de Proceso

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

ronny
Télécharger la présentation

Unidad Central de Proceso

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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. 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 Mn, con lenguaje de máquina Ln Nivel n Máquina virtual M4, con lenguaje de máquina L4 Nivel 4 Los programas en L2, son interpretados por programas que se ejecutan en M1, o son traducidos a L1. Máquina virtual M2, con lenguaje de máquina L2 Nivel 2 Los programas en L3, son interpretados por programas que se ejecutan en M2 o M1, o son traducidos a L2 oL1. Los programas en L1, pueden ser ejecutados directamente por los circuitos electrónicos. Máquina real M1, con lenguaje de máquina L1 Máquina virtual M3, con lenguaje de máquina L3 Nivel 1 Nivel 3 Unidad Central de Proceso

  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 0 .. 100 is %d\n",sum); }

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

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

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

  11. Decodificación de la Instrucción Búsqueda de Operandos Ejecución de la Instrucción Almacenamiento del Resultado Próxima Instrucción 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). Se determina el tipo de instrucción y los operandos que tiene. Se busca el/los operandos y se los carga en los registros internos de la CPU. Se ejecuta la operación. Se almacena el resultado en el lugar apropiado. Se pasa a la siguiente instrucción.

  12. 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? Búsqueda de Operandos ¿Cómo se localizan en memoria? ¿Cuál puede o no estar en memoria? Ejecución de la Instrucción • Operaciones Almacenamiento del Resultado ¿Cómo son soportadas? • Instrucción Sucesora Jumps, conditions, branches Próxima Instrucción Unidad Central de Proceso EJECUCION DE LAS INSTRUCCIONES Búsqueda de la Instrucción ¿ Que debe especificarse ? • Tipos de Datos y Tamaños

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

  14. Registro de entrada de la ALU Registro de salida de la ALU A B A L U 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 A + B Camino de Datos en una máquina clásica de Von Neuman

  15. Lenguaje de Alto Nivel X = Y + Z 10571 10732 27501 X = Y + Z Notación: (10732) El contenido de 10732 (10732) + (27501) se almacena en (10571) Unidad Central de Proceso DIRECCIONAMIENTO SIMBOLICO - Si queremos sumar dos números y almacenar su resultado, por lo general ocupan posiciones de memoria. 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 MPY 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. 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.

  30. 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

  31. 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

More Related