Está en la página 1de 103

ÍNDICE

1. Unidad 3: Aritmética para computadores y el procesador ...................................3

Tema 1: Adición, Sustracción, Multiplicación y División ............................................... 3

Objetivo: ........................................................................................................................ 3

2. Introducción ......................................................................................................4

3. Información de los subtemas .............................................................................5

La Unidad Aritmético-Lógica .....................................................................................5

Negación ..................................................................................................................6

3.1 Subtema 1: Adición ............................................................................................ 9

3.2 Subtema 2: Sustracción .................................................................................... 10

3.3 Subtema 3: Multiplicación ............................................................................... 13

3.4 Subtema 4: División.......................................................................................... 18

4. Bibliografía ......................................................................................................21

2
Adición, Sustracción, Multiplicación y División

1. Unidad 3: Aritmética para


computadorés y él procésador
Tema 1: Adición, Sustracción, Multiplicación y División
Objetivo:

Conocer cómo opera la unidad aritmético-lógica del procesador y cómo se


realizan las principales funciones aritméticas de un computador.
© Universidad Estatal de Milagro – UNEMI

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 3


Adición, Sustracción, Multiplicación y División

2. Introduccion
El presente documento contiene información sobre el funcionamiento de la unidad
aritmético-lógica del procesador y las diferentes funciones que comprenden la
aritmética del computador como son: Adición, Sustracción, Multiplicación y División.

Antes del desarrollo del subtema 1, se muestra información sobre la unidad


aritmético-lógica del procesador y la función de negación.

El subtema 1, detalla el proceso de la función aritmética de la adición entre números


enteros.

El subtema 2, detalla el proceso de la función aritmética de la sustracción entre


números enteros.

El subtema 3, detalla el proceso de la función aritmética de la multiplicación entre


números enteros.

El subtema 4, detalla el proceso de la función aritmética de la división entre números


enteros.
© Universidad Estatal de Milagro – UNEMI

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 4


Adición, Sustracción, Multiplicación y División

3. Informacion dé los subtémas


Antes de adentrarnos en el desarrollo de la aritmética del computador, haremos una
breve introducción al estudio del procesador con la unidad aritmético-lógica (ALU).

La Unidad Aritmético-Lógica
(Stallings, 2006)

“La ALU es la parte del computador que realiza realmente las operaciones aritméticas y
lógicas con los datos. El resto de los elementos del computador (unidad de control,
registros, memoria, E/S) están principalmente para suministrar datos a la ALU, a fin de
que ésta los procese y para recuperar los resultados. Con la ALU llegamos al estudio de
lo que puede considerarse el núcleo o esencia del computador.

Una unidad aritmético-lógica, y en realidad todos los componentes electrónicos del


computador, se basan en el uso de dispositivos lógicos digitales sencillos que pueden
almacenar dígitos binarios y realizar operaciones lógicas booleanas elementales. El
Apéndice B explora, para el lector interesado, la implementación de circuitos lógicos
digitales.

Los datos se presentan a la ALU en registros, y en registros se almacenan los resultados


de las operaciones producidos por la ALU. Estos registros son posiciones de memoria
temporal internas al procesador que están conectados a la ALU (véase por ejemplo la
Figura 2.3). La ALU puede también activar indicadores (flags) como resultado de una
operación. Por ejemplo, un indicador de desbordamiento se pondrá a 1 si el resultado
de una operación excede la longitud del registro en donde éste debe almacenarse. Los
valores de los indicadores se almacenan también en otro registro dentro del
procesador. La unidad de control proporciona las señales que gobiernan el
funcionamiento de la ALU y la transferencia de datos dentro y fuera de la ALU.”
© Universidad Estatal de Milagro – UNEMI

Figura 1. Entradas y salidas de la ALU


Fuente: (Stallings, 2006)

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 5


Adición, Sustracción, Multiplicación y División

Está la siguiente sección, en donde se examina funciones aritméticas comunes con


números enteros representados en complemento a dos. Antes de explicar la adición,
dedicaremos un espacio para exponer la negación.

Negación

(Stallings, 2006)

“En la representación signo-magnitud, la regla para obtener el opuesto de un entero es


sencilla: invertir el bit de signo. En la notación de complemento a dos, la negación de
un entero puede realizarse siguiendo las reglas:

1. Obtener el complemento booleano de cada bit del entero (incluyendo el bit de


signo). Es decir, cambiar cada 1 por 0, y cada 0 por 1.

2. Tratando el resultado como un entero binario sin signo, sumarle 1. Este proceso en
dos etapas se denomina transformación a complemento a dos, u obtención del
complemento a dos de un entero. Por ejemplo:

Como es de esperar, el opuesto del opuesto es el propio número:


© Universidad Estatal de Milagro – UNEMI

Podemos demostrar la validez de la operación que acabamos de describir utilizando la


definición de representación en complemento a dos dada en la Ecuación (9.2). De
nuevo interpretamos una secuencia de n dígitos binarios como
un entero A en complemento a dos, tal que su valor es:

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 6


Adición, Sustracción, Multiplicación y División

Ahora se construye el complemento bit a bit, y y tratándolo como


un entero sin signo, se le suma 1. Finalmente, se interpreta la secuencia resultante de
n bits como un entero B en complemento a dos, de manera que su valor es:

Ahora queremos que A=-B, lo que significa que A+B =0. Esto se comprueba fácilmente:

El desarrollo anterior supone que podemos primero tratar el complemento de A bit a


bit como entero sin signo al objeto de sumarle 1, y entonces tratar el resultado como
un entero en complemento a dos.
Hay dos casos especiales a tener en cuenta. En primer lugar, consideremos que A=0. En
este caso, para una representación con ocho bits:
© Universidad Estatal de Milagro – UNEMI

Hay un acarreo de la posición de bit más significativa, que es ignorado. El resultado es


que la negación u opuesto del 0 es 0, como debe ser.
El segundo caso especial es más problemático. Si generamos el opuesto de la
combinación de bits consistente en un 1 seguido de n -1 ceros, se obtiene de nuevo el
mismo número. Por ejemplo, para palabras de ocho bits,

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 7


Adición, Sustracción, Multiplicación y División

Esta anomalía debe evitarse. El número de combinaciones diferentes en una palabra


de ocho bits es 2n, un número par. Con ellas queremos representar enteros positivos,
negativos y el 0. Cuando se representa el mismo número de enteros positivos que de
negativos (en signo-magnitud) resultan dos representaciones distintas del 0. Si hay
solo una representación del 0 (en complemento a dos), entonces debe haber un
número desigual de números positivos que de negativos representados. En el caso del
complemento a dos, hay una representación de n bits para el

© Universidad Estatal de Milagro – UNEMI

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 8


Adición, Sustracción, Multiplicación y División

3.1 Subtema 1: Adición


(Stallings, 2006)

“La suma en complemento a dos se ilustra en la Figura 2. La suma se efectúa igual que
si los números fuesen enteros sin signo. Los cuatro primeros ejemplos muestran
operaciones correctas. Si el resultado de la operación es positivo, se obtiene un
número positivo en forma de complemento a dos, que tiene la misma forma como
entero sin signo. Si el resultado de la operación es negativo, conseguimos un número
negativo en forma de complemento a dos. Obsérvese que, en algunos casos, hay un bit
acarreo más allá del final de la palabra (sombreado en la figura). Este bit se ignora.
En cualquier suma, el resultado puede que sea mayor que el permitido por la longitud
de palabra que está utilizando. Esta condición se denomina desbordamiento
(overflow). Cuando ocurre un desbordamiento, la ALU debe indicarlo para que no se
intente utilizar el resultado obtenido.

Figura 2. Suma de números representados en complemento a dos


Fuente: (Stallings, 2006)
© Universidad Estatal de Milagro – UNEMI

Para detectar el desbordamiento se debe observar la siguiente regla:

Obsérvese que el desbordamiento puede ocurrir habiéndose producido o no acarreo. “

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 9


Adición, Sustracción, Multiplicación y División

3.2 Subtema 2: Sustracción


(Stallings, 2006)

“La resta se trata también fácilmente con la siguiente regla:

Así pues, la resta se consigue usando la suma, como se muestra en la Figura 3. Los dos
últimos ejemplos demuestran que también es aplicable la regla de desbordamiento
anterior.
Una ilustración gráfica como la mostrada en la Figura 4, proporciona una visión más
palpable de la suma y la resta en complemento a dos. Los círculos (mitades superiores
de la figura) se obtienen a partir de los correspondientes segmentos lineales de
números (mitades inferiores), juntando los extremos. Observe que cuando los
números se trazan en el círculo, el complemento a dos de cualquier número es el
horizontalmente opuesto del mismo (indicado mediante líneas horizontales
discontinuas). Comenzando en cualquier número del círculo, al sumarle un positivo k
(o restarle un negativo k) nos desplazamos k posiciones en el sentido de las agujas del
reloj. Restarle un positivo k (o sumarle un negativo k) equivale a desplazarse k
posiciones en sentido contrario a las agujas del reloj. Si la operación realizada hace que
se sobrepase el punto en que se juntaron los extremos del segmento, el resultado es
incorrecto (desbordamiento).
© Universidad Estatal de Milagro – UNEMI

Figura 3. Substracción de números en la notación de complemento a dos (M – S)


Fuente: (Stallings, 2006)

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 10


Adición, Sustracción, Multiplicación y División

Figura 4. Descripción geométrica de los enteros en complemento a dos.


Fuente: (Stallings, 2006)

La Figura 5 sugiere los caminos de datos y elementos hardware necesarios para


realizar sumas y restas. El elemento central es un sumador binario, al que se presentan
los números a sumar y produce una suma y un indicador de desbordamiento. El
sumador binario trata los dos números como enteros sin signo (una implementación
lógica de un sumador se da en el Apéndice B de este libro).

Para sumar, los números se presentan al sumador desde dos registros, designados en
este caso registros A y B. El resultado es normalmente almacenado en uno de estos
registros en lugar de un tercero. La indicación de desbordamiento se almacena en un
indicador o biestable de desbordamiento (OF: Overflow Flag) de 1 bit (0=no
desbordamiento; 1=desbordamiento). Para la resta, el substraendo (registro B) se pasa
a través de un complementador, de manera que el valor que se presenta al sumador
© Universidad Estatal de Milagro – UNEMI

sea el complemento a dos de B.”

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 11


Adición, Sustracción, Multiplicación y División

Figura 5. Diagrama de bloques del hardware para la suma y la resta.


Fuente: (Stallings, 2006)
© Universidad Estatal de Milagro – UNEMI

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 12


Adición, Sustracción, Multiplicación y División

3.3 Subtema 3: Multiplicación


“Comparada con la suma y la resta, la multiplicación es una operación compleja, ya se
realice en hardware o en software. En distintos computadores se han utilizado diversos
algoritmos. El propósito de esta subsección es dar al lector una idea del tipo de
aproximación normalmente utilizada. Comenzaremos con el caso más sencillo de
multiplicar dos enteros sin signo (no negativos), y después veremos una de las técnicas
más comunes para el producto de números representados en complemento a dos”.
(Stallings, 2006)

Enteros sin signo.

(Stallings, 2006)

“La Figura 6 ilustra la multiplicación de enteros binarios sin signo, que se realiza igual
que cuando utilizamos papel y lápiz. Se pueden hacer varias observaciones:

1. La multiplicación implica la generación de productos parciales, uno para cada


dígito del multiplicador. Estos productos parciales se suman después para
producir el producto final.
2. Los productos parciales se definen fácilmente. Cuando el bit del multiplicador
es 0, el producto parcial es 0. Cuando el multiplicador es 1, el producto parcial
es el multiplicando.

Figura 6. Multiplicación de enteros binarios sin signo.


© Universidad Estatal de Milagro – UNEMI

Fuente: (Stallings, 2006)

3. El producto total se obtiene sumando los productos parciales. Para esta


operación, cada producto parcial sucesivo se desplaza en una posición hacia la
izquierda con respecto al producto parcial precedente.
4. El producto de dos enteros binarios sin signo de n bits da como resultado un
producto de hasta 2n bits de longitud (por ejemplo, 11X11 =1001).

En comparación con la aproximación de «papel y lápiz», hay varias modificaciones que


se pueden hacer para efectuar la operación más eficientemente. En primer lugar,
podemos realizar una suma progresiva de los productos parciales en lugar de esperar

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 13


Adición, Sustracción, Multiplicación y División

hasta el final. Esto evita la necesidad de almacenar todos los productos parciales,
necesitándose menos registros. En segundo lugar, podemos ahorrar algún tiempo en la
generación de los productos parciales. Para cada 1 del multiplicador se
requiere un desplazamiento y una suma; pero por cada 0, solo se necesita el
desplazamiento.
La Figura 7 muestra una posible implementación que hace uso de las ideas anteriores.
El multiplicador y el multiplicando están ubicados en dos registros (Q y M). Un tercer
registro, el registro A, es también necesario y es inicialmente puesto a 0. Hay también
un registro C de un bit, inicializado a 0, que retiene los posibles bits de acarreo
resultantes de las sumas.”
© Universidad Estatal de Milagro – UNEMI

Figura 7. Implementación hardware de la multiplicación de binarios sin signo.


Fuente: (Stallings, 2006)

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 14


Adición, Sustracción, Multiplicación y División

(Stallings, 2006)

“La multiplicación se efectúa de la siguiente manera. La lógica de control lee uno por
uno los bits del multiplicador. Si Q0 es 1, se suma el multiplicando al registro A y el
resultado es almacenado en A, utilizando el bit C para el acarreo. Entonces se
desplazan todos los bits de los registros C, A, y Q, una posición a la derecha, de manera
que el bit de C pasa a An-1, A0 pasa a Qn-1, y Q0 se pierde. Si Q0 era 0, no se realiza la
suma, solo el desplazamiento. Este proceso se repite para cada bit del multiplicador
original. El producto de 2n bits resultante queda en los registros A y Q. La Figura 8
muestra un diagrama de flujo de la operación, y en la Figura 7.b se da un ejemplo.
Obsérvese que, en el ciclo segundo, cuando el bit del multiplicador es 0, no hay
operación de suma.”

“Multiplicación en complemento a dos. Hemos visto que la suma y la resta pueden


realizarse con números en notación de complemento a dos, tratándolos como enteros
sin signo. Consideremos:
1001
+0011
--------------
1100
Si estos números se interpretan como enteros sin signo, estamos sumando 9 (1001)
más 3 (0011) para obtener 12 (1100). Como enteros en complemento a dos, estamos
sumando -7 (1001) a 3 (0011) para obtener -4 (1100).
Desafortunadamente, este sencillo esquema no es correcto para la multiplicación. Para
verlo, consideremos de nuevo la Figura 6. Multiplicamos 11 (1011) por 13 (1101) para
obtener 143 (10001111). Si interpretamos estos como números en complemento a
dos, tendríamos -5 (1011)” (Stallings, 2006)
© Universidad Estatal de Milagro – UNEMI

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 15


Adición, Sustracción, Multiplicación y División

Figura 8. Implementación hardware de la multiplicación de binarios sin signo.


Fuente: (Stallings, 2006)

“por -3 (1101) igual a -113 (10001111). Este ejemplo demuestra que la multiplicación
directa no es adecuada si tanto el multiplicando como el multiplicador son negativos.
De hecho, tampoco lo es si alguno de los dos es negativo. Para explicar este
comportamiento necesitamos volver sobre la Figura 6 y explicar lo que se está
haciendo en términos de operaciones con potencias de 2. Recuérdese que cualquier
número binario sin signo puede expresarse como suma de potencias de 2. Por tanto,
© Universidad Estatal de Milagro – UNEMI

Además, el producto de un número binario por 2n se obtiene desplazando dicho


número n bits hacia la izquierda. Teniendo esto en mente, la Figura 8 reestructura la
Figura 6 para hacer la generación de productos parciales mediante multiplicación
explícita. La única diferencia en la Figura 9 es que reconoce que los productos parciales
debieran verse como números de 2n bits generados a partir del multiplicando de n
bits.

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 16


Adición, Sustracción, Multiplicación y División

Así pues, el multiplicando de cuatro bits 1011, como entero sin signo, es almacenado
en una palabra de ocho bits como 00001011. Cada producto parcial (distinto del
correspondiente a 20) consiste en dicho número desplazado a la izquierda, con las
posiciones de la derecha rellenas con ceros (por ejemplo, un desplazamiento a la
izquierda en dos posiciones produce 00101100).
Ahora podemos demostrar cómo la multiplicación directa no es correcta si el
multiplicando es negativo. El problema es que cada contribución del multiplicando
negativo como producto parcial tiene que ser un número negativo en un campo de 2n
bits; los bits de signo de los productos parciales deben estar alineados. Esto se
demuestra en la Figura 9, que muestra el producto de 1001 por 0011. Si estos se tratan
como enteros sin signo se realiza el producto 9X3=27. Sin embargo, si 1001 se
interpreta en complemento a dos como -7, cada producto parcial debe ser un número
negativo en complemento a dos de 2n (es decir, ocho) bits, como muestra la Figura
10(b). Obsérvese que eso podría hacerse rellenando la parte izquierda de cada
producto parcial con unos.” (Stallings, 2006)

Figura 9. Multiplicación de dos enteros sin signo de cuatro bits para producir
un resultado de ocho bits.
Fuente: (Stallings, 2006)
© Universidad Estatal de Milagro – UNEMI

Figura 10. Comparación del producto de enteros sin signo y en complemento a dos.
Fuente: (Stallings, 2006)

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 17


Adición, Sustracción, Multiplicación y División

3.4 Subtema 4: División


(Stallings, 2006)

“La división es algo más compleja que la multiplicación, pero está basada en los
mismos principios generales. Como antes, la base para el algoritmo es la aproximación
de «papel y lápiz», y la operación conlleva repetidos desplazamientos y sumas o
restas”

Figura 11. División de enteros binarios sin signo.


Fuente: (Instituto Tecnológico de Celaya, 2020)

“La Figura 11 muestra un ejemplo de división larga de enteros binarios sin signo. Es
instructivo describir en detalle el proceso. Primero se examinan los bits del dividendo
de izquierda a derecha hasta que el conjunto de bits examinados represente un
número mayor o igual que el divisor; o, en otras palabras, hasta que el divisor sea
capaz de dividir al número. Hasta que eso ocurre, se van colocando ceros en el
cociente de izquierda a derecha. Cuando dicho evento sucede, se coloca un 1 en el
cociente, y se substrae el divisor del dividendo parcial. Al resultado se le denomina
resto parcial.
Desde este punto en adelante, la división sigue un patrón cíclico. En cada ciclo, se
añaden bits adicionales del dividendo al resto parcial hasta que el resultado sea mayor
o igual que el divisor. Como antes, de este número se resta el divisor para producir un
nuevo resto parcial. El proceso continúa hasta que se acaban los bits del dividendo.”
(Stallings, 2006)
© Universidad Estatal de Milagro – UNEMI

“La Figura 12 muestra un algoritmo máquina que corresponde al proceso de división


larga discutido. El divisor se ubica en el registro M, y el dividendo en el registro Q. En
cada paso, los registros A y Q son desplazados conjuntamente un bit a la izquierda. M
es restado de A para determinar si A divide el resto parcial 2. Si esto se cumple,
entonces Q0 se hace 1. Si no, Q0 se hace 0, y M debe sumarse de nuevo a A para
restablecer el valor anterior. La cuenta entonces se decrementa, y el proceso continúa
hasta n pasos. Al final, el cociente queda en el registro Q y el resto en el A.” (Stallings,
2006)

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 18


Adición, Sustracción, Multiplicación y División

“Este proceso puede, con cierta dificultad, aplicarse también a números negativos.
Aquí damos una posible aproximación para números en complemento a dos. En la
Figura 13 se muestran varios ejemplos de esta aproximación. El algoritmo puede
resumirse como sigue:

1. Cargar el divisor en el registro M y el dividendo en los registros A y Q. El dividendo


debe estar expresado como número en complemento a dos de 2n bits. Por ejemplo, el
número de 4 bits 0111 pasa a ser 00000111, y el 1001 pasa a 11111001.

2. Desplazar A y Q una posición de bit a la izquierda.

3. Si M y A tienen el mismo signo, ejecutar A ←A -M; si no, A ←A -M.

4. La operación anterior tiene éxito si el signo de A es el mismo antes y después de la


operación.

a) Si la operación tiene éxito o A = 0, entonces hacer Q0←1.

b) Si la operación no tiene éxito y A ≠ 0, entonces Q0 ← 0, y restablecer el valor


anterior de A.
© Universidad Estatal de Milagro – UNEMI

Figura 12. Diagrama de flujo para la división de binarios sin signo.


Fuente: (Instituto Tecnológico de Celaya, 2020)

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 19


Adición, Sustracción, Multiplicación y División

5. Repetir los pasos 2 a 4 tantas veces como número de bits tenga Q.

6. El resto está en A. Si los signos del divisor y el dividendo eran iguales, el cociente
está en Q; si no, el cociente correcto es el complemento a dos de Q.

El lector notará en la Figura 13 que (–7)/(3) y (7)/( –3) producen restos diferentes. Esto
es debido a que el resto se define como:” (Stallings, 2006)

en donde:

D=dividendo

Q=cociente

V=divisor

R=resto

Los resultados de la Figura 13 son consistentes con dicha fórmula.”


© Universidad Estatal de Milagro – UNEMI

Figura 13. Ejemplos de división en complemento a dos


Fuente: (Instituto Tecnológico de Celaya, 2020)

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 20


Adición, Sustracción, Multiplicación y División

4. Bibliografía

» Stallings, W. (2006). Organización y arquitectura de computadores. Madrid: PEARSON


EDUCACIÓN, S.A.
© Universidad Estatal de Milagro – UNEMI

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 21


ÍNDICE

1. Unidad 3: Aritmética para computadores y el procesador .......................................................... 3

Tema 2: El Procesador .............................................................................................................................. 3

Objetivo: ................................................................................................................................................... 3

2. Introducción ............................................................................................................................ 4

3. Información de los subtemas .................................................................................................... 5

3.1 Subtema 1: Función Principal ...................................................................................................... 5

3.2 Subtema 2: Medidas del rendimiento de un computador......................................................... 15

3.3 Subtema 3: Procesadores RISC y CISC ....................................................................................... 24

3.4 Subtema 4: Control y Hazards ................................................................................................... 32

4. Bibliografía ............................................................................................................................ 41

2
El Procesador

1. Unidad 3: Aritmética para


computadorés y él procésador
Tema 2: El Procesador
Objetivo:

Conocer la función principal del procesador, el rendimiento, tipos, y los riesgos


o conflictos que disminuyen su rendimiento.
© Universidad Estatal de Milagro – UNEMI

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 3


El Procesador

2. Introduccion
El presente documento contiene información detallada de uno de los componentes
más importantes en el rendimiento de un computador, el procesador.

El subtema 1, detalla información sobre la definición, función y componentes del


procesador.

El subtema 2, detalla las técnicas y fórmulas empleadas para medir el rendimiento del
computador

El subtema 3, detalla los tipos de arquitecturas de procesador RISC y CISC.

El subtema 4, detalla los riesgos o conflictos que disminuyen el rendimiento del


procesador y las técnicas para solventarlos.
© Universidad Estatal de Milagro – UNEMI

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 4


El Procesador

3. Informacion dé los subtémas


3.1 Subtema 1: Función Principal
(Stallings, 2006):

“Para comprender la organización del procesador, consideremos los requisitos que ha


de cumplir:

• Captar instrucción: el procesador lee una instrucción de la memoria (registro, caché o


memoria principal).
• Interpretar instrucción: la instrucción se decodifica para determinar qué acción es
necesaria.
• Captar datos: la ejecución de una instrucción puede exigir leer datos de la memoria o
de un módulo de E/S.
• Procesar datos: la ejecución de una instrucción puede exigir llevar a cabo alguna
operación aritmética o lógica con los datos.
• Escribir datos: los resultados de una ejecución pueden exigir escribir datos en la
memoria o en un módulo de E/S.

Para hacer estas cosas, es obvio que el procesador necesita almacenar algunos datos
temporalmente. Debe recordar la posición de la última instrucción de forma que
pueda saber de dónde tomar la siguiente. Necesita almacenar instrucciones y datos
temporalmente mientras una instrucción está ejecutándose. En otras palabras, el
procesador necesita una pequeña memoria interna.

La figura 1, presenta una visión simplificada del procesador y la figura 2 una más
detallada”.
© Universidad Estatal de Milagro – UNEMI

Figura 1. El procesador y el bus del sistema.


Fuente: (Stallings, 2006)

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 5


El Procesador

Figura 2. Estructura interna del procesador.


Fuente: (Stallings, 2006)

(Universitat Oberta de Catalunya, 2020):

“La función principal de un procesador es ejecutar instrucciones y la organización que


tiene viene condicionada por las tareas que debe realizar y por cómo debe hacerlo.

Los procesadores están diseñados y operan según una señal de sincronización. Esta
señal, conocida como señal de reloj, es una señal en forma de onda cuadrada periódica
con una determinada frecuencia. Todas las operaciones hechas por el procesador las
gobierna esta señal de reloj: un ciclo de reloj determina la unidad básica de tiempo, es
decir, la duración mínima de una operación del procesador.

Para ejecutar una instrucción, son necesarios uno o más ciclos de reloj, dependiendo
del tipo de instrucción y de los operandos que tenga.
© Universidad Estatal de Milagro – UNEMI

Las prestaciones del procesador no las determina solo la frecuencia de reloj, sino otras
características del procesador, especialmente del diseño del juego de instrucciones y la
capacidad que tiene para ejecutar simultáneamente múltiples instrucciones.

Para ejecutar las instrucciones, todo procesador dispone de tres componentes


principales:
1) Un conjunto de registros: espacio de almacenamiento temporal de datos e
instrucciones dentro del procesador.
2) Unidad aritmética y lógica o ALU (1) : circuito que hace un conjunto de operaciones
aritméticas y lógicas con los datos almacenados dentro del procesador.

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 6


El Procesador

3) Unidad de control: circuito que controla el funcionamiento de todos los


componentes del procesador. Controla el movimiento de datos e instrucciones dentro
y fuera del procesador y también las operaciones de la ALU.
La organización básica de los elementos que componen un procesador y el flujo de
información entre los diferentes elementos se ve en el esquema siguiente:”

Figura 3. Elementos de un procesador y flujo de información


Fuente: (Universitat Oberta de Catalunya, 2020)
(Universitat Oberta de Catalunya, 2020):

Registros
“Los registros son, básicamente, elementos de memoria de acceso rápido que se
encuentran dentro del procesador. Constituyen un espacio de trabajo para el
procesador y se utilizan como un espacio de almacenamiento temporal. Se
implementan utilizando elementos de memoria RAM estática (static RAM). Son
imprescindibles para ejecutar las instrucciones, entre otros motivos, porque la ALU
solo trabaja con los registros internos del procesador.
El conjunto de registros y la organización que tienen cambia de un procesador a otro;
los procesadores difieren en el número de registros, en el tipo de registros y en el
tamaño de cada registro.
© Universidad Estatal de Milagro – UNEMI

Una parte de los registros pueden ser visibles para el programador de aplicaciones,
otra parte solo para instrucciones privilegiadas y otra solo se utiliza en el
funcionamiento interno del procesador.

Una posible clasificación de los registros del procesador es la siguiente:

1. Registros de propósito general.


2. Registros de instrucción.
3. Registros de acceso a memoria.
4. Registros de estado y de control.”

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 7


El Procesador

Unidad aritmética y lógica


“La unidad aritmética y lógica o ALU (2) es un circuito combinacional capaz de realizar
operaciones aritméticas y lógicas con números enteros y también con números reales.
Las operaciones que puede efectuar vienen definidas por el conjunto de instrucciones
aritméticas y lógicas de las que dispone el juego de instrucciones del computador”
(Universitat Oberta de Catalunya, 2020)

(Universitat Oberta de Catalunya, 2020)

“Veamos primero cómo se representan los valores de los números enteros y reales con
los que puede trabajar la ALU y, a continuación, cuáles son las operaciones que puede
hacer.

1) Números enteros. Los números enteros se pueden representar utilizando diferentes


notaciones, entre las cuales hay signo magnitud, complemento a 1 y complemento a 2.
La notación más habitual de los computadores actuales es el complemento a 2 (Ca2).”

Representación de la información

“En este módulo no analizaremos en detalle la representación de números ni la


manera de operar con ellos. Este tema lo hemos tratado con detenimiento en el
módulo "Representación de la información" de la asignatura Fundamentos de
computadores.

Todas las notaciones representan los números enteros en binario. Según la capacidad
de representación de cada computador, se utilizan más o menos bits. El número de
bits más habitual en los computadores actuales es de 32 y 64.

2) Números reales. Los números reales se pueden representar básicamente de dos


maneras diferentes: en punto fijo y en punto flotante. El computador es capaz de
trabajar con números reales representados en cualquiera de las dos maneras.

En la notación en punto fijo la posición de la coma binaria es fija y se utiliza un número


concreto de bits tanto para la parte entera como para la parte decimal.
© Universidad Estatal de Milagro – UNEMI

En la notación en punto flotante se representan utilizando tres campos, esto es: signo,
mantisa y exponente, donde el valor del número es ± mantisa · 2exponente.

El IEEE ha definido una norma para representar números reales en punto flotante:
IEEE-754. La norma define diferentes formatos de representación de números binarios
en punto flotante. Los más habituales son los siguientes:

• Precisión simple: números binarios en punto flotante de 32 bits, utilizan un bit de


signo, 8 bits para el exponente y 23 para la mantisa.

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 8


El Procesador

• Doble precisión: números binarios en punto flotante de 64 bits, utilizan un bit de


signo, 11 bits para el exponente y 52 para la mantisa.

• Cuádruple precisión: números binarios en punto flotante de 128 bits, utilizan un bit
de signo, 15 bits para el exponente y 112 para la mantisa” (Universitat Oberta de
Catalunya, 2020)

“La norma define también la representación del cero y de valores especiales, como
infinito y NaN (not a number). Las operaciones aritméticas habituales que puede hacer
una ALU incluyen suma, resta, multiplicación y división. Además, se pueden incluir
operaciones específicas de incremento positivo (+1) o negativo (–1).
Dentro de las operaciones lógicas se incluyen operaciones AND, OR, NOT, XOR,
operaciones de desplazamiento de bits a la izquierda y a la derecha y operaciones de
rotación de bits.” (Universitat Oberta de Catalunya, 2020)

Figura 4. Operandos y operaciones de la ALU


Fuente: (Universitat Oberta de Catalunya, 2020)

“En los primeros computadores se implementaba la ALU como una única unidad
funcional capaz de hacer las operaciones descritas anteriormente sobre números
enteros. Esta unidad tenía acceso a los registros donde se almacenaban los operandos
y los resultados de cada operación.
© Universidad Estatal de Milagro – UNEMI

Para hacer operaciones en punto flotante, se utilizaba una unidad específica


denominada unidad de punto flotante (3) o coprocesador matemático, que disponía de
sus propios registros y estaba separada del procesador.

La evolución de los procesadores que pueden ejecutar las instrucciones


encabalgadamente ha llevado a que el diseño de la ALU sea más complejo, de manera
que ha hecho necesario replicar las unidades de trabajo con enteros para permitir
ejecutar varias operaciones aritméticas en paralelo y, por otra parte, las unidades de

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 9


El Procesador

punto flotante continúan implementando en unidades separadas, pero ahora dentro


del procesador.” (Universitat Oberta de Catalunya, 2020)

Unidad de control
“La unidad de control se puede considerar el cerebro del computador. Como el
cerebro, está conectada al resto de los componentes del computador mediante las
señales de control (el sistema nervioso del computador). Con este símil no se pretende
humanizar los computadores, sino ilustrar que la unidad de control es imprescindible
para coordinar los diferentes elementos que tiene el computador y hacer un buen uso
de ellos.” (Universitat Oberta de Catalunya, 2020)

“Es muy importante que un computador tenga unidades funcionales muy eficientes y
rápidas, pero si no se coordinan y no se controlan correctamente, es imposible
aprovechar todas las potencialidades que se habían previsto en el diseño.

Consiguientemente, muchas veces, al implementar una unidad de control, se hacen


evidentes las relaciones que hay entre las diferentes unidades del computador y nos
damos cuenta de que hay que rediseñarlas, no para mejorar el funcionamiento
concreto de cada unidad, sino para mejorar el funcionamiento global del computador.

La función básica de la unidad de control es la ejecución de las instrucciones, pero su


complejidad del diseño no se debe a la complejidad de estas tareas (que en general
son muy sencillas), sino a la sincronización que se debe hacer de ellas.

Aparte de ver las maneras más habituales de implementar una unidad de control,
analizaremos el comportamiento dinámico, que es clave en la eficiencia y la rapidez de
un computador.” (Universitat Oberta de Catalunya, 2020)

Microoperaciones
“Como ya sabemos, ejecutar un programa consiste en ejecutar una secuencia de
instrucciones, y cada instrucción se lleva a cabo mediante un ciclo de ejecución que
consta de las fases principales siguientes:

1) Lectura de la instrucción.
© Universidad Estatal de Milagro – UNEMI

2) Lectura de los operandos fuente.

3) Ejecución de la instrucción y almacenamiento del operando de destino.

4) Comprobación de interrupciones.

Cada una de las operaciones que hacemos durante la ejecución de una instrucción la
denominamos microoperación, y éstas microoperaciones son la base para diseñar la
unidad de control.” (Universitat Oberta de Catalunya, 2020)

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 10


El Procesador

Tipos de microoperaciones
“La función básica de las microoperaciones es la transferencia de información de un
lugar del computador a otro, generalmente de un registro a otro, tanto si son internos
al procesador como externos. Este proceso de transferencia puede implicar solo mover
la información, pero también transformarla. Identificamos tres tipos básicos de
microoperaciones:

1) Transferencia interna: operaciones de transferencia entre registros internos del


procesador.

2) Transferencia interna con transformación: operaciones aritméticas o lógicas


utilizando registros internos del procesador.

3) Transferencia externa: operaciones de transferencia entre registros internos del


procesador y registros externos al procesador o módulos externos al procesador (como
el bus del sistema o la memoria principal).” (Universitat Oberta de Catalunya, 2020)

Ejemplos de transferencia

Una transferencia interna puede consistir en cargar el contenido del registro PC en el


registro MAR para obtener la siguiente instrucción que hemos de ejecutar; una
transferencia interna con transformación de información puede consistir en
incrementar un registro, llevando el contenido del registro a la ALU y recoger el
resultado para guardarlo en otro registro, y una transferencia externa puede consistir
en llevar el contenido de un registro de estado de un dispositivo de E/S a un registro
del procesador.

La nomenclatura que utilizaremos para denotar las microoperaciones es la siguiente:

Registro de destino ← Registro de origen


Registro de destino ← Registro de origen <operación> Registro de origen / Valor”

Ciclo de ejecución
“Las microoperaciones sirven de guía para diseñar la unidad de control, pero antes de
© Universidad Estatal de Milagro – UNEMI

entrar en el detalle de la implementación, analizaremos la secuencia de


microoperaciones que habitualmente se producen en cada fase del ciclo de ejecución
de las instrucciones.

Esta secuencia puede variar de una arquitectura a otra e, incluso, puede haber
microoperaciones que estén en fases diferentes. Eso depende en buena parte de las
características de la arquitectura: el número de buses, a qué buses tienen acceso los
diferentes registros, si hay unidades funcionales específicas como registros que se
puedan autoincrementar sin hacer uso de la ALU, la manera de acceder a los
elementos externos al procesador, etc.

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 11


El Procesador

A continuación, veremos las microoperaciones que se llevan a cabo en cada una de las
fases del ciclo de ejecución para una arquitectura genérica desde el punto de vista
funcional: cuáles se deben realizar y en qué orden. En el próximo apartado
analizaremos con más detalle la dependencia temporal entre las microoperaciones en
razón de los recursos que ha utilizado cada una.” (Universitat Oberta de Catalunya,
2020)

Lectura de la instrucción
“La fase de lectura de la instrucción consta básicamente de cuatro pasos:

1) MAR ← PC: se pone el contenido del registro PC en el registro MAR.

2) MBR ← Memoria: se lee la instrucción.

3) PC ← PC + Δ: se incrementa el PC tantas posiciones de memoria como se han leído


(Δ posiciones).

4) IR ← MBR: se carga la instrucción en el registro IR.

Hay que tener presente que, si la instrucción tiene un tamaño superior a una palabra
de memoria, este proceso se debe repetir tantas veces como sea necesario.

Las diferencias principales que encontramos entre diferentes máquinas en esta fase
son cómo y cuándo se incrementa el PC, ya que en algunas máquinas se utiliza la ALU y
en otras se puede utilizar un circuito incrementador específico para el PC.

La información almacenada en el registro IR se descodifica para identificar las


diferentes partes de la instrucción y determinar las operaciones necesarias que hay
que efectuar en las fases siguientes.” (Universitat Oberta de Catalunya, 2020)

Lectura de los operandos fuente


“El número de pasos que hay que hacer en esta fase depende del número de
operandos fuente y de los modos de direccionamiento utilizados en cada operando. Si
hay más de un operando, hay que repetir el proceso para cada uno de los operandos.
© Universidad Estatal de Milagro – UNEMI

El modo de direccionamiento indica el lugar en el que está el dato:

• Si el dato está en la instrucción misma, no hay que hacer nada porque ya lo


tenemos en la misma instrucción.
• Si el dato está en un registro, no hay que hacer nada porque ya lo tenemos
disponible en un registro dentro del procesador.
• Si el dato está en la memoria, hay que llevarlo al registro MBR.

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 12


El Procesador

Ejemplo
Veamos ahora algún ejemplo de ello:

• Inmediato: el dato está en la misma instrucción y, por lo tanto, no hay que hacer
nada: IR (operando).

• Directo a registro: el dato está en un registro y, por lo tanto, no hay que hacer nada.

• Relativo a registro índice:

o MAR ← IR (Dirección operando) + Contenido IR (registro índice)

o MBR ← Memoria: leemos el dato.

La mayor parte de los juegos de instrucciones no permiten especificar dos operandos


fuente con acceso a la memoria, ya que el dato obtenido se deja en el MBR y, por lo
tanto, si se especificarán dos operandos de memoria, se debería guardar el primero
temporalmente en otro registro, lo que causaría un retraso considerable en la
ejecución de la instrucción.

En arquitecturas con un único bus interno (o de más de un bus, pero con determinadas
configuraciones de acceso a los buses) también hay que añadir microoperaciones para
guardar temporalmente información en registros cuando se trabaja con más de un
dato al mismo tiempo, como por ejemplo cuando se hace una suma.” (Universitat
Oberta de Catalunya, 2020)

Ejecución de la instrucción y almacenamiento del operando de


destino
“El número de pasos que hay que realizar en esta fase depende del código de
operación de la instrucción y del modo de direccionamiento utilizado para especificar
el operando de destino. Se necesita, por lo tanto, una descodificación para obtener
esta información.
Para ejecutar algunas instrucciones es necesaria la ALU. Para operar con esta, hay que
© Universidad Estatal de Milagro – UNEMI

tener disponibles al mismo tiempo todos los operandos que utiliza, pero la ALU no
dispone de elementos para almacenarlos; por lo tanto, se deben almacenar en
registros del procesador. Si no hay un bus diferente desde el que se pueda captar cada
uno de los operandos fuente y donde se pueda dejar el operando de destino, se
necesitan registros temporales (transparentes al programador) conectados
directamente a la ALU (entrada y salida de la ALU) y disponibles al mismo tiempo, lo
que implica el uso de microoperaciones adicionales para llevar los operandos a estos
registros temporales.” (Universitat Oberta de Catalunya, 2020)

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 13


El Procesador

“Si los operandos fuente se encuentran en registros disponibles para la ALU, la


microoperación para hacer la fase de ejecución es de la manera siguiente:
Registro de destino ← Registro de origen <operación> Registro de origen o Valor
Si el operando de destino no es un registro, hay que resolver antes el modo de
direccionamiento para almacenar el dato, de manera muy parecida a la lectura del
operando fuente.
Veamos cómo se resolverían algunos de estos modos de direccionamiento.

Directo a memoria:

• MBR ← <Resultado ejecución>

• MAR ← IR(Dirección operando)

• Memoria ← MBR

Relativo a registro base:


• MBR ← <Resultado ejecución>

• MAR ← Contenido IR(RB) + IR(Desplazamiento operando)

• Memoria ← MBR

Hay que tener presente que en muchas arquitecturas el operando de destino es el


mismo que uno de los operandos fuente y, por lo tanto, los cálculos consecuencia del
modo de direccionamiento ya están resueltos, es decir, ya se sabe dónde se guarda el
dato y no hay que repetirlo.” (Universitat Oberta de Catalunya, 2020)

Comprobación de interrupciones
“En esta fase, si no se ha producido ninguna petición de interrupción, no hay que
ejecutar ninguna microoperación y se continúa con la ejecución de la instrucción
siguiente; en el caso contrario, hay que hacer un cambio de contexto. Para hacer un
cambio de contexto hay que guardar el estado del procesador (generalmente en la pila
del sistema) y poner en el PC la dirección de la rutina que da servicio a esta
interrupción. Este proceso puede variar mucho de una máquina a otra. Aquí solo
© Universidad Estatal de Milagro – UNEMI

presentamos la secuencia de microoperaciones para actualizar el PC.

• MBR ← PC: se pone el contenido del PC en el registro MBR.

• MAR ← Dirección de salvaguarda: se indica dónde se guarda el PC.

• Memoria ← MBR: se guarda el PC en la memoria.

• PC ← Dirección de la rutina: se posiciona el PC al inicio de la rutina de servicio de la


interrupción.” (Universitat Oberta de Catalunya, 2020)

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 14


El Procesador

3.2 Subtema 2: Medidas del rendimiento de un


computador
Medidas de rendimiento versus niveles de descripción
“Dependiendo del nivel de abstracción o de descripción en el que queramos mejorar la
máquina, deberemos fijarnos en una u otra medida de rendimiento.

A continuación, se muestran algunas medidas de rendimiento, clasificadas según el


nivel de abstracción y la característica que queramos mejorar:” (Academia
Cartagena99 - Escuela de informática en Madrid, 2020)

Figura 5. Medidas de rendimiento.


Fuente: (Academia Cartagena99 - Escuela de informática en Madrid, 2020)
© Universidad Estatal de Milagro – UNEMI

Figura 6. Software de aplicación.


Fuente: (Academia Cartagena99 - Escuela de informática en Madrid, 2020)

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 15


El Procesador

Figura 7. Software de sistema.


Fuente: (Academia Cartagena99 - Escuela de informática en Madrid, 2020)

Figura 8. Interfaz software/hardware.


Fuente: (Academia Cartagena99 - Escuela de informática en Madrid, 2020)
© Universidad Estatal de Milagro – UNEMI

Figura 9. Hardware.
Fuente: (Academia Cartagena99 - Escuela de informática en Madrid, 2020)

Tiempo de ejecución
“Definimos el tiempo de ejecución como el tiempo de respuesta del sistema desde que
se ejecuta un programa hasta que se obtiene una respuesta.

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 16


El Procesador

El tiempo de ejecución es, por tanto, la medida de la verdad. De su resultado


dependerá que todos los recursos utilizados para la compra y construcción de
componentes para diseñar la arquitectura, diseñar algoritmos óptimos o buscar
mejoras en las prestaciones, hayan merecido o no la pena. Hay que distinguir entre el
tiempo de ejecución de usuario (Tej), y el tiempo de ejecución del procesador (TCPU):”
(Academia Cartagena99 - Escuela de informática en Madrid, 2020)

Figura 10. Tiempos de ejecución.


Fuente: (Academia Cartagena99 - Escuela de informática en Madrid, 2020)

Rendimiento
“Como ya anunciara Einstein en su Teoría de la Relatividad: “dos observadores que se
mueven relativamente uno al lado del otro con distinta velocidad, a menudo
obtendrán diferentes medidas del tiempo”.
Cuando tratamos de evaluar las prestaciones de una arquitectura de computadores
ocurre algo similar. Cuando decimos que el rendimiento de un computador es óptimo,
¿respecto a qué medida? ¿Comparado con qué?” (Academia Cartagena99 - Escuela de
© Universidad Estatal de Milagro – UNEMI

informática en Madrid, 2020)

“El rendimiento de un computador es relativo, dependiendo del fin para que sea
utilizado y de cómo de bueno sea comparado con máquinas similares que fueron
construidas para el mismo fin o similar. Para medir el rendimiento de un computador,
ya tenemos claro que la única medida fiable es el tiempo de ejecución, pero no hemos
delimitado cuál es el programa que ejecutamos, ni cuál es la medida de tiempo que se
espera. Para demostrar que una computadora es óptima, debemos ejecutar un
programa real (o un programa de prueba de complejidad similar), y comparar los
tiempos de ejecución con una computadora similar. Cuanto menor sea el tiempo de

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 17


El Procesador

ejecución, mejor es nuestro sistema. Para comparar el rendimiento de los


computadores, hasta el año 2000, se usaba como medida estándar el número de veces
más rápido que el VAX-11/780. El VAX-11/780 fue la primera máquina de la familia
VAX. Ejecutaba aproximadamente 1 millón de instrucciones por segundo (1 MIPS) con
programas reales. El procedimiento consiste en ejecutar un conjunto de programas de
prueba llamados benchmarks que implementan algoritmos ya definidos, y comparar
sus resultados con las tablas de tiempos ya calculadas para el VAX. En la actualidad, en
el benchmark estándar del mercado SPEC CPU2006, así como en su versión anterior
CPU2000, se usa como máquina de referencia un servidor diseñado en 1997, llamado
Sun Ultra Enterprise 2, con un procesador UltraSPARC II a 296 MHz. Reducir el tiempo
de ejecución, mejora el rendimiento de un sistema.” (Academia Cartagena99 - Escuela
de informática en Madrid, 2020)

Definiciones y fórmulas
“En el elemento interactivo siguiente, podrás explorar las definiciones de las medidas
de rendimiento más importantes y las fórmulas asociadas a cada medida, para saber
cómo calcularlas. Al final de este tema debemos ser expertos conocedores de estas
medidas y ser capaces de calcularlas.” (Academia Cartagena99 - Escuela de informática
en Madrid, 2020)

Figura 11. Definiciones y fórmulas.


© Universidad Estatal de Milagro – UNEMI

Fuente: (Academia Cartagena99 - Escuela de informática en Madrid, 2020)

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 18


El Procesador

Figura 12. Tiempo de ejecución.


Fuente: (Academia Cartagena99 - Escuela de informática en Madrid, 2020)
© Universidad Estatal de Milagro – UNEMI

Figura 13. Ciclos por instrucción


Fuente: (Academia Cartagena99 - Escuela de informática en Madrid, 2020)

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 19


El Procesador

Figura 14. Instrucciones por segundo


Fuente: (Academia Cartagena99 - Escuela de informática en Madrid, 2020)

Figura 15. Performance


Fuente: (Academia Cartagena99 - Escuela de informática en Madrid, 2020)
© Universidad Estatal de Milagro – UNEMI

Tiempo de ejecución, MIPS y CPI


“Ya sabemos que el tiempo de ejecución es la única medida fiable, pero hay otras
medidas íntimamente relacionadas como son los MIPS (del inglés Millions of
Instructions Per Second) y los PI (Ciclos Por Instrucción).

¿Podemos fiarnos de los MIPS para comparar el rendimiento de dos sistemas?


Aparentemente los MIPS son una buena medida, pues cuántas más instrucciones
ejecutemos, mejor.

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 20


El Procesador

Pero fijémonos en una cuestión: puede que, al implementar un mismo algoritmo en


dos arquitecturas distintas, el programa resultante tenga muchas más instrucciones en
el lenguaje máquina que usa una computadora que la otra.” (Academia Cartagena99 -
Escuela de informática en Madrid, 2020)

“¿Cómo es posible? El número de instrucciones dependerá del juego de instrucciones.


Las arquitecturas RISC (Reduced Instruction Set Computer) tienen un juego reducido
de instrucciones mucho más genéricas que las arquitecturas CISC (Complex Instruction
Set Computing). Por tanto, en las arquitecturas RISC necesitaremos más instrucciones
(aunque duran menos tiempo) para llevar a cabo el mismo programa.

Esto implica que, aunque ejecutemos muchas más instrucciones por segundo en una
arquitectura RISC, puede que no ejecutemos el programa en menos tiempo. Es decir,
dependemos del CPI.

Las instrucciones en las arquitecturas CISC tienen un CPI mucho mayor que las
arquitecturas RISC, pues las instrucciones RISC son mucho más sencillas y genéricas.
Ahora bien, para hacer la misma operación, por ejemplo, multiplicar o calcular la raíz
cuadrada, necesitamos varias instrucciones en RISC, y una sola en CISC. Debemos, por
tanto, ejecutar el programa en las dos máquinas y comparar los tiempos de ejecución.”
(Academia Cartagena99 - Escuela de informática en Madrid, 2020)

Ley de Amdahl
“La Ley de Amdahl permite representar matemáticamente cómo influye una mejora
sobre un componente o varios (que se utilizan durante un porcentaje del tiempo de
ejecución) en la mejora global del rendimiento de una computadora. Si mejoramos x
veces un componente de un computador, el componente será x veces más rápido, es
decir, hará el mismo trabajo en x veces menos de tiempo. Si ese componente se utiliza
durante una fracción de tiempo F del tiempo total de la ejecución, ¿cuál será el tiempo
de ejecución del sistema después de la mejora?
© Universidad Estatal de Milagro – UNEMI

Donde (1-F) representa la fracción de tiempo en la cual no hay mejora (en tanto por
uno). Si operamos con la fórmula anterior:

• Tiempo de ejecución con mejora = tiempo de ejecución sin mejora * (F / x + (1-F) ).


• 1 / (F / x + (1-F) ) = tiempo de ejecución sin mejora / tiempo de ejecución con mejora
= speed-up.
• Speed-up = 1 / (F / x + (1-F) ).

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 21


El Procesador

Donde:

• S → Es la aceleración o speed-up del sistema.


• x → Es la mejora parcial aplicada durante una fracción de tiempo F.
• F → Es la fracción de tiempo durante la que se aplica la mejora x.

Ejemplo

Un arquitecto de computadores se plantea aplicar una mejora en las operaciones en


coma flotante que hará que este tipo de instrucciones se realicen en un tiempo de
ejecución 10 veces menor. Se estima que el 40% de las instrucciones operan con
números reales. ¿Cuál es el speed-up o aceleración del sistema al aplicar esta mejora?”
(Academia Cartagena99 - Escuela de informática en Madrid, 2020)

Mejoras y limitaciones de la ley de Amdahl


“La ley de Amdahl también permite calcular el speed-up o aceleración de una
computadora, cuando aplicamos varias mejoras a la vez en distintos componentes.
© Universidad Estatal de Milagro – UNEMI

Imaginemos que aplicamos varias mejoras a la vez: cada uno de los componentes
mejorados se utiliza durante una fracción de tiempo fi, y cada mejora la
representaremos por un factor de mejora Ri. La fórmula de speed-up o mejora global
del sistema se calcula como:

Donde:

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 22


El Procesador

• Ri: cantidad de mejora de la tarea i.


• fi: fracción de tiempo que se aplica la mejora i.” (Academia Cartagena99 - Escuela de
informática en Madrid, 2020)

Limitación de la ley de Amdahl


“La ley de Amdahl nos permite representar cuánto es la mejora global de un sistema al
aplicar una mejora sobre un componente. Pero esta ley tiene una limitación. El
principal inconveniente de la ley de Amdahl aparece cuando introducimos varias
mejoras a la vez y queremos calcular la mejora global del sistema, pues la fórmula
presentada solo funciona si las mejoras aplicadas no se solapan en el tiempo.

Es decir que, durante una ejecución, nunca se están aplicando dos o más mejoras a la
vez. Por ejemplo, si queremos calcular el speed-up de un sistema en el que mejoremos
la velocidad del procesador (se usa el 95% del tiempo), y los accesos a memoria (el
20% de las instrucciones son de acceso a memoria), resulta que hay momentos en los
que se están aplicando ambas mejoras simultáneamente, por lo que en este caso no
podríamos aplicar directamente la Ley de Amdahl.

En este caso, el speed-up final habría que calcularlo en dos pasos. Primero
calcularíamos cuánto se reduce el tiempo de ejecución con la primera mejora y
después obtendríamos el speed-up de la segunda mejora.” (Academia Cartagena99 -
Escuela de informática en Madrid, 2020)
© Universidad Estatal de Milagro – UNEMI

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 23


El Procesador

3.3 Subtema 3: Procesadores RISC y CISC


Arquitectura Risc
“Buscando aumentar la velocidad del procesamiento se descubrió en base a
experimentos que, con una determinada arquitectura de base, la ejecución de
programas compilados directamente con microinstrucciones y residentes en memoria
externa al circuito integrado resultaban ser más eficientes, gracias a que el tiempo de
acceso de las memorias se fue decrementando conforme se mejoraba su tecnología de
encapsulado.

Debido a que se tiene un conjunto de instrucciones simplificado, éstas se pueden


implantar por hardware directamente en la CPU, lo cual elimina el micro-código y la
necesidad de decodificar instrucciones complejas. En investigaciones hechas a
mediados de la década de los setentas, con respecto a la frecuencia de utilización de
una instrucción en un CISC y al tiempo para su ejecución, se observó lo siguiente:
Alrededor del 20% de las instrucciones ocupa el 80% del tiempo total de ejecución de
un programa. Existen secuencias de instrucciones simples que obtienen el mismo
resultado que secuencias complejas predeterminadas, pero requieren tiempos de
ejecución más cortos.” (Universidad Nacional de Educación a Distancia (UNED), 2020)

Características de la Arquitectura Risc


“Estos microprocesadores siguen tomando como base el esquema moderno de Von
Neumann. Las instrucciones, aunque con otras características, siguen divididas en tres
grupos:

• Transferencia.
• Operaciones.
• Control de flujo.

Reducción del conjunto de instrucciones a instrucciones básicas simples, con la que


pueden implantarse todas las operaciones complejas.
© Universidad Estatal de Milagro – UNEMI

Arquitectura del tipo load-store (carga y almacena). Las únicas instrucciones que
tienen acceso a la memoria son 'load' y 'store'; registro a registro, con un menor
número de acceso a memoria.

Casi todas las instrucciones pueden ejecutarse dentro de un ciclo de reloj. Con un
control implantado por hardware (con un diseño del tipo loadstore), casi todas las
instrucciones se pueden ejecutar cada ciclo de reloj, base importante para la
reorganización de la ejecución de instrucciones por medio de un compilador.

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 24


El Procesador

Pipeline (ejecución simultánea de varias instrucciones). Posibilidad de reducir el


número de ciclos de máquina necesarios para la ejecución de la instrucción, ya que
esta técnica permite que una instrucción puede empezar a ejecutarse antes de que
haya terminado la anterior.” (Universidad Nacional de Educación a Distancia (UNED),
2020)

Figura 16. Arquitectura RISC


Fuente: (Universidad Nacional de Educación a Distancia (UNED), 2020)

Propiedades del sistema tipo Risc


“Como se discutió en la sección anterior algunas de las condiciones necesarias para
archivar una operación reducida en un sistema RISC son:

• Estándar, tamaño arreglado de instrucción, igual para la computadora la longitud de


la palabra y para el ancho del bus de datos (con la estipulación algunos nuevos
sistemas la longitud de la palabra y/o del bus de datos en un entero múltiple del
tamaño de la instrucción como en estos nuevos sistemas de 64 bits y en algunos
sistemas de 32 bits con un bus de datos de 64 bits).

• El tiempo de la ejecución es estándar para todas las instrucciones, preferiblemente


dentro un ciclo singular del CPU (con la estipulación esta minoría de instrucciones igual
como divide tendrá que ser ejecutado en más de un solo ciclo.
© Universidad Estatal de Milagro – UNEMI

• RISC es una arquitectura de tipo load/store

Como hemos visto, el número de referencias por instrucción en un lenguaje de alto


nivel es elevado y la mayoría de las instrucciones sólo requieren un simple flujo de
datos. Como resultado, la gran mayoría de direccionamientos en las instrucciones RISC
son de tipo registro-registro.

Es decir, se cargan los operandos en los registros mediante una operación de tipo load,
se realizan las operaciones pertinentes entre los registros y los resultados se
almacenan en memoria mediante una instrucción de tipo store. A este modelo de

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 25


El Procesador

arquitectura, exclusiva de los RISC, se le conoce con el nombre de load/store.


Evidentemente, los registros del procesador son los que brindan los tiempos de acceso
más cortos debidos tanto a la tecnología de acceso como al número de bits necesarios
para direccionarlos.

En una arquitectura de tipo load/store Lo ideal sería poder tener todos los operandos
que se necesiten en la ejecución de un programa ubicados en registros. Pero entonces
el coste del hardware se vería incrementado notablemente. Se necesita una estrategia
para ubicar aquellos operandos a los que se accede con más frecuencia y reducir el
tráfico registro-memoria generado en las operaciones de tipo load y store.

Una estrategia consistiría en confiar al compilador la maximización del uso de los


registros. La otra estrategia, más acorde con la filosofía RISC, es disponer de una
cantidad elevada de registros para poder mantener ubicadas las variables durante un
período de tiempo mayor.” (Universidad Nacional de Educación a Distancia (UNED),
2020)

Ventajas de la arquitectura Risc


“La estrategia del RISC también trae algunas ventajas muy importantes. Porque cada
instrucción requiere solamente un ciclo de reloj ejecutarse, el programa entero se
ejecutará en aproximadamente la misma cantidad de tiempo que el comando del
multiciclo “MULT”.

Este el RISC “instrucciones reducidas” requiere menos transistores del espacio del
hardware que las instrucciones complejas, saliendo de más sitio para los registros de
fines generales. Porque todas las instrucciones se ejecutan en una cantidad de tiempo
uniforme (es decir un reloj), el canalizar es posible.

La separación de las instrucciones de la “CARGA” y del “ALMACÉN” reduce realmente


la cantidad de trabajo que la computadora debe realizar. Después del CISC-estilo
“MULT” se ejecuta un comando, el procesador borra automáticamente los registros. Si
uno de los operandos necesita ser utilizado para otro cómputo, el procesador debe
© Universidad Estatal de Milagro – UNEMI

recargar los datos del banco de memoria en un registro. En el RISC, seguirá habiendo el
operando en el registro hasta que otro valor se carga en su lugar.” (Universidad
Nacional de Educación a Distancia (UNED), 2020)

Arquitectura Cisc
“CISC es un tipo de arquitectura de computadoras que promueve el uso de gran
número de instrucciones, permitiendo operaciones complejas entre operandos
situados en memoria o en registros internos.

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 26


El Procesador

La tecnología CISC nació de la mano de Intel, creado en 1971, permitiría el nacimiento


de la informática personal. Más concretamente, sería en 1972 cuando aparecería el
“8080” (primer chip capaz de procesar 8 bits, suficiente para representar números y
letras).

Los microprocesadores CISC tienen un conjunto de instrucciones que se caracteriza por


ser muy amplio y permitir operaciones complejas entre operando situados en la
memoria o en los registros internos. Esta arquitectura se basa en que cada instrucción
puede corresponder a varias operaciones de bajo nivel, tales como leer de memoria,
operación aritmética, escribir en la memoria, sumar datos… todo en una sola
instrucción.” (Universidad Nacional de Educación a Distancia (UNED), 2020)

“Este tipo de arquitectura dificulta el paralelismo entre instrucciones, por lo que, en la


actualidad, la mayoría de los sistemas CISC de alto rendimiento implementan un
sistema que convierte dichas instrucciones complejas en varias instrucciones simples
del tipo RISC, llamadas generalmente microinstrucciones. La microprogramación es
una característica importante y esencial de casi todas las arquitecturas CISC.

La microprogramación significa que cada instrucción de máquina es interpretada por


una microprograma localizada en una memoria en el circuito integrado del procesador.
Las instrucciones compuestas son decodificadas internamente y ejecutadas con una
serie de microinstrucciones almacenadas en una ROM interna. Para esto se requieren
de varios ciclos de reloj, al menos uno por microinstrucción. Es así entonces como los
chips CISC utilizan comandos que incorporan una gran diversidad de pequeñas
instrucciones para realizar una única operación.” (Universidad Nacional de Educación a
Distancia (UNED), 2020)

“Cuando el sistema operativo o una aplicación requiere de una de estas acciones,


envía al procesador el nombre del comando para realizarla junto con el resto de
información complementaria que se necesite. Pero cada uno de estos comandos de la
ROM del CISC varían de tamaño y, por lo tanto, el chip debe en primer lugar verificar
cuanto espacio requiere el comando para ejecutarse y poder así reservárselo en la
© Universidad Estatal de Milagro – UNEMI

memoria interna. Además, el procesador debe determinar la forma correcta de cargar


y almacenar el comando, procesos ambos que ralentizan el rendimiento del sistema.

El procesador envía entonces el comando solicitado a una unidad que lo decodifica en


instrucciones más pequeñas que podrán ser ejecutadas por un nanoprocesador, una
especie de procesador dentro del procesador. Y al no ser las instrucciones
independientes, pues son instrucciones menores procedentes de la descodificación de
una instrucción mayor, sólo puede realizarse una instrucción cada vez.

A través de la compleja circuitería del chip, el nanoprocesador ejecuta cada una de las
instrucciones del comando. El desplazamiento por esta circuitería también ralentiza el

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 27


El Procesador

proceso. Para realizar una sola instrucción un chip CISC requiere de cuatro a diez ciclos
de reloj.

El acercamiento de CISC procura reducir al mínimo el número de instrucciones por


programa, sacrificando el número de ciclos por la instrucción. El RISC hace lo opuesto,
reduciendo los ciclos por la instrucción en el coste del número de instrucciones por
programa.” (Universidad Nacional de Educación a Distancia (UNED), 2020)

Figura 17. Arquitectura CISC.


Fuente: (Universidad Nacional de Educación a Distancia (UNED), 2020)

Características de la arquitectura Cisc


“El propósito esencial de una arquitectura CISC es intentar proporcionar única
instrucción de máquina para cada enunciado que esté escrita en un lenguaje de alto
nivel. Otra característica de la arquitectura CISC es la incorporación de formatos de
instrucciones de tamaño variable. Las instrucciones que necesitan operandos de
registros pueden tener sólo dos bytes de longitud, pero las instrucciones que necesitan
direcciones de memoria pueden necesitar cinco bytes para incluir todo el código de la
instrucción.

Las instrucciones en un procesador CISC típico proporcionan la manipulación directa


de los operandos que residen en la memoria. Por ejemplo, una instrucción ADD puede
© Universidad Estatal de Milagro – UNEMI

especificar un operando en la memoria mediante un direccionamiento de índice y un


segundo operando en la memoria por medio de un direccionamiento directo.

Aunque los procesadores CISC tienen instrucciones que sólo utilizan registros de
procesador, la disponibilidad de otros modos de operaciones tiende a simplificar la
compilación de lenguajes de alto nivel. Sin embargo, conforme se incorporan más
instrucciones y modos de direccionamiento en una computadora, se necesita más
circuitería lógica para implementarlos y soportarlos, y esto puede producir que los
cálculos se hagan lentos.

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 28


El Procesador

La microprogramación es una característica importante y esencial de casi todas las


arquitecturas CISC.

Como, por ejemplo:


• Intel 8086, 8088, 80286, 80386, 80486.
Motorola 68000, 68010, 68020, 68030, 6840.” (Universidad Nacional de Educación a
Distancia (UNED), 2020)

“La microprogramación significa que cada instrucción de máquina es interpretada por


un microprograma localizado en una memoria en el circuito integrado del procesador.
En la década de los sesenta la microprogramación, por sus características, era la
técnica más apropiada para las tecnologías de memorias existentes en esa época y
permitía desarrollar también procesadores con compatibilidad ascendente. En
consecuencia, los procesadores se dotaron de poderosos conjuntos de instrucciones.

Las instrucciones compuestas son decodificadas internamente y ejecutadas con una


serie de microinstrucciones almacenadas en una ROM interna. Para esto se requieren
de varios ciclos de reloj (al menos uno por microinstrucción). Los microprocesadores
CISC tienen un conjunto de instrucciones que se caracteriza por ser muy amplio y
permitir operaciones complejas entre operandos situados en la memoria o en los
registros internos. Este tipo de arquitectura dificulta el paralelismo entre instrucciones,
por lo que en la actualidad la mayoría de los sistemas CISC de alto rendimiento
implementan un sistema que convierte dichas instrucciones complejas en varias
instrucciones simples, llamadas generalmente microinstrucciones.” (Universidad
Nacional de Educación a Distancia (UNED), 2020)

“Las instrucciones compuestas son decodificadas internamente y ejecutadas con una


serie de microinstrucciones almacenadas en una ROM interna. Para esto se requieren
de varios ciclos de reloj, al menos uno por microinstrucción. Es así entonces como los
chips CISC utilizan comandos que incorporan una gran diversidad de pequeñas
instrucciones para realizar una única operación.
© Universidad Estatal de Milagro – UNEMI

El objetivo principal de la arquitectura CISC es completar una tarea en el menor


número de líneas de código ensamblador posibles. Este objetivo es conseguido
mediante la construcción de un microprocesador capaz de comprender y ejecutar una
serie de operaciones complejas. Una de las ventajas principales de esta filosofía es
que el compilador tiene que hacer muy poco trabajo para traducir un lenguaje de alto
nivel a ensamblador. Además, debido a que la longitud del código es relativamente
corta, hace falta poca RAM para almacenar las instrucciones. Pero la dificultad está en
construir instrucciones complejas directamente en hardware.” (Universidad Nacional
de Educación a Distancia (UNED), 2020)

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 29


El Procesador

Ventajas y desventajas
“CISC tiene un coste "razonable”, que es alcanzado a nivel de usuario. Esto mismo, no
ocurre con los RISC, que por el contrario tienen un coste elevado, por esto mismo esta
tecnología ha sido enfocada a ventas a nivel de empresa y equipos de gama alta.

La utilidad que se le dé a la maquina es muy importante, ya que el usuario debe


encontrar un nivel óptimo en cuanto a calidad - precio. Y por qué pagar más si
realmente no se le va a sacar partido al cien por cien. El software utilizado es otro de
los factores importantes, dado que un RISC no utiliza el mismo software que un CISC.
Estos últimos, por lo general tienen un software más asequible.

Dada la compatibilidad hacia atrás de la familia CISC x86, los usuarios han podido
renovar sus equipos sin por ello tener que abandonar software que ya Electrónica para
Sistemas Industriales (EIS) ARQUITECTURA DE MICROPROCESADOR 12 conocían, y
reutilizar sus datos. Así mismo, los fabricantes han tenido en cuenta este factor, puesto
que seguir con otra línea de procesadores suponía no solo un cambio muy radical, sino
que además podía llevar un riesgo en cuanto a ventas. Estos son algunos de los
motivos. Sin embargo, también hay que tener en cuenta el conflicto de intereses de
algunos fabricantes, así como la opinión de distintas revistas, algunas de ellas
asociadas a diferentes marcas. Se están estudiando las tendencias futuras, como
pueden ser los híbridos, mejoras en los microprocesadores CISC, mejoras en los RISC.”
(Universidad Nacional de Educación a Distancia (UNED), 2020)

RISC Vs CISC
Es que los procesadores CISCx86 corren a DOS, Windows 3.1 y Windows 95 en el modo
nativo; es decir, sin la traducción de software que disminuya el desempeño. Pero CISC
y RISC también reflejan dos filosofías de computación rivales. El procesamiento de RISC
requiere breves instrucciones de software de la misma longitud, que son fáciles de
procesar rápidamente y en tandém por un CPU. En contraste, un procesador de CISC
tiene que procesar instrucciones más largas de longitud desigual. Es más difícil
procesar múltiples instrucciones de CISC a la vez.
© Universidad Estatal de Milagro – UNEMI

Los que proponen RISC mantienen que su método de procesamiento es más eficiente y
más escalable, por lo que los arquitectos pueden añadir unidades de ejecución más
fácilmente a un diseño existente y aumentar el rendimiento (las unidades de ejecución
son los circuitos dentro del chip que hacen gran parte del trabajo). Similarmente, RISC
facilita el multiprocesamiento verdadero, donde varios CPUs trabajan simétricamente
mientras dividen, ejecutan y ensamblan una cadena de instrucción; los chips CISC
pueden hacer lo mismo, pero no son tan efectivos. La simplicidad de las instrucciones
de RISC también significa que requieren menos lógica para ejecutar, reduciendo el

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 30


El Procesador

costo del chip. Pocos en el campo del CISC discuten estos hechos, prefiriendo apuntar
a la realidad.

Todo el debate de CISC/RISC puede ser irrelevante pronto debido a que nuevas
técnicas están convergiendo. El Pentium Pro, el Nx586 y el K5 son básicamente
procesadores RISC en su núcleo. Toman las instrucciones de CISC y las traducen a
instrucciones estilo RISC. Para la generación que sigue al Pentium Pro, Intel y Hewlett-
Packard están colaborando en un CPU híbrido que pueda aceptar instrucciones RISC y
CISC. Si ese chip crea un estándar, puede acelerar el cambio hacia el software
optimizado para RISC. Un mundo de RISC significaría CPUs más poderosos, y más
baratos. Cuando quiera mejorar, simplemente puede añadir otro CPU en lugar de
desprenderse de su viejo CPU.” (Universidad Nacional de Educación a Distancia
(UNED), 2020)
© Universidad Estatal de Milagro – UNEMI

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 31


El Procesador

3.4 Subtema 4: Control y Hazards


Conflictos y sus tipos
“Hay circunstancias que pueden disminuir el rendimiento de un procesador
segmentado debido a que provocan la detención del cauce. Estas circunstancias se
denominan riesgos o conflictos. Existen tres clases de conflictos (Hennessy &
Patterson, 2003):

• Conflictos estructurales: son detenciones producidas en el procesador por


insuficiencia del hardware, debido a que una etapa no puede avanzar porque el
hardware necesario está siendo utilizado por otra.
• Conflictos por dependencia de datos: surgen, principalmente, cuando una
instrucción necesita los resultados de otra anterior, que todavía no los tiene
disponibles, por no haberse terminado de ejecutar completamente.
• Conflictos de control: se deben a las instrucciones de control de flujo, en que
no se puede leer la instrucción siguiente hasta que no se conozca su dirección.”
(Universidad de Valladolid - Departamento de Informática, 2020)

Control de conflictos
En esta sección estudiaremos las técnicas para detectar, prevenir o evitar los
diferentes tipos de conflictos; también veremos la forma de conseguir que causen la
menor pérdida posible de rendimiento una vez que ya se han producido.

Conflictos estructurales
“Los conflictos estructurales, en los cauces monofunción, se resuelven, si ello fuera
posible, aumentando las posibilidades del hardware duplicando todos los recursos que
sea necesario.

Uno de los conflictos estructurales más frecuentes en los cauces monofunción son los
relacionados con los accesos a memoria; por ejemplo, se producirá un conflicto
cuando una etapa trate de acceder a memoria para leer una instrucción y otra lo haga
© Universidad Estatal de Milagro – UNEMI

para acceder a un dato. Estos conflictos se resuelven, en primer lugar, mediante la


arquitectura Harvard en que existen memorias caché diferenciadas para código y
datos. Aun así, podría mantenerse algún conflicto, por accesos simultáneos a datos por
parte de varios segmentos. Esto se puede evitar agregando nuevos puertos a la caché
de datos o, también, limitando los accesos a datos a determinadas instrucciones para
que sea difícil que se superpongan (arquitecturas registro-registro o de carga-
almacenamiento). También existe la posibilidad de que el compilador tenga en cuenta
la estructura del procesador, detecte este tipo de conflictos y, cuando ello ocurra,
intente modificar el orden de ejecución de las instrucciones, siempre que sea posible,
para intentar evitarlos.

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 32


El Procesador

En los cauces no lineales, el control de estos conflictos adquiere una nueva dimensión.
El problema todavía se agrava más en los cauces multifunción dinámicamente
configurables. En estos cauces existe la posibilidad del uso simultáneo de varios
segmentos por parte de ejecuciones distintas de la misma función o por varias de las
funciones. Este tipo de conflictos estructurales se denominan colisiones. El control de
colisiones se hace más complejo si el grafo de precedencia de las tareas no es lineal.
Las técnicas de prevención de colisiones se basan en las tablas de reservas (Davidson,
1971).

Una tabla de reservas contiene la información sobre la ocupación de cada segmento en


cada uno de los ciclos máquina hasta que termine de ejecutarse cierta tarea. Las filas
de la tabla representan a cada uno de los segmentos y las columnas representan los
ciclos necesarios para la ejecución de la tarea. Para un cauce monofunción y lineal, la
tabla de reservas sólo tendrá marcadas las casillas de la diagonal, sin embargo, en los
cauces no lineales, la construcción de la tabla no será tan simple. Un ejemplo de este
tipo de tablas puede verse en la figura 18 para las instrucciones aritméticas y de carga
en el procesador segmentado. Para simplificar el estudio del control de las colisiones
consideraremos inicialmente un procesador segmentado monofunción.” (Universidad
de Valladolid - Departamento de Informática, 2020)

“Tomaremos como ejemplo la función cuya tabla de reservas se muestra en la figura


19(a). El problema que se nos plantea es: si quisiéramos efectuar dos veces sucesivas
la misma tarea, ¿Cuántos ciclos máquina tendríamos que esperar para arrancar dicha
tarea por segunda vez? La solución es sencilla: basta superponer a la tabla de reservas
original, la misma tabla desplazada un lugar a la derecha. Si alguna de las etapas está
ocupada en el mismo ciclo por la tabla original y por la desplazada, significa que no
podrá ejecutarse la tarea la segunda vez, arrancada sólo un ciclo más tarde, por existir
una colisión. Se debe intentar superponer la tabla desplazándola más lugares hacia la
derecha hasta que no haya ningún ciclo que esté ocupado en ambas tablas al mismo
tiempo. El número de desplazamientos entre ambas tablas nos dará el número de
ciclos que habrá que esperar (también denominado latencia) para arrancar la tarea por
segunda vez sin que haya colisiones. A las latencias en que ocurre colisión se les
© Universidad Estatal de Milagro – UNEMI

denomina latencias prohibidas. Precisamente a partir de esta idea, se construye el


vector de colisiones que es un vector binario cuya componente i es 1 si, y sólo si, se
produce una colisión cuando se arranca la tarea la segunda vez i ciclos después de
haberse iniciado la primera.

En el caso de la tabla de reservas anterior, el vector de colisiones se muestra en la


figura 19(b).” (Universidad de Valladolid - Departamento de Informática, 2020)

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 33


El Procesador

Figura 18. Tabla de reservas para las instrucciones aritméticas (a) y de carga (b), en un
procesador segmentado.
Fuente: (Universidad de Valladolid - Departamento de Informática, 2020)

Figura 19. (a) Ejemplo de tabla de reservas y (b) vector de colisiones correspondiente a dicha
tabla.
Fuente: (Universidad de Valladolid - Departamento de Informática, 2020)

“Como fácilmente puede comprenderse, el número de componentes del vector de


colisiones estará acotado superiormente por el número de ciclos necesarios para
completar la ejecución de la tarea menos uno, ya que no se contempla la colisión de la
ejecución de una tarea consigo misma; en cualquier caso, es posible omitir las últimas
componentes nulas del vector.
© Universidad Estatal de Milagro – UNEMI

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 34


El Procesador

Figura 20. Sistema de prevención de colisiones para un cauce monofunción.


Fuente: (Universidad de Valladolid - Departamento de Informática, 2020)

Ahora estudiaremos la forma en que puede ayudarnos en la práctica el vector de


colisiones para prevenir éstas. Hay que tener en cuenta que los cálculos necesarios
para esa prevención deben hacerse de forma simultánea y en el mismo tiempo del
ciclo máquina; por ello, los circuitos necesarios deben ser muy sencillos y rápidos. En la
figura 20 se muestra el esquema de principio de un circuito para la prevención de las
colisiones. Como puede observarse, este circuito basa su funcionamiento en un
registro de desplazamiento hacia la izquierda con posibilidad de carga paralela. El
funcionamiento comprende los siguientes pasos (Davidson, 1971):

1. Al principio de cada ciclo, se provoca un desplazamiento del registro hacia la


izquierda.
2. Una petición de acceso al cauce debe concederse si el bit saliente del registro de
desplazamiento es 0; por el contrario, debe denegarse si el bit saliente es 1.
3. Ahora actuaremos de forma diferente en función de la concesión o no del acceso al
cauce:
▪ Si una petición ha sido concedida, se efectúa una operación OR entre el
contenido
▪ del registro de desplazamiento y el vector de colisiones, el resultado de esta
© Universidad Estatal de Milagro – UNEMI

operación se carga en el registro.


▪ Si, por el contrario, la petición no ha sido concedida, no se hará ninguna
operación sobre el registro de desplazamiento y sólo se retendrá la petición
para repetirla en el ciclo siguiente.
4. Se vuelve al primer paso del proceso.
La estrategia de control que se ha expuesto se basa en comenzar una nueva tarea en el
primer ciclo de reloj en que no haya conflicto con las tareas ya comenzadas. A este tipo
de estrategia se le denomina estrategia avara (greedy strategy) debido a que se trata
de arrancar una nueva tarea tan pronto como sea posible. Esta estrategia es fácil de

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 35


El Procesador

implementar, como se acaba de ver, pero no es necesariamente la que proporciona un


mejor rendimiento.” (Universidad de Valladolid - Departamento de Informática, 2020)

Conflictos por dependencias de datos


“Como ya se explicó anteriormente, este tipo de conflictos surgen cuando varias tareas
acceden a los mismos datos. Normalmente estos conflictos se producen en
procesadores segmentados de instrucciones, sobre todo si están profundamente
segmentados, pero también podrían producirse en cauces aritméticos.
Supongamos dos instrucciones A y B que se ejecutan en ese mismo orden en un
procesador segmentado de instrucciones. Las dependencias de datos que se pueden
presentar pueden ser de tres clases:

RAW (read after write, lectura después de escritura): “la instrucción B trata de leer un
operando antes de que la instrucción A lo haya escrito; de esta forma, B puede tomar
un valor incorrecto de ese operando. Éste es el tipo de dependencia más común.
Trataremos de exponer ahora una condición más formalizada para la existencia de
estos riesgos” (Keller, 1975): Si denotamos por OA al conjunto de salida o rango de la
instrucción A, y por IB al conjunto de entrada o dominio de la instrucción B, habrá
posibilidad de riesgo RAW si: OA ∩ IB = ∅. Esto, que corresponde con la dependencia
de flujo, es una condición necesaria pero no suficiente. La existencia o no de riesgo
depende de la separación temporal de las instrucciones A y B, así como de la
profundidad de la segmentación.

WAR (write after read, escritura después de lectura): la instrucción B trata de escribir
en un registro antes de que sea leído por la A; por ello, A tomaría un valor incorrecto,
ya que debería tomar el valor antes de modificarse. Este riesgo es poco frecuente,
debido a que la escritura de los resultados se efectúa en los últimos segmentos y es
difícil que esa escritura se adelante al segmento de lectura de una instrucción anterior.
El riesgo WAR se podría presentar, sobre todo, en procesadores con autoindexación,
en los que la fase de lectura de operando, que es una de las primeras, puede modificar
un registro antes de que una instrucción anterior lo haya leído. Aun en este tipo de
© Universidad Estatal de Milagro – UNEMI

procesadores este riesgo es difícil que se produzca. No obstante, como veremos más
adelante, esta clase de riesgos se pueden producir si se alterara el orden de la
ejecución de las instrucciones. Existirá peligro de producirse este riesgo si IA ∩ OB = ∅
es decir, si existe antidependencia entre las instrucciones A y B, aunque, igual que en
el caso anterior, esta condición es necesaria pero no suficiente.
WAW (write after write, escritura después de escritura): la instrucción B intenta
escribir un operando antes de que sea escrito por la A. Dado que las escrituras se están
realizando en orden incorrecto, el resultado final depositado es el correspondiente a la
instrucción A cuando debería ser el depositado por la B. Este conflicto sólo se produce
en procesadores segmentados que escriben en más de una etapa y esto no es muy

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 36


El Procesador

frecuente. Este riesgo, igual que el anterior, se podría producir en máquinas que
permiten direccionamientos autoindexados. Al igual que el riesgo WAR, los riesgos
WAW también podrían aparecer si se cambiara el orden de ejecución de las
instrucciones. Podrá existir un riesgo WAW entre las instrucciones A y B si existe
dependencia de salida entre las citadas instrucciones, es decir, si se verifica que: OA ∩
OB = ∅.
Aunque, como en los casos anteriores, esta condición no es suficiente para la
existencia del riesgo. Debe observarse que RAR (lectura después de lectura) no
constituye ningún riesgo puesto que ninguna de las dos instrucciones cambia el valor
del dato.

Existen técnicas para detectar los conflictos por dependencias de datos. Estas técnicas
precisan algo de hardware adicional: unos buffers, que guarden los números de los
registros implicados en las últimas instrucciones, junto con unos comparadores. Los
buffers tendrán una estructura de registro de desplazamiento, de forma que la
posición del número de registro dentro del desplazador nos dirá en qué segmento se
encuentra y la clase de operación que se efectúa sobre él (lectura o escritura). Los
comparadores analizarán si coinciden los operandos de la instrucción que va a
ejecutarse, con los de alguna de las anteriores con las que pueda entrar en conflicto. Si
existe conflicto, como primera solución, se detendrá la ejecución de la instrucción
hasta que las anteriores hayan avanzado y la dependencia desaparezca (esto es lo que
se llama insertar una burbuja). Frecuentemente, en este caso, se dice que se impide la
emisión de la instrucción, ya que se llama así al paso de la instrucción de la etapa de
decodificación a la siguiente, donde comienza la ejecución efectiva de la instrucción
(localización de operandos).

Una solución para reducir la duración de estas detenciones es hacer uso del resultado,
en cuanto se disponga de él, aunque no se haya escrito en el registro afectado; este
método se llama anticipación.

Existen también técnicas para evitar las posibles detenciones que podría producir un
© Universidad Estatal de Milagro – UNEMI

conflicto. Estos métodos pueden clasificarse en dos grupos:


1. Planificación estática.
2. Planificación dinámica.” (Universidad de Valladolid - Departamento de
Informática, 2020)

Conflictos de control
“Este tipo de conflictos se producen en los procesadores de instrucciones
segmentados. Como se mencionó anteriormente, los conflictos de control se deben a
las instrucciones de control del flujo, que no permiten que se lea la instrucción
siguiente hasta que no se conozca su dirección (que precisamente es calculada por la

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 37


El Procesador

propia instrucción de control de flujo). Parece claro que una instrucción de control de
flujo provocará una detención del procesador, ya que el cálculo de la dirección de
destino, al menos en principio, se efectúa en la fase de escritura de resultado (de la
instrucción de control) y esta fase suele ser la última. Esto es especialmente válido en
las instrucciones de bifurcación condicional. Una imagen gráfica de un conflicto de
control puede verse en la figura 21. Conflictos de esta misma índole se producen
también debido a los desvíos e interrupciones. En estos casos, los conflictos son más
graves porque no están previstos en el programa y, por tanto, son mucho más difíciles
de controlar.” (Universidad de Valladolid - Departamento de Informática, 2020)

Figura 21. Conflicto de control.


Fuente: (Universidad de Valladolid - Departamento de Informática, 2020)

“Calcularemos la pérdida de rendimiento debida a los saltos si no se toma ninguna


medida correctora. Supongamos que, en cuanto se detecte una instrucción de control
de flujo, se detiene inmediatamente el procesador hasta que la dirección de la
instrucción siguiente se haya calculado. Evidentemente, cuanto mayor sea el
porcentaje de instrucciones de control de flujo, mayor será la influencia de los
conflictos de control en el rendimiento del cauce.

Sea Ps la probabilidad de aparición de una instrucción de control, y b el número de


ciclos perdidos por la detención (penalización del salto). En estas condiciones, el
© Universidad Estatal de Milagro – UNEMI

tiempo de ejecución de m tareas será:


t = (n + (m − 1) + bmPs) Ts

Podemos mejorar un poco este tiempo si dejamos que se continúen leyendo


instrucciones.

De esta forma, si la instrucción de control no es efectiva (es decir si la condición no se


cumple), habremos adelantado algo. Para los cálculos siguientes vamos a suponer que,
cuando la condición de bifurcación se haya evaluado, todavía no se ha emitido la
instrucción siguiente, es decir, que dicha instrucción no ha efectuado ninguna acción
difícilmente reversible (modificación de registros, flags, etc.). Estas suposiciones

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 38


El Procesador

pueden servir para hacernos una idea de la incidencia de los conflictos de control en el
rendimiento de un procesador segmentado:

Sea Pt la probabilidad de que una instrucción de control sea efectiva, entonces, y con
los anteriores supuestos, el tiempo de ejecución de m tareas será:” (Universidad de
Valladolid - Departamento de Informática, 2020)

“La productividad del procesador vendrá dada por:

donde f es la frecuencia del reloj. Esta productividad, en el estado estacionario, es


decir, para valores grandes de m, tenderá a:

Si suponemos que las bifurcaciones se resuelven en el último segmento, tendremos


que el número de ciclos perdidos, b, será n−1, con lo que la productividad estacionaria
se podrá escribir como:

Otra forma de medir las pérdidas por riesgos de control sería calcular el CPI teniendo
en cuenta estos riesgos (pero prescindiendo de los demás), es decir:
© Universidad Estatal de Milagro – UNEMI

Como se ve las pérdidas debidas a los conflictos de control son bastante importantes,
ya que, en condiciones ideales, el CPI estacionario debe ser 1. Esto significa que la
eficiencia se calculará dividiendo este CPI ideal por el obtenido en 2.9, por tanto:

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 39


El Procesador

Una de las soluciones para evitar estas pérdidas de rendimiento es hacer que el
compilador encuentre algo útil para hacer mientras calcula la dirección del destino del
salto. Esto se conseguirá reordenando las instrucciones de la misma forma que se
hacía en la planificación estática de los riesgos por dependencias de datos. Si el
compilador no pudiera encontrar ninguna instrucción para ocupar los huecos libres
dejados por la instrucción de salto, rellenaría con instrucciones NOP. Para llevar a cabo
este método, denominado bifurcación retardada, tienen que ponerse de acuerdo en la
forma de operar el hardware y el compilador.

Existen otros métodos más sofisticados para mejorar las bifurcaciones. Estos métodos
se basan en la predicción del destino de los saltos para las instrucciones de bifurcación
condicional. Esta predicción puede hacerse a nivel estático (compilador) o a nivel
dinámico (en ejecución).

El problema de todos los métodos de predicción es que, si ésta es incorrecta, hay que
descartar las instrucciones que hayan entrado en el cauce equivocadamente, y eso
puede acarrear una pérdida de rendimiento muy grande:
▪ La predicción estática
▪ La predicción dinámica”. (Universidad de Valladolid - Departamento de
Informática, 2020)
© Universidad Estatal de Milagro – UNEMI

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 40


El Procesador

4. Bibliografía

» Academia Cartagena99 - Escuela de informática en Madrid. (29 de Enero de


2020). www.cartagena99.com. Recuperado el 21 de Enero de 2020, de
www.cartagena99.com:
http://www.cartagena99.com/recursos/alumnos/apuntes/INF_EST_COM_U6_
R1_T_PDF.pdf

» Instituto Tecnológico de Celaya. (24 de Enero de 2020).


http://sisinfo.itc.mx/itcdiscli/. Recuperado el 17 de Enero de 2020, de
http://sisinfo.itc.mx/itcdiscli/:
http://sisinfo.itc.mx/users/ISCSO/eq10/archivos/Organizacion_Memoria_Virtu
al.pdf

» Patterson, D. A., & Hennessy, J. L. (2011). Estructura y Diseño de Computadores.


Barcelona – España: Editorial Reverté.

» Stallings, W. (2006). Organización y arquitectura de computadores. Madrid:


PEARSON EDUCACIÓN, S.A.

» Universidad de Valladolid - Departamento de Informática. (23 de Enero de


2020). www.infor.uva.es. Recuperado el 21 de Enero de 2020, de
www.infor.uva.es:
https://www.infor.uva.es/~bastida/Arquitecturas%20Avanzadas/Segment.pdf

» Universidad Nacional de Educación a Distancia (UNED). (19 de Enero de 2020).


www.ieec.uned.es. Recuperado el 20 de Enero de 2020, de www.ieec.uned.es:
http://www.ieec.uned.es/investigacion/Dipseil/PAC/archivos/Informacion_de_
referencia_2_ISE3_4_2.pdf

» Universitat Oberta de Catalunya. (24 de Enero de 2020). www.uoc.edu.


© Universidad Estatal de Milagro – UNEMI

Recuperado el 17 de Enero de 2020, de www.uoc.edu:


http://cv.uoc.edu/annotation/8255a8c320f60c2bfd6c9f2ce11b2e7f/619469/PI
D_00218275/PID_00218275.html

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 41


ÍNDICE

1. Unidad 4: Almacenamiento y buses del sistema .......................................................... 3

Tema 1: Almacenamiento ............................................................................................. 3

Objetivo: ........................................................................................................................ 3

2. Introducción......................................................................................................................... 4

3. Información de los subtemas ........................................................................................... 5

3.1 Subtema 1: Tipos de almacenamiento............................................................... 7

3.2 Subtema 2: Almacenamiento de disco............................................................. 10

3.3 Subtema 3: Almacenamiento flash .................................................................. 14

3.4 Subtema 4: Almacenamiento en la nube (IN CLOUD) ...................................... 17

4. Bibliografía ......................................................................................................................... 23

2
Almacenamiento

1. Unidad 4: Almacenamiento y
buses del sistema
Tema 1: Almacenamiento
Objetivo:

Conocer y diferenciar los diferentes tipos de almacenamiento, sus


características, ventajas y desventajas.
© Universidad Estatal de Milagro – UNEMI

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 3


Almacenamiento

2. Introduccion
El presente documento contiene información sobre los diferentes tipos de
almacenamiento, sus características, tecnología usada, ventajas y desventajas.

El subtema 1, nos explica los tipos de almacenamiento existentes según su


clasificación.

El subtema 2, detalla el concepto de almacenamiento de disco, tecnología usada y


características.

El subtema 3, detalla el concepto de almacenamiento flash, tecnología usada y


características.
El subtema 4, detalla el concepto de almacenamiento en la nube (in cloud), tecnología
usada y características, proveedores y los puntos a considerar para elegir esta
alternativa de almacenamiento.
© Universidad Estatal de Milagro – UNEMI

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 4


Almacenamiento

3. Informacion de los subtemas


Antes “En informática, la memoria (también llamada almacenamiento) se refiere a
parte de los componentes que forman parte de una computadora Son dispositivos que
retienen datos informáticos durante algún intervalo de tiempo. Las memorias de
computadora proporcionan unas de las principales funciones de la computación
moderna, la retención o almacenamiento de información. Es uno de los componentes
fundamentales de todas las computadoras modernas que, acoplados a una unidad
central de procesamiento (CPU por su sigla en inglés, central processing unit),
implementa lo fundamental del modelo de computadora de Arquitectura de von
Neumann, usado desde los años 1940. En la actualidad, memoria suele referirse a una
forma de almacenamiento de estado sólido conocido como memoria RAM (memoria
de acceso aleatorio, RAM por sus siglas en inglés random access memory) y otras veces
se refiere a otras formas de almacenamiento rápido pero temporal.” (Centro de
Bachillerato Tecnológico "Thomas Alva Edison", 2020)

“De forma similar, se refiere a formas de almacenamiento masivo como discos ópticos
y tipos de almacenamiento magnético como discos duros y otros tipos de
almacenamiento más lentos que las memorias RAM, pero de naturaleza más
permanente. Estas distinciones contemporáneas son de ayuda porque son
fundamentales para la arquitectura de computadores en general. Además, se refleja
una diferencia técnica importante y significativa entre memoria y dispositivos de
almacenamiento masivo, que se ha ido diluyendo por el uso histórico de los términos
"almacenamiento primario" (a veces "almacenamiento principal"), para memorias de
acceso aleatorio, y "almacenamiento secundario" para dispositivos de
almacenamiento masivo. Esto se explica en las siguientes secciones, en las que el
término tradicional "almacenamiento" se usa como subtítulo por conveniencia.”
(Centro de Bachillerato Tecnológico "Thomas Alva Edison", 2020)

Propósitos del almacenamiento


“Los componentes fundamentales de las computadoras de propósito general son la
© Universidad Estatal de Milagro – UNEMI

CPU, el espacio de almacenamiento y los dispositivos de entrada/salida. Simplificando


mucho, si se elimina el almacenamiento, el aparato sería una simple calculadora en
lugar de una computadora. La habilidad para almacenar las instrucciones que forman
un programa de computadora y la información que manipulan las instrucciones es lo
que hace versátiles a las computadoras diseñadas según la arquitectura de programas
almacenados Una computadora digital representa toda la información usando el
sistema binario. Texto, números, imágenes, sonido y casi cualquier otra forma de
información puede ser transformada en una sucesión de bits, o dígitos binarios, cada
uno de los cuales tiene un valor de 1 ó 0. La unidad de almacenamiento más común es

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 5


Almacenamiento

el byte, igual a 8 bits.” (Centro de Bachillerato Tecnológico "Thomas Alva Edison",


2020)

“Una determinada información puede ser manipulada por cualquier computadora


cuyo espacio de almacenamiento es suficientemente grande como para que quepa el
dato correspondiente o la representación binaria de la información. Por ejemplo, una
computadora con un espacio de almacenamiento de ocho millones de bits, o un
megabyte, puede ser usado para editar una novela pequeña. Se han inventado varias
formas de almacenamiento basadas en diversos fenómenos naturales. No existen
ningún medio de almacenamiento de uso práctico universal y todas las formas de
almacenamiento tienen sus desventajas. Por tanto, un sistema informático contiene
varios tipos de almacenamiento, cada uno con su propósito individual, como se
muestra en el diagrama”. (Centro de Bachillerato Tecnológico "Thomas Alva Edison",
2020)
© Universidad Estatal de Milagro – UNEMI

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 6


Almacenamiento

3.1 Subtema 1: Tipos de almacenamiento


“Los almacenamientos según su tipo son:

1. Almacenamiento primario.
2. Almacenamiento secundario.
3. Almacenamiento terciario.
4. Almacenamiento fuera de línea.
5. Almacenamiento de red”. (Centro de Bachillerato Tecnológico "Thomas Alva
Edison", 2020)

Para efectos de este curso, nos centraremos en el desarrollo de tres tipos de


almacenamiento: primario, secundario y de red.

Almacenamiento primario
“La memoria primaria está directamente conectada a la CPU de la computadora. Debe
estar presente para que la CPU funcione correctamente. El almacenamiento primario
consiste en tres tipos de almacenamiento:” (Centro de Bachillerato Tecnológico
"Thomas Alva Edison", 2020)

“• Los registros del procesador son internos de la CPU. Técnicamente, es el sistema


más rápido de los distintos tipos de almacenamientos de la computadora, siendo
transistores de conmutación integrados en el chip de silicio del microprocesador (CPU)
que funcionan como "flip-flop" electrónicos.” (Centro de Bachillerato Tecnológico
"Thomas Alva Edison", 2020)

“• La memoria caché es un tipo especial de memoria interna usada en muchas CPU


para mejorar su eficiencia o rendimiento. Parte de la información de la memoria
principal se duplica en la memoria caché. Comparada con los registros, la caché es
ligeramente más lenta, pero de mayor capacidad. Sin embargo, es más rápida, aunque
de mucha menor capacidad que la memoria principal. También es de uso común la
memoria caché multi-nivel - la "caché primaria" que es más pequeña, rápida y cercana
© Universidad Estatal de Milagro – UNEMI

al dispositivo de procesamiento; la "caché secundaria" que es más grande y lenta, pero


más rápida y mucho más pequeña que la memoria principal.” (Centro de Bachillerato
Tecnológico "Thomas Alva Edison", 2020)

“• La memoria principal contiene los programas en ejecución y los datos con que
operan. Se puede transferir información muy rápidamente entre un registro del
microprocesador y localizaciones del almacenamiento principal. En las computadoras
modernas se usan memorias de acceso aleatorio basadas en electrónica del estado

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 7


Almacenamiento

sólido, que está directamente conectada a la CPU a través de buses de direcciones,


datos y control.” (Centro de Bachillerato Tecnológico "Thomas Alva Edison", 2020)

Almacenamiento secundario
“La memoria secundaria requiere que la computadora use sus canales de
entrada/salida para acceder a la información y se utiliza para almacenamiento a largo
plazo de información persistente. Sin embargo, la mayoría de los sistemas operativos
usan los dispositivos de almacenamiento secundario como área de intercambio para
incrementar artificialmente la cantidad aparente de memoria principal en la
computadora. (A ésta utilización de almacenamiento secundario se le denomina
memoria virtual).” (Centro de Bachillerato Tecnológico "Thomas Alva Edison", 2020)

“La memoria secundaria también se llama "de almacenamiento masivo". Un disco duro
es un ejemplo de almacenamiento secundario. Habitualmente, la memoria secundaria
o de almacenamiento masivo tiene mayor capacidad que la memoria primaria, pero es
mucho más lenta. En las computadoras modernas, los discos duros suelen usarse como
dispositivos de almacenamiento masivo. El tiempo necesario para acceder a un byte de
información dado almacenado en un disco duro de platos magnéticos es de unas
milésimas de segundo (milisegundos). En cambio, el tiempo para acceder al mismo tipo
de información en una memoria de acceso aleatorio (RAM) se mide en mil-
millonésimas de segundo (nanosegundos). Esto ilustra cuan significativa es la
diferencia entre la velocidad de las memorias de estado sólido y la velocidad de los
dispositivos rotantes de almacenamiento magnético u óptico: los discos duros son del
orden de un millón de veces más lentos que la memoria (primaria).” (Centro de
Bachillerato Tecnológico "Thomas Alva Edison", 2020)

“Los dispositivos rotantes de almacenamiento óptico (unidades de CD y DVD) son


incluso más lentos que los discos duros, aunque es probable que su velocidad de
acceso mejore con los avances tecnológicos. Por lo tanto, el uso de la memoria virtual,
que es cerca de un millón de veces más lenta que memoria “verdadera”, ralentiza
apreciablemente el funcionamiento de cualquier computadora. Muchos sistemas
© Universidad Estatal de Milagro – UNEMI

operativos implementan la memoria virtual usando términos como memoria virtual o


"fichero de caché". La principal ventaja histórica de la memoria virtual es el precio; la
memoria virtual resultaba mucho más barata que la memoria real. Esa ventaja es
menos relevante hoy en día. Aun así, muchos sistemas operativos siguen
implementándola, a pesar de provocar un funcionamiento significativamente más
lento.” (Centro de Bachillerato Tecnológico "Thomas Alva Edison", 2020)

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 8


Almacenamiento

Almacenamiento de red
“El almacenamiento de red es cualquier tipo de almacenamiento de computadora que
incluye el hecho de acceder a la información a través de una red informática.
Discutiblemente, el almacenamiento de red permite centralizar el control de
información en una organización y reducir la duplicidad de la información. El
almacenamiento en red incluye:” (Centro de Bachillerato Tecnológico "Thomas Alva
Edison", 2020)

“• El almacenamiento asociado a red es una memoria secundaria o terciaria que reside


en una computadora a la que otra de éstas puede acceder a través de una red de área
local, una red de área extensa, una red privada virtual o, en el caso de
almacenamientos de archivos en línea, internet.

• Las redes de computadoras son computadoras que no contienen dispositivos de


almacenamiento secundario. En su lugar, los documentos y otros datos son
almacenados en un dispositivo de la red.” (Centro de Bachillerato Tecnológico
"Thomas Alva Edison", 2020)
© Universidad Estatal de Milagro – UNEMI

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 9


Almacenamiento

3.2 Subtema 2: Almacenamiento de disco


“Los discos magnéticos se basan en un plato giratorio recubierto de una superficie
magnética y utilizan un cabezal móvil de lectura/ escritura para acceder al disco. El
almacenamiento en disco es no volátil: los datos permanecen incluso cuando está
desenchufado. Un disco magnético consiste en una colección de platos (1-4), cada uno
de los cuales tiene dos superficies grabables.” (Patterson & Hennessy, 2011)

“El conjunto de platos gira de 5400 a 15 000 rpm y tiene un diámetro que va desde una
pulgada a alrededor de 3.5 pulgadas. Cada superficie del disco se divide en círculos
concéntricos, denominados pistas. Normalmente existen de 10 000 a 50 000
pistas por superficie. A su vez, cada pista se divide en sectores que es donde se
almacena la información; cada pista puede tener de 100 a 500 sectores. Los sectores
tienen normalmente una capacidad de 512 bytes, aunque existe una iniciativa para
incrementar el tamaño del sector a 4096 bytes. La secuencia almacenada en el medio
magnético está constituida por un número de sector, un hueco, la información
asignada a ese sector que incluye un código de corrección de errores, un hueco, el
número del sector siguiente, y así sucesivamente. Originalmente, todas las pistas
tenían el mismo número de sectores y por ello el mismo número de bits, pero con la
introducción de la grabación de bits por zonas (ZBR) a principios de los 90, los discos se
modificaron para disponer de un número variable de sectores (y por lo tanto de bits)
por pista, manteniendo constante el espaciado entre bits. ZBR incrementa el número
de bits en las pistas exteriores y por ello incrementa la capacidad de almacenamiento
del periférico.” (Patterson & Hennessy, 2011)

“Como vimos en el capítulo 1, para leer y escribir información, los cabezales de


lectura/escritura deben moverse hasta situarse sobre la posición correcta. Los
cabezales de disco para cada superficie están unidos y se mueven al unísono, de forma
tal que cada cabezal se posiciona sobre la misma pista en cada superficie. El término
cilindro se utiliza para referirse a todas las pistas que se encuentran debajo
de los cabezales en un determinado punto sobre todas las superficies. Para acceder a
© Universidad Estatal de Milagro – UNEMI

los datos, el sistema operativo debe dirigir el disco mediante un proceso de tres
etapas. La primera consiste en posicionar el cabezal sobre la pista correcta. Esta
operación se denomina búsqueda, y el tiempo necesario para mover el cabezal a la
pista deseada se denomina tiempo de búsqueda.” (Patterson & Hennessy, 2011)

“Los fabricantes de discos indican en los manuales correspondientes cuáles son los
tiempos mínimos de búsqueda, los tiempos máximos de búsqueda y los tiempos
promedio de búsqueda. Los dos primeros son fáciles de medir, pero el promedio está
abierto a distintas interpretaciones debido a que depende de la distancia de búsqueda.
La industria ha decidido calcular el tiempo promedio de búsqueda como la suma de los

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 10


Almacenamiento

tiempos de todas las posibles búsquedas divididas por el número de posibles


búsquedas. Los tiempos promedio de búsqueda que normalmente se publican varían
desde 3 ms hasta 13 ms, pero, dependiendo de la aplicación y de la planificación de las
peticiones de disco, el tiempo promedio de búsqueda real puede ser sólo del 25% al
33% del valor publicado debido a la localidad de las referencias a disco. Esta localidad
se debe tanto a los accesos sucesivos a un mismo fichero como al sistema operativo
que trata de planificar tales accesos de forma conjunta. Una vez que el cabezal ha
alcanzado la pista correcta, debemos esperar a que el sector deseado pase debajo del
cabezal de lectura/escritura. Este tiempo se denomina latencia rotacional o retardo
rotacional. La latencia promedio a la información deseada se encuentra a mitad de
camino alrededor del disco. Como los discos rotan
entre 5400 rpm y 15 000 rpm, la latencia rotacional promedio se encuentra entre

La última componente del acceso a un disco, el tiempo de transferencia, es el tiempo


necesario para transferir un bloque de bits. El tiempo de transferencia es una función
del tamaño del sector, la velocidad de rotación y la densidad de grabación de una
pista. Los ritmos de transferencia en el año 2008 estaban entre 70 y 125 MB/seg. La
única complicación se encuentra en que la mayoría de los controladores de disco
tienen una memoria caché integrada que almacena sectores a medida que son
transferidos; los ritmos de transferencia desde la memoria caché son normalmente
mayores y pueden llegar a 375 MB/seg (3 Gbit) en 2008. Hoy en día, muchas de las
transferencias de disco tienen un tamaño que incluye múltiples sectores.” (Patterson &
© Universidad Estatal de Milagro – UNEMI

Hennessy, 2011)

“Un controlador de disco normalmente gestiona todo el control del disco, así como la
transferencia entre el disco y la memoria. El controlador añade un componente final al
tiempo de acceso al disco, el tiempo del controlador, que es el tiempo adicional que el
controlador necesita para realizar un acceso de E/S. El tiempo promedio para realizar
una operación de E/S estará formado por estos cuatro tiempos más los tiempos de
espera debido a que otros procesos están utilizando el disco. Las densidades de los
discos han aumentado continuamente durante más de 50 años. El impacto de la
combinación de la mejora en densidad y la reducción del tamaño físico de un periférico

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 11


Almacenamiento

basado en discos magnéticos ha sido asombroso, como se muestra en la figura 1. El


esfuerzo de distintos diseñadores de discos ha llevado a la amplia variedad de
periféricos que han estado disponibles en cada momento. La figura 2 muestra las
características de cuatro discos magnéticos. En el año 2008, estos discos de un mismo
fabricante costaban entre 0.2 dólares y 2 dólares por gigabyte, dependiendo de la
capacidad, la interfaz y las prestaciones. Así como los discos seguirán siendo viables en
el futuro inmediato, la disposición convencional de los bloques, no. Las suposiciones
del modelo sector-pistacilindro son que los bloques cercanos están en la misma pista,
los bloques en el mismo cilindro tienen un tiempo de acceso menor porque no hay
tiempo de posicionamiento, y algunas pistas están más próximas que otras. La razón
de esta ruptura ha sido el aumento del nivel de las interfaces. Las interfaces
inteligentes de los niveles más altos como ATA y SCSI necesitan un microprocesador
dentro del disco, lo que conduce a optimizaciones de las prestaciones.” (Patterson &
Hennessy, 2011)

Figura 1. Seis discos magnéticos, cuyos diámetros varían desde 14 pulgadas a 1.8 pulgadas.
Fuente: (Patterson & Hennessy, 2011)
© Universidad Estatal de Milagro – UNEMI

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 12


Almacenamiento

Figura 2. Características de cuatro discos magnéticos de un mismo fabricante en 2008.


Fuente: (Patterson & Hennessy, 2011)
© Universidad Estatal de Milagro – UNEMI

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 13


Almacenamiento

3.3 Subtema 3: Almacenamiento flash


“Se ha intentado muchas veces inventar una tecnología para reemplazar los discos
magnéticos, y la mayoría han fallado: memorias CCD, memorias de burbujas
magnéticas y memorias holográficas no dieron la talla. En el momento en que una
tecnología estaba disponible, se producían avances en la tecnología de los discos como
se ha dicho anteriormente, el coste disminuía y el producto competidor perdía su
atractivo en el mercado. El primer desafío creíble es la memoria flash. Esta memoria
semiconductora es no volátil como los discos, pero su latencia es 100-1000 veces más
rápida que la de los discos, es más pequeña, más eficiente energéticamente y más
resistente a las descargas eléctricas.” (Patterson & Hennessy, 2011)

“Igualmente importante, el hecho de que sea popular en teléfonos portátiles, cámaras


digitales y reproductores de MP3 hace que haya un amplio mercado para las memorias
flash dispuesto a invertir para mejorar su tecnología. Recientemente, el coste por
gigabyte de la memoria flash ha estado cayendo un 50% cada año y en 2008 el precio
era de $4 a $10 por gigabyte; es decir, entre 2 y 4 veces mayor que en los discos y
entre 5 y 10 veces menor que en las DRAM. La figura 3 compara tres productos
basados en memorias flash.” (Patterson & Hennessy, 2011)
© Universidad Estatal de Milagro – UNEMI

Figura 3. Características de tres productos de almacenamiento flash.


Fuente: (Patterson & Hennessy, 2011)

“Aunque el coste por gigabyte es mayor que en los discos magnéticos, la memoria
flash se utiliza habitualmente en dispositivos móviles, en parte porque se presenta con
capacidades menores. Como resultado, los discos de diámetro 1 pulgada están
desapareciendo del mercado de los dispositivos empotrados. Por ejemplo, en 2008 el
reproductor MP3 Apple iPod Shuffle se vendía por $50 y tenía 1 GB de capacidad,
mientras que el disco más pequeño tenía una capacidad de 4 GB y su precio era mayor
que el reproductor MP3 completo. La memoria flash es un tipo de memoria de sólo

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 14


Almacenamiento

lectura programable que se puede borrar eléctricamente (EEPROM). La primera


memoria flash, que se llamó flash NOR por la similitud de la celda de almacenamiento
con la puerta NOR estándar, fue un competidor directo de otras EEPROM y era
direccionable de forma aleatoria como cualquier otra memoria.
Unos pocos años más tarde, la memoria flash NAND proporcionaba mayor densidad de
almacenamiento, pero como se eliminó la circuitería para el acceso aleatorio, sólo se
podía leer y escribir en bloques. La NAND flash es mucho más barata por gigabyte y
mucho más popular que la NOR flash; todos los productos de la figura 3 utilizan flash
NAND. La figura 4 compara las características clave de las memorias flash NOR y flash
NAND.” (Patterson & Hennessy, 2011)

“A diferencia de los discos y la memoria DRAM, pero de manera similar a otras


tecnologías de EEPROM, en las memorias flash se produce desgaste de los bits (véase
figura 4). Para sobrellevar estas limitaciones, la mayoría de los productos flash NAND
incluyen un controlador para distribuir las escrituras, recolocando los bloques que han
sido modificados muchas veces en bloques menos utilizados. Esta técnica se llama
nivelación del desgaste (wear leveling). Con la nivelación de desgaste, es muy
improbable que se exceda el límite de escrituras en productos de consumo tales como
teléfonos móviles, cámaras digitales, reproductores de MP3 y llaves de memoria. Estos
controladores reducen las prestaciones potenciales de las memorias flash, pero son
necesarios a no ser que se disponga de monitores software de alto nivel que limiten el
desgaste. Sin embargo, los controladores también pueden mejorar el rendimiento
(yield) descartando las celdas que se fabricaron de modo incorrecto. La limitación en
las escrituras es una de las razones por las que las memorias flash no son populares en
computadores de sobremesa y servidores. Sin embargo, en 2008 se han vendido los
primeros computadores portátiles con memoria flash en lugar de discos duros con un
sobreprecio importante para ofrecer un arranque más rápido, menor tamaño y una
vida útil de las baterías más larga.” (Patterson & Hennessy, 2011)

“Hay también disponibles memorias flash con tamaños similares a la de los discos
estándar, como se muestra en la figura 3. Combinando estas ideas, los discos duros
© Universidad Estatal de Milagro – UNEMI

híbridos incluyen, por ejemplo, una memoria flash de un gigabyte para que los
portátiles puedan arrancar más rápidamente y ahorrar energía permitiendo que los
discos estén inactivos más frecuentemente. Parece que en los próximos años las
memorias flash podrán competir con éxito con los discos duros en el segmento de
dispositivos con baterías. Como la capacidad aumenta y el coste por gigabyte sigue
disminuyendo, será interesante comprobar si las mayores prestaciones y la mejor
eficiencia energética de las memorias flash le da oportunidades también en el
segmento de los computadores de sobremesa y los servidores.” (Patterson &
Hennessy, 2011)

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 15


Almacenamiento

Figura 4. Características de las memorias flash NOR frente a las memorias flash NAND en 2008.
Fuente: (Patterson & Hennessy, 2011)
© Universidad Estatal de Milagro – UNEMI

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 16


Almacenamiento

3.4 Subtema 4: Almacenamiento en la nube (IN


CLOUD)
“Un sistema de almacenamiento en la nube, también conocido por su término en inglés:
in cloud, no es más que un disco duro, pero en Internet. Es decir, la nube es un lugar donde
puedes almacenar tus archivos y acceder a ellos fácilmente desde cualquier dispositivo, en
cualquier lugar del mundo. Puedes usar también la nube como una forma de hacer copias de
seguridad. Pero ten cuidado. Si borras los archivos originales, muchos sistemas de nube
borrarán también esos archivos en la nube, ya que algunos están configurados para
sincronizarse.” (PCWorld, 2020)

“Los servicios de almacenamiento cloud basados en Internet han obtenido gran


atención en los últimos años. Los usuarios de almacenamiento en la nube pueden
tener acceso a tanto espacio de almacenamiento como estén dispuestos a pagar por
ello. En comparación con las soluciones previas, las soluciones de almacenamiento en
la nube son mucho más baratas y más fiables: los usuarios no tienen que pagar ni un
gran coste inicial, ni comprar dispositivos de almacenamiento, ni de mantenimiento. El
modelo de carga de pago permite a los usuarios pagar por una gran escalabilidad y
flexibilidad, es decir, no tienen que preocuparse acerca de los dispositivos adicionales
debido a la reducción del uso de almacenamiento o el suplemento para más
dispositivos de almacenamiento, junto con el coste de emplear un especialista para
gestionar la infraestructura de red y almacenamiento. Los usuarios tienen la libertad
para adaptarse a la opción más adecuada en función de la situación en tiempo real. Es
difícil decir cuántos proveedores de soluciones de almacenamiento en la nube existen
actualmente, pero es seguro que hay más de diez grandes jugadores en este juego.
Estos proveedores ofrecen una amplia gama de opciones en sistemas funcionales,
rendimiento, precios y etc. Por lo que, ¿cómo podemos hacer una buena y clara
distinción si hay tantas diferencias? Para los usuarios, la respuesta de esta pregunta
puede ayudarlos a elegir la solución que mejor se ajuste a una circunstancia específica.
Para los proveedores, la respuesta puede ayudar a mejorar sus soluciones existentes y,
por lo tanto, proporcionar mejores beneficios. Por ejemplo, son capaces de ofrecer
© Universidad Estatal de Milagro – UNEMI

más opciones para un uso distinto y encontrar un determinado tipo de servicios en un


tipo específico de servidor de dispositivos, por lo que se puede reducir el costo, y
mejorar el rendimiento, debido al diseño específico de cada tipo de hardware del
servidor.” (Universitat Politècnica de València, 2020)

“El desarrollo del almacenamiento de datos en la nube, mejor conocido como cloud
computing, se da gracias al uso de equipos virtuales (Furht y Escalante, 2011); implica
una infraestructura informática invisible para el usuario, pero al utilizarla parece que
se tuviera un equipo físico real, permitiendo la gran ventaja de determinar el número
de procesamiento, el sistema operativo, el tamaño de memoria RAM y de disco de

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 17


Almacenamiento

almacenamiento. Esta elasticidad en la infraestructura es una de las técnicas usables


en Big data (Sakr, Batista y Alomari, 2011; Schadt, Linderman, Soreson, Lee y Nolan,
2010): las tecnologías de virtualización han hecho que la computación sea accesible,
asequible y rentable.” (La Red de Revistas Científicas de América Latina y el Caribe,
2020)

“El nombre de cloud computing proviene de la utilización del símbolo con forma de
nube o cloud, que es el diagrama usado en sistemas como una abstracción para
determinar internet, mientras que computing implica la informática. Una buena
definición de esto es la que ha formulado el NIST (Mell y Grance, 2011; Joyanes
Aguilar, 2012), que la considera como:
“un modelo que permite el acceso bajo demanda a través de la red a un
conjunto compartido de recursos de computación configurables (como por
ejemplo red, servidores, almacenamiento, aplicaciones y servicios) que pueden
ser rápidamente aprovisionados con el mínimo esfuerzo de gestión o
interacción del proveedor del servicio (Mell y Grance, 2009, citados por Joyanes
Aguilar, 2012, p. 91).” (La Red de Revistas Científicas de América Latina y el
Caribe, 2020)

“Una bondad de los entornos de la nube es que, sin duda, proporciona una posible
herramienta para el almacenamiento de grandes volúmenes de datos. El
almacenamiento en la nube o cloud storage es el espacio para acopiar datos,
información, objetos digitales, y otros, que se acceden por internet a través de un
servicio web, mediante un navegador como Explorer, Firefox, Chrome o Safari. Además
de un aprovisionamiento de recursos informáticos bajo demanda, con control variable
para el usuario y neutrales ante sistemas operativos (Sosinsky, 2011), estas
características hacen único al almacenamiento en la nube.” (La Red de Revistas
Científicas de América Latina y el Caribe, 2020)

“Hay que tener en cuenta que el almacenamiento puede ser brindado por un
proveedor de servicios (nube pública) o una versión privada (nube privada); ésta
© Universidad Estatal de Milagro – UNEMI

última es creada por una organización particular para su uso interno, con un completo
control de los recursos en tecnologías de información.” (La Red de Revistas Científicas
de América Latina y el Caribe, 2020)

“El servicio de almacenamiento en la nube significa que un proveedor renta espacio en


su centro de almacenamiento a usuarios finales que carecen de almacenamiento
propio o no desean adquirirlo. También, se usa cuando no se dispone de personal
técnico especializado en la administración de sistemas informáticos, o cuando se
adolece de conocimiento para implementar y mantener infraestructura en
almacenamiento. Las tecnologías del cloud computing ofrecen principalmente tres

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 18


Almacenamiento

modelos de servicio, de acuerdo al NIST (Mell y Grance, 2011): el primero es la


infraestructura como servicio (laaS), el segundo es la plataforma como servicio (Paas)
y, por último, el software como servicio (SaaS). No obstante, para fines de
almacenamiento en la nube el más adecuado es la modalidad laaS, a causa de que el
proveedor ofrece al usuario recursos como capacidad de procesamiento, de
almacenamiento, o comunicaciones, que el usuario puede utilizar para ejecutar
cualquier tipo de software, desde sistemas operativos hasta aplicaciones.” (La Red de
Revistas Científicas de América Latina y el Caribe, 2020)

“Una de las grandes ventajas del almacenamiento en la nube es el ahorro de recursos


económicos. El almacenamiento se alquila a un proveedor utilizando el modelo de
pago por gigabyte almacenado o pago por unidades de datos transferidos. Pues el
usuario únicamente paga por la cantidad de datos que transfiere y aloja en los
servidores del proveedor, además se tiene que el almacenamiento en la nube permite
buena extensibilidad y escalabilidad en el almacenamiento de la información,
necesario cuando se manejan grandes cantidades de datos (Joyanes Aguilar, 2012). La
nube no tiene delimitaciones geográficas como los países, implicando que nuestra
información puede acabar siendo deslocalizada en una o varias regiones del mundo, en
uno de los centros de procesos de datos del proveedor de servicios.” (La Red de
Revistas Científicas de América Latina y el Caribe, 2020)

Proveedores de servicios de almacenamiento en la nube


A continuación, se identifican y describen los principales proveedores de
almacenamiento en la nube.

“• Amazon- Es un sitio web de comercio electrónico; no solo es la librería virtual más


grande del mundo, sino que es una de los principales proveedores de servicios en la
nube y, además de su eficiencia, presenta mejor garantía de servicio. El servicio de
Amazon Simple Storage Service (Amazon S3) es una interfaz de servicios web que
puede utilizarse para almacenar y recuperar grandes cantidades de datos, en cualquier
momento y desde cualquier parte de la web. Es una infraestructura de
© Universidad Estatal de Milagro – UNEMI

almacenamiento de datos altamente escalable, fiable y de rápida transferencia.


También, se distingue por el pago por uso y por consiguiente un ahorro a las
organizaciones, con un precio por $0.0300 por GB alojado al mes y con capacidad de
renta hasta de 5000 TB (Amazon, 2015).” (La Red de Revistas Científicas de América
Latina y el Caribe, 2020)

“• IBM- Los servicios de cloud computing de IBM incluyen también el almacenamiento


con IBM Smart Business Storage Cloud, el cual surgió por el crecimiento en los
volúmenes de datos y la diversidad de formatos de archivo (IBM, 2015). Así esta
solución permite que los usuarios tengan un acceso eficiente, rentable y experimenten

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 19


Almacenamiento

una disminución del rendimiento e interrupciones. En este sentido, el proveedor


brinda soporte para combatir las deficiencias en la gestión del almacenamiento,
ayudando a validar requisitos de la red de área de almacenamiento SAN.” (La Red de
Revistas Científicas de América Latina y el Caribe, 2020)

“• Google- El gigante de la industria de la informática ofrece servicios a través de


Google App Engine, que es una plataforma que ofrece construcción y alojamiento de
aplicaciones web con la infraestructura de Google, donde solo se paga lo que se utiliza.
Permite que los recursos informáticos sean fáciles de construir, mantener y escalar a
medida que crecen las necesidades de almacenamiento y tráfico de web. La fijación de
precios Google Cloud Storage se basa en una tarifa plana para su almacenamiento y
una tasa de uso de la red. El uso del almacenamiento de proyectos y uso de banda
ancha se calculan en gigabytes (GB), permitiendo alcanzar hasta más de 90TB de uso
(Google, 2015).” (La Red de Revistas Científicas de América Latina y el Caribe, 2020)

“• Windows- El principal monopolio de ofimática también nos ofrece capacidad de


almacenamiento por medio de Microsoft Azure, que proporciona la: flexibilidad de
almacenar y recuperar grandes cantidades de datos sin estructurar, como documentos
y archivos multimedia del tipo Blobs de Azure, datos estructurados basados en Nosql
con Tablas de Azure, mensajes confiables con Colas de Azure; y utilizar Archivos de
Azure basados en SMB para migrar aplicaciones locales a la nube… [Ofrece] hasta 500
TB de almacenamiento total por cuenta. (Microsoft, párr. 1 y 3, 2015). Además, el
Almacenamiento de Azure “replica automáticamente los datos para ayudar a
protegerse frente a errores de hardware inesperados y tener la garantía de que
estarán disponibles cuando se necesite” (Microsoft, párr. 4, 2015). “ (La Red de
Revistas Científicas de América Latina y el Caribe, 2020)

“• Sun Microsystems (Oracle) - El servicio de Sun Cloud Storage Services proporciona


acceso basado en Internet para capacidades de almacenamiento de archivos
escalables bajo demanda y pago por uso. El espacio de almacenamiento crece y se
contrae al añadir y eliminar contenido. Es decir, sólo utiliza el espacio que el usuario
© Universidad Estatal de Milagro – UNEMI

necesita. Se puede acceder a los archivos desde cualquier computadora conectada a


internet, en cualquier momento”. (Oracle, párr. 1, 2015).
“Hay dos formas de almacenar los archivos en la cuenta del cliente, basado en archivos
y basado en objetos. El almacenamiento basado en archivos le permite crear unidades
de almacenamiento, llamados volúmenes, en las que se puede crear una jerarquía de
carpetas y archivos. Mientras en el almacenamiento basado en objetos permite crear
cubos en el que se pueden colocar objetos. (Oracle, párr. 2, 2015)” (La Red de Revistas
Científicas de América Latina y el Caribe, 2020)

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 20


Almacenamiento

• NetApp- Es una compañía donde “se desarrollan productos innovadores de software


y sistemas de almacenamiento que ayudan a clientes de todo el mundo a almacenar,
administrar, proteger y retener uno de los activos más preciados de la empresa: los
datos” (NetApp, párr. 1, 2015). Para ello ofrecen un alojamiento de información con
capacidad de 200 TB por cliente, además de ofertar una amplia gama de soluciones
que va de mover datos a las nubes y entre ellas hasta proteger y recuperar datos
(NetApp, 2015). Además de los anteriores, existe un amplio número de proveedores
de almacenamiento más pequeños, pero que de igual forman ofrecen espacio de
almacenamiento. Entre estos podemos citar: Openstack, Zip Cloud, Sugar Sync,
ATMOS, GoGird, Rackspace, Arsys, Strato, IDrive, Open Drive, Mozy, Dropbox, Box,
JustCloud y ADrive. Todos ellos ofrecen precios competitivos y el pago por uso.” (La
Red de Revistas Científicas de América Latina y el Caribe, 2020)

Encontrar el mejor almacenamiento en la nube


“A primera vista, parece haber poca diferencia entre los distintos servicios de
almacenamiento, de modo que para muchos el aspecto económico es el más
importante a la hora de seleccionar un proveedor. Este es un criterio de evaluación
importante, pero no el único que se debe considerar a la hora de buscar una solución
de almacenamiento para los archivos. Al igual que con otros servicios web, factores
como la usabilidad o la seguridad de los datos también son relevantes. Para las
empresas en particular, también es crucial conocer qué funciones de
colaboración ofrece cada solución de cloud computing. Por último, también conviene
comprobar la fiabilidad y el soporte que ofrecen los distintos proveedores.” (IONOS,
2020)

“En concreto, en una comparativa de servicios en la nube, se trata de analizar las


siguientes prestaciones:

• Costes: por muy tentadoras que sean las posibilidades del almacenamiento en
línea, incluso la mejor solución se ha de ajustar al presupuesto disponible. Por lo
general, los proveedores ofrecen una gama de modelos de suscripción que difieren
en términos de volumen de almacenamiento, pero en parte también en el abanico
© Universidad Estatal de Milagro – UNEMI

de funciones. Por lo tanto, se recomienda considerar de antemano cuánto espacio


de almacenamiento se necesita y de qué funciones no se puede prescindir para,
basándose en esta información, comparar las diferentes ofertas entre sí en función
de las necesidades reales. En la mayoría de los casos, también existe una tarifa
básica gratuita, que a menudo es suficiente para fines privados.

• Usabilidad: la usabilidad también juega un papel importante en un servicio en la


nube. Este debería permitir la carga y descarga archivos de forma intuitiva desde
cualquier tipo de terminal, así como permitir un trabajo en colaboración fluido. Si
interesa especialmente compartir el almacenamiento, funciones como un registro

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 21


Almacenamiento

de cambios y la sincronización entre dispositivos son especialmente importantes.


Los mejores servicios de almacenamiento en la nube ofrecen clientes y aplicaciones
a medida para los diferentes dispositivos con la mejor usabilidad posible.

• Seguridad: como cualquier aplicación web, los servicios en la nube también son
hasta cierto punto vulnerables. La tarea y el deber de un buen proveedor es, por lo
tanto, asegurarse de proteger todos los archivos y datos de los usuarios para evitar
la pérdida o el robo de datos. Los modernos centros de datos y las
sofisticadas estrategias de cortafuegos y copias de seguridad se encuentran entre
las medidas deseables, al igual que el cifrado de los datos almacenados y la propia
transferencia de datos. Si la protección de datos también está sobre la mesa, es
inevitable echar un vistazo a la ubicación del servidor: ¿almacena el proveedor sus
datos en un país de la UE? De lo contrario, el manejo de la información sensible de
acuerdo con las normas actuales de protección de datos (RGDP) no estaría
garantizado.

• Fiabilidad y soporte: en comparación con otras ofertas en la World Wide Web, el


almacenamiento en la nube tiene que ver aún más con la fiabilidad del servicio y el
buen soporte, porque ha de garantizar el acceso a los archivos en todo momento y
mantener informado al usuario sobre novedades, problemas técnicos y cambios
con la debida antelación. Una alta disponibilidad del servicio es tan decisiva como
una alta estabilidad, ya que tener que buscar un nuevo servicio después de medio
año porque ya no se ofrece se asocia con un alto gasto adicional. Cuanto más
establecido está un proveedor, más profesional es el soporte.” (IONOS, 2020)
© Universidad Estatal de Milagro – UNEMI

Figura 6. Almacenamiento en la nube


Fuente: (IONOS, 2020)

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 22


Almacenamiento

4. Bibliografía

» Centro de Bachillerato Tecnológico "Thomas Alva Edison". (21 de Enero de


2020). http://cbt1.edu.mx/. Recuperado el 21 de Enero de 2020, de
http://cbt1.edu.mx/:
http://cbt1.edu.mx/CampusVirtual/CED/Curso_ECEComputo/PDFs/memoria.p
df

» IONOS. (22 de Enero de 2020). www.ionos.es. Recuperado el 22 de Enero de


2020, de www.ionos.es:
https://www.ionos.es/digitalguide/servidores/herramientas/servicios-de-
almacenamiento-en-la-nube-comparativa/

» La Red de Revistas Científicas de América Latina y el Caribe. (21 de Enero de


2020). www.redalyc.org. Recuperado el 21 de Enero de 2020, de
www.redalyc.org: https://www.redalyc.org/pdf/4768/476847248008.pdf

» Patterson, D. A., & Hennessy, J. L. (2011). Estructura y Diseño de Computadores.


Barcelona – España: Editorial Reverté.

» PCWorld. (22 de Enero de 2020). www.pcworld.es. Recuperado el 22 de Enero


de 2020, de www.pcworld.es: https://www.pcworld.es/mejores-
productos/almacenamiento/servicios-almacenamiento-nube-3673539/

» Universitat Politècnica de València. (21 de Enero de 2020). www.riunet.upv.es.


Recuperado el 21 de Enero de 2020, de www.riunet.upv.es:
https://riunet.upv.es/bitstream/handle/10251/80435/SERRANO%20-
%20An%C3%A1lisis%20de%20soluciones%20cloud%20para%20almacenamient
o%20de%20archivos%20y%20trabajo%20colaborativo..pdf
© Universidad Estatal de Milagro – UNEMI

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 23


ÍNDICE

1. Unidad 4: Almacenamiento y buses del sistema .......................................................... 3

Tema 2: Bus del sistema................................................................................................ 3

Objetivo: ........................................................................................................................ 3

2. Introducción......................................................................................................................... 4

3. Información de los subtemas ........................................................................................... 5

3.1 Subtema 1: Conectividad entre procesadores memoria y dispositivos de E/S .. 5

3.2 Subtema 2: Interfaces de E/S con el procesador, memoria y sistema operativo.


.......................................................................................................................... 10

4. Bibliografía ......................................................................................................................... 18

2
Bus del sistema

1. Unidad 4: Almacenamiento y
buses del sistema
Tema 2: Bus del sistema
Objetivo:

Conocer la forma de comunicación entre los diferentes subsistemas de un


computador.
© Universidad Estatal de Milagro – UNEMI

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 3


Bus del sistema

2. Introduccion
El presente documento contiene información de la forma de comunicarse entre los
diferentes subsistemas de un computador, mediante el uso de interfaces o buses.

El subtema 1, nos explica la conectividad entre procesadores, memoria y dispositivos


de E/S.

El subtema 2, nos explica las interfaces de E/S con el Procesador, Memoria y sistema
Operativo.
© Universidad Estatal de Milagro – UNEMI

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 4


Bus del sistema

3. Informacion de los subtemas


3.1 Subtema 1: Conectividad entre procesadores
memoria y dispositivos de E/S
“Entre los distintos subsistemas de un computador deben existir interfaces. Por
ejemplo, la memoria y el procesador necesitan comunicarse, como lo hacen el
procesador y los dispositivos de E/S. Durante muchos años, esto ha sido implementado
con un bus. Un bus es una conexión compartida de comunicación que utiliza un
conjunto de conductores para conectar muchos subsistemas. Las dos ventajas más
importantes de la organización bus son la versatilidad y el bajo coste. Definiendo un
único esquema de conexión, los nuevos dispositivos pueden añadirse fácilmente, y los
periféricos pueden incluso ser instalados en distintos computadores que utilizan el
mismo tipo de bus. Además, los buses son eficientes en coste debido a que un único
conjunto de conductores se comparte de varias formas. La principal desventaja de un
bus consiste en que genera un cuello de botella en las comunicaciones, posiblemente
limitando el número máximo de operaciones de E/S. Cuando la E/S debe atravesar un
único bus, su ancho de banda limita el número máximo de operaciones de E/S. El
diseño de un sistema bus capaz de satisfacer los requerimientos del procesador, así
como de conectar un número elevado de dispositivos de E/S a la máquina, presenta un
desafío muy importante.”

(Patterson & Hennessy, 2011)

“Los buses se clasifican tradicionalmente como buses procesador-memoria o buses de


E/S. Los buses procesador-memoria son de pequeña longitud, generalmente de alta
frecuencia y diseñados para maximizar el ancho de banda memoria-procesador. Por el
contrario, los buses de E/S pueden tener una longitud grande, pueden disponer de
muchos tipos de dispositivos conectados a ellos, y a menudo permiten conectar
dispositivos con un amplio rango de ancho de banda de datos. Los buses de E/S
© Universidad Estatal de Milagro – UNEMI

normalmente no se conectan directamente a la memoria, sino que utilizan un bus


procesador-memoria o un bus de placa base para conectarse a memoria. Otros buses
con características diferentes han aparecido para realizar funciones especiales, como
los buses gráficos.” (Patterson & Hennessy, 2011)

“Una razón por la que el diseño de un bus es tan difícil es que su velocidad máxima
está en gran medida limitada por factores físicos: la longitud del bus y el número de
dispositivos. Estos límites físicos evitan que la frecuencia del bus sea arbitrariamente
elevada. Además, la necesidad de soportar una gama de dispositivos con latencias y

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 5


Bus del sistema

ritmos de transferencia de datos que varían ampliamente también hace que el diseño
de un bus sea un reto.
Como es muy difícil proporcionar una alta frecuencia utilizando muchos conductores
en paralelo debido al desplazamiento y reflexión de la señal de reloj la industria está
sustituyendo los buses paralelos compartidos por las interconexiones serie punto a
punto de alta velocidad utilizando conmutadores. Por ello, estas redes están
reemplazando gradualmente a los buses en nuestros sistemas. Como resultado de esta
transición, esta sección ha sido revisada en esta edición para enfatizar el problema que
genera la conexión de los dispositivos E/S, procesadores y memoria, en vez de
concentrarse exclusivamente en los buses. “ (Patterson & Hennessy, 2011)

Fundamentos de las conexiones


“Consideremos una típica transacción de bus. Ésta incluye dos partes: el envío de la
dirección y la recepción o envío de los datos. Las transacciones de bus normalmente se
definen por la operación que realizan en memoria. Una transacción de lectura
transfiere datos desde la memoria (bien al procesador o a un dispositivo E/S), y una
transacción de escritura escribe datos en memoria. Obviamente, esta terminología es
confusa. Para evitarlo, intentaremos usar los términos entrada y salida, que siempre
se definen desde la perspectiva del procesador: una operación de entrada está
recibiendo datos desde el dispositivo a memoria, donde el procesador puede leerlos, y
una operación de salida está proporcionando datos a un dispositivo desde memoria
donde el procesador los escribió. El bus de E/S sirve como medio para ampliar la
máquina y conectarle nuevos periféricos. Para facilitar esta tarea, la industria de los
computadores ha desarrollado varios estándares que sirven como especificación
técnica para el fabricante de computadores y para los fabricantes de periféricos. Un
estándar asegura al diseñador del computador que los periféricos estarán disponibles
para una nueva máquina, y asegura al fabricante de periféricos que los usuarios serán
capaces de integrarlos en sus nuevos equipos.” (Patterson & Hennessy, 2011)

La figura 1 resume las características clave de los cinco estándares dominantes de


buses de E/S: Firewire, USB, PCI Express (PCIe), Serial ATA (SATA) y Serial Attached
© Universidad Estatal de Milagro – UNEMI

SCSI (SAS). Estos buses conectan una variedad de dispositivos al computador de


sobremesa, desde teclados a cámaras y discos.

“Los buses tradicionales son síncronos. Si un bus es síncrono, incluye un reloj en las
líneas de control y un protocolo de comunicaciones que se referencia a la señal de
reloj. Por ejemplo, para un bus procesador-memoria que realiza una lectura desde
memoria, podríamos tener un protocolo que transmite la dirección y el comando de
lectura en el primer ciclo de reloj, utilizando las líneas de control para indicar el tipo
de petición. Entonces, la memoria podría tener que responder con la palabra de datos
en el quinto ciclo de reloj. Este tipo de protocolo puede ser implementado fácilmente

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 6


Bus del sistema

con una pequeña máquina de estados finitos. Como el protocolo está predeterminado
e implica poca lógica, el bus puede funcionar a alta frecuencia y la lógica de la interfaz
será pequeña. Sin embargo, los buses síncronos tienen dos grandes desventajas.”
(Patterson & Hennessy, 2011)

“En primer lugar, cada dispositivo conectado al bus debe funcionar a la misma
frecuencia de reloj. En segundo lugar, debido a problemas de desalineamiento del
reloj, los buses síncronos no pueden ser largos si se quiere que funcionen a alta
frecuencia (véase el apéndice C). Los buses procesador-memoria a menudo son
síncronos debido a que los dispositivos que se intercomunican están cerca, son pocos y
están preparados para funcionar a altas frecuencias de reloj. Estos problemas llevan a
conexiones asíncronas. Una conexión asíncrona no tiene reloj, por lo que puede
adaptarse a una amplia variedad de dispositivos, y el bus puede ser todo lo largo que
se quiera sin preocuparse del desalineamiento del reloj o de problemas de
sincronización.
Todos los ejemplos de la figura 1 son asíncronos. Para coordinar la transmisión de
datos entre emisor y receptor, un bus asíncrono utiliza un protocolo con acuse de
recibo, que consiste en una serie de pasos en los cuales el emisor y receptor pasan al
siguiente paso sólo cuando ambas partes están de acuerdo. El protocolo se
implementa utilizando un conjunto adicional de líneas de control.” (Patterson &
Hennessy, 2011)
© Universidad Estatal de Milagro – UNEMI

Figura 1. Características claves de cinco estándares de E/S dominantes.


Fuente: (Patterson & Hennessy, 2011)

Las interconexiones de E/S de los procesadores x86


“La figura 2 muestra el sistema de E/S de un PC tradicional. El procesador se conecta a
los periféricos a través de dos chips principales. El chip que está próximo al procesador
es el controlador de memoria, frecuentemente denominado puente norte, y el que
está conectado a él es el controlador de E/S, llamado puente sur.

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 7


Bus del sistema

Figura 2. Organización del sistema de E/S en un servidor basado en Intel que utiliza el conjunto
de chips 5000P.
Fuente: (Patterson & Hennessy, 2011)

El puente norte es básicamente un controlador DMA que conecta el procesador con la


memoria, el bus gráfico AGP y el chip del puente sur. El puente sur conecta el puente
norte a un montón de buses de E/S. Intel, AMD, NVIDIA y otros fabricantes ofrecen una
amplia variedad de estos conjuntos de chips para conectar el procesador al mundo
exterior.” (Patterson & Hennessy, 2011)

“La figura 3 muestra tres ejemplos del conjunto de chips. Observe que AMD eliminó el
puente norte en el Opteron y productos posteriores, reduciendo de este modo en
número de chips y la latencia de memoria y tarjetas gráficas. Debido a la Ley de
© Universidad Estatal de Milagro – UNEMI

Moore, un número cada vez mayor de controladores de E/S que han estado
antiguamente disponibles como placas opcionales de ampliación que se conectaban a
buses de E/S han sido integradas en estos conjuntos de chips. Por ejemplo, el AMD
Opteron X4 y el Intel Nehalem incluyen puente norte en el microprocesador, y en el
chip del puente sur del Intel 975 se incorpora un controlador de RAID. Las
interconexiones de E/S proporcionan interconexión eléctrica entre dispositivos E/S,
procesadores y memoria, y también definen el protocolo de más bajo nivel para las
comunicaciones. Por encima de este nivel básico, debemos definir protocolos
hardware y software para controlar las transferencias de datos entre los dispositivos

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 8


Bus del sistema

de E/S y la memoria, y especificar comandos del procesador para los dispositivos de


E/S. Estos temas se tratan en la próxima sección.” (Patterson & Hennessy, 2011)

Figura 3. Dos conjuntos de chips de Intel y uno de AMD.


Fuente: (Patterson & Hennessy, 2011)
© Universidad Estatal de Milagro – UNEMI

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 9


Bus del sistema

3.2 Subtema 2: Interfaces de E/S con el procesador,


memoria y sistema operativo
Envío de comandos a los dispositivos de E/S
“Para enviar un comando a un dispositivo de E/S, el procesador debe poder seleccionar
o direccionar el dispositivo y proveer comandos de una o más palabras. Para
direccionar un dispositivo se utilizan dos métodos: E/S asignada al espacio de
memoria, e instrucciones especiales de E/S. En la E/S asignada al espacio de memoria
(memory-mapped), se asignan porciones del espacio de direccionamiento a los
dispositivos de E/S. Las lecturas y escrituras a esas direcciones se interpretan como
comandos para el dispositivo de E/S. Por ejemplo, una operación de escritura se puede
utilizar para enviar datos a un dispositivo de E/S, donde los datos serán interpretados
como un comando. Cuando el procesador pone la dirección y los datos en el bus de
memoria, el sistema de memoria ignora la operación porque la dirección pertenece a
una parte del espacio de memoria usado para E/S. El controlador del dispositivo, sin
embargo, detecta la operación, recoge el dato y lo transmite al dispositivo como un
comando. Los programas del usuario no pueden realizar operaciones de E/S
directamente porque el SO no proporciona acceso al espacio de direccionamiento
asignado a los dispositivos de E/S y las direcciones están protegidas por el mecanismo
de conversión de direcciones.” (Patterson & Hennessy, 2011)

“La E/S asignada al espacio de memoria se puede utilizar también para transmitir datos
a través de la escritura o lectura en direcciones específicas. El dispositivo utiliza la
dirección para determinar el tipo de comando, y los datos se pueden proporcionar por
una escritura u obtener por una lectura. En cualquier caso, la dirección codifica tanto la
identidad del dispositivo como el tipo de transmisión entre el procesador y el
dispositivo. La realización de una lectura o escritura de datos para satisfacer una
petición del programa requiere realmente varias operaciones separadas de E/S.
Además, el procesador puede tener que averiguar el estado del dispositivo entre
comandos individuales para determinar si el comando terminó correctamente. Por
ejemplo, una impresora sencilla tiene dos registros para el dispositivo de E/S: uno para
© Universidad Estatal de Milagro – UNEMI

la información sobre el estado y otro para que los datos sean impresos. El registro de
Estado contiene un bit de “finalización” (done bit), activado por la impresora cuando
ha impreso un carácter, y un bit de error, que indica que la impresora está atascada o
sin papel. Cada byte de datos que se va a imprimir se pone en el registro de Datos. El
procesador debe entonces esperar hasta que la impresora active el bit de finalización
antes de que pueda poner otro carácter en el búfer. El procesador debe también
comprobar el bit de error para determinar si ha ocurrido algún problema. Cada una de
estas operaciones requiere un acceso separado al dispositivo de E/S.” (Patterson &
Hennessy, 2011)

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 10


Bus del sistema

Comunicación con el procesador


“El proceso de comprobar periódicamente los bits del estado para ver si es el
momento de realizar la siguiente operación de E/S, como en el ejemplo anterior, se
llama encuesta (polling). La encuesta es la manera más sencilla para que un dispositivo
de entrada-salida se comunique con el procesador. El dispositivo de E/S simplemente
pone la información en un registro de Estado, y el procesador debe obtener esta
información. El procesador tiene todo el control y hace todo el trabajo. La encuesta o
interrogación se puede utilizar de diferentes modos. Las aplicaciones para sistemas
empotrados en tiempo real encuestan a los dispositivos de E/S puesto que las
frecuencias de E/S están predeterminadas. Eso hace que el tiempo de sobrecarga de la
E/S sea más predecible, lo cual es útil para tiempo real. Como veremos, esto permite
que la encuesta pueda ser utilizada aun cuando la frecuencia de la E/S sea algo más
alta. La desventaja de la encuesta es que puede desperdiciar mucho tiempo de
procesador porque los procesadores son mucho más rápidos que los dispositivos de
E/S.” (Patterson & Hennessy, 2011)

“Puede ocurrir que el procesador lea muchas veces el registro de Estado sólo para
encontrar que el dispositivo todavía no ha terminado una operación de E/S que es
comparativamente más lenta, o que el ratón no se ha movido desde la vez última que
se realizó la encuesta. Cuando el dispositivo termina una operación, aún debemos leer
el estado para determinar si se ejecutó con éxito. El tiempo de sobrecarga de la E/S por
encuesta fue reconocido hace tiempo y condujo a la propuesta de usar interrupciones
para notificar al procesador que un dispositivo de E/S requiere la atención del
procesador. La E/S dirigida por interrupciones (interruptdriven I/O), que es utilizada
por casi todos los sistemas para al menos algunos dispositivos, emplea interrupciones
de E/S para indicar al procesador que un dispositivo de E/S necesita atención. Cuando
un dispositivo quiere notificar al procesador que ha terminado una cierta operación o
necesita atención, provoca una interrupción al procesador.” (Patterson & Hennessy,
2011)

“Una interrupción de E/S es como las excepciones vistas en otros capítulos, con dos
diferencias importantes:
© Universidad Estatal de Milagro – UNEMI

1. Una interrupción de E/S es asincrónica con respecto a la ejecución de la


instrucción. Es decir, la interrupción no se asocia a ninguna instrucción y no impide
que la instrucción en curso termine. Esto es muy diferente de las excepciones de
fallo de página o de excepciones tales como el desbordamiento aritmético. Nuestra
unidad de control sólo necesita comprobar si hay una interrupción de E/S
pendiente cuando comienza una nueva instrucción.
2. Además del hecho de que ha ocurrido una interrupción de E/S, se quiere
proporcionar información adicional tal como la identidad del dispositivo que ha
generado la interrupción. Más aún, las interrupciones representan dispositivos que

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 11


Bus del sistema

pueden tener diferentes prioridades y sus peticiones de interrupción tienen


diferentes niveles de urgencia asociada a ellas. Para comunicar información al
procesador, como la identidad del dispositivo que provoca la interrupción, un
sistema puede utilizar interrupciones vectorizadas o un registro de Causa para la
excepción. Cuando el procesador reconoce la interrupción, el dispositivo puede
enviar la dirección del vector o un código de estado para que sea almacenado en el
registro de Causa. En consecuencia, cuando el SO obtiene el control, sabe la
identidad del dispositivo que causó la interrupción y puede interrogarlo
inmediatamente. Un mecanismo de interrupción elimina la necesidad de que el
procesador encueste al dispositivo y esto permite que el procesador se centre en
ejecutar programas.” (Patterson & Hennessy, 2011)

Niveles de prioridad de interrupción


“Para tratar con las diversas prioridades de los dispositivos de E/S, la mayoría de los
mecanismos de interrupción tienen varios niveles de prioridad: los sistemas operativos
UNIX utilizan de cuatro a seis niveles. Estas prioridades indican el orden en el cual el
procesador debe procesar interrupciones. Tanto las excepciones generadas
internamente como las interrupciones externas de E/S tienen prioridades;
normalmente, las interrupciones de E/S tienen una prioridad menor que las
excepciones internas. Puede haber varias prioridades para las interrupciones de E/S,
con los dispositivos de alta velocidad asociados a las prioridades más altas. Para
soportar los niveles de prioridad para las interrupciones, MIPS proporciona las
primitivas que permiten que sea el sistema operativo quien implemente la política,
similar a cómo MIPS maneja los fallos de TLB. La figura 4 muestra los registros claves.
El registro de Estado determina quién puede interrumpir al computador. Si el bit de
habilitación (enable) de la interrupción es 0, entonces nada puede interrumpir. Un
bloqueo más refinado de interrupciones está disponible en el campo de máscara de
interrupción. Hay un bit en la máscara que corresponde a cada bit en el campo de la
interrupción pendiente del registro de Causa. Para permitir la interrupción
correspondiente, debe haber un 1 en el campo de la máscara en esa posición de bit.
Una vez que ocurre una interrupción, el sistema operativo puede buscar la causa en el
© Universidad Estatal de Milagro – UNEMI

campo del código de excepción del registro de Estado: 0 significa que ocurrió una
interrupción, y otros valores indican las excepciones.” (Patterson & Hennessy, 2011)

“Aquí están los pasos que deben ocurrir en el manejo de una interrupción:
1. Realizar la operación Y lógica entre el campo de la interrupción pendiente y el
campo de la máscara de interrupción para ver cuál de las interrupciones habilitadas
podría ser la culpable. Se hace las copias de estos dos registros usando la instrucción
mfc0.
2. Seleccionar de estas interrupciones la de mayor prioridad. Según la convención
software, la prioridad más alta corresponde al extremo izquierdo.

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 12


Bus del sistema

3. Guardar el campo de la máscara de la interrupción del registro de Estado.


4. Cambiar el campo de la máscara de la interrupción para inhabilitar todas las
interrupciones de prioridad igual o menor.
5. Guardar el estado de procesador necesario para manejar la interrupción.
6. Para permitir interrupciones de mayor prioridad, activar a 1 el bit de habilitación de
la interrupción del registro de Causa.
7. Llamar a la rutina apropiada para la interrupción.
8. Antes de restaurar el estado, activar a 0 los bits de habilitación de interrupciones del
registro de Causa. Esto permite restaurar el campo de máscara de la interrupción.
¿Cómo corresponden los niveles de prioridad de interrupción (IPL) a estos
mecanismos? El IPL es una propuesta asociada al sistema operativo. Se almacena en la
memoria del proceso, y a cada proceso se da un IPL. En el IPL menor, se permiten
todas las interrupciones. Inversamente, en el IPL mayor, se bloquean todas las
interrupciones. Aumentar y disminuir el IPL implica realizar cambios en el campo de la
máscara de interrupción del registro de Estado.” (Patterson & Hennessy, 2011)

Figura 4. Los registros de Causa y Estado.


Fuente: (Patterson & Hennessy, 2011)
© Universidad Estatal de Milagro – UNEMI

Transferencia de datos entre un dispositivo y memoria


“Hemos visto dos métodos diferentes que permiten a un dispositivo comunicarse con
el procesador. Estas dos técnicas (encuesta e interrupción de E/S) forman la base para
dos métodos de implementación de la transferencia de datos entre el dispositivo de
E/S y la memoria. Ambas técnicas son adecuadas para los dispositivos de menor ancho
de banda, donde estamos más interesados en la reducción del coste del controlador
de dispositivo y de la interfaz que en proporcionar una transferencia de alto ancho de
banda. Tanto en la transferencia por encuesta como en la transferencia dirigida por
interrupción es el procesador quién realiza el movimiento de datos y gestiona la

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 13


Bus del sistema

transferencia. Después de revisar estos dos esquemas, examinaremos un esquema


más adecuado para los dispositivos o grupos de dispositivos de más altas prestaciones.
Podemos utilizar el procesador para transferir datos entre un dispositivo y memoria
basándonos en la encuesta. En aplicaciones de tiempo real, el procesador carga datos
desde los registros del dispositivo de E/S y los almacena en memoria.” (Patterson &
Hennessy, 2011)

“Un mecanismo alternativo es realizar la transferencia de los datos dirigida por


interrupción. En este caso, el SO realiza la transferencia de datos en pequeñas
cantidades de bytes desde o hacia el dispositivo. Sin embargo, dado que la operación
de E/S se realiza por interrupción, el SO trabaja en otras tareas mientras los datos se
están leyendo desde el dispositivo o se están escribiendo al dispositivo. Cuando el SO
identifica una interrupción del dispositivo, lee el estado para comprobar si hay errores.
Si no hay ninguno, el SO puede proporcionar los datos siguientes, por ejemplo,
mediante una secuencia de escrituras en registros asignados a memoria. Cuando el
último byte de una petición de E/S se ha transmitido y la operación de E/S ha
finalizado, el SO puede informar al programa. El procesador y el SO hacen todo el
trabajo en este proceso, teniendo acceso al dispositivo y a la memoria para cada uno
de los datos transferidos.” (Patterson & Hennessy, 2011)
“La E/S dirigida por interrupción libera al procesador de tener que esperar cada
acontecimiento de E/S, aunque si utilizamos este método para transferir datos desde o
hacia un disco duro, la sobrecarga de tiempo todavía podría ser intolerable,
puesto que podría consumir una fracción grande del procesador cuando el disco está
realizando transferencias. Para dispositivos con ancho de banda elevado como los
discos duros, las transferencias consisten básicamente en bloques de datos
relativamente grandes (cientos o miles de bytes). Por ello, los diseñadores de
computadores inventaron un mecanismo para descargar de trabajo al procesador y
permitir que el controlador del dispositivo pueda transferir los datos directamente
hacia o desde la memoria sin la participación del procesador. Este mecanismo se llama
acceso directo a memoria (DMA). El mecanismo de interrupción todavía es utilizado
por el dispositivo para comunicarse con el procesador, pero solamente al
© Universidad Estatal de Milagro – UNEMI

finalizar la transferencia de E/S o cuando ocurre un error. El DMA está implementado


con un controlador especializado que transfiere datos entre un dispositivo de E/S y
memoria independientemente del procesador. El controlador de DMA se convierte en
el maestro del bus (bus master) y dirige las lecturas o escrituras entre él mismo y la
memoria. Hay tres pasos en una transferencia por DMA:
1. El procesador programa el controlador de acceso directo a memoria (DMA)
proporcionando la identidad del dispositivo, la operación para realizarse en el
dispositivo, la dirección de memoria que es la fuente o el destino de los datos que se
transferirán, y el número de bytes a transferir.

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 14


Bus del sistema

2. El DMA inicia la operación en el dispositivo y arbitra el acceso al bus. Cuando los


datos están disponibles (procedentes del dispositivo o de la memoria), transfiere los
datos. El controlador de DMA proporciona la dirección de memoria para las lecturas o
escrituras. Si la petición requiere más de una transferencia por el bus, el controlador
de DMA genera la dirección de memoria siguiente e inicia la siguiente transferencia.
Usando este mecanismo, un controlador de DMA puede terminar una transferencia
entera, que puede tener un tamaño de miles de bytes, sin molestar al procesador.
Muchos controladores de DMA tienen algo de memoria para permitir que se adapten a
los retardos producidos en la transferencia o los que se producen mientras que
esperan la concesión del bus.
3. Una vez finalizada la transferencia por DMA, el controlador interrumpe al
procesador, que puede entonces determinar si la operación completa terminó con
éxito interrogando al controlador de DMA o examinando la memoria. En un sistema
informático puede haber varios controladores de DMA. Por ejemplo, en un sistema
con un solo bus procesador-memoria y varios buses de E/S, cada controlador de bus de
E/S tendrá normalmente un procesador de DMA que maneje cualquier transferencia
entre un dispositivo en el bus de E/S y la memoria.” (Patterson & Hennessy, 2011)

“A diferencia de la E/S por encuesta o la dirigida por interrupción, el DMA se puede


utilizar para interconectar o hacer la interfaz a un disco duro sin consumir todos los
ciclos del procesador para las operaciones de E/S. Por supuesto, si el procesador
también quiere acceder a la memoria, tendrá que esperar cuando ésta está ocupada
atendiendo una transferencia por DMA. Usando cachés, el procesador puede evitar
tener que acceder a memoria la mayor parte del tiempo, de modo que deja la mayor
parte del ancho de banda de la memoria libre, para uso de los dispositivos de E/S.”
(Patterson & Hennessy, 2011)

El acceso directo a memoria y el sistema de memoria


“Cuando se incorpora el DMA en un sistema de E/S, la relación entre el sistema de
memoria y el procesador cambia. Sin el acceso directo a memoria, todos los accesos al
sistema de memoria proceden del procesador y, por tanto, pasan por el mecanismo de
© Universidad Estatal de Milagro – UNEMI

conversión de dirección y por el acceso a la cache como si el procesador generara las


referencias. Con DMA, hay otro camino para llegar al sistema de memoria, que no pasa
por el mecanismo de conversión de dirección o la
jerarquía de memoria. Esta diferencia genera algunos problemas tanto en los sistemas
con memoria virtual como en los sistemas con caché. Estos problemas se
solucionan generalmente con una combinación de técnicas hardware y de soporte
software. Las dificultades al incorporar DMA en un sistema de memoria virtual se
presentan porque las páginas tienen direcciones físicas y direcciones virtuales. El
acceso directo de memoria también crea problemas en los sistemas con caché, porque

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 15


Bus del sistema

puede haber dos copias de un dato: una en la caché y otra en memoria.” (Patterson &
Hennessy, 2011)

“Dado que procesador de DMA envía peticiones directamente a memoria sin pasar por
la caché del procesador, el valor de la posición de memoria considerado por el
controlador de DMA puede ser diferente del valor visto por el procesador. Considere
una lectura en el disco, que el controlador de DMA coloca directamente en memoria.
Si algunas de las posiciones en las cuales el DMA escribe están en la caché, el
procesador recibirá un valor obsoleto cuando realice una lectura. Así mismo, si la
caché es de escritura retardada (write-back) el DMA puede leer un valor directamente
de la memoria cuando un valor más reciente está en la caché, y dicho valor no se ha
reescrito aún en la memoria (write-back). A esto se le llama problema de los datos
obsoletos o problema de coherencia. Hemos visto tres métodos diferentes para
transferir datos entre un dispositivo de E/S y la memoria. Al pasar desde la E/S por
encuesta a una E/S dirigida por interrupción y, finalmente, a una interfaz de E/S por
acceso directo a memoria, pasamos la carga de gestionar una operación de E/S desde
el procesador a controladores de E/S progresivamente más inteligentes. Estos
métodos tienen la ventaja de liberar ciclos del procesador. Su desventaja es que
aumentan el coste del sistema de E/S. Por este motivo, un determinado sistema
informático puede elegir qué punto, a lo largo de este espectro de posibilidades, es
apropiado para los dispositivos de E/S conectados con él. Antes de tratar el diseño de
los sistemas de E/S, veamos brevemente cómo se miden sus prestaciones.” (Patterson
& Hennessy, 2011)

“En un sistema con memoria virtual, ¿debería el DMA trabajar con direcciones lógicas
o con direcciones físicas? La dificultad obvia con las direcciones lógicas es que el
controlador de DMA necesitará traducir las direcciones lógicas a direcciones físicas. El
problema principal cuando se usa una dirección física en una transferencia por DMA es
que la transferencia no puede cruzar fácilmente los límites de la página. Si una
operación de E/S cruzará un límite de página, entonces las posiciones de memoria
involucradas en la transferencia podrían no estar necesariamente contiguas en la
© Universidad Estatal de Milagro – UNEMI

memoria virtual. Por lo tanto, si utilizamos direcciones físicas, debemos restringir las
transferencias de DMA de forma que cada una de ellas sólo implique direcciones
dentro de una página. Un método que permite al sistema iniciar transferencias de
DMA que sobrepasen los límites de la página es hacer que el DMA trabaje con
direcciones virtuales. En estos sistemas, el controlador de DMA tiene unos cuantos
registros que proporcionan la correspondencia entre páginas virtuales y físicas para
una transferencia. El SO proporciona la información de correspondencia cuando se
inicia la operación de E/S. Con información de correspondencia, el controlador de DMA
no necesita preocuparse de la posición ocupada por las páginas virtuales involucradas

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 16


Bus del sistema

en la transferencia. Otra técnica consiste en hacer que el sistema operativo


descomponga la transferencia de DMA en una serie de transferencias más pequeñas,
cada una de ellas confinada dentro de los límites de una única página física. Las
transferencias entonces son encadenadas y gestionadas juntas por un procesador de
E/S o por un controlador inteligente de DMA que ejecuta la secuencia entera de
transferencias; alternativamente, el SO puede solicitar individualmente cada una de las
transferencias. Cualquiera que sea el método utilizado, el sistema operativo aún debe
cooperar para asegurar que no se cambie la ubicación de una página en memoria
mientras en esa página se está haciendo una transferencia DMA.” (Patterson &
Hennessy, 2011)
© Universidad Estatal de Milagro – UNEMI

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 17


Bus del sistema

4. Bibliografía

» Patterson, D. A., & Hennessy, J. L. (2011). Estructura y Diseño de Computadores.


Barcelona – España: Editorial Reverté.
© Universidad Estatal de Milagro – UNEMI

FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 18

También podría gustarte