ARQUITECTURA

Anuncio
ARQUITECTURA
Tendencias actuales: Las tendencias actuales tienden a aumentar la velocidad de los computadores en cuanto
al Hardward, por dos caminos:
A)Computadores con conjunto reducido de instrucciones(RISC): en estadísticas se ha comprobado que hay un
conjunto de instrucciones que se utiliza muy poco y esto produce un retardo en las instrucciones más usadas.
B) Proceso paralelo: trata de procesar a la vez varias unidades de proceso. La forma más frecuente es la
segmentación, que consiste en procesar a la vez varias instrucciones aunque estén cada una en distinta frase.
Otras formas de procesa en paralelo requieren múltiples procesadores. En este caso, es necesario dividir el
programa en partes para resolver cada parte en un procesador.
Modelo de Von Newmann: Este es el modelo de la estructura de los computadores actuales. Los elementos
esenciales son memoria y un procesador. La memoria es el lugar de almacenamiento donde se guardan
instrucciones y datos de los programas que se están ejecutando en un momento dado; esto significa que en un
momento dado una palabra puede ser un dato o una instrucción.
El procesador es un intérprete de un juego de instrucciones, sus funciones son:
A) Extraer la instrucción de memoria y decodificarla.
B) Ejecutar la instrucción.
C) Localizar la siguiente instrucción para volver al primer paso.
Este proceso continuará constantemente y de esta forma el ordenador podrá ejecutar cualquier tipo de
programa por grande que fuese su complejidad. Evidentemente el procesador debería llevar algún tipo de
memoria interna con el fin de contener la información sobre los sucesivos estados por los que tiene que pasar
para ejecutar cada una de las instrucciones (también contendrá información sobre la siguiente instrucción a
ejecutar).
En la práctica esa memoria interna se materializa en los registros de la CPU, y así pues la mayoría de los
computadores actuales siguen los mismos patrones que Von Newmann aunque se ha progresado mucho más
en todos los aspectos.
Unidades funcionales: En líneas generales los computadores actuales tienen los mismos bloques que los
diseñados por Newmann; a esos bloques ahora les llamamos BLOQUES FUNCIONALES y se esquematizan
en la siguiente figura:
1
A continuación se presenta con más detalle la estructura interna de cada una de las unidades funcionales:
Los registros más importantes son:
*El contador de programa (PC): contiene la dirección de la siguiente instrucción a ejecutar.
*El registro de instrucciones (IR): en este registro se almacena la instrucción que se está ejecutando en cada
momento.
*Los registros para el uso del programador: que hemos situado en la ALU y que puede tener diferentes
estructuras según cual sea la organización interna del procesador.
*El registro de dirección de memoria (MAR): Contiene la dirección de memoria donde se va a leer o escribir.
*El Buffer de memoria (MB): también llamado MDR. Contiene la información leída en una operación de
lectura; o la información ha escribir en una operación de escritura.
Ejecución de las instrucciones: Un programa consta de una secuencia ordenada de instrucciones, el proceso de
ejecución de cada una de esas instrucciones pasa por los siguientes ciclos o fases:
A)Fase de búsqueda: consiste en la lectura de la instrucción y la búsqueda de sus operandos; si los tiene.
B) Fase de ejecución: consiste en la ejecución de la instrucción.
2
BUSQUEDA: consta de 5 puntos:
• Extraer de memoria la instrucción y llevarla al IR, para hacerlo se carga el PC en el MAR y el resultado
obtenida se pasa al MB, acto seguido el MB se pasa al IR para que se decodifique dicha instrucción
• se incrementa el contenido del PC para que contenga la dirección de la siguiente instrucción.
• Determinar el tipo de instrucción que se ha extraído y el número de sus operandos.
• Si la instrucción tiene operandos deberá determinarse su localización.
• Leer los operandos si los hay.
EJECUCIÓN:
• Ejecutar la instrucción.
• Almacenar los resultados en el lugar apropiado.
• Volver al paso de búsqueda.
Clasificación de los ordenadores:
• Un Micro−computador es un computador de uso personal.
• Un Mini−computador es un computador para el uso de un departamento con pocas personas. (RED)
• Un Maxi−computador es un computador para toda una empresa.
Desde hace años existe una nueva escala en esta clasificación que son las estaciones de trabajo, estas
estaciones son de uso personal pero con una gran potencia de cálculo y otros recursos como HD de gran
tamaño, monitores gráficos de gran resolución.
Esta escala se situaría entre los Mini y los Micro−computadores.
Concepto de arquitectura de un ordenador: El término Arquitectura de un ordenador cubre todos los aspectos
de su organización. Entre estos aspectos, se incluyen las longitudes de palabra, de instrucción, número de
direcciones de cada instrucción, conjunto de instrucciones, modos de direccionamiento. Otras cuestiones se
refieren a cómo está organizada la memoria y cómo se conectan los dispositivos de E/S.
Formatos de instrucción: La representación de la instrucción en las computadoras se denomina Formato de
instrucción.
Sabemos que los programas están formados por instrucciones y la parte esencial de estas es el código de
operación que señala la instrucción a ejecutar; el resto se refiere a los operandos.
Muchas instrucciones contienen además los datos que usan o especifican donde está dicho dato.
Todo lo relativo a la especificación de dónde está el dato se llama Direccionamiento, de los cuales existen
muchos.
Criterio en el diseño de los Formatos de Instrucción: Cuando un grupo de diseñadores de una computadora
han de elegir un formato de instrucción, son múltiples los factores a tener en cuenta:
a)Las instrucciones cortas son mejores que las instrucciones largas; porque ocupan menos en memoria. Este
requisito es importante ya que la memoria no es gratuita y cuanta más memoria usemos para almacenar
instrucciones menos datos podremos almacenar simultáneamente en memoria central, con lo que se utilizará
más la memoria secundaria y así se relentizará su ejecución.
b)La velocidad de transferencia o caudal de una memoria. Si el caudal de una memoria es de tbits/sg y la
3
longitud de media de la instrucción es de rbits, entonces la memoria puede entregar un máximo de t/r
instrucciones /sg.
c)Diseño del formato de instrucción que consiste en dejar suficiente sitio (bits) en la instrucción para poder
expresar todas las operaciones deseadas.
d) La longitud de la palabra de instrucción sea múltiplo entero de la longitud de la palabra de memoria. Si la
longitud de la palabra de la memoria es de Kbits la palabra de instrucción debería tener una longitud de K, 2K,
3K.....
e)Elegir el número de campos de dirección (operandos) que va ha tener la instrucción, así como el nº de bits
que se necesitan para cada operando. Existen formatos de instrucción con 1, 2, 3 o 4 direcciones.
Códigos de operación con extensión: este método se suele utilizar en arquitecturas con longitud de instrucción
fijas. Por ejemplo:
*Sea una màquina cuyas instrucciones tienen 16bits de longitud y las direcciones de 4bits tal y como se
representa en la fig:
Este formato es razonable para un tipo de máquina que tenga 16 registros (direcionar 1 registro de entre un
total de 16 hace necesario 4bits). Con este formato podemos tener 16 operaciones distintas con tres
direcciones. Ahora bien si los diseñadores necesitan:
*15 instrucciones de 3 direcciones
*14 instrucciones de 2 direcciones.
*31 instrucciones de 1 direcciones.
*16 instrucciones sin direcciones.
0000 1º 2º 3º
15 1110 1º 2º 3º
1111 0000 1º 2º
14 1111 1101 1º 2º
1111 1110 0000 1º
4
31 1111 1110 1111 1º
1111 1111 0000 1º
1111 1111 1110 1º
16 1111 1111 1111 0000
1111 1111 1111 1111
Modos de direcionado en órdenes reales: el PDP11 tiene 8 modos de direccionado aunque en la realidad
veremos que tiene alguno más.
Directo por registro: Rn. El operando se encuentra en el registro especificado.
Directo por registro: (Rn). La dirección del operando se encuentra en el registro
especificado.
Autoincremental: (Rn)+ . La dirección del operando se encuentra en el registro Rn y dicho registro se
incrementa después del acceso en un valor igual al tamaño del operando medido en bytes. Los incrementos
pueden ser dos:
*I ncremento=1, si el operación se realiza sobre un byte.
*Incremento=2, si la operación se realiza sobre 1 palabra.
Autodecremental: −(Rn). El registro Rn se decrementa en la longitud del
operando:
* En 1 si el tamaño del operando es 1byte.
* En 2 si el tamaño del operando es 2byte.
El contenido del registro después del decremento es la dirección del operando.
Indexado: X(Rn). La dirección del operando se obtiene sumando el desplazamiento X al contenido del Rn.
El desplazamiento se codifica en la palabra siguiente a la instrucción.
Modos de direccionado sobre el PC:
Inmediato: # Constante. Este modo es el autoincremental sobre el PC debido a que el operando inmediato se
localiza en la palabra siguiente a la instrucción.
Relativo: Dirección. Este genera un código independiente de la posición. Se trata del direccionamiento
indexado sobre el PC.
VAX
16 registros de uso general de 0 a 15.
5
R15=PC
R14=SP
Cada registro es de 32 bits. Código de operación fijo=8 bits. Longitud de instrucción variable.
Modos de direccionados del VAX:
Directo por registro: Rn. El operando se encuentra en el registro especificado.
Indirecto por registro: (Rn). La dirección del operando se encuentra en el registro especificado.
Autodecremental: −(Rn). el registro Rn se decrementa en la longitud del operando medido en bytes.
Las longitudes posibles de los operandos van de 1 byte a 16 bytes. El contenido del registro después de la
operación es la dirección del operando.
Autoincremental: (Rn)+. La dirección del operando se encuentra en el registro Rn y este se incrementa
después del acceso en el tamaño del operando medido en bytes.
Autoincremental indirecto: @(Rn)+. El registro se incrementa en 4 cualquiera que sea el tamaño del
operando. Ya que el tamaño de una dirección de memoria es de 32bits.
A, C y e por desplazamiento: X(Rn). La direccción del operando se obtiene sumando el desplazamiento X al
contenido del registro.
La suma se realiza extendiendo el signo del desplazamiento de 32 bits si su tamaño es menor.
El desplazamiento se codifica tras la instrucción. Dependiendo del tamaño del desplazamiento la codificación
es distinto, si el desplazamiento es de 1byte implica el modo A, si el desplazamiento es de 1palabra implica
modo C, si es una doble palabra implica el modo E.
Este modo es similar al indexado en el PDP11.
Modos B, D y F indirecto por desplazamiento: @ X(Rn). Sumando el desplazamiento al contenido del
registro optenemos la localización de la dirección del operando.
El desplazamiento también se codifica después de la instrucción y depende de su tamaño su codificación es
diferente. B si es 1byte, D si es una palabra y F si es doble palabra.
Modo del 0−3 Literal o inmediato: # Constante. Corresponde a los valores de codificación de
direccionamientocuyos dos primeros bits son 0.
Dos de los bits de codificación de modo se invaden para el operando literal que ocupa 6 bits.
Indexado: b[Rn]. Para obtener la dirección efectiva del operando se suma el contenido de Rn multiplicado por
el tamaño del operando en bytes con la dirección del operando base(b).
Se puede expresar en diferentes modos del 6 al F, es decir, que el operando reside en memoria.
Modos de direccionado sobre el PC:
6
Inmediato: # Constante. Este modo es el autoincremental sobre el PC ya que el operando inmediato se localiza
en la palabra siguiente a la inatrucción.
Relativo: Dirección. Genera código independiente de la posición. Se trata de direccionamiento por
desplazamiento sobre el PC. (x(R15)).
7
Descargar