0% encontró este documento útil (0 votos)
253 vistas

Arq. Von Neumann

Este documento presenta una introducción a la arquitectura de Von Neumann y los conceptos básicos de funcionamiento de un computador. Explica los principales componentes de un computador como la unidad central de procesamiento, la memoria principal y secundaria, así como los buses de comunicación. También describe las fases de ejecución de instrucciones y diferentes modos de direccionamiento de memoria.

Cargado por

Maribel Esquivel
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
253 vistas

Arq. Von Neumann

Este documento presenta una introducción a la arquitectura de Von Neumann y los conceptos básicos de funcionamiento de un computador. Explica los principales componentes de un computador como la unidad central de procesamiento, la memoria principal y secundaria, así como los buses de comunicación. También describe las fases de ejecución de instrucciones y diferentes modos de direccionamiento de memoria.

Cargado por

Maribel Esquivel
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 28

Departamento de Sistemas Informáticos Escuela de Ingenieros Industriales de Albacete.

Informática Industrial 2008-2009


Universidad de Castilla La Mancha

Práctica 1. Introducción. Arquitectura Von


Neumann. Formatos de Instrucción.
Modos de direccionamiento

1. Introducción
2. Arquitectura Von Neumann:
2.1. Principios básicos de funcionamiento.
2.2. Fases de ejecución de instrucciones máquina.
3. Formatos de instrucción.
4. Modos de direccionamiento:
4.1. Implícito
4.2. Inmediato
4.3. Directo Absoluto
4.4. Indirecto
5. Ejercicios

1
Programación en Lenguaje Ensamblador. Práctica 1
Departamento de Sistemas Informáticos Escuela de Ingenieros Industriales de Albacete. Informática Industrial 2008-2009
Universidad de Castilla La Mancha

1.1. Introducción
Concepto de COMPUTADOR:
“Máquina electrónica que acepta datos de entrada, efectúa con ellos
unas operaciones aritméticas y/o lógicas y produce resultados de
salida, todo ello sin intervención de un operador humano y bajo el
control de un programa previamente almacenado en el computador”

ENTRADAS SALIDAS
COMPUTADOR
Datos de Datos de salida
entrada
(resultados)
e instrucciones

• Actualmente se habla de “computador electrónico digital”


– “electrónico”: se basa en tecnología electrónica
– “digital”: la información se representa con un sistema digital
de tipo binario

2
Programación en Lenguaje Ensamblador. Práctica 1
Departamento de Sistemas Informáticos Escuela de Ingenieros Industriales de Albacete. Informática Industrial 2008-2009
Universidad de Castilla La Mancha

1.2. Arquitectura Von Neumann

MEMORIA SECUNDARIA
Señales de control
o MASIVA y de estado
Datos e
instrucciones

MEMORIA
PRINCIPAL
(Datos e Instrucciones)
Datos e
instrucciones
Instrucciones Datos
Datos
ENTRAD SALIDA
A UNIDAD Resultados o
DE CONTROL UNIDAD datos de salida
(UC) ARITMÉTICO
LÓGICA
(ALU)

PROCESADOR CENTRAL (CPU)

3
Programación en Lenguaje Ensamblador. Práctica 1
Departamento de Sistemas Informáticos Escuela de Ingenieros Industriales de Albacete. Informática Industrial 2008-2009
Universidad de Castilla La Mancha

1.2.1. Principios Básicos de Funcionamiento


• Programa: conjunto de instrucciones almacenadas en la MP
que se ejecutan secuencialmente (salvo saltos) y realizan
una tarea específica
– Cada instrucción se trae de la MP a la CPU, junto con los
operandos correspondientes
• Esquema general de conexión CPU - MP
Memoria Principal

Bus Bus Bus


Direcciones Datos Control Bus del
Sistema

MAR. MDR
Control

PC R0

R1
IR
... ALU

Rn
C.P.U
.
4
Programación en Lenguaje Ensamblador. Práctica 1
Departamento de Sistemas Informáticos Escuela de Ingenieros Industriales de Albacete. Informática Industrial 2008-2009
Universidad de Castilla La Mancha

1.2.1. Principios Básicos de Funcionamiento (II)


• CPU
– UC
– ALU
– Registros
• Específicos
– IR (Instruction Register, Registro de Instrucción): instrucción que actualmente se
está ejecutando
– PC (Program Counter, Contador de Programa): dirección de la siguiente
instrucción que debe ejecutarse.
– MAR (Memory Address Register, Registro de Direcciones de Memoria):
dirección de memoria a la que se está accediendo
– MDR (Memory Data Register, Registro de Datos de Memoria): datos
leídos/escritos de/en memoria
• Generales: almacenamiento temporal de datos

• Buses: líneas para la comunicación entre las distintas unidades.


– Bus del sistema: comunica CPU con MP
• Bus de direcciones: conecta MAR con MP
• Bus de datos: conecta MDR con MP
• Bus de control: gobierna (controla) la comunicación entre CPU y MP

5
Programación en Lenguaje Ensamblador. Práctica 1
Departamento de Sistemas Informáticos Escuela de Ingenieros Industriales de Albacete. Informática Industrial 2008-2009
Universidad de Castilla La Mancha

1.2.1. Principios Básicos de Funcionamiento (III)

Operación de lectura

• CPU CPU Memoria


– Poner dirección de Unidad
de Control
READY
WR
memoria a leer en MAR RD

– Activar RD MDR MAR

– Esperar READY
– Recoger el dato del MDR
– Desactivar RD Decod

Bus de direcciones

• Memoria
Ante una señal de RD
– Recoger dirección de
memoria del bus de
direcciones
– Decodificar dirección Bus de datos

– Copia palabra decodificada


al bus de datos
– Activar señal READY
– Esperar desactivación de RD
– Desactivar READY
6
Programación en Lenguaje Ensamblador. Práctica 1
Departamento de Sistemas Informáticos Escuela de Ingenieros Industriales de Albacete. Informática Industrial 2008-2009
Universidad de Castilla La Mancha

1.2.1. Principios Básicos de Funcionamiento (IV)

Operación de escritura

• CPU CPU Memoria


– Poner dirección de memoria a Unidad
de Control
READY
WR
escribir en MAR RD

– Poner dato a escribir en MDR MDR MAR

– Activar WR
– Esperar READY
– Desactivar WR Decod

Bus de direcciones

• Memoria
Ante una señal de WR
– Recoger dirección de memoria
del bus de direcciones
– Decodificar dirección
Bus de datos
– Copia el contenido del bus de
datos en la palabra
decodificada
– Activar READY
– Esperar desactivación de WR
– Desactivar READY
7
Programación en Lenguaje Ensamblador. Práctica 1
Departamento de Sistemas Informáticos Escuela de Ingenieros Industriales de Albacete. Informática Industrial 2008-2009
Operación de de
Universidad Escritura en Memoria
Castilla La Mancha
WR RD

CPU
Memoria
Unidad
de Control
0 1 0 1 0 1 1 1
MDR MAR
0 1 0 1 0 1 1 1 0 0 1 1 0

Decod

Bus de direcciones

Bus de datos

8
Programación en Lenguaje Ensamblador. Práctica 1
Departamento de Sistemas Informáticos Escuela de Ingenieros Industriales de Albacete. Informática Industrial 2008-2009
Universidad de Castilla La Mancha

1.2.2. Fases de la Ejecución de las


Instrucciones Máquina
• Programa cargador:
– introduce el programa a ejecutar en posiciones consecutivas de
memoria principal (forma parte del S.O.)
– Inicializa el PC con la dirección de la primera instrucción del programa

• Una vez cargado el programa, el S.O. indica al computador que


pase el control a la 1ª instrucción del programa cargado

• A partir de entonces, la CPU repite las siguientes fases:


– lleva de MP a la CPU la instrucción que corresponde a la dirección
contenida en PC y lo incrementa (CAPTACIÓN O BÚSQUEDA)
– la CPU recibe la instrucción, la analiza (decodifica) y, en caso
necesario, lee los operandos necesarios desde memoria
(DECODIFICACIÓN)
– la UC envía las señales de control necesarias para realizar las
operaciones que implica la instrucción (EJECUCIÓN)
– se vuelve al primer paso (ejecución de la siguiente instrucción)
9
Programación en Lenguaje Ensamblador. Práctica 1
Departamento de Sistemas Informáticos Escuela de Ingenieros Industriales de Albacete. Informática Industrial 2008-2009
Universidad de Castilla La Mancha

1.2.2. Fases de la Ejecución de las Instrucciones


Máquina (II)

• Fase de Captación o Búsqueda de Instrucción:


– MAR ← PC, RD
– PC ← PC+1, esperar a memoria
– RI ← MDR ← M(MAR)

• Fase de Decodificación:
– Decodifica código de operación de la instrucción
– Rn ← OPERANDO

• Fase de Ejecución:
– Genera señales de control necesarias
– Almacenamiento de resultados
10
Programación en Lenguaje Ensamblador. Práctica 1
Departamento de Sistemas Informáticos Escuela de Ingenieros Industriales de Albacete. Informática Industrial 2008-2009
Universidad de Castilla La Mancha

1.2.2. Fases de la Ejecución de las


Instrucciones Máquina (III)
Ejemplo de ejecución de instrucciones:

Supongamos una computadora con el siguiente lenguaje


máquina:
Código Instrucción Descripción
ENT M(m) 000mmmmm memoria ← teclado
SAL M(m) 001mmmmm pantalla ← memoria
CAR R0,M(m) 010mmmmm Registro ← memoria
ALM M(m),R0 011mmmmm memoria ← Registro
MOV Rx,Ry 1000xxyy Rx ← Ry
SUM Rx,Ry 1010xxyy Rx ← Rx+Ry

Las instrucciones tienen un tamaño de 8 bits y la memoria de esta


computadora tiene 32 palabras de 8 bits
11
Programación en Lenguaje Ensamblador. Práctica 1
Departamento de Sistemas Informáticos Escuela de Ingenieros Industriales de Albacete. Informática Industrial 2008-2009
Universidad de Castilla La Mancha

1.2.2. Fases de la Ejecución de las


Instrucciones Máquina (IV)
Programa que sume 2 números tomados del teclado y saque el
resultado por pantalla.
ENT M(m)
SAL M(m)
ENT M(29) 00011101
ENT M(30) 00011110 CAR R0,M(m)
CAR R0,M(29) 01011101 ALM M(m),R0
MOV R1,R0 10000100
MOV Rx,Ry
CAR R0,M(30) 01011110
SUM Rx,Ry
SUM R0,R1 10100001
ALM M(31),R0 01111111
SAL M(31) 00111111

12
Programación en Lenguaje Ensamblador. Práctica 1
Departamento de Sistemas Informáticos Escuela de Ingenieros Industriales de Albacete. Informática Industrial 2008-2009
Universidad de Castilla La Mancha

1.3. Formatos de Instrucción (I)


• Formato de instrucción:
– Es la representación de la instrucción.
– Especifica el significado de cada uno de los bits que
constituyen la instrucción.
– La longitud del formato es el número de bits que la
componen.

• Información que debe contener una instrucción:


– Operación a realizar.
– Dirección de los operandos.
– Dirección del resultado.
– Dirección de la siguiente instrucción.
– Modo de representación de los operandos.

13
Programación en Lenguaje Ensamblador. Práctica 1
Departamento de Sistemas Informáticos Escuela de Ingenieros Industriales de Albacete. Informática Industrial 2008-2009
Universidad de Castilla La Mancha

1.3. Formatos de Instrucción (II)

• Las instrucciones se dividen en campos (cadenas de bits


contiguos)
• Tipos básicos de campos:
– Código de operación: indica la operación a realizar
– Campo de operandos (puede no existir o dividirse en
subcampos): contiene los operandos o las direcciones de los
operandos
Código de operación Operandos
n bits m bits
• Formatos típicos de instrucción:
Código de operación Instrucción sin dirección

Código de Dirección Instrucción de 1 dirección


operación

Código de Dir. 1 Dir. 2 Instrucción de 2 direcciones


operación
14
Programación en Lenguaje Ensamblador. Práctica 1
Departamento de Sistemas Informáticos Escuela de Ingenieros Industriales de Albacete. Informática Industrial 2008-2009
Universidad de Castilla La Mancha

1.3.1. Características del Formato de


Instrucción
• Un computador tiene uno o unos pocos formatos de instrucción.
• Los formatos son sistemáticos. El primer campo suele ser el código de
operación.
• Las instrucciones cortas son preferibles a las largas (ahorro de memoria
y rapidez de ejecución). Para ello se usan técnicas de direccionamiento
implícito.
– sólo las instrucciones de bifurcación tienen campo de instrucción
siguiente;
– no se suele especificar la representación de los operandos;
– el resultado suele coincidir con el primer operando.
• Los tamaños de los formatos encajan en la palabra de la máquina
• Cuando el computador tiene varios formatos, el código de operación
distingue entre ellos.
• Los tamaños de los campos que expresan direcciones deben
corresponder con los mapas direccionados.
15
Programación en Lenguaje Ensamblador. Práctica 1
Departamento de Sistemas Informáticos Escuela de Ingenieros Industriales de Albacete. Informática Industrial 2008-2009
Universidad de Castilla La Mancha

1.4. Modos de direccionamiento

1.4.1. Direccionamiento Implícito


1.4.2. Direccionamiento Inmediato
1.4.3. Direccionamiento Directo
1.4.4. Direccionamiento Indirecto

16
Programación en Lenguaje Ensamblador. Práctica 1
Departamento de Sistemas Informáticos Escuela de Ingenieros Industriales de Albacete. Informática Industrial 2008-2009
Universidad de Castilla La Mancha

1.4. Modos de Direccionamiento (I)


• Ciclo de instrucción: secuencia de operaciones que
lleva a cabo un procesador cuando ejecuta una
instrucción.
• Una de las actividades que se llevan a cabo durante un
ciclo de instrucción consiste en determinar la dirección de
los operandos que intervienen en dicha instrucción.
• Modos de direccionamiento: formas distintas
especifican el lugar concreto donde se encuentran esos
operandos.
• ¿Por qué no incluye la instrucción directamente el
operando o su dirección?
– Ahorro de espacio.
– Estructuras de datos (listas, vectores, matrices, ...).
– Código reubicable: puede ejecutarse en cualquier
zona de la memoria.
Programación en Lenguaje Ensamblador. Práctica 1
17
Departamento de Sistemas Informáticos Escuela de Ingenieros Industriales de Albacete. Informática Industrial 2008-2009
Universidad de Castilla La Mancha

1.4.1. Direccionamiento Implícito


• El operando se encuentra en un registro que está
implícitamente especificado en el propio código de operación
– Por ejemplo instrucciones de desplazamiento o rotación de
los bits del acumulador
– Ventaja: no ocupa espacio en la instrucción
– Inconveniente: restringe la aplicación de la operación

• Ejemplo (i8085):
– Rotación a la izquierda del acumulador con intervención del
bit de acarreo (el código del acumulador no aparece
explícitamente en la instrucción)
0001 0111
RAL:

código operación

18
Programación en Lenguaje Ensamblador. Práctica 1
Departamento de Sistemas Informáticos Escuela de Ingenieros Industriales de Albacete. Informática Industrial 2008-2009
Universidad de Castilla La Mancha

1.4.2. Direccionamiento Inmediato


• El operando está contenido dentro de la propia instrucción
– Ventaja: no requiere posteriores referencias a memoria.
– Inconveniente: el rango del operando está limitado por el
tamaño del campo de dirección.
• Ejemplo (i8085): ADI O3H 1100 0110 0000 0011
código operación operando

MEMORIA

INSTRUCCIÓ
PC COD. OPN OP ALU

• Hay máquinas que permiten distintos tamaños de operandos


inmediatos
19
Programación en Lenguaje Ensamblador. Práctica 1
Departamento de Sistemas Informáticos Escuela de Ingenieros Industriales de Albacete. Informática Industrial 2008-2009
Universidad de Castilla La Mancha

1.4.3. Direccionamiento Directo

• Existen dos tipos:

1.4.3.1. Direccionamiento directo ABSOLUTO


1.4.3.2. Direccionamiento directo RELATIVO

20
Programación en Lenguaje Ensamblador. Práctica 1
Departamento de Sistemas Informáticos Escuela de Ingenieros Industriales de Albacete. Informática Industrial 2008-2009
Universidad de Castilla La Mancha

1.4.3.1 Direccionamiento Directo Absoluto


(I)
• La instrucción contiene la dirección del operando
• Podemos tener los siguientes casos:
– Registro: el campo de dirección contiene el identificador del
registro donde se encuentra el operando.
– Memoria: el campo de dirección contiene la dirección completa
de M.P. donde se encuentra el operando.

• Ejemplo (i8085): Direccionamiento directo a registro

SUB C 10010 001 código del registro


AA-C C

21
Programación en Lenguaje Ensamblador. Práctica 1
Departamento de Sistemas Informáticos Escuela de Ingenieros Industriales de Albacete. Informática Industrial 2008-2009
Universidad de Castilla La Mancha

1.4.3. Direccionamiento Directo Absoluto


(II)

• Ejemplo (i8085): Direccionamiento directo a memoria

LDA 1000
MEMORIA

8 COD. OP. 1000

ALU

1000 OPERANDO
A

22
Programación en Lenguaje Ensamblador. Práctica 1
Departamento de Sistemas Informáticos Escuela de Ingenieros Industriales de Albacete. Informática Industrial 2008-2009
Universidad de Castilla La Mancha

1.4.3. Direccionamiento Directo Relativo


• La instrucción no contiene la dirección del operando, sino un
desplazamiento D sobre una dirección marcada por un
puntero; la dirección del operando se calcula sumando D al
puntero de referencia
– Ventaja: necesita menos bits que el anterior modo
– Inconveniente: necesita realizar una suma
MEMORIA
0
Puntero

C. OP D + P

P-2d-1

Zona de direccionamiento

P+2d-1-1

2m-1
23
Programación en Lenguaje Ensamblador. Práctica 1
Departamento de Sistemas Informáticos Escuela de Ingenieros Industriales de Albacete. Informática Industrial 2008-2009
Universidad de Castilla La Mancha

1.4.5. Direccionamiento Indirecto


• La instrucción indica la MEMORIA

palabra de memoria o el
registro que contiene la
INSTRUCCIÓN

COD. OP. DIR. MEM.

dirección del operando


→ requiere un acceso
adicional a M.P. DIR. OPERANDO

• Se pueden plantear
indirecciones de más de un OPERANDO

nivel.
24
Programación en Lenguaje Ensamblador. Práctica 1
Departamento de Sistemas Informáticos Escuela de Ingenieros Industriales de Albacete. Informática Industrial 2008-2009
Universidad de Castilla La Mancha

1.5. Ejercicios (I)


1.1. Considera un computador con una Memoria Principal de 64K palabras.
¿Qué número de bits tendrá su MAR? ¿Qué número de bits tendrá su
PC?

1.2. Sea una memoria de 32 Mbits que se accede en palabras de 16 bits.


a. ¿Cuántos bits de direccionamiento son necesarios?
b. ¿Y si la memoria fuese de 32 Mbytes?

1.3. ¿Cuál de las siguientes memorias no es posible?


a. 10 bits de dirección, 1024 palabras de memoria, 8 bits por palabra.
b. 10 bits de dirección, 10 palabras de memoria, 1042 bits por palabra.
c. 9 bits de dirección, 1024 palabras de memoria, 10 bits por palabra.
d. 1024 bits de dirección, 10 palabras de memoria, 10 bits por palabra.

25
Programación en Lenguaje Ensamblador. Práctica 1
Departamento de Sistemas Informáticos Escuela de Ingenieros Industriales de Albacete. Informática Industrial 2008-2009
Universidad de Castilla La Mancha

1.5. Ejercicios (II)


1.4. Cierta computadora se puede equipar con
262.144 bytes de memoria principal. ¿Por qué
escoge el fabricante un número tan peculiar, en
lugar de uno más fácil de recordar, como por
ejemplo 250.000?

1.5. Tenemos un ordenador con un bus de


direcciones de 24 bits. La memoria principal tiene
un capacidad de 2Mbytes, siendo el tamaño de
palabra de memoria de 2 bytes. Indica si es
posible ampliar la memoria de este ordenador a
256 Mbits.
26
Programación en Lenguaje Ensamblador. Práctica 1
Departamento de Sistemas Informáticos Escuela de Ingenieros Industriales de Albacete. Informática Industrial 2008-2009
Universidad de Castilla La Mancha

1.5. Ejercicios (III)


1.6. Se denomina Unidad Central de Proceso al
conjunto de:
a. Memoria principal, Unidad de Control y
unidades de entrada/salida.
b. Unidad de Control, registros y Unidad
Aritmético-Lógica.
c. Unidad de Control, Unidad Aritmético-Lógica
y buses.
d. Unidad de Control, Unidad Aritmético-Lógica,
IR, PC, MDR, MAR.

27
Programación en Lenguaje Ensamblador. Práctica 1
Departamento de Sistemas Informáticos Escuela de Ingenieros Industriales de Albacete. Informática Industrial 2008-2009
Universidad de Castilla La Mancha

1.5. Ejercicios (IV)


1.7. Un computador soporta dos modos de direccionamiento diferentes: directo e indirecto. El
formato de las instrucciones es el siguiente:
Código de operación Bit de direccionamiento Dirección

4 bits 1 bit 7 bits

–Si el bit de direccionamiento es 1 se usará el modo de direccionamiento directo y si es


0 se usará el modo de direccionamiento indirecto.
–El código de operación correspondiente a la instrucción para sumar al acumulador un
dato de la memoria, dejando el resultado en el acumulador, es 1100.
–La memoria contiene los siguientes datos: Dirección Contenido
34H 33H
35H 36H
36H 35H
37H 34H

Antes de ejecutar la instrucción, el contenido del acumulador es 2B58H. ¿Cuál será el


contenido del acumulador después de ejecutar las siguientes instrucciones?
a. 1100 1 0110100
b. 1100 0 0110101

28
Programación en Lenguaje Ensamblador. Práctica 1

También podría gustarte