Tema 1 (Completo Bibliografía

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 30

Tema 1: Introducción

Estructuras de computadores
David Gutiérrez Pérez

Granada, 2022

1
Índice
1. Unidades funcionales 4

2. Entrada/Salida 4
2.1. Unidad de entrada (E) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2. Unidad de salida (S) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

3. Memoria 6
3.1. Memoria interna (MI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.2. Memoria externa (ME) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.3. Jerarquı́a de memoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.3.1. Memoria caché . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.3.2. Jerarquı́a de memoria: funcionamiento . . . . . . . . . . . . . . . . . 8
3.4. Instrucciones máquina . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.4.1. Elementos de una instrucción máquina . . . . . . . . . . . . . . . . . 10
3.4.2. Instrucciones de transferencia . . . . . . . . . . . . . . . . . . . . . . 12
3.4.3. Instrucciones aritméticas y de comparación . . . . . . . . . . . . . . . 12
3.4.4. Instrucciones lógicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.4.5. Instrucciones de bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.4.6. Instrucciones de desplazamiento . . . . . . . . . . . . . . . . . . . . . 13
3.4.7. Instruccones de rotación . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.4.8. Instrucciones de salto o bifurcación . . . . . . . . . . . . . . . . . . . 14
3.5. Ordenamiento, organización y alineamiento de memoria en bytes . . . . . . . 15

4. CPU 16
4.1. Elementos internos de un procesador . . . . . . . . . . . . . . . . . . . . . . 17
4.1.1. Unidad de procesamiento . . . . . . . . . . . . . . . . . . . . . . . . . 17
4.1.2. Unidad de control (CU) . . . . . . . . . . . . . . . . . . . . . . . . . . 18
4.2. Ciclo de ejecución de instrucciones: fases . . . . . . . . . . . . . . . . . . . . 19
4.2.1. Ciclo de ejecución de instrucciones: estados . . . . . . . . . . . . . . 20
4.3. Repertorios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.3.1. RISC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.3.2. CISC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.4. Modos de direccionamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.4.1. Direcionamiento inmediato . . . . . . . . . . . . . . . . . . . . . . . . 22
4.4.2. Direccionamiento directo . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.4.3. Direccionamiento indirecto . . . . . . . . . . . . . . . . . . . . . . . . 23
4.4.4. Direccionamiento de registros . . . . . . . . . . . . . . . . . . . . . . . 23
4.4.5. Direccionamiento indirecto con registro . . . . . . . . . . . . . . . . . 23
4.4.6. Direccionamiento con desplazamiento . . . . . . . . . . . . . . . . . . 24
4.5. Formato de instrucción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4.5.1. Caracterı́sticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

2
5. Estructura de bus 25
5.1. Estructura de un bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
5.2. Buses múltiples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
5.3. Estructuras básicas de interconexión . . . . . . . . . . . . . . . . . . . . . . . 27

6. Rendimiento 28
6.1. Ecuación básica de rendimiento . . . . . . . . . . . . . . . . . . . . . . . . . 28
6.1.1. Reducción de T en repertorios . . . . . . . . . . . . . . . . . . . . . . 28

7. Perspectiva histórica 29
7.1. 1ª generación (45- 55): tubos de vacı́o . . . . . . . . . . . . . . . . . . . . . . 29
7.2. 2ª generación (55 - 65): transistores . . . . . . . . . . . . . . . . . . . . . . . 29
7.3. 3ª generación (65 - 75): circuito integrado . . . . . . . . . . . . . . . . . . . . 29
7.4. 4ª generación (75 - ...): VLSI . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
7.5. Actualidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

3
1. Unidades funcionales
El esquema general de un computador se compone de una serie partes fucionales inde-
pendientes:

Entrada/Salida: unidades de entrada y salida.

Memoria: memoria interna y externa.

Unidad de procesamiento (CPU): unidad arimético-lógica (ALU) y unidad de control


(CU).

Para conectar todas estas partes, se utiliza una red de interconexión, de manera que se
pueda intercambiar información y coordinar las acciones de y entre las distintas partes.

Este esquema básico, se conoce como arquitectura von Neuman. Dicho esquema se
puede representar de la siguiente forma:

Figura 1 Unidades básicas funcionales según la arquitectura.von Neuman

2. Entrada/Salida
Un módulo de Entrada/Salida es un dispositivo que permite tanto introducir como trans-
mitir información a los distintos componentes de una computador. Cada uno de los módulos
se conecta al bus del sistema o a un comutador central y controla uno o más dispositivos
periféricos.

En el siguiente esquema se muestra como se relacionan las unidades de entrada y salida


con el procesador, la memoria y otros componentes básicas de una computadora:

4
Figura 2 Esquema de relación entre E/S, memoria, procesador y otros componentes.

Las principales funciones y requisitos de un módulo de E/S son:

Control y temporización.

Comunicación con el procesador.

Comunicación con los dispositivos.

Almacenamiento temporal de datos.

Detección de errores.

2.1. Unidad de entrada (E)


Es un dispositivo por el que se introducen en el computador los datos de las instruccio-
nes. En estas unidades se transforman las informaciones de entrada en señales binarias de
naturaleza eléctrica. Un mismo computador puede tener varias unidades de entrada.

2.2. Unidad de salida (S)


Es un dispositivo por el que se obtienen los resultados de los programas ejecutados
en el computador. La mayor parte de estas unidades transforman las señales eléctricas
binarias en información perceptible por el usuario. Un mismo computadores puede tener
varias unidades de salida.

5
3. Memoria
La memoria es el dispositivo que retiene, memoriza o almacena datos informáticos du-
rante algún periodo de tiempo. La memoria proporciona una de las principales funciones
de la computación moderna: el almacenamiento de información y conocimiento. Las carac-
terı́sticas clave de todo dispositivo de memoria son: coste, capacidad y tiempo de acceso.

3.1. Memoria interna (MI)


Es la unidad donde se almacenan tanto los datos como las instrucciones durante3 la
ejecución de los programas. La memoria interna (también denominada memoria central o
memoria principal) actúa con una gran velocidad y está ligada directamente a la unidades
más rapidas del computador (ALU y CU). En los computadores actuales está formada por
circuitos electrónicos integrados (chips).

La memoria interna está divida en posiciones (denominadas también palabras de me-


moria) de un determinado número de n bits, que es donde se almacena la información.
Cada palabra puede únicamente referenciar por su dirección (número de orden), de forma
que siempre que se quiera escribir o leer un dato o instrucción en la memoria hay que es-
pecificar la direccción donde se debe efectuar la operación en cuestión.

Normalmente hay una zona de la memoria en la que sólo se puede leer (memoria ROM)
y que es permanente, y otra en la que se puede leer y escribir (memoria RRAM) que es
volátil.

Figura 3 Diagrama simplificado de una memoria de 255 palabras.

3.2. Memoria externa (ME)


La memoria externa, masiva,auxiliar o secundaria, es la unidad de memoria en la que
se almacena masivamente la información requerida por los distintos módulos y dispositi-

6
vos del computador que no requieren una gran velocidad a la hora de leer o escribir. La
información almacenada en la memoria externa se guarda indefinidamente.

3.3. Jerarquı́a de memoria


El diseño del sistema de memoria para el almacenamiento de información de un compu-
tador puede resultar una tarea compleja y costosa. Para solucionar esto, se puede estable-
cer una jerarquı́a de memoria en la cual se deben considerar cuatro puntos de vista:

1. Tamaño o capacidad, s, suficiente de almacenamiento .

2. Tiempo de acceso, t, el menor posible.

3. Ancho de banda, b, alto.

4. Coste pot bit, c, reducido.

Además, debemos tener en cuenta las caracterı́sticas fundamentales de la memoria: coste,


capacidad y tiempo de acceso. Al realizar el diseño de la jerarquı́a utilizamos una serie de
teconologı́as en las qu se cumplen las siguentes relaciones:

A menor tiempo de acceso, mayor coste por bit.

A mayor capacidad, menor coste por bit.

A mayor capacidad, menor tiempo de aceso.

Sin embargo, no existen teconologı́as que cumplan con los requisitos mencionados y que
cumplan con dichas relaciones. Para ello, antes de diseñar la jerarquı́a de memoria, debe-
mos implementar un nuevo dispositivo de memoria conocido como memoria caché.

3.3.1. Memoria caché


El objetivo de la memoria caché es lograr que la velocidad de la memoria sea lo más
rapida posible, consiguiendo al mismo tiempo un tamaño grande al precio de memorias
semiconductoras menos costosas.

7
En la jerarquı́a de memoria, hay una memoria principal relativamente grande y más lenta,
junto con una memoria caché más pequeña y rápida. La caché contiene una copia de partes
de la memoria principal. Cuando se intenta leer una palabra de la memoria se lleva a cabo
el siguiente proceso:

1. Se comprubea si la palabra está en la caché.

a) Si está, se entrega al procesador.


b) Si no está, un bloque de la memoria principal, consistente en un cierto número
de palabras, se transfiere a la caché.

2. Se entrega la palabra.

3.3.2. Jerarquı́a de memoria: funcionamiento


La jerarquı́a de memoria dispone de la siguiente representación:

En los niveles superiores de la jerarquı́a, se concentran los registros de la CPU, la memoria


caché y la memoria principal, normalemente agrupados con el nombre de memoria inter-
na. Tras ellos, se encuentran los discos y cintas magnéticas, agrupados con el nombre de
memoria externa.

El procesador es el elemento principal del computador, ya que este controla el funciona-


miento del computador al completo y realiza el tratamiento de los datos. Cuando el proce-
sador va a operar, los datos que vaya a utilizar se encuentran próximos a él, es decir, en el
nivel más alto de la jerarquı́a y por tanto, en la memoria interna.

Cuando se solicita el contenido de una dirección de memoria, se lleva a cabo el siguiente


proceso:

8
1. Se comprueba la información está en un determinado nivel, si es ası́ se produce un
acierto. En caso contrario, se produce un fallo.

Cuando se produce un fallo en un determinado nivel i, secopia el bloque de datos


del nivel inmediatamente inferior i + 1, dentro de lcual se encuentra la información
solicitada.

2. Una vez que la información se encuentra en los niveles superiores de la jerarquı́a


(registro o caché), el procesador accede directamente a leer o escribir.

3. Según se van ejecutando los programas, el nivel correspondientes se irá llenando de


información, llegando a estar completamente lleno.

4. Una vez que esta lleno, mediante un algoritmo de remplazo, se decide que bloque de
datos debe desalojarse para introducir un nuevo.

Figura 4 Representación de la jeraquı́a de memoria según el tipo de almacenamiento

9
3.4. Instrucciones máquina
El funcionamiento del procesador está determinado por las intrucciones que ejecuta. Es-
tas instrucciones se denominan instrucciones máquina o instrucciones del computador.
Al conjunto de instrucciones que puede ejecutar el procesador se denomina repertorio de
instrucciones del procesador.

El repertorio de instrucciones máquina debe ser suficientemente amplio como para ex-
presar cualquiera de las instrucciones de un lenguaje de alto nivel. Por tanto, los tipos de
instrucciones se pueden clasificar en:

Procesamiento de datos: instrucciones aritméticas y lógicas.

Almacenamiento de datos: instrucciones de memoria.

Transferencia de datos: instrucciones de E/S.

Control: instrucciones de comprobación y bifurcación.

3.4.1. Elementos de una instrucción máquina


Cada instrucción debe contener la información que necesita el procesador para su eje-
cución. Dicha información consiste en:

Código de operación: especifica la operación a realizar. Se conoce abreviadamente


como codop.

Referencia a operandos fuente u origen: la operación puede implicar a uno o más


operandos origen, es decir operandos que son entradas para la instrucción.

Referencia al operando de destino o resultado: la operación puede producir un


resultado.

Referencia a la operación siguiente: dice al procesador de dónde captar la siguiente


instrucción tras completarse la ejecución de la instrucción actual.

Los codops se representan mediante abreviaturas, denominadas nemotécnicos, que indican


la operación en cuestión:

Instrucción Significado Ejemplo Explicación


ADD Sumar ADD T, T, C T ← T + C
SUB Restar SUB Y, A, B Y ← A − B
MPY Multiplicar MPY T, D, E T ← D × E
DIV Dividir DIV Y, Y, T Y ← Y ÷ T
MOVE Asignar valor MOV T, D T ←D
LOAD Cargar datos de memoria LOAD A AC ← A
STOR Almacenar datos en memoria STOR Y Y ← AC

10
Figura 5 Ejemplos de formatos de instrucciones en algunas computadoras

11
Juego de instrucciones
3.4.2. Instrucciones de transferencia
Son aquellas instrucciones que mueven información entre registros y memoria. No se
modifican los biestables de estado.

Instrucción Significado Ejemplo Explicación


LOAD Lleva de memoria a registro LOAD .R2, #4[.R4] R2 ← R4 + 4
STORE Lleva de registro a memoria STORE .R2, #4[.R4] M EM (R4 + 4) ← R2
MOVE Lleva de memoria a memoria MOVE .R2, .R4 R4 ← R2
PUSH Introduce en la pila PUSH .R1 M EM (SP ) ← R1
SP ← SP − 4
POP Extrae de la pila POP .R1 SP ← SP + 4
R1 ← M EM (SP )

3.4.3. Instrucciones aritméticas y de comparación


Todas modifican los biestables de estado. Están registridas por el modelo de ejecución.
Si el modelo de ejecución es registro-registro, los operandos solo pueden estar en registros.

Instrucción Significado Ejemplo Explicación


ADD Sumar ADD T, T, C T ←T +C
SUB Restar SUB Y, A, B Y ←A−B
MPY Multiplicar MPY T, D, E T ←D×E
DIV Dividir DIV Y, Y, T Y ←Y ÷T
CMP Compara dos registros CMP .R1, .R2 R1 − R2
INC Incremento INC .R1 R1 ← R1 + 1
DEC Decremento DEC .R1 R1 ← R1 − 1

3.4.4. Instrucciones lógicas


Realizan las operación bit a bit. Modifican los biestables de estado.

Instrucción Significado Ejemplo Explicación


AND Comprueba si todos los bits1 ADD .R1, .R2 R1 ← R1 AND R2
tiene un valor de
XOR XOR .R1, #4 R1 ← R1 XOR 4
OR Comprueba si todos los bits 0 OR .R1,[.R2] R1 ← R1 OR Mem(R2)
tiene un valor de
NOT Negación del valor NOT #8[.R1] R1 ← NOT Mem(R1 + 9)

12
3.4.5. Instrucciones de bit
Realizan operaciones sobre un bit.

Instrucción Significado Ejemplo


CLR Poner a cero el un bit en un registro CLR.I #3, .R1
SET Poner a uno un bit de u n registro SET.I #3, .R1
TEST ? TEST.I #3, .R1

3.4.6. Instrucciones de desplazamiento


Realizan desplazamientos de bits a izquieda o derecha. Equivalen a multiplircar o dividir
por 2.

Tipo desplazamiento Instrucción Ejemplo


Lógico SHL SHL .R1
Lógico SHR SHR .R2
Aritmético SHLA SHLA .R1
Aritmético SHRA SHRA .R2

3.4.7. Instruccones de rotación


Realizan desplazamientos de bits a izquierda o derecha (la información entra por un lado
y sale por otro). Equivalen a multiplircar o dividir por 2.

Tipo rotacion Instrucción Ejemplo


Rotación normal ROL ROL .R1
Rotación normal ROR ROR .R2
Rotación a través del biestable de Acarreo ROLC ROLC .R1
Rotación a través del biestable de Acarreo RORC RORC .R2

13
3.4.8. Instrucciones de salto o bifurcación
Modifican la secuencia habitual de ejecución (secuencial). No modifican los biestables
de estado. Pueden ser condicionales/incondicionales o con retorno/sin retorno.

Salto incondicional El salto se realiza siempre. Tienen como operando la dirección de


memoria de la siguiente instrucción a ejecutar.

Tipo salto Instrucción Ejemplo


Salto condicional VR BR $10$
Salto incondicional BZ Si biestable(Z)=1ROR .R2
Rotación a través del biestable de Acarreo ROLC ROLC .R1
Rotación a través del biestable de Acarreo RORC RORC .R2

14
3.5. Ordenamiento, organización y alineamiento de memoria en bytes

15
4. CPU
La unidad central de procesamiento CPU o procesador es un componente del hard-
ware cuyo trabajo es interpretar las instrucciones de un programa informático mediante la
realización de las operaciones básicas aritméticas, lógicas y externas (provenientes de la
unidad de entrada/salida).

Una computadora puede contener más de una CPU (multiprocesamiento). En la actuali-


dad, los microprocesadores están constituidos por un único circuito integrado (chip) aunque
existen los procesadores multinúcleo (varias CPU en un solo circuito integrado).

Un circuito integrado que contiene una CPU también puede contener los dispositivos
periféricos, y otros componentes de un sistema informático; similar a un microcontrolado.

Los principales componentes de la CPU son:

Unidad aritmético lógica: realiza las operaciones aritméticas y lógicas.

Unidad de control (CU): dirige el tráfico de información entre los registros de la CPU
y conecta con la ALU las instrucciones extraı́das de la memoria.

Registros internos: no accesibles (de instrucción, de bus de datos y bus de dirección)


y accesibles de uso especı́fico (contador programa, puntero pila, acumulador, flags,
etc.) o de uso general.

Figura 6 El procesador y el bus del sistema

16
4.1. Elementos internos de un procesador
Los principales elementos de un procesador se pueden ver en la siguiente imagen:

Figura 7 El procesador y el bus del sistema

Como se puede, observar los elementos internos de un procesador se dividen en:

4.1.1. Unidad de procesamiento


Unidad arimético-lógica(ALU): es un circuito digital que realiza operaciones aritméti-
cas (suma ADD, resta SUB) y operaciones lógicas (SI XOR, Y AND, O OR, NO NOT).

Archivo de registros (RF): El archivo de registros, RF, es un bloque de registros de


uso general del que dispone el procesador como almacén temporal de los datos con
los que va a operar la ALU o de resultados intermediso. También pueden dedicarse a
almacenar direcciones de memoria.

Registro temporal (RT): El registro temporal, RT, se utiliza para almacenar en el uno
de los operandos de la ALU.

Registro de dirección (AR): El registro de dirección, AR, es el registro en el que


deberá ubicarse la dirección del dato/instrucción a leer o escribir.

Registro de datos (DR): El registro de datos, DR, es el registro en el cual se almace-


nará el dato a escribir en la memoria o en un puerto de salida, o la información leı́da
de memoria o de un puerto de entrada.

17
4.1.2. Unidad de control (CU)
La unidad de control, CU, tiene como objetivo buscar las instrucciones en la memo-
ria principal, decodificarlas (interpretación) y ejecutarlas, empleando para ello la unidad de
proceso. Sus principales elementos son:

Registro de instrucción (IR): El registro de instrucción, RI, está dedicado a memori-


zar temporalmente la instrucción del programa que la unidad de control está interpre-
tando o ejecutando.

Contador de programa (PC): El contador de programa, PC, es un registro-contador


que actúa como contador ascendente binario, con posibilidad de carga paralela. Su
función es contener la dirección de memoria donde se encuentra la siguiente instruc-
ción a ejecutar.

Puntero de pila (SP): El puntero de pila, SP, es conntador de programa que actúa
como contador ascendente binario, con posibilidad de carga paralela. Su cometido
está relacionado con una estructura pila (LIFO) que se mantiene en memoria principal.
Dicha pila está relacionada con las llamadas a subrutinas.

18
4.2. Ciclo de ejecución de instrucciones: fases
Al comienzo de cada ciclo de instrucción, se lleva a cabo el siguiente procedimiento:

1. Captación: La CPU capta una instrucción de memoria gracias al contador de pro-


grama, PC (contiene la siguente instrucción a ejecutar. A continuación, incrementa
el contador de programa, PC y almacena la instrucción en el registro de instrucción,
IR. La instrucción se escribe utilizando un código binario que especifica la acción que
debe realizar la CPU.

2. Ejecución: La CPU interpreta la instrucción y lleva a cabo la acción requerida.

3. Interrupción: se la interrupciones están habilitadas y ha ocurrido una interrupción,


guardasr el estado del proceso actual ya atender la interrupción.

De entre las acciones posibles, estas pueden ser:

Procesador-Memoria: deben transferirse datos desde la CPU a la memoria o vicever-


sa.

Procesador-E/S: la CPU ha de realizar alguna operación aritmética o lógica con los


datos.

Procesamiento de datos: la CPU ha de realizar alguna operación aritmética o lógica


con los datos.

Control: una instrucción puede especificar que la secuencia de ejecución se altere.

La ejecución de una instrucción puede implicar una combinación de estas acciones.

Figura 8 Ciclo de instrucción con interrupciones.

19
4.2.1. Ciclo de ejecución de instrucciones: estados
Los posibles estados en los que puede ocasionar un ciclo de ejecución son:
Ciclo de dirección de la instrucción (IAC): determinar la dirección de la siguiente
instrucción a ejecutar. Normalmente, esto implica añadir un número fijo a la dirección
de la instrucción previa.

Captación de instrucción (IF): la CPU lee la instrucción desde su posición en memo-


ria. Para ello utiliza MAR (Memory Address Register) y MDR (Memory Data Register).
La instrucción se interpreta como codop y se incrementa el PC.

Decodificación de la operación indicada en la instrucción (IOD): analiza la instruc-


ción para determinar le tipo de operación a realizar y el (los) operando(s) a utilizar.

Cálculo de la dirección del operando (OAC): si la instrucción implica una referen-


cia a un operando en memoria o disponible mediante E/S, determina la dirección del
operando.

Captación de operando (OF): capta el operando desde memoria o se lee el disposi-


tivo de E/S.

Operando con los datos (DO): realiza la operación indicada en la instrucción.

Almacenamiento de operando (OS): escribe el resultado en memoria o lo saca a


través de un dispositivo de E/S.

Figura 9 Diagrama de estados del ciclo de instrucción.

20
4.3. Repertorios
El repertorio de instrucciones define muchas de las funciones realizadas por el proce-
sador, y tiene pues un efecto significativo sobre la implementación del mismo. El repertorio
de instrucciones es el medio que tiene el programador para controlar el procesador.

En consecuencia, deben considerarse las necesidades del programador a la hora de


diseñar el repertorio de instrucciones. Los aspetos mas importantes a la hora de diseñar un
repertorio son:

Repertorio deoperaciones: cuantas y qué operaciones considerar, y cúan complejas


deben ser.

Tipos de datos: los distintos tipos de datos con los que se efectúan operaciones.

Formatos de instrucción: longitud de la instrucción (en bits), número de direcciones,


tamaño de los distintos campos, etc.

Registros: número de registros del procesador que pueden ser referenciados pro las
instrucciones, y su uso.

Direccionamiento: el modo o modos de direccionamietno mediante los cuales puede


especificarse la dirección de un operando.

4.3.1. RISC
La arquitectura de computador de repertorio reducido de instrucciones o RISC dispone
de una serie de caracterı́sticas y elementos compartidos por la mayor parte de sus diseños:

Un gran número de registros de uso general, o el uso de tecnologı́a de compiladores


para optimizar la utilización de los registros.

Un repertorio de instrucciones limitado y sencillo.

Un énfasis en la optimización de la segmentación de instrucciones.

Conclusión: Pocas instrucciones, pocos modos, formato de instrucciones sencillo.

4.3.2. CISC
La arquitectura de computador de repertorio complejo o CISC permite una gran cantidad
de instrucciones hasta el punto de que el lenguaje ensamblador se asemeje a un lenguaje
dealto nivel.

21
4.4. Modos de direccionamiento
En informática, los modos de direccionamiento son las diferentes maneras de especificar
un operando dentro de una instrucción en lenguaje ensamblador.

Un modo de direccionamiento especifica la forma de calcular la dirección de memoria


efectiva de un operando mediante el uso de la información contenida en registros y/o cons-
tantes, contenida dentro de una instrucción de la máquina o en otra parte.

4.4.1. Direcionamiento inmediato


La forma más sencilla de direccionamiento es el direccionamiento inmediato, en el que
el operaqndo está en realidad presente en la propia instrucción.

Operando = A

Este modo puede utilizarse para definir y utilizar constantes o para fijar valores iniciales de
variables. Sus principales caracterı́sticas son:

El número de almacena en complemento a dos. El bit más a la izquierdas del campo


de operando se utiliza como bit de signo.

Cuando el operando se carga en un registro de datos, el bit de signo se replica hacia


la izquierda hasta la longitud total de la palabra de datos.

Ventajas: una vez captada la instrucción, no se requiere una referencia a memoria


para obtener el operando, ahorrándose pues un ciclo de memoria o caché en el ciclo
de instrución.

Desventaja: el tamaño del número está restringido a la longitud del campo de direccio-
nes que, en la mayorı́a de los repertorios es pequeño en comparación con la longitud
de palabra.

4.4.2. Direccionamiento directo


En el direccionamiento directo, el campo de direcciones contiene la dirección efectiva del
operando:
EA = A
Las principales caracterı́sticas del direccionamiento directo:

Solo requiere una referencia a memoria y no necesita ningún cálculo especial.

La limitación obvia es que proporciona un espacio de direcciones restringido.

22
4.4.3. Direccionamiento indirecto
En el direccionamiento indirecto, el campo de direcciones referencia a la dirección de
una palabra de memoria, la cual conteine la dirección completa del operando.
EA = (A)
Las principales caracterı́sticas del direccionamiento indirecto son:
Ventaja: para una longitud de palabra de N bits, se dispone de un espacio de direc-
ciones de 2N .
Desventaja: la ejecución de la instrucción requiere dos referencias a memoria para
captar el operando: una para captar su dirección y otra para obtener su valor.

4.4.4. Direccionamiento de registros


En el direccionamiento de registros, el campo dde direcciones referenica a un registro:
EA = R
Las principales caracterı́sticas del direccionamiento de registros son:
Si se hace un uso masivo del direccionamiento a registros en un repertorio de instruc-
ciones, los registros del procesador se emplearán intensivamente.
Debido al número limitado de registros, usar el direccionamiento de registros tiene
sentido si se usa efiecientemente.
Ventajas:
1. Solo es necesario un campo pequeño de direcciones en la instrucción.
2. No se requieren referencias a memoria.
Desventajas: el espacio de direcciones está muy limitado.

4.4.5. Direccionamiento indirecto con registro


En el direccionamiento indirecto con registro, el campo de direccones referencia al con-
tenido de un registro o a una posición de memoria.
EA = (R)
Las principales caracterı́sticas del direccionamiento indirecto con registro son:
Emplea un referencia menos a memoria que el direccionamiento indirecto.
Ventaja: para una longitud de palabra de N bits, se dispone de un espacio de direc-
ciones de 2N .
Desventaja: la ejecución de la instrucción requiere dos referencias a memoria para
captar el operando: una para captar su dirección y otra para obtener su valor.

23
4.4.6. Direccionamiento con desplazamiento
En el direccionamiento con desplazamiento se combinan las posibilidades de los direc-
cionamiento directo e indirecto con registro. En este, el campo de direccones referencia a la
dirección efectiva del operando y al contenido del registro.

EA = A + (R)

Las principales caracterı́sticas del direccionamiento con desplazamiento:

Requiere que las instrucciones tengan dos campos de direcciones, al menos uno de
los cuales debe se explı́cito.

El valor contenido en uno de los campos de direcciones (valor = A), se utiliza directa-
mente.

Direccionamiento de pila En el direccionamiento de pila, las instrucciones máquina no ne-


cesitan incluir una referenica a memoria sino que operan implı́citamente con la cabecera de
la pila.

4.5. Formato de instrucción


El formato de las instrucciones es el modo en el que se disponen los bits que identifi-
can cada elemento de una instrucción. Por lo general se emplea más de un formato.

4.5.1. Caracterı́sticas
Las principales caracterı́sticas de un formato de instrucción son:

Cada instrucción encaja en un formato predeterminado.

Dependiendo de si la longitud de la instrucción es fija o variable, el número de formatos


distintos para una misma instrucicón será distinto.

Si la codiificación es regular, la velocidad de CPU será afectada.

El código de operación debe estar siempre al principio. El número de bits que ocu-
pará dependerá de las distintas operaciones que haya en el juego de instrucciones.

24
5. Estructura de bus
Un bus es un camino de comunicaciones entre dos o más dispositivos. Una caracterı́sti-
ca clave de un bus es que se trata de un medio de transmisión compartido. Otras carac-
terı́sticas fundamentales de los buses son:

Al bus se conectan varios dispositivaos, y cualquier señal transmisitda por uno de esos
dispositivos está disponible para los que otros dispositivos conectados la bus puedan
acceder a ella.

Usualmente un bus está constituido por varios caminos de comunicación, o lı́neas.


Cada lı́nea es capaz de transmitir señales binarias representadas por 1 y por 0.

En un intervalo de tiempo, se puede transmiir una secuencia de dı́gitos binarios a


través de una única lı́nea. Se pueden utilizar varias lı́neas del bus para trnasmitir
dı́gitos binarios simultáneamente.

Los computadores poseen diferentes tipos de buses que proporcionan comunicación entre
sus componentes a distintos niveles dentro de la jerarquı́a del sistema.

El bus que conecta los componentes principales del computador se denomina bus del
sistema. Las estructuras de interconexión más comunes dentro de un computador están
basadas en el uso de uno o más buses del sistema.

5.1. Estructura de un bus


El bus de sistema está constituido, usualmente, por entre cincuenta y cien lı́neas. A cada
lı́nea se le asigna un significado o una función particular. Aunque existen diseños de buses
muy diversos, en todos ellos las lı́neas se pueden clasificar en tres grupos funcionales:
lı́neas de datos, lineas de control y lineas de dirección.

Figura 10 Esquema de interconexión mediante un bus

Lı́neas de datos: proporcionan un camino para transmitir as lı́neas de datos propor-


cionan un camino para transmitir datos entre los módulos del sistema. El conjunto
constituido por estas lı́neas se denomina bus de datos.

25
• Bus de datos: puede incluir entre 32 y cientos de lı́neas, cuyo número se conoce
como anchura del bus de datos. Puesto que cada lı́nea solo puede transportar un
bit cada vez, el número de lı́neas determina cuántos bits se pueden transferir al
mismo tiempo.

Lı́neas de dirección: se utilizan para designar la fuente o el destino del dato situado
en el bus de datos.

Lı́neas de control: se utilizan para controlar el acceso y el uso de las lı́neas de datos
y de direcciones.

5.2. Buses múltiples


Si se conecta un gran número de dispositivos al bus, las prestaciones pueden disminuir.
Por tanto, la mayorı́a de los computadores utilizan varios buses, normalmente organizados
jerarquicamente.

El uso de múltiples buses permite acercar el procesador los dispositivos que exigen pres-
taciones elevadas y al mismo tiempo es independiente del procesador. Además, se pueden
tolerar las diferencias de velocidades entre el procesador y los buses de altas pestacoines
y las variaciones en la definición de las lı́neas de los buses.

Las principales caracterı́sticas de los buses múltiples en comparación con los buses
únicos son:

Ventajas: existe un bus de altas prestaciones y otros que funcionan en paralelo.

Desventajas: coste y complejidad.

26
5.3. Estructuras básicas de interconexión
Un computador está constituido por un conjunto de unidades o módulos de tres tipos ele-
mentales (procesador, memoria, E/S) que se comunican entre sı́. En efecto, un computador
es una red de módu- los elementales. Por consiguiente, deben existir lineas para interco-
nectar estos módulos.

El conjunto de lı́neas que conectan los diversos módulos se denomina estructura de


interconexión. Los elementos de dicha estructura son:

Memoria: un módulo de memoria está constituido por N palabras de la misma lon-


gitud. A cada palabra se le asigna una única dirección numérica (0,1,...,N − 1). Una
palabra de datos puede leerse o escribrirse en memoria.

Módulo de E/S: es un dispositivo que permite tanto introducir como transmitir infor-
mación a los distintos componentes de una computador. Cada uno de los módulos se
conecta al bus del sistema o a un comutador central y controla uno o más dispositivos
periféricos.

Procesador: es un componente del hardware cuyo trabajo es interpretar las instruc-


ciones de un programa informático mediante la realización de las operaciones básicas
aritméticas, lógicas y externas (provenientes de la unidad de entrada/salida).

Además, la estructura de interconexión debe dar cobertura a los siguientes tipos de trans-
ferencias:

Memoria a procesador: el procesador lee una instrucción o un dato desde la memo-


ria.

Procesador a memoria: el procesador escribe un dato en la memoria.

E/S a procesador: el procesador lee de un dispositivo de E/S a través de un módulo.

Procesador a E/S: el procesador envı́a datos al dispositivo de E/S.

Memoria a E/S y viceversa: en estos dos casos, un módulo de E/S puede inter-
cambiar datos directamente con la memoria, sin que tengan que pasar a través del
procesador, utilizando el acceso directo a memoria (DMA).

27
6. Rendimiento
6.1. Ecuación básica de rendimiento
La ecuación básica para medir el rendimiento es:
N ·S
T =
R
donde:

N : número de instrucciones. Depende del compilador o repertorio.

S: número de ciclos por isntrucción (ciclos/instrucción). Depende de la implementación


de la CPU.

R: frecuencia, se mide en M Hz o en GHz. Depende de la tecnologı́a y diseño de la


CPU.

Lo ideal, es que se reduzca tanto N como S y aumene R. No obstante, alterar uno modifica
los otros. Por ejemplo, aumentar R puede ser a costa de aumentar S. El objetivo principal
es reducir T . Para ello, deberemos:

1. Reducir tanto N como S.

2. Aumentar R.

6.1.1. Reducción de T en repertorios

28
7. Perspectiva histórica
7.1. 1ª generación (45- 55): tubos de vacı́o
La 1ª generación se caracteriza por el surgimiento de la máquina de von Neuman la
cual facilitaba el proceso de programación al permitir que le programa se representara de
forma adecuada para ser guardado en la memoria junto con los datos.

Esto dio origen a la idea conocida como concepto del progrma-almacenado. En este
programa, los dı́gitos estaban representados mediante unos tubos de vacı́o. Cada dı́gito
estaba representado por un anillo de diez tubos de vacı́o. En un momento dado, solo uno
de los tubops estaba estaba en estado ON, represetnando uno de los diez dı́gitos.

Además, durante este periodo surgieron los primeros dispositivos de entrada y salida
para realizar operaciones de lectura y escritura. También surgieron los primeros lengaujes
máquina y ensamblador.

7.2. 2ª generación (55 - 65): transistores


El primer cambio importante en los computadores electrónicos vino con la sustitución de
los tubos de vacı́o por transistores. El transistor es más pequeño, más barato, disipa menos
calor y puede ser usado de la misma forma que un tubo de vacı́o en la construcción de
computadores.

Otros aspectos importantes de la segunda generación fueron el sugirmiento del primer


compilador para lenguaje FORTRAN y la aparición del osprimeros procesadores de entradas
y salidas que permitı́an realizar operaciones en paralelo con la CPU.

7.3. 3ª generación (65 - 75): circuito integrado


El hecho que define la 3ª generación es la invención del circuito integrado. Mediante el
circuito integrado, surgı́a la posibilidad de de integrar cientos e incluso miles de transistores
en un mismo lugar. Esto dio lugar al chip.

Cada chip consiste en muchas puertas más una serie de puntos para conexiones de
entrada y salida. El chip es encapsulado en una carcasa que lo proteje y proporciona patas
para conectar dispositivos fuera del chip. Varios de estos elementos pueden ser interconec-
tados en una tarjeta de circuito impreso para producir circuitos más complejos y mayores.

Por otra parte, surgieron los primeros sistemas operativos multiusuario y las primeras
memorias caché.

29
7.4. 4ª generación (75 - ...): VLSI
En la cuarta generación, se llevan

7.5. Actualidad

30

También podría gustarte