31
Ciclo Fecht

Ciclo Fecht

Embed Size (px)

Citation preview

Page 1: Ciclo Fecht

Ciclo Fecht

Page 2: Ciclo Fecht

¿Cómo funciona una computadora?

Page 3: Ciclo Fecht

Ciclos proceso de instrucciones

El proceso de instrucciones se da en dos fases:

El ciclo en el que el CPU obtiene (“fetchfetch”) la instrucción de memoria

El ciclo donde ejecuta la instrucción (“ejecuciónejecución”)

Inicio

Capturar la siguiente instrucción

Ejecutar la instrucción

Parar

Ejecución de un programa

Page 4: Ciclo Fecht

Proceso de instrucciones(Organización de computadoras: A. Tanenbaum)

Buscar la siguiente instrucción de la memoria (PC) y colocarla en el registro de instrucción (IR)

Modificar el contador del programa (PC) de modo que apunte a la siguiente instrucción a ejecutarse

Determinar el tipo de instrucción que se trajo (decodificar) Si la instrucción utiliza una palabra de memoria (operando)

determinar donde está. Buscar la palabra y colocarla si es necesario en un registro

del CPU Ejecutar la instrucción Volver al paso 1 (ejecutar la siguiente instrucción)

El proceso se conoce como búsqueda-decodificación-ejecución

Page 5: Ciclo Fecht

Un programa – Elemento Lógico

Para efectuar la suma se necesitan dos tipos de objetos.– Datos– Operaciones o funciones

Programa, es la forma de describir los pasos a efectuar y de comunicárselo a la computadora. (Modelado de la realidad).

Pasos para efectuar 5 + 7

Page 6: Ciclo Fecht

5 + 7 Presionar el 5 (calculadora guarda ese número en

memoria temporal). Presionar + (traslada el 5 a un acumulador especial). Presionar el 7 (se efectúa la suma en el acumulador,

mantiene el resultado internamente). Presionar el = (se han terminado las operaciones). Se despliega el 12.

Page 7: Ciclo Fecht

Programa

Conjunto explícito de pasos a seguir para lograr un fin determinado.

Instrucciones para sumar 2 números.– Observar el primer número– Llevar al acumulador para luego sumarlo– Observar el segundo número y acumularlo– Mostrar el resultado

Page 8: Ciclo Fecht

Unidad de Control Dirige y coordina las actividades del sistema. Controla el movimiento de señales entre la memoria, la

unidad aritmético lógica y los dispositivos de entrada/salida. Carga las instrucciones desde la memoria Maneja las Interrupciones. Interpreta (Decodifica) instrucciones y genera señales que

son enviadas a otros componentes. Utiliza un reloj del sistema para sincronizar todas las tareas. Genera señales de control/tiempo. Controla la decodificación/ejecución de instrucciones.

Page 9: Ciclo Fecht

Memoria

Conjunto de celdas electrónicas – Cada celda puede contener uno y sólo un valor numérico.– Cada celda es direccionable o sea se puede distinguir una

de otra por medio de un número unívoco llamado dirección.

Para organizar la memoria se usa un conjunto numerado secuencialmente.

Se usará un apuntador para dirigirse a alguna celda (dirección).

Page 10: Ciclo Fecht

Celdas de memoria y direcciones

44 2323 4242 99 77

2950 2951 2952 2953 2954

Apuntador

Dirección

Page 11: Ciclo Fecht

Celdas de Memoria

Cada celda tiene una dirección. Cada celda tiene un contenido o valor. Ejemplo: La celda de la dirección 2951 contiene un

23. Importante la existencia de dos conceptos

independientes: dirección y valor, aunque por casualidad pueden coincidir.

Operaciones sobre la memoria– Leer el contenido de una celda.– Escribir un valor en una celda.

Page 12: Ciclo Fecht

Codificación

En las celdas de memoria sola caben números, entonces habrá que convertir las instrucciones en números.

Cuántas instrucciones Cuáles instrucciones. Depende del CPU. Se usa un diccionario electrónico.

Page 13: Ciclo Fecht

Instrucciones

Instrucción Código Longitud

CARGA 20 2

GUARDA 02 2

RESTA 33 2

SUMA 30 2

ALTO 70 1

Page 14: Ciclo Fecht

Definiciones

Lenguaje máquina, código manejado por el CPU (reconocido y ejecutado).

Programa fuente, escrito en lenguaje simbólico y mnemónico. Es más fácil de entender por los humanos. No lo entiende la computadora.

Programa objeto, escrito en código numérico. Reconocido por la computadora.

Page 15: Ciclo Fecht

Consideraciones para programa 5 + 7

Se requieren tres celdas de memoria, dos para los datos ( 5 y 7) y una para el resultado. (Celdas 20, 21 y 22)

Hay que definir en detalle los operaciones a efectuar, su orden y la codificación adecuada.

Hay que introducir todos los datos e instrucciones en la memoria.

Page 16: Ciclo Fecht

Instrucciones y registros

Acumulador, celda especial o registro del CPU, utilizado para efectuar operaciones.

CARGA <dirección>, instrucción que lleva el contenido de una celda al acumulador.

GUARDA <dirección>, deposita el valor del acumulador en una celda de memoria.

SUMA <dirección>, suma al acumulador el contenido de la celda descrita.

ALTO, detener el programa.

Page 17: Ciclo Fecht

Programa fuente 5 + 7

Instrucción Dirección

CARGA 20

SUMA 21

GUARDA 22

ALTO

Page 18: Ciclo Fecht

Programa objeto 5+ 7

Código

20 20

30 21

02 22

70

Page 19: Ciclo Fecht

Consideraciones

Este programa sirve para sumar cualquier par de números que residan en las celdas 20 y 21.

Falta cargar el programa objeto en la memoria de la computadora. Se decidió a partir de la celda 10.

Luego de cargado se le debe indicar a la computadora que ejecute el programa.

Page 20: Ciclo Fecht

Programa objeto cargado en memoria

2020 2020 3030 2121 0202 2222 7070 55 77 ????... ... ...

10 11 12 13 14 15 16 20 21 22Dirección

Page 21: Ciclo Fecht

Unidad de Control Su función principal es dirigir la secuencia de pasos

de modo que la computadora lleve a cabo un ciclo completo de ejecución de una instrucción y hacer esto con todas las instrucciones de un programa.

La unidad de control ejecutará este ciclo de cuatro pasos a una velocidad enorme.

Existe un registro apuntador que le indica al computador la siguiente celda de memoria a leer llamado CP Contador de programa.

Page 22: Ciclo Fecht

Ciclo de ejecución del CPU

FETCH

ACTUALIZACIONDEL CP

DECODIFACION

EJECUCION

I II

IIIIV

Page 23: Ciclo Fecht

Ciclo de ejecución del CPU I. Ir a la memoria y extraer el código de la

instrucción que indica el CP. II. Decodificar la instrucción recién leída. Revisar

longitud de instrucción. Si es 2 actualizar CP en siguiente celda.

III. Ejecutar la instrucción. IV. Actualizar CP para que apunte a la siguiente

celda.

Page 24: Ciclo Fecht

Los Registros

Concepto generalLos registros del procesador se emplean para controlar instrucciones en ejecución, manejar direccionamiento de memoria y proporcionar capacidad aritmética.

(http://www.monografias.com/trabajos7/regi/regi.shtml)

Page 25: Ciclo Fecht

– Registros: almacenamiento interno del CPU Registro de Dirección de Memoria - MAR (Memory Address

Register): registro que contiene la dirección de la palabra a ser leída o escrita en la memoria

Registro Temporal de Memoria - MBR (Memory Buffer Register): contiene la palabra que fue "leída de" ó "escrita a" la memoria

Contador de Programa - PC (Program Counter): contiene la dirección de la siguiente instrucción a ser ejecutada .

Registro de Instrucción - IR (Instruction Register): registro que contiene la instrucción en curso durante su ejecución.

Acumulador (AC) : almacena temporalmente operandos y resultados del ALU. registro para acumular resultados aritméticos.

Page 26: Ciclo Fecht

Pasos en la ejecuciónde un programa

Paso 0 CP en 10Paso I Paso II Paso III Paso IV

Paso 1Va a celda 10 y extrae un 20

Paso 2

Decodifica el 20 en una carga, como longitud = 2 CP en 11

Paso 3

Ejecuta la carga de la celda que indica la celda 11 (contiene 20) o sea carga el contenido de la celda 20 (contiene 5).

Paso 4 CP en 12

Page 27: Ciclo Fecht

Pasos en la ejecuciónde un programa

Paso I Paso II Paso III Paso IV

Paso 5Va a celda 12 y extrae un 30

Paso 6

Decodifica el 30 en una SUMA, como longitud = 2 CP en 13

Paso 7

Ejecuta la suma, con lo que añade al acumulador el contenido de la celda 21. (El 21 reside en la celda 13).

Paso 8 CP en 14

Page 28: Ciclo Fecht

Pasos en la ejecuciónde un programa

Paso I Paso II Paso III Paso IV

Paso 9Va a celda 14 y extrae un 02

Paso 10

Decodifica el 02 en un GUARDA, como longitud = 2 CP en 15

Paso 11

Ejecuta el guarda, se deposita el valor del acumulador (12) en la celda 22.

Paso 12 CP en 16

Page 29: Ciclo Fecht

Pasos en la ejecuciónde un programa

Paso I Paso II Paso III Paso IV

Paso 13Va a celda 16 y extrae un 70

Paso 14

Decodifica el 70 en un ALTO, no hace nada con el CP debido a que longitud = 1

Paso 15Ejecuta el alto, lo que detiene la UC y la computadora.

Page 30: Ciclo Fecht

Práctica

R = a + b + c - d Posiciones de memoria 770 a 773

– Carga 770– Suma 771– Suma 772– Resta 773– Guarda 774– Alto

20 770 30 771 30 772 33 773 02 774 70

Page 31: Ciclo Fecht

Maquina de Von Newman - Estructura

AC MQ

Circuitos Aritméticos-lógicos

MBR

Equipo de entrada/ salida

Memoria Principal M

IBR

IR

Circuitos de Control

PC

MAR

Señales de Control

Unidad de Control de programa

Unidad Aritmético / Lógica

Instrucciones y Datos

C

P

U