Está en la página 1de 14

Fernando Meneses Poveda – Teman 5: Estructura de Computadores

19 de mayo de 2011

Tema 5: Estructura de Computadores


Índice:
1. Introducción.
2. Lenguaje Ensamblador.
3. Memoria.
4. Unidad Central de Proceso (CPU)

1. Introducción
#Computador: máquina capaz de recibir instrucciones a través de algún medio,
entenderlas y finalmente ejecutarlas. Es una maquina o dispositivo programable.

[Hamacher96]: Maquina cálculo electrónica de alta velocidad acepta información


digitalizada, la procesa atendiendo a una lista de instrucciones que almacena
internamente, y produce la correspondiente salida.

[DRAE]: Máquina electrónica, analógica o digital, dotada de gran memoria y de


métodos de tratamiento de la información, capaz de resolver problemas matemáticos
y lógicos mediante la utilización automática de programas informáticos.

Etapas de procesamiento de la información:


o Entrada: recogida de datos. Ej: teclado, código de barras.
o Proceso: Tratamiento de los daos. Ej: ordenación, selección,
combinación, etc…
o Salida: obtención de la información resultante. E: pantalla, impresora.

Visión funcional del computador.


Tipos de operaciones que realiza:

o Procesamiento de datos.
o Almacenamiento de datos.
o Transferencia de datos.
o Control.

Página 1
Fernando Meneses Poveda – Teman 5: Estructura de Computadores
19 de mayo de 2011

Visión estructural del computador


Estudia la forma de cómo se relacionan los componentes unos con otros, sus
principales componentes son:

o Procesador: Controla el funcionamiento del computador y procesa los


datos.
o Subsistema de memoria: almacena datos.
o Subsistema de entrada/salida: transfiere datos entre el computador y
el entorno externo.
o Ruta de datos: interconexión entre las diferentes partes.

Máquina de Von Neumann


Salvo raras excepciones, todos los computadores de hoy en día tienen la
misma estructura general y funcionamiento: la de una máquina de Von Neumann.

Esta se caracteriza por:

o Realiza un determinado conjunto de operaciones básicas sobre unos


datos.
o Los datos y las instrucciones se almacenan en una sola memoria de
lectura escritura.
o Los contenidos de la
memoria se direccionan
indicando su posición sin
considerar el tipo de
dato contenido en la
misma.
o La ejecución se produce
siguiendo una secuencia
de instrucción tras
instrucción llamada
programa.

Ejecución de una instrucción


Ciclo de “Búsqueda/Ejecución”:

o El procesador busca la instrucción en la memoria.


o El procesador ejecuta el “Leguaje maquina” de la instrucción.

Página 2
Fernando Meneses Poveda – Teman 5: Estructura de Computadores
19 de mayo de 2011

2. Lenguaje Ensamblador

Introducción
#Lenguaje Ensamblador: es un lenguaje de programación de computadores de
bajo nivel que permite la optimización de su uso.

Existe una correspondencia biunívoca entre instrucciones en lenguaje máquina


e instrucciones en lenguaje ensamblador.

El lenguaje ensamblador debe ser traducido a lenguaje máquina para poder ser
interpretado.

Está totalmente vinculado a la estructura del computador y tiene una


dependencia absoluta de su arquitectura. Esto imposibilita transportar programas
entre diferentes tipos de máquinas.

Las instrucciones son muy poco potentes, lo que suele conducir a programas
muy largos.

Cuando trabajamos en lenguaje ensamblador, el programador tiene acceso a


todos los recursos de la máquina con la que está trabajando, como son los registros
internos del procesador, los indicadores de resultado y espacio de direcciones (Tanto
la memoria principal como periféricos de E/S)

Página 3
Fernando Meneses Poveda – Teman 5: Estructura de Computadores
19 de mayo de 2011

Manotas
Es un computador didáctico que permite de forma sencilla el estudio de las
estructuras del computador. Mediantes su conjunto de instrucciones reducido
estudiaremos el lenguaje ensamblador. Entre sus características podemos destacar
que:

o Posee una Arquitectura Von Neumann


o Está dotado de una Unidad Aritmético-Lógica capaz de realizar las
operaciones que conocemos.
o Posee un registro de estado, que contiene los indicadores de
resultado.
o Tiene un banco de 4 registro genéricos.
o Es capaz de direccionar memoria de 64Kbytes.

Estructura:

Memoria:

Está estructurada en palabras de 8 bits (un byte), y por tanto el tamaño


de bus de datos tendrá este tamaño. Su bus de direcciones es de 16 bits, que
es el que determina el espacio direccionable y, por tanto, su tamaño máximo:
64Kbytes (2^16).

El bus de datos es un bus bidireccional, puesto que es donde


tendremos la información cuando leamos una posición de memoria, y donde
tendremos que colocar los datos cuando los queramos escribir.

El bus de direcciones es unidireccional, y solo recibirá datos. Serán los


referentes la dirección de la posición de memoria con que queremos trabajar.

ALU:

Página 4
Fernando Meneses Poveda – Teman 5: Estructura de Computadores
19 de mayo de 2011

La Unidad Aritmético-Lógica es capaz de realizar solamente las


operaciones de suma, resta, comparación, AND, OR, XOR y negación. Incorpora
el registro de estado, que contiene los indicadores de resultados (flags):

 FZ (Indicador de Cero): se pone a 1 cuando el resultado de la


última operación realizada de en la ALU ha sido cero.
 FC (Indicador de Acarreo): se pone a 1 cuando la suma de los
bits más significativo de los operandos produce acarreo.
 FO (Indicador de Overflow): se pone a 1 cuando el resultado
de la última operación realizada en la ALU es mayor que el
mayor número representable con el tamaño de la palabra que
estamos trabajando.

Para realizar las operaciones la ALU se apoya en un registro auxiliar


denominado acumulador.

También existe un banco adicional compuesto por 4 registros.

Unidad de control:

Se encarga de gobernar el funcionamiento de todos los elementos. Sus


funciones son:

 Cargas las instrucciones, que se encuentran en la memoria, en


un registro al que se denomina Registro de Instrucción.
 Controla un registro denominado Contador de Programa, que
es el que lleva la cuenta de la dirección de la instrucción que
se va ejecutar en cada momento.
 Decodifica la instrucción
 Controlar la ejecución de las instrucciones y la comunicación
con los periféricos.

Sintaxis:

La estructura de una línea de un programa escrito en lenguaje


ensamblador está compuesta por varios campos que se separan mediantes
delimitadores: tabuladores o espacios. Estos campos son:

 Mnemónico. Indica la operación a realizar en si.


 Operandos. Que estarán compuestos por registros, datos o
direcciones de memoria. Generalmente será solamente uno,
pero también puede ser dos o incluso ninguno.
 Comentarios: los iniciaremos con ; (Punto y coma)

Ejemplo: Mnemónico Operando Comentario

ADD C ; Suma los registros A-C

Página 5
Fernando Meneses Poveda – Teman 5: Estructura de Computadores
19 de mayo de 2011

Repertorio de instrucciones. Instrucciones de transferencias.

Este grupo de instrucciones está referido a aquellas que nos van a


permitir mover, copiar o llevar la información entre dos recursos o elementos
que componen nuestro computador.

LDA dir ; A M(dir)

Esta instrucción cargar en el registro acumulador A el contenido de la


posición de memoria cuya dirección es dir (16bits). Ejemplo: LDA 1000h

STA dir ; M(dir) 

Esta instrucción guarda el contenido del registro acumulador A en la


posición de memoria cuya dirección es dir.

LDAX ; A  M(D-E)

Esta instrucción carga en el registro acumulador A el contenido de la


posición de memoria cuya dirección esta compuesta por el contenido de los
registros D (parte alta) y E (parte baja).

STAX ; M(D-E)  A

Esta instrucción guarda contenido del registro acumulador A en la


posición de memoria cuya dirección esta por el contenido de los registro D
(parte alta) y E (parte bajar).

MOV r1, r2 ;r2  r1

Esta instrucción copia el contenido del registro r1 en el registro r1.


Tanto r1 como r2 son cualquiera de los registro que se dispone: A, B, C, D, o E.
Ejemplo: MOV B,C

MVI dato, r1 ;r1  dato

Esta instrucción guarda del valor dato en el registro r1. Dato puede ser
cualquier número de 8 bits. R1 será cualquier de los registros de que se
dispone A, B, C, D, o E.

Ejemplo: MVI 3Ah, B

MVI dato16, SP ;SP  dato16

Esta instrucción guarda del valor dato (de 16 bits) en el registro SP


(Puntero de Pila).

PUSH r1 ;M (SP)  r1 SP  SP +1

Esta instrucción guarda el contenido del registro r1 en la posición de


memoria a la que apunta SP y posteriormente incrementa SP.

Página 6
Fernando Meneses Poveda – Teman 5: Estructura de Computadores
19 de mayo de 2011

PUSH r1 ;M(SP)  r1 SP  SP +1

Esta instrucción decrementa SP y posteriormente lleva al registro r1 el


contenido de la posición de memoria a la que apunta SP.

Instrucciones Aritméticas

ADD r1 ; A  A + r1

Esta instrucción suma el contenido del registro A con el contenido del


registro r1, quedando el resultado en A, r1 puede ser A, B, C, D o E.

ADI dato ;A  A + dato

Esta instrucción suma el contenido del registro A con el dato de 8 bits


dado, quedando el resultado en A.

INR r1 ;r1  r1 +1

Esta instrucción incrementa en una unidad el contenido del registro r1.

SUB r1 ;r1  r1 – 1

Esta instrucción decrementa en una unidad el contenido del registro


r1.

SUI dato ;A  A – dato

Esta instrucción resta al contenido del registro A el dato de 8 bits dado,


quedando el resultado en A.

CMP r1 ;A – r1

Esta instrucción resta al contenido del registro A el contenido del


registro r1 y modifica los indicadores de resultado Z, C y O consecuentemente.
El resultado de la operación no se almacena.

CMI dato ;A – dato

Esta instrucción resta al contenido del registro A el valor del dato dado,
y modifica los indicadores de resultado Z, C y O consecuentemente. El
resultado de la operación no se almacena.

Instrucciones Lógicas.

ANA r1 ;A  A and r1

Esta instrucción realiza la función de AND entre el contenido del


registro A y el contenido del registro R1, quedando el resultado en A.

ANI dato ;A  A and dato

Página 7
Fernando Meneses Poveda – Teman 5: Estructura de Computadores
19 de mayo de 2011

Esta instrucción realiza la función AND entre el contenido del registro A


y el dato de 8 bits dado, quedando el resultado de A.

ORA r1 ;A A or r1

Esta función realiza la función OR entre el contenido del registro A y el


contenido del registro r1, quedando el resultado en A.

ORI dato ;A  A or dato

Esta instrucción realiza la función OR entre el contenido del registro A


y el dato de 8 bits dado, quedando el resultado en A.

XRA r1 ;A  A xor r1

Esta instrucción realiza la función OR Exclusiva (XOR) entre el


contenido del registro A y el contenido del registro r1, quedando el resultado
en A.

XRI dato ;A  A and dato

Esta instrucción realiza la función OR Exclusiva (XOR) entre el


contenido del registro A y el dato de 8 bits dado, quedando el resultado en A.

CMA ;A  A’

Esta instrucción realiza el complemento lógico del contenido del


registro A, quedando el resultado en A.

Ruptura secuencial.

JMP dir ;PC  dir

Esta instrucción carga en el contador de programa (PC) la dirección


especificada en dir (16 bits).

JZ dir ;Si Z=1 PC  dir

Esta instrucción carga en el contador de programa (PC) la dirección


especificada en dir en el caso de que el indicador de cero (Z) valga 1. En caso
contrario no tiene efecto alguno.

JC dir ;Si C=1 PC dir

Esta instrucción carga en el contador de programa (PC) la dirección


especificada en dir en el caso de que el indicador de acarreo (C) valga 1.

JO dir ;Si O=1 PC  dir

Esta instrucción carga en el contador de programa (PC) la dirección


especificada en dir en el caso de que el indicador de Overflow (O) valga 1.

Página 8
Fernando Meneses Poveda – Teman 5: Estructura de Computadores
19 de mayo de 2011

CALL dir ;SP  SP+1 ;M(SP)  PC ;PC  dir

Esta instrucción incrementa el puntero de pila (SP), guarda el


contenido del contador de programa en la dirección a la que apunta SP y
actualiza el contenido del contador de programa con la dirección dir.

RET ; PC  M(SP) SP  SP – 1

Esta instrucción carga en el contador de programa (PC) el contenido de


la dirección de memoria a la que apunta el puntero de pila y posteriormente
decrementa éste.

3. Memoria
#Memoria: contiene los programas que se ejecutan en el computador y los
datos sobre los que trabajan dichos programas.

La posición de la unidad de datos se llama dirección.

Una memoria se identifica por el número de palabras que puede almacenar.


Una memoria de 32Kpalabras, tiene un tamaño de 32*1024 posiciones de memoria de
un ancho palabra.

Si la palabra es igual a 8 entonces decimos que es de 23K*8 o de 32Kbytes.

Las dos operaciones básicas de las memorias son:


o Lectura: Carga en el registro, llamado habitualmente de datos, el
contenido de la posición de memoria dad por el bus de direcciones.
o Escritura: Almacenar el contenido del registro de datos, en la posición
de memoria dada por la dirección especificada por el bus de
direcciones.

Clasificación
Las memorias se pueden clasificar atendiendo a diversos parámetros:

 La Capacidad, que es la cantidad de información que se puede


almacenar en ella.
 La forma en la que se accede a la información. Depened de la
forma de almacenar información en ella.
 Las características tecnológicas de los elementos electrónicos
utilizados para memorizar las variables digitales.

Capacidad
La cantidad de información que puede almacenar se mide en la unidad
de medida de información en el sistema binario: el bit.

En general, la información se almacena en grupos de bits denominados


posiciones o palabras formadas por un cierto número n1 de bits accesibles

Página 9
Fernando Meneses Poveda – Teman 5: Estructura de Computadores
19 de mayo de 2011

simultáneamente. El número de palabras o posiciones de una memoria es el


cociente N/n1 = m1, en la que m debe ser una potencia de dos.

Denominamos direccionamiento a la selección de una determinada


posición de memoria para introducir en ella o leer la que contiene. El número
de bits necesarios para poder seleccionar m posiciones es n, tal que 2^n=m.

Dado que la base 10 no es una potencia de 2, no es posible utilizar el


sistema decimal de forma directa. Por ello la capacidad de una memoria se
mide asignando el concepto 1000(K) a la potencia de 2 más próxima a 1000,
que es 1024.

Para seleccionar 1024 posiciones se necesitan 10 bits, dado que 2^10 =


1024. De todo lo expresado se deduce que la capacidad en K de una memoria
seleccionada mediante n2 variables es 2^n 2^-10. Por Ejemplo si n2 = 14 la
memoria tiene una capacidad de 16K.

El número total de posiciones de una memoria de Nk es n * 1024. Por


ejemplo una memoria de 32K posee 23*1024 = 32.798 posiciones. De forma
similar se define en mega (M) como la potencia de dos más próxima a un
millón, que es 1024*1024 = 1.048.576 y el giga como la potencia de dos más
próxima a mil millones.

Para indicar la capacidad total de una memoria debemos indicar el


número de posiciones de memoria y el número de bits de cada posición.

Ejemplo:

Una memoria de 32K*16 posee 32.768 posiciones de 16 bits


cada una y su capacidad total es n = 32.768 *16 = 524.288 bits.

Es también muy usual que la capacidad de una memoria se


mida en octetos (Bytes) que son grupos de 8 bits. Cuando se hace así,
una memoria de 512K por ejemplo posee 512*1024*8 = 4.194.304
bits.

Forma de acceso a la información


La acción de introducir información (escribir) en una posición de la
memoria o leer la que contiene se denomina acceder a la misma.

Según la forma de acceder a una posición hablaremos de:

 Memorias de acceso directo (Direct Acces Memories)


 Memorias de acceso secuencial (Sequential Acces Memories)
 Memorias asociativas (Content Addressable Memories - CAM)

Página
10
Fernando Meneses Poveda – Teman 5: Estructura de Computadores
19 de mayo de 2011

Memorias de Acceso Directo:

Las memorias de acceso directo son aquellas en las que es


posible especificar una posición o un conjunto de posiciones para leer
su información o escribir en ellas.

Poseen un conjunto de variables de dirección que permiten


seleccionar cualquier posición de la misma. El tiempo que se tarda en
leer el contenido de una posición o en escribir en ella, a partir del
instante en el que se presenta la dirección en los terminales
correspondientes, es el mismo para todas las posiciones de la
memoria. Por lo tanto, una memoria de estructura interna aleatoria es
por si misma una memoria de acceso directo en la que el tiempo de
acceso a cualquier posición es el mismo independientemente de su
situación. Por ello a este tipo de memorias se las suele denominar
simplemente MEMORIAS DE ACCESO ALEATORIO – Random Acces
Memories – RAM.

Memorias de acceso secuencial:

No se especifica la dirección de la información sino que, en


cada instante, se introduce la información situada en los terminales de
entrada en la posición de memoria conectada a la misma o se lee la
situada en la posición conectada a los terminales de salida.

Estas se diferencian de las estructura interna aleatoria en que


el tiempo de acceso al contenido de una posición depende de la
situación de la misma en el interior de la memoria.

Para introducir información en una posición hay que hacerla


pasar por todas las que preceden a partir de los terminales de entrada.
Para leer el contenido de una posición hay que hacer pasar su

Página
11
Fernando Meneses Poveda – Teman 5: Estructura de Computadores
19 de mayo de 2011

información por todas las que siguen hasta alcanzar los terminales de
salida. Se denominan MEMORIAS SERIE.

Memoria Asociativa

Content Addressable Memories – CAM, la búsqueda de la


información en la operación de lectura no se realiza indicando una
dirección y leyendo su contenido, sino que suministra la información a
la memoria para observar si ésta la contiene en alguna de sus
posiciones. Es adecuada para el almacenamiento de determinados
tipos de organizaciones de los datos. Por ejemplo, una tabla de clientes
con su dirección como dato asociado se debe organizar de forma
asociativa para que al presentar a la memoria el nombre de un cliente
ésta dé a la salida su dirección. Se puede escribir aleatoriamente.

Características Tecnológicas.
Un elemento o celda de memoria está formado por uno o varios
dispositivos electrónicos capaces de memorizar una variable binaria.

Se han desarrollado diversos físicos que dan lugar a celdas de memoria


que se diferencian por:

 El tiempo permanencia de la información.


 La duración de la información.

La permanencia de la información también recibe la denominación de


volatilidad y es la propiedad que tiene un elemento de memoria de mantener
o no la información almacenada en él al dejar de aplicarle tensión de
alimentación. Se dice que no es volátil el elemento de memoria que la
mantiene y que es volátil el que, por lo contrario la pierde. (ROM y RAM)

Denominaremos duración al tiempo máximo que transcurre desde que


se introduce la información en elemento de memoria hasta que éste la pierde
aunque la tensión de alimentación se mantenga de forma indefinida. Esta
característica se aplica solo a los elementos de memoria volátiles, que, de
acuerdo con ella, pueden ser:

 Elementos estáticos.
 Elementos dinámicos.

Página
12
Fernando Meneses Poveda – Teman 5: Estructura de Computadores
19 de mayo de 2011

Debido a su gran simplicidad, los elementos estáticos están


constituidos generalmente por biestables R-S

En cuanto a los elementos dinámicos, los transistores MOS se


caracterizan por tener una impedancia de entrada prácticamente capacitiva. Se
puede utilizar dicha capacidad como elemento de memoria, que retiene la
información durante algún ms.

4. Unidad Central de Proceso


Está compuesta básicamente de dos elementos:

 Unidad Aritmético-Lógica.
 Unidad de Control.

La Unidad de Aritmético-Lógica podemos definirla como el bloque puramente


combinacional que debe permitir realizar las operaciones que se necesitan generar
instrucciones de tipo aritmético y lógico que se hayan definido dentro del repertorio
de instrucciones.

La A.L.U. estará por tanto por:

o Operadores aritméticos y lógicos (Los que sean necesarios).


o El registro acumulador.
o Uno o varios registros temporales.
o Un registro que contiene los Indicadores de resultado (flags)
 Acarreo (C)
 Negativo (N)
 Desbordamiento u Overflow (O)
 Cero (Z)

Página
13
Fernando Meneses Poveda – Teman 5: Estructura de Computadores
19 de mayo de 2011

La Unidad de Control:

Funciona Como árbitro del funcionamiento del procesador. Se encarga


de coordinar que todos los elementos funcionen de forma armónica dando las
señales oportunas en cada momento.

Puede ser básicamente de dos tipos:

 Diseño de Cableado: implementación en Hardware, por lo


tanto muy rápido. La modificación posterior implica cambiar el
circuito.
 Diseño Microporgramado: Representación programada para
el control. Más lento, al tener que acceder a la memoria de
control, aunque permite cambios posteriores de forma más
sencilla.

Página
14

También podría gustarte