02/09/2017
Introducción a la computación
e ingeniería de software
Unidad 2 - Principios de la computación
Sesión 3 – Ejecución de programa
Prof. Elizabeth Murakami
Arquitectura de un computador
CPU (Unidad central de proceso)
Unidad aritmética lógica
Compuesto por circuitos que realizan
operaciones sobre datos
Unidad de control
Coordina las actividades de la maquina
Registros
Propósito general
Propósito especial
1
02/09/2017
Definiciones
UNIDAD ARITMETICA LÓGICA
Toma uno o dos operandos y calcula el resultado
correspondiente a la operación que se le indica. Las
operaciones son por ejemplo: sumas o restas, la
complejidad de las operaciones depende de la
tecnología del procesador.
Definiciones
UNIDAD DE CONTROL
Interpreta las instrucciones almacenadas en la
memoria y genera las señales (secuencias de
microórdenes) para que los demás elementos realicen
lo que indica la instrucción.
2
02/09/2017
Arquitectura de un computador
Arquitectura de un computador
Bus
Una vía de comunicación
que conecta dos o
más dispositivos.
3
02/09/2017
Estructura del Bus
Líneas/bus de datos: camino para transferir datos entre el resto de componentes
de un computador.Su anchura (número de líneas eléctricas) suele ser una
potencia de dos (8=2^3, 16=2^4, 32=2^5, 64=2^6, ...).
Líneas/bus de direcciones: designan laposición/dirección de los datos. Son salidas
de laCPU/procesador y determinan capacidad de direccionamiento.
Líneas/bus de control: controlan el acceso y uso de las líneas/buses anteriores.
4
02/09/2017
Arquitectura de un computador
Mainboard (Tarjeta Madre)
Parte principal de un
computador que aloja todos
los componentes
permitiendo su interacción.
5
02/09/2017
Registros
Dan al CPU un espacio de trabajo (almacenamiento
temporal)
La cantidad y función varía dependiendo del diseño
del procesador
Conforman el nivel más alto en la jerarquía de
memoria
Tipos
Propósito general
Propósito específico
Datos
Direcciones
Códigos de condición
6
02/09/2017
Componentes de Alto nivel
14
7
02/09/2017
Registros del procesador
Dentro de la CPU hay un conjunto de registros que ofrecen un nivel
de memoria mas rapido y pequeño que la memoria principal.
•Registros visible al usuario.
•Registros de control y de estado.
El registro visible al usuario es aquel que puede ser referenciado
por medio del lenguaje maquina que ejecuta el procesador; accesible
a todos los programas tanto los de aplicación como los del sistema;
los registros normalmente disponibles son:
•Registro de datos.
•Registros de direccion.
•Registro indice
•Puntero de segmento.
•Puntero de pila
15
Registros del procesador(cont.)
Los registros de control y de estado se emplean para controlar las
operaciones del procesador, la mayor parte de estos registros no son
visibles para los usuarios , algunos pueden ser accesibles a las instrucciones
de maquina ejecutadas en un modo de control.
MAR: Memory Address Register.
MBR: Memory Buffer Register.
IOAR: Input Output Address Register.
IOBR: Input Output Buffer Register.
Ademas de estos los siguientes registros son esenciales en la ejecucion de
instrucciones.
•Contador de programa(PC).
•Registro de instrucción(IR)
•Program status word(PSW) contiene codigos de condicion junto con otras
informaciones de estado.
•Signo. Supervisor
•Cero. Igualdad.
Acarreo. Se produce acarreo mas alla del bit mas significativo.
•Desbordamiento.
•Habilitar/Inhabilitar interrupciones.
16
8
02/09/2017
Registros del procesador(cont.)
El procesador lee una instrucción de la memoria(se
incrementa el PC).
La instrucción se carga en un registro del procesador (IR)
• Procesador- memoria: Se transfiren datos a memoria o
viceversa.
• Procesador-A/S: Se transfieren datos desde o hacia un
dispositivo de periferico(entre el procesador y un modulo de
E/S).
• Tratamiento de datos:El procesador realiza alguna
operación artmetica o logica sobre los datos.
• Control: La instrucción pide se altere la secuencia de
ejecucion.
Ejemplo: El uP lee una instrucción 149 (PC=150) esta
especifica que la siguiente instruccion sea la de la ubicación
182, el UP debe ajustar entonces el PC=182
17
Funcionamiento del
Computador
18
9
02/09/2017
Tipos de Instrucciones
La instrucción captada se almacena en el registro de instrucción
(IR). El CPU interpreta la instrucción que puede ser en general del
siguiente tipo:
CPU-Memoria Transferir datos del CPU a la memoria o viceversa.
CPU-ES Transferir datos a o desde el exterior mediante
transferencias entre el CPU y un módulo de E/S.
Procesamiento de datos El CPU debe realizar alguna operación
aritmética o lógica con los datos.
Control Alteración de la secuencia de ejecución.
Una instrucción puede implicar una combinación de las acciones
anteriores.
19
Concepto de programa almacenado
Un programa puede ser codificado como un flujo de
bits y almacenados en la memoria principal. Desde
aquí, el CPU extrae las instrucciones y las ejecuta. Este
programa puede ser modificado fácilmente.
Arquitectura planteada por Von Neuman
10
02/09/2017
Terminologia
Instrucción de máquina : Una instrucción (o
comando) codificados como patrón(o flujo) de bits
reconocible por la CPU.
Lenguaje maquina : conjunto de instrucciones
reconocidas por una maquina
Tipos de instrucciones máquina
Transferencia de datos: copiar datos de una ubicación
a otra.
Aritmética / Lógica: utilizar los patrones de bits para
calcular nuevos patrones de bits.
Control: direcciona la ejecución del programa
11
02/09/2017
RISC y CISC
RISC (Conjunto reducido de instrucciones de calculo).
Pocas instrucciones, simples, eficientes y rápidas.
Ejemplo: PowerPC (desarrollado por IBM, motorola y
Apple)
CISC (Conjunto complejo de instrucciones de calculo).
Muchas instrucciones, una de ellas puede
implementar varias instrucciones RISC. Ejemplo: Intel
x86
Sumando valores almacenados en
memoria
Paso 1
Obtener uno de los valores que se añadirán de la memoria y
colocarlos en un registro
Paso 2
Obtener el otro valor que se añadirá de la memoria y colocarlo en
otro registro.
Paso 3
Activar el circuito de suma con los registros utilizados con un
paso 1 un 2 como entradas y otro registro designado para
obtener el resultado.
Paso 4
Almacenar el resultado en la memoria.
Paso 5
Parar
12
02/09/2017
Ejemplo de una arquitectura de un
computador
Partes de una instrucción para máquina
Codigo_op: (código operación) Especifica la operación a
ejecutar.
Operandos : Proporciona información mas detallada
acerca de la operación. La interpretación del operando
varia según el op_codigo
Op_Codigo Operando
Actual patrón de bits (16 bits)
Formato hexadecimal (4 dígitos)
13
02/09/2017
Op_Code Operando Descripción
1 RXY Carga el registro R con el patrón de bits que se encuentra en la dirección de
memoria XY
2 RXY Carga el registro R con el patrón de bits XY
3 RXY Guarda el patrón de bits encontrado en el registro R en la memoria cuya
dirección es XY
4 0RS Mueve el patrón de bits del registro R al S
5 RST Adiciona los patrones de bits que se encuentran en los registros S y T
(representado en la técnica complemento a 2) y el resultado lo almacena
en el registro R.
6 RST Adiciona los patrones de bits que se encuentran en los registros S y T
(representado en punto flotante) y el resultado lo almacena en el registro
R.
7 RST Aplica el operador OR en los patrones de bits contenidos en los registros R
y T, el resultado lo almacena en R.
8 RST Aplica el operador AND en los patrones de bits contenidos en los registros
R y T, el resultado lo almacena en R.
9 RST Aplica el operador XOR en los patrones de bits contenidos en los registros R
y T, el resultado lo almacena en R.
A R0X Rota el contenido del registro R un bit a la derecha X veces. Inicia en el
orden inferior hacia el orden superior.
B RXY Salta a la instrucción ubicada en la dirección de memoria XY si el patrón del
bit ubicado en el registro R es 0.
C 000 Termina la ejecución del programa
Decodificando
Instrucción
Op_codigo 3 significa
Identifica la dirección de la celda
para almacenar el
de memoria que recibirá datos.
contenido de un
registro en un celda
de memoria.
Identifica el registro cuyo contenido
será almacenado.
14
02/09/2017
Programa de suma de números
Cargar el registro 5 con el patrón
encontrado en la celda de memoria de la
dirección 6C
Cargar el registro 6 con el patrón
encontrado en la celda de memoria de la
dirección 6D
Sumar el contenido del registro 5 y 6,
guardando el resultado en el registro 0.
Almacenar el contenido del registro 0 en
la celda de memoria con la dirección 6E.
Parar
Ejercicio
Interpretar las siguiente instrucciones con el lenguaje
de maquina presentado:
368A
BADE
803C
40F4
15
02/09/2017
Programa
Secuencia de pasos
En cada paso se ejecutan operaciones aritméticas o
lógicas
Para cada operación, un conjunto diferente de
señales de control son necesarias.
Componentes que intervienen
La unidad de control y la unidad Aritmética y lógica
(CPU)
Datos e instrucciones necesarias para ser ingresadas
al sistemas y obtener resultados
Input/output
Almacenamiento temporal de código y resultados
Memoria principal
16
02/09/2017
Ejecución del programa
Controlado por 2 registros de propósito especial.
Contador de programa: Dirección de la siguiente
instrucción.
Registro de instrucción: Instrucción actual.
Ciclo de la máquina.
Recuperar
Decodificar
Ejecutar
Ejecución del programa
La unidad de control extrae un programa de la
memoria, decodifica las instrucciones y las ejecuta.
La maquina sola no sabe que son datos y que un
programa, el computador solo ejecuta de acuerdo a el
contador de programa
17
02/09/2017
Ciclo de la máquina
1. Recuperar la
siguiente instrucción
de memoria (indicado 2. Decodificar el patrón
por el contador del de bits en el registro de
programa) y luego instrucción
incrementar el
programa contador.
3. Ejecutar la acción
requerida por la
instrucción en el
registro de
instrucción
18
02/09/2017
19
02/09/2017
20
02/09/2017
Ejemplo
Sea una maquina hipotetica cuyas caracteristicas son :
• El procesador tiene un unico registro de datos el
Acumulador(AC).
• Tanto las instrucciones como los datos son de 16 bits de
longitud.
• El formato de instrucción dedica 4 (16 codigos de
operación diferentes)bits para el codigo de operación y
12(4096=4K palabras) bits para direccionar la memoria
directamente.
0 3 4 15
Cod . Op. Direccion
0 1 15
S Magnitud
41
Ejemplo(cont.)
•Lista parcial de los códigos de operación:
• 0001 = Cargar de la memoria la acumulador.
• 0010 = Almacenar el AC en memoria.
• 0101 = Sumar al AC el contenido de la memoria
Registros de la CPU
Memoria
300 1 9 4 0 3 0 0 PC
301 5 9 4 1 AC
302 2 9 4 1 1 9 4 0 IR
.. ..
. .
•Registros internos de la CPU:
940 0 0 0 3 •Contador de programa(PC):direccion de la instrucción a ser leida.
0 0 0 2 •Registro de instrucción(IR):Instrucción que esta ejecutandose
941 •Acumulador(AC): Almacenamiento temporal
El procesador contiene 300, la direccion de la
primera instrucción.
42
21
02/09/2017
Ejemplo(cont.)
•Los primeros 4 bits del IR indican que se cargara el AC,
los 12 bits restantes indican la direccion.
Registros de la CPU
Memoria
300 1 9 4 0 3 0 0 PC
301 5 9 4 1 0 0 0 3 AC
302 2 9 4 1 1 9 4 0 IR
.. ..
. .
940 0 0 0 3
941 0 0 0 2
43
Ejemplo(cont.)
Se incrementa el PC y se lee la instrucción siguiente
Registros de la CPU
Memoria
300 1 9 4 0 3 0 1 PC
301 5 9 4 1 0 0 0 3 AC
302 2 9 4 1 5 9 4 1 IR
.. ..
. .
940 0 0 0 3
941 0 0 0 2
44
22
02/09/2017
Ejemplo(cont.)
El contenido anterior del acumuladory el contenido dela
ubicación 941 se suman y el resultado se almacena en el
AC
Registros de la CPU
Memoria
300 1 9 4 0 3 0 1 PC
301 5 9 4 1 0 0 0 5 AC
302 2 9 4 1 1 9 4 0 IR
.. ..
. .
0003 + 0002 = 0005
940 0 0 0 3
941 0 0 0 2
45
Ejemplo(cont.)
Se incrementa el PC y se lee la instrucción siguiente.
Registros de la CPU
Memoria
300 1 9 4 0 3 0 2 PC
301 5 9 4 1 0 0 0 5 AC
302 2 9 4 1 2 9 4 1 IR
.. ..
. .
940 0 0 0 3
941 0 0 0 2
46
23
02/09/2017
Ejemplo(cont.)
El contenido de AC se almacena en la ubicación 941.
Son 3 ciclos de instrucción (c/u consta de un ciclo de
lectura y otro de ejecucion)
Registros de la CPU
Memoria
300 1 9 4 0 3 0 2 PC
301 5 9 4 1 0 0 0 5 AC
302 2 9 4 1 1 9 4 0 IR
.. ..
. .
940 0 0 0 3
941 0 0 0 5
47
Ejecución de un Programa
48
24
02/09/2017
Diagrama de Estados ciclos de
instrucción
49
Ejecución del programa de suma de
números
El contador de programa, contiene
la dirección de la primera
instrucción
El programa es
almacenado en
la memoria
principal
iniciando en la
dirección A0
25
02/09/2017
Ejecutando el paso Recuperar(Fetch)
Al inicio del paso recuperar la instrucción inicial en la dirección
A0, es recuperado de la memoria y ubicada en el registro de
instrucción
Ejecutando el paso Recuperar(Fetch)
El contador de programa es incrementado desde este punto hacia
la siguiente instrucción.
26
02/09/2017
Comunicación con otros dispositivos
Controlador: Un dispositivo intermediario que
maneja la comunicación entre el computador y otro
dispositivo.
Existen controladores especializados para cada tipo de
dispositivo
Controladores de propósito general (USB y FireWire)
FireWire USB
Comunicación con otros dispositivos
Puerto: El punto en el cual un dispositivo se conecta a
un computador
27
02/09/2017
Comunicación con otros dispositivos
Puerto: El punto en el cual un dispositivo se conecta a
un computador
E/S mapeada en memoria : Determinadas direcciones
de memoria están reservadas para comunicar con los
periféricos.
Controladores unidos al bus de la
máquina
28
02/09/2017
Representació conceptal del mapa de
memoria I/O
Comunicación con otros dispositivos
Acceso directo a memoria (DMA): La memoria
principal da el acceso a más de un controlador del bus
Cuello de botella de Von Neumann: La falta de buses
impide el aumento de velocidad
Handshaking (intercambio de pulsos de
sincronización ) : El proceso de coordinación de la
transferencia de datos entre los componentes
29
02/09/2017
Comunicación con otros dispositivos
Comunicación paralela: Varios caminos de
comunicación de transferencia de bits
simultáneamente.
Comunicación en serie: Los bits se transfieren uno
tras otro a través de una sola ruta de comunicación
Tasa de comunicación de datos
Unidades de medida
Bps: Bits por segungo
Kbps: Kilo-bps (1,000 bps)
Mbps: Mega-bps (1,000,000 bps)
Gbps: Giga-bps (1,000,000,000 bps)
Ancho de banda: Maxima tasa disponible
30
02/09/2017
Preguntas de comprobación
¿Qué es y para que sirve el bus?
¿Cuales son las partes de una instrucción?
¿De que se encarga la unidad de control?
Defina
Puerto
Controlador
Cuello de botella de Von Neumann
31