Вы находитесь на странице: 1из 250

2018

2011 U. N. S. J. - F.C.E.F. y N.
2011

Departamento de Informática

Estructura y Funcionamiento
de Computadoras I
Licenciatura en Sistemas de Información
Licenciatura en Ciencias de la Computación

http://estructura1-2018.wikispaces.com
UNIVERSIDAD NACIONAL DE SAN JUAN
Facultad de Ciencias Exactas Físicas y Naturales
Departamento de Informática

El siguiente material ha sido elaborado por el personal de la Cátedra


“Estructura y Funcionamiento de Computadoras I”

Ing. Alfredo Leiva


Ing. Liliana Hoesé
Lic. Néstor Ferrari
Ing. Víctor Ayestarán
Lic. Liliana Romera

Edición y Revisión Integral: Ing. Liliana Hoesé


Ing. Víctor Huaman
Unidad 1
Conceptos introductorios
Índice temático Unidad Nº 1 – Conceptos introductorios

1.1 Computadora: Hardware y Software ............................................................ 3


1.2 La computadora y el procesamiento de datos ............................................... 5
1.3 Estructura funcional de una computadora .................................................... 5
1.4 Concepto de bit, byte y palabra.................................................................... 6
1.5 Señales digitales y analógicas ....................................................................... 9
1.5.1. Señales digitales ........................................................................................... 9
1.5.2. Señales analógicas ...................................................................................... 11
1.5.3. Señales digitales binarias vs. señales analógicas ........................................ 12
1.6 Transmisión de datos ..................................................................................14
1.6.1. Codificación de señal .................................................................................. 14
1.6.2. Transmisión en serie ................................................................................... 15
1.6.3. Transmisión en paralelo. Concepto de bus ................................................ 16
1.7 Descripción de las unidades funcionales básicas de una computadora..........17
1.7.1. Unidad Central de Procesamiento (CPU).................................................... 17
1.7.2. Unidad de Memoria Principal (MP) ............................................................ 18
1.7.3. Unidades periféricas o Periféricos .............................................................. 19
1.8 Parámetros característicos de una computadora digital ...............................22
1.8.1. Capacidad de almacenamiento .................................................................. 22
1.8.2. Longitud o Ancho de palabra...................................................................... 24
1.8.3. Tiempo de acceso ....................................................................................... 24
1.8.4. Ancho de banda o velocidad de transferencia ........................................... 25
1.8.5. Velocidad del procesador ........................................................................... 27
1.9 Modelo de Von Neumann ...........................................................................21
1.10 Evolución histórica: Generaciones de computadoras ...................................29
1.11 Clasificación de computadoras según su potencia ........................................31
Bibliografía ..........................................................................................................38
Estructura y Funcionamiento de Computadoras I Unidad 1 - Conceptos introductorios

Unidad 1
Conceptos introductorios
Esquema de contenidos

Computadora: Hardware y Software

La Computadora y el Procesamiento
de Datos

Concepto de Bit, Byte y Palabra

Señales Digitales
Señales Digitales y Analógicas Señales Analógicas
Señales Digitales vs. Analógicas

Conceptos Transmisión Serie y Paralelo.


introductorios Concepto de BUS

Modelo de Von Neumann

Estructura Funcional de la Unidades funcionales


Computadora Parámetros característicos

Evolución Histórica Generación de Computadoras


Hechos Históricos

Tipos de Computadoras

1.1 Computadora: Hardware y Software


Se puede definir a la computadora como una máquina que procesa
datos automáticamente de acuerdo a un programa registrado en su Automático: se dice
memoria, el cual comanda su funcionamiento. así de un proceso o
dispositivo que, bajo
Las computadoras son denominadas de muy diversas maneras:
ciertas condiciones,
computador, computadora u ordenador, seguidos de los adjetivos numérico, funciona sin la
digital o simplemente electrónico. intervención de un
La computadora no es más que una máquina que realiza un trabajo operador humano
por medio de la energía eléctrica; pero es capaz de aliviar al usuario
Programa: Conjunto
humano de tareas rutinarias como el almacenamiento, la realización de de instrucciones
cálculos y las decisiones repetitivas. Aunque en algunos aspectos la dado a la
computadora llega a superar algunas capacidades del cerebro humano, no computadora para
es una máquina inteligente; la inteligencia aparente que a veces manifiesta que cumpla una
se debe a la inteligencia de quienes han desarrollado los programas que la cierta tarea.
máquina ejecuta.

3
La computadora realiza las tareas en forma equivalente a un empleado
que recibe del jefe una lista de instrucciones. Sin embargo, hay una
diferencia esencial: ante una situación de excepción imprevista la
computadora terminará su ejecución, mientras que el empleado puede
tomar una decisión para resolver dicha excepción.
Las computadoras actuales son sistemas electrónicos digitales
complejos. Se caracterizan por su versatilidad, velocidad y capacidad de
almacenamiento:
• Versatilidad: la computadora puede estar procesando una liquidación de
haberes y momentos después resolviendo un sistema de ecuaciones.
• Velocidad: la computadora puede ejecutar millones de instrucciones en
un segundo.
• Capacidad de almacenamiento: la computadora puede almacenar gran
cantidad de datos y disponer de ellos cuando un programa los requiera.

Del concepto dado de computadora, se desprende que está constituido


por dos partes bien definidas: una parte física o hardware (la máquina) y
una lógica o software (el programa). Esto da lugar a la definición de dos
términos habituales cuando se habla de computadoras:

Hardware: En inglés, hard es "duro" y hardware significa "ferretería"; por lo


tanto, el hardware o soporte físico de una computadora es la máquina en sí:
el conjunto de circuitos electrónicos, las placas que soportan los
componentes de dichos circuitos, los cables y conductores que los
interconectan, así como los demás elementos físicos que forman la
computadora.
Software: En inglés soft es “blando”, podría traducirse como “dúctil”,
factible de ser modificado. En Informática el software o soporte lógico es
sinónimo de programas que pueden ejecutarse en la computadora.

Para que una computadora funcione es necesario utilizar programas;


es decir una computadora con tan sólo sus elementos físicos no funciona:
tan imprescindible es el hardware como el software.
Los programas son fáciles de modificar y de cambiar unos por otros en
la memoria de la computadora. Dicha facilidad se debe a que los programas
no forman, físicamente, parte del hardware, sino que éste les sirve de
soporte material. Así, una computadora con un hardware fijo puede realizar
distintas tareas, definidas en programas diferentes, convirtiéndose en una
herramienta de múltiples usos en el procesamiento de datos.
En las memorias de tecnología electrónica, el cambio de un programa
por otro se realiza modificando el estado eléctrico de los circuitos de
memoria, mediante señales eléctricas apropiadas. La manera en que se
realizan estas modificaciones es "transparente” al operador o al proceso.

Se puede definir ahora un Sistema Informático como el conjunto de


partes interrelacionadas: hardware y software. El hardware constituye el
soporte físico y el software el soporte lógico. En ciertos procesos, como la
incorporación o actualización de tecnología informática dentro de las
organizaciones, el sistema informático incluye además el recurso humano
integrado por el personal administrativo usuario de los sistemas de gestión
organizacional y los técnicos que crean y mantiene el sistema (analistas,
programadores, operarios, etc.).

4
Estructura y Funcionamiento de Computadoras I Unidad 1 - Conceptos introductorios

1.2 La computadora y el procesamiento de datos


Si bien en el lenguaje común los términos dato e información pueden
ser sinónimos, en Informática tienen distinto significado. La operación
sobre datos entrega datos, que se transforman en información cuando el
usuario le asigna una interpretación para tomar decisiones.
La función esencial de la computadora es el procesamiento de datos, es
decir el tratamiento interno de datos de entrada con el fin de obtener un
conjunto de datos de salida (resultados), que brinden la información
necesaria para tomar una determinada decisión.

Entidad Atributo Datos de entrada Datos de salida Decisión

Obtener promocionalidad o
Alumnos Nota 8 7 9 Promedio
boleta de la materia

Estatura mínima Requisito de estatura para


Personas Estatura 1,70 1,65
Estatura máxima ingresar a la Policía

Requisito para otorgar beca de


Personas Edad 25 32 40 Menor o igual a 35 años
estudio en el exterior

Tabla 1.1 Ejemplos de toma de decisiones a partir de la información obtenida de los datos de salida.

El tratamiento de datos comprende cuatro etapas, que consisten en la


Entrada, Memorización, Procesamiento y Salida de datos. Estas etapas a su
vez se corresponden con las unidades básicas que conforman una
computadora.

1.3 Estructura funcional de una computadora


Sin importar el tamaño o la potencia de una computadora, todas ellas
están compuestas por unidades o módulos dedicados a tareas específicas.
Como dijimos anteriormente, estas unidades se relacionan con las etapas
del tratamiento de datos.
Así, desde el punto de vista funcional, en todas las computadoras se
puede identificar la estructura que muestra la Figura 1.1

Figura 1.1 Estructura


funcional básica de una
computadora.

La estructura mostrada en la Figura 1.1 agrupa las distintas partes de


una computadora en bloques que forman un esquema simplificado pero
muy general. Más adelante describiremos la función de cada bloque y en los
temas subsiguientes detallaremos las características más relevantes de los
componentes o dispositivos para comprender su funcionamiento.

5
1.4 Concepto de bit, byte y palabra
El bit es la unidad mínima de información. El término es un acrónimo
que proviene de binary digit, es decir que el bit es un dígito binario.
El binario es el “idioma” natural de la computadora debido a que su
funcionamiento interno se basa en componentes diseñados para funcionar
solamente con dos niveles de voltaje o estados. Uno de estos estados sirve
para representar el dígito 0 y el otro estado representa el dígito 1. Por esta
razón, todos los datos e instrucciones que procesa una computadora se
encuentran expresados mediante bits.
Cada bit considerado en forma individual solamente tiene la
posibilidad de representar dos valores distintos, lo cual resulta insuficiente
en la mayoría de los casos. Por ejemplo, si deseamos representar las letras
del alfabeto mediante bits, necesitamos mayor capacidad de representación.
Para lograr esto debemos utilizar un grupo de bits de manera tal que las
distintas combinaciones de valores formadas por los bits del grupo pueden
servir para representar una mayor cantidad de datos. La cantidad de
combinaciones distintas depende del tamaño del grupo de bits. La Tabla 1.2
muestra que con un grupo de dos bits se obtienen cuatro combinaciones
distintas y con un grupo de tres bits se pueden formar ocho combinaciones
distintas. En general, con un grupo de n bits pueden obtenerse 2𝑛
combinaciones distintas.

1 bit 2 bits 3 bits


0 00 000
1 01 001
10 010
11 011
100
101 Tabla 1.2 Combinaciones posibles formadas por
110 grupos de 2 y 3 bits.
111

En base al bit se distinguen además otras unidades: el byte y la


palabra.
El byte es el conjunto de bits que se tratan como una unidad. Aunque
originalmente el término se utilizaba en forma genérica para referirse a un
conjunto de bits sin ser indicativo de una cantidad específica, actualmente
el término byte se utiliza para denominar un conjunto de ocho bits, de ahí
que también suele denominarse octeto.
La palabra se puede definir como la cantidad de bits que la
computadora utiliza en forma simultánea para realizar ciertos procesos
internos, tales como la transferencia de datos entre sus componentes, el
acceso a memoria o las operaciones aritméticas. La cantidad de bits que
forman una palabra se denomina tamaño, longitud o ancho de palabra. Las
computadoras modernas normalmente poseen un tamaño de palabra de 16,
32 o 64 bits. También suele hacerse referencia al tamaño de palabra
expresándolo en bytes (palabra de dos bytes, palabra de cuatro bytes, etc.).

6
Estructura y Funcionamiento de Computadoras I Unidad 1 - Conceptos introductorios

En resumen…
 BIT es la unidad elemental de datos que se puede almacenar en el interior de una computadora y
puede representar el valor 0 o 1 (digito binario).
 BYTE es el conjunto de ocho bits tratados como una unidad. Permite representar 256 combinaciones
diferentes.
 PALABRA es el conjunto de bits que se utiliza para realizar ciertas operaciones internas, como leer o
escribir en la memoria.

Figura 1.2 Relación entre bit, byte y


palabra.

7
Los distintos usos del bit
El concepto de bit es sencillo de interpretar, sin embargo esta simplicidad oculta las distintas facetas que
implica el uso de un dígito binario. Se muestra a continuación una breve descripción de los distintos usos
que se derivan del bit en relación al funcionamiento interno de computadoras.
Los bits como números. El sistema de numeración binario utiliza solamente dos dígitos (0 y 1) para
representar valores numéricos y realizar operaciones aritméticas entre ellos, esencialmente igual que el
sistema decimal que usamos cotidianamente. Por otra parte, el funcionamiento interno de una
computadora se basa en dispositivos que sólo operan en dos estados distintos. Esta característica
permite utilizar cada uno de estos estados para representar los dígitos del sistema de numeración binario
0 y 1. Como veremos más adelante al tratar los sistemas de numeración, los números expresados en
binario pueden convertirse a su equivalente en sistema decimal y viceversa. Estas conversiones son
realizadas en forma automática por circuitos internos especializados de la computadora gracias a lo cual
el procesamiento de números binarios es totalmente “invisible” para el usuario humano.
Los bits como valores lógicos. La lógica proposicional es binaria. Sus resultados se reducen a dos valores
posibles: verdadero o falso. Por esta razón, un bit puede representar el valor de una variable lógica.
Relacionando variables lógicas mediante operaciones de conjunción, disyunción o complemento (algebra
de Boole) podemos definir funciones lógicas con el fin de obtener los valores binarios de salida
requeridos ante los valores binarios de las entradas. Su importancia radica en que los circuitos internos
de una computadora en realidad sólo implementan funciones lógicas y gracias a ellas puede obtenerse el
funcionamiento deseado.
Los bits como códigos de datos. Al tomar los bits en conjuntos de tamaño definido, puede generarse
distintas combinaciones. Cuando estas combinaciones o patrones de bits se utilizan para representar
elementos de otro conjunto, se forma un código binario. Por ejemplo, un grupo de siete bits puede
generar 128 combinaciones distintas. Esta cantidad es suficiente para asignar un código a cada una de las
letras mayúsculas, minúsculas, números y caracteres especiales usados en la comunicación escrita. En
forma similar, un grupo de bits también puede formar códigos para colores, sonidos y cualquier otro tipo
de datos que pueda llegar a procesar una computadora. De esta manera, los distintos elementos
representados por un código binario pueden ser procesados por los circuitos exclusivamente binarios de
la computadora. Más adelante veremos los sistemas de representación utilizados comúnmente para el
tratamiento de caracteres y números.
Los bits como códigos de instrucciones. Hemos visto cómo los bits pueden representar datos, es decir,
información de una fuente externa que será procesada por la computadora. Otro tipo de información
que debe procesar una computadora son los programas que le indican qué hacer con los datos que le
proporcionamos. Todos los programas que deban ser ejecutados por una computadora se realizan en
base a instrucciones elementales de lenguaje de máquina. Cada instrucción elemental puede indicar, por
ejemplo, una operación aritmética, una transferencia de datos hacia memoria o una ruptura de
secuencia. El lenguaje máquina codifica las instrucciones en forma binaria de manera tal que cuando la
Unidad Central de Procesamiento lee una instrucción, recibe una combinación de bits. Los circuitos
internos de la Unidad Central de Procesamiento se encargan de reconocer la combinación de bits dentro
del juego de instrucciones diseñado por el fabricante y de acuerdo a la instrucción de que se trate, la
Unidad Central de Procesamiento genera las señales necesarias para ejecutarla. Más adelante veremos
con detalle los pasos que realiza la Unidad Central de Procesamiento para ejecutar las instrucciones.

8
Estructura y Funcionamiento de Computadoras I Unidad 1 - Conceptos introductorios

1.5 Señales digitales y analógicas


En la sección anterior se estableció que una computadora es una
máquina electrónica, o sea que su funcionamiento implica el uso de la
energía eléctrica. Esto significa que el hardware de las unidades básicas de
la computadora, transmite, procesa y memoriza datos e instrucciones
utilizando señales eléctricas.
En lo que respecta a los temas que trataremos, una señal eléctrica es
un voltaje o tensión eléctrica que representa datos mediante sus valores o
mediante sus variaciones. Una señal eléctrica puede ser digital o analógica,
describiremos a continuación cada uno de estos tipos.

1.5.1. Señales digitales


Se dice que una señal es digital, cuando toma valores discretos, es
decir, su variación no es continua. Esto significa que los cambios de valor
de la señal digital se producen "a saltos" entre ciertos valores permitidos
que puede tomar. Por esta razón, este tipo de señales también se conocen
como señales discretas. La característica de las señales digitales o discretas
y de los fenómenos digitales en general, es que entre dos estados,
posiciones o valores definidos, los valores intermedios no pueden
presentarse o no son válidos.

Ejemplo 1.1
Por ejemplo, considere como variable la “cantidad de alumnos presentes en clase” mostrado en la Figura 1.3.
Por definición, esta variable tomará valores enteros. Si en un momento dado existen 15 alumnos presentes, al
llegar un alumno más a la clase, la cantidad pasará a ser de 16 alumnos, es decir, la variable pasa del valor 15 al
16 sin tomar valores intermedios. Obviamente, debido a la magnitud que se describe -cantidad de alumnos-la
variable no puede tomar valores como por ejemplo 15,20.

Figura 1.3 Ejemplo de variable digital


decimal.

9
Ejemplo 1.2
Es sencillo reconocer una variable digital cuando se trata de una operación de conteo, ya que en ese caso la
variable tomará valores enteros, como en el Ejemplo 1.1. Sin embargo, no debe confundirse variable discreta
como aquella que sólo puede tomar valores enteros.
Para aclarar esto, suponga una escalera construida con escalones de 20,15 cm de altura. Al ascender al primer
escalón, la altura respecto del piso será 20,15 cm, el segundo escalón se encontrará a una altura de 40,30 cm,
el tercero a 60,45 cm y así sucesivamente. Observe que la variable que describe la “altura de los escalones
respecto del piso”, es una variable digital, aunque sus valores no sean cantidades enteras. Por ser una variable
digital, existen valores que la variable no puede tomar, como por ejemplo 30 cm, ya que esa altura es mayor a
la altura del primer escalón pero menor a la altura del segundo escalón, por lo tanto dicho valor no es válido
para esa variable porque que no corresponde a una “altura de los escalones respecto del piso”.

En los ejemplos dados, además de tratarse de variables discretas, los


valores descriptos son del tipo decimal, ya que las variables toman valores
expresados en el sistema de numeración decimal.
Existen otros fenómenos que pueden ser descriptos con solo un par de
valores, como por ejemplo la posición de una llave de luz (encendido o
apagado), o una cerradura (abierta o cerrada), o un circuito eléctrico (con
corriente o sin corriente). A este tipo de señales, que solo pueden tomar dos
valores discretos, se las denomina señales digitales binarias. Este tipo de
señales binarias, capaces de representar sólo dos estados, son las que
interesan en el procesamiento computacional, ya que internamente la
máquina sólo procesa, transmite y memoriza ceros y unos. Los circuitos
electrónicos de una computadora representan estos dos valores mediante
dos niveles de voltaje diferentes, denominados comúnmente nivel alto y
nivel bajo.

Figura 1.4 Señal eléctrica digital


binaria que representa los valores
lógicos 0 y 1.

Los niveles de voltaje que representan eléctricamente los valores


lógicos 0 y 1 dependen de la tecnología elegida para la realización de los
circuitos. La Figura 1.4 muestra la representación gráfica de una señal
digital binaria en la cual el valor 0 voltios corresponde al 0 lógico y el valor
+5 voltios corresponde al 1 lógico.
En realidad, los dos estados o niveles no se representan por valores
exactos de voltaje sino por franjas alrededor de estos valores. La zona
intermedia es una zona de indeterminación y la señal no debe adoptar
valores en este intervalo en forma estable, ya que de ocurrir esto no podría
asegurarse el valor lógico con el que la señal será interpretada. Cuando la
tensión eléctrica cambia de 0 a 5 voltios, la conmutación se produce en un
intervalo muy corto de tiempo, de modo que los valores intermedios no son
detectados por los circuitos. La Figura 1.4 muestra un ejemplo de
conmutación de 0 a 1 que se produce en el instante de tiempo t1.

10
Estructura y Funcionamiento de Computadoras I Unidad 1 - Conceptos introductorios

Los sistemas que procesan señales digitales se conocen como sistemas


digitales; la computadora es un claro ejemplo de sistema digital donde
todas las señales físicas que se usan para la representación y el
procesamiento de datos son señales digitales binarias.

1.5.2. Señales analógicas


Se dice que una señal es analógica, cuando su cambio de un valor a
otro ocurre en forma continua, pasando por todos los valores intermedios.
En la práctica, las señales analógicas se encuentran acotadas a un rango de
variación determinado por un valor máximo y un mínimo. Lo que
caracteriza a una señal de este tipo es que puede adoptar cualquier valor
dentro de su rango de variación.
Por ejemplo, considere la gráfica mostrada en la Figura 1.5 que
representa las temperaturas registradas durante dos días. En este caso, la
señal de temperatura presenta variaciones en un rango de 16 C a 38 C.
En el intervalo de tiempo mostrado en la gráfica, la temperatura puede
presentar cualquier valor entre estos dos límites ya que para cambiar de
un valor a otro, toma todos los valores intermedios, sin saltos.

Figura 1.5 Ejemplo de señal


analógica o continua: variación
de temperatura ambiente.

Al igual que la temperatura, otras magnitudes físicas como la presión,


la velocidad, la aceleración, etc. son analógicas, es decir, pueden tomar
cualquier valor dentro de un rango determinado, lo cual implica que sus
variaciones pueden ser muy pequeñas.
Por otra parte, existen diversos dispositivos que permiten medir
magnitudes físicas obteniendo un valor proporcional de voltaje eléctrico. En
otras palabras, puede obtenerse una señal eléctrica analógica que
representa la variación de dichas magnitudes físicas. La Figura 1.6 muestra
la señal eléctrica que se obtiene con un dispositivo sensor que mide los
valores de temperatura de la Figura 1.5. El sensor transforma los valores de
temperatura entregando un voltaje eléctrico cuyo valor es proporcional a la
temperatura medida. En el ejemplo mostrado en Figura 1.6, el sensor
entrega un valor de 4 volts cuando la temperatura es de 16º y un valor de
9,50 volts cuando la temperatura es de 38º.

11
Figura 1.6 Ejemplo de señal
eléctrica obtenida mediante un
sensor de temperatura.

Los sistemas en los que se procesan señales analógicas se conocen


como sistemas analógicos. Ejemplos de estos sistemas son los sensores de
señales fisiológicas que se utilizan en electrocardiología o
electroencefalografía.

1.5.3. Señales digitales binarias vs. señales analógicas


Ventajas
 Las señales digitales tiene mayor inmunidad al ruido. Se denomina ruido
a toda señal anómala no deseada, de la misma naturaleza que la señal
original, que puede mezclarse con ella actuando como perturbación, de
forma tal que altera la señal original en forma inevitable. El ruido afecta
a las señales analógicas pues se superpone a ellas, deformándolas de
manera imprevisible y provocando con ello pérdida de información. Por
el contrario, una señal digital binaria puede resultar perturbada por el
ruido sin perder su información, es decir, es inmune al ruido.

Figura 1.7 Distorsión de señal debida al ruido eléctrico.

La Figura 1.7 muestra la distorsión de una señal eléctrica analógica y la


distorsión de una señal eléctrica digital. En el caso de la señal digital, a
pesar de la perturbación, aún puede distinguirse el valor 1 del 0. Esto
implica que las señales digitales se transmiten mejor. Obviamente,
existe un límite, ya que cuando la perturbación es muy grande, el valor

12
Estructura y Funcionamiento de Computadoras I Unidad 1 - Conceptos introductorios

lógico de la señal puede cambiar. Otra posibilidad es que el valor de la


señal se ubique en la zona de indeterminación, con lo cual no podría
asegurarse si los circuitos lo interpretarán como 0 o como 1.
 Las señales digitales se memorizan más fácilmente: Comparativamente,
es más simple realizar sistemas con dos estados estables, capaces de
almacenar un dígito binario. Por el contrario, memorizar un valor de una
señal analógica es mucho más complejo.
 Los sistemas digitales son más confiables. En la práctica el
funcionamiento de los dispositivos es más confiable si sus componentes
internos funcionan con valores discretos, ya que de esta manera los
valores pueden distinguirse fácilmente. Esta confiabilidad es mayor aun
cuando los valores discretos se restringen solamente a dos estados
posibles, claramente diferenciados entre sí. Esto se debe a que en la
práctica resultan más confiables los circuitos electrónicos que funcionan
con dos niveles de voltaje claramente distintos.
 Por otra parte, la lógica humana es binaria. Las proposiciones lógicas
darán como resultado verdadero-falso o sí-no.

Desventajas:
 La desventaja de las señales digitales es que, en general, se necesitan
varias señales para representar datos en forma digital mientras que en
forma analógica se puede representar con una sola señal analógica. No
obstante ello, esta desventaja cada vez se hace menos significativa
debido a la gran capacidad de almacenamiento desarrollada en los
últimos años.

Conversiones de señales: A/D y D/A


Si bien la computadora es una máquina digital, debe manejar señales
analógicas cuando los datos son tratados por periféricos analógicos. Por
ejemplo:
 Periféricos de comunicación: el módem telefónico maneja señales
eléctricas analógicas para el envío de datos por vía telefónica.
 Periféricos de entrada: el escáner ingresa los datos de una imagen
cuando dicha imagen es barrida por el dispositivo que va
"leyendo" la variación continua de los distintos tonos de colores.
 Periféricos de salida: pueden graficarse resultados con trazos de
línea continua en una impresora de inyección de tinta o un
plotter.
Como la computadora es una máquina digital, en estos casos es
necesario realizar la conversión correspondiente. Así, un periférico de
entrada que opera con datos representados por señales analógicas (como el
módem, mouse, escáner), debe realizar la conversión correspondiente a
señales digitales para que dichos datos puedan ser interpretadas por la
computadora. Este proceso se denomina conversión analógico/digital, o
simplemente conversión A/D. Similarmente, cuando un periféricos de salida
requiere señales de tipo analógico para mostrar los resultados, las señales
internas digitales generadas por la computadora se deben transformar a
señales analógicas. Este proceso se denomina conversión digital/analógica,
o simplemente conversión D/A.

1.5.4. Ventajas de usar señales digitales binarias


Ya se estableció en el punto anterior la ventaja de usar señales
digitales en lugar de analógicas, pero ¿por qué usar solo señales digitales
con dos niveles y no con diez? O sea, ¿por qué trabajar con sistema de

13
numeración binario si podemos hacerlo con sistema decimal, que nos es
conocido y de uso habitual?
La respuesta es sencilla y se encuentra en los componentes
electrónicos elementales de la computadora: los transistores. Hacer operar
a los transistores con solo dos estados, es tecnológicamente más simple y
más confiable que hacerlos trabajar con diez valores de corriente o tensión
eléctrica distintos, con el fin de generar diez estados diferentes que
representen los dígitos del 0 al 9 del sistema decimal.

1.6 Transmisión de datos


En sentido genérico, la transmisión consiste en la comunicación entre
dos dispositivos a través de un canal. El esquema más sencillo de
comunicación consta de un dispositivo emisor o transmisor y un solo
dispositivo que actúa como receptor. El transmisor es el dispositivo que
posee o genera los datos y los envía a través del canal hacia el dispositivo
receptor. El canal es el medio por el que se traslada la señal desde el
dispositivo transmisor al dispositivo receptor. En sistemas más complejos
pueden existir varios receptores y transmisores conectados al mismo canal.
Existen diversas formas de implementar la transmisión. Según el tipo
de señal utilizada, la transmisión puede ser digital o analógica y de acuerdo
al canal, la transmisión puede realizarse mediante señales eléctricas a
Figura 1.8 través de conductores, utilizando ondas electromagnéticas propagadas a
Representación de
través del espacio o por medio de señales de luz encausadas por fibra
valores lógicos
óptica. La elección entre estas diversas formas depende del tipo de canal y
mediante niveles de
de factores como la distancia que separa los dispositivos, la velocidad de
voltaje.
transferencia, perturbaciones posibles, etc.
Nos centraremos en la descripción de la transmisión de datos entre las
unidades que componen una computadora. En ese ámbito siempre
trataremos con señales digitales debido a que el funcionamiento de la
computadora se basa en componentes que operan en forma binaria.
Entre las posibles formas, solamente describiremos la transmisión por
medio de señales eléctricas, ya que esta es la manera en que se transmiten
los bits entre las unidades internas de la computadora (Unidad Central de
Procesamiento y Unidad de Memoria).
Las unidades internas, tratan con datos digitales y la transmisión de
datos entre ellas siempre se realiza en forma digital, transfiriendo bits por
medio de señales eléctricas a través de un canal formado por una o más
líneas conductoras. Sin embargo, cuando la computadora opera con cierto
tipo de periféricos, puede ser necesario recurrir a la transmisión analógica,.

1.6.1. Codificación de señal


Para realizar una transmisión digital por medio de señales eléctricas,
se utilizan voltajes que varían entre distintos niveles de acuerdo al valor del
bit a transmitir. El uso de una característica determinada de la señal
eléctrica y el criterio empleado para representar los valores lógicos 0 y 1 se
denomina codificación de señal.
Una forma simple de codificación de señal para representar los valores
lógicos 0 y 1 consiste en generar sobre el canal un nivel de voltaje nulo o
BAJO para representar el 0 y un nivel de voltaje ALTO para representar el
1, como se muestra en la Figura 1.8.

14
Estructura y Funcionamiento de Computadoras I Unidad 1 - Conceptos introductorios

Existen otros métodos que asocian de manera diferente los niveles de


voltaje, como se muestra en la Figura 1.9, donde el valor 15 volts representa
el 0 lógico y el valor -15 volts representa el 1 lógico.
Otros métodos de codificación de señal representan los valores lógicos
mediante cambios entre niveles, de manera que el cambio de un nivel a otro
representa el 0 lógico y la ausencia de cambio representa el 1 lógico.

Figura 1.9 Representación de los


valores lógicos 0 y 1 mediante señales
de tensión eléctrica con valores positivo
y negativo.

1.6.2. Transmisión en serie


En el modo de transmisión serie los bits son enviados por un solo
cable, uno por vez, formando una sucesión. Los valores 0 y 1 se determinan
por el nivel de tensión y la cantidad de tiempo que permanece la línea en
cada nivel. Por ejemplo, como se observa en la Figura 1.10, si la
transmisión de cada bit dura un milisegundo, entonces la transmisión a
nivel ALTO con una duración de dos milisegundos indican dos 1 lógicos
consecutivos.

Figura 1.10 Transmisión de datos en serie.

Otro ejemplo de transmisión en serie se muestra en la Figura 1.9,


donde se utiliza una codificación de canal en la cual un 1 lógico se
transmite con una tensión de -15 volts, mientras que el 0 lógico se
transmite con un valor de 15 volts. De acuerdo a las tecnologías usadas y
otras consideraciones prácticas, estos niveles de tensión pueden ser
distintos, pero independientemente de los detalles técnicos que se hayan
tenido en cuenta en el diseño e implementación, lo esencial es disponer de
dos estados distintos para representar en forma correspondiente los valores
lógicos 0 y 1: uno de los estados representa el 0 lógico y el otro estado
representa el 1 lógico.
El hecho de transmitir por un solo cable, permite el uso de valores de
voltaje mayores y por lo tanto se logra una transmisión segura a largas
distancias sin perder la integridad de la señal.

15
1.6.3. Transmisión en paralelo. Concepto de bus
Cuando la transmisión se realiza utilizando varias líneas conductoras,
como muestra la Figura 1.11, es posible enviar varios bits en forma
simultánea. Este tipo de transmisión se denomina transmisión en paralelo.
Se denomina bus al conjunto de líneas conductoras que pueden ser
compartidos por varios dispositivos, a los fines de la transmisión de datos
entre ellos.

Figura 1.11 Transmisión de datos en paralelo.

El hecho de poder transmitir varios bits simultáneamente hace que


este tipo de transmisión presente mayor velocidad de transferencia de datos
que la transmisión serie convencional. Sin embargo, existe una desventaja:
la transmisión en paralelo solo es segura en cortas distancias. Esto se debe
a que la interferencia electromagnética entre los conductores del conjunto
es mayor dado que se encuentran próximos entre sí y por lo tanto a largas
distancias se corre el riesgo de distorsionar los datos transmitidos. Debido a
sus características de velocidad, la comunicación entre las unidades
internas de la computadora se realiza en paralelo. En este caso las señales
no se distorsionan debido a que las unidades internas se encuentran
ubicadas a distancias cortas.

En resumen…
 Cuando se tiene una sola línea de transmisión y se transmiten bits unos detrás de otros, se llama
transmisión en serie y un "0" o un "1" se determina por el nivel de tensión eléctrica utilizado y la
cantidad de tiempo que permanece la línea en este nivel.
 La transmisión en paralelo consiste en la transmisión simultánea de bits a través de varios hilos o líneas
de transmisión. El “0” y el “1” en cada hilo conductor se reconoce por el nivel de tensión eléctrica
aplicado al hilo (0 volt; 5 volt).

Vale aclarar que en la actualidad el uso de transmisiones en serie de alta


velocidad (por ej. USB, FireWire, SATA), sumado a la mayor simplicidad de
conectores y cables, hace que en la comunicación con periféricos la
transmisión serie se encuentre más difundida que la transmisión en
paralelo.

16
Estructura y Funcionamiento de Computadoras I Unidad 1 - Conceptos introductorios

1.7 Descripción de las unidades funcionales básicas de una


computadora
Hemos presentado en la sección Estructura funcional de una
computadora, en una visión muy general compuesta por las siguientes
unidades básicas:
• Unidad de Memoria Principal (MP), que contiene almacenados
instrucciones y datos,
• Unidad Central de Procesamiento (CPU), que ejecuta el programa,
• Unidad de Entrada y Unidad de Salida, para el intercambio de datos con
el exterior.

Figura 1.12 Estructura


funcional básica de una
computadora.

Describiremos a continuación los aspectos principales de cada una de


estas unidades básicas.

1.7.1. Unidad Central de Procesamiento (CPU)


La Unidad Central de Procesamiento es la encargada de leer las
instrucciones de la memoria, procesarlas, realizar los cálculos solicitados y
guardar en la memoria los resultados de dichas operaciones. También se
encarga de establecer las comunicaciones con el exterior a través de las
Unidades de Entrada y Salida. Todas estas funciones las realiza a través de
dos unidades: La Unidad Aritmético-Lógica (UAL) y la Unidad de Control (UC).

Unidad Aritmético-Lógica (UAL)


La Unidad Aritmético-Lógica es la encargada de realizar las
operaciones aritméticas (sumas, restas, etc.) y lógicas (comparar dos
números, realizar operaciones del álgebra de Boole, etc.) solicitadas por el
programa en ejecución. Su funcionamiento es comandado por la Unidad de
Control, es decir, la UAL opera con los datos que recibe siguiendo órdenes de
la Unidad de Control.

Unidad de Control (UC)


Sintéticamente, el funcionamiento de la Unidad de Control consiste en
extraer de la Unidad de Memoria Principal la instrucción a ejecutar,
identificarla, establecer las señales eléctricas correspondientes para
ejecutarla y luego procesar la instrucción siguiente. Por ejemplo, si se trata
de una instrucción de procesamiento de datos, la UC establece las señales
que indican a la UAL las operaciones aritméticas o lógicas que debe realizar,
extrae de la memoria principal los datos implicados por la instrucción;
desencadena el tratamiento de dichos datos en la UAL y al finalizar,

17
continúa con la instrucción siguiente. Esta nueva instrucción puede
consistir, eventualmente, en almacenar el resultado en la Memoria Principal,
para lo cual la UC lee la instrucción, la identifica, la ejecuta estableciendo
las señales necesarias para esa instrucción y luego busca la instrucción que
sigue. Es decir que, la UC va repitiendo en forma sucesiva estos pasos para
cada nueva instrucción, hasta finalizar el programa.

Se puede deducir de lo expuesto, que la función de la Unidad de Control es


la de ejecutar instrucciones y dar órdenes al resto de las unidades,
controlando de esta manera el funcionamiento de todo el sistema. Envía
órdenes externas de lectura/escritura a la memoria y unidades de
entrada/salida y envía órdenes internas a la UAL para que esta realice las
operaciones correspondientes.
La Unidad de Control recibe señales de un reloj, que es un generador
de señales eléctricas en forma de pulsos que sincronizan todas las
operaciones elementales de la computadora. El reloj genera los pulsos a
intervalos regulares y con ellos marca el ritmo de trabajo de la CPU.
Mientras mayor es la cantidad de pulsos generados por segundo más rápido
trabaja la computadora. A esta velocidad de trabajo se la llama frecuencia
de reloj. Se ampliarán estos conceptos más adelante.

1.7.2. Unidad de Memoria Principal (MP)


La Memoria Principal es el dispositivo donde se almacenan
temporalmente tanto los datos como los programas que la CPU está
procesando o va a procesar en un determinado momento. El programa debe
ser almacenado en la Unidad de Memoria antes de comenzar su ejecución.
La Memoria Principal es una parte de la Memoria interna, denominada
así para diferenciarla de los dispositivos de almacenamiento externo, que
denominaremos memoria externa.

Figura 1.13
Esquema general de
la CPU y la Memoria
Principal.

La Memoria Principal está dividida en un determinado número de


celdas de memoria. Cada celda almacena un conjunto de bits, de manera
tal que la combinación formada por dicho conjunto de bits representa un
dato o una instrucción. La forma de referenciar el contenido de las celdas es
por medio de su ubicación o dirección. Cuando se necesita leer o escribir en
la memoria se debe especificar la dirección de la celda, indicando con ello la
celda con la cual se va a efectuar la operación.

18
Estructura y Funcionamiento de Computadoras I Unidad 1 - Conceptos introductorios

Figura 1.14 Esquema de la Memoria


Principal. Dirección y contenido de una
celda de memoria. Ejemplo para una
memoria de 256 celdas de 8 bits.

La MP almacena dos clases de información: las instrucciones del


programa que la computadora debe ejecutar y los datos a tratar, llamados a
menudo operandos, con los cuales efectuarán los tratamientos dictados por
las instrucciones. Estas dos clases de elementos son solicitados por la CPU
a la memoria para ser procesados por sus dos unidades: la Unidad de
Control (UC), para las instrucciones y la Unidad Aritmético-Lógica (UAL) para
las operaciones con datos.

1.7.3. Unidades periféricas o Periféricos


Tal como se ha definido hasta aquí, la computadora puede ejecutar un
programa inicialmente almacenado en la Memoria Principal, sobre datos
almacenados en la Memoria Principal y a medida que se obtienen
resultados, guardarlos en Memoria Principal. Ahora bien, es preciso dotarla
de medios para comunicarse con el exterior: es el papel reservado a las
Unidades Periféricas.
Las Unidades Periféricas de la computadora son el conjunto de las
Unidades de Entrada, las de Salida y las de Entrada/Salida. Estas
unidades se conectan a la Unidad Central de Procesamiento o directamente
a la Memoria Principal a través de circuitos especializados en la gestión de
transferencia de datos, llamados interfaces o enlaces a periféricos (ver
Figura 1.16). Cuando la Unidad de Control procesa instrucciones de
intercambio de datos (instrucciones de entrada/salida), se ocupa de
gobernar las unidades periféricas.

Unidades de Entrada: Son los dispositivos que se utilizan para introducir


datos e instrucciones a la computadora. En estas unidades los datos de
entrada se transforman en señales binarias de naturaleza eléctrica. Una
computadora puede tener varias unidades de entrada. Son unidades de
entrada: el teclado, el mouse, el micrófono, el escáner y la webcam.

Unidades de Salida: Son los dispositivos que permiten visualizar los


resultados de los programas ejecutados en la computadora. En estas
unidades se transforman las señales eléctricas binarias en datos
entendibles por el usuario. Una computadora puede tener varias unidades
de salida. Son unidades de salida: la impresora, el plotter o graficador, el
monitor y los parlantes.

19
Unidades de Entrada/Salida Son dispositivos que funcionan en forma
bidireccional, es decir, en algunos instantes entregan datos a la
computadora y en otros pueden recibir datos provenientes de ella. Se
distinguen dentro de este grupo dos tipos:
• Periféricos de Almacenamiento Masivo: Una característica de la Memoria
Principal es la rapidez con la que se puede leer o escribir en ella, pero no
tiene gran capacidad para almacenar datos. Como veremos en detalle
más adelante, otra característica es que una parte de la Memoria
Principal es volátil, es decir, pierde su contenido al interrumpirse el
suministro de energía eléctrica. Por lo tanto, para almacenar datos
masivamente se usan otros tipos de memoria, tales como discos ópticos
o magnéticos que son más lentos pero tienen más capacidad que la
Memoria Principal. A estas memorias también se las conoce como
memorias auxiliares, memorias externas o memorias secundarias. Los
datos guardados en memoria externa permanecen almacenados hasta
que el usuario decide borrarlos.
• Periféricos de Comunicación: cuando es necesario comunicar dos
computadoras se deben utilizar dispositivos de conexión en red. Si las
computadoras se encuentran próximas entre sí, los dispositivos de red y
las computadoras se conectan mediante cables. Si por el contrario, las
computadoras se encuentran muy distanciadas una de otra, el tendido
de cables resulta costoso y en tal caso una buena solución es utilizar
cables telefónicos o radio enlace. Cuando se utiliza cualquiera de estos
métodos, es necesario convertir la señal digital que manejan las
computadoras a analógica para realizar la transmisión. Esta tarea está a
cargo de un dispositivo electrónico denominado MODEM; el equipo en el
otro extremo del canal que recibe la señal transmitida necesitará de otro
MODEM que realice el trabajo inverso, es decir convertir la señal
analógica a digital para que pueda ser interpretada por la computadora.

Figura 1.15 Transmisión de datos mediante módem.

20
Estructura y Funcionamiento de Computadoras I Unidad 1 - Conceptos introductorios

Figura 1.16 Esquema


general de una
computadora.

En resumen…
 Se puede describir a una computadora como un conjunto ensamblado de unidades diferentes, cuyo
funcionamiento viene dictado por el programa registrado en la Memoria Principal.
 La Unidad de Control lee una por una las instrucciones del programa registrado en la Memoria Principal
y gobierna la ejecución de dichas instrucciones utilizando las demás unidades según sea necesario.
 Cuando la instrucción es una operación de cálculo, la Unidad de Control ordena a la Unidad Aritmético-
Lógica que realice la operación.
 Si la instrucción es una transferencia de datos con el exterior, la Unidad de Control comanda los
Enlaces a Periféricos, para que realicen la conexión con los Periféricos.

1.8 Modelo de Von Neumann


En el funcionamiento de cualquier computadora actual están
incorporados los conceptos fundamentales que fueron introducidos por
John Von Neumann y que promovieron el paso decisivo hacia la
automatización del tratamiento digital de la información.
Para dimensionar la importancia de estos conceptos debe tenerse en
cuenta que las primeras máquinas eran fabricadas para cumplir tareas
específicas y no eran programables. Estas máquinas eran experimentales y
en ese entonces la memoria se utilizaba para almacenar datos solamente. El
programa formaba parte integral de la estructura de la máquina, no era
grabado en memoria, por eso se dice que eran de programa externo. Para
que estas máquinas pudieran hacer una tarea diferente (por ejemplo, otro
tipo de cálculo), era necesario reestructurar, rediseñar o construir una
máquina nueva. Estas primeras máquinas eran experimentales y en el
mejor de los casos, si la reprogramación era posible, implicaba

21
modificaciones en el hardware, un proceso muy laborioso en los primeros
modelos.
En esta época John Von Neumann se involucró en la tarea de diseñar
una máquina con programa almacenado, lo cual permitiría contar con
una máquina genérica, resolviendo así el problema de tener que
reconfigurar la máquina para cada nueva tarea. En 1945, como miembro
integrante del proyecto ENIAC, Von Neumann describió en un informe el
diseño de una máquina de programa almacenado. La difusión de dicho
informe influenció decisivamente el diseño de los nuevos prototipos de la
época y dio origen a la estructura bajo la cual trabajan prácticamente todas
las computadoras actuales.
El diseño de las computadoras actuales se basa en estos conceptos
desarrollados por Von Neumann. Tal diseño se conoce con el nombre de
arquitectura de Von Neumann.
El modelo de Von Neumann, propone un diseño con las siguientes
características:
 Programa almacenado en memoria: El procesamiento de la
información se especifica en un espacio de memoria único, de lectura
y escritura, que contiene las instrucciones y los datos necesarios.
 Instrucciones de ruptura de secuencia: La ejecución de las
instrucciones se produce de manera secuencial; después de ejecutar
una instrucción se ejecuta la instrucción siguiente que hay en la
memoria principal, pero se puede alterar la secuencia de ejecución
utilizando instrucciones de ruptura de secuencia. Estas
instrucciones, llamadas de salto o de ruptura de secuencia,
automatizan la bifurcación en la ejecución del programa en base a la
evaluación de una condición sobre un resultado obtenido (por
ejemplo: si es positivo o negativo, si es nulo, si es mayor que cierto
valor, etc.).

1.9 Parámetros característicos de una computadora digital


Es muy difícil caracterizar las prestaciones de las computadoras
digitales, puesto que dependen de muchos factores, entre los que hay que
destacar el entorno en el que se usen, las instrucciones de máquina que
tienen, el grado de utilización efectiva que permiten, etc. Sin embargo,
usualmente se emplean una serie de parámetros para especificar sus
características, ellos son: capacidad de almacenamiento, longitud de
palabra, tiempo de acceso, ancho de banda y velocidad del procesador. Se
analizarán a continuación con más detalle cada uno de ellos.

1.9.1. Capacidad de almacenamiento


La capacidad de almacenamiento hace referencia a la cantidad de
datos o instrucciones, expresada en bytes, que un dispositivo de memoria
puede guardar.
Debido a que el byte es una unidad relativamente pequeña, es
habitual expresar la capacidad de almacenamiento con múltiplos. Por
ejemplo, en la Memoria Principal o en las unidades de almacenamiento
masivo es frecuente expresar la capacidad en GB (Gigabytes).
Los múltiplos del byte se indican utilizando los mismos prefijos que
utiliza el Sistema Internacional (SI), aunque existan algunas diferencias

22
Estructura y Funcionamiento de Computadoras I Unidad 1 - Conceptos introductorios

debido a que los prefijos del SI se basan en potencias de 10. En la Tabla 1.3
se realiza la comparación entre potencias de 10 del SI y las
correspondientes potencias de 2 que alcanzan los valores más próximos.
A pesar de que existe una diferencia respecto al SI, en Informática se
acostumbra expresar las medidas de capacidad de almacenamiento
utilizando potencias de 2 por razones prácticas, ya que se trata con
sistemas binarios.

Prefijo Potencia de 10 (SI) Potencia de 2 más próxima

Kilo 103 = 1000 210 = 1024

106 = 103 × 103 220 = 210 × 210


Mega = 1000 × 1000 = 1024 × 1024
= 1 000 000 = 1 048 576
109 = 103 × 106 230 = 210 × 220
Giga = 1000 × 1000 × 1000 = 1024 × 1024 × 1024
= 1 000 000 000 = 1 073 741 824
1012 = 103 × 109 240 = 210 × 230
Tera = 1000 × 1000 × 1000 × 1000 = 1024 × 1024 × 1024 × 1024
= 1 000 000 000 000 = 1 099 511 627 776

Tabla 1.3 Prefijos y potencias de 10 del SI y las potencias de 2 más próximas.

La Tabla 1.3 muestra la relación entre los prefijos Kilo, Mega, Giga y
Tera. Puede observarse que entre ellos, el factor multiplicador en el SI es
1000, pero al utilizar potencias de 2 el factor multiplicador adoptado es
1024, por tratarse del valor más próximo a 1000.
Al utilizar los prefijos del SI para formar los múltiplos del byte,
obtenemos las equivalencias resumidas en la Tabla 1.4.

Unidad Símbolo Equivalencias en bytes

Kilobyte KB 1 KB = 1024 B = 210 B

Megabyte MB 1 MB = 1024 KB = 210 KB = 210 (210 B) = 220 B

Gigabyte GB 1 GB = 1024 MB = 210 MB = 210 (220 B) = 230 B

Terabyte TB 1 TB = 1024 GB = 210 GB = 210 (230 B) = 240 B

Petabyte PB 1 PB = 1024 TB = 210 TB = 210 (240 B) = 250 B

Exabyte EB 1 EB = 1024 PB = 210 PB = 210 (250 B) = 260 B

Zetabyte ZB 1 ZB = 1024 EB = 210 EB = 210 (260 B) = 270 B

Yottabyte YB 1 YB = 1024 ZB = 210 ZB = 210 (270 B) = 280 B


Tabla 1.4 Múltiplos del byte.

23
Los prefijos que se muestran en la Tabla 1.4 no se emplean solamente
con el byte sino que también pueden usarse con otras unidades. Así,
considerando que al indicar “b” imprenta minúscula nos referimos a BIT y
al indicar “B” imprenta mayúscula nos referimos a BYTE, tenemos que 1 KB
indica 1024 bytes y 1 Kb hace referencia a 1024 bits.

Ejemplo 1.3

¿Cuántos disquetes de 1,44 MB eran necesarios para copiar un archivo de 16400 Kb?
Para realizar el cálculo, deben utilizarse las mismas unidades. Expresando MB en Kb:
210 KB 8 Kb
1,44 MB = 1,44 MB × × = 11796,48 Kb
1 MB 1 KB
Operando con los valores expresados en Kb:
1 diskette → 11796,48 Kb
𝑥 → 16400 Kb
1 diskette × 16400 Kb
𝑥= = 1,39 diskettes
11796,48 Kb
Es decir que, para copiar un archivo de 16400 Kb, se requerían 2 diskettes.

1.9.2. Longitud o Ancho de palabra


Hemos definido la palabra como el conjunto de bits que la
computadora utiliza en paralelo al realizar ciertas operaciones internas,
como la transferencia de datos entre la CPU y la Memoria Principal. Por lo
tanto la longitud o ancho de palabra indica el número de bits que forman la
palabra. Este parámetro es indicativo de la potencia de la computadora ya
que, por ejemplo, mientras mayor sea la cantidad de bits que se manejan en
paralelo, los operandos que procese la UAL pueden ser números más
grandes o mayor la cantidad de datos que se pueden transferir entre CPU y
memoria en los procesos de lectura y escritura.

1.9.3. Tiempo de acceso


El tiempo de acceso de la Memoria Principal es el tiempo necesario
para realizar una operación de lectura o escritura. Este tiempo se mide
como el intervalo que transcurre entre el instante en que se da la dirección
concreta de la celda y el instante en que el dato se encuentra disponible
(lectura) o ha sido almacenado (escritura).
El orden de magnitud de los tiempos de ejecución de la CPU como así
también el de los tiempos de acceso a la Memoria Principal, no guarda
relación con los tiempos de la escala humana; por lo que normalmente se
expresa la duración de las operaciones en submúltiplos del segundo:

24
Estructura y Funcionamiento de Computadoras I Unidad 1 - Conceptos introductorios

Unidad Símbolo Equivalencias en segundos

1s 1s
milisegundo ms 1 ms = = = 10−3 s
1000 103

microsegundo µs 1 µs = 10−3 ms = 10−3 (10−3 s) = 10−6 s

nanosegundo ηs 1 ηs = 10−3 µs = 10−3 (10−6 s) = 10−9 s


Tabla 1.5 Submúltiplos del
segundo
picosegundo ps 1 ps = 10−3 ηs = 10−3 (10−9 s) = 10−12 s

Ejemplo 1.4

El milisegundo es igual a 10−3 segundos. ¿A cuántos milisegundos equivalen 2,3 segundos?

1 ms → 10−3 s
𝑥 → 2,3 s
1 ms × 2,3 s 2,3 ms
𝑥= = = 2,3 × 103 ms = 2300 ms
10−3 s 10−3
Luego: 2,3 segundos es igual a 2300 milisegundos.

1.9.4. Ancho de banda o velocidad de transferencia


El ancho de banda o velocidad de transferencia indica la cantidad de
datos (expresados en bytes) transferidos por unidad de tiempo entre un
dispositivo y otro.
La unidad de tiempo utilizada generalmente es el segundo. Por
ejemplo, decir que el ancho de banda del bus que comunica a la memoria y
la CPU es de 133 MB/s significa que en 1 segundo se pueden transferir 133
MB entre la memoria y la CPU.
Los tiempos de propagación de las señales eléctricas a lo largo de los
conductores y los tiempos de conmutación (cambios de nivel) se miden en
nanosegundos, excepcionalmente en cientos de picosegundos. Un impulso
eléctrico no puede propagarse más rápido que la velocidad de la luz en el
vacío, y esto corresponde aproximadamente a 30 cm por nanosegundo
(300.000 km/s).

25
Ejemplo 1.5

La velocidad de la luz es 300000 km/s. Expresar este valor en cm/ηs.


Convirtiendo km a cm:
103 m 102 cm
300.000 km = 300000 km × ×
1 km 1m
= 300000 × 105 cm = 30 × 104 × 105 cm
= 30 × 109 cm
Convirtiendo segundos a nanosegundos:
9
1 s = 10 ηs

Operando con los valores expresados en cm y ηs: 300000 km/s = 30 × 109 cm/109 ηs
30 × 109 cm → 109 ηs
𝑥 → 1 ηs
(30 × 109 cm) × 1 ηs
𝑥= = 30 cm
109 ηs
Luego, la velocidad de la luz es 30 cm/ηs.

Ejemplo 1.6

Si una línea transmite en serie a una velocidad de 2400 b/s. ¿Cuánto tardará en transmitir 1 MB?
Expresando los MB en bits:
1 MB = 220 B = 220 × 8 b
El tiempo que se tarda la línea para transmitir esta cantidad de bits es:
2400 b → 1 s
20
2 ×8b → 𝑥
(220 × 8 b) × 1 s
𝑥= = 3495,25 s
2400 b
Expresando el tiempo en minutos:
60 s → 1 minuto
3495,25 s → 𝑥
3495,25 s × 1 minuto
𝑥= = 58,25 minutos
60 s

Luego, la línea se tardará 58,25 minutos en transmitir 1 MB.

Ejemplo 1.7

Una computadora transmite datos a una velocidad de 200 MB/s. Exprese esta velocidad en Kb/ms.
Utilizando factores de conversión:
MB MB 210 KB 8 Kb 10−3 s 10−3 Kb
200 = 200 × × × = 200 × 210 × 8 Kb × = 1638,4
s 𝑠 1 MB 1 KB 1 ms ms ms
Luego, 200 MB/s es igual a 1638,4 Kb/ms.

26
Estructura y Funcionamiento de Computadoras I Unidad 1 - Conceptos introductorios

1.9.5. Velocidad del procesador


La velocidad del procesador determina la rapidez con la que se realizan
las acciones de la computadora, por ejemplo, la velocidad a la que se
ejecutarán los programas. Hoy en día, las computadoras personales
cuentan con procesadores de diversas marcas como AMD e Intel, entre
otras. Estos procesadores son similares, así que una referencia para
comparar su velocidad es observar la frecuencia del reloj.
Recordando lo antes dicho, el reloj es un generador de pulsos que
sirven para sincronizar las operaciones elementales de la computadora. Se
puede decir entonces que la frecuencia de reloj indica la velocidad a la que
una computadora realiza sus operaciones más básicas, como la suma de
dos números por parte de la UAL.
En Física el término frecuencia se utiliza para indicar la velocidad de
repetición de cualquier fenómeno periódico. Se define como el número de
veces que se repite un fenómeno en la unidad de tiempo. La unidad de
medida de frecuencia es el hercio o hertz (Hz), en honor al físico alemán
Heinrich Rudolf Hertz. Se define que 1 Hz es el valor de frecuencia de un
evento que tiene lugar una vez por segundo.
Alternativamente, se puede medir el tiempo entre dos ocurrencias del
evento. Este tiempo se denomina periodo o tiempo de ciclo y se relaciona con
la frecuencia de la siguiente manera:

1 1
𝑓= ; 𝑇=
𝑇 𝑓
Donde f es la frecuencia y T es el periodo o tiempo de ciclo.

En relación a la computadora, el término frecuencia de reloj se refiere a


la velocidad de funcionamiento del procesador principal, que se expresa en
millones de ciclos por segundo (Megahertz o MHz) o en miles de millones de
ciclos por segundo (Gigahertz o GHz). Cuando se dice que una computadora
es una máquina de 2,4 GHz, esto significa que la frecuencia de su reloj es
de 2,4 mil millones de ciclos por segundo.
Si bien es cierto que cuanto mayor es la frecuencia de reloj, mayor es
el número de ciclos por segundo y por ende, más rápido es el procesador, la
velocidad de funcionamiento de una computadora no depende únicamente
de la velocidad de su procesador, sino que entran en juego varios factores.
Por ejemplo, si una computadora tiene un procesador con una alta
frecuencia de trabajo pero su memoria principal es “lenta”, la velocidad de
funcionamiento de la máquina se verá afectada porque el procesador
quedará en espera cada vez que realice un acceso a memoria.

27
Ejemplo 1.8

Calcular el tiempo de ciclo correspondiente a una frecuencia de reloj de 500 MHz.


Si el reloj de la CPU opera a 500 MHz esto significa que por cada segundo generará 500 millones de ciclos
iguales; por lo tanto cada ciclo dura:

500 × 106 ciclos → 1 segundo


1 ciclo → 𝑥
1 ciclo × 1 s 10−6 s 1 µs
𝑥= = = = 0.002 µs = 2 × 10−3 µs = 2 ηs
500 × 106 ciclos 500 500

Luego, el tiempo de ciclo es: T = 2 ηs

Figura 1.17 Tiempo de ciclo de una señal de reloj de 500 MHz

También se puede plantear la solución de la siguiente manera:

1 1
𝑓= ; 𝑇=
𝑇 𝑓

1 1 1 1 10−6 s 1 µs
𝑇= = = 6
= 6
= = = 0,002 µs = 2 ηs
𝑓 500 MHz 500 × 10 Hz 500 × 10 ciclos/s 500 ciclos 500 ciclos
Entonces, cada ciclo dura 𝑇 = 2 ηs

Puede observarse que independientemente del valor de frecuencia, la


señal de reloj presenta un pulso en cada ciclo, es decir que en un intervalo
de tiempo cualquiera, la cantidad de ciclos es igual a la cantidad de pulsos.
Por lo tanto, resulta equivalente referirse a ciclos por segundo o pulsos por
segundo.

28
Estructura y Funcionamiento de Computadoras I Unidad 1 - Conceptos introductorios

En resumen…
 El reloj de la CPU genera señales eléctricas en forma de pulsos a intervalos regulares. Estos pulsos
sincronizan todas las operaciones elementales de la computadora.
 A la cantidad de pulsos generados por el reloj en 1 segundo se le denomina frecuencia de reloj y se
mide en ciclos por segundo (hercios o hertz). En computadoras actuales, este valor se expresa en GHz
(gigahertz: miles de millones de ciclos por segundo).
 La frecuencia de reloj indica la velocidad del procesador (velocidad con que realiza sus operaciones más
básicas).
 La velocidad del procesador es un factor importante en el ritmo de trabajo de una computadora. Otro
factor que incide en esto es la velocidad de transferencia de la memoria.
 El tiempo de ciclo es el tiempo que transcurre entre dos pulsos de reloj.
 La frecuencia del reloj y el tiempo de ciclo son cantidades inversas. Por ejemplo, si el valor de
frecuencia es de cuatro ciclos por segundo, el valor del tiempo de ciclo es un cuarto de segundo.

1.10 Evolución histórica: Generaciones de computadoras


Ya en 1945, John Von Neumann, propone la idea de programa interno,
por lo que la máquina requeriría memoria para "recordar" las instrucciones
y ruptura de secuencia, como una necesidad de automatizar la ejecución en
donde la computadora toma decisiones lógicas en función de datos y
resultados, que bifurcan la ejecución del programa a otro punto de su
programa almacenado.
En la década del 50 se inicia la fabricación de computadoras para ser
ofrecidas al mercado. En 1951 la Remington Rand Corporation, fabrica la
UNIVAC I, utilizada por la Oficina de Censos de los EEUU y luego fue
ofrecida para procesar datos comerciales.
Para describir el progreso técnico de las computadoras desde la II
Guerra Mundial, los informáticos utilizan el término generaciones. La
evolución histórica de las computadoras se divide en generaciones. Cada
generación ha estado en vigencia un cierto intervalo de años, aunque los
límites para cada generación varían según el autor.
La evolución de las computadoras está íntimamente ligada a los
avances de la electrónica. Cada generación tecnológica tiene sus propias
características, que analizaremos a continuación:

 Primera generación (1951–1958): Se caracteriza principalmente por el


uso de válvulas electrónicas (tubos de vacío), Eran de gran tamaño y
mantenimiento complicado. Generaban abundante calor y necesitaban
poderosos equipos de refrigeración. El uso fundamental fue la realización de
aplicaciones en los campos científico y militar. Los tiempos de cálculo eran
del orden de los milisegundos, se podían realizar hasta 40.000 sumas y
restas por segundo.
Utilizaban como lenguaje de programación, el lenguaje máquina y
como única memoria para conservar los datos las tarjetas perforadas. Luego
incorporaron el diseño basado en el modelo de Von Neumann.

29
A esta generación pertenece la UNIVAC (1950), versión comercial del
ENIAC.

 Segunda generación (1959-1964): Se adoptan los transistores


(inventado en 1948), con lo que se reducen los espacios ocupados,
disminuye la disipación de calor, son más fiables y aumenta la velocidad al
orden de los microsegundos. La memoria está compuesta de núcleos de
ferrita, se podían realizar hasta 200.000 sumas y restas por segundo.
Los campos de aplicación fueron además del científico y militar, el
administrativo y de gestión.
Comienzan a utilizarse lenguajes de programación evolucionados,
como son el ensamblador y lenguajes de alto nivel (COBOL, ALGOL y
FORTRAN). Comienzan a utilizarse como memorias masivas la cinta
magnética y los tambores magnéticos; comunicación entre computadoras
por línea telefónica.

 Tercera generación (1965 – 1970): Aparecen los circuitos integrados


(inventados en 1958 por Jack St. Clair Kilby y Robert Noice), también
llamados semiconductores. El circuito integrado encapsula gran cantidad
de componentes discretos (resistencias, condensadores, diodos y
transistores), conformando uno o varios circuitos en una pastilla de silicio.
Los equipos son de dimensiones menores, con velocidades del orden
de los nanosegundos, realizándose del orden de 1.300.000 sumas y restas
por segundo. Los sistemas de explotación permiten la ejecución simultánea
de varios programas, aumentando el rendimiento y se permite el
teleprocesamiento.
El software evolucionó de forma considerable, con gran desarrollo en
los sistemas operativos.
Comienzan a utilizarse las memorias semiconductoras y los discos
magnéticos.

 Cuarta generación (1971 – hasta la actualidad): Los equipos están


caracterizados por la utilización de circuitos impresos de alta escala de
integración y la aparición de los microprocesadores. Intel 4004, primer
microprocesador con memoria electrónica (1971).
Las velocidades de cálculo son asombrosas, con alta confiabilidad, con
aproximadamente 15.000.000 de sumas y restas por segundo. Los sistemas
de explotación son más accesibles para todos los usuarios y están
caracterizados por la aparición de microcomputadoras de uso general.

 Quinta generación (??): En 1981 los principales países productores de


nuevas tecnologías (fundamentalmente Estados Unidos y Japón)
anunciaron una nueva generación, cuyas características principales iban a
ser:
 Utilización de componentes de muy alta escala de integración
(Very Large Scale Integration, VLSI).
 Computadoras con inteligencia artificial.
 Utilización del lenguaje natural (lenguajes de quinta generación)
 Interconexión entre todo tipo de computadoras, dispositivos y
redes (redes integradas).
 Integración de datos, imágenes y voz (entornos multimedia).

Podemos afirmar que varias características anunciadas por el año


1981 se han cumplido y sin duda alguna el avance tecnológico permitirá
incorporar progresivamente mejoras de velocidad, rendimiento y consumo.

30
Estructura y Funcionamiento de Computadoras I Unidad 1 - Conceptos introductorios

En resumen…
 La evolución histórica de las computadoras se divide en generaciones.
 La clasificación entre generaciones se basa en la tecnología de los componentes fundamentales
utilizados en la fabricación de las computadoras (válvulas de vacío, transistores, circuitos integrados y
microprocesadores).
 A grandes rasgos, las sucesivas generaciones de computadoras se caracterizan por:
 Mejora tecnológica.
 Miniaturización de partes (reducción de peso y volumen)
 Mayor fiabilidad (incremento del tiempo medio de fallas).
 Mayor velocidad de cálculo.
 Menor consumo.
 Mejores sistemas de explotación.
 Mayores posibilidades de aplicación: aumento de la capacidad para resolver problemas.

1.11 Clasificación de computadoras según su potencia


La disminución del tamaño de las CPU y MP ha sido enorme desde
1960, gracias a los circuitos integrados. Las grandes computadoras en un
principio ocupaban cientos de metros cuadrados, y disipaban tanto calor
como para calefaccionar un edificio. Hoy en día éstas pueden ocupar un
espacio como el de una heladera. Dichas máquinas también se conocen
como supercomputadoras o maxi-computadoras.
Ha sido el tamaño lo que más ha influido en las denominaciones de
"mini" y "micro" para las computadoras relativamente más pequeñas. Las
reducciones de tamaño ocurridas, se deben al proceso de miniaturización
de los circuitos, que pasó de las válvulas electrónicas de metal y vidrio,
siguiendo por su reemplazo por transistores, hasta llegar a los circuitos
integrados, con miles de transistores en una sola pastilla (chip). Formando
parte de la tercera generación, hacia 1961, DEC (Digital Equipment
Corporation) lanza la primer minicomputadora, la PDP-1 (Procesador Digital
Programable), que requería 10 m2 y que disipaba una cantidad de calor
mucho menor a sus predecesoras. Esto implicaba un menor gasto de
consumo eléctrico y de equipos de aire acondicionado. Su valor era de
100.000 dólares, frente a los 3.000.000 de una computadora en 1950.
En 1966 la CPU y MP de la PDP-8 podían entrar en un cajón de
manzanas, con un costo de 50.000 dólares. La era de las mini
computadoras había comenzado, así como la venta masiva de
computadoras. Cualquier departamento de una facultad o empresa podía
poseer una para sus usos particulares. El 50% de las minis vendidas
estaban dedicadas al control de procesos, y casi otro tanto se dedicaba a
oficinas. En el ámbito de las comunicaciones aparecen minis dedicadas al
teleprocesamiento, en el proceso distribuido de datos.
Se iniciaba un proceso de descentralización de recursos informáticos,
con computadoras dedicadas a tareas específicas en cada lugar.
Hacia 1975 surgen las microcomputadoras, que en una pequeña
unidad contenían la CPU, MP, teclado, disquetera, casetera y monitor. Su

31
unidad central es un microprocesador contenido en un solo chip. Entonces
las minis pasaron a ser las computadoras medianas, y las micro
permitieron que las computadoras invadieran los hogares, muchas veces
sólo para ser utilizadas con video juegos.
En un comienzo, además de presentar mayor tamaño, capacidad de
memoria y velocidad, las maxi computadoras operaban con palabras de 32
o 64 bits, las minis con 16 y las micro con 8. Hoy día el Pentium y otros
microprocesadores operan con palabras de más de 64 bits. Por otro lado a
medida que las minis y las micros pudieron tener una MP de gran
capacidad, incorporaron programas extensos y sistemas operativos que le
confirieron mayor posibilidad de procesamiento y manejo de periféricos,
obteniéndose rendimientos como muchas maxis de los años 70. A su vez
éstas se hicieron más chicas y veloces, con memorias de enorme capacidad.
Resulta así la diferencia entre un tipo u otro de computadoras, un
terreno sujeto a continuos cambios técnicos, y quizás en un futuro próximo
no sea el tamaño el patrón de la clasificación. En el presente existen
diversas clasificaciones de computadoras, en función de su velocidad y
potencia de procesamiento, ámbito de la aplicación, arquitectura del
hardware y otras características.
Una clasificación muy frecuente se hace atendiendo a la potencia o
capacidad, tomando como parámetros la longitud de palabra, la velocidad
de funcionamiento, la capacidad de la MP y el número de terminales o
usuarios. A continuación realizaremos la siguiente clasificación de mayor a
menor potencia:
 Supercomputadoras
 Macrocomputadoras
 Minicomputadoras
 Microcomputadoras

Supercomputadoras
La característica fundamental de este tipo de computadoras es su
rapidez; su longitud de palabra puede ser de 64 bits o más, contiene varios
procesadores o unidades centrales trabajando en paralelo diseñadas con
componentes de muy alta velocidad, con capacidad de MP de varios GB o
TB (Terabyte) y unidades de disco muy rápidas.
Se usan para aplicaciones con enormes cantidades de datos a
procesar y donde el tiempo de respuesta debe ser lo más corto posible; para
aplicaciones de tipo científico como los siguientes:
 Búsqueda y estudio de la energía y armas nucleares.
 Búsqueda de yacimientos petrolíferos con grandes bases de datos
sísmicos.
 El estudio y predicción de tornados.
 El estudio y predicción del clima de cualquier parte del mundo.
 La elaboración de maquetas y proyectos de la creación de aviones,
simuladores de vuelo.

La computadora más potente del


mundo en enero del año 2000 era la
ASCI White, del Dpto. de Energía de los
EEUU, dedicado al control de seguridad
y fiabilidad nuclear; está formado por
8.192 microprocesadores Power 3, cada
uno con una frecuencia de 375 MHz y
logra una velocidad de 12,3 TeraFLOPS.
Dispone de una MP de 6 TB (Terabyte),
unidades de disco con una capacidad de

32
Estructura y Funcionamiento de Computadoras I Unidad 1 - Conceptos introductorios

160 TB y su costo fue de 110 millones de dólares. (Fuente Bibliográfica,


Libro: Introducción a la Informática, capítulo I, página 15).
Desde Junio del 2008 la IBM Roadrunner ha ostentado el título de la
súper-computadora más rápida del mundo con poco más de 1 PetaFLOP de
poder (específicamente, unas 1.026.000.000.000.000.000 instrucciones de
punto flotante por segundo.
En Noviembre del año 2008 la empresa Cray alegó que su máquina
Cray XT había superado la de IBM, solo para esto ser desmentido una
semana después (http://eliax.com/index.php?/).
Sin embargo, Cray ha regresado en el 2009, con la Cray XT5-HE
Jaguar, actualizando los chips AMD que utiliza, cambiando los de 4 núcleos
por modelos más potentes con 6 núcleos. ¿El resultado? Una máquina que
funciona a 2,3 PetaFLOPS en teoría, y a 1,75 PetaFLOPS en la práctica.

Macrocomputadoras o Grandes Computadoras (Mainframes)


Aquí se incluirán las computadoras clásicas. Son grandes
computadoras de uso general con amplias posibilidades de procesamiento,
gran memoria y terminales remotas de E/S. Sirven para propósitos
generales en grandes compañías, bancos y también en bases de datos
regionales, constituyendo su centro vital de procesamiento, al cual están
conectados todos los usuarios.
Ejemplo de este tipo de computadora es la IBM 4361. Son sistemas
centrales, equipos con una gran potencia, enorme capacidad de entrada y
salida y alto nivel de confiabilidad. Los sistemas centrales se utilizan en
compañías grandes para realizar numerosas operaciones informáticas con
gran volumen de procesamiento de datos. Se utilizan normalmente en
arquitecturas centralizadas, de las que son parte vital.
De alguna forma los mainframes son más poderosos que las
supercomputadoras porque soportan más programas simultáneamente.
Pero las supercomputadoras pueden ejecutar un programa más rápido que
un mainframe.
En resumen sus principales características:
 Son grandes, rápidas y bastante costosas.
 Permiten que cientos de terminales puedan compartir grandes
bases centrales de datos.
 Terminal – computadora que no tiene su propio CPU o
almacenamiento, es sólo un dispositivo de entrada/salida que
se conecta a otra computadora localizada en otra parte.
 Las utilizan las empresas privadas u oficinas de gobierno para
tener centralizado el almacenamiento, procesamiento y la
administración de grandes cantidades de datos.

Minicomputadoras
En 1960 surgió la minicomputadora, una versión más pequeña que la
macrocomputadora. Las minicomputadoras son de rango medio, se utilizan
en universidades, fábricas o laboratorios de investigación, también pueden
ser servidores de red.
Dos ejemplos típicos de este tipo de computadoras son las VAX de
Digital Equipment Corporation (DEC) y la AS/400 de IBM.
Actualmente se usan para almacenar grandes bases de datos,
automatización industrial y aplicaciones multiusuario. En cuanto a su
forma de operar se asemeja más a una macrocomputadora ya que fueron
diseñadas para:
 Entornos de múltiples usuarios, apoyando múltiples actividades
de proceso al mismo tiempo.
 Ofrecer ciertos servicios más específicos
33
 Soportar un número limitado de dispositivos
 Pequeñas y de menor costo que las macrocomputadoras
 Para múltiples aplicaciones
 Son algo mayores que las microcomputadoras.
 Conservan algunas características de “mainframe”.

Servidores de Red
Son computadoras usadas interactivamente por múltiples usuarios
simultáneamente, pero a escala reducida de prestaciones y precio, usadas
normalmente en empresas de tipo medio. Son potentes con configuraciones
en monoprocesador o multiprocesador que pueden tener varios GB de
Memoria Principal y TB de disco, actúan interconectadas en una red de
área local o de gran área (Internet), pudiendo atender simultáneamente
cientos de accesos desde estaciones de trabajo, PC o terminales conectadas
a la red.
LA siguiente figura muestra un ejemplo de servidor de red aplicado
para interactuar con un sistema de información de gestión académica.

Componentes del sistema:


 Servidor de Base de Datos
 Servidor web
 Clientes de Gestión
 Clientes web: Se conectan al sistema a través de los
navegadores

Microcomputadoras
Son aquellas computadoras cuyo componente principal es el
microprocesador, se pueden colocar en un escritorio o pueden llevarse de
una habitación a otra.

Estación de trabajo (Workstation)


Estos equipos se usan en forma de monousuario, basados en un
microprocesador son utilizados en aplicaciones científicas y técnicas (diseño
gráfico por ejemplo), para ser conectado a una red. Suelen utilizar el
sistema operativo Linux o Windows NT.

34
Estructura y Funcionamiento de Computadoras I Unidad 1 - Conceptos introductorios

Computadoras Personales (PC, Personal Computer)


Nombre (registrado) con que bautizó IBM en 1981 al que se convertiría
en estándar de la informática de usuario; por extensión, cualquier
computadora compatible de otra marca basada en principios similares. Son
microcomputadoras monousuario que pueden tener decenas de MB o unos
GB de MP, cientos de GB de disco duro, unidades de CD-ROM, modem,
tarjeta de sonido y otros tipos de periféricos. Se pueden clasificar según su
aplicación de la siguiente manera:
 Computadoras monousuario: para aplicaciones que no requieren
velocidad ni mucha memoria, usados para procesamiento de texto, hojas de
cálculo y tareas generales de negocios y oficinas con uso de fax ó módem.
 Computadoras monousuarios dedicadas a un uso especial: artes
gráficas, dibujos, animación, diseño industrial asistido por computadora
(CAD/CAM), análisis financieros, multimedia, etc. Emplean coprocesadores
matemáticos, exigencias de aceleración en vídeo y monitores, y otras
plaquetas especiales.
 Computadoras formando parte de redes: O sea que comparten recursos,
con archivos centralizados, por lo cual no se requiere grandes exigencias de
hardware, aunque se necesita un microprocesador rápido para acelerar la
comunicación y la transferencia de datos.

Computadoras personales portátiles


Una computadora portátil (también denominado equipo portátil) es
una computadora que integra todos los elementos necesarios para un
correcto funcionamiento, entre ellos una fuente de alimentación a batería,
una pantalla y un teclado, dispuestos en una carcasa pequeña (por lo
general de 360 cm x 40 cm x 270 cm). Las más conocidas son:
 Notebook, computadoras personales diseñadas para ser
transportadas.
 Netbook, un poco más pequeñas que las notebook
 Asistentes digitales personales (denominados PDA o de bolsillo),
a veces conocidos como organizadores o agendas electrónicas,
son equipos de bolsillo con opciones de organización personal.

Laptop/Notebook
Las computadoras Laptops son aquellas computadoras que están
diseñadas para poder ser transportadas de un lugar a otro. Se alimentan
por medio de baterías recargables, pesan entre 2 y 5 kilos y la mayoría trae
integrado una pantalla de LCD (Liquid Crystal Display).

Notebook: es del tamaño de un cuaderno y pesa menos 4 kg.

35
Cada día son más atractivas, más pequeñas, con más servicios, con
más velocidad, estas computadoras portátiles volvieron a inundar vidrieras
para estar allí, llamándonos y sentir que la PC va con uno a cualquier parte

Netbook
Existe un tipo de notebook llamada
netbook. Las netbooks son más pequeñas,
livianas, de bajo costo, utilizadas para
navegar por Internet y realizar funciones
básicas como procesadores de textos. Tienen
pantallas de 10” a 13”, dispositivos de
almacenamiento de estado sólido, usan red
de WiFi, LAN, muchas se pueden utilizar en
redes de teléfono móvil. No tienen unidades
ópticas y pueden no tener discos duros. En
la imagen se muestra una notebook y una
netbook.

Asistentes digitales personales: PDA


Denominados PDA o de bolsillo, a
veces conocidos como organizadores o
agendas electrónicas, son equipos de
bolsillo con opciones de organización
personal.
Un PDA (asistente digital
personal, también conocido como
organizador de bolsillo) es un
computadora de bolsillo que consiste
en un procesador, una memoria RAM
(memoria de acceso aleatorio), una
pantalla sensible al tacto y funciones
de red integradas en una carcasa
compacta extremadamente pequeña.

Un PDA ofrece las siguientes aplicaciones estándar:


 Una agenda para organizar horarios
con recordatorios visuales o
audibles. Las reuniones o los
eventos programados se pueden
contextualizar para cumplir
requisitos profesionales y personales
gracias a un sistema de clasificación
adaptable (oficina, privado, etc.).
 Un administrador de tareas que
funciona como un recordatorio de
las tareas que deben realizarse. Es
posible asignar a cada tarea
recordatorios, prioridades o plazos.
 Una libreta de direcciones
(administrador de contactos) que le
brinda información de contacto
instantánea (número telefónico,
dirección de correo, correo
electrónico, etc.).

36
Estructura y Funcionamiento de Computadoras I Unidad 1 - Conceptos introductorios

 Software para correo electrónico que permite la recepción y el envío de


mensajes.
Los PDA ofrecen versiones "livianas" de herramientas de ofimática
como por ejemplo editores de texto, hojas de cálculo, calculadora y visores
para una amplia variedad de formatos de archivo (archivos PDF, imágenes,
etc.). Además de estas funciones básicas, cada vez más PDA brindan
herramientas multimedia de avanzada que permiten la reproducción de
videos (en distintos formatos, que incluyen el formato DivX), música (en
formato mp3) y animación Flash.
Los PDA también se utilizan cada vez con más frecuencia como
sistemas de georreferencia o bien para el mapeo o navegación de carreteras,
al conectarlos a un dispositivo de posicionamiento GPS (Sistema de
Posicionamiento Global). De hecho, es posible obtener un GPS de alto
rendimiento a bajo costo que le ayude a navegar las carreteras mediante el
uso de un mapa que muestra en forma continua la ubicación del usuario, la
velocidad y la representación visual de la carretera (eventualmente será en
3D) con indicaciones de la ruta a seguir en la pantalla y mediante una voz
sintetizada.

37
Bibliografía
PRIETO ESPINOSA, LLORIZ RUIZ, TORRES CONTERO. "Introducción a la
Informática" - 3ra Edición McGrawGill, 2002
DE MIGUEL ANASAGASTI, Pedro. "Fundamentos de los Computadores"
GINZBURG, ALBARRACÍN. “Operación Programación de Computadoras" -
4ta Edición
STALLING, William."Organización y Arquitectura de Computadores"
MEINADIER, Jean Pierre. "Estructura y Funcionamiento de Computadores
Digitales"
GINZBURG, Mario C. "La PC por dentro. Arquitectura y funcionamiento de
computadores" – 3ra Edición, 2004
DUPERUT, Gabriel."El computador y su entorno" - 3ra Edición, 1999

38
Unidad 2
Representación de datos
Índice temático Unidad Nº 2 – Representación de datos

2.1 Introducción ...............................................................................................41


2.2 Sistemas de numeración .............................................................................42
Historia de los sistemas de numeración .................................................................. 42
Sistemas de numeración posicional ......................................................................... 43
Teorema Fundamental de la Numeración ............................................................... 45
2.2.1. Conversión de sistemas de numeración ..................................................... 46
2.2.2. Conversiones entre decimal y binario ........................................................ 49
2.2.3. Conversiones entre decimal y hexadecimal ............................................... 52
2.2.4. Conversiones entre binario y hexadecimal ................................................ 54
2.2.5. Aritmética en los sistemas de numeración ................................................ 56
2.2.6. El complemento aritmético ........................................................................ 61
2.3 Representación de números ........................................................................65
2.3.1. Sistema de representación Binario Puro .................................................... 67
2.3.2. Sistema de representación Signo y módulo ............................................... 69
2.3.3. Sistema de representación Complemento a 1 ........................................... 71
2.3.4. Sistema de representación Complemento a 2 ........................................... 74
2.3.5. Representación en Exceso a M (representación sesgada) ......................... 78
2.3.6. Representación en Coma Flotante ............................................................. 79
2.3.7. Nociones de Error ....................................................................................... 90
2.3.8. Formatos de Longitud Variable: Decimal Codificado en Binario (BCD). ..... 93
2.4 Representación de texto .............................................................................95
2.4.1. Código ASCII ................................................................................................ 96
2.4.2. Código EBCDIC ............................................................................................ 97
2.4.3. Código Unicode........................................................................................... 98
2.5 Representaciones redundantes ...................................................................99
2.5.1. Detección de errores en la transmisión de datos....................................... 99
Bibliografía ........................................................................................................ 101
Estructura y Funcionamiento de Computadoras I Unidad 2 – Representación de datos

Unidad 2
Representación de datos
Esquema de contenidos

Binario
Bases de Decimal
numeración Hexadecimal
Sistemas de Conversión entre
numeración bases
Operaciones
aritméticas

Coma fija sin signo o


binario puro
Enteros Coma fija signo y
Longitud
módulo
Fija
Complemento a 2
Representación Complemento a 1
de Datos Numéricos En exceso a M

n Coma Flotante
(Norma IEEE 754)
Reales
Formatos de BCD empaquetado
representación
BCD desempaquetado Longitud
Variable
ASCII
Alfanuméricos EBCDIC
UNICODE

Detección de Código de paridad


errores

2.1 Introducción
Básicamente, se puede decir que la computadora es una máquina que
procesa datos y que para realizar dicho procesamiento se debe tener en
cuenta cómo representar y codificar los datos internamente. Para ello es
menester conocer los procesos que transforman los datos externos a la
computadora en patrones de bits susceptibles de ser almacenados y
procesados por los elementos internos de la computadora.
Como ya se dijo en la Unidad 1, para hacer más fiable y menos
complejo el diseño de los componentes de la computadora, se utilizan dos

41
valores o estados posibles para las representaciones internas. Estos valores
conceptualmente se representan por cero (0) y uno (1) que corresponden a
dos estados posibles, por ejemplo a dos niveles de tensión eléctrica
claramente diferenciados.
En esta Unidad, se abordará la transformación de los datos “externos”
para ser representados como datos “internos” de tipo binario, los que luego
volverán a convertirse cuando los resultados se vuelquen al exterior. Se verá
en detalle el tratamiento de datos alfanuméricos y numéricos teniendo en
cuenta que el espacio de representación de las computadoras es finito, por
lo que se puede decir que no es posible representarlos a todos.
Los formatos de representación se pueden clasificar en cuatro tipos:
1. Representación de Textos: es la información usual que utilizan los
seres humanos empleando la ayuda de un alfabeto o conjunto de
caracteres. Algunos ejemplos de los códigos usados para esta
representación son: ASCII, EBCDIC y UNICODE.
2. Representación de Números: Los números necesitan una
representación adecuada para poder realizar operaciones
matemáticas, la cual está fundada en el sistema de numeración de
base 2. Serán desarrollados en esta unidad las representaciones sin
signo, signo y módulo, complemento a 1, complemento a 2, en exceso
a M, la representación en coma flotante de acuerdo a la norma IEEE
754 y el código BCD.
3. Representación de Sonidos: también denominadas señales de audio,
suelen ser de voz o música. Estas son captadas por un sensor que
transforma las señales originales en señales eléctricas analógicas, las
que finalmente son digitalizadas para poder ser tratadas por la
computadora.
4. Representación de Imágenes-Video: consiste en el tratamiento que
reciben las imágenes estáticas para poder ser representadas por una
computadora. La representación de imágenes dinámicas, tales como
las de video, suele realizarse como un conjunto sucesivo de imágenes
estáticas.

En esta unidad sólo trataremos las representaciones numéricas y


alfanuméricas, dejando para cursos posteriores la representación de
sonidos, imágenes y video.

2.2 Sistemas de numeración

Historia de los sistemas de numeración


Un sistema de numeración es un conjunto S de símbolos y el conjunto
de reglas que indican cómo se utilizan dichos símbolos para representar
números. Desde la antigüedad el Hombre ha ideado distintos sistemas para
numerar objetos. Algunos de los sistemas de recuento de culturas antiguas
se basaron en 5, 10 o 20 elementos, claramente relacionado con los cinco
dedos que el ser humano tiene en cada mano, o los 10 dedos de ambas, o
los 20 si se toman en cuenta manos y pies.
Como curiosidad, se puede citar el sistema de numeración de los
mayas. Ellos idearon un sistema de base 20 con el 5 como base auxiliar. La
unidad se representaba por un punto, el 5 era una raya horizontal a la que
añadían los puntos necesarios para representar 6, 7 8 y 9, para el 10 se
usaban 2 rayas y de la misma forma hasta el 20, con cuatro rayas.

42
Estructura y Funcionamiento de Computadoras I Unidad 2 – Representación de datos

Figura 2.1 Sistema de numeración


maya.

En la actualidad el más extendido de los sistemas de numeración es el


sistema decimal de números arábigos, llamado así porque los árabes fueron
sus creadores.

Sistemas de numeración posicional


Todo sistema de numeración utiliza un conjunto S de símbolos
distintos entre sí que sirven para representar cantidades de acuerdo a
ciertas reglas. El tamaño de S es b, es decir, existe un número b de
símbolos o dígitos distintos.
En un sistema de numeración posicional, el número b de símbolos o
dígitos distintos del conjunto S se denomina base. Las reglas que se utilizan
en un sistema de numeración posicional consisten en que cada dígito
perteneciente a S tiene asociado un valor y el valor que representa una
cadena de dígitos se encuentra determinado por los valores individuales de
cada uno de ellos y por la posición que ocupan dentro de la cadena.
El ejemplo que nos resulta más familiar es el sistema de numeración
decimal, o sistema de base 10, lo cual significa que utiliza diez símbolos
distintos para representar cualquier cantidad. Con b = 2 se obtiene el
sistema binario, con b = 8 el sistema octal y con b = 16 el sistema
hexadecimal. Los símbolos utilizados en cada caso serán los siguientes:

𝑏=2 𝑆2 = { 0, 1 }
𝑏=8 𝑆8 = { 0, 1, 2, 3, 4, 5, 6, 7 }
𝑏 = 10 𝑆10 = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }
𝑏 = 16 𝑆16 = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F }

Observe que en el caso de la base 16, para representar las cantidades


diez, once, doce, trece, catorce y quince con un solo símbolo, se recurre a
las primeras letras del alfabeto en mayúscula.
Para evitar confusiones, explicitaremos la base en la que se
encuentran expresadas las cantidades mediante un subíndice:

342610 3768,8910 1010002 101,0112 56738 1AB16 1BC,AA16

En el caso de valores hexadecimales, también se suele utilizar como


notación la letra H agregada al final de la cadena de dígitos. Es decir que la
cantidad hexadecimal 1BC,AA16 también puede indicarse como 1BC,AA H.
En la Figura 2.2 se muestra como ejemplo el número 832 y el detalle
de cómo interpretamos cada dígito para formar el número. En éste ejemplo
el 2 indica dos unidades, el 3 tres decenas, (esto es, treinta), y el 8 ocho
centenas (esto es, ochocientos). En este sistema, la posición del dígito indica
la potencia de 10 que lo afecta.

43
Figura 2.2 Sistema de numeración
decimal.

Es decir que se verifica:

832 = 8 × 𝟏𝟎𝟎 + 3 × 𝟏𝟎 + 2 × 𝟏
832 = 8 × 10𝟐 + 3 × 10𝟏 + 2 × 10𝟎

Observe que al descomponer el número, se identifican los factores


100, 10 y 1 que afectan a cada dígito. Estos factores se denominan pesos
porque otorgan a cada dígito su carácter como unidades, decenas o
centenas para formar el valor del número. Otra característica que puede
observar es que los pesos se expresan como potencias de la base (b=10),
donde el exponente depende del orden que ocupa el dígito en la cadena. El
orden i se define de derecha a izquierda, comenzando desde el cero. Así, las
unidades se ubican en el orden cero (i=0), las decenas se ubican en el orden
uno (i=1), las centenas en el orden dos (i=2) y así sucesivamente. De esta
manera, en el sistema decimal, dada una cadena de dígitos que representan
una cantidad, el peso de un dígito que ocupa el orden i será 10i.
Para ampliar este concepto a cualquier base b, hay que tener en
cuenta que la representación de un número entero N será una cadena de
dígitos pertenecientes a S, Por ejemplo:

Si el número tiene tres dígitos, la representación de N es: 𝑑2 𝑑1 𝑑0


Si el número tiene cuatro dígitos, la representación de N es: 𝑑3 𝑑2 𝑑1 𝑑0
Si el número tiene quince dígitos, la representación de N es: 𝑑14 𝑑13 … 𝑑1 𝑑0
Si el número tiene n dígitos, la representación de N es: 𝑑(𝑛−1) 𝑑(𝑛−2) . .. 𝑑1 𝑑0

El subíndice colocado en cada dígito resalta el orden que ocupa dicho


dígito dentro de la cadena.
Teniendo en cuenta que los pesos dependen de la base y del orden
(posición) que ocupan los dígitos en la cadena, los pesos en base b serán:

Peso del dígito 𝑑0 : 𝑏0


Peso del dígito 𝑑1 : 𝑏1
Peso del dígito 𝑑2 : 𝑏2
… …
Peso del dígito 𝑑𝑛−1 : 𝑏 𝑛−1

Luego, para formar el valor del número, cada dígito se multiplica por
su respectivo peso y se suman todos los productos:

𝑉𝑎𝑙𝑜𝑟(𝑁) = 𝑉(𝑁) = . . . 𝑑𝑛−1 × 𝑏 𝑛−1 + . . . + 𝑑1 × 𝑏1 + 𝑑0 × 𝑏 0

En estas expresiones, hemos resaltado los órdenes de cada dígito y los


pesos respectivos, pero en la práctica, es suficiente indicar la cadena de
dígitos y la base del sistema al que pertenece. Por ejemplo, la cantidad
ciento cincuenta y dos expresada en sistema decimal es 15210

44
Estructura y Funcionamiento de Computadoras I Unidad 2 – Representación de datos

Teorema Fundamental de la Numeración


Generalizando la expresión anterior, el valor de un número N con n
dígitos enteros y m dígitos fraccionarios en el sistema de numeración de
base b se expresa de la siguiente manera:

𝑅𝑒𝑝𝑟𝑒𝑠𝑒𝑛𝑡𝑎𝑐𝑖ó𝑛 𝑑𝑒 𝑁𝑏 : 𝑑(𝑛−1) . .. 𝑑1 𝑑0 , 𝑑−1 𝑑−2 … 𝑑−𝑚

Nb : Número expresado en el sistema de numeración de base b.


b : Base del sistema de numeración. Número de símbolos permitidos en el sistema.
di : Dígito en la posición de orden i.
n : Cantidad de dígitos de la parte entera
, : Coma fraccionaria. Símbolo utilizado para separar la parte entera de un número
de su parte fraccionaria.

m : Cantidad de dígitos de la parte fraccionaria

Observe que debido a que el orden es descendente de izquierda a


derecha, los dígitos fraccionarios tienen órdenes negativos.

Luego, el valor del número 𝑁𝑏 es la suma de los productos 𝑑𝑖 × 𝑏 𝑖 ,


calculados para cada dígito, incluyendo la parte entera y la parte
fraccionaria, es decir:

𝑉(𝑁) = . . . 𝑑𝑛−1 × 𝑏 𝑛−1 + . . . + 𝑑1 × 𝑏1 + 𝑑0 × 𝑏 0 + 𝑑−1 × 𝑏 −1 + . . . + 𝑑−𝑚 × 𝑏 −𝑚

(𝑛−1)

𝑉(𝑁) = ∑ 𝑑𝑖 × 𝑏 𝑖
𝑖=−𝑚

Esta expresión se conoce como Teorema Fundamental de la


Numeración (TFN) y relaciona una cantidad expresada en un sistema de
numeración de base b cualquiera con la expresión de dicha cantidad en
sistema decimal.

En resumen: Las características comunes a todos los sistemas de


numeración posicionales, cualquiera sea su base son las siguientes:

 Consta de un número finito de símbolos individuales distintos


entre sí que forman la “base o raíz” del sistema (diez en el sistema
decimal, dos en el binario, etc.).
 Cada símbolo aislado o dígito representa una cantidad específica
de unidades.
 Existe un símbolo “cero” para indicar la cantidad nula.
 En un número compuesto por varios símbolos, un mismo símbolo
tiene un significado o “peso” distinto según su posición relativa en
el conjunto. La posición extrema derecha de la parte entera
corresponde a unidades.
 El peso de cada posición es una potencia de la base.
 Cada dígito dentro de un número tiene un orden y éste queda
determinado partiendo del orden "cero" desde la posición
inmediata a la izquierda de la coma. El orden crece hacia la
izquierda y decrece hacia la derecha.

45
 El valor relativo de un dígito en función de la posición que ocupa
es igual al producto 𝑑𝑖 × 𝑏 𝑖 , donde
d : valor intrínseco del dígito.
b : base del sistema de numeración.
i : orden del dígito.
 Finalmente, un número queda determinado por la sumatoria de
los valores relativos (𝑑𝑖 × 𝑏 𝑖 ) de los dígitos que forman el número.
(Teorema Fundamental de la Numeración)

2.2.1. Conversión de sistemas de numeración


Dado un número expresado en una base cualquiera, la conversión de
sistema de numeración consiste en encontrar la expresión de dicho número
en otra base. Por ejemplo, si se tiene el número 73,D510 y se desea
expresarlo en base 16, expresamos la conversión como:
73,510 → (..................)16

Describiremos a continuación los casos de conversión que relacionan


el sistema de numeración decimal con un sistema de numeración en otra
base distinta.

Conversión de base b a decimal


La conversión de una cantidad expresada en base b a su equivalente
en sistema decimal se realiza utilizando el Teorema Fundamental de la
Numeración.
El procedimiento a seguir es el siguiente:
 Identificar la cantidad de cifras de la parte entera y la parte
fraccionaria del número.
 Obtener los pesos de cada cifra. Los pesos se obtienen como la
base elevada al orden. A partir de la coma fraccionaria, los
pesos son ascendentes para la parte entera y descendentes para
la parte fraccionaria.
 Multiplicar cada cifra por el peso correspondiente.
 La sumatoria de los productos da como resultado la cantidad
expresada decimal.

Conversión de decimal a base b


El siguiente procedimiento para convertir un número N10 a su
representación en una base distinta de 10, distingue entre la parte entera y
la parte fraccionaria de N10.

 Parte Entera. Método de divisiones sucesivas


Para convertir la parte entera de N10 a la base b, se utiliza el método
de divisiones sucesivas por la nueva base b.
El método comienza dividiendo la parte entera de N10 por la base b. Se
utiliza la operación de división trabajando con cocientes enteros.

46
Estructura y Funcionamiento de Computadoras I Unidad 2 – Representación de datos

Figura 2.3 Método de divisiones sucesivas para convertir una cantidad entera a base b.

Luego, el cociente obtenido se vuelve a dividir por b y se va repitiendo


la división con cada nuevo cociente. El método se aplica hasta que el
cociente sea cero. Al finalizar, la parte entera de N10 expresada en sistema
de base b se forma con los residuos de cada división realizada, tomándolos
en orden inverso al cual fueron obtenidos.
La Figura 2.4 muestra un ejemplo de conversión de un número entero
a base 2. El método puede realizarse utilizando la disposición tradicional
para dividir dos cantidades u ordenando las operaciones en forma tabular,
como ejemplifica la figura.

Figura 2.4 Conversión de decimal a binario de una cantidad entera por método de divisiones sucesivas.

47
 Parte fraccionaria. Método de multiplicaciones sucesivas
Para convertir la parte fraccionaria de N10 a la base b, se aplica el
método de multiplicaciones sucesivas. Este método consiste en multiplicar
la parte fraccionaria de N10 por la base b y luego repetir la operación con la
parte fraccionaria de cada resultado obtenido. El método se aplica hasta
que la nueva parte fraccionaria obtenida sea cero o resulte igual a una
anterior. Al finalizar, la parte fraccionaria de N10 expresada en sistema base
b se forma con la parte entera de los resultados de cada multiplicación,
tomándolos en el mismo orden en el que fueron obtenidos.
La Figura 2.5 muestra un ejemplo de conversión de decimal a binario
por multiplicaciones sucesivas.

Figura 2.5 Conversión de decimal a binario de una


cantidad fraccionaria por multiplicaciones sucesivas,

Observación: Es claro que si N10 es un número entero, sólo se aplicará


, y si N10 tiene parte entera nula, sólo se aplicará .

Como dijimos anteriormente, el método se repite hasta que la parte


fraccionaria del resultado sea cero, pero puede ocurrir que este resultado no
se produzca. Por eso, la otra condición de finalización es que la parte
fraccionaria calculada en una etapa del procedimiento sea igual a la parte
fraccionaria de alguna etapa anterior. La Figura 2.6 presenta un ejemplo de
conversión de decimal a binario donde se presenta esta situación. Puede
observarse que si no se interrumpe la aplicación del método, la secuencia
de dígitos binarios se repetiría indefinidamente, es decir que la expresión en
binario de N10 tiene parte fraccionaria periódica. Esta condición se indica en
la expresión del número con una línea sobre los dígitos que integran el
período.

48
Estructura y Funcionamiento de Computadoras I Unidad 2 – Representación de datos

Figura 2.6 Ejemplo de conversión de decimal a binario con parte fraccionaria periódica.

Estos métodos de conversión pueden aplicarse entre la base decimal y


otra base cualquiera, pero solo nos enfocaremos en conversiones entre el
sistema decimal y los sistemas de numeración que resultan de mayor
interés en relación al funcionamiento de computadoras: el binario (base 2) y
el hexadecimal (base 16).

2.2.2. Conversiones entre decimal y binario


Los seres humanos utilizan el sistema decimal para expresar
cantidades, mientras que las computadoras trabajan en sistema binario,
por lo cual siempre es necesario recurrir a conversiones de decimal a
binario y viceversa. Conocer los procedimientos de conversión entre estos
sistemas de numeración es fundamental para comprender el
funcionamiento de una computadora.

Conversión de decimal a binario


La conversión de decimal a binario se realiza con los procedimientos
vistos para conversión de decimal a base b, utilizando b = 2. La Figura 2.7
muestra el desarrollo de la conversión de N10 = 153,6875, para lo cual se
aplica el método de divisiones sucesivas para la parte entera y el método de
multiplicaciones sucesivas para la parte fraccionaria.

49
Figura 2.7 Ejemplo de conversión de decimal a binario.

Los métodos de conversión adquieren formas simplificadas cuando se


trata con el sistema binario porque los dígitos posibles en este sistema son
el 0 y el 1. Esto significa que en la expresión del TFN, los dígitos 𝑑𝑖 del
número en binario sólo pueden ser 0 o 1, y por ende, cada producto 𝑑𝑖 × 𝑏 𝑖
sólo puede resultar nulo o igual al peso bi. Debido a esta característica, la
conversión de un número de decimal a binario, puede realizarse aplicando
métodos simplificados.

Parte entera. Método de restas sucesivas


En el caso de conversión de un entero decimal a binario, la
simplicidad del sistema binario permite aplicar el método de restas
sucesivas. Este método consiste en buscar el peso inmediatamente inferior
a la cantidad a convertir. Cuando se logra la aproximación con el peso de
orden i, significa que el dígito correspondiente a ese orden debe ser 1. Para
continuar, se calcula la diferencia entre la cantidad a convertir y el peso
encontrado, se repite la búsqueda de un peso que se aproxime a la
diferencia calculada y se realiza nuevamente la resta. El método se aplica
hasta obtener una diferencia igual a cero. Al finalizar, la expresión en
binario de la cantidad entera se forma escribiendo 1 para los órdenes i que
se utilizaron en la aproximación y 0 para los demás. La Figura 2.8 muestra
el procedimiento.

50
Estructura y Funcionamiento de Computadoras I Unidad 2 – Representación de datos

Figura 2.8 Conversión de un número entero de decimal a binario por método de restas sucesivas.

Parte fraccionaria. Método de sumas sucesivas


En forma similar al caso de cantidades enteras, una cantidad
fraccionaria expresada en decimal se puede convertir a binario aplicando
un método basado en la simplicidad característica de la base 2: los dígitos
sólo pueden ser 0 y 1.
El método de sumas sucesivas consiste en acumular los pesos de
orden negativo, comenzando desde el orden -1. Si al considerar la suma del
peso de orden i, el valor acumulado no excede la cantidad fraccionaria, el
dígito di es 1. En caso contrario, cuando la suma del peso de orden i excede
a la parte fraccionaria, el dígito di es 0. El método se repite considerando
los órdenes descendentes siguientes, hasta que los pesos acumulados
igualen a la cantidad fraccionaria o se alcance una precisión deseada. Al
finalizar, la expresión en binario de la cantidad fraccionaria se forma con
los dígitos encontrados para cada orden.

51
Figura 2.9 Conversión de un número fraccionario de decimal a binario por método de sumas sucesivas.

Observación:
En algunos casos es necesario utilizar infinitos términos para que la
sumatoria alcance la parte fraccionaria. En este caso se debe truncar a un
cierto número de cifras, y por consiguiente no se puede alcanzar la
igualdad. Un caso particular de infinitas cifras es cuando existe un período
(grupos de cifras que se repiten).
Ejemplo: N10 = 0,6 = 0,1001 1001 1001...2

Conversión de binario a decimal


La conversión de sistema binario a sistema decimal se realiza
utilizando el Teorema Fundamental de la Numeración.

Pesos  25 24 23 22 21 20 2-1 2-2 2-3


Equivalente Decimal  32 16 8 4 2 1 0,5 0,25 0,125

Deseamos convertir el número binario (10110,01)2 → (........)10


Aplicando el TFN, tenemos que:
10110,012 = 1x24 + 0x23 + 1x22 + 1x21 + 0x20 + 0x2-1 + 1x2-2 = 22,2510

Ejemplo 2.1
Convertir a decimal los siguientes números binarios:
1101002 = 1 × 25 + 1 × 24 + 0 × 23 + 1 × 22 + 0 × 21 + 0 × 20 = 5210
0, 1012 = 1 × 2−1 + 0 × 2−2 + 1 × 2−3 = 0,5 + 0,125 = 0,62510

2.2.3. Conversiones entre decimal y hexadecimal


Aunque siempre es posible hacer la conversión entre decimal y
binario, las expresiones en binario pueden resultar muy largas y por ende,
difíciles de manejar en la práctica. Por ejemplo, la cantidad más alta que
puede representarse con un dígito decimal es 9, pero la versión en binario
de este número es 1001. Como puede apreciarse, el sistema binario
requiere más dígitos, lo cual resulta engorroso en la práctica. Para salvar

52
Estructura y Funcionamiento de Computadoras I Unidad 2 – Representación de datos

esta dificultad, se utiliza el sistema de numeración hexadecimal, que


requiere menos dígitos y a la vez, como veremos más adelante, permite
aplicar un método sencillo de conversión a la base 2.

Conversión de decimal a hexadecimal


La conversión de decimal a hexadecimal se realiza con los
procedimientos vistos para conversión de decimal a base b, utilizando b =
16. La Figura 2.7 muestra el desarrollo de la conversión de N10 = 153,6875,
para lo cual se aplica el método de divisiones sucesivas para la parte entera
y el método de multiplicaciones sucesivas para la parte fraccionaria. Se
deben tener en cuenta las equivalencias del 10 al 15 con sus respectivos
símbolos en sistema hexadecimal.

Figura 2.10 Conversión de un número de decimal a hexadecimal.

Conversión de hexadecimal a decimal


La conversión de sistema hexadecimal a sistema decimal se realiza
utilizando el Teorema Fundamental de la Numeración.

Ejemplo 2.2
Convertir a decimal el número A798C,1E16

Aplicando el TFN, tenemos:


A798C, 1E16 = A × 164 + 7 × 163 + 9 × 162 + 8 × 161 + C × 160 + 1 × 16−1 + E × 16−2
= (10) × 164 + 7 × 163 + 9 × 162 + 8 × 161 + (12) × 160 + 1 × 16−1 + (14) × 16−2
= 655360 + 28672 + 2304 + 128 + 12 + 0,0625 + 0,0546875
= 686476,117187510

53
2.2.4. Conversiones entre binario y hexadecimal
Como hemos descrito, una desventaja del sistema binario es que la
representación de valores requiere más dígitos que en los demás sistemas.
Por el contrario, el sistema hexadecimal es más compacto y proporciona un
mecanismo muy sencillo de conversión a sistema binario debido a que las
bases se encuentran relacionadas por la expresión 24 = 16. Esta relación
significa por una parte que con cuatro dígitos binarios pueden obtenerse 16
combinaciones distintas, pero como esta cantidad coincide con la base
hexadecimal, la relación también implica que para identificar un dígito
hexadecimal se requieren cuatro dígitos binarios, como muestra la Tabla
2.1.

Decimal Hexadecimal Binario


0 0 0000
1 1 0001
2 2 0010
3 3 0011
4 4 0100
5 5 0101
6 6 0110
7 7 0111
8 8 1000
9 9 1001
10 A 1010
11 B 1011
12 C 1100
13 D 1101
14 E 1110 Tabla 2.1 Equivalencias en binario
15 F 1111 de los dígitos hexadecimales.

De la relación entre las bases resulta en un método muy simple de


conversión para aplicar en la práctica.
Debido a esta característica, en informática se adopta el sistema
hexadecimal para expresar ciertos datos, en lugar de hacerlo en binario. Tal
es el caso de las direcciones de memoria y la codificación de colores.

Conversión de hexadecimal a binario


Un número expresado en hexadecimal puede convertirse a sistema
binario aplicando los procedimientos vistos anteriormente. Para ello sería
menester tomar la cantidad expresada en hexadecimal y obtener su
equivalente en decimal para luego realizar la conversión de decimal a
binario. Sin embargo, al ser 𝑏 = 16 = 24 , puede hacerse la conversión más
sencilla de la siguiente forma:
Un digito hexadecimal se forma por un grupo de cuatro cifras binarias.
Luego, para convertir un número hexadecimal a su forma binaria,
directamente reemplazamos cada dígito hexadecimal por su equivalente
binario, utilizando cuatro cifras.

54
Estructura y Funcionamiento de Computadoras I Unidad 2 – Representación de datos

Ejemplo 2.3
Convertir a binario el número 27A,616
Escribimos las equivalencias en binario para cada dígito hexadecimal:
N16 = 2 7 A , 6
0010 0111 1010 , 0110

Luego: 27A,616 = 0010 0111 1010, 01102


Omitiendo los ceros no significativos:
27A,616 = 10 0111 1010, 0112

Conversión de binario a hexadecimal


Dado que cada dígito hexadecimal equivale a un grupo de cuatro
dígitos binarios, para convertir un número binario a su forma hexadecimal
se particiona la expresión binaria en grupos de 4 dígitos, comenzando desde
la coma hacia la izquierda para la parte entera y desde la coma hacia la
derecha para la parte fraccionaria. Puede ocurrir que al realizar esta
división en grupos, los grupos de los extremos queden incompletos. En ese
caso se completan con cifras no significativas (ceros a la izquierda en la
parte entera y ceros a la derecha en la parte fraccionaria). Luego, cada
grupo se reemplaza por el dígito hexadecimal equivalente.

Ejemplo 2.4
Convertir a hexadecimal el número 1 1100,1011 0111 0112

Primero, dividimos al expresión en grupos de cuatro dígitos binarios a partir de la coma:


N2 = 1 1100,1011 0111 011

En este caso, completamos con ceros en la parte entera y fraccionaria:


N2 = 0001 1100,1011 0111 0110

Reemplazando cada grupo por su equivalente en hexadecimal:


N2 = 0001 1100,1011 0111 0110
1 C B 7 6

Luego: 1 1100,1011 0111 0112 = 1C,B7616

Observación:
Se invita al lector a verificar las operaciones de conversión de
bases entre los distintos sistemas de numeración utilizando las funciones
de ingeniería de Microsoft Excel. Algunas de ellas son:
BIN.A.DEC convierte de binario a decimal
DEC.A.HEX convierte de decimal a hexadecimal
OCT.A.HEX convierte de octal a hexadecimal

55
2.2.5. Aritmética en los sistemas de numeración
Las operaciones aritméticas de adición, sustracción, multiplicación y
división, son esencialmente igual en todos los sistemas de numeración
posicional. A los fines de esta materia sólo presentaremos las operaciones
aritméticas de suma y resta en los sistemas binario y hexadecimal.

Adición
Las reglas prácticas para sumar en base b son:
 Se ordenan los sumandos uno debajo del otro, alineados para operar con
los dígitos de igual orden.
 Se calcula en decimal la suma de los dígitos del mismo orden,
comenzando con los dígitos de orden menor.
 Si la suma es menor que b, el resultado expresado en base b es de un
solo dígito y su valor coincide con la suma decimal.
 Si la suma es mayor o igual que b, se debe recurrir a la posición de orden
siguiente para expresar el valor. Esto se hace restando b unidades al
resultado, teniendo en cuenta que cada vez que se resta la base se debe
aumentar en una unidad el dígito del orden siguiente (próxima columna
a la izquierda). La unidad que “se lleva” al orden siguiente se denomina
acarreo.

Sustracción
Como hemos planteado, la resta en base b se realiza de la misma
manera que en sistema decimal. Sólo se debe tener en cuenta, la siguiente
salvedad: Cuando el sustraendo es mayor al minuendo y es necesario “pedir
prestado” al dígito de la izquierda, se piden b unidades. Esta regla es la
misma para cualquier base, pero estamos tan familiarizados a su aplicación
en el sistema decimal que quizás perdemos de vista que en ese caso el
“pido” es de diez unidades.

2.2.5.1 Aritmética en el Sistema Binario


Adición: El algoritmo para sumar en el sistema binario es el mismo que se
utiliza en el sistema decimal, haciendo uso de las siguientes reglas básicas:

S1) 0 + 0 = 0
S2) 0 + 1 = 1
S3) 1 + 0 = 1
S4) 1 + 1 = 0 y se lleva 1 al orden siguiente.

La sumas 0+0, 0+1 y 1+0 son evidentes, pero la suma 1+1, cuyo
resultado en decimal es 2, debe escribirse en binario como 10. En este caso,
al resultado se le debe restar la base, por eso la regla expresa que “1+1=0 y
se lleva 1 al orden siguiente”.
La Figura 2.11 muestra los pasos realizados en una suma de ejemplo.

56
Estructura y Funcionamiento de Computadoras I Unidad 2 – Representación de datos

Figura 2.11 Descripción de pasos de la operación de suma binaria.

Siempre que se realice la suma con dos operandos la suma binaria se


lleva a cabo según las reglas vistas y en caso de ocurrir un acarreo, éste
será unitario. Sin embargo, cuando se suman más de dos operandos, puede
ocurrir que el acarreo sea mayor que uno. La Figura 2.12 muestra un
ejemplo de cálculo de la suma de tres números. Puede observarse que el
primer acarreo se produce del orden -2 al orden -1 y es igual a uno. Al
continuar la operación en el orden 0, el resultado es 4 y al restar la base
dos veces resulta 4-2-2=0, que produce un resultado final 0 y genera un
acarreo de dos unidades al orden siguiente, ya que se pudo restar dos veces
la base. La figura también muestra el mismo cálculo realizado por partes,
haciendo sumas de dos operandos. Por simplicidad, los circuitos de la
Unidad Aritmético Lógica funcionan de esta manera, en base a circuitos
sumadores de dos operandos.

57
Figura 2.12 Ejemplo de suma binaria dividida en sumas parciales de dos operandos..

Sustracción: El algoritmo para restar en el sistema binario es el mismo que


se utiliza para restar en el sistema decimal, haciendo uso de las siguientes
reglas básicas:

R1) 0 - 0 = 0
R2) 1 - 0 = 1
R3) 1 - 1 = 0
R4) 0 - 1 = 1 tomando prestado 1 del orden siguiente.

Aclaremos esta última regla: En la diferencia 0 – 1, el 0 requiere tomar


una unidad “prestada” del orden siguiente. Al hacer esto, el 0 se incrementa
en b unidades, es decir 102. Luego, la diferencia queda 102 – 12, cuyo
resultado es 1. Así, la regla expresa que “0 - 1 = 1 tomando prestado 1 del
orden siguiente”.
La Figura 2.13 describe los pasos a realizar en una operación de resta
binaria. Observe que cuando en la operación ocurre que se debe “pedir
prestado” al orden siguiente, el dígito que “pide” se incrementa en dos
unidades y el dígito que “presta” se disminuye en uno.
En las computadoras, la Unidad Aritmético Lógica no utiliza un
circuito restador, sólo dispone de un circuito sumador. Esto es porque las
operaciones de resta se convierten en operaciones de suma y así, no hace
falta un circuito específico para restar, manteniendo el diseño de la UAL lo
más simple posible. La forma en que una resta puede resolverse mediante
una suma se describe más adelante.

58
Estructura y Funcionamiento de Computadoras I Unidad 2 – Representación de datos

Figura 2.13 Descripción de pasos de la operación de resta binaria.

Ejemplo 2.5

Resolver la resta 1001,1112 – 11,10012


Aplicando los pasos descritos, la operación se resuelve de la siguiente manera:
1
0 10 10 0 10
1 0 0 1,1 1 1 0
– 1 1,1 0 0 1
1 1 0,0 1 0 1
Luego, el resultado es 110,01012

59
2.2.5.2 Aritmética en el Sistema Hexadecimal
Adición. Como planteamos anteriormente, la operación de suma se realiza
siguiendo las mismas reglas. En caso de base 16, se debe recordar las
equivalencias para los valores de 10 a 15 (dígitos A a F).
Aunque los pasos son los mismos que en base decimal, cuando la
suma de dos dígitos excede la base, el cálculo mental del dígito resultado
puede resultar confuso. Por ello, es conveniente explicitar la resta que se
realiza para calcular el acarreo.

Ejemplos: 8 3
+9 +5
17 Suma decimal 8 Suma decimal
-16 Modificación -0 Modificación
1 1 Suma en hexadecimal 8 Suma hexadecimal

Ejemplo 2.6

Resolver la suma C86816 + 72D916


Aplicando los pasos descritos, la operación se resuelve así:
1 1 1
C 8 6 8
+ 7 2 D 9
19 11 20 17
-16 -0 -16 -16
1 3 B 4 1
Luego, el resultado es 13B4116

Sustracción. Se aplican las mismas reglas. En caso de base 16, se debe


recordar las equivalencias para los valores de 10 a 15 (dígitos A a F).

Ejemplo 2.7

Resolver la resta C86816 – 72D916


Aplicando los pasos descritos, la operación se resuelve así:
21
7 5 24
C 8 6 8
– 7 2 D 9
5 5 8 15
5 5 8 F
Luego, el resultado es 558F16

60
Estructura y Funcionamiento de Computadoras I Unidad 2 – Representación de datos

2.2.6. El complemento aritmético


El complemento aritmético de un número, es lo que le falta a éste para
alcanzar el valor de referencia dado por bn, donde b es la base del sistema y
n es la cantidad de dígitos del número. Es decir que, dado un número N de
n dígitos, el valor de referencia para calcular su complemento es el número
formado por un 1 seguido de n ceros.
Cuando se utiliza bn como valor de referencia, el complemento se
conoce como complemento a la base. En el caso de b=2, el complemento a la
base es C2 (complemento a dos). En caso que sea b=10, el complemento a
la base es C10 (complemento a diez).
Formalmente se define que, dado un número N representado con n
dígitos en un sistema de numeración de base b, existe otro número, C(N),
denominado complemento a la base de N que cumple:

N + C(N) = bn

De la definición dada se obtiene la expresión para calcular el


complemento a la base de un número:

C(N) = bn − N

Ejemplo 2.8
Encontrar el complemento a la base de los siguientes números: 310 , 5310 , 1102 y 10012 ,
Identificando los valores de b y n en cada caso y aplicando la definición de complemento a la base, tenemos:
Por definición de complemento a la base: C(N) = bn – N
310  b = 10 ; n = 1, luego:
C10(310) = (101)10 – (3)10 = 1010 – 310 = 710
5310  b = 10 ; n = 2, luego:
C10(5310) = (102)10 – (53)10 = 10010 – 5310 = 4710
1102  b = 2 ; n = 3, luego:
C2(1102) = (1011)2 – (110)2 = 10002 – 1102 = 102
10012  b = 2 ; n = 4, luego:
C2(10012) = (10100)2 – (1001)2 = 100002 – 10012 = 1112

Otro valor utilizado como referencia para el cálculo del complemento


es (bn
– 1). En este caso el complemento se denomina complemento a la base
menos uno. Por ejemplo, si b=2, el complemento a la base menos uno es C1
(complemento a uno) y en caso que sea b=10, el complemento a la base
menos uno es C9 (complemento a nueve)

N + C ′ (N) = (bn − 1)

De igual manera que en el caso del complemento a la base, a partir de


la definición podemos obtener la expresión para calcular el complemento a
la base menos uno de un número:

C ′ (N) = (bn − 1) − N

61
Ejemplo 2.9
Encontrar el complemento a la base menos uno de los siguientes números: 310 , 5310 , 1102 y 10012 ,
Identificando los valores de b y n en cada caso y aplicando la definición de complemento a la base menos uno,
tenemos:
Por definición de complemento a la base menos uno: C’(N) = (bn – 1) – N
310  b = 10 ; n = 1, luego:
C9(310) =( (101)10 – (1)10 ) – (3)10 = (1010 – 110) – 310 = 910 – 310 = 610
5310  b = 10 ; n = 2, luego:
C9(5310) =( (102)10 – (1)10 ) – (53)10 = (10010 – 110) – 5310 = 9910 – 5310= 4610
1102  b = 2 ; n = 3, luego:
C1(1102) = ( (1011)2 – (1)10 ) – (110)2 = (10002 – 12) – 1102 = 1112 – 1102 = 12
10012  b = 2 ; n = 4, luego:
C1(10012) =( (10100)2 – (1)10 ) – (1001)2 = (100002 – 12) – 10012 = 11112 – 10012 = 1102

La utilidad del complemento radica en que tomando ciertas


precauciones, permite transformar restas en sumas. Así, en lugar de operar
la resta como A – B, se realiza la operación A + C(B). Las precauciones a
tener en cuenta al usar complemento son:
 En complemento a la base: el acarreo final se descarta.
 En complemento a la base menos uno: el acarreo final se suma
al resultado.

Ejemplo 2.10

Realizar la operación 8 – 3 expresada en decimal utilizando complemento a la base (complemento a diez).


Como el número se encuentra representado con un solo dígito, n = 1. Luego:
C10(3) = 101 – 3 = 10 – 3 = 7
La operación 8 – 3 utilizando complemento diez es:
8 – 3 = 8 + C10(3) = 8 + 7 = 5 (En el resultado final se descarta el acarreo producido en 8 + 7 = 15)

Ejemplo 2.11

Resolver la operación 8 – 3 expresada en decimal trabajando con complemento a la base menos uno
(complemento a nueve).
Como el número se encuentra representado con un solo dígito, n = 1. Luego:
C9(3) = (101 – 1) – 3 = 9 – 3 = 6
La operación 8 – 3 utilizando complemento a nueve es:
8 – 3 = 8 + C9(3) = 8 + 6 = 4 + 1 = 5 (En el resultado final se suma el acarreo producido en 8 + 6 = 14)

Esta característica de convertir restas en sumas es de sumo interés en


el caso de las computadoras, ya que permite reducir la complejidad de los

62
Estructura y Funcionamiento de Computadoras I Unidad 2 – Representación de datos

circuitos de la Unidad Aritmético Lógica al no requerir circuitos específicos


para restar.
Por otra parte, nótese que si se considera el valor del complemento de
N, lo que le falta a éste para igualar el valor de referencia, es N. En otras
palabras, el complemento del complemento de N es igual a N. Esta
propiedad permite obtener el número original a partir de su complemento y
es válida tanto para el complemento a la base como para el complemento a
la base menos uno.

En complemento a la base:
C(C(N)) = bn − C(N)
C(C(N)) = bn − (bn − N)
C(C(N)) = bn − bn + N)
C(C(N)) = N

En complemento a la base menos uno:


C(C(N)) = (bn − 1) − C(N)
C(C(N)) = (bn − 1) − ((bn − 1) − N))
C(C(N)) = (bn − 1) − (bn − 1) + N)
C(C(N)) = N

En resumen:
 El complemento de un número es la diferencia entre dicho
número y otro dado como referencia.
 Los valores de referencia bn y (bn – 1) definen el complemento a la
base y el complemento a la base menos uno, respectivamente.
 Para representar un número negativo se puede utilizar el
complemento de ese número a la base o a la base menos uno en
el sistema de numeración utilizado.
 La utilidad del complemento radica en que permite transformar,
restas en sumas, con ciertas precauciones.
 El complemento del complemento de N, es N.

Complementos en base binaria


Dado que las computadoras son dispositivos digitales binarios, la
representación de números utiliza b=2. Así, nos centraremos en las
características de las operaciones complemento a la base y complemento a
la base menos uno cuando b=2, es decir, Complemento a 2 y Complemento
a 1.

Características del Complemento a 1


a) Analizando el valor de referencia del Complemento a 1, (2n – 1), puede
observarse que se trata de una cadena formada por n unos. Al aplicar la
definición, la operación C1(N) consiste en restar el número N al valor de
referencia, esto es: C1(N) = (2n –1) – N. Al realizar este cálculo, debido a
que el valor de referencia es una cadena de n unos, el resultado es una
cadena de bits que respecto del número N original, tiene intercambiados
los unos por ceros y los ceros por unos, denominado complemento lógico.
Esta característica otorga un método práctico muy sencillo para hallar el

63
Complemento a 1 de un número N: Para realizar la operación C1(N) en
forma práctica, se expresa N en binario y luego se escribe el
complemento lógico bit a bit.

Figura 2.14 Cálculo por definición y método práctico para encontrar C1(N) como complemento lógico bit a bit de N.

La Figura 2.14 muestra ejemplos de la operación Complemento a 1 con


n=4 y n=8. Puede observarse que en ambos casos se cumple que el valor
de referencia es una cadena de n unos y que C1(N) es siempre el
complemento lógico de N.
b) Las operaciones de adición y sustracción en Complemento a 1 son algo
más complicadas que en Complemento a 2. Lo que se gana simplificando
el cálculo del complemento, se complica al realizar sumas y restas.
c) Se puede demostrar que el Complemento a 1 del Complemento a 1 de un
número es igual al número, es decir: C1(C1(N) = N. Esta propiedad es
útil para obtener el número original a partir de su complemento a 1.

Demostración:
𝐶1 (𝐶1 (𝑁)) = 𝐶1 ((2𝑛 − 1) − 𝑁) se reemplazó C1(N) por su definición 2n - N
𝑛 𝑛
𝐶1 (𝐶1 (𝑁)) = (2 − 1) − (2 − 1 − 𝑁) se reemplazó C1 por su definición
𝑛 𝑛
𝐶1 (𝐶1 (𝑁)) = 2 − 1 − 2 + 1 + 𝑁 se quitan paréntesis y cambian los signos
Luego: 𝐶1 (𝐶1 (𝑁)) = 𝑁

Características del Complemento a 2:


a) La operación C2(N) en forma práctica se puede calcular como: C2(N) =
C1(N) + 1. Esto indica que para encontrar el C2(N), se puede obtener
primero el C1(N) y luego añadirle 1.
Otro método práctico para realizar la operación Complemento a 2 es la
siguiente: Dada la expresión en binario de N, se copian los bits
tomándolos de derecha a izquierda, hasta encontrar el primer uno, se
copia ese uno y a partir de ahí se cambian ceros por unos y unos por
ceros, hasta recorrer la cadena completa.

64
Estructura y Funcionamiento de Computadoras I Unidad 2 – Representación de datos

Figura 2.15 Cálculo por definición y métodos prácticos para encontrar C2(N).

b) Se puede demostrar que el Complemento a 2 del Complemento a 2 de un


número es igual al número, es decir: C2(C2(N) = N. Esta propiedad es
útil para obtener el número original a partir de su complemento a 2.

Demostración:
𝐶2 (𝐶2 (𝑁)) = 𝐶2 (2𝑛 − 𝑁) se reemplazó C2(N) por su definición 2n - N
𝐶2 (𝐶2 (𝑁)) = 2𝑛 − (2𝑛 − 𝑁) se reemplazó C2 por su definición
𝐶2 (𝐶2 (𝑁)) = 2𝑛 − 2𝑛 + 𝑁 se quitan paréntesis y cambian los signos
Luego: 𝐶2 (𝐶2 (𝑁)) = 𝑁

2.3 Representación de números


Todo dato que deba ser almacenado o procesado por una computadora
debe ser representado en forma binaria. En Informática, la práctica
corriente para la representación de datos consiste en utilizar un número fijo
de n bits y asignar a cada uno de los datos a representar una combinación
particular formada por los n bits. Este proceso se denomina codificación.
Así, existe la codificación de caracteres, codificación de números,
codificación de imágenes, etc. Veremos a continuación distintos sistemas de
representación de números.
La siguiente tabla resume la clasificación de los números reales:

65
Subconjunto Descripción Ejemplos
Números que designan la cantidad de
elementos de un conjunto. No tienen parte
Naturales 0, 1, 2, 3, 4, ...
fraccionaria, son los “enteros positivos”

Números sin parte fraccionaria, positivos y


Enteros negativos. ... -2,-1,0,1,2, ...

Números con parte fraccionaria periódica o


no, que pueden expresarse como cociente de 3 5 1 1
Racionales , . , ,…
dos enteros. 4 2 3 2

Números con parte fraccionaria que no


pueden expresarse como cociente entre dos
Irracionales √2, √3, 𝜋, 𝑒, … Tabla 2.2 Clasificación
enteros.
de números reales.

La necesidad de representar números de los distintos subconjuntos


mostrados en la Tabla 2.2 ha dado lugar a distintos sistemas de
representación. Algunos aspectos generales de cualquier sistema de
representación de números son:
 Cualquier subconjunto de la clasificación de números reales (naturales,
enteros, racionales e irracionales) tiene infinitos elementos, pero el
espacio material de representación de las computadoras es finito, por lo
que no es posible representar a todos los elementos de un conjunto
infinito. Además, estrictamente hablando, todo número irracional será
irrepresentable, puesto que al tener infinitos dígitos fraccionarios, sería
necesario un número infinito de bits para poder representarlo.
 Como a partir de un conjunto de n bits se pueden obtener 2 n
combinaciones distintas, entonces con n bits sólo podremos codificar
(representar) 2n números distintos.
 Siempre existen dos valores extremos, un mínimo y máximo, que acotan
el conjunto de números representado. Se llama rango de representación
al intervalo comprendido entre el menor y el mayor de los números
representados.
 En el caso de los números racionales e irracionales, la limitación del
número de combinaciones obtenidas a partir de n bits hace que sólo se
puedan representar una cantidad limitada de dígitos fraccionarios. Los
demás dígitos deberán omitirse aplicando redondeo o truncamiento, por
lo que la representación tendrá una determinada precisión.
 En el caso de números con signo, normalmente hacemos la distinción
entre positivos y negativos con los símbolos “+” y “–”, pero la codificación
sólo se expresa con unos y ceros, por lo cual se debe adoptar alguna
regla para representar el signo.

Los sistemas de representación de números pueden clasificarse en dos


grandes grupos, de acuerdo a si el dato a almacenar será codificado con
una longitud de bits fija o variable.

Formatos de longitud fija (Información numérica)


- Coma fija
- Sin signo o Binario puro (Números naturales)
- Signo y modulo (Enteros)

66
Estructura y Funcionamiento de Computadoras I Unidad 2 – Representación de datos

- Complemento a 1 (Enteros)
- Complemento a 2 (Enteros)
- En exceso a M (Enteros)
- Coma flotante (Racionales e Irracionales)

Formatos de longitud variable


- Códigos Decimales BCD (Información numérica)
-Desempaquetado
-Empaquetado
- Códigos Alfanuméricos (ASCII, EBCDIC, UNICODE) (Información
alfanumérica)

De esta manera, los formatos de longitud fija son aquellos que utilizan
una cantidad determinada de bits asignados para la representación.
Los formatos de longitud variable, como su nombre lo indica, tendrán
un tamaño variable que dependerá de la cantidad de caracteres a
representar, correspondiéndole en la mayoría de los casos 1 byte/carácter.

2.3.1. Sistema de representación Binario Puro


Este sistema permite representar números naturales (números enteros
sin signo). Se basa en el sistema posicional de base 2, sin parte fraccionaria
o binario puro. Los n bits disponibles para la representación forman una
cadena de dígitos binarios (dn-1  d1d0)2 y el valor representado por dicha
cadena se obtiene a partir del TFN:
(𝑛−1)
𝑛−1 𝑛−2
𝑉(𝑁) = . . . 𝑑𝑛−1 × 𝑏 + 𝑑𝑛−2 × 𝑏 + . . . + 𝑑1 × 𝑏 + 𝑑0 × 𝑏 = ∑ 𝑑𝑖 × 𝑏 𝑖
1 0

𝑖=0

Puede ocurrir que la conversión a binario de N no ocupe todos los


bits disponibles para la representación. En tal caso, se deben completar con
ceros a la izquierda hasta ocupar los n bits.

Ejemplo 2.12

Representar el número entero decimal 27 en binario puro de 8 bits.


Buscamos el equivalente en binario del número:
2710 = 1 10112
Luego, para representar el número en binario puro de 8 bits, se deben agregar los ceros necesarios a la
izquierda hasta completar las posiciones correspondientes a la longitud de la representación:
2710 = 0001 1011 en Binario puro de 8 bits

Rango de representación
En binario puro de n bits, el menor número corresponde a la
combinación en la cual todos los bits son 0, que de acuerdo al TFN,
representa al número cero. El mayor número corresponde a la combinación
que tiene todos los bits igual a 1, cuyo valor es 2n –1. Por lo tanto, el rango
para este tipo de representación R = [0, 2n –1].

67
Ejemplo 2.13

Calcule el número máximo, el mínimo y el rango de representación en binario puro de 8 bits.


La cantidad de combinaciones es 28 = 256. Como en binario puro o natural no se representan números
negativos, se asignan las combinaciones a los números positivos a partir del cero. De esta manera:
El número mínimo será: 0 es decir 0000 0000
El número máximo será: 255 es decir 1111 1111
Luego, el rango de representación con 8 bits es R = {0, 255}

Ejemplo 2.14

Representar el número entero decimal 47 en binario puro de 8 bits.


El rango de representación de binario puro de 8 bits es R = {0, (28-1)} = {0,255}. Como el número 4710 pertenece
al rango de representación, buscamos el equivalente en binario:
4710 = 10 11112
Luego, para representar el número en binario puro de 8 bits, se deben agregar los ceros necesarios a la
izquierda hasta completar las posiciones correspondientes a la longitud de la representación:
4710 = 0010 1111 en Binario puro de 8 bits

Al operar con cantidades representadas en este sistema, aparecen las


siguientes dificultades:
a) El resultado de la operación de suma de números de n bits puede
exceder el rango de representación. En tal caso, se necesitarán n+1 bits
para la representación del resultado. Esto ocurre cuando al sumar los
operandos se produce un acarreo al bit n+1, denominado cn+1. En este
caso se dice que ocurre un desbordamiento, puesto que el bit n+1 no
“cabe” en los bits disponibles para almacenar el resultado. Como el
acarreo no puede ser incluido en los n bits disponibles, queda eliminado
y se obtiene un resultado incorrecto. Por ejemplo, para una
representación de cuatro bits (n = 4) se podría producir una situación
como la que se muestra:
1101
+ 1010
10111
cn+1

En este ejemplo, el resultado de la operación necesita de un quinto bit


para su representación, pero como el sistema de representación utiliza
solamente cuatro bits, el resultado queda 0111, lo cual es erróneo. La
Unidad Aritmético Lógica (encargada de realizar las operaciones de
suma) debe estar provista de un mecanismo que detecte esta
eventualidad y pueda darse aviso al usuario sobre este tipo de error.

b) Similarmente, cuando se realiza un producto también existe la


posibilidad de desbordamiento. Téngase en cuenta que el producto de
dos cantidades de n bits puede necesitar hasta 2n bits para su
representación.

68
Estructura y Funcionamiento de Computadoras I Unidad 2 – Representación de datos

c) Dado que en el Sistema de Representación Binario Puro no se pueden


representar números negativos, antes de restar A – B, se debe
comprobar que A  B.

En resumen, el Sistema de Representación Binario Puro de n bits:


 Permite la representación de números naturales (enteros positivos).
 La realización de operaciones aritméticas se encuentra limitada.
 El rango de representación al utilizar n bits es R = {0, 2n –1}.

2.3.2. Sistema de representación Signo y módulo


Este sistema es una modificación del anterior, consistente en reservar
un bit para indicar el signo. Así, de los n bits disponibles, uno indica el
signo y los (n-1) bits restantes representan el módulo o magnitud del
número expresado en binario. La magnitud o módulo es el valor absoluto
del número.
Normalmente, se reserva el bit de la izquierda para el signo. Este bit se
denomina bit de signo, sus valores son S = 0 para números positivos y S = 1
para números negativos.
La
Figura 2.16 muestra un esquema de la representación de un número
N10 utilizando el formato Signo y Módulo de n bits de longitud.

Figura 2.16 Representación en Signo y


Módulo de n bits.

Ejemplo 2.15

Representar los siguientes números decimales en signo y módulo de 8 bits:


4710 , -4710 , 10910 y -5310
Para encontrar la representación en signo y módulo se debe obtener la expresión en binario del valor absoluto
del número y luego agregar el bit de signo, completando la cantidad de dígitos disponibles para la
representación:
+4710 : 4710 = 10 11112 , luego +4710 = 0010 1111 en signo y módulo de 8 bits
-4710 : 4710 = 10 11112 , luego -4710 = 1010 1111 en signo y módulo de 8 bits
+10910 : 10910 = 110 11012 , luego +10910 = 0110 1101 en signo y módulo de 8 bits
-5310 : 5310 = 11 01012 , luego -5310 = 1011 0101 en signo y módulo de 8 bits

69
Rango de representación
Como en Signo y Módulo se reserva el primer bit para el signo, de la
longitud total n solamente quedan (n-1) bits para representar el módulo.
Con (n-1) bits se pueden generar 2n-1 combinaciones.
La Figura 2.17 muestra cómo se representan los números en sistema
Signo y Módulo de n bits. Para los enteros positivos, el bit de signo toma el
valor S=0 y el rango es R = {+0, (2n-1 – 1)}. De manera similar, los números
negativos se representan con S=1 y el rango es R = {–(2n-1 – 1), –0}.
Por tanto, el rango de representación en Signo y Módulo de n bits es
R = {–(2n-1 – 1), (2n-1 – 1)}.

Figura 2.17 Rango de


representación en Signo y
Módulo de n bits.

Ejemplo 2.16

Calcular el número máximo, el mínimo y el rango de representación que existe trabajando en Signo y Módulo
de 8 bits.
La cantidad de números negativos es: 2n-1 = 28-1 = 128 (se considera un bit menos por el de signo). El mismo
razonamiento es válido para los números positivos.
El rango para los negativos es: desde -(2n-1 - 1) = -(28-1 - 1) = -127 hasta -0 (se descarta una combinación para el
cero negativo)
El rango para los positivos es: desde +0 hasta (2n-1 - 1) = (28-1 - 1) = 127 (se descarta una combinación para el
cero positivo).
Luego: El número mínimo es: -127 es decir 11111111
El número máximo es: 127 es decir 01111111
El rango de representación es R = {-127, 127}

Nótese que en Signo y Módulo, el cero tiene doble representación,


explicitadas en la Figura 2.17 como +0 y -0.
 Cuando S = 0 el cero se representa como 0 = 00000...0000
 Cuando S = 1 el cero se representa como 0 = 10000...0000
Esta ambigüedad en la representación del cero a veces genera
dificultades.

70
Estructura y Funcionamiento de Computadoras I Unidad 2 – Representación de datos

Dificultades que presenta el sistema Signo y módulo:


 En el caso de sumas y restas, la operación a realizar depende del
signo de los operandos. Antes de realizar alguna de estas operaciones
se debe analizar el signo de los operadores, ya que por ejemplo, si la
operación es una suma en la cual uno de los operadores es negativo,
se ha de cambiar la operación por una resta.
 Las operaciones de multiplicación y división se tratan con menos
dificultad que las sumas y restas, puesto que se opera, por un lado,
con las magnitudes y, por otro, con los signos.
 Existe la posibilidad de desbordamiento al operar con sumas, restas
y multiplicaciones.
 La ambigüedad de representación del cero complica la detección de
números negativos. Si se analiza solamente el bit de signo, la cadena
1000..0 se interpreta como un número negativo, lo que no es
correcto, puesto que el cero siempre es positivo.

En resumen…
En el Sistema de Representación Signo y Módulo de n bits:
 Se pueden representar números enteros positivos y negativos.
 El primer bit indica el signo del número.
 El rango de representación es simétrico: R = {–(2n–1 – 1) , (2n–1 – 1)}.
 Existen dos representaciones para el cero: 0000... y 1000…
 Para representar un número N en Sistema de Representación Signo y Módulo, el bit de mayor orden
(bit de signo) adopta el valor 0 o 1 según el signo de N y los (n-1) bits restantes representan el valor
absoluto de N en binario puro.
 La realización de operaciones aritméticas presenta dificultades.

2.3.3. Sistema de representación Complemento a 1


El Sistema de Representación Complemento a 1 (SRC1) se basa en
representar los números positivos en Binario Puro y los números negativos
mediante complemento a uno. El Complemento a 1 es el caso particular de
complemento a la base menos uno cuando b = 2.
Dada una longitud de n bits, el bit de la izquierda (bit dn-1) permite
determinar el signo del número, de la misma forma que en el sistema Signo
y módulo: el valor 0 indica que el número es positivo y el valor 1 indica que
el número es negativo.
 Si el número es positivo, se representa el número en binario puro.
 Si el número es negativo, se representa mediante el complemento a uno
del correspondiente número positivo.

Es importante remarcar que no debe confundirse el SRC1 con la


operación Complemento a 1. El SRC1 es un convenio para representar
números enteros con signo, el cual utiliza la operación complemento a uno
para representar los números enteros negativos. Así, el SRC1, utiliza la
operación C1(N) para representar el número negativo –N. Dado que en este

71
sistema un número negativo –N se representa con el Complemento a 1 de
+N, la operación C1(N) puede interpretarse como un cambio de signo.
Recordando lo descrito en la definición de la operación Complemento a
1, la referencia para hallar el complemento es el valor (2n – 1). El cálculo
puede hacerse por definición: C1(N) = (2n – 1) – N o aplicando el método
práctico. El método práctico para hallar el complemento a uno de un
número N consiste en expresar N en binario con n bits y luego cambiar bit a
bit los ceros por unos y los unos por ceros.

Ejemplo 2.17

Representar los siguientes números decimales en SRC1 de 8 bits:


4710 , -4710 , 10910 y -5310
+4710 : 4710 = 0010 1111 en B. Puro de 8 bits. Luego +4710 = 0010 1111 en SRC1
-4710 : 4710 = 0010 1111 en B. Puro de 8 bits. Luego -4710 = 1101 0000 en SRC1
+10910 : 10910 = 0110 1101 en B. Puro de 8 bits. Luego +10910 = 0110 1101 en SRC1
-5310 : 5310 = 0011 0101 en B. Puro de 8 bits. Luego -5310 = 1100 1010 en SRC1

Rango de representación
Dada una longitud n, los números positivos se representan con el bit
dn-1 igual a 0 y con la magnitud en Binario Puro. Por tanto, este sistema
permite representar números positivos desde 0 hasta (2n-1 –1).
Por otro lado, los números negativos se representan mediante su
Complemento a 1. Para determinar el rango de los números negativos hay
que calcular el mínimo y el máximo representable.

Cálculo del mínimo negativo: Corresponde a la expresión del complemento


en la cual el bit dn-1 es igual a 1 y el resto de los bits son ceros, es decir
10….00. En este caso el valor del complemento es 2n-1, por lo tanto, el
número es:
N10 = (2n – 1) – 2n-1 = 2n – 2n-1 – 1 = 2n-1 – 1
Entonces: Valor mínimo negativo = –(2n-1 – 1)

Cálculo del máximo negativo: El máximo negativo se presenta cuando el


complemento tiene los n bits en 1. En este caso el valor del complemento es
(2n –1), por lo tanto el número es:
N10 = (2n –1) – (2n –1) = 0
Entonces: Valor máximo negativo = –0

Por lo tanto, el rango negativo es [–(2n-1 – 1) , –0)]

Luego, el rango completo del SRC1 de n bits es:


R = {–(2n-1 – 1) , (2n-1 – 1)}

El rango de representación es simétrico, pero el cero tiene dos


representaciones 0000...00 y 1111...11. Esta doble representación puede
ocasionar ambigüedades, ya que la cadena de bits 1111...11 indica un valor
negativo, pero por definición, el cero es positivo.

72
Estructura y Funcionamiento de Computadoras I Unidad 2 – Representación de datos

Ejemplo 2.18

Calcular el número máximo, el mínimo y el rango de representación que existe trabajando en sistema de
representación Complemento a 1 de 8 bits.
Al igual que en sistema Signo y módulo, se debe discriminar el estudio del rango en números negativos y
positivos.
La cantidad de combinaciones para números negativos es: 2n−1 = 28−1 = 27 = 128 (se considera un bit
menos por el de signo). Esto también es válido para los números positivos.
El rango para números negativos es:
Desde: – (2n−1 − 1) = −(28−1 − 1) = −(27 − 1) = −(128 − 1) = −127
Hasta: –0 (se utiliza una combinación para el cero)
El rango para los números positivos es:
Desde: +0
Hasta: (2n−1 − 1) = (27 − 1) = (128 − 1) = 127 (se utiliza una combinación para el cero)
El número mínimo es: -127 es decir 1000 0000
El número máximo es: 127 es decir 0111 1111
Luego, El rango en SRC1 de 8 bits es R = {–127, 127}

Dado un número entero N, la regla práctica para encontrar su


representación en Sistema de Representación Complemento a 1 de n bits
consiste en:
 Determinar si N pertenece al rango de representación de n bits. Si el
valor excede el rango, el número no es representable.
 Encontrar la representación en binario puro del módulo de N, utilizando
n bits.
 Si el número es positivo, el equivalente de N en SRC1 de n bits es la
expresión en Binario Puro de N, utilizando n bits.
 Si el número es negativo, se calcula el Complemento a 1 de N (positivo).
Se puede calcular aplicando la definición de complemento a la base
menos uno o invirtiendo bit a bit la expresión en Binario Puro de N,
utilizando n bits

73
Ejemplo 2.19

Representar el número -910 utilizando SRC1 de 8 bits.


Dado que el número es negativo, se debe calcular el complemento a 1 del número. Aplicando la definición, el
complemento a 1: C1(N) = (2n – 1) – N
El minuendo se calcula de la forma: 28 – 1 = 255, es decir 1111 11112
La representación binaria del 9 con n = 8 bits es: 0000 10012
La resta resulta:
1111 1111
– 0000 1001
1111 0110
Luego: -910 = 1111 0110 en SRC1 de 8 bits.
Obsérvese que el Complemento a 1 del número se puede obtener complementando bit a bit la expresión en
binario de n bits de dicho número.

Nota: La separación de los bits en cuartetos es al sólo efecto de


una mejor visualización.

En resumen…
En el Sistema de Representación Complemento a 1 de n bits:
 Se pueden representar números enteros positivos y negativos.
 El rango de representación es simétrico: R = {–(2n–1 – 1) , (2n–1 – 1)}.
 Existen dos representaciones para el cero.
 El primer bit indica el signo del número, pero forma parte del mismo.
 Si N es positivo se expresa en binario puro, si es negativo se representa mediante el C1(N)
 El Complemento a 1 de un número N por definición es: C1(N) = (2n – 1) – N.
 Como método práctico, C1(N) se puede obtener cambiando 0 por 1 y 1 por 0 en la expresión binaria de
N (complemento lógico).
 Para obtener el número original N a partir de su Complemento a 1, se calcula el complemento del
complemento: C1(C1(N)) = N
 Se pueden realizar operaciones aritméticas con mayor simplicidad que en Signo y Módulo.

2.3.4. Sistema de representación Complemento a 2


El Sistema de Representación Complemento a 2 (SRC2) consiste en
representar los números positivos en Binario Puro y los números negativos
mediante el complemento a dos del número. La mayoría de las
computadoras utilizan este sistema de representación.

74
Estructura y Funcionamiento de Computadoras I Unidad 2 – Representación de datos

En este sistema, dada una longitud de palabra n, el bit de la izquierda


indica el signo del número. En forma similar al sistema Signo y Módulo, el
valor 0 de éste bit indica que el número es positivo y el valor 1 indica que el
número es negativo. Aunque muchas veces se hace referencia a este bit
como bit de signo, no es un bit separado de la magnitud del número, como
ocurre en el caso de la representación de Signo y Módulo y cuando se
realizan las operaciones aritméticas en complemento a 2, se trabaja con los
n bits como conjunto indivisible.
 Si el número es positivo, se representa el número en Binario puro.
 Si el número es negativo, se representa el Complemento a 2 del
correspondiente número positivo.

De manera similar al SRC1, no debe confundirse el SRC2 con la


operación Complemento a 2. El SRC2 es un convenio para la representación
de enteros con signo que utiliza la operación Complemento a 2 para
representar los números negativos.

Ejemplo 2.20

Representar en SRC2 el número –5010 , utilizando 8 bits.


En primer lugar, hay que convertir a binario el valor absoluto del número:
5010 = 11 00102
Aplicando la definición de complemento a 2 con 8 bits
C2(5010) = 28 – 5010
C2(11 0010) = 1 0000 0000 – 11 0010
1 0000 0000
– 11 0010
1100 1110
Luego: C2(5010) = 1100 1110

Nota: La separación de los bits en cuartetos es al sólo efecto de


una mejor visualización.

Rango de representación
Como se expuso anteriormente, en el SRC2, los números positivos se
representan en binario puro. Teniendo en cuenta que en tal caso el bit dn-1
correspondiente al dígito de mayor orden ha de ser 0, este sistema permite,
por tanto, representar los enteros positivos desde 0 hasta (2n-1 – 1) es decir,
el rango positivo es R+ = {0 , (2n-1 – 1)}
Por otro lado, los números negativos se representan en complemento a
dos, que se calcula restando el valor de referencia 2n menos la magnitud del
número negativo a representar. Para determinar el rango de los números
negativos hay que calcular el mínimo y el máximo representable.

Cálculo del mínimo negativo: Corresponde a la expresión en complemento a


2 en la cual el bit dn-1 es igual a 1 y el resto de los bits son ceros, es decir
10….00. En este caso el valor del complemento es 2n-1, por lo tanto el valor
del número es:
N10 = C2(C2(N))= 2n – 2n-1 = 2n-1

75
Entonces: Valor mínimo negativo = –(2n-1)

Cálculo del máximo negativo: Es cuando en la expresión en complemento a


2, los n bits están en 1. En este caso el valor del complemento es 2n –1, por
lo tanto el valor del número es:
N10 = C2(C2(N)) = 2n – (2n – 1)= 1
Entonces: Valor máximo negativo = –(1)

Por lo tanto, el rango negativo es R– = {–(2n-1) , –1}

Luego, el rango completo es R = {–(2n-1) , (2n-1 –1)}

Nótese que, en este caso, no existe el -0, puesto que el complemento a


2 de cero es 2n-1.

Ejemplo 2.21

Calcular el número máximo, el mínimo y el rango de representación que existe trabajando en sistema de
representación Complemento a 2 de 8 bits.
Al igual que en sistema Signo y módulo, se debe discriminar el estudio del rango en números negativos y
positivos.
La cantidad de combinaciones para números negativos será: 2n−1 = 28−1 = 27 = 128 (se considera un bit
menos por el de signo). Esto es también válido para los números positivos.
El rango para números negativos será: desde −2n−1 = −28−1 = −27 = −128 hasta –1 (no se considera la
combinación para el cero, al ser éste positivo)
El rango para los números positivos será: desde 0 hasta (2n−1 − 1) = (27 − 1) = (128 − 1) = 127 (en este
caso sí se considera una combinación para el cero , al ser éste positivo)
El número mínimo será: -128 es decir 1000 0000
El número máximo será: 127 es decir 0111 1111
Luego, El rango de representación en SRC2 de 8 bits será: [–128, 127]

El objetivo de este sistema que puede parecer artificioso, es simplificar


las operaciones de suma y resta con mezcla de números positivos y
negativos. Veamos, en efecto, que se puede operar sin tener en cuenta el
signo del operando. Para ello se analizarán los distintos casos donde
intervengan operandos complementados:
 Cambio de signo. Esta operación es necesaria en sí misma o para
convertir una resta en una suma. La operación consiste en hacer el
complemento a dos. Si se parte de un número complementado, de la
forma 2𝑛 − 𝐴, al complementarlo para cambiarle el signo, se hace
2𝑛 − (2𝑛 − 𝐴) = 𝐴, obteniéndose el resultado deseado.
 Suma de dos cantidades negativas. Los números a sumar serán del
tipo (2𝑛 − 𝐴) y (2𝑛 − 𝐵). Al hacer la suma se obtiene 2𝑛 + (2𝑛 − 𝐴 −
𝐵). Esta expresión es casi la deseada: (2𝑛 − 𝐴 − 𝐵), de la que
solamente difiere por el término 2𝑛 que tiene de más. Pero este
término es un bit en la posición de orden n+1, que aparece como un
acarreo cn-1. Para obtener el resultado correcto basta eliminarlo.

76
Estructura y Funcionamiento de Computadoras I Unidad 2 – Representación de datos

Ejemplo 2.22

Sumar -3 + (-5) utilizando SRC2 de 8 bits.


Dado que los número son negativos, buscamos el complemento de cada operando:
C2(3) =28 – 3 = 1 0000 0000 – 11 = 1111 1101
C2(5) =28 – 5 = 1 0000 0000 – 101 = 1111 1011
La suma resulta:
1111 1101
+ 1111 1011
1 1111 1000
Eliminando el acarreo, queda 1111 1000 que es -810

Sin embargo, no conviene perder de vista que esta operación puede


generar desbordamiento cuando 𝐴 + 𝐵 > 2𝑛−1 .
 Suma de una cantidad A positiva y otra negativa 2𝑛 − 𝐵, siendo 𝐴 <
𝐵. En este caso el resultado deberá ser negativo y la operación de
suma produce este resultado directamente.
𝐴 + 2𝑛 − 𝐵 = 2𝑛 − (𝐵 − 𝐴)
 Suma de una cantidad A positiva y otra negativa 2𝑛 − 𝐵 siendo 𝐴 ≥ 𝐵,
por lo que el resultado debe ser positivo. La suma genera 2𝑛 + (𝐴 −
𝐵). Ahora bien, 2𝑛 más una cantidad positiva no puede ser
representado con n bits, por que aparece un bit n+1, producido como
acarreo de la posición n. Por tanto, ignorando ese bit se obtiene el
resultado correcto.

Ejemplo 2.23

Sumar 7 + (-5) utilizando SRC2 de 8 bits.


Dado que:
C2(5) =28 – 5 = 1 0000 0000 – 101 = 1111 1011
La suma resulta:
0000 0111
+ 1111 1011
1 0000 0010
Eliminando el acarreo, queda 0000 0010 que es 210

Resumiendo: En este sistema se puede sumar con números positivos y


negativos sin hacer diferencia entre ellos. Solamente hay que ignorar el bit
de acarreo superior (cn-1). Por ello, la implementación de las operaciones de
suma y resta mediante circuitos digitales utilizando el SRC2 resulta
comparativamente más simple que otros sistemas de coma fija, como signo
y módulo o SRC1.

77
En resumen…
En el Sistema de Representación Complemento a 2 de n bits:
 Se pueden representar números enteros positivos y negativos.
 El rango de representación es asimétrico: R = {–(2n–1) , (2n–1 – 1)}.
 La representación para el cero es única.
 El primer bit indica el signo del número, pero forma parte del mismo.
 Si el número N es positivo se expresa en binario puro, si es negativo se representa mediante el C2(N).
 El Complemento a 2 de un número N por definición es: C2(N) = 2n – N.
 Como método práctico, el Complemento a 2 de N se puede obtener como C1(N) + 1.
 Para obtener el número original N a partir de su Complemento a 2, se calcula el complemento del
complemento: C2(C2(N)) = N.
 Se pueden realizar operaciones aritméticas con mayor simplicidad, sin tener en cuenta el signo de los
operandos.

2.3.5. Representación en Exceso a M (representación sesgada)


Este sistema consiste en representar en binario puro el valor del
número incrementado en un valor M. Es decir, el número N viene
representado por N + M expresado en binario puro de n bits.

Ejemplo 2.24

Para 8 bits (n = 8) y exceso M = 128:

127 se representa como 127 + 128 = 255 = 1111 1111


5 se representa como 5 + 128 = 133 = 1000 0101
0 se representa como 0 + 128 = 128 = 1000 0000
-5 se representa como (-5) + 128 = 123 = 0111 1011
-127 se representa como (-127) + 128 = 1 = 0000 0001
-128 se representa como (-128) + 128 = 0 = 0000 0000

Como valor de M suelen emplearse los valores M = 2n–1 y M = (2n–1 –


1), donde n es el número de bits empleados para la representación. Para un
ancho de palabra de n bits, el exceso máximo que puede emplearse es M =
2n–1, por lo que el número N para este caso, viene representado por N + M =
N + 2n–1. En el caso en que M = (2n–1 –1), el número N viene representado
por N + M = N + (2n-1 –1).

El rango de representación es R = {-2n–1 , 2n–1 – 1}

Este sistema se emplea casi exclusivamente para expresar el valor del


exponente entero en la representación de números en coma flotante.

78
Estructura y Funcionamiento de Computadoras I Unidad 2 – Representación de datos

En resumen…
En el Sistema de Representación Exceso a M de n bits:
 Se pueden representar números enteros positivos y negativos.
 El rango de representación es asimétrico: R = {–(2n–1) , (2n–1 – 1)}.
 Para representar un número N, se calcula el Exceso a M y el resultado se expresa en binario puro.
 El Exceso a M se calcula sumando el valor M al número N. de tal forma que el número resultante
siempre es positivo, por lo tanto no hace falta reservar un bit de signo.
 Como valor de M suelen emplearse M = 2n–1 y M = (2n–1 – 1)

2.3.6. Representación en Coma Flotante


La notación científica
Dado un número N, se puede llevar su representación a la forma:
N = c,m × be
Donde: c: Coeficiente, un dígito entero, o sea que 0 < c < b
m: mantisa (parte fraccionaria)
b: base
e: exponente, un número entero

Ejemplos en base diez: 0,07631 = 7,631 × 10-2


0,000578 = 5,78 × 10-4
3536811,2 = 3,5368112 × 106
561063173,21 = 5,6106317321 × 108
Observe que esta notación consiste en expresar el número N con un
coeficiente entero c de un solo dígito, una parte fraccionaria o mantisa m y
una potencia de la base elevada a un exponente e. Este exponente puede
ser positivo o negativo, según se requiera para conservar el valor original del
número.
Esta forma de representación se denomina notación científica o
notación exponencial y el método para obtenerla esencialmente consiste en
multiplicar o dividir por la base:
 Cuando el número tiene parte entera nula (número menor que la
unidad), se debe multiplicar por la base, ya que cuando se
multiplica por la base, se desplaza la coma fraccionaria hacia la
derecha. Esto provoca un ajuste de la mantisa m, y para
conservar el valor original se disminuye en uno el exponente e.
 En caso de que el número sea mayor que la base (tiene dos o más
dígitos enteros), se divide por la base. Cada división por la base
desplaza la coma fraccionaria una posición a la izquierda y
modifica la mantisa, por lo cual se debe incrementar en uno el
exponente, para mantener el valor original del número.

La notación científica también se conoce como notación en coma


flotante, ya que al cambiar el valor del exponente da la sensación de que la

79
coma fraccionaria flota de derecha a izquierda y viceversa. Es muy útil
cuando se manipulan números muy grandes o muy pequeños, como puede
apreciarse en el siguiente ejemplo:

Ejemplo 2.25

0,00000001257 = 1,257 x 10-8


-0.000327 = -3,27 x 10-4
34520000000 = 3,452 x 1010
-752319,582 = -7,52319582 x 105

Normalización
Las representaciones equivalentes que muestra el Ejemplo 2.25 para
cada número, no son únicas. Observe que el valor 0,00000001257 podría
expresarse como 12,57 × 10-9, o bien como 125,7 × 10-10. Sin embargo, la
notación científica propone utilizar la expresión equivalente que tenga la
parte entera formada por una sola cifra significativa, es decir el coeficiente c
debe ser tal que 0 < c < b. La expresión equivalente obtenida con este
criterio se denomina forma normalizada.
Como hemos descripto, la forma normalizada se obtiene, según sea
necesario, multiplicando o dividiendo por la base, y ajustando los valores de
la mantisa y el exponente de manera tal que se conserve el valor original del
número.

Representación en coma flotante en base binaria


La representación de un número real en coma flotante en base binaria
siguiendo los criterios de notación científica adopta la siguiente forma:
N2 = c,m × be = 1,m × (102)e

Observe que al utilizar base binaria, el valor del coeficiente c siempre


será 1.

Ejemplo 2.26

0,1000 101 = 1,0001 01 x 10-1 = 1,0001 01 x (2-1)10


-0.0001011 = -1,001 x 10-100 = -1,001 x (2-4)10
111 1000 0001,01 = 1,1110 0000 0101 x 101010 = 1,1110 0000 0101 x (210)10
-1111 1011 1110,11 = -1,1111 0111 1101 1 x 101011 = -1,1111 0111 1101 1 x (211)10
Nota: Se muestran los valores be en base diez para reflejar con mayor claridad la cantidad de lugares que se
corrió la coma fraccionaria en cada caso.

Si utilizamos n bits para la representación, debemos contemplar tres


partes: un bit para el signo del número, p bits para la mantisa m y q bits el
exponente e. Considerando los bits asignados a cada parte, se cumple que:
n=1+p+q

Nótese que para optimizar el uso de los n bits, no se reservan bits para
representar el coeficiente c, ya que en base binaria, los valores
normalizados siempre presentan c=1, y por lo tanto, puede omitirse en la

80
Estructura y Funcionamiento de Computadoras I Unidad 2 – Representación de datos

representación. Este dígito se denomina bit implícito y no se incluye en la


representación, pero debe tenerse en cuenta como parte del valor del
número.
A esta altura surgen los primeros dilemas: definida la longitud n de la
representación, ¿Cuántos bits se utilizarán para representar el valor de la
mantisa? ¿Cuántos bits se utilizarán para representar el valor del
exponente? ¿Qué sistema de representación se utilizará para representar la
mantisa con valores positivos y negativos? ¿Qué sistema de representación
se utilizará para el exponente considerando que éste puede ser positivo o
negativo? Aspectos como éstos generaron varios inconvenientes en un
principio.
Hasta 1980, cada fabricante de computadoras tenía su propio formato
de coma flotante y la mayoría eran diferentes entre sí. Inclusive se daba el
caso de que modelos distintos del mismo fabricante utilizaban formatos
diferentes. Peor aún, de hecho algunos de ellos efectuaban operaciones
aritméticas incorrectas debido a que la aritmética de coma flotante tiene
algunas peculiaridades que no resultan obvias para el diseñador promedio
de hardware. Esta situación ocasionaba gran confusión entre usuarios y
programadores, dificultando el intercambio de información entre distintas
máquinas.
Para rectificar esta situación, el Institute of Electrical and Electronics
Engineers (IEEE), instituyó un comité para estandarizar la aritmética de
coma flotante, no sólo para permitir el intercambio de datos de coma
flotante entre las diferentes computadoras, sino también para proporcionar
a los diseñadores de hardware un modelo que supieran que era correcto. El
trabajo resultante condujo a la Norma número 754 del IEEE. Hoy en día, la
mayoría de las CPU tienen un coprocesador de coma flotante y todas ellas
se ajustan a la norma IEEE 754, que se ha constituido en el estándar más
difundido para la aritmética binaria de coma flotante.

La aritmética de coma flotante.


El procesamiento de datos en una computadora siempre ha requerido representar números muy
pequeños o muy grandes. Para reducir el espacio necesario en la representación de estos tipos de datos
se debía recurrir a un factor de escala, característica propia de la notación en coma flotante.
Al adoptar esta forma de representación, había que realizar las operaciones en coma flotante, sin
embargo, hasta principios de la década de los ’90 los microprocesadores no disponían de circuitos
específicos para realizar estas operaciones. En ese entonces, las operaciones en coma flotante eran
implementadas mediante rutinas de software, lo cual hacía que la ejecución de los programas dedicados
a la resolución de cálculos fuera considerablemente más lenta.
Para resolver este problema se desarrollaron los coprocesadores aritméticos, circuitos integrados
específicos para realizar cálculos de aritmética de coma flotante. Así, las computadoras se equipaban
con un coprocesador aritmético conectado al mismo bus del procesador central y al captarse las
instrucciones de memoria a través del bus, el coprocesador se encargaba de ejecutar las instrucciones
que involucraban operaciones en coma flotante, funciones exponenciales, logarítmicas y
trigonométricas. Al utilizar un coprocesador aritmético, los cálculos eran resueltos por hardware,
mejorando notablemente el rendimiento de la computadora en estas tareas.
Los microprocesadores actuales incluyen en su interior una unidad de coma flotante (FPU Floating Point
Unit) con los circuitos típicos de los coprocesadores aritméticos, pero mejorados.

81
La norma IEEE 754
La norma IEEE 754 especifica la representación de números reales a
través de un formato de coma flotante que utiliza un número fijo de bits. Se
consideran dos formatos básicos:

Precisión Simple: Se utiliza un formato prefijado de 32 bits distribuidos de


la siguiente manera:

S Exponente Mantisa

1 bit 8 bits 23 bits

Precisión Doble: Se utiliza un formato prefijado de 64 bits con la siguiente


distribución:

S Exponente Mantisa

1 bit 11 bits 52 bits

Las características comunes a estos formatos son:


 El bit S es el bit de signo de la mantisa: positivo (0) o negativo (1)
 El exponente e se representa en Exceso 127 para precisión simple y en
Exceso 1023 para precisión doble. Las combinaciones de la
representación del exponente 00…0 (todos ceros) y 11…1 (todos unos) se
reservan para casos especiales, como se detalla más adelante.
 La mantisa m es la parte fraccionaria que resulta al normalizar el
número. La normalización consiste en desplazar la coma detrás del
primer dígito significativo y ajustar el valor del exponente para conservar
el valor original del número. Nótese que al colocar la coma a la derecha
del dígito más significativo, la normalización es entre 1,0000... y
1,11111...
 La representación utiliza la técnica de bit implícito. En los valores
normalizados este bit siempre vale 1 y se omite en la representación,
pero debe ser considerado cuando se realiza el proceso de conversión
para formar el número representado.

Por tanto, el valor de un número N representado en formato IEEE 754


es:
N = (-1)s × 1,m × 2e
Simple precisión: -127 < e < 128
Doble precisión: -1023 < e < 1024

Ejemplo 2.27

Normalizar los siguientes números


a) 1001,1100110 = 1,0011100110 x 23
b) 0,000001101101 = 1,101101 x 2-6
c) -0,00100 = 1,0 x 2-3
Nota: Para mayor claridad los exponentes se encuentran expresados en decimal.

82
Estructura y Funcionamiento de Computadoras I Unidad 2 – Representación de datos

Ejemplo 2.28

Suponiendo que el exponente se almacena en 8 bits, y el exceso es M=127, se producirán las siguientes
transformaciones entre exponentes originales del número y exponentes almacenados en la Norma IEEE 754

Exponente Representación del


Exponente en Exceso 127
(e) exponente en Exceso 127
0 0 + 127 = 127 01111111
+2 2 + 127 = 129 10000001
+127 127 + 127 = 254 11111110
-1 -1 + 127 = 126 01111110
-126 -126 + 127 = 1 00000001

Ejemplo 2.29

Representar el número 12,37510 en formato IEEE 754 de precisión simple.


El procedimiento para expresar el dato en formato IEEE 754 es:
1. Determinar el bit de signo. El bit S es 0, por tratarse de un número positivo.
2. Convertir el número a binario. Haciendo la conversión de la parte entera y la fraccionaria, el número es:.
12,37510 = 1100,0112
3. Normalizar. El número binario resultante se debe expresar en la forma 1,m x be ; donde b es la base binaria
(10)2 o bien (2)10. Para ello, se corre la coma a la derecha o hacia la izquierda, según sea necesario, hasta
encontrar el primer 1 significativo y se multiplica por la base elevada a un exponente que representa la
cantidad de lugares que se ha corrido la coma, de tal manera que se cumpla la igualdad:
1100,0112 = 1,100011 x (23)10 = 1,100011 x (1011)2
Nota: Lo correcto es expresar todo en binario, pero en este ejemplo se muestra también la potencia en
sistema decimal para ver con claridad la cantidad de lugares que se corrió la coma, en este caso 3.
4. Determinar la mantisa. La mantisa m se extrae de la forma 1,m obtenida al normalizar. La mantisa m son los
bits detrás de la coma luego de la normalización.
Valor normalizado = 1,100011 x (23)10 , entonces m = 100011
5. Representar el exponente. En precisión simple el exponente e se debe representar en Exceso 127: El
exponente 310 representado en Exceso 127 es:
3 + 127 = 130 = (10000010)2
6. Formar la representación. La representación del número se obtiene ordenado los elementos del formato:

S Exponente Mantisa
0 10000010 10001100000000000000000

83
Otra manera de representar el número en coma flotante es dividir los
32 bits en campos de 4 bits y expresarlos en hexadecimal de la siguiente
manera:

0100 0001 0100 0110 0000 0000 0000 0000 0000

4 1 4 6 0 0 0 0 Notación compacta
hexadecimal

Ejemplo 2.30

Representar el número -0,00510 en formato IEEE 754 de precisión simple.


El procedimiento para expresar el dato en formato IEEE 754 es:
1. Determinar el bit de signo. El bit S es 1, por tratarse de un número negativo.
2. Convertir el número a binario. Haciendo la conversión de la parte entera y la fraccionaria, el número es:
-0,00510 = -0,00000001012
3. Normalizar.
-0,00000001012 = -1,01 x (2-8)10 = -1,01 x (10-1000)2
Nota: Se muestra el exponente en base 10 para ver con claridad la cantidad de lugares que se corrió la
coma, en este caso 8.
4. Determinar la mantisa.
Valor normalizado = -1,01 x (2-8)10 , entonces m = 01
5. Representar el exponente. El exponente -810 representado en Exceso 127 es:
-8 + 127 = 119 = (01110111)2
6. Formar la representación. La representación del número se obtiene ordenando los elementos del formato:

S Exponente Mantisa
1 01110111 01000000000000000000000
Formateado en campos de 4 bits la representación es BBA00000

84
Estructura y Funcionamiento de Computadoras I Unidad 2 – Representación de datos

Ejemplo 2.31

Convertir a decimal el siguiente número representado en la Norma IEEE 754:


1 1000 0100 1011 0011 0000 0000 0000 000
Para encontrar el número representado, se procede de manera inversa a la realizada en los ejemplos anteriores
1. Obtener el valor del exponente. El exponente en simple precisión está representado en Exceso 127. Para
hallar el exponente se debe convertir la representación en exceso a decimal y restarle 127 :
Representación en Exceso 127 = 1000 0100 = (132)10
e = Representación en Exceso – 127 = 132 – 127 = 5
2. Obtener la mantisa. La mantisa se obtiene tomando los bits correspondientes de la representación del
número:
m = 1011 0011 0000 0000 0000 000
3. Obtener el número sin normalizar. Primero se debe obtener la forma normalizada 1,m x be. Para ello se
debe aplicar el exponente a la mantisa teniendo en cuenta que la representación según la Norma IEEE 754
omite el 1 que está delante de la coma (bit implícito), por lo cual éste debe ser agregado al reconstruir la
forma normalizada:
Valor normalizado = 1,1011 0011 0000 0000 0000 000 x (25)10
Nota: Se muestra be en base 10 para mayor claridad.
Luego, al resolver la forma normalizada se obtiene el número sin normalizar. El método práctico consiste en
desplazar la coma tantos lugares como indique el exponente, hacia la derecha o hacia la izquierda según el
signo del exponente (e = +5 indica que se corre la coma cinco lugares hacia la derecha):
N2 = 11 0110,011
4. Convertir el número a decimal. La conversión a decimal se obtiene aplicando el TFN:
(11 0110,011)2 = 54,37510
5. Determinar el signo del número. La representación del número tiene S=1, lo que indica que el número es
negativo. Por lo tanto:
N10 = -54,375

Ejemplo 2.32

La siguiente tabla muestra valores representados en formato IEEE 754 de precisión simple. En la primera
columna están los valores en notación hexadecimal (8 dígitos), en la segunda columna se muestran los 32 bits
de la representación y en la tercera columna se encuentra la formación del valor a partir de los valores del bit
de signo y el exponente, agregando el bit implícito.

3F 80 00 00 0011 1111 1000 0000 0000 0000 0000 0000 1,000000000...0 × 20 = 1.0
BF 80 00 00 1011 1111 1000 0000 0000 0000 0000 0000 -1,000000000...0 × 20 = -1.0
40 00 00 00 0100 0000 0000 0000 0000 0000 0000 0000 1,000000000...0 × 21 = 2.0
3F 00 00 00 0011 1111 0000 0000 0000 0000 0000 0000 1,000000000...0 × 2-1 = 0,5
3F C0 00 00 0011 1111 1100 0000 0000 0000 0000 0000 1,100000000...0 × 20 = 1,5

85
Observación:
Para facilitar al lector la realización de algunos ejemplos que le
permitan terminar de comprender y comprobar estas reglas, en la siguiente
página web se incluye un convertidor automático de formatos que permite
introducir un número en formato decimal (incluso en notación científica), y
comprobar el aspecto de su almacenamiento binario según el Estándar
IEEE 754. El convertidor, permite obtener la representación en simple y
doble precisión para el número dado.
 www.zator.com/Cpp/E2_2_4a.htm e ingresar al vínculo Convertidor

Casos Especiales
El estándar IEEE 754 considera varios casos especiales como
excepciones a la norma:

Representación del Cero


Puede observarse en el Ejemplo 2.32 que al aplicar la técnica del bit
implícito, el cero no es representable con la mantisa normalizada. La norma
indica que el cero se debe representar con ceros en los bits
correspondientes a la representación del exponente y la mantisa, es decir:
representación de e = 0…00 y m = 0…00.
Hay que distinguir que la excepción para la representación del cero
utiliza e =-127 o e =-1023 según sea precisión simple o doble, porque debe
cumplirse que los bits correspondientes a la representación de e sean todos
ceros: 0…00.
Observe que el bit de signo S aún permite distinguir +0 de -0. Algunos
compiladores trabajan de esta manera, sin embargo el estándar establece
que al comparar ambos “ceros” el resultado debe indicar que son iguales.
En simple precisión:
0 0000 0000 0000 0000 0000 0000 0000 000 = + 0
1 0000 0000 0000 0000 0000 0000 0000 000 = - 0

Valores No normalizados o desnormalizados


Al igual que en la representación del cero, el formato de coma flotante
con mantisa normalizada no permite conseguir una representación para
valores cercanos al cero. Para cubrir estos casos, la norma emplea el
formato N = 0,m (denominado formato desnormalizado) e indica que en este
caso debe utilizarse representación de e = 0…00 y m distinto de cero. Así,
los valores desnormalizados responden a la forma:
Ndesnormalizado = (-1)s × 0,m × 2-127 (simple precisión)
Ndesnormalizado = (-1)s × 0,m × 2-1023 (doble precisión)

Nota: Los valores desnormalizados utilizan e =-127 o e =-1023 según sea


precisión simple o doble porque debe cumplirse que los bits
correspondientes a la representación de e sean todos ceros: 0…00.
Observe que en la excepción para valores desnormalizados el bit
implícito es igual a cero (N = 0,m), por lo que el valor del número
representado queda especificado solamente por la mantisa y el valor del
exponente (e= -127 o e= -1023, según se trate de precisión simple o doble).

86
Estructura y Funcionamiento de Computadoras I Unidad 2 – Representación de datos

El rango de valores desnormalizados es:

En precisión simple:
Desde: 0,0000 0000 0000 0000 0000 001 × 2-127 = 2-23 × 2-127 = 2-150
Hasta: 0,1111 1111 1111 1111 1111 111 × 2-127  1 × 2-127 = 2-127

En precisión doble:
Desde: 0,0000 … 0001 × 2-1023 = 2-52 × 2-1023 = 2-1075
Hasta: 0,1111 … 1111 × 2-1023  1 × 2-1023 = 2-1023

Valores infinitos
El estándar utiliza la combinación representación de e = 1…111 (todos
unos) y m = 0…000 (todos ceros) para indicar los valores infinito positivo o
negativo., según el valor del bit de signo. Estos valores se utilizan para
indicar condiciones de desbordamiento, esto es que, el resultado obtenido
en la última operación realizada excede el rango de representación.
Esta distinción ha permitido al estándar definir procedimientos para
continuar las operaciones después que se produce un desbordamiento.
Ejemplo:
0 11111111 00000000000000000000000 = +
1 11111111 00000000000000000000000 = -

Valores no numéricos
Cuando e = 255 y m ≠ 0. Se identifican por un exponente con todos
sus valores a 1, y un valor distinto de cero para la mantisa.
Indican valores indeterminados u operaciones no válidas.

Ejemplo:

0 11111111 10000100000000000000000
1 11111111 00100010001001010101010

Figura 2.18 Esquema conceptual de la representación de los casos particulares o especiales.

87
+ 0 < Exp < Max Cualquier patron bits
-
Normalizado

+ 0 Cualquier patron bits diferente de cero


Desnormalizado -

+ 0 0
Cero -

+ 1111...1 0
Infinito -

+ 1111...1 Cualquier patron bits diferente de cero


Indeterminado -

Figura 2.19 Cuadro resumen de casos especiales del formato IEEE 754.

Figura 2.20 Representación de la recta real en el formato IEEE 754.

Concepto Precisión simple Precisión doble


Bits para el signo 1 1
Bits para el exponente 8 11
Bits para la mantisa 23 52
Total de bits 32 64
Formato del exponente Exceso 127 Exceso 1023
Rango del exponente –126 a +127 –1022 a + 1023
Valor normalizado más pequeño 2–126 (10–38) 2–1022 (10–308)
Valor normalizado más grande 2128 (1038) 21024 (10308)
Valor desnormalizado más pequeño 2–150 (10–45) 2–1074 (10–324)

Tabla 2.3 Tipos numéricos del IEEE 754

Como conclusión se puede expresar que la representación en coma


flotante se utiliza para representar a los números reales. Sin embargo, no se
puede representar a todos ya que estos son infinitos y la capacidad de
almacenamiento es finita. El exponente determina el rango de la recta real,
es decir los segmentos de ella, mientras que la mantisa determina la
precisión (longitud del mínimo intervalo).

88
Estructura y Funcionamiento de Computadoras I Unidad 2 – Representación de datos

Ejemplo 2.33

Convertir a decimal el siguiente número representado en la Norma IEEE 754 de precisión simple expresado en
notación compacta hexadecimal: BF80 0000
En este caso, lo primero que debe hacerse es convertir los dígitos hexadecimales a binario:
B F 8 0 0 0 0 0
1011 1111 1000 0000 0000 0000 0000 0000
Teniendo en cuenta que por ser de precisión simple, la distribución de bits tomados de izquierda a derecha es:
1 bit de Signo, 8 bits de exponente y 23 bits de mantisa, nos queda:
S Exponente Mantisa
1 0111 1111 0000 0000 0000 0000 0000 000
Para encontrar el número representado, se procede de manera inversa a la realizada en la conversión a
formato IEEE754
1. Obtener el valor del exponente. El exponente en simple precisión está representado en Exceso 127. Para
hallar el exponente se debe convertir la representación en exceso a decimal y restarle 127 :
Representación en Exceso 127 = 0111 1111 = (127)10
e = Representación en Exceso – 127 = 127 – 127 = 0
2. Obtener la mantisa. La mantisa se obtiene tomando los bits correspondientes de la representación del
número:
m = 0000 0000 0000 0000 0000 000
3. Obtener el número sin normalizar. Primero se debe obtener la forma normalizada 1,m x be aplicando el
exponente a la mantisa y teniendo en cuenta el uno tácito (la representación según la Norma IEEE754 omite
el 1 que está delante de la coma en 1,m):
Valor normalizado = 1,0000 0000 0000 0000 0000 000 x (20)10
Nota: Se muestra be en base 10 para mayor claridad.
Luego, al resolver la forma normalizada se obtiene el número sin normalizar. El método práctico consiste en
desplazar la coma tantos lugares como indique el exponente, hacia la derecha o hacia la izquierda según el
signo del exponente. En este caso el exponente es cero, luego:
N2 = 1, 0000 0000 0000 0000 0000 000 x (1) = 1,0000 0000 0000 0000 0000 0002 = 12
4. Convertir el número a decimal. La conversión a decimal queda:
12 = 110
5. Determinar el signo del número. La representación del número tiene S = 1, lo que indica que el número es
negativo. Por lo tanto:
N10 = -1

89
En resumen…
En el Sistema de Representación según la norma IEEE 754:
 Se pueden representar números reales.
 La representación se basa en la expresión binaria en notación científica del número: N = 1,m × be ,
donde N es un número real positivo o negativo, m es la mantisa (parte fraccionaria), b es la base
binaria y e el exponente.
 Existen dos formatos básicos: simple precisión (32 bits) y doble precisión (64 bits).
 La precisión simple utiliza 1 bit de signo, 8 bits para el exponente y 23 bits para la mantisa.
 La precisión doble utiliza 1 bit de signo, 11 bits para el exponente y 52 bits para la mantisa.
 Para representar un número N, el primer paso es expresarlo en binario puro y luego normalizarlo, esto
es, llevarlo a la forma 1,m × be
 El primer bit indica el signo del número.
 El exponente e se representa en Exceso 127 o Exceso 1023, según sea el formato de la representación
(precisión simple o doble).
 La mantisa m es la parte fraccionaria del número normalizado; es decir, no se representa el "1",
denominado uno implícito., pero al formar el número a partir de su representación, hay que tener en
cuenta que este 1 forma parte del valor del número.

A continuación y a modo de ejemplo, en la siguiente, se muestran los


principales tipos de datos utilizables en el lenguaje de programación C
(compilador Borland C++ para PC).


Precisión
Tipo de Rango de valores
(dígitos decimales)
bits
Carácter 8 -128 a 127 ---
Carácter sin signo 8 0 a 255 ---
Enumerado 16 -32.768 a 32.767 ---
Entero corto 8 -128 a 127 ---
Tipos
Entero corto sin signo 8 0 a 255 ---
Enteros
Entero 16 -32.768 a 32.767 ---
Entero sin signo 16 0 a 65.535 ---
Entero largo 32 -2.147.483.648 a 2.147.483.648 ---
Entero largo sin signo 32 0 a 4.294.967.295 ---
Coma flotante 32 ± [3,4E-38 a 3,4E38], 0 7
Tipos
Coma flotante doble 64 ± [1,7E-308 a 1,7E308], 0 15
Reales
Coma flotante doble largo 80 ± [3,4E-4932 a 1,1E4932], 0 19
Tabla 2.4 Principales tipos de datos en C++ (compilador Borland C++ para PC)

2.3.7. Nociones de Error


Una de las formas usuales que utiliza el hombre para describir su
entorno, es realizando mediciones. Cada entidad o evento puede ser
descripto por varias medidas. Por distintas causas (instrumento utilizado,
método o destreza del medidor, entre otras), el proceso de realizar una

90
Estructura y Funcionamiento de Computadoras I Unidad 2 – Representación de datos

medición hace que el valor obtenido no se corresponda con el valor


verdadero, dando lugar a errores.
Algunos errores están en los valores que se toman de los datos, porque
se representan con aproximaciones, es decir, tienen un número finito de
dígitos o de cantidades que no responden exactamente con el número real
de dígitos.

En esta Unidad, el objetivo es proporcionar algunas nociones sobre el


concepto de error que se presentan al representar números y resolver
problemas matemáticos usando computadoras. Es muy difícil estimar el
error total en el que se incurre al resolver un problema, de manera que sólo
se pretende dar herramientas muy básicas sobre el tema.

Por ejemplo, si necesitamos usar el número  en un cálculo, podemos


escribirlo como 3.14, 3.1416, 3.1415926535589793..., etc.

En muchos casos aún una fracción simple no tiene representación


1
decimal exacta, por ejemplo , debe escribirse con una aproximación, esto
3
1
es  0,3333...
3

Son muchas las aplicaciones que demandan cómputo aritmético


intensivo: tales como criptografía, multimedia, telefonía celular y ciertos
dispositivos electrónicos. Por esta razón hay un crecimiento de la aritmética
de las computadoras, eso lleva a producir errores y surge la necesidad de
detectarlos.
No debe confundirse exactitud con precisión. La exactitud está
relacionada al grado de aproximación de la medida efectuada con respecto
al verdadero valor. Una medición será más exacta, cuanto menor sea el
error cometido. Por otra parte, el concepto de precisión está relacionado a la
unidad menor de cambio que puede percibirse. A modo de ejemplo, puede
citarse el caso de un reloj digital. Cuando se habla de la precisión del reloj
no entra en juego la exactitud, que puede ser mejor o peor según sea la
calidad del mismo. De hecho, puede tenerse un reloj con alta precisión
(centésimas de segundo) y que permanentemente atrase (inexacto); o
también podríamos tener un muy buen reloj (muy exacto) con menor
precisión que el primero (por ejemplo que nos indique solo al minuto).

Definiciones de error
Los errores numéricos surgen del uso de aproximaciones para
representar operaciones y valores verdaderos. Éstos incluyen los errores de
truncamiento que resultan del empleo de aproximaciones siempre por
defecto, por insuficiencia de precisión para representar el valor verdadero, y
los errores de redondeo, que están motivados por el mismo argumento que
los anteriores, pero que a diferencia de los de truncamiento, a veces se
producen por defecto y otras veces en exceso.
Para ambos tipos de errores, la relación entre el resultado verdadero y
el aproximado está dada por:
Valor verdadero = Valor aproximado + Error
o
Error = Valor verdadero - Valor aproximado

91
Ejemplo:
Calculemos el error cometido al tomar el valor Va  8,14 como una
aproximación con 2 decimales, del número Vv  8,14593.
Tenemos:
E  Vv – Va  8,14593 – 8,14 = 0,00593

En este caso E > 0 y por lo tanto Va es una aproximación de Vv por


defecto. En el caso que E< 0, se dice que la aproximación es por exceso.

Redondeo y truncamiento de números


Recordemos que la representación de un número en la computadora
permite un número limitado de cifras. Para eliminar las cifras que no se van
a incluir en la representación de un número, se puede aplicar truncamiento
o redondeo.

Truncamiento: Simplemente se conservan tal como están las n primeras


cifras en el número.
Ejemplos:
7
a)  2,33333... si lo truncamos hasta 4 cifras significativas se
3
aproxima como: 2,333.
8
b)  2,666666666... si lo truncamos hasta 6 cifras significativas se
3
aproxima como: 2,66666.

Redondeo: Las reglas de redondeo que aplicaremos son:


1 La última cifra retenida se incrementa en 1 si el primer dígito
descartado es mayor que 5.
2 Si el primer dígito descartado es menor que 5, entonces la última
cifra retenida no se altera.
3 Si el primer dígito descartado es 5, se toma como última cifra el
número par más próximo; es decir, si la última cifra retenida es par
se deja, y si es impar se incrementa en uno.

Las dos primeras reglas son de sentido común. La tercera es un


convenio razonable porque, si se sigue siempre, la mitad de las veces
redondeamos por defecto y la mitad por exceso.
Al redondeo que se rige por estas reglas se lo conoce como redondeo
simétrico y es el que aplican las computadoras que redondean.

Ejemplos:
7
a)  2,33333... redondeado a 4 cifras significativas se representa igual
3
que si truncamos.
8
b)  2,66666... si lo redondeamos a 6 cifras significativas se aproxima
3
como 2,66667.

La mayoría de las computadoras trabajan con redondeo.


Normalmente, la necesidad de redondear en cálculos numéricos, se
presenta en números decimales (con coma decimal) periódicos o en
números decimales con infinitas cifras decimales no periódicas.

92
Estructura y Funcionamiento de Computadoras I Unidad 2 – Representación de datos

Además, la mayoría de las computadoras actuales permiten el uso de


la aritmética de doble precisión (mediante hardware o software),
proporcionando el doble de cifras significativas que la aritmética de punto
flotante de precisión simple. Obviamente, al truncar o redondear un
número se comete un error.

Representación de números reales en IEEE754


La coma flotante no es una representación exacta para todos los
números reales, sino que, en algunos casos permite representar los
números reales en forma aproximada. Es preciso aplicar cuidadosamente
técnicas de redondeo.

Representación en simple precisión de 32 bits para la IEEE754


Puesto que los números extremos representables en coma flotante son
± 1038, ello implica que si escribimos en el teclado un número en base 10
de 37 cifras, será aceptado dentro del rango de representación. Pero como
se verificará, devolverá con precisión las 7 primeras de sus cifras, dado que
en la representación tratada sólo se disponen de 23+1 = 24 bits para
guardar cualquier número representable en coma flotante (son 23 +1 por el
bit implícito de la normalización que no se representa). Esta limitación de la
cantidad de dígitos que se pueden representar, propia de cualquier
representación de números en una computadora (sean reales, enteros u
otros) determina que siempre se trate de “números con precisión finita”.

2.3.8. Formatos de Longitud Variable: Decimal Codificado en


Binario (BCD).
Los formatos decimales codificados en binario convierten, uno a uno,
los dígitos decimales a binario.
Para poder representar un dígito decimal cualquiera (del 0 al 9) se
requerirán al menos 4 bits. Ahora bien, puesto que 4 bits permiten 16
combinaciones pero sólo existen diez dígitos decimales, se desperdicia el
6×100/16 = 37,5% de la capacidad de representación. Cabría, por tanto,
preguntarse por el interés en este sistema de representación. La
justificación de su uso se basa en dos puntos:
 La entrada y salida de datos del computador debe realizarse usando
la base decimal, puesto que es el sistema “natural” para el operador
humano. Por tanto, si los cálculos a realizar son sencillos, el uso de
otro sistema de representación puede no compensar la doble
traducción de decimal a binario y viceversa, aunque los datos ocupen
más espacio y los cálculos con ellos sean más lentos al utilizar BCD.
 Los errores de redondeo que se producen en binario y decimal son
distintos. Por ello, para algunas aplicaciones puede ser interesante
trabajar con un sistema de representación de este tipo, que permite
seguir exactamente las normas de redondeo establecidas en decimal.

La codificación BCD consiste en asociar a cada dígito su valor en


binario puro.

93
Ejemplo 2.34

Represente el número (175,62)10


N10 = 1 7 5 6 2
BCD 0001 0111 0101 0110 0010

Por lo tanto, el número 175,62 se representa en BCD con 3 Bytes y quedaría de la siguiente manera:
N = 0000 0001 0111 0101 0110 0010
Utilizando notación compacta hexadecimal:
N = 01 75 62

Nótese que la coma no se representa. Se determina a través del


formato del lenguaje de programación asociado. Por ejemplo en COBOL, el
formato asociado sería 999V99. Donde 9 indica que es numérico y la V la
posición de la coma.

Existen dos variantes en la representación BCD:


BCD empaquetado. En este caso se almacenan 2 dígitos decimales por
cada byte y el signo va en el segundo cuarteto del último byte.
BCD desempaquetado. En este caso, cada dígito se almacena en el
segundo cuarteto de cada byte (los primeros cuatro bits se completan con
unos) y el signo se guarda en el primer cuarteto del último byte.

Como ya se mencionó anteriormente, de las 16 combinaciones posibles


al representar los dígitos decimales con 4 bits, quedan 6 combinaciones sin
utilizar. De las combinaciones libres, se ocupan dos para representar los
signos. Por convención se adopta la combinación 1100 (el símbolo C16) para
el signo positivo y la combinación 1101 (el símbolo D16) para el signo
negativo.

Ejemplo 2.35

Represente en codificación BCD los siguientes números:


+8435Desempaquetado F8 F4 F3 C5 La C indica signo +
-8435 Desempaquetado F8 F4 F3 D5 La D indica signo -
+8435Empaquetado 08 43 5C La C indica signo +
-875 Empaquetado 87 5D La D indica signo –

Los formatos decimales codificados en binario tienen dos ámbitos de


aplicación:

 Desempaquetado: En la entrada-salida y periféricos los números


suelen codificarse como caracteres alfanuméricos, empleando un
byte por dígito. El signo se incluye en la parte sobrante del byte que
representa el último carácter. Otras alternativas utilizan la parte

94
Estructura y Funcionamiento de Computadoras I Unidad 2 – Representación de datos

sobrante del primer carácter, o un carácter especial de cabecera o de


cola.
 Empaquetado: En cálculo, especialmente en aplicaciones de gestión,
se puede emplear un sistema empaquetado, esto es, reservando
solamente cuatro bits por dígito.

En resumen…
El Sistema de Representación BCD:
 Permite la representación de datos numéricos.
 Representa cada dígito decimal mediante 4 bits (medio byte).
 Permite realizar operaciones aritméticas (no ha sido explicado).
 Existe un alto número de combinaciones desaprovechadas.
 Existen dos formatos de BCD: empaquetado (4 bits/dígito) y desempaquetado (8 bits/dígito).
 Es un formato de longitud variable, ya que la cantidad de bytes que ocupe la representación
dependerá de la cantidad de dígitos que tenga el número.

2.4 Representación de texto


Sirve para representar información de tipo texto. En los años 50, se
definieron formatos de codificación empleando 6 bits por carácter. Ello
permitía representar hasta 64 caracteres distintos:
 26 letras mayúsculas (A  Z)
 10 números (0  9)
 28 caracteres especiales y símbolos de puntuación (. , ; + - *…)
Ejemplos de estos formatos son el Fieldata, X.3 y el BCDIC.

Sin embargo, la necesidad de representar letras mayúsculas y


minúsculas, así como de tener caracteres para control de periféricos, han
dado lugar a códigos de 7 bits, como el ASCII (American Standard Code
Interchange Information), y de 8 Bits, como el ASCII extendido y el EBCDIC
(Extended Binary Coded Decimal Interchange Code), introducido por IBM
360 en el año 1964. En la actualidad el más popular es el ASCII extendido,
que emplea 8 bits para incluir letras acentuadas, la ñ, caracteres
semigráficos y muchos otros símbolos.
Los caracteres comúnmente utilizados en informática se pueden
agrupar en cinco categorías:
a) Caracteres alfabéticos: son las letras minúsculas y mayúsculas del
abecedario inglés: a, b, c,...., x, y, z, A, B, C,...., X, Y, Z
b) Caracteres numéricos: son los diez símbolos decimales: 0, 1, 2,..., 8, 9
c) Caracteres especiales: son los símbolos ortográficos y matemáticos no
incluidos en los grupos anteriores: ° ¡ “ $ % & + - , ; . ¿

95
d) Caracteres geométricos y gráficos: son los símbolos con los que se
pueden representar formas geométricas o íconos elementales: ¶, ☼, ♀,▬,
▲, ▼, ←
e) Caracteres de control: representan órdenes de control. Estos son
insertados en los textos por los usuarios o por los programas de control
de periféricos o de comunicación. Algunos ejemplos son:
NL: pasar a la línea siguiente
CR: ir al comienzo de una línea
SYN: sincronización de una transmisión

2.4.1. Código ASCII


El código ASCII (American Standard Code for Information Interchange)
básico utiliza 7 bits para representar cada carácter y es actualmente uno de
los más usados. Existen numerosas versiones que utilizan 8 bits y respetan
los códigos normalizados del ASCII básico, aprovechando las combinaciones
no utilizadas para representar símbolos adicionales. Por ejemplo, la norma
ISO 8859-1, también denominada ISO Latín1, se proyectó para América y
Europa Occidental, e incluye vocales con acentos, tildes, con signos
diacríticos (esto es, signos ortográficos que dan a una letra un valor
especial, como la diéresis usada en alemán y en español), etc.

Vale la pena resaltar que:


- El ASCII extendido utiliza 8 bits para representar cada carácter
- En ASCII los números tienen los primeros cuatro bits (zona)
formando el hexadecimal 3 (0011), mientras que el número decimal
es codificado en los cuatro bits restantes.

La tabla siguiente muestra la codificación binaria del ASCII extendido.

Bits 7654
0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
3210 0000
0000 NUL DLE SP 0 @ P ` p Ç É á ░ ┴ Ð ß ±
0001 SOH DC1 ! 1 A Q a q ü æ í ▒ ┬ Ê Ô ‗
0010 STX DC2 “ 2 B R b r é Æ ó │ ├ Ë Ò ¾
0011 ETX DC3 # 3 C S c s â ô ú ┤ ─ È õ ¶
0100 EOT DC4 $ 4 D T d t ä ö ñ Á ┼ ı Õ §
0101 ENQ NAK % 5 E U e u à ò Ñ Â ã Í µ ÷
0110 ACK SYN & 6 F V f v å û ª À Ã Î þ ¸
0111 BEL ETB ‘ 7 G W g w ç ù º © ╚ Ï Þ °
1000 BS CAN ( 8 H X h x ê ÿ ¿ ╣ ╔ ┘ Ú ¨
1001 HT EM ) 9 I Y i y ë Ö ® ║ ╩ ┌ Û ·
1010 LF SUB * : J Z j z è Ü ¬ ╗ ╦ █ Ù ¹
1011 VT ESC + ; K [ k { ï ø ½ ╝ ╠ ▄ ý ³
1100 FF FS , < L \ l | î £ ¼ ¢ ═ ¦ Ý ²
1101 CR GS - = M ] m } ì Ø ¡ ¥ ╬ Ì ¯ ■
1110 SO RS . > N ^ n ~ Ä × « ┐ ¤ ▀ ´ �
1111 SI US / ? O _ o • Å ƒ » └ ð Ó

Tabla 2.5 Tabla de caracteres del código ASCII extendido

96
Estructura y Funcionamiento de Computadoras I Unidad 2 – Representación de datos

Ejemplo 2.36

Represente en código ASCII extendido usando notación en binario y hexadecimal la cadena “Hola”.
Como la conversión es directa, cada carácter es representado en un byte. De acuerdo con la Tabla 2.5. sería:
Hola = 0100 1000 0110 1111 0110 1100 0110 0001 en binario
Hola = 48 6F 6C 61 en hexadecimal

2.4.2. Código EBCDIC


El código EBCDIC (Extended Binary Coded Decimal Interchange Code)
utiliza 8 bits para representar cada carácter.
Este tipo de codificación permite codificar 256 (28) símbolos distintos,
lo que significa que se pueden representar una cantidad razonable de
caracteres.
La tabla siguiente muestra la codificación binaria del EBCDIC.

Bits 7654
0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
3210 0000
0000 NUL DLE DS IRS SP & - ø Ø ° µ ¢ ä å É 0
0001 SOH DC1 SOS ITB RSP ` / \ a j ü £ A J ÷ 1
0010 STX DC2 FS SYN â ê Â Ê b k s ¥ B K S 2
0011 ETX TM WUS IR { ë # Ë c l t · C L T 3
0100 PF RES BYP PN à è À È d m u © D M U 4
0101 HT NL LF RS á í Á Í e n v [ E N V 5
0110 LC BS ETB UC ã î Ã Î f o w ¶ F O W 6
0111 DEL IL ESC EOT } Ï $ Ï g p x ¼ G P X 7
1000 GE CAN SA SBS ç ì Ç Ì h q y ½ H Q Y 8
1001 SPS EM SFE IT ñ ß Ñ é i r z ¾ I R Z 9
1010 SMM CC SM RFF § ¤ ö : « ª ¡ ¬ SHY ¹ ² ³
1011 VT CU1 CU2 CU3 . Å , Ä » º ¿ │ ô û Ô Û
1100 FF IFS MFA DC4 < * % Ö ð æ Ð ─ ¦ ~ @ Ü
1101 CR IGS ENQ NAK ( ) _ ‘ ý , Ý ] ò ù Ò Ù
1110 SO IRS ACK + ; > = Þ Æ þ ´ ó ú Ó Ú
1111 SI IUS BEL SUB ! ^ ? “ ± ] ® × õ ÿ Õ EO

Tabla 2.6 Tabla de caracteres del código EBCDIC

Sobre esto se puede hacer los siguientes comentarios:


- En el EBCDIC los números tienen los primeros cuatro bits (zona) en
1 (en hexadecimal forman la letra F)
- Cuando se realiza una clasificación alfanumérica se realiza en
función del número hexadecimal que está almacenado.

97
Ejemplo 2.37

Represente en código EBCDIC usando sistema binario y hexadecimal la cadena “Hola”.


Al igual que en el sistema anterior se representa un carácter con un byte, de acuerdo con la Tabla 2.6 quedaría:
Hola = C8 96 93 81 = 1100 1000 1001 0110 1001 0011 1000 0001

2.4.3. Código Unicode


Los códigos anteriores tienen limitaciones y problemas. Por ejemplo, la
cantidad de caracteres es insuficiente en algunas situaciones como la
representación del lenguaje escrito de diversas culturas orientales, tales
como la china, japonesa y coreana. Este problema es especialmente
relevante para las aplicaciones de Internet, ya que se pretende que éstas
sean lo más universales posible.
Unicode es una norma de codificación de caracteres propuesto por un
consorcio de empresas (Apple, HP, IBM, Microsoft, Oracle Sun, Sybase,
Unisys, etc.) y entidades que trata de ofrecer las siguientes propiedades:
 Universalidad: ya que persigue cubrir la mayoría de lenguajes escritos
existentes en la actualidad.
 Unicidad: ya que a cada carácter se le asigna exactamente un único
código, a diferencia de las distintas variantes de ASCII que sólo definen
los necesarios para un idioma o zona geográfica.
 Uniformidad: ya que todos los símbolos se representan con un número
fijo de bits, concretamente 16 bits.

Básicamente Unicode proporciona un número único para cada


carácter, sin importar la plataforma, ni el programa, ni el idioma,
permitiendo un fácil traspaso entre distintos sistemas de codificación y
plataformas. Además, es un requisito para sistemas modernos tales como
XML, Java, CORBA, WML, etc.
En la siguiente tabla se muestra un esquema de cómo se han asignado
los códigos Unicode. Las 65.536 diferentes combinaciones (0000H a FFFFH)
se han dividido en cuatro zonas:

Número de
Zona Códigos Símbolos codificados
caracteres
0000
Latín 1 256
00FF
A 0000 Otros alfabetos 7.936
Símbolos generales y caracteres fonéticos chinos,
2000 8.192
japoneses y coreanos
I 4000 Ideogramas 24.576
O A000 Pendiente de asignación 16.384
E000
R Caracteres locales y propios de los usuarios 8.192
FFFF

Algunas características de Unicode son:


 Cada carácter se codifica mediante 16 bits, lo que permite representar
216 = 65536 símbolos.
 No se codifican caracteres de control.
 Se incluyen caracteres combinados, por ejemplo ñ, ä, etc.

98
Estructura y Funcionamiento de Computadoras I Unidad 2 – Representación de datos

 Cada combinación es un concepto abstracto, no determina la forma o


imagen del carácter (font o fuente). Las letras latinas de mayúsculas y
minúsculas tienen caracteres distintos.

Unicode se está utilizando cada vez más y es reconocido por sistemas


operativos tales como Windows XP, lenguajes tales como Java y
aplicaciones como navegadores web.

2.5 Representaciones redundantes


El objetivo de las representaciones redundantes es salvaguardar la
información frente a posibles errores surgidos en su almacenamiento o
manipulación. Para ello se añade una información adicional (redundancia) a
cada dato, de forma que el conjunto [redundancia + dato] guarde una cierta
ley. Si se produce un error en este conjunto, ya no se cumplirá la citada ley,
por lo que se puede detectar que ha aparecido un error. Empleando
suficiente información redundante se puede, incluso, no sólo detectar un
error sino varios y, además, identificarlos y, por lo tanto, corregirlo.

Está claro que el error puede producir un nuevo código que también
cumpla la ley. El problema de diseño es, por tanto, buscar una ley que
permita detectar y/o corregir todos los errores posibles o probables.

2.5.1. Detección de errores en la transmisión de datos


La introducción de redundancias con objeto de detectar o corregir
errores se efectúa de acuerdo con algún algoritmo predeterminado; de esta
forma los códigos pueden comprobarse automáticamente por circuitos
adecuados. A modo de ejemplo sólo mencionaremos el código de paridad,
dejando para otras asignaturas el tratado de este problema en forma más
detallada.
El Código de Paridad es un algoritmo que consiste en añadir al código
inicial de cada cadena de bits (dato, palabra) un nuevo bit denominado bit
de paridad. Existen dos criterios para introducir este bit:
 Paridad par: se añade un bit (0 o 1) de forma tal que el número total de
unos de código que resulte, incluido el bit de paridad, sea par.
 Paridad impar: se añade un bit (0 o 1) de forma tal que el número total
de unos de código que resulte, incluido el bit de paridad, sea impar.

Código con bit de paridad Código con bit de paridad


Código inicial
(criterio par) (criterio impar)
1000 0001 1000 0001 0 1000 0001 1
0010 1111 0010 1111 1 0010 1111 0
1100 1000 1100 1000 1 1100 1000 0

99
Se suele agregar acompañando a cada octeto en los periféricos o a
cada palabra en la memoria principal.
El código de paridad permite detectar el error en un solo bit (error
simple), por lo que es válido para aquellos casos en que éste sea el tipo de
error más probable. Si las condiciones hacen más probable el error múltiple
y existe un número par de bits con error, la paridad resulta correcta, por lo
que ese tipo de error no puede detectarse con este algoritmo.
Cabe destacar que este código solo permite detectar el error, pero no lo
corrige ya que no permite identificar cuál es el bit erróneo.

Ejemplo 2.38

Dada la cadena 1101011 a transmitir como dato, agregue el bit de paridad considerando paridad impar:
Para la cadena 1101011 el bit de paridad es 0 para cumplir con el criterio de paridad impar, ya que al analizar la
cadena encontramos 5 unos, que es un número impar. Para que la cadena resultante siga presentando paridad
impar, el bit a agregar debe ser 0.
Por lo tanto, la cadena resultante a ser operada en la transmisión es 11010110.

El bit de paridad se introduce antes de transmitir o grabar la


información (en la memoria principal o disco magnético). Si por efectos del
ruido, interferencias en la transmisión o defecto del soporte de información
un bit cambia de valor (de 1 a 0 o de 0 a 1), se introduce un error. Si en el
receptor o al leer la información se comprueba la paridad del mensaje (esto
es, se cuenta su cantidad de unos), se detectaría la existencia de ese error,
ya que el número de unos dejaría de ser par (en el caso de criterio par) o
impar (en el caso de criterio impar).

100
Estructura y Funcionamiento de Computadoras I Unidad 2 – Representación de datos

Bibliografía

PRIETO ESPINOSA, LLORIZ RUIZ, TORRES CONTERO. "Introducción a la


Informática" - 3ra Edición McGrawGill, 2002
DE MIGUEL ANASAGASTI, Pedro. "Fundamentos de los Computadores"
GINZBURG, ALBARRACÍN. “Operación Programación de Computadoras" -
4ta Edición
STALLING, William."Organización y Arquitectura de Computadores"
MEINADIER, Jean Pierre. "Estructura y Funcionamiento de Computadores
Digitales"

101
Unidad 3 

Memorias internas
Índice temático Unidad Nº 3 – Memorias internas

3.1 Introducción ....................................................................................... 105


3.2 Descripción de las memorias internas .................................................. 107
3.2.1 Los registros del procesador ....................................................................... 107
3.2.2 Memoria caché de RAM ............................................................................. 107
3.2.3 La memoria principal .................................................................................. 108
La memoria ROM BIOS................................................................... 109
La memoria RAM ........................................................................... 109
3.3 Componentes de la Memoria .............................................................. 111
3.3.1 Medio o soporte ......................................................................................... 112
3.3.2 Mecanismo de escritura y lectura .............................................................. 112
3.3.3 Mecanismo de direccionamiento ............................................................... 112
3.4 Parámetros característicos de la Memoria .......................................... 115
3.4.1 Capacidad de almacenamiento .................................................................. 115
3.4.2 Duración de los Datos ................................................................................. 116
3.4.3 Unidad de transferencia ............................................................................. 116
3.4.4 Método de Acceso ...................................................................................... 117
3.4.5 Tiempo de Acceso (Ta)................................................................................ 117
3.4.6 Velocidad de Acceso ................................................................................... 118
3.5 Tecnologías de memoria interna ......................................................... 119
3.5.1 Memorias RAM ........................................................................................... 119
RAM Estáticas (SRAM) ................................................................... 119
RAM Dinámicas (DRAM). ............................................................... 120
Módulos de Memoria RAM............................................................ 122
DIMM DDR o DDR .......................................................................... 123
SO-DIMM ....................................................................................... 123
3.5.2 Memorias de Solo Lectura o Memorias ROM. ........................................... 124
Principio de funcionamiento de las ROM ...................................... 124
Tipos de memoria ROM ................................................................. 126
Bibliografía ................................................................................................................. 128
Estructura y Funcionamiento de Computadoras I Unidad 3 – Memorias internas

Unidad 3 

Memorias internas
Las Memorias Internas
y la placa madre

Los Registros del Procesador


Descripción de las La Memoria Caché de RAM
Memorias Internas La Memoria Principal La Memoria ROM- BIOS
La Memoria RAM

Medio o Soporte
Componentes de la Mecanismo de Lectura /escritura
Memoria Mecanismo de direccionamiento

Capacidad de almacenamiento
Duración de los datos
MEMORIAS Parámetros Unidad de Transferencia
INTERNAS característicos Método de acceso
Tiempo de acceso
Velocidad de acceso

Estáticas : SRAM
Memorias RAM Dinámicas: DRAM

Tecnologías de
Memorias Internas Principio de funcionamiento
ROM de máscara
PROM
Memorias ROM Tipos EPROM
EEPROM
FLASH

3.1 Introducción
Se ha creído conveniente diferenciar el conjunto de las memorias
presentes en un sistema informático en dos grandes grupos: Memorias
Internas y Externas.
La memoria interna es aquella memoria que se encuentra físicamente
integrada a la placa madre, esto es, el procesador accede a ellas mediante
las interfaces (buses) propias de la placa madre.
En la arquitectura PC la placa madre o placa base ("motherboard" o
"mainboard") contiene distintos componentes que se encuentran integrados.
Es una placa de circuito impreso multicapas de unos 600 cm2 en la que se
incluyen elementos de montaje superficial (soldados) y otros como zócalos y
conectores para diversos elementos desmontables.
A grandes rasgos, los componentes principales de la placa madre son
los que se han esquematizado en la Figura 3.1.

105
Figura 3.1 Esquema de la placa madre o motherboard.

 BIOS. "Basic Input-Output System", sistema básico de entrada-


salida. Es un componente de software que contiene las rutinas de
inicio que prepara la computadora para la operación y se encuentra
grabada en ROM (memoria de solo lectura)
 Bus externo. Es una ruta de datos en la computadora, la cual
consiste de diversos cables en paralelo a los que están conectados la
CPU, la memoria y todos los dispositivos de entrada/salida. El bus es
un conjunto de pistas conductoras grabadas en la placa
madre. Precisamente su característica más importante es el número
de tales pistas, pues cuanto mayor sea este número, mayor es la
cantidad de bits que transporta. Como cada conductor puede
transportar un bit, en realidad no suele hablarse de "conductores"
para referirse al ancho del bus, sino de "bits"
 Chipset. Conjunto de chips o microchips que dan soporte a la CPU.
Generalmente, el conjunto de chips contiene varios controladores que
gobiernan la forma en que viaja la información entre el procesador y
otros componentes.
 Conectores. La placa-madre dispone generalmente de una serie de
conectores para enchufar determinados dispositivos. Entre los más
frecuentes están: Conector para la fuente de alimentación, Conector
DB25 de puerto paralelo; conector DB9 para puerto serie; conector
USB (para “puertos USB”, permiten conectar distintos tipos de
periféricos y caracterizados por su alta velocidad en la transferencia
de información); conectores mini-DIN para ratón y teclado, etc.
 Microprocesador. Es la unidad central de procesamiento (CPU). El
chip de la computadora que tiene la responsabilidad de interpretar
comandos, ejecutar programas y a instancia de éstos, procesar datos.
 Memoria RAM. Es un dispositivo o conjunto de dispositivos
capaces de almacenar los programas y datos que le proveerá al
procesador para su ejecución. Debe disponer de un mecanismo de
direccionamiento y de un mecanismo de recuperación de datos. Es
una memoria de lectura/escritura.
 Zócalos para tarjetas de Expansión. Zócalos con conectores
eléctricos (slots) donde se introducen las tarjetas de los periféricos
(tarjeta de vídeo, de sonido, de red,...). Según la tecnología en que se

106
Estructura y Funcionamiento de Computadoras I Unidad 3 – Memorias internas

basen, pueden presentar un aspecto externo diferente, con diferentes


tamaños y a veces incluso en distinto color.

3.2 Descripción de las memorias internas


Se considera como memoria interna a los siguientes componentes de
la computadora:
 Los registros del procesador.
 La caché de Memoria principal.
 La Memoria principal.
o La memoria ROM BIOS.
o La memoria RAM.

3.2.1 Los registros del procesador


Estos registros son elementos de memoria de poca capacidad (32 o 64
bits) pero con elevada velocidad de acceso (su tiempo de acceso está en el
orden de los nanosegundos). Se encuentran dentro de la CPU y sirven para
el almacenamiento temporal de la información mientras espera ser tratada
por la Unidad de Control o la UAL. Se tratarán en detalle en la Unidad 5
(ver sección 5.3.3)

3.2.2 Memoria caché de RAM


La memoria caché es una clase de memoria especial de alta velocidad.
Esta memoria conecta la CPU y la RAM, es decir, está interpuesta entre la
CPU y la RAM. Está diseñada para acelerar la gestión de instrucciones
desde la RAM hacia la CPU. La CPU puede obtener las instrucciones y los
datos ubicados en la memoria caché mucho más rápidamente que las
instrucciones y datos almacenados en la memoria principal.
Una memoria caché, llamada también a veces almacenamiento caché o
RAM caché, es una memoria RAM estática de alta velocidad (SRAM) más
rápida que la lenta y barata RAM dinámica (DRAM) usada como memoria
principal.

Relacionada a la memoria RAM o memoria Principal, existe entonces


una clase de memoria denominada Memoria Caché que tiene la
característica de ser más rápida y estar ubicada entre la CPU y la
memoria principal, permitiendo que el intercambio de datos entre el
procesador y la memoria principal sea a mayor velocidad.

Por ejemplo, en una placa madre típica de 100 MHz, el CPU necesita
hasta 180 nanosegundos para obtener información de la memoria principal,
mientras que la información de la memoria caché sólo necesita de 45
nanosegundos.
Por lo tanto, cuantas más instrucciones y datos la CPU pueda obtener
directamente de la memoria caché, más rápido será el funcionamiento de la
computadora.
Las clases de memoria caché incluyen caché principal, también
conocida como caché de Nivel 1 (L1) y caché secundaria, también conocida
como caché de Nivel 2 (L2); estas dos caché (L1 y L2) son internas, es decir
que están incluidas dentro del Procesador o CPU, como se puede ver en la

107
Figura 3.2. En los procesadores actuales, se puede encontrar una caché de
Nivel 3 (L3), que se usa como ampliación de la L2. Estas últimas se
incorporan en zócalos para ampliación denominados COAST (“Cache On A
Stick)
El siguiente diagrama suministra una representación simplificada de
los elementos que componen el procesador, donde se pueden apreciar las
memorias caché:

Figura 3.2 Componentes


de un procesador.

FPU: unidad de punto flotante, que ejecuta cálculos complejos


parciales que la unidad aritmética lógica no puede realizar.
Como se mencionó anteriormente, estas memorias cache se sitúan
entre el microprocesador y la RAM del sistema, de forma que el controlador 1
de la cache se irá anticipando a la CPU y suministrará información a la
memoria caché desde la RAM en previsión de lo que el microprocesador
necesite. Sólo en el caso de que esta estimación de información no sea
correcta se accederá a la RAM. Estadísticamente (según el tamaño de la
Cache y los algoritmos de selección de información) la cache suministra
información necesaria al microprocesador entre el 80% y el 95% de las
ocasiones.

3.2.3 La memoria principal


La comunicación entre la CPU y la Memoria Principal (MP) debe ser
rápida, así es que desde un principio la MP de las computadoras fue de
acceso random o aleatorio, esto significa que la CPU demora el mismo
tiempo en acceder a cualquier posición de la memoria; de aquí su
denominación de RAM (Random Access Memory). Pero además, la memoria
RAM, por ser la "memoria de trabajo", también tiene la característica de ser
una memoria de lectura/escritura. Por su tecnología, la memoria RAM es
volátil, es decir que pierde su contenido al quitarle la fuente de energía.

1
El controlador de memoria es un circuito electrónico digital que se encarga de
administrar los datos entre el procesador y la memoria.

108
Estructura y Funcionamiento de Computadoras I Unidad 3 – Memorias internas

En la década del '70, surge la necesidad de contar con una memoria


que almacenara en forma permanente, sin perder su contenido al quitarle la
energía. Esta memoria se requería para albergar programas que sirvieran
para el arranque inicial de la máquina, es decir, sólo necesitaba ser leída.
Así surge la memoria ROM (Read Only Memory) que además de las
características citadas también debía ser de acceso random, ya que
necesitaba comunicarse directamente con la CPU.

Por lo tanto, la Memoria Principal de la máquina está compuesta de


una porción RAM y otra ROM. Ambas memorias son de acceso
aleatorio o random. La RAM es de lectura/escritura y volátil, mientras que
la ROM es de solo lectura y no volátil.

La memoria ROM BIOS


BIOS es acrónimo de Basic Input Output System, (Sistema Básico de
Entradas/Salidas). Se refiere a una pieza de software muy específico
grabada en una memoria no volátil que está presente en todas las
computadoras. Aunque naturalmente existen antecedentes, en su forma
actual es una invención del equipo de IBM encargado de diseñar la primera
PC, y representa uno de los ejemplos más emblemáticos de firmware2.
Normalmente este software viene grabado en un chip de memoria no
volátil de solo lectura ROM, situado en la placa madre, de ahí el nombre
ROM BIOS. Su característica de no volatilidad garantiza que el contenido no
se perderá al apagar la computadora y que no dependerá para su actuación
de la existencia o buen funcionamiento de ningún disco, por lo que estará
siempre disponible. Esto es importante porque posibilita el arranque inicial
del equipo sin necesitar de ningún recurso externo. Este tema se desarrolla
en detalle en la Unidad 7 de Software.
Desde los primeros días de vida de la PC, el ROM-BIOS dio problemas
en los equipos existentes, dado que los avances técnicos eran constantes, lo
que suponía aumentar las capacidades de disco y de los dispositivos
conectados a los equipos. Esto exigía nuevas BIOS, con lo que había que
cambiar la placa madre o cambiar el integrado que contenía la ROM BIOS
en los modelos posteriores. Para resolver el problema de actualizar la BIOS,
se comenzó a utilizar memorias regrabables tipo EPROM (Erasable
Programmable Read Only Memory) y EEPROM (Electrically Erasable
Programmable Read Only Memory).
Otro tipo de memoria muy difundida es una memoria no volátil
conocida por memoria "flash" (Flash BIOS) que puede ser regrabada sin
utilizar ningún dispositivo especial de borrado o grabación, lo que permite
actualizarla muy cómodamente. Por lo general solo es necesario "descargar"
de Internet la versión adecuada (normalmente del sitio del fabricante de la
placa madre) y seguir las instrucciones que acompañan al programa. Si
bien la memoria Flash puede ser actualizada, para la CPU sigue siendo una
memoria de solo lectura, ya que no le está permitido escribir o borrar
información durante el proceso normal de funcionamiento.

La memoria RAM
La memoria RAM se puede ver funcionalmente, como un módulo
formado por celdas con capacidad de almacenamiento temporal de 1 byte
cada una, identificadas cada una de ellas por una dirección única, como se

2
Firmware: Software almacenado en hardware. Ver sección 7.3 Software de Arranque - Unidad 7.

109
muestra en la Figura 3.4. Cada celda puede ser accedida por la Unidad de
Control mediante la dirección de la celda, para grabar o leer en ella (ver
Figura 3.4).
Se presenta a la memoria desde el punto de vista lógico, sabiendo que
la implementación física puede ser muy variada, como muestra la Figura
3.4.

Figura 3.3 Módulo de memoria y


relación con los buses.

Como cada celda almacena un byte, las memorias se direccionan a


nivel de byte, pero se lee o escribe por palabra (1 o más bytes). Esto
significa que cuando se escribe o se lee una palabra, se están leyendo o
escribiendo 1 o más celdas consecutivas (ver Figura 3.4).

Las direcciones de memoria están codificadas en binario y han sido


establecidas circuitalmente, por lo que no pueden ser alteradas.

Palabra de 2 Bytes

Figura 3.4 Direcciones de memoria.

Por razones prácticas y técnicas se le asignan a las direcciones de


memoria, números hexadecimales. Esto evita tener que trabajar con tantos
bits, recordar que con un dígito hexadecimal se pueden representar 4 bits
(Figura 3.4).
La Unidad de Control puede pedir leer el contenido de una celda de
una dirección determinada o escribir un nuevo dato en una celda de
dirección determinada. Para realizar estas operaciones, la Unidad de
Control de la CPU proporciona la dirección de la celda implicada a través de
un registro asociado a la memoria principal, el registro de dirección, también
conocido como registro de selección de memoria. Este registro está

110
Estructura y Funcionamiento de Computadoras I Unidad 3 – Memorias internas

conectado a la memoria principal a través del bus de direcciones. Cada


línea del bus transmite 1 bit de dicha dirección.

El dispositivo de selección de memoria analiza el contenido del registro


de dirección y sensibiliza la celda implicada, bien para una lectura, bien
para una escritura. Si se tratase de una lectura, lo almacenado en la celda
será transferido a un segundo registro de la CPU, también asociado a la
memoria principal, el registro de palabra. En el caso de una escritura,
previamente habrá sido preciso cargar este mismo registro con los datos
que se quiera transferir a la celda en cuestión. Este registro se comunica
con la memoria a través del bus de datos.

Observación: La operación de lectura no destruye lo almacenado


en la celda. La operación de escritura destruye lo almacenado,
sustituyéndolo por un nuevo dato.
Ya se ha dicho que las memorias utilizan almacenamiento binario, por
lo que se hará referencia al punto de memoria como aquel elemento que
almacena un bit.
En la memoria principal se carga un programa, el cual contiene
instrucciones, que suponemos almacenadas secuencialmente en la
memoria. Ello implica que instrucciones que tengan que ser ejecutadas
unas a continuación de otras serán almacenadas en direcciones sucesivas
de la memoria. Cuando se finaliza la ejecución de una instrucción ubicada
en la dirección A, la CPU lee automáticamente la instrucción siguiente,
ubicada en la dirección A + 1, excepto en el caso de una instrucción que
ocupe más de una dirección o de una ruptura de secuencia (ver Figura 3.5).

Figura 3.5 Direccionamiento en un dispositivo de memoria.

3.3 Componentes de la Memoria


Para que un elemento pueda ser utilizado como dispositivo de
memoria debe tener los siguientes componentes: Medio o soporte,
Mecanismo de escritura/lectura y Mecanismo de direccionamiento.

111
3.3.1 Medio o soporte

Cuando se habla de medio o soporte se hace referencia al dispositivo


físico en el que se grabará o almacenará la información.
Para que un medio sea capaz de almacenar información, debe cumplir
estas tres condiciones:
 Debe presentar, al menos, dos estados estables (o semiestables),
que se caractericen por una magnitud física discreta (por
ejemplo voltaje, momento magnético, carga eléctrica, corriente,
etc.)
 Se debe poder pasar de un estado al otro mediante aplicación
de una señal (energía externa).
 Se debe poder detectar el estado existente en un momento
determinado (lectura).

El soporte usado actualmente para la implementación de la memoria


principal es la tecnología de semiconductores, en la que un pequeño
circuito electrónico individual determina cada punto de memoria (1 bit).
Este concepto se amplía más adelante, al tratar sobre tecnologías de
memoria.

3.3.2 Mecanismo de escritura y lectura


Toda memoria debe disponer de mecanismos de escritura y lectura.
Tal como indica la Figura 3.6, los puntos de memoria que almacenan los
bits de igual posición de cada palabra (bits 0, 1,  , m-1) están conectados
a la misma pareja de mecanismos, empleándose uno para lectura y otro
para escritura. Por tanto existen m parejas de mecanismos.
Obsérvese que podrían usarse hilos de escritura y lectura separados,
pero suele ser más económico compartir el mismo, puesto que basta con
activar los correspondientes mecanismos de lectura o escritura, para
realizar la operación deseada.

En el caso de la memoria principal el mecanismo es fijo, está unido


en forma permanente y está cableado mediante conductores
eléctricos a cada punto de memoria.

3.3.3 Mecanismo de direccionamiento

La función del mecanismo de direccionamiento es seleccionar la celda


de memoria, en consecuencia, los puntos de memoria deseados.

En las memorias internas el mecanismo de direccionamiento es


inherente a su propia construcción. El cableado o conexionado de los
mecanismos permite especificar una única dirección o celda de memoria
mediante la activación de las señales adecuadas. Por ello, reciben el nombre
de memorias de direccionamiento cableado.
En la Figura 3.6 se muestra un esquema que considera a la memoria
como una matriz, donde el ancho representa 1 celda de 8 bits y el largo es
la cantidad de celdas; para indicar la dirección buscada (direccionar) se
requieren n bits. Para seleccionar la celda deseada, se utiliza un

112
Estructura y Funcionamiento de Computadoras I Unidad 3 – Memorias internas

decodificador de n a 2n, esto significa que a partir de los n bits del bus de
dirección, el decodificador genera 2n direcciones diferentes, que tienen una
señal de salida individualizada para cada dirección (celda) de la memoria.

Figura 3.6 Organización de la memoria.

La dirección se representa por un número binario formado por n


bits. La cantidad de direcciones se determina por la cantidad de
combinaciones que puede realizarse con n bits, que es de 2n, donde n es el
número de líneas del bus de direcciones.

La Figura 3.7 muestra el funcionamiento de un decodificador


utilizando un ejemplo de direccionamiento sencillo, para un bus de
direcciones de 2 líneas. El decodificador tiene una salida para cada
combinación posible de los bits del bus de direcciones. De acuerdo a la
combinación binaria que forman los bits del bus de direcciones, el
decodificador activa únicamente la salida correspondiente a dicha
combinación. A su vez, la salida activa del decodificador activa una de las
celdas de memoria, actuando así como mecanismo de direccionamiento.

113
Figura 3.7 Funcionamiento de un
decodificador de 2x4 (2 entradas, 4 salidas).

La cantidad de direcciones o celdas que es capaz de direccionar el bus de


direcciones se conoce como Capacidad de direccionamiento y está
determinada por 2n siendo n el número de bits o líneas del bus de
direcciones

Ejemplo 3. 1

¿Qué cantidad de bits transmite el bus de direcciones de un microprocesador Pentium? ¿Qué cantidad de
celdas es capaz de direccionar dicho bus?
El bus de direcciones de un microprocesador Pentium posee 32 líneas, por lo tanto transmite 32 bits.
Dado que por cada línea se transmite un bit y la cantidad de líneas es 32, la cantidad de celdas que se podrá
direccionar es la capacidad de direccionamiento:
Capacidad de direccionamiento = 232 direcciones= 22 x 230 direcciones = 4 Gigadirecciones.

Ejemplo 3. 2

Indique la capacidad de direccionamiento que posee un bus de direcciones de 16 bits.


Si el bus de direcciones es de 16 bits, entonces n=16, por lo tanto la Capacidad de Direccionamiento es:
Capacidad de direccionamiento = 216 direcciones = 26 x 210 direcciones = 64 Kilodirecciones.

114
Estructura y Funcionamiento de Computadoras I Unidad 3 – Memorias internas

3.4 Parámetros característicos de la Memoria

3.4.1 Capacidad de almacenamiento


La RAM es la memoria de trabajo de la computadora, es el lugar en
donde se almacenan datos y programas en forma temporal. Ahora bien,
cuanto mayor capacidad de almacenamiento tenga la RAM, es mejor, ya que
de este modo el procesador no perderá tiempo buscando el "espacio libre"
donde conservar los datos.
La capacidad de las memorias se puede expresar en unidades de bits,
bytes o palabras. Lo más frecuente es expresarla en bytes o múltiplos de
esta unidad: KB (kilobytes), MB (megabytes), GB (gigabytes) o TB
(terabytes), como ya se vio en la Unidad 1.
Si se considera a la memoria formada por celdas de un determinado
tamaño, entonces se puede calcular su capacidad de almacenamiento como
el producto Cantidad de celdas por Tamaño de cada celda. Dicho de otra
manera:

Capacidad de almacenamiento = Cantidad de celdas × Tamaño de cada celda

Dado que a cada celda le corresponde una dirección única y distinta


de las demás, una expresión equivalente a la anterior es:

Capacidad de almacenamiento = Cantidad de direcciones × Tamaño de cada celda

Como hemos visto, la Cantidad de direcciones en una computadora


queda determinada por la cantidad de líneas del bus de direcciones. Esta
cantidad se denomina Capacidad de direccionamiento y su valor indica el
número de posiciones distintas que se puede direccionar con las n líneas
del bus de direcciones. Se calcula como:

Capacidad de direccionamiento = 2𝑛 ,
Donde n es la cantidad de líneas del bus de direcciones.
Luego, la Capacidad de almacenamiento puede expresarse como:

Capacidad de almacenamiento = Capacidad de direccionamiento × Ancho de palabra de la memoria

Para expresar la capacidad de almacenamiento en bytes, podemos


expresar el ancho de palabras como Cantidad de bytes por dirección. Es
decir:

Capacidad de almacenamiento = Capacidad de direccionamiento × Cantidad de bytes/dirección

115
Ejemplo 3. 3

Calcular la Capacidad de almacenamiento de la memoria principal si el número de líneas del bus de


direcciones es n = 32.
La capacidad de direccionamiento se calcula como 2n. Si n = 32:
Capacidad de direccionamiento = 232 direcciones
Capacidad de direccionamiento = 22 x 230 direcciones
Capacidad de direccionamiento = 4 x 230 direcciones
Capacidad de direccionamiento = 4 gigadirecciones
Si cada dirección identifica una celda de un byte, la capacidad de la memoria es:
Capacidad de almacenamiento = Cantidad de direcciones x Cantidad de bytes/dirección
Capacidad de almacenamiento = Capacidad de direccionamiento x Cantidad de bytes/dirección
Capacidad de almacenamiento = 4 gigadirecciones x 1 byte/dirección
Capacidad de almacenamiento = 4 gigabytes = 4 GB

Observación: Para que todas las celdas puedan ser direccionadas,


el valor 2n debe ser mayor o igual que la cantidad total de celdas de
la memoria.

3.4.2 Duración de los Datos


Se puede clasificar a las memorias según la permanencia de los datos
en el soporte, como:

 Volátil: Los datos desaparecen si se deja de alimentar (suministrar


energía) a la memoria. Es el caso de las memorias RAM o memorias de
lectura/escritura. A su vez estas pueden ser con o sin refresco.
 Con Refresco: Aunque la memoria esté alimentada, su
información se va degradando paulatinamente, llegando un
momento en que no se puede leer correctamente. Para que estos
tipos de memoria sean útiles deben refrescarse periódicamente,
esto es, deben reactivarse para regenerar los estados de sus
puntos de memoria. Es el caso de las memorias DRAM o RAM
dinámicas, que se explicarán más adelante.
 Sin refresco: la información no se degrada con el tiempo y
permanece inalterada a menos que sea modificada por una
operación de escritura. Es el caso de las memorias SRAM o RAM
estáticas.

 No volátil o Permanente: la información contenida en estos soportes es


permanente, o sea que no se pierde al dejar de suministrarle energía al
equipo. La información puede haberse grabado en el proceso de
fabricación de la memoria o posteriormente. Es el caso de las memorias
ROM o memorias de solo lectura.

3.4.3 Unidad de transferencia


La Unidad de transferencia de la memoria principal es el número de
bits que se leen o escriben en memoria a la vez, y coincide con el ancho de
palabra de la memoria.

116
Estructura y Funcionamiento de Computadoras I Unidad 3 – Memorias internas

El ancho de palabra de la memoria o "ancho de RAM" depende de la


tecnología usada en su fabricación. Por ejemplo, el ancho de RAM puede ser
de 32 o 64 bits, según se trate de un módulo SIMM o un DIMM. Cuanto
mayor sea el "ancho de palabra", menos tiempo se necesitará para mover
un determinado dato.

En resumen:
En la memoria principal, la Unidad de transferencia es la palabra.

3.4.4 Método de Acceso


Se dice que el método de acceso a la memoria principal es de tipo
aleatorio o random.
Un experimento es aleatorio, cuando cada resultado de ese
experimento no está condicionado por los resultados pasados. Y esto ¿qué
tiene que ver con las Memorias? En las Memorias RAM el tiempo de acceso
a una posición de memoria no está influenciado por las posiciones
accedidas previamente. Por esta razón, la memoria RAM es de acceso
aleatorio. Este tipo de acceso no solo lo tienen las RAM, sino también las
ROM, ya que en estas memorias el tiempo de acceso a una posición también
es independiente de las posiciones accedidas con anterioridad.
Esta característica de las memorias RAM y ROM se debe a que estas
memorias tienen un mecanismo de acceso formado por circuitos
electrónicos y conductores de señales eléctricas, por lo cual se denominan
de direccionamiento cableado. Las señales eléctricas que representan la
dirección de una celda se propagan desde el bus de direcciones hasta el
decodificador de direcciones, el cual activa una de sus salidas de acuerdo a
la dirección recibida en su entrada. La salida activa del decodificador
sensibiliza a la celda indicada por la dirección presente en el bus de
direcciones. En este proceso, el tiempo para acceder a una posición es
constante e independiente de las posiciones direccionadas en los accesos
previos.

En resumen:
La memoria principal (ROM + RAM) es de acceso aleatorio, porque
posee direccionamiento cableado.

3.4.5 Tiempo de Acceso (Ta)


El tiempo de acceso es el tiempo que transcurre entre el instante en
que se presenta una dirección a la memoria y el momento en que el dato
está disponible para su uso. En otras palabras es el tiempo de respuesta de
la memoria.
Como las memorias internas son de acceso aleatorio, los tiempos de
acceso son independientes de la dirección de la celda. El tiempo de acceso
depende de la tecnología en la que se basan los elementos de memoria. Los
valores típicos de tiempo de acceso de memoria principal con la tecnología
electrónica actual están en el orden del nanosegundo (10-9 s) (ver Figura
3.8).

117
Figura 3.8 Comparación de tiempos de
acceso de distintos tipos de memoria.

3.4.6 Velocidad de Acceso

Un parámetro importante de la RAM es su velocidad, ya que los


módulos pueden entregar y recibir los datos con mayor o menor rapidez,
algo que, por supuesto, influirá en el rendimiento de todo el sistema.
Las velocidades de la RAM se expresan en megahertz (MHz). Esta
unidad, hace referencia a la velocidad de trabajo de la RAM, por lo tanto, se
dice que una memoria RAM entrega o recibe datos a una velocidad de, por
ejemplo, 100 MHz (cien millones de ciclos por segundo).
La velocidad de acceso está relacionada con el tiempo de acceso en
forma inversamente proporcional, de manera que: F = 1/Ta o Ta = 1/F;
Para el ejemplo dado:

1
Ta = = 10 ηseg
100 MHz

Una buena velocidad de memoria es de 133 MHz (tiempo de acceso


igual a 7,5 ηs) o superior, mientras que una velocidad limitada sería de 16
MHz (60 ηs). La velocidad de la memoria RAM depende directamente del
tipo de tecnología que posee.

Ejemplo 3. 4

Si suponemos el tiempo de acceso de 7,5 ηs, es decir, 7,5 ηs/acceso de lectura, entonces surge que:
7,5 ηs  1 acceso
1s  x

1s × 1 acceso 1s × 1 acceso
𝑥 = = = 0,133 × 109 accesos/s = 133 ∙ 106 accesos/seg = 133 MHz
7,5 ηs 7,5 × 10−9 s
Es decir, la velocidad de acceso es de 133 MHz

118
Estructura y Funcionamiento de Computadoras I Unidad 3 – Memorias internas

Ejemplo 3. 5

Una velocidad de acceso de 16,7 MHz supone que pueden realizarse 16,7 millones de ciclos o accesos cada
segundo, lo que implica:
16.700.000 accesos  1 s
1 acceso  x

1acceso × 1 s 1s 1 s × 10−6
𝑥 = = 6
= = 0,05988 × 10−6 s = 59,88 ηs ≅ 60 ηs
16.700.000 accesos 16,7 × 10 16,7
Es decir, el tiempo de acceso vale 60 ηs, aproximadamente.

3.5 Tecnologías de memoria interna


Desde 1972, con el advenimiento de la microelectrónica, el tipo de
memoria universalmente empleada como memoria interna es la memoria de
semiconductores. Las memorias de semiconductores almacenan el dato en
forma electrónica, mediante circuitos simples, que pueden ser construidos
en forma masiva con tecnología de integración de gran escala, cada vez más
sofisticada.
Las memorias internas, como ya se vio en secciones anteriores (ver
3.2.3), pueden ser de tipo RAM, memorias volátiles de lectura/ escritura o
de tipo ROM, memorias no volátiles de solo lectura. A continuación se
describirán las distintas tecnologías que se usan para la implementación
práctica de estas memorias.

3.5.1 Memorias RAM


Atendiendo a sus características físicas, las memorias RAM se dividen
en dos grandes grupos: Estáticas, Static RAM (SRAM) y dinámicas Dynamic
RAM (DRAM). Ambas comparten la característica de ser memorias volátiles,
pero las DRAM además necesitan refresco.

Las memorias SRAM son de alta velocidad pero muy caras por lo
que se usan en aquellas aplicaciones que requieren poca
capacidad de memoria pero una velocidad de acceso elevada:
registros de CPU y memorias caché. Las DRAM son más lentas pero más
económicas, se usan en la implementación de la memoria principal, de
mayor capacidad.

RAM Estáticas (SRAM)


El componente elemental, el soporte capaz de almacenar un bit es el
biestable o Flip Flop (FF), un dispositivo electrónico que a su vez no sólo se
utiliza en la implementación de memoria principal sino que es ampliamente
utilizado en diversos circuitos secuenciales. Si bien existen varios tipos de
FF, sólo describiremos el Flip Flop tipo RS para explicar el funcionamiento
de las memorias SRAM.

119
El diagrama básico de un FF RS es el que muestra la Figura 3.9. Este
circuito tiene, como se observa, dos entradas y dos salidas.

Figura 3.9 Flip Flop RS.

La salida a es la salida directa y la salida b es la salida


complementada, es decir, que b es el complemento lógico de a (cuando a
vale 1, b vale 0, y viceversa). Aunque a priori parezca absurdo contar con
estas salidas redundantes, su importancia en el diseño es fundamental.
La entrada S se denomina así por la palabra inglesa Set. Un 1 lógico
en esta entrada (identificado por un valor de voltaje positivo) hace que la
salida a tome el valor 1 (y consecuentemente b = 0). Utilizando un divulgado
anglicismo, se dice que se ha seteado el FF. En la práctica, el FF se
comporta como un bit y esta acción almacena un “1” en dicho bit, ya que la
salida a conservará su valor aunque la entrada de Set cambie a 0.
La entrada R se denomina así por la palabra inglesa Reset. Un 1 lógico
en esta entrada hace que la salida a tome el valor 0 (y b = 1). Se dirá
entonces que se ha reseteado el bit, o sea se ha grabado un “0”. Este valor
de la salida a no cambiará aunque la entrada R cambie a 0.
En resumen, el valor de la salida a cambia a “1” o “0” de acuerdo a la
entrada que se active. Una vez que la salida a adopta un valor, dicho valor
se mantiene sin cambio mientras el FF no reciba un nuevo pulso en alguna
de sus entradas R o S. Esta capacidad de “mantener el valor de la salida” si
no se recibe un nuevo estimulo en la entrada, le da el apelativo de memoria
estática.
El FF requiere disponer de alimentación eléctrica para funcionar. Si
ésta se interrumpe, el FF pierde el valor que tenía almacenado, es decir, es
volátil.
En el momento de presentarse una entrada activa en el FF, su salida
adopta el estado correspondiente en forma instantánea. Las memorias
biestables son las que presentan el funcionamiento más rápido entre las
memorias.

Ejemplos de aplicación de las memorias SRAM son los registros y


las memorias caché.

RAM Dinámicas (DRAM).


DRAM significa en inglés Dynamic Random Access Memory. En la
memoria DRAM el componente elemental capaz de almacenar un bit es un
dispositivo electrónico que se comporta como condensador o capacitor.
Cuando se aplica tensión eléctrica a un capacitor, éste almacena
energía eléctrica hasta un valor máximo. Esta energía almacenada durante
el proceso de carga luego puede ser cedida en un proceso de descarga. Este
comportamiento permite utilizar el dispositivo como un bit, requiriendo
para ello controlar la cantidad de energía eléctrica almacenada en el
capacitor.
La Figura 3.10 muestra la evolución de la tensión eléctrica que
presenta un capacitor en los procesos de carga y descarga. A modo de
ejemplo, la gráfica muestra que podríamos utilizar el rango de 0 a 6 volts
para representar el bit en cero, y el rango de 6 a 12 volts para representar el
bit en uno. Así, al utilizar el capacitor como soporte para un punto de

120
Estructura y Funcionamiento de Computadoras I Unidad 3 – Memorias internas

memoria, el proceso de carga sería la grabación de un 1 y el proceso de


descarga sería la grabación de un 0.

Figura 3.10 Curvas


características de un
capacitor en carga y
descarga.

Sin embargo, una de las características de los capacitores es que


pierden su carga con el tiempo. Debido a este fenómeno, los unos
almacenados se "borran" a medida que el capacitor pierde su carga,
haciéndose por lo tanto un dispositivo no confiable. Para remediar esto, se
recurre a un proceso de refresco, destinado a mantener la carga del
dispositivo en el nivel adecuado y así conservar el valor de los puntos de
memoria.
Al utilizar este tipo de dispositivos como elementos de memoria, el
proceso de refresco consume recursos del microprocesador, que en las
nuevas tecnologías están por debajo del 1% del tiempo total de uso del
microprocesador. Esto es algo desventajoso para todo el sistema, porque el
microprocesador tiene que interrumpir permanentemente sus tareas para
enviar la orden de refresco, algo muy poco práctico. Es decir, la DRAM es
una memoria a la que podríamos llamar "frágil", porque debe ser asistida
constantemente para que no pierda su contenido.
A pesar de esta desventaja, las memorias del tipo DRAM, son usadas
normalmente como Memoria Principal ¿Cuál es el sentido, entonces, de
utilizar una memoria frágil como memoria principal, cuando la virtud de
esta debería ser, justamente, la capacidad para retener los datos intactos?
La principal razón es que, si bien la DRAM necesita refrescos continuos,
presenta ventajas interesantes respecto de la SRAM:

 La DRAM es más simple que una memoria estática (SRAM)


 La DRAM es más pequeña, sumamente densa. Esto significa que
contiene más celdas por unidad de superficie. Cada punto de
DRAM es ¼ que un punto de SRAM.
 Menor costo.

Estas ventajas implican que la DRAM puede almacenar mayor


cantidad de datos en menor espacio y a menor costo. De hecho, un módulo
de DRAM (del tamaño de un paquete de caramelos) puede contener millones
de datos y resulta más económico en comparación con los costos de una
memoria SRAM.
En contraste con estas ventajas, la DRAM es sumamente lenta en
comparación con la SRAM, por lo que, desde hace años, se le intentan
incorporar nuevos adelantos tecnológicos que puedan acelerar su capacidad

121
de trabajo. Algunos de estos avances fueron muy importantes y dieron lugar
a varias subfamilias de DRAM, que se verán a continuación.

Módulos de Memoria RAM

El continuo avance de la tecnología electrónica motivo la aparición de


nuevas placas madres y procesadores cada vez más rápidos. Por esa razón,
las memorias RAM no pueden quedar obsoletas, es decir, tienen que
acompañar la evolución de todos los demás dispositivos que componen la
computadora.
Los módulos de RAM, son un circuito impreso que posee chips de
memoria DRAM integrados; estos se instalan físicamente sobre la placa
madre en slots o ranuras donde se insertan los pines o contactos de dichos
módulos, como se muestra en la Figura 3.11.

a) Esquema de la placa madre b) Ranuras y módulo de RAM

c) Chips y Modulo de memoria

Figura 3.11 Módulos de Memoria RAM.

Existen distintos módulos de memoria RAM, cada tipo posee diferentes


características tecnológicas que han ido evolucionando a través del tiempo.
A continuación, se describen las características de los módulos más
actuales.

122
Estructura y Funcionamiento de Computadoras I Unidad 3 – Memorias internas

DIMM DDR o DDR


La sigla DDR significa Double Data Rate y hace referencia a una
lectura doble de datos; es decir, que procesan dos datos por ciclo de reloj.
Las DDR tienen 184 pines, una solo muesca de posición y trabajan con
tensión de 2,5 volts. Desde hace más de una década, existen varias
generaciones de módulos de memoria DDR, que han evolucionado y
mejorado su rendimiento a través del tiempo.
Los módulos DDR han progresado hacia los modelos DDR2, DDR3 y
DDR4 como muestra la Figura 3.12.

Figura 3.12 Diferentes módulo DDR según su generación.

Las DDR2 con las DDR3 no son compatibles entre sí debido a una
muesca ubicada en otra posición del módulo

SO-DIMM

La sigla SO-RAM corresponde a Small Outline DIMM o Small Outline


Dual Inline Memory Module, es decir, que es una versión compacta de los
módulos DIMM DDR convencionales.

Estos módulos de memoria, de menor tamaño que los demás, trabajan


de acuerdo al mismo principio tecnológico que las DDR, pero sus
dimensiones fueron optimizadas para colocarlas en notebooks, routers,
impresoras láser y otros equipos más compactos que una computadora de
escritorio. Existen las variantes DDR, DDR2, DDR3 y DDR4 que
aparecieron paralelamente con las respectivas versiones de computadora de
escritorio, como muestra la Figura 3.13.

123
DDR2 2 GB 800 MHz - SO-DIMM 200pin PC2-6400

Memoria DDR3 4GB - SO-DIMM

Figura 3.13 Diferentes módulo SO-RAM.

3.5.2 Memorias de Solo Lectura o Memorias ROM.


La memoria ROM, es un circuito integrado que almacena
habitualmente datos pre-grabados por el fabricante y que no pueden ser
modificados por el usuario. (Ejemplos típicos son: tablas de funciones,
BIOS, etc.)
Este tipo de memoria tiene tres características fundamentales:
a) Gran velocidad de acceso (aunque más lentas que las RAM)
b) Su no volatilidad (no se "borra" al apagar la computadora)
c) Los datos grabados no se pueden modificar o requieren de una
operación especial para cambiarlos (a diferencia de la RAM que
puede modificarse fácilmente)

Principio de funcionamiento de las ROM


Es muy simple imaginarse la estructura de una memoria ROM.
Supongamos tener que generar la siguiente secuencia de valores:

0 0 0 0
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1

124
Estructura y Funcionamiento de Computadoras I Unidad 3 – Memorias internas

Aunque es una secuencia que en sistema binario representa los


números de 0 a 9, puede ser considerada (con un poco de imaginación),
como una serie de instrucciones de un programa.
Supongamos además que disponemos de una malla de conductores
eléctricos como la de la Figura 3.14, donde los puntos de cada intersección
indican que los conductores horizontales y verticales están físicamente
conectados.

Figura 3.14 Malla formada por


conductores eléctricos, conectadas en
las intersecciones.

Si por algún procedimiento eliminamos adecuadamente "algunas" de


estas conexiones físicas, podemos obtener la malla de la Figura 3.19.

Se puede advertir que si se selecciona una fila (celda) y se alimenta


con un "1" (por ej. 5 volts) el terminal de entrada correspondiente (a, b, c,
etc.), en las salidas S0 S1 S2 S3 se obtienen los valores almacenados para
cada bit de la celda seleccionada.

Este es el principio de generación de una memoria ROM; basándonos


en una matriz (malla original de conductores), como lo nuestra la Figura
3.15, el programador "quema" o elimina los enlaces no necesarios, con el fin
de obtener a la salida una secuencia predeterminada con el simple método
de alimentar sucesivamente cada una de las entradas.

Figura 3.15 Esquema de una memoria ROM con datos


grabados.

125
Tipos de memoria ROM

Memorias ROM de máscara


Las memorias ROM de máscara son memorias pre-grabadas por el
fabricante. Utilizan un diodo en las intersecciones de la malla donde se
desea grabar un “1” y en las intersecciones donde se desea almacenar un
“0”, no hay diodo que conecte la fila con la columna. La ausencia del diodo
en una intersección hace que el voltaje eléctrico que alimenta la fila
(entrada) no se transfiera a la columna (salida).
Como se puede notar, el proceso de fabricación de una ROM requiere
de una programación completa y perfecta de todos los datos, ya que estos
quedan almacenados en forma permanente. Un chip de ROM estándar no
se puede reprogramar o reescribir. Si el proceso fue incorrecto, o los datos
necesitan ser actualizados, se debe reemplazar el chip por uno nuevo. Pero
aunque este proceso es laborioso, se justifica por el costo reducido de un
chip de ROM, su bajo consumo de energía y su alta confiabilidad.
Este es el tipo más antiguo de memoria ROM de tecnología electrónica.
Actualmente su uso en la fabricación de hardware ha sido desplazado por
memorias ROM de tecnología más moderna.

Memorias PROM (Programable Read Only Memory)


Son memorias ROM programables, es decir suministradas vírgenes
(todas las posiciones en 1) para que el usuario grabe los datos a almacenar.
El proceso de grabación se realiza mediante un equipo especial llamado
programador. El resultado de la grabación es irreversible, ya las memorias
PROM sólo pueden grabarse una vez. Son unitariamente más caras que las
ROM pero proveen una flexibilidad que estas no tienen.
Las memorias PROM (Figura 3.), están constituidas por una malla de
conductores eléctricos, de igual manera que una ROM de máscara, pero con
la diferencia de que en cada intersección de la malla hay un fusible
conectando la fila y la columna, en lugar de un diodo. Dado que en la
fabricación se incluye un fusible en todas las intersecciones, el estado
inicial de una PROM presenta todas las posiciones en "1". Para cambiar el
valor de un bit a “0”, se usa un dispositivo programador que selecciona una
intersección y envía una carga eléctrica de alto voltaje que quema el fusible,
rompiendo la conexión entre la fila y la columna en la intersección
seleccionada. Este proceso se conoce como “quemado” de la PROM.

Figura 3.16 Estructura de una memoria PROM.

Las memorias PROM son más frágiles que las ROM de máscara, ya
que una descarga de electricidad estática puede causar que los fusibles de
la PROM se quemen, cambiando esencialmente los bits “1” por “0”.
126
Estructura y Funcionamiento de Computadoras I Unidad 3 – Memorias internas

Memorias EPROM (Erasable Programable Read Only Memory)


Son memorias ROM borrables y programables. El borrado se hace
desmontando los chips de sus zócalos en las plaquetas del circuito y
exponiéndolos a luz ultravioleta de alta intensidad durante 15 o 20 minutos.
Para grabarlas se necesita un programador EPROM, un dispositivo que
provee determinados niveles de voltaje para grabar los datos nuevos. Son
más caras que las PROM, pero pueden borrarse y volver a grabarse.
Una vez más se tiene una malla de filas y columnas. En una EPROM,
cada intersección tiene 2 transistores, uno conectado a la fila y otro
conectado a la columna. Mientras exista un vínculo entre ambos, el bit
tiene el valor de "1". Para cambiar el bit a valor "0" se aplica a la
intersección un determinado voltaje que provoca la ruptura de la conexión
entre los transistores. Una EPROM en blanco (borrada) tiene el valor "1".en
todas las posiciones de memoria.
Las memorias de este tipo son muy útiles para cargar software que
está en etapa de desarrollo, ya que es factible que deban realizarse cambios.
Hay que aclarar que aunque sean memorias modificables, desde el
punto de vista de la computadora son memorias ROM ya que sólo pueden
ser leídas y no puede escribirse en ellas.

Memorias EEPROM (Electrically Erasable Programable Read Only


Memory)
Estas memorias son similares a las EPROM en cuanto a la posibilidad
de reprogramación, pero al ser borradas no necesariamente debe borrarse el
contenido completo, como sucede con una EPROM. En lugar de usar luz
ultravioleta, se aplica un campo eléctrico localizado en cada celda para
provocar una circulación de corriente. Esta corriente tiene un valor más
elevado a los valores de funcionamiento normal y borra las celdas
seleccionadas, las cuales pueden ser reescritas. Esta posibilidad hace a las
EEPROM más versátiles, pero hay que aclarar que también son
comparativamente más lentas.

En resumen, las ventajas de la EEPROM son:


 El chip no debe ser removido del circuito para regrabarse.
 No debe borrarse el chip completo para modificar solo una parte, como
ocurre con las EPROM. Las memorias EEPROM pueden modificarse por
celdas individuales.
 Cambiar el contenido no requiere de un equipo especial (programador).

Memorias Flash
La memoria Flash es un tipo de EEPROM. Está constituida por una
malla de filas y columnas con intersecciones que contienen dos transistores
y de igual manera que las EEPROM, retornan a la posición normal ("1")
mediante la aplicación de un campo eléctrico. La diferencia con las
memorias EEPROM radica en que las memorias Flash, usan un circuito
interno que permite aplicar el campo eléctrico al chip entero o a secciones
predeterminadas llamadas bloques. Esto permite el borrado del área
seleccionada, que luego puede ser reescrita.
Las memorias Flash son mucho más rápidas que las tradicionales
EEPROM, ya que en lugar de borrar 1 byte a la vez, puede borrar un bloque
(512 bytes) o el chip completo de una sola vez y luego regrabarlo.

127
Bibliografía
Libros
GINZBURG, MARIO C. "La PC por dentro. Arquitectura y funcionamiento
de computadores modernos desde cero" – 6ta Edición - 2013
PATRICIA QUIROGA. “Arquitectura de Computadoras” - Edición 2010.
DAMIÁN COTTINO. “Hardware desde cero” - PC USERS - Edición 2009.
STALLING, WILLIAM. "Organización y Arquitectura de Computadores" 7ma
Edición
PRIETO ESPINOSA, LLORIS, TORRES. "Introducción a la Informática" 3ra
Edición -2002-
DUPERUT, GABRIEL. "Fundamentos de Computación y Comunicaciones".
Edición 2000
Revistas
Artículos sobre Memoria RAM en:
Users #319- Suplemento Users Powers#169 - Diciembre 2017
Fuentes Webs
http:/www.zator.com/Hardware/H5.htm
http:/www.kingston.com/latinoamerica/tools/umg/umg12.asp
foro.decowar.com/ ftopic2413.html
http://www.iespana.es/djcraker/Articulos/RAM.htm
http://users.pandora.be/educypedia/computer/memoryram.htm
http://www.lacompu.com/soporte/hardware/ram/tipos/index.php3
http://www.howstuffworks.com
"How ROM Works". Jeff Tyson
https://es.wikipedia.org/wiki/SO-DIMM
https://www.guiahardware.es/mejores-memorias-ram/

128
Unidad 4
Memorias externas
Índice temático Unidad Nº 4 – Memorias externas
4.1 Introducción ............................................................................................. 132
4.2 Componentes de las memorias externas ................................................... 132
4.3 Características de las memorias externas .................................................. 133
Ubicación................................................................................................................ 133
Permanencia de los datos en el soporte ................................................................ 133
Capacidad de almacenamiento .............................................................................. 134
Unidad de transferencia......................................................................................... 134
Método de acceso .................................................................................................. 134
Velocidad de transferencia .................................................................................... 135
4.4 Tecnologías de almacenamiento ............................................................... 135
4.4.1. Tecnología Magnética ........................................................................... 136
Grabación y lectura de datos en soportes magnéticos .......................................... 136
Densidad de grabación en soportes magnéticos ................................................... 138
Soportes de almacenamiento magnético .............................................................. 138
Principales elementos que componen los discos magnéticos ............................... 139
Estructura Física de los discos magnéticos ............................................................ 141
Estructura lógica de los discos magnéticos ............................................................ 142
Sistema de direccionamiento................................................................................. 143
Grabación zonificada de bits (ZBR- Zoned Bit Recording)...................................... 144
Características relevantes de los discos magnéticos ............................................. 145
Desventajas del almacenamiento en disco magnético .......................................... 148
4.4.2. Tecnología Electrónica .......................................................................... 148
Soportes de estado sólido ...................................................................................... 148
Pen Drive o Dispositivo USB (Universal serial bus) ....................................... 149
Tarjetas de memoria flash removibles .......................................................... 149
Disco de Estado Sólido - SSD (Solid State Drive).......................................... 150
4.4.3. Tecnología Óptica ................................................................................. 152
Organización de los datos en los discos ópticos .................................................... 152
Discos de pista única en espiral: Velocidad lineal constante ................................. 153
Discos con pistas concéntricas: Velocidad angular constante ............................... 154
Características relevantes de los discos ópticos .................................................... 154
Otras consideraciones técnicas .............................................................................. 155
Soportes de almacenamiento óptico ..................................................................... 156
4.4.4. Almacenamiento en la NUBE, servicios en línea y el futuro de los soportes de
almacenamiento ......................................................................................................... 159
Bibliografía........................................................................................................ 161
Unidad 4
Memorias externas
Esquema de contenidos

Soporte
Dispositivo de Almacenamiento
Componentes Mecanismo de Lectura/Escritura
Mecanismo de Direccionamiento

Ubicación
Permanencia de los datos en el soporte
Características Capacidad de almacenamiento
Unidad de transferencia
M Método de acceso
E Velocidad de transferencia
M
O
R Soportes Discos
I magnéticos Rígidos (HD)
A
S Magnética Estructura Física HD
Estructura Lógica HD
E
X
T Soportes de Estado Sólido
E Electrónica * Pendrive
R Tecnología *Tarjetas de memoria flash
N * Disco de Estado Solido-SSD
A
S
Organización lógica
Soportes Ópticos
Óptica * CD
* DVD
* Blu-Ray
* HD-DVD

Almacenamiento en la Nube

131
4.1 Introducción
Las memorias externas, también llamadas de almacenamiento masivo,
auxiliar o secundario son dispositivos que permiten almacenar datos en
forma no volátil y luego recuperarlos. Se denominan externas porque, a
diferencia de las memorias internas, no forman parte de la placa madre y por
lo tanto la CPU se conecta a ellas por medio de interfaces, como se explicará
en la unidad 6 de Periféricos e Interfaces.
En comparación con las memorias internas, las memorias externas se
caracterizan por ser de mayor capacidad, pero de mayor lentitud. Otra
característica es que las memorias externas son siempre de tipo no volátil.
Desde el punto de vista del principio de funcionamiento, las memorias
externas se basan en una determinada tecnología de almacenamiento. La
denominación tecnología de almacenamiento hace referencia al fenómeno
físico (magnetismo, luz o electricidad) que se utiliza para la grabación y
lectura de los datos. En la actualidad se emplean tres tipos de tecnologías:

 la tecnología magnética
 la tecnología óptica y
 la tecnología electrónica.

Cada una de las tecnologías se describirá más adelante en la presente


unidad (4.4.1 Tecnología Magnética, 4.4.2 Tecnología Electrónica y 4.4.3
Tecnología Óptica).

4.2 Componentes de las memorias externas


En general, los componentes de las memorias externas son:
 El medio o soporte.
 El dispositivo de almacenamiento.
 El mecanismo de lectura/escritura.
 El mecanismo de direccionamiento.

El medio o soporte es el lugar donde se almacenan los datos. Puede ser


de distintos materiales, dependiendo de la tecnología empleada. Por ejemplo,
en tecnología magnética el soporte es el disco rígido, en tecnología electrónica
el soporte puede ser una tarjeta de memoria o un disco de estado sólido y en
la tecnología óptica el soporte puede ser un CD, DVD, HD-DVD o Blu-Ray.
El dispositivo de almacenamiento es el aparato o punto de conexión
(conector) que registra y recupera datos en el medio o soporte. Por ejemplo,
las unidades de disco rígido, las lectoras grabadoras de CD o DVD o el
dispositivo que contiene al pendrive.
El mecanismo de lectura/escritura es la parte de la memoria externa que
se encarga de grabar los datos y recuperarlos, explotando en ambas
operaciones el fenómeno físico en el que se basa la tecnología de
almacenamiento. En las memorias externas de tecnología magnética y óptica
este mecanismo está constituido por cabezas de lectura/escritura que se
encuentran formando parte del dispositivo de almacenamiento. Por otra
parte, las memorias externas de tecnología electrónica son del mismo tipo de
tecnología que las memorias internas y por lo tanto, su mecanismo de
lectura/escritura se encuentra constituido por conductores eléctricos que se
conectan al soporte.

132
El mecanismo de direccionamiento es el encargado de seleccionar una
posición específica sobre el soporte para realizar una operación de lectura o
escritura de datos. Para su funcionamiento, el mecanismo de
direccionamiento de una memoria externa necesita datos de ubicación. Esta
información adicional, llamada información de direccionamiento, se almacena
en el soporte conjuntamente con los datos. La unidad de control del
dispositivo de almacenamiento se encarga de leer e interpretar esta
información para acceder a la zona deseada. En las memorias externas de
tecnología óptica y magnética el mecanismo de direccionamiento se basa en
partes móviles que hacen girar el soporte y desplazan las cabezas de
lectura/escritura hasta ubicarlas sobre la posición deseada. En las memorias
externas de tecnología electrónica, el mecanismo de direccionamiento es fijo,
formado por circuitos y conductores eléctricos conectados al soporte. Por
esta razón, las memorias externas de tecnología electrónica también son de
direccionamiento cableado, al igual que las memorias internas.

4.3 Características de las memorias externas


Las características que definen a las memorias externas y que permiten
diferenciarlas de las memorias internas son:
 Ubicación
 Permanencia de los datos en el Soporte
 Capacidad de almacenamiento
 Unidad de transferencia
 Método de acceso y
 Velocidad de transferencia

Ubicación
Por ubicación de las memorias, interpretamos si son internas o externas.
La memoria principal es interna y al encontrarse formando parte de la placa
madre puede ser accedida directamente por la CPU. Por el contrario, las
memorias externas no pueden ser accedidas directamente por la CPU, sino a
través de enlaces a periféricos o interfaces.

Permanencia de los datos en el soporte


Una característica de las memorias externas es que siempre son de tipo
no volátil. Esta característica se presenta de dos maneras:
 Permanente: Son memorias de solo lectura y cuyo contenido no pueden
modificarse. Los datos pueden haberse grabado durante la fabricación de
la memoria o posteriormente, en un proceso de escritura que puede ser
llevado a cabo una sola vez, con efecto permanente e irreversible. Ejemplo
de este tipo son el CD-ROM y el DVD-ROM.
 Regrabables: En este caso, los datos almacenados en la memoria se
pueden modificar. Para ello es necesario realizar una nueva operación de
escritura en las posiciones ocupadas (sobreescritura). Mientras no se
realice una sobreescritura, los datos almacenados permanecen intactos.
Esto es aplicable a todos los dispositivos de tecnología magnética (discos
rígidos), a los medios ópticos regrabables (por ejemplo el CD-RW o el DVD-

133
RW) y a dispositivos de tecnología electrónica como pendrive, tarjetas de
memoria o discos de estado sólido (SSD).

Capacidad de almacenamiento
La capacidad de almacenamiento es la cantidad máxima de datos que se
puede grabar en un soporte y lo más frecuente es expresarla en GB
(gigabytes) o en TB (terabytes).
Como se explicó en la sección 4.3 (Características de las memorias
externas; específicamente en mecanismo de direccionamiento), además de los
datos del usuario en el soporte se almacena información de direccionamiento.
Hay que diferenciar entonces entre la capacidad neta o útil que es la
capacidad de almacenamiento de datos del usuario y la capacidad bruta o
capacidad total que es la suma de la capacidad neta más la capacidad
reservada a almacenar la información de direccionamiento.

𝐶𝑎𝑝𝑎𝑐𝑖𝑑𝑎𝑑 𝑇𝑜𝑡𝑎𝑙 = 𝑐𝑎𝑝𝑎𝑐𝑖𝑑𝑎𝑑 𝑛𝑒𝑡𝑎 + 𝑐𝑎𝑝𝑎𝑐𝑖𝑑𝑎𝑑 𝑖𝑛𝑓𝑜𝑟𝑚𝑎𝑐𝑖ó𝑛 𝑑𝑖𝑟𝑒𝑐𝑐𝑖𝑜𝑛𝑎𝑚𝑖𝑒𝑛𝑡𝑜

Unidad de transferencia
La unidad de transferencia es la cantidad de bytes que se transfieren
durante una operación de lectura o escritura en memoria. Como ya se ha
visto, la unidad de transferencia para las memorias internas es la palabra, en
tanto que las memorias externas transfieren la información por bloque.
Mientras una palabra corresponde a una cantidad de 8, 16, 32 o 64
bits, un bloque de información corresponde a 512 bytes o más. Este modo de
transferencia tiene su justificación en el hecho de que las memorias externas
de tecnología óptica y magnética funcionan con partes móviles, por lo cual
requieren cierto tiempo para que las cabezas de lectura/escritura alcancen
una posición específica sobre el soporte. Esto las hace muy lentas en
comparación con las memorias internas, que son totalmente electrónicas.
Agrupar los datos en bloques de cierta cantidad de bytes justifica el tiempo
utilizado por las partes mecánicas para ubicar las cabezas de
lectura/escritura, ya que cuando éstas alcanzan la ubicación del primer byte
del bloque, demoran mucho menos en posicionarse en las ubicaciones de los
bytes subsiguientes.

Método de acceso
Método de acceso es la forma de acceder a los datos que permanecen
almacenados en el soporte. Teniendo presente este concepto se pueden
distinguir tres métodos de acceso en las memorias externas:
 Acceso Secuencial: La memoria se organiza en unidades de datos
llamadas registros. En el acceso secuencial, para poder acceder al
primer registro del bloque de transferencia, el mecanismo de
lectura/escritura debe ir desde su posición actual a la deseada,
pasando y obviando cada registro intermedio. Así pues, el tiempo
necesario para acceder a un registro dado es variable y depende por lo
tanto, de la posición del registro y del cabezal de lectura/escritura. Los
CD-ROM son de acceso secuencial.
 Acceso Directo: En este método el mecanismo de lectura/escritura
realiza un acceso a una posición cercana al registro buscado (sin

134
pasar por los registros anteriores), seguido de una búsqueda
secuencial hasta alcanzar la posición final. Aquí también el tiempo de
acceso es variable. Las unidades de disco rígido y las de discos ópticos
regrabables (CD-RW o DVD-RW), son de acceso directo.
 Acceso Random o Aleatorio: Al igual que las memorias internas, las
memorias externas de tecnología electrónica cuentan con mecanismos
de lectura/escritura y direccionamiento cableados. Esto hace que su
método de acceso sea de tipo random o aleatorio, o sea que el tiempo
necesario para acceder a cualquier registro es siempre el mismo e
independiente de la posición de acceso anterior.

Velocidad de transferencia
La velocidad de transferencia de datos es la cantidad de datos por
segundo que el dispositivo de almacenamiento transfiere desde o hacia el
soporte de la memoria externa.
Un concepto relacionado con la velocidad de transferencia es el Tiempo
de lectura/escritura, o sea el tiempo que el dispositivo demora en realizar la
lectura o grabación de los datos. Estos dos conceptos serán desarrollados en
detalle al describir las características de discos (Ver sección Características
relevantes de los discos magnéticos).

Las características que definen a las memorias externas son:


 La ubicación de las memorias es si son internas o externas. La Memoria Principal es interna y
las memorias secundarias son externas.
o La memoria interna es aquella memoria que se encuentra físicamente integrada a la placa
madre, esto es, el procesador accede a ellas mediante las interfaces (buses) propias de la
placa madre.
o Por el contrario, las memorias externas no pueden ser accedidas directamente por la CPU,
sino a través de interfaces.
 La Permanencia de los datos en el soporte hace referencia a la duración de los datos en el
soporte: Permanente o Regrabable.
 La capacidad de almacenamiento es la cantidad máxima de datos que se puede grabar en un
soporte.
 La unidad de transferencia es la cantidad de bytes que se transfieren durante una operación
de lectura o escritura en memoria.
 El método de acceso es la forma de acceder a los datos:
o Acceso Secuencia,
o Acceso Directo.
o Acceso Random o Aleatorio.
 La velocidad de transferencia de datos es la cantidad de datos por segundo que el
dispositivo de almacenamiento transfiere desde o hacia el soporte de la memoria externa.

4.4 Tecnologías de almacenamiento


Como se mencionó al comienzo de la unidad desde el punto de vista del
principio de funcionamiento, las memorias externas se basan en una

135
determinada tecnología de almacenamiento que hace referencia al fenómeno
físico (magnetismo, luz o electricidad) que se utiliza para la grabación y
lectura de los datos. En la actualidad se emplean tres tipos de tecnologías: la
tecnología magnética, la tecnología óptica y la tecnología electrónica. A
continuación se describirá cada una de ellas.

4.5 Tecnología Magnética


La tecnología magnética para almacenamiento de datos es usada desde
hace muchos años, tanto en el campo digital como en el analógico. Nos
limitaremos a la descripción de esta tecnología para el almacenamiento de
datos digitales.
Esta tecnología consiste en la aplicación de campos magnéticos a ciertos
materiales cuyas partículas reaccionan a esa influencia, orientándose
magnéticamente igual que el campo aplicado. El campo magnético aplicado
puede orientarse como Norte-Sur o Sur-Norte y estas posiciones se
conservan en el soporte luego que el campo deja de aplicarse, representando
así los datos grabados.
El soporte magnético que actualmente está en uso son los discos
rígidos. Los dispositivos que manipulan estos soportes, realizan tanto la
lectura como la escritura y el costo por cada byte de datos almacenado es
relativamente bajo.

Grabación y lectura de datos en soportes magnéticos


En un soporte magnético, los datos se almacenan en unidades
elementales denominadas dominios magnéticos, los cuales se encuentran
dispuestos a lo largo de una pista. En cada dominio magnético se almacena
un campo magnético pequeño que puede tomar una de dos orientaciones
magnéticas: Norte-Sur (N-S) o Sur-Norte (S-N).
Para grabar o leer en un dominio magnético se usa una cabeza de
lectura/escritura. Este elemento es capaz de convertir señales eléctricas en
magnéticas y viceversa. Para ello, el cabezal se compone de una pieza de
material magnético en forma de “C”, con sus extremos muy próximos entre
sí. Alrededor de esta pieza se enrolla un cable conductor eléctrico formando
una bobina, de modo que el material magnético conforma el núcleo de dicha
bobina, como muestra la Figura 4.1.
Para escribir en un dominio magnético, el cabezal se posiciona sobre él
y se hace circular por la bobina un pulso de corriente que crea un campo
magnético en los extremos del cabezal. Dependiendo del sentido de la
corriente que se hace circular por la bobina, el campo magnético creado
tendrá orientación Norte-Sur o Sur-Norte. Este campo magnético se extiende
con influencia sobre el dominio magnético, de modo que éste quedará
magnetizado de acuerdo a la orientación del campo aplicado, como muestra
el esquema de la Figura 4.1.

136
Figura 4.1 Esquema de funcionamiento de lectura y escritura en un soporte magnético.

Para leer el estado de un dominio magnético se posiciona la cabeza


sobre la pista y se van recorriendo los dominios magnéticos. En este
recorrido, el cabezal se expone a un flujo magnético variable producido por
las distintas orientaciones magnéticas de los dominios que se van leyendo
sucesivamente. El efecto del flujo magnético variable sobre la bobina es la
inducción de una tensión eléctrica, cuya polaridad dependerá de si el flujo
magnético tiende a aumentar o a disminuir. Es decir que, cuando el cabezal
recorre la pista, se obtienen en la bobina tensiones eléctricas de acuerdo a
los cambios de polaridad de magnetización que fueron grabados en el soporte
durante la escritura.

Valores de bit y orientación de dominios magnéticos


Es importante aclarar que si bien durante la grabación se podría adoptar como criterio hacer
coincidir los valores lógicos 0 y 1 con las orientaciones magnéticas N-S y S-N respectivamente, la
realidad es mucho más compleja y en la práctica no es posible aplicar una correspondencia de
este tipo.
La razón es que en esta tecnología, la lectura consiste en obtener un efecto eléctrico a partir del
magnetismo de los dominios y para ello es necesario que exista una variación del flujo
magnético. Si un conjunto de bits con el mismo valor se graban con la misma orientación, por
ejemplo N-S, N-S, N-S … N-S el campo de cada domino se compone con el campo de los
dominios vecinos y forman un solo campo N-S de mayor longitud, de modo que cuando el
cabezal recorre los dominios, el campo es constante a lo largo de los dominios, sin cambios de
flujo magnético y por ende, no se induce tensión eléctrica en la bobina.
Para solucionar este comportamiento del magnetismo, es necesario utilizar técnicas de
codificación especiales. Haciendo una descripción simplificada, estas técnicas consisten en
grabar cada bit empleando varios dominios magnéticos en los cuales se graban secuencias de
orientación específicas de acuerdo al valor del bit. Luego, cuando la secuencia es captada por la
bobina de lectura produce una señal eléctrica distintiva que sirve para reconocer un 1 lógico o
un 0 lógico.

137
Densidad de grabación en soportes magnéticos
La densidad de grabación por pista se refiere a la cantidad de bits que
se pueden almacenar por unidad de longitud en sentido lineal, es decir, a lo
largo de la pista y se mide en bits/cm.
Otra medida de densidad se define mediante la cantidad de pistas por
unidad de longitud que puede albergar el soporte. En este caso la longitud se
mide en sentido perpendicular a las pistas y la densidad se expresa en pistas
por pulgada (tpi : tracks per inch).

Longitud de pistas y densidad de grabación


La Figura 4.6 muestra la división que presentaban los primeros discos magnéticos. Observe que los
discos tenían la misma cantidad de sectores por pista y dado que cada sector se define con la
misma cantidad de bytes, tanto las pistas internas como las externas tenían la misma capacidad de
almacenamiento.
Pero si se compara una pista interna con una pista externa, se aprecia fácilmente la diferencia de
longitudes. Esto significa que las pistas internas almacenaban la misma cantidad de bytes, pero en
menor espacio físico. En otras palabras, la densidad de grabación en las pistas externas era menor
que en las pistas internas.
Si bien esta forma de dividir las pistas en sectores era bastante sencilla, las pistas externas
quedaban bastante “desaprovechadas”, ya que el material magnetizable de la superficie del disco
era el mismo para todas las pistas, pero los valores de densidad de grabación decrecían en las
pistas externas debido al aumento de longitud. Precisamente, una de las mejoras que
implementan los discos rígidos actuales consiste en tratar de conservar en todas las pistas el valor
de densidad de grabación que se logra en las pistas internas.

Soportes de almacenamiento magnético


En la actualidad, el soporte de almacenamiento magnético más
extendido en informática es el disco rígido (o disco duro, HD-Hard Disk en
inglés), como muestra la Figura 4.2.

a) Disco Rígido Interno WESTERN DIGITALL 2TB SATA b) Disco Rígido Externo- TOSHIBA 1TB 2.5 USB3.0
Figura 4.2 Soportes magnéticos: Discos Rígidos.

138
Como observamos en la Figura 4.2, podemos encontrar discos rígidos
internos y externos, con características muy similares. Los internos son
usados normalmente para las computadoras de escritorio, notebock y
netbook, con diferentes tamaños y capacidades, como muestra la Figura
4.3. Los externos o portátiles se utilizan para almacenamiento de resguardo
de información (backup) o solamente para ampliar la capacidad. Las
características que podemos destacas de los portátiles es que son más
pequeños y livianos que los externos,y no requieren estar conectados a la
energía eléctrica pues con solo conectarlos a través de un cable USB es
suficiente para garantizar su funcionamiento y transferencia de información.

Figura 4.3 Tamaño de los Discos Rígidos.

Principales elementos que componen los discos magnéticos

El disco rígido es una caja herméticamente cerrada, en cuyo interior se


encuentra un conjunto de elementos electrónicos y mecánicos que hacen
posible el almacenamiento y recuperación de los datos. A continuación se
describen brevemente los elementos que componen los discos en su interior
(Figura 4.4):
 Platos: Cada uno de los discos circulares, planos y rígidos elaborados de
vidrio, cerámica o aluminio que luego es pulido y revestido por ambos
lados con una capa muy delgada de una aleación metálica magnetizable.
Los platos están unidos a un eje y un motor que los hace girar a una
velocidad constante entre los 5400 y 10000 rpm1. La cantidad de platos
dependerá del modelo del disco (de 2 a 8 platos) y sus dimensiones
pueden ser de 3.5”, 2,5” o 1.8”.
 Caras o Superficies del Plato: Cada plato posee 2 caras o superficies
(superior e inferior) que están revestidas de una aleación metálica
magnetizable donde se almacenan los datos.
 Motor de movimiento para los platos: es el motor encargado de hacer girar
los platos del disco.

1
Los valores de velocidad de rotación en discos IDE son de 5400 a 7200 rpm y en discos SCSI en
10000 rpm (rpm: revoluciones por minutos; ver en esta unidad: Características relevantes de los discos
magnéticos: velocidad de rotación y en la Unidad 6 - Interface IDE y SCSI).

139
 Motor de movimiento para las cabezas: es el motor encargado de hacer el
movimiento de las cabezas lectura/escritura.
 Cabezas de lectura/escritura y Brazo mecánico: El cabezal de lectura y
escritura está formado por un conjunto de brazos paralelos a los platos,
que se desplazan linealmente desde el exterior hacia el interior en forma
simultánea. El desplazamiento combinado con la rotación de los platos
del disco permite que los cabezales puedan alcanzar cualquier posición
de la superficie de dichos platos permitiendo así la lectura o escritura de
la información. Cada cabeza flota en un colchón de aire producido por la
gran velocidad de giro de los platos, impidiendo el contacto entre la
superficie de los platos y las cabezas de lectura/escritura para evitar el
desgaste por fricción de la superficie magnética.

Cara o Superficie

Caja o carcasa

Motor de movimiento
para los platos

Cabezas de
lectora/escritura

Brazo mecánico

Platos

Motor de movimiento
para las cabezas

Figura 4.4 Partes del disco rígido (abierto) – Interior del disco.

En la Figura 4.5 se muestra la cara posterior del disco rígido, donde se


observa la electrónica encargada de su funcionamiento.

Figura 4.5 Partes del disco rígido – Cara posterior.

140
Estructura Física de los discos magnéticos

Conocer la estructura física de un disco rígido resulta de gran


importancia, porque permite conocer cuáles son los mecanismos necesarios
para acceder a los datos almacenados.
Cada cara de los platos del disco se divide en pistas o tracks que se
disponen formando circunferencias concéntricas. Cada pista se divide en
sectores en los cuales se puede almacenar una cantidad fija de bytes, el
tamaño típico es de 512 bytes por sector. Estas pistas, invisibles, se crean
durante el formateo de bajo nivel2, que viene hecho de fábrica. A modo de
ejemplo, la Figura 4.6 muestra una de las caras de un disco con la división en
pistas y sectores.

Figura 4.6 Estructura de los discos rígidos: Pistas y sectores.

El conjunto de pistas de igual radio de un disco se denomina cilindro, y


las cabezas de lectura/escritura están dispuestas de forma tal que al
moverse, todas se sitúan sobre el mismo cilindro. Este concepto es
importante, debido a que la información se graba en sentido vertical, es decir
que se completa un cilindro y luego se posicionan las cabezas de
lectura/escritura en el siguiente cilindro. La Figura 4.7 muestra un esquema
para un disco rígido de dos platos.

Los cilindros y las pistas se identifican con un número que se asigna


desde afuera hacia adentro, empezando por el 0; el cilindro 0 (el más externo)
se reserva para propósitos de identificación (información de
direccionamiento) y el resto para almacenamiento de datos de usuario.

2
Formateo de bajo nivel o formateo físico: es el proceso a través del cual se crean las pistas y sectores
del disco rígido mediante marcas magnéticas en su superficie. Ver sección Estructura lógica de los
discos magnéticos.

141
Figura 4.7 Estructura de
los discos magnéticos:
Formación de cilindros

En resumen…

 Pistas (Track): son circunferencias concéntricas donde se almacenan los


datos y se crean durante el formateo de bajo nivel.
 Sector: es la sección o parte de una pista. Cada pista se divide en sectores
en los cuales se puede almacenar una cantidad fija de 512 bytes.
 Cilindro: es el conjunto de varias pistas de igual radio que están alineadas
verticalmente en el disco de ambas caras.

Estructura lógica de los discos magnéticos

Antes de utilizar un disco es necesario realizar un proceso de formateo.


Una definición más técnica de este proceso es: la acción o proceso por el que
se prepara la superficie magnética del disco para poder almacenar
información, por lo tanto, este proceso es imprescindible para poder usar el
soporte.

Este proceso se realiza de dos maneras: el formateo de bajo nivel


(estructura física) y el formateo de alto nivel (estructura lógica).

El formateo de bajo nivel o formateo físico es el proceso de creación de


las pistas y sectores mediante marcas magnéticas en la superficie del disco.
Este formateo viene realizado de fábrica y no es recomendable hacerlo de
nuevo, excepto en casos excepcionales, pues podría dejar inutilizado el disco.

El formateo de alto nivel o formateo lógico crea la organización lógica de


los datos sobre el disco de acuerdo con los requisitos del sistema operativo3.
Todo soporte para el almacenamiento de datos debe ser formateado antes de
ser usado. Esta organización lógica indica cómo serán almacenados los datos
y otras características que definirán un tipo de sistema de archivo concreto.
El formateo lógico permite usar el espacio eficientemente, manteniendo la

3
Sistema Operativo: es el conjunto de programas de control que actúa como intermediario entre el
usuario y el hardware de una computadora y su propósito es la administración de los recursos del
sistema. (Ver Unidad 7- Sistema Operativo).

142
posibilidad de encontrar la información deseada y es distinto según el
sistema operativo que se utilice, como por ejemplo los sistemas operativos
Windows o Linux.

Sistema de direccionamiento

Se denomina sistema de direccionamiento a la organización lógica de la


posición que ocupan los datos dentro de un disco rígido. El sistema de
direccionamiento indica a qué parte del soporte deben acceder los
mecanismos de lectura/escritura del dispositivo de almacenamiento.
El primer sistema de direccionamiento que se usó fue el CHS (cilindro-
cabeza-sector), ya que con estos tres valores, a modo de coordenadas, se
puede individualizar un sector cualquiera del disco para ubicar los
mecanismos de lectura/escritura. El sistema CHS se usaba para discos
rígidos menores de 8 GB.
Más adelante se creó otro sistema más sencillo: LBA (Logic Block
Address o direccionamiento lógico de bloques), que consiste en dividir el disco
entero en clusters y asignar a cada cluster un número único. Este es el que
mayormente se usa en la actualidad.

El cluster o unidad de asignación es un conjunto de sectores contiguos


que componen la unidad más pequeña de almacenamiento de un disco. Los
archivos se almacenan en uno o varios clústeres, dependiendo de su tamaño.
Si el archivo es más pequeño que un clúster, se ocupa el cluster completo, no
pudiendo compartirlo con otro archivo. La Figura 4.8 resalta un cluster
compuesto por 4 sectores. La cantidad de sectores por clúster es constante
para todo el disco y depende del sistema de archivos (FAT, FAT16, FAT32,
NTFS, EXT2, etc.) y del tamaño del disco. La existencia de clusters disminuye
la fragmentación4 de archivos, con el consiguiente ahorro de tiempo en la
gestión de los mismos.

Cada uno de los sistemas operativos como Windows o Linux, utiliza un


sistema de archivo específico. Algunos de los formatos más conocidos y
utilizados son los siguientes:

 FAT: sistema de archivos desarrollado para MS-DOS, y empleado hasta


Windows Me.
 FAT32: la tabla de asignación de archivos de 32 bits admite particiones
de hasta 2 TB o 2048 GB. FAT32 se utiliza en Windows XP y versiones
anteriores.
 NTFS: sistema de archivos de nueva tecnología que admite más archivos
y de mayor tamaño que FAT32. Admite particiones de hasta 16 exabytes.

4
La fragmentación del disco rígido se refiere a la condición de una unidad de disco rígido en el cual los
archivos se dividen en trozos y se dispersan alrededor del disco. La fragmentación se produce
naturalmente cuando se utiliza un disco con frecuencia para crear, eliminar y modificar archivos.

143
Figura 4.8 Cluster compuesto por 4 sectores.

En resumen…
 Estructura Física:
o Formateo de bajo nivel o formateo físico.
 Pistas.
 Sectores.
 Estructura Lógica:
o Formateo de alto nivel o formateo lógico.
 Cluster o unidades de asignación.

Grabación zonificada de bits (ZBR- Zoned Bit Recording).


Como hemos visto, una desventaja de los primeros discos magnéticos
era que la cantidad de sectores por pista se mantenía uniforme en todas las
pistas, lo cual provocaba grandes diferencias de densidad de grabación
debido a las diferencias de longitud entre las pistas. Desde el interior hacia el
exterior, esta densidad disminuía en cada pista, con el consiguiente
desaprovechamiento de la capacidad de almacenamiento, que sólo era
aprovechada en las pistas interiores.
Para evitar que existan grandes diferencias de densidad de grabación,
en los discos actuales se utiliza la técnica ZBR (Zoned Bit Recording) o
Grabación zonificada de bits. Esta técnica divide el disco en varias zonas, de
modo que cada zona agrupa pistas de longitud similar y en ellas se define la
cantidad de sectores necesarios para conservar el valor de densidad de
grabación de las pistas internas. Esta cantidad de sectores es fija para todas
las pistas de una zona determinada y aumenta a medida que las zonas
ocupan pistas externas. A modo de ejemplo, la Figura 4.9 muestra un disco
esquemático en el que se han definido tres zonas.

144
Figura 4.9 Estructura de un discos magnético con grabación zonificada de bits.

Esta organización busca mantener la densidad de grabación constante


haciendo que las pistas externas tengan más sectores, aumentando por
consiguiente la capacidad de almacenamiento. El resultado es el
aprovechamiento eficiente de la superficie del disco, aunque existe mayor
complejidad en el hardware del dispositivo.

Características relevantes de los discos magnéticos

A continuación se describirán las características principales de los


discos magnéticos.

 Velocidad de rotación
La velocidad de rotación es la velocidad a la que giran los platos de una
unidad de disco rígido. Se mide en revoluciones por minuto (rpm).
Los valores de velocidad de rotación en discos IDE están en torno de
5400 a 7200 rpm y en discos SCSI, en 10000 rpm. La regla general es que a
mayor velocidad de rotación, más alta será la trasferencia de datos, pero
también es mayor el calor a disipar. Como ejemplo, una velocidad de 5400
rpm permite una transferencia aproximada entre 10 y 16 MB/segundo.

 Tasa o velocidad de transferencia:


La velocidad de transferencia (VT) es la velocidad a la que se transmiten
los bits. En una unidad de disco, indica la cantidad máxima de bits que el
dispositivo de almacenamiento puede leer o escribir en un segundo.

𝐶𝑎𝑛𝑡𝑖𝑑𝑎𝑑 𝑑𝑒 𝑏𝑖𝑡𝑠
𝑉𝑇 =
1 𝑠𝑒𝑔𝑢𝑛𝑑𝑜

En el caso de discos rígidos, la VT se expresa en megabytes por segundo


(MB/s).

145
Esta velocidad se determina a partir de otros dos parámetros ya vistos:
la velocidad de giro o velocidad de rotación (rpm) y por la densidad de
grabación (bits/pulgada o bits/cm).
Para demostrar la relación entre estos parámetros, analicemos lo que
ocurre en un proceso de lectura o escritura. Una vez que el cabezal de
lectura/escritura se ubica sobre una pista, la cantidad de bits con la que el
cabezal puede operar es igual a la capacidad de dicha pista. Esta capacidad
depende de la longitud de la pista y de la densidad de grabación de la pista:

𝐶𝑎𝑝𝑎𝑐𝑖𝑑𝑎𝑑 𝑑𝑒 𝑝𝑖𝑠𝑡𝑎 = 𝐿𝑜𝑛𝑔𝑖𝑡𝑢𝑑 𝑑𝑒 𝑝𝑖𝑠𝑡𝑎 (𝑐𝑚) × 𝐷𝑒𝑛𝑠𝑖𝑑𝑎𝑑 𝑑𝑒 𝑔𝑟𝑎𝑏𝑎𝑐𝑖ó𝑛 (𝑏𝑖𝑡𝑠/𝑐𝑚)

El tiempo que el dispositivo tarde en realizar la transferencia de los bits


de la pista depende de la velocidad de giro y para que el cabezal de
lectura/escritura transfiera la capacidad total de la pista, debe recorrer la
pista completa, para lo cual se debe producir una vuelta completa. Es decir
que podemos expresar la velocidad de transferencia como:

𝑉𝑇 = 𝐶𝑎𝑝𝑎𝑐𝑖𝑑𝑎𝑑 𝑑𝑒 𝑝𝑖𝑠𝑡𝑎 (𝑏𝑖𝑡𝑠) × 𝑉𝑒𝑙𝑜𝑐𝑖𝑑𝑎𝑑 𝑑𝑒 𝑟𝑜𝑡𝑎𝑐𝑖ó𝑛 (𝑟𝑝𝑚)

Reemplazando, la expresión de Capacidad de pista, resulta:

𝑉𝑇 = 𝐿𝑜𝑛𝑔𝑖𝑡𝑢𝑑 𝑑𝑒 𝑝𝑖𝑠𝑡𝑎 (𝑐𝑚) × 𝐷𝑒𝑛𝑠𝑖𝑑𝑎𝑑 𝑑𝑒 𝑔𝑟𝑎𝑏𝑎𝑐𝑖ó𝑛 (𝑏𝑖𝑡𝑠/𝑐𝑚


× 𝑉𝑒𝑙𝑜𝑐𝑖𝑑𝑎𝑑 𝑑𝑒 𝑟𝑜𝑡𝑎𝑐𝑖ó𝑛 (𝑟𝑝𝑚)

De esta expresión, la VT resulta expresada en bits/minuto. Haciendo


las conversiones correspondientes, podemos expresar el valor en MB/s.
Es importante recordar que si todas las pistas almacenan la misma
cantidad de bits, la densidad de grabación es mayor en las pistas internas
que en las externas debido a que las pistas internas tienen menor longitud.
Por el contrario, si la densidad de grabación es constante, las pistas distintas
almacenarán distinta cantidad de bits, dado que las pistas de distinto radio
tienen distintas longitudes.

Ejemplo 4.1

Calcular la velocidad de transferencia para una unidad de disco rígido que gira a 5400
rpm, si la densidad de grabación es de 30000 bits/cm para una pista de 40 cm de
longitud.
VT = Longitud de pista  Densidad de grabación  Velocidad de rotación
= 40 cm  30000 bits/cm  5400 rpm = 6480  106 bits/min =
= 108  106 bits/s = 13,5  106 bytes/s = 12,87 MB/s
Luego, la velocidad de transferencia es 12,87 MB/s

 Tiempo de acceso y tiempo de lectura/escritura:

146
En el acceso a los datos, ya sea para leerlos o para grabarlos, debemos
considerar tres operaciones que insumen cada una un determinado tiempo.
 Tiempo de búsqueda: La cabeza debe posicionarse sobre la pista
donde se encuentra el sector inicial del bloque a transferir (el bloque a
transferir es el cluster). El tiempo que le toma a las cabezas de
lectura/escritura moverse desde su posición actual hasta la pista
donde están localizados los datos deseados se denomina tiempo de
búsqueda.
 Tiempo de latencia o espera: La cabeza espera encima de la pista
hasta que el sector inicial del bloque a acceder se posicione debajo de
ella. El tiempo que demora esta operación de llama tiempo de espera o
latencia rotacional, y depende de la velocidad de rotación del disco y de
la posición donde se encuentre el sector a acceder. Si luego de que la
cabeza se ubica sobre la pista el sector inicial se encuentra próximo a
pasar debajo de la cabeza, el tiempo es corto; pero si el sector inicial
acaba de pasar cuando el cabezal se ubica sobre la pista, habrá que
aguardar a que se complete nuevamente la vuelta. El tiempo de
latencia promedio es igual al tiempo que le toma al disco hacer media
revolución.

La suma de estos dos tiempos promedio conforma el tiempo de acceso;


o sea. La duración de este tiempo sólo depende del tipo de unidad de
disco que se trate:

𝑉𝑇 = 𝐿𝑜𝑛𝑔𝑖𝑡𝑢𝑑 𝑑𝑒 𝑝𝑖𝑠𝑡𝑎 (𝑐𝑚) × 𝐷𝑒𝑛𝑠𝑖𝑑𝑎𝑑 𝑑𝑒 𝑔𝑟𝑎𝑏𝑎𝑐𝑖ó𝑛 (𝑏𝑖𝑡𝑠/𝑐𝑚)


× 𝑉𝑒𝑙𝑜𝑐𝑖𝑑𝑎𝑑 𝑑𝑒 𝑟𝑜𝑡𝑎𝑐𝑖ó𝑛 (𝑟𝑝𝑚)

𝑇𝑎𝑐𝑐𝑒𝑠𝑜 = 𝑇𝑏ú𝑠𝑞𝑢𝑒𝑑𝑎 + 𝑇𝑙𝑎𝑡𝑒𝑛𝑐𝑖𝑎

El tiempo de acceso de una unidad de disco rígido es el tiempo que tarda


la unidad en posicionarse al inicio del sector que se quiere acceder; es
decir, es el tiempo promedio que tarda la cabeza de lectura/escritura en
acceder al dato buscado.

 Tiempo de lectura/escritura: Para determinar este tiempo también


debemos considerar la tasa o velocidad de trasferencia; es decir, que una
vez accedida la zona deseada, pueden escribirse o leerse a alta velocidad
una serie de palabras consecutivas, así ahora estamos en condiciones de
estimar el tiempo para realizar la grabación o la lectura del sector.

𝑇𝑙𝑒𝑐𝑡𝑢𝑟𝑎/𝑒𝑠𝑐𝑟𝑖𝑡𝑢𝑟𝑎 = 𝑇𝑎𝑐𝑐𝑒𝑠𝑜 + 𝑇𝑡𝑟𝑎𝑛𝑠𝑓𝑒𝑟𝑒𝑛𝑐𝑖𝑎

Reemplazando el tiempo de acceso resulta:

𝑇𝑙𝑒𝑐𝑡𝑢𝑟𝑎/𝑒𝑠𝑐𝑟𝑖𝑡𝑢𝑟𝑎 = (𝑇𝑏ú𝑠𝑞𝑢𝑒𝑑𝑎 + 𝑇𝑙𝑎𝑡𝑒𝑛𝑐𝑖𝑎 ) + 𝑇𝑡𝑟𝑎𝑛𝑠𝑓𝑒𝑟𝑒𝑛𝑐𝑖𝑎

147
Ejemplo 4.2

Si un disco gira a 4000 rpm, ¿cuál es el valor del tiempo de latencia?


El tiempo de latencia es un valor promedio que se calcula como el tiempo que tarda el
disco en girar media vuelta. Entonces:
4000 revoluciones ______________ 1 minuto
½ revolución ______________  = 0,000125 minutos = 0.0075 s = 7,5 ms
Es decir que el Tiempo de latencia o espera es de 7,5 ms.

Desventajas del almacenamiento en disco magnético


El principal inconveniente que presentan los discos rígidos son sus
cabezas de lectura/escritura. Las cabezas flotan a una distancia
microscópica de la superficie del disco. Si una cabeza pasa por una partícula
de polvo o algún otro elemento contaminante en el disco, causaría lo que se
denomina choque de cabeza que dañaría parte de los datos del disco. Por este
motivo los discos vienen con una cubierta sellada que los protege. El choque
de cabeza también puede producirse al mover el disco mientras esta en uso.
Actualmente los discos rígidos son más resistentes, pero se deben manejar y
transportar con cuidado.

4.6 Tecnología Electrónica


La tecnología electrónica, supone el uso de dispositivos de memoria
flash, como soportes de almacenamiento removibles. El principio de
funcionamiento de las memorias flash, se explicó en la Unidad 3: Memorias
Internas, por lo cual no será tratado en esta sección. Solo se recordará que
las memorias flash son un tipo de EEPROM, memoria electrónica no volátil
que puede ser regrabada fácilmente.

Soportes de estado sólido


La memoria flash es considerada un dispositivo de almacenamiento de
estado sólido. Estado sólido significa que no hay partes móviles, todo es
electrónico, sin parte mecánicas. Una propiedad relevante es que se pueden
ser regrabados un número limitado de veces.
Las memorias electrónicas se presentan en formas variadas y sirven
para diversos propósitos. La memoria flash se usa como un tipo de
almacenamiento rápido y sencillo en dispositivos tales como cámaras
fotográficas digitales, consolas de video, reproductores de música digital,
celulares, entre otras. También son usadas como almacenamiento externo en
computadoras. A continuación se describirán algunos de los soportes más
populares de memoria flash, usados como dispositivos de almacenamiento
externo removibles.

148
Pen Drive o Dispositivo USB (Universal serial bus)
La memoria USB o Bus Universal en Serie es un dispositivo de
almacenamiento de datos que utiliza memoria flash para almacenar
información. Este soporte es comúnmente llamado pendrive, son pequeños y
se conectan a la computadora a través de un puerto USB, como muestra la
Figura 4.10. No se requieren programas especiales para ser reconocidos por
los distintos sistemas operativos, es un dispositivo "plug and play", solo hay
que conectarlo y la computadora detectará que posee un nuevo dispositivo de
almacenamiento. Estos dispositivos tienen capacidades desdelos 8GB hasta
llegar a 1TB. Los pendrive se han convertido en el sistema de
almacenamiento y transporte personal más utilizado.

Figura 4.10 Pendrive.

Tarjetas de memoria flash removibles


Las tarjetas de memoria flash están formadas por chips de memoria
flash, son memorias no volátiles con capacidades y características similares a
los dispositivos USB. Existen diferentes tipos de tarjetas y su costo variará en
función de su capacidad de almacenamiento, pero también de la velocidad de
trasferencia de datos (MB/s). Las tarjetas se presentan en diferentes modelos
y a continuación mostraremos los más populares (ver Figura 4.11):

a) Tarjeta CompactFlash b) Tarjeta SmartMedia c) Tarjeta Memory Stick y


adaptador

d) Tarjeta Secure Digital (SD)

149
f) xD-Picture Card
e) Tarjeta Multimedia Card

Figura 4.11 Tarjetas de memoria flash removibles.

Disco de Estado Sólido - SSD (Solid State Drive)


Un disco de estado sólido o SSD es un dispositivo de almacenamiento de
datos que usa memoria no volátil como memorias flash para almacenar
información. La gran diferencia con los discos rígidos es que en lugar de los
discos giratorios y cabezales móviles, los SSD sólo contienen circuitos
electrónicos (microchips) interconectados entre sí, como muestra la Figura
4.12.
Aunque técnicamente no son “discos”, suele realizarse una traducción
errónea de la 'D' de SSD como disk, cuando en realidad la palabra es drive y
puede traducirse como unidad o dispositivo. Por tal motivo, aunque no son
discos, a los SSD se los llaman discos porque son usados típicamente como
reemplazo de los discos rígidos de las computadoras.

150
Figura 4.12 Discos de Estado Sólido - SSD.

Los discos SSD como se describió en el punto anterior, poseen ventajas


y también diferencias frente a los discos rígidos (HDD). En la Tabla 4.1 se
muestran dichas ventajas y diferencias.

Mientras que los discos de estado sólido son cada vez más populares,
los discos rígidos se siguen utilizando en muchas computadoras de
escritorio, principalmente por el menor costo que estos presentan y la alta
capacidad de almacenamiento. Sin embargo, los discos de estado sólido han
comenzado a reemplazar a los discos rígidos, especialmente en notebooks,
debido a las distintas ventajas de rendimiento, incluidos los tiempos de
acceso más rápidos y la latencia más baja.
Las alternativas para su uso actualmente serían:
 Usar un SSD para instalar sistema operativo y aplicaciones, y un disco
rígido para los archivos de usuario.
 Usar un disco rígido Híbrido: Este tipo de dispositivo combina ambas
tecnologías, ya que al disco tradicional se le incorpora una memoria caché
de tipo flash o incluso un disco SSD. En esta caché se almacenan los
datos de acceso frecuente, de modo que se encuentran disponibles al
instante.

Características
SSD HDD

Capacidad de entre 256GB y 4TB entre 1TB y 10TB


almacenamiento

Consumo menor consumo mayor consumo


eléctrico

Costo muy elevado más económicos

Ruido silencioso por no tener algo más ruidoso por tener


partes móviles partes móviles

151
Vibraciones no vibra por no tener partes el giro de los platos provoca
móviles leves vibraciones

Fragmentación NO posee SI posee

sus celdas pueden sobre- por tener partes mecánicas


Durabilidad escribirse un número pueden dañarse las caras de
limitado de veces los discos por movimientos
Tiempo de muy rápidos, alrededor de más lentos, alrededor de 20
arranque del SO 10 segundos segundos

Transferencia entre 200 y 500MB/seg entre 50 y 150MB/seg


de datos

Afectado por el NO lo afecta el magnetismo puede eliminar


magnetismo datos
Tabla 4.1 Ventajas y diferencias entre un HDD y un SSD.

4.7 Tecnología Óptica


La tecnología óptica de almacenamiento es más reciente que la tecnología
magnética. Su primera aplicación comercial masiva fue el CD de música de la
década del 80. Luego surgieron el DVD, el Blu-Ray y el HD-DVD, cada uno de
ellos puede ser usado para almacenamiento de datos y también para otra
información como música, videos o juegos.

Los fundamentos técnicos que se utilizan en esta tecnología son


relativamente sencillos:
 En el proceso de grabación, un haz láser genera marcas microscópicas
(quemado) en la superficie del disco. Estás marcas son depresiones
llamadas pits (hoyos o pozos) y zonas planas denominadas lands (valles),
que se combinan para determinar la presencia de ceros y unos.
 El proceso de lectura de los datos se realiza con un láser, que se refleja
con distinta intensidad según incida en un pits (mayor intensidad) o sobre
un lands (menor intensidad). Esta variación en el reflejo del láser es
detectado por un dispositivo fotoeléctrico en la unidad lectora.

Tanto los pits como los lands pueden variar en longitud para representar
distintos valores binarios. El principio de un pits es un 1, su longitud
determina el número de ceros que representa, y el final de este pit es un
nuevo 1. El espacio entre pits, llamado land, siempre representa una
cantidad variable de ceros.

Organización de los datos en los discos ópticos


En algunos discos ópticos los datos se organizan en una pista única en
espiral y en otros en circunferencias concéntricas, como en los discos
magnéticos. La Figura 4.13 muestra ambos tipos de pista.

152
Figura 4.13 Estructura de pistas y sectores en soportes ópticos.

Según sea el tipo de pista, los datos deben ser leídos a velocidad lineal
constante (CLV) o a velocidad angular constante (CAV), como se muestra en la
Figura 4.13.

Discos de pista única en espiral: Velocidad lineal constante


En los CD-ROM y algunos CD-R los datos son organizados en una
espiral continua. El hecho de que los datos estén organizados en forma de
espiral hace que no se pueda hacer un salto para localizar un dato. Para
encontrar un determinado dato, la cabeza debe recorrer la espiral para
encontrar la posición temporal del dato, y no buscar una ubicación lógica
(pista-sector o cilindro-cabeza-sector) como en los discos rígidos.
El disco compacto divide su zona de datos en pequeñas porciones,
llamadas sectores o marcos. Estos sectores son la unidad mínima de lectura
de un CD: nada menor que un sector puede ser leído individualmente. El
número de marcos por pista es variable desde un número pequeño en el
centro del disco a un número bastante grande cuando se acerca a los bordes.
El primer marco es el del centro del disco y el número se incrementa hacia
afuera. La localización de un dato está dada por el tiempo: minutos y
segundos. Cada marco involucra 2 KB de datos, por lo que ésta es la mínima
cantidad de datos direccionable sobre esta clase de discos.
El origen del disco es el minuto cero, segundo cero y marco 0. Un marco
determinado debe ser direccionado con estos elementos, por ejemplo como
minuto 28, segundo 14, marco 6.
Para maximizar el espacio de almacenamiento disponible en un disco,
todos sus sectores tienen la misma longitud, desde el punto de vista físico,
tanto si se encuentran en la parte más interna, como si están en el borde
externo del CD. Desde el punto de vista lógico, en las pistas exteriores hay
más sectores por circunferencia que en las pistas interiores. El láser de
lectura se mueve desde el centro hacia fuera, sobre un brazo radial a una
velocidad lineal constante, por lo tanto para mantener en todos los sectores
la misma velocidad de lectura, la velocidad de rotación del disco debe ser
variable: muy alta en la zona interior (400 rpm), y más lenta en la zona
exterior (200 rpm).

153
Discos con pistas concéntricas: Velocidad angular constante
Para realizar la lectura de datos en los discos regrabables (CD-RW) se
emplea la Velocidad Angular Constante, es decir que la velocidad de rotación
del disco es constante.
Los datos están organizados en sectores y pistas, de la misma forma
que en los discos rígidos. Como el número de bits por sector permanece
constante en este tipo de organización, la densidad de datos es mayor en las
pistas y los sectores internos que en los externos.
A simple vista, y teniendo en cuenta que los datos en un disco
regrabable se almacenan en una organización lógica similar a la de los discos
rígidos, parecería que el tiempo de acceso tendría que ser del mismo orden en
ambos dispositivos. Pero en este el análisis se escapa un detalle que no es
insignificante: dada la complicada óptica involucrada en los discos
regrabables, la cabeza de lectura-escritura es más pesada, y por lo tanto,
una cabeza óptica es más lenta en sus movimientos que una cabeza
magnética. Hasta que no se simplifiquen o se mejoren los métodos de lectura
y escritura no se podrán mejorar notablemente los tiempos de acceso.

Características relevantes de los discos ópticos

Dos características significativas de los discos ópticos son la velocidad a


la que transfieren los datos y el tiempo de acceso.

Velocidad de transferencia
Recordemos que la velocidad de transferencia indica la cantidad de
datos transferidos por unidad de tiempo entre un dispositivo y otro. (Ver
Unidad 1 - sección 1.8.4. Ancho de banda o velocidad de transferencia).

La velocidad de transferencia de un CD es directamente proporcional a


la velocidad a la que gira el disco; es decir, cuanto más rápida es la rotación,
mayor cantidad de datos será transferida. Las primeras lectoras de CD-ROM
leían 153600 Bytes/segundo = 150 KB/s, es decir, 1X. A medida que la
tecnología fue avanzando aparecieron unidades lectoras de CD-ROM cada vez
más rápidas, rotuladas con 2X, 4X, 8X, 16X, 24X, 36X, 48X, 56X o más etc.
Esta denominación, nX significa que se multiplica el número indicado n por
el factor 150 KB/s, correspondiente a la velocidad de las primeras lectoras.
Así, las unidades de doble velocidad (2X) son aquellas que presentan una
tasa de transferencia aproximada a los 300 KB/s; cuádruple velocidad (4X)
supone 600 KB/s y una unidad de CD-ROM de 24X tiene una velocidad de
3600 KB/s (24 × 150 KB/s).
De la misma manera que se expresa la velocidad de transferencia de un
CD, cuyo valor original fue de 150KB/s (1X=150KB/s), se puede expresar la
velocidad de transferencia de un DVD, un Blu-Ray y un HD-DVD, como se
muestra en la siguiente: Tabla 4.2.

Característica CD DVD Blu-Ray HD-DVD

Tasa de 150KBps 1350KBps 4,5MBps 4,56MBps


transferencia a 1x

Tabla 4.2 Comparativa de las Tasa de transferencia a 1x de los soportes ópticos.

154
Ejemplo 4.3

¿Cuál es la relación que existe entre la velocidad de transferencia de un CD-ROM de 48X


y un disco rígido cuya velocidad de transferencia es de 20 MB/s?
La velocidad de transferencia de un CD-ROM de 48X es:
48  150 KB/s = 7280 KB/s = 7,11 MB/s
La relación entre la velocidad de transferencia del CD ROM (CD) respecto a la del disco
rígido (HD) es:
𝑉𝑇 𝐶𝐷 20 𝑀𝐵/𝑠
Relación de velocidades = = = 2,8
𝑉𝑇 𝐻𝐷 7,11 𝑀𝐵/𝑠

Por lo tanto, la velocidad de transferencia del disco rígido de 20 MB/s es 2,8 veces la de
un CD de 48X. Dicho de otra manera, en este ejemplo, el disco rígido transfiere
información 2,8 veces más rápido que el CD-ROM.

Tiempo de acceso
El tiempo de acceso se toma como la cantidad de tiempo que le lleva al
dispositivo desde que comienza el proceso de lectura hasta que los datos
comienzan a ser leídos.

Comparando los lectores CD-ROM con los discos rígidos, los primeros
son dispositivos más lentos. La cabeza óptica del dispositivo lector es
sustancialmente más pesada que los livianos mecanismos de un disco
rígidos. En lugar de la pequeña cabeza de lectura/escritura de un disco
rígido, el CD-ROM debe desplazar un complejo montaje óptico que se mueve
a través de un riel. Esta mayor masa se traduce en una espera también
mayor hasta que la cabeza lectora se sitúe en su posición. Junto al aspecto
del peso del lector, el sistema de velocidad lineal constante (CLV) utilizado en
los CD hace más lenta la velocidad de acceso.

Otras consideraciones técnicas


Los soportes ópticos en su aspecto físico son muy similares, la mayor
diferencia está en las densidades de grabación de cada capa y en el tipo de
láser empleado, como así en el tipo de codificación que se utiliza, mucho más
eficiente en un Blu-Ray que en un DVD o en un CD. En la Figura 4.14 se
muestra una comparación de distancias y medidas de los pits en los CD,
DVD, HD-DVD y Blu-Ray.

155
Figura 4.14 Datos guardados en formato digital. Comparación de distancias y medidas de los pits en
los CD, DVD, HD-DVD y Blu-Ray.

Soportes de almacenamiento óptico


Actualmente los dispositivos de almacenamiento óptico que podemos
encontrar son: CD, DVD, Blu-Ray y el HD-DVD. A continuación se
describirán las características más relevantes de cada uno de los soportes
ópticos:

 CD o Compact Disk o Disco Compacto: El Compact disk apareció por


primera vez en 1982 en formato de audio y fue el primero de los discos
ópticos del mercado (Figura 4.15). Originalmente solo existían CD con
información ya grabada, pero posteriormente surgieron otros formatos:
o CD-ROM (Compact Disk Read Only Memory): disco grabado de fábrica
que solo puede ser leído.
o CD-R o CD-Recordable (Disco compacto grabable): disco grabado por el
usuario una sola vez y puede ser leído muchas veces.
o CD-RW (Compact Disk - ReWritable o regrabable): pueden ser regrabado
una y otra vez.

156
Figura 4.15 Características de los CD.

Tamaño del disco: 12 cm de diámetro


Espesor: 1.2 mm
Capas: 1
Capacidad por capa: 700MB
Material reflectante: Aluminio (CD-ROM),
aleaciones de oro o plata (regrabables)
Material protector: Policarbonato (material
plástico transparente)
Tipo de Láser: Infrarrojo
Tamaño mínimo de pits: 1.6 µm (micrones)
Longitud de onda: 780 ηm (nanómetros)
Tasa de transferencia datos (1x): 1.2 Mbps

 DVD o Digital Versatile Disk o Disco Digital Versátil: En 1995, un


conjunto de nueve empresas (Hitachi, JVC, Matsushita, Philips, Pioneer,
Sony, Thomson, Time Warner y Toshiba) se unió para definir un nuevo
estándar de almacenamiento. De esta conferencia surgió el formato DVD,
cuyo principal fin era ser un soporte para películas de vídeo de alta
calidad; luego se utilizó para la distribución de todo tipo de datos (Figura
4.16).

El fundamento físico de los DVD es el mismo que los CD, con las
siguientes mejoras:
o Los pits son más pequeños (0.4 µm (micrones) en vez de 0.8 µm).
o La espiral es más estrecha (0.74 µm en vez de 1.6 µm).
o La longitud de onda del láser es menor (0.65 μm en vez de 0.78 μm).
o Se pueden grabar en ambas caras
o Pueden tener dos capas de datos: una capa opaca o semitransparente
y la otra translúcida. La unidad de lectura pueden leer las dos capas
enfocando el láser a una o a la otra.

Figura 4.16 Características de los DVD.

Tamaño del disco: 12 cm de diámetro


Espesor: 1.2
Capas: 1-2 (admite doble cara y hasta 4 capas)
Capacidad por capa: 4.7 GB (una capa)
8.5GB (doble capa)
Material reflectante: Aluminio (DVD-ROM),
aleaciones de oro o plata (regrabables)
Material protector/substrato: Policarbonato
Tipo de Láser: Rojo
Longitud de onda: 650 ηm (nanómetros)
Tamaño mínimo de pits: 0.44 µm (micrones)
Separación entre pistas: 0.74 µm (micrones)
Tasa de transferencia datos (1x): 11.08 Mbps

157
Observación: Los fabricantes de DVD utilizan el prefijo giga de acuerdo al
Sistema Internacional, que se basa en múltiplos de 10. En este sistema, 1
giga es igual a 109, pero en Informática los múltiplos de las unidades de
capacidad se definen utilizando base 2, donde 1 giga es igual a 2 30. Así,
cuando los fabricantes anuncian 4,7 GB de capacidad, esta medida
corresponde a 4,38 GB, siguiendo el criterio generalmente adoptado en
Informática para las medidas de capacidad de almacenamiento.

A continuación, a través de la Tabla 4.3 se muestran los tipos de DVD.


Criterio de Tipo de DVD Característica
Clasificación
DVD-Video Contienen películas (vídeo y audio)

Según su contenido DVD-Audio Contienen audio de alta fidelidad

DVD-Data Contienen todo tipo de datos

DVD-ROM Grabado de fábrica - sólo lectura


Según su capacidad
DVD-R y DVD+R Grabable una sola vez
de regrabado
DVD-RW y DVD+RW Regrabable

DVD-5: Una cara, capa simple; 4,7 GB –


Discos DVD±R/RW.

DVD-9 Una cara, capa doble; 8,5 GB –


Discos DVD+R DL
Según su número DVD-10 Dos caras, capa simple en ambas;
de capas o caras
9,4 GB – Discos DVD±R/RW

DVD-14 Dos caras, capa doble en una, capa


simple en la otra; 13,3 GB.
Raramente utilizado.

DVD-18 Dos caras, capa doble en ambas;


17,1GB – Discos DVD+R
Tabla 4.3 Criterio de Clasificación para los DVD.

 Blu-Ray o Blu-ray Disc o BD: es un formato de disco óptico para vídeo de


alta definición y almacenamiento de datos de alta densidad. Es la
evolución tecnológica del DVD y utilizan un rayo láser de color azul con
una longitud de onda de 405 ηm. El nombre Blu-Ray lo obtiene del color
azul del rayo láser que utiliza (Figura 4.17).
Existe gran variedad de discos Blu-ray, al igual que pasa con las
tecnologías anteriores (CD o DVD), como se muestra a continuación:

 BD-ROM (BD Read Only Memory): el disco es grabado de fábrica y


puede ser leído muchas veces.
 BD-R (Blu-ray Disc recordable o Blu-ray R): discos que pueden ser
grabados una sola vez y leídos muchas veces.
 BD-RE (Blu-Ray Re-Writable): el disco puede ser regrabado una o más
veces.

158
Figura 4.17 Características de los Blu-Ray.

Tamaño: 12 cm de diámetro
Espesor: 1.2 mm
Capacidad por capa: 25GB (una capa)
50GB (doble capa)
Material reflectante: Aluminio (BD-Rom), aleaciones
de oro o plata (regrabables)
Material protector/substrato: Polímero Durabis
(patente TDK) de alta resistencia (no se raya)
Grosor protector: 0.1 mm
Láser: Azul-Violeta
Longitud de onda: 405 nm
Tamaño mínimo pits: 0.30 µm (micrones)
Separación entre pistas: 0.30 µm (micrones)
Separación entre capas: 20 µm (micrones)
Tasa de transferencia datos (1x): 36 Mbps

 HD DVD (High Density Digital Versatile Disc) es un formato de


almacenamiento óptico desarrollado como un estándar para el DVD de
alta definición por las empresas Toshiba, Microsoft y NEC (Figura 4.18).
Los discos fabricados con este estándar pueden almacenar hasta 30 GB,
gracias a que trabajan con una longitud de onda de 405 ηm.
Este formato acabó perdiendo la batalla con el estándar Blu-ray, por
convertirse en el sucesor del DVD, y así la compañía Toshiba decidió
parar de fabricar más reproductores y continuar con las investigaciones
para mejorar su formato.

Figura 4.18 Características de los HD-DVD.

Tamaño: 12 cm de diámetro
Espesor: 1.2 mm
Capas: 1 – 2
Capacidad por capa: 1 (15GB) – 2 (30GB)
Tipo de Láser: Violeta
Longitud de onda: 405 ηm
Tamaño mínimo pits: 0.340 µm (micrones)
Tasa de transferencia datos (1x): 36,55 Mbps

4.8 Almacenamiento en la Nube, servicios en línea y el


futuro de los soportes de almacenamiento
A pesar de la variedad de soportes de almacenamiento que surgieron a
través de los años y que se han estudiado en esta unidad. Surge la necesidad
de mencionar el nuevo modelo que se ha establecido como el elegido por su
practicidad y su ventaja económica: la nube, como se ilustra en la Figura
4.19.

159
Este modelo de almacenamiento de datos se basa en redes de
computadoras5 a las que se puede acceder con una conexión a internet.
Algunos ejemplos de este modelo son: DropBox, OneDrive o Google Drive,
entre otros.
También hay que tener en cuenta el surgimiento de nuevos modelos de
visualización y de descarga de contenidos a demanda a través de internet,
como por ejemplo Netflix, Crackle y YouTube. Lo que ha llevado a una
creciente caída en las ventas de productos de almacenamiento; por lo que,
memorias USB y discos DVD o Blu-Ray podrían desaparecer. Además, en la
actualidad, ya es común la adquisición de software (por ejemplo: programas y
videojuegos) a través de portales en línea, lo que elimina la necesidad de
adquirirlos en formato físico.
La oferta de almacenamiento casi ilimitado y de bajo costo, junto con
los servicios ofrecidos a través de internet, hará que los dispositivos de
almacenamiento tradicionales en el futuro tiendan a desaparecer.

Figura 4.19 Almacenamiento en la NUBE.

5
Una red de computadoras (también llamada red de ordenadores o red informática) es un conjunto de
equipos (computadoras y dispositivos), conectados por medio de cables, señales, ondas o cualquier otro
método de transporte de datos, para compartir información (archivos), recursos (discos, impresoras,
programas, etc.)

160
Bibliografía

Libros
GINZBURG, MARIO C. "La PC por dentro. Arquitectura y funcionamiento de
computadores modernos desde cero" – 6ta Edición - 2013
PATRICIA QUIROGA. “Arquitectura de Computadoras” - Edición 2010.
DAMIÁN COTTINO. “Hardware desde cero” - PC USERS - Edición 2009.
PRIETO ESPINOSA, LLORIS, TORRES. "Introducción a la Informática" Tercera
Edición 2002-
DUPERUT, Gabriel. "Fundamentos de Computación y Comunicaciones". Edición
2000

Fuentes Webs
 http:/www.zator.com/Hardware/H8.htm
 http:/www.howstuffworks.com
 http://www.kingston.com
 http://www.idg.es
 http://es.kioskea.net
 https://www.siglo21.net/catalogo/12/detalle/2386/western-digitall-hdd-
purple-2tb-sata-60gbs-35-purple
 https://www.siglo21.net/catalogo/12/detalle/287/canvio-basic-ext-1tb-
black-25-usb30
 https://www.cromo.com.uy/asi-fue-la-evolucion-del-almacenamiento-
n1039261
 http://revista.consumer.es/web/es/20060601/pdf/internet.pdf
 Luna Ramírez, Enrique, Díaz Echeverría, Israel, Nuevas Tecnologías de
Almacenamiento. Conciencia Tecnológica [en línea] 2006 (Julio-
Diciembre): [Fecha de consulta: Marzo-2018]. Disponible
en:<http://www.redalyc.org/articulo.oa?id=94403213> ISSN 1405-5597
 https://es.wikipedia.org/wiki/Disco_óptico
 https://es.wikipedia.org/wiki/CD-ROM
 https://es.wikipedia.org/wiki/DVD
 https://es.wikipedia.org/wiki/Disco_Blu-ray
 https://es.wikipedia.org/wiki/HD_DVD

161
Unidad 5
Funcionamiento de la CPU
Índice temático Unidad Nº 5 – Funcionamiento de la CPU

5.1. Introducción .................................................................................................. 165


5.2. Evolución de los microprocesadores ............................................................... 165
5.2.1. Los microprocesadores en la actualidad ................................................................ 168
5.3. Arquitectura de la CPU................................................................................... 170
5.3.1. Estructura de la UAL. Formato de las instrucciones .............................................. 171
5.3.2. La Unidad de Control ............................................................................................. 173
5.3.3. Registros de la CPU ................................................................................................ 174
5.4. Lenguajes de programación ........................................................................... 177
5.4.1. Lenguaje de máquina ............................................................................................. 177
5.4.2. Lenguaje Ensamblador (Assembler)....................................................................... 178
5.5. Funcionamiento del microprocesador ............................................................ 179
5.5.1. Tipos de Instrucciones............................................................................................ 180
5.5.2. Procesamiento de una instrucción........................................................................ 184
5.5.3. Ejecución de un programa. Seguimiento de instrucciones .................................... 184
Ciclo de captación de la instrucción.................................................................................. 185
Ciclo de ejecución de la instrucción .................................................................................. 186
Instrucciones Aritméticas : ADD( ), SUB( ), MPL( ), DIV( ) ................................................. 186
Instrucciones de ruptura de secuencia sin retorno: JUMP ............................................... 194
Instrucciones de ruptura de secuencia con retorno: CALL, RET ....................................... 198
Bibliografía ................................................................................................................. 203
Unidad 5
Funcionamiento de la CPU
Esquema de contenidos
Evolución de los
microprocesadores
Estructura de la UAL
Arquitectura de la CPU La Unidad de Control
Registros de la CPU

Funcionamiento Lenguaje de Maquina


de la CPU Lenguajes de
Programación Lenguaje Ensamblador

Tipos de Instrucciones
Funcionamiento del Procesamiento de una instrucción
microprocesador Ejecución de un programa

5.1. Introducción
Se ha visto en la Unidad 1 que una computadora está compuesta
básicamente por una Memoria Principal, una Unidad Central de Proceso y
Periféricos. En la Unidad 3 se describió la Memoria Principal y su relación
con la Unidad Central de Proceso. Esta Unidad se ocupa en detalle de la
Unidad Central de Proceso (CPU).
Pero, ¿cómo está constituida físicamente una CPU? Físicamente, la
CPU es un dispositivo electrónico que controla y dirige el funcionamiento de
todo el sistema y recibe el nombre de microprocesador.
El microprocesador es el corazón de cualquier computadora normal,
ya sea una PC, un servidor o una Laptop. Comercialmente hablando, el
microprocesador puede ser un Pentium 4, un Athlon, un Celeron, un Duron
u otro de las muchas otras marcas y tipos de microprocesadores existentes,
pero todos ellos hacen aproximadamente las mismas cosas en
aproximadamente la misma forma.

5.2. Evolución de los microprocesadores


Un microprocesador (también conocido como CPU o Unidad Central de
Procesamiento) es una máquina de computación completa en sí misma, que
está fabricada sobre un chip.

165
¿Qué es un chip?
Un chip o circuito integrado, es una pastilla de material semiconductor (generalmente silicio o germanio)
pequeña y delgada que contiene circuitos electrónicos con componentes miniaturizados como diodos,
transistores, resistencias, y condensadores. La pastilla se protege con un encapsulado de plástico o
cerámica que posee los conductores metálicos necesarios para la conectar la pastilla en una placa de
circuito impreso.
Existen varios tipos de chips. Entre los más avanzados se encuentran los microprocesadores. Otro
ejemplo de chips son las memorias digitales.
Un chip puede medir aproximadamente 2,5 cm de largo y contener decenas de millones de transistores.
Un microprocesador actual contiene decenas de millones de transistores grabados sobre un chip de
unos pocos milímetros cuadrados.

La Figura 5.1 muestra algunos procesadores de la empresa Intel, hitos


de la evolución constante de los microprocesadores.
El primer microprocesador fue el Intel 4004, introducido en 1971. El
4004 no era muy potente, todo lo que podía hacer era sumar y restar, y
solamente podía procesar 4 bits a la vez, pero era sorprendente que todo
eso estuviera contenido en un solo chip. Antes del 4004, los ingenieros
construían computadoras a partir de conjuntos de chips o a partir de
componentes discretos (transistores conectados uno a la vez). El 4004 fue el
microprocesador de una de las primeras calculadoras electrónicas
portátiles.
El primer microprocesador de 8 bits fue el 8008, desarrollado para su
uso en terminales informáticos.

Figura 5.1 Algunos modelos de


procesadores Intel.

166
En 1974 Intel lanzó el 8080. Este microprocesador de 8 bits se
convirtió en la CPU de la "home computer" o computadora hogareña
(anterior a la PC).
El primer microprocesador que revolucionó el mercado fue el Intel
8088, introducido en 1979 e incorporado a la IBM PC (que recién apareció
alrededor de 1982).
El mercado de la PC fue pasando desde el 8088 al 80286, al 80386, al
80486, al Pentium, al Pentium II, al Pentium III, al Pentium 4 (Ver Tabla
5.1). Todos estos microprocesadores fueron hechos por Intel y todos ellos
son mejoras sobre el diseño básico del 8088. El Pentium 4 puede ejecutar
cualquier segmento de código que corra sobre el original 8088, pero lo hace
aproximadamente 5000 veces más rápido.

Velocidad de
Nombre Fecha Transistores Micrones Ancho de datos MIPS
reloj

8080 1974 6.000 6,0 2 MHz 8 bits 0,64


16 bits
8088 1979 29.000 3,0 5 MHz 0,33
8 bit bus
80286 1982 134.000 1,5 6 MHz 16 bits 1
80386 1985 275.000 1,5 16 MHz 32 bits 5
80486 1989 1.200.000 1,0 25 MHz 32 bits 20
32 bits
Pentium 1993 3.100.000 0,8 60 MHz 100
64 bit bus
32 bits
Pentium II 1997 7.500.000 0,35 233 MHz ~300
64 bit bus
32 bits
Pentium III 1999 9.500.000 0,25 450 MHz ~510
64 bit bus
32 bits
Pentium 4 2000 42.000.000 0,18 1,5 GHz ~1.700
64 bit bus
Tabla 5.1 Tabla comparativa de microprocesadores Intel.

La Tabla 5.1 resume a modo de comparación algunas características


técnicas que ayudarán a comprender las diferencias entre los distintos
procesadores que Intel ha introducido a través de los años. Las
características de microprocesadores que muestra la tabla son:
 Fecha: es el año que el procesador fue introducido por primera vez.
Muchos procesadores son re-introducidos a velocidades de reloj más
altas varios años después de la fecha original de lanzamiento.
 Transistores: es el número de transistores que contiene el chip. Se
puede ver que el número de transistores sobre un solo chip, se eleva
constantemente con el correr de los años.
 Micrones: es el ancho, en micrones (micrómetros), del hilo conductor en
el chip. Para comparar, un cabello humano es de 100 micrones de
espesor. A medida que las dimensiones características en el chip
disminuyen, el número de transistores aumenta.
 Velocidad de reloj: es la máxima velocidad a la que el chip puede
trabajar.
 Ancho de datos: es al ancho de la UAL. Una UAL de 8 bits puede sumar,
restar, multiplicar, etc., dos números de 8 bits, mientras que una UAL
de 32 bits puede manipular números de 32 bits. Una UAL de 8 bits
debería ejecutar 4 instrucciones para sumar 2 números de 32 bits,
mientras que una UAL de 32 bits puede hacer esto en una sola

167
instrucción. En muchos casos, el bus de datos externo es del mismo
ancho que la UAL, pero no siempre. El 8088 tiene una UAL de 16 bits y
un bus de datos de 8 bits, mientras que los modernos Pentium traen
datos de 64 bits de una sola vez para sus UAL de 32 bits.
 MIPS: o "millones de instrucciones por segundo" es una medida grosera
del rendimiento de la CPU. Las CPU modernas pueden hacer muchas
cosas diferentes, por lo que la velocidad expresada en MIPS pierde
mucho significado, pero describe en sentido general, la potencia relativa
de procesamiento que posee una CPU.

En la Tabla 5.1 se puede ver que, en general, existe una relación entre
la velocidad del reloj y los MIPS. También se puede ver una relación entre el
número de transistores y MIPS. Por ejemplo, el 8088 trabaja a 5 MHz pero
solamente ejecuta 0,33 MIPS (alrededor de 1 instrucción cada 15 ciclos de
reloj). Los modernos procesadores, pueden procesar a una velocidad de 2
instrucciones por cada ciclo de reloj. Esta mejora está directamente
relacionada al número de transistores en el chip.

5.2.1. Los microprocesadores en la actualidad


Las dos empresas líderes en la fabricación de microprocesadores para
PC (desktop) en la actualidad son, Intel (Integrated Electronics) y AMD
(Advanced Micro Devices). Poco antes de iniciar la década de los 80, Intel y
AMD firmaron un acuerdo de intercambio de licencias y tecnología, para
convivir en un mercado que no era tan competitivo como el actual. Con los
procesadores 386 y 486, de enorme popularidad, AMD gozó de gran cuota
de mercado, copiando los modelos de Intel y lanzándolos a mejor precio
poco después. En la época de Pentium, Intel dio un gran paso adelante,
patentando el producto completamente para evitar que AMD le copiara.
Si bien no se puede lograr un paralelo exacto entre los tipos de
procesadores de ambas empresas, debido a que las luchas por ganar el
mercado hacen que uno de los productos siempre tenga alguna ventaja
sobre su par, se intenta hacer un resumen comparativo en la Tabla 5.2 y
Tabla 5.3.

Velocidad Caché
Microprocesador Fecha Velocidad de reloj
del bus L2 L3
Pentium 1993 60 MHz 50 MHz 256 KB -
Pentium II 1997 233 MHz 66 MHz 256 KB -
Pentium III 1999 450 MHz 100 MHz 256 KB -
Pentium 4 2000 1,3 GHz a 2,8 GHz 533 MHz 1 MB -
(1)
P4 – HT 2001 2,4 GHz a 3,6 GHz 800 MHz 1 MB -
(2)
P4 HT – EE 2001 3,2 GHz a 3,4 GHz 800 MHz 512 KB 2 MB
P4 Dual 2,4 GHz a 3,6 GHz 800 MHz 1 MB -
Core i3 2,4 GHz a 3,4 GHz 1600 MHz 256 KB 4 MB
Core i5 1,06 GHz a 3,46 GHz 1600 MHz 1 MB
(3)
Core i7 3,2 GHz a 3,46 GHz 6,4 GT/s 6x256 KB 15 MB
(1) Tecnología HT (Hyper Threading) : Permite ejecutar 2 instrucciones al mismo tiempo, a través de software.
(2) Tecnología HT- Extreme Edition
(3) GT/s Giga Transfer por segundo. Nomenclatura aplicada a procesadores multi núcleo.
Tabla 5.2 Microprocesadores Intel.

168
Velocidad del Caché
Microprocesador Fecha Velocidad de reloj
bus L1 L2
K-5 1994 60 MHz
K-6 1998 300 MHz
K6-2 1999 550 MHz
Athlon 2000 1 GHz a 1,4 GHz 266 MHz 128 KB 256 KB
Athlon XP 2001 1,8 GHz a 2,2 GHz 400 MHz 128 KB 512 KB
Athlon 64 2003 2,2 GHz 2000 MHz 128 KB 1 MB
Athlon 64 FX 2003 2,2 GHz 1,6 GHz 128 KB 1 MB
Athlon 64 X2 2005 2,2 GHz 1,6 GHz 512 KB 1 MB

Tabla 5.3 Microprocesadores AMD

Se puede observar que a partir de la generación de los Pentium las


diferencias ya no se establecen solamente por las distintas velocidades del
procesador, sino que entran en juego la velocidad del bus frontal (FSB), y la
cantidad de memoria caché en sus distintos niveles.
Una primera solución al procesamiento multitarea, la presentan los
procesadores Pentium 4 HT. La tecnología "HyperThreading" es una
optimización que engaña al Sistema Operativo para hacerle pensar que hay
dos procesadores instalados, cuando en realidad hay solamente uno,
ejecutando dos instrucciones simultáneamente por software. La solución
real al problema de ejecutar varias tareas simultáneamente son los
procesadores Dual Core o doble núcleo. Estos procesadores (Pentium 4
Dual de Intel y Athlon 64 X2 de AMD), tienen dos núcleos de proceso (CPU)
interconectados que permiten duplicar el desempeño sin aumentar la
frecuencia de reloj.
En la Tabla III, se muestra la familia de procesadores Celeron, versión
económica de los Pentium que Intel saca al mercado para competir con
AMD. A su vez AMD lanza las versiones económicas de Athlon (Tabla IV). En
ambos casos las diferencias de estas versiones más económicas no están en
la velocidad del procesador ni en la del bus frontal, sino en la menor
cantidad de memoria caché que presentan con respecto a Pentium y Athlon
respectivamente.

Velocidad Caché
Microprocesador Fecha Velocidad de reloj
del bus L1 L2 L3

Intel Celeron 1999 1,6 GHz a 2,8 GHz 400 MHz - 128 KB -

AMD Duron 1999 800 MHz a 1,3 GHz 200 MHz 128 KB -

Intel Celeron D 2000 2,4 GHz a 2,93 GHz 533 MHz - 256 KB -

AMD Sempron 2000 1,5 GHz a 2 GHz 333 MHz 128 KB 256 KB

Tabla 5.4 Versiones económicas de microprocesadores AMD e Intel

169
5.3. Arquitectura de la CPU
La CPU está constituida fundamentalmente por la Unidad de Control y
la UAL, pero además debe contar con elementos de memoria para el
almacenamiento temporal de los datos tratados por la CPU. Esa memoria
está constituida por Registros.
La conexión entre los distintos componentes del computador se realiza
mediante buses. Ya se ha definido un bus como un conjunto de caminos
conductores en paralelo, que puede ser compartido por varios dispositivos,
a los fines de la comunicación entre los mismos. Cuando los datos deben
ser transmitidos de un componente a otro, viaja por el bus desde el
componente fuente al de destino, almacenándose temporalmente en
registros.

Recordar: Los registros son elementos de memoria que componen la


CPU para que ésta pueda conservar temporalmente instrucciones o
datos en el curso de su tratamiento.

En la arquitectura básica presentada en la Figura 5.2, se muestra en


primer lugar un Bus Interno de la CPU. Este bus permite la transmisión de
datos entre la Unidad de Control, la Unidad Aritmético-Lógica y otros
registros específicos.

Figura 5.2 Arquitectura básica de la CPU

La Unidad de Control necesita comunicarse además, con la memoria y


los periféricos. Esta comunicación la realiza a través de buses externos, que
conforman el Bus del Sistema. Este bus está constituido por tres grupos
funcionales de líneas denominados:
 Bus de Datos: funciona en conjunción con el bus de direcciones y
sirve para transmitir instrucciones y datos. Es bidireccional, es decir
transmite de la CPU a la memoria y viceversa.
 Bus de Direcciones: son líneas de señales para transmitir las
direcciones de las posiciones de memoria y de los dispositivos
conectados al bus. Puesto que cada línea puede tener dos posibles
estados (0 y 1), con n líneas se pueden especificar 2n direcciones
distintas. Es unidireccional, es decir transmite en una sola dirección:
de la CPU a la memoria.
 Bus de Control: sirve para trasmitir las señales de control que
coordinan el funcionamiento del computador. Por ejemplo, indica a la

170
memoria si se va a acceder para realizar una operación de lectura o
de escritura.
Cuando un dato está preparado para ser transmitido, primero se envía
la dirección de destino por el bus de direcciones, a continuación se envía el
dato por el bus de datos, y todas estas acciones están controladas por
señales que se envían por el bus de control.

5.3.1. Estructura de la UAL. Formato de las instrucciones


Como se explicó en la Unidad 1, la UAL es la unidad encargada de
realizar las operaciones aritméticas y lógicas solicitadas por el programa.
En el caso de tratarse de una operación aritmética, por ejemplo una suma,
la instrucción debería facilitarle a la UAL la siguiente información:
 La clase de operación a realizar, en este caso una suma; es el papel
del código de operación;
 La dirección de la celda de memoria que contiene el primer dato, o
primer operando;
 La dirección de la celda de memoria que contiene el segundo
operando;
 La dirección de la celda de memoria donde quiere almacenarse el
resultado.

De aquí se deduce que el formato de este tipo de instrucciones


(aritméticas), contiene un código y tres direcciones:

Código de Dirección del Dirección del Dirección del


operación 1er operando 2do operando 3er operando

La Figura 5.3a representa la UAL capaz de ejecutar esta operación, la


cual está rodeada de tres registros donde se memorizan los dos operandos y
el resultado. La instrucción de suma necesita por lo tanto, cuatro accesos a
memoria central, que permiten sucesivamente buscar la instrucción,
después el primer operando, después el segundo y por último, almacenar el
resultado. A las máquinas que utilizan este tipo de instrucción se les llama
máquinas de tres direcciones. Existen máquinas de dos direcciones y de
una dirección.

Figura 5.3 (a) Máquina de tres direcciones. (b) Máquina de una dirección

171
En el presente curso se tomará como base una máquina de una
dirección. En este caso la UAL posee un registro particular, denominado
Acumulador. Para realizar una operación, se utiliza el Acumulador para
recibir el primer operando y luego de realizada la operación, el Acumulador
almacena el resultado. Esta característica permite instrucciones aritméticas
de una sola dirección: la del segundo operando.
En la Figura 5.3b, el Acumulador sustituye a los registros R1 y R3 de
la Figura 5.3a. El segundo operando puede almacenarse en el registro de
palabra asociado a la memoria.
Entonces, en una máquina de una dirección, la operación de suma
necesita tres instrucciones, en la siguiente secuencia:
 Cargar el primer operando en el Acumulador;
 Sumar el segundo operando con el contenido del Acumulador. Al
finalizar la operación, el resultado queda almacenado en el Acumulador.
 Almacenar en memoria el contenido del Acumulador, que contiene el
resultado de la operación realizada.

Cada una de estas tres instrucciones comportará un código de


operación y una dirección:

Código de operación Dirección de operando

1 Carga Dirección del 1er operando

2 Adición Dirección del 2do operando

3 Almacenamiento Dirección del resultado

A grandes rasgos, la estructura de la UAL, está constituida por varios


circuitos operadores, tanto aritméticos como lógicos. Estos tienen funciones
específicas, por ejemplo: Sumador (para realizar sumas), Desplazador
(operaciones de desplazamiento), Complementador (cálculo del
complemento), etc. Además, cada función puede tener distintas versiones
según el tipo de datos que procese.
La Figura 5.4 muestra los registros asociados a la UAL. Puede
observarse que además del Acumulador y el registro que almacena el
segundo operando, otro registro que trabaja asociado a la UAL es el Registro
de Estado.

Figura 5.4 Registros asociados a la UAL.

172
Como se verá más adelante, el Registro de Estado refleja en cada uno
de sus bits distintas características del valor almacenado en el Acumulador,
y es consultado por la Unidad de Control para tomar decisiones cuando
ejecuta instrucciones de ruptura de secuencia.

5.3.2. La Unidad de Control


La Unidad de Control es la parte de la CPU que realmente hace que las
cosas ocurran. La Unidad de Control emite órdenes en forma de señales de
control externas a la CPU para producir el intercambio de datos con la
memoria y los módulos de E/S. Estas señales se transmiten a través del
Bus de Control. También emite señales de control internas para transferir
datos entre registros, hacer que la UAL ejecute una función concreta y
regular otras operaciones internas. Estas señales se transmiten a través del
Bus Interno.
El esquema de la Figura 5.5 muestra la estructura interna de la
Unidad de Control. Los componentes de la Unidad de Control son:
 Decodificador: Se encarga de extraer el código de operación de la
instrucción en curso (que está en el Registro de Instrucciones), la
analiza y emite señales necesarias al resto de elementos para su
ejecución a través del secuenciador.
 Reloj: Proporciona una sucesión de pulsos eléctricos o ciclos a
intervalos constantes, que marcan los instantes en que han de comenzar
los distintos pasos de que consta cada instrucción. La cantidad de
pulsos por segundo indica la velocidad de procesamiento de la máquina.
 Secuenciador: También llamado controlador. En este dispositivo se
generan órdenes muy elementales (microórdenes) que, sincronizadas por
los pulsos del reloj, hacen que se vaya ejecutando poco a poco la
instrucción que está cargada en el Registro de Instrucciones.

Figura 5.5 Estructura interna de la Unidad de Control

173
5.3.3. Registros de la CPU
Para poder realizar la ejecución de un programa, es obvio que la CPU
necesita almacenar instrucciones y datos temporalmente mientras una
instrucción está siendo ejecutada. En otras palabras, la CPU necesita una
pequeña memoria. Estos elementos de memoria interna se denominan
registros.
Los registros almacenan datos que la CPU necesita constantemente y
por tal razón se encuentran implementados con la tecnología de memoria
interna de mayor velocidad (SRAM).
Por ejemplo, la CPU debe “recordar” la instrucción que se encuentra
en ejecución, para ello cuenta con un registro especial: el Registro de
Instrucción. Asimismo, para continuar la ejecución del programa cada vez
que finaliza una instrucción, la CPU debe conservar la posición de la
instrucción siguiente; para esta tarea recurre al registro Contador de
Programa. La Figura 5.5 muestra estos dos registros y como veremos a
continuación, la CPU cuenta con otros registros más para su
funcionamiento.
La Figura 5.6 muestra un esquema de la CPU detallando los
principales registros que posee. Cada uno de estos registros se utiliza para
tareas específicas.

Figura 5.6 Registros de la CPU.

174
Clasificación de los registros
a) Según la Unidad con la que se relacionan.
Se puede agrupar a los registros de acuerdo a la Unidad de la CPU con
la que están relacionados o asociados para trabajar. Esta clasificación será
útil al momento de hacer el seguimiento de las instrucciones dentro de la
CPU. Según este criterio, se puede hablar de:
 Registros asociados a la Memoria Principal:
o Registro de Palabra o registro de datos: Este registro es el
encargado de almacenar la información (datos o instrucciones)
que se intercambian con la Memoria Principal a través del bus
de datos. Durante una operación de lectura contiene la
información que proviene de la Memoria; si es una instrucción, la
pasa al registro de instrucciones; si es un dato el intercambio se
produce con el Acumulador, la UAL, o algún registro individual.
Durante una operación de escritura contiene la información que
proviene del Acumulador. Este intercambio dentro de la CPU se
realiza a través del bus interno.
o Registro de Direcciones: Este registro almacena las direcciones de
las celdas de memoria que van a ser accedidas para realizar una
lectura/escritura. Está conectado directamente al bus de
direcciones.
 Registros asociados a la Unidad de Control:
o Registro de Instrucciones: Este registro sirve para contener la
instrucción que es captada por la CPU durante una operación de
lectura.
o Contador de Programa: El contador de programa contiene una
dirección de instrucción. Típicamente, la Unidad Control actualiza
el CP después de cada captación de instrucción de manera que
siempre apunta a la siguiente instrucción a ejecutar. Una
instrucción de bifurcación o salto también modificará el contenido
del CP.
o Puntero a Pila: El registro puntero a pila permite almacenar la
dirección de acceso a la memoria pila. Se verá su funcionamiento
al tratar las instrucciones de ruptura de secuencia.
 Registros asociados a la Unidad Aritmético-lógica:
o Acumulador: La función de este registro ya se ha visto al describir
la UAL de una sola dirección. Se usa para almacenar el primer
operando de una operación aritmética y finalmente se carga con
el resultado de la operación llevada a cabo en la UAL.
o Registro de Estado: Este registro contiene códigos de condición
además de otra información de estado. Los códigos de condición
(también llamados indicadores o flags) son bits cuyos valores son
establecidos por el hardware de la CPU de acuerdo al resultado de
la última operación realizada por la UAL. Es decir que, además de
almacenarse el propio resultado en el registro Acumulador, se
obtiene también los indicadores o flags del resultado obtenido.
Cada indicador se almacena en un bit del Registro de Estado
describiendo cierta condición del resultado (si fue nulo, si fue
positivo, si se produjo desbordamiento). Los indicadores pueden
ser examinados con posterioridad como parte de una condición de
bifurcación condicional.
La Figura 5.7 muestra un ejemplo de Registro de Estado de ocho
bits. La cantidad y significado de los bits del registro no es igual
175
para todos los microprocesadores sino que puede cambiar de un
modelo a otro según los criterios de diseño del fabricante.

Figura 5.7 Ejemplo de Registro de Estado de ocho bits.

- El Bit 0 o C: Es el indicador de acarreo. Es posicionado por


las operaciones aritméticas y de comparación. Este bit es
como si fuera el noveno bit del acumulador.
- El Bit 2 P/V: El significado de este flag depende de la
operación que acaba de realizarse. Sirve como indicador de
desbordamiento de capacidad (overflow) V, en el caso de
una operación aritmética (suma, resta, incremento o
decremento). En el caso de operaciones lógicas o de
desplazamiento, sirve como indicador de paridad P, estos
tipos de operaciones no se ven en el curso.
- El Bit 6 o Z: Señala si el resultado de la última operación
realizada ha sido nulo. En este caso Z=1, si el resultado es
distinto de cero Z=0.
- El Bit 7 o S: Este flag indica el signo del byte contenido en
el Acumulador, es decir toma el valor del bit 7 del byte
contenido en el Acumulador. Por lo tanto S=1 si el
resultado es negativo y S=0 si es positivo.

b) Según la función que cumplen


Desde el punto de vista de la función que cumplen, los registros de la
CPU se pueden clasificar en: Registros de Control y Registros visibles al
usuario.
 Registros de Control: Son los registros utilizados por la Unidad de
Control y por programas privilegiados del sistema para controlar el
funcionamiento de la CPU para la ejecución de programas. La mayor
parte de estos registros no son visibles al usuario. Algunos de ellos
pueden ser visibles a instrucciones de máquina ejecutadas en un modo
de control o de sistema operativo.
Pertenecen a este grupo:
- El Contador de Programa
- El Registro de Dirección
- El Registro de Instrucción
- El Registro de Palabra
- El Registro de Estado
Los cuatro primeros son esenciales para la ejecución de una instrucción
y se usan para la transferencia de datos entre la CPU y la memoria. El
último, el Registro de Estado, es usado por la Unidad de Control para
tomar decisiones en función de operaciones realizadas en la UAL.
 Registros visibles al usuario: Un registro visible al usuario es aquél
que puede ser referenciado por medio del lenguaje máquina que ejecuta
la CPU. Permiten al programador de lenguaje de máquina o ensamblador
minimizar las referencias a memoria principal optimizando el uso de los
registros. A su vez, podemos clasificarlos en:
o Registros de Uso General: almacenan datos o direcciones y
pueden ser asignados por el programador a diversas funciones. A
veces, se usa para contener el operando para cualquier código de

176
operación o puede haber registros específicos para operaciones en
coma flotante. En algunos casos los registros de uso general
pueden ser utilizados para funciones de direccionamiento.
o Registros de Datos: pueden ser usados únicamente para contener
datos y no se pueden emplear en el cálculo de una dirección de
operando. Un ejemplo de este tipo de registro es el Acumulador.
o Registros de Direcciones: almacenan solo direcciones. Pueden ser
en sí registros de uso más o menos general, o pueden estar
dedicados a un modo de direccionamiento particular. El caso más
conocido es el Puntero a Pila.

5.4. Lenguajes de programación

5.4.1. Lenguaje de máquina


Una computadora solamente puede ejecutar un grupo definido y
limitado de órdenes que recibe el nombre de Repertorio o Set de
Instrucciones, Lenguaje de Máquina o Código Absoluto de esa computadora.
Cada fabricante establece el set correspondiente a un modelo de
microprocesador en particular, de modo que ello constituye una
característica de diseño. El número de instrucciones que componen el Set
de Instrucciones es distinto para distintos tipos y familias de procesadores.
Sin embargo existe un grupo básico de operaciones que todos los
procesadores incluyen aunque con características propias para cada una de
ellas. Por ejemplo: Sumar, Comparar, Transferir, etc.
La representación interna de datos en la computadora es binaria,
entonces cada instrucción está codificada en binario pudiendo ser de esta
manera interpretada por los circuitos de la computadora. El lenguaje de
máquina (código binario) es el verdadero lenguaje de la computadora. Todas
las instrucciones del programa deben ser expresadas de esta forma para
que la computadora las pueda entender.
A cada instrucción del Set le corresponde una determinada
configuración de ceros y unos establecida durante el diseño del
microprocesador, con ajuste a un formato determinado. Por ejemplo, en una
instrucción de tres bytes, se puede asignar un byte para el código de
operación y los dos bytes restantes para la dirección del operando.
En el ejemplo se muestra un programa simple, escrito en código
binario para un microprocesador que tiene las características expresadas
anteriormente. El programa suma los dos números en las posiciones de
memoria 0160H y 0161H y guarda la suma en la posición 0162H:

Cod. de la Parte alta de la Parte baja de la


Descripción
operación dirección dirección

0000 0001 0000 0001 0110 0000 Cargar el contenido de la dirección 0160H en el Acumulador.
0000 0101 0000 0001 0110 0001 Sumar el contenido de la dirección 0161H al Acumulador.
0000 0010 0000 0001 0110 0010 Transferir el contenido del Acumulador a la dirección de
memoria 0162H.

Esto es entendible para el microprocesador pero no para el usuario


humano. La primera mejora al respecto consistió en utilizar codificación
hexadecimal.
177
Codificación hexadecimal
Esta forma de representación de las instrucciones es una mejora
respecto al método binario, puesto que abrevia cada grupo binario de 8 bits
a dos dígitos hexadecimales. Veamos ahora el programa precedente
utilizando el código hexadecimal:

Cod. de la Parte alta de la Parte baja de la


Descripción
operación dirección dirección

01 01 60 Cargar el contenido de la dirección 0160H en el Acumulador.


05 01 61 Sumar el contenido de la dirección 0161H al Acumulador.
02 01 62 Transferir el contenido del Acumulador a la dirección de
memoria 0162H.

Esta representación de las instrucciones resulta una mejora desde el


punto de vista de las personas, pero un microprocesador no sería capaz de
interpretar este programa tal como está.

5.4.2. Lenguaje Ensamblador (Assembler)


La programación en lenguaje de máquina es muy engorrosa debido a
que cada instrucción debe ser codificada en ceros y unos difíciles de
recordar. En un principio los programas se escribían así. En aquellos
tiempos, la revisión de un programa significaba a menudo cambiar
direcciones y seguían a las revisiones largas horas destinadas a verificar,
calcular y llevar tablas.
La computadora podía realizar este tipo de trabajo administrativo y
para salvar todo este inconveniente de programar en ceros y unos se
desarrollaron los lenguajes ensambladores. Los lenguajes ensambladores se
basan en mnemónicos fáciles de recordar y la posibilidad para el
programador de asignar nombres simbólicos a las direcciones del
almacenamiento principal, pudiendo referirse tanto a instrucciones como a
datos fácilmente.
Un programa escrito utilizando mnemónicos se llama programa en
lenguaje ensamblador (Assembler). El programa del ejemplo anterior
utilizando lenguaje ensamblador quedaría:

Dirección de Instrucción en
Descripción
memoria principal lenguaje ensamblador

0150 LOAD, (0160H) Cargar el contenido de la dirección 0160H en el Acumulador.


0151 ADD, (0161H) Sumar el contenido de la dirección 0161H al Acumulador.
0152 STORE (0162H) Almacenar el contenido del Acumulador en la dirección de
memoria 0162H.

Se ha agregado en la primera columna la dirección de memoria


principal en la que se encuentra almacenada cada instrucción.
La Figura 5.8 muestra una instrucción en lenguaje ensamblador
identificando los elementos que la componen:

178
Figura 5.8 Estructura interna de la Unidad de Control

Como se puede imaginar, el proceso para trasladar un programa en


lenguaje ensamblador a código binario es bastante complicado. Esto es
cierto, pero el proceso es tan sistemático y repetitivo que puede ser
programado e implementado en el mismo microprocesador.
El programa que acepta un listado en código ensamblador (código
fuente) y obtiene un programa codificado en binario (código objeto) se
denomina llamado programa traductor. Este programa se encarga también
de tareas administrativas tales como calcular posiciones de
almacenamiento para datos e instrucciones y asignar direcciones reales a
símbolos o etiquetas empleados por el programador.
Para el ejemplo anterior, los códigos aparecerían de la siguiente
manera:

Dirección de
Código fuente Código Objeto Descripción
memoria principal

Cargar el contenido de la dirección 0160H en el


0150 LOAD, (0160H) 01 0160
Acumulador.

Sumar el contenido de la dirección 0161H al


0151 ADD, (0161H) 05 0161
Acumulador.

0152 STORE, (0162H) 02 0162 Almacenar el contenido del Acumulador en la


dirección de memoria 0162H.

5.5. Funcionamiento del microprocesador


Para entender cómo trabaja un microprocesador, es de mucha ayuda
mirarlo por dentro y aprender sobre la lógica usada para crearlo. En el
proceso se puede también aprender sobre el Lenguaje Assembler, el
lenguaje nativo de un microprocesador
A los fines de esta asignatura, utilizaremos un modelo simplificado de
CPU (ver Figura 5.9), un microprocesador extremadamente simple, al cual
nos referiremos de aquí en adelante.
Como el objetivo de la unidad no es enseñar Lenguaje Assembler, sino
el de entender el funcionamiento de las distintas partes de la CPU, se usará
un pseudo lenguaje assembler, con instrucciones más sencillas pero que
cumplen funciones similares a las del verdadero Assembler, para que de
este modo se pueda comprender la función que cumplen las distintas
unidades y registros de la CPU, realizando un seguimiento de dichas
instrucciones.

179
Figura 5.9 Esquema de la CPU.

5.5.1. Tipos de Instrucciones


Un microprocesador ejecuta un conjunto de instrucciones de máquina
que le dicen al procesador qué hacer. Basado en las instrucciones, un
microprocesador puede hacer tres tipos de tareas básicas:
 Instrucciones aritméticas: Usando su UAL, un microprocesador puede
realizar operaciones matemáticas como suma, resta, multiplicación y
división. Los modernos microprocesadores contienen procesadores de
punto flotante que pueden realizar operaciones extremadamente
sofisticadas con números muy grandes, en punto flotante.
 Instrucciones de transferencia de datos: Un microprocesador puede
mover datos desde una posición de memoria a otra.
 Instrucciones de ruptura de secuencia: Un microprocesador puede
tomar decisiones y saltar a un nuevo conjunto de instrucciones,
basándose en estas decisiones.
Existen operaciones mucho más complejas que un microprocesador
puede hacer, pero estas son sus tres actividades básicas.

180
Instrucciones de inicio y fin de programa: Estas instrucciones indican el
comienzo y la finalización de un programa respectivamente.
ORG Indica la dirección de memoria donde comienza la ejecución
del programa. Cabe aclarar que solo es una instrucción de
ensamble, es decir se utiliza al momento de armar el Código
Objeto.
END Indica la finalización del programa que se estaba ejecutando.

Instrucciones de transferencia de datos: Las instrucciones de


transferencia de datos permiten copiar, en el operando destino, la
información almacenada en el operando origen, quedando este último sin
modificar. Destino y origen pueden ser registros o posiciones de memoria.
En general, no modifican los bits del Registro de Estado.
LOAD Transfiere el contenido de una posición de memoria a un
registro.
STORE Transfiere el contenido del registro Acumulador a una
posición de memoria. Es la operación inversa a LOAD

Instrucciones Aritméticas: Describen operaciones aritméticas que se


ejecutan en la UAL. La ejecución de estas instrucciones modifica el Registro
de Estado
ADD Suma
SUB Resta
MPL Multiplica
DIV Divide

Las instrucciones de ruptura de secuencia: Permiten alterar la secuencia


normal de ejecución del programa. De forma genérica se dice que son
instrucciones de salto o bifurcación, puesto que, en vez de pasar a la
instrucción que ocupa la posición siguiente, “saltan” a ejecutar
instrucciones que se encuentran en otra posición de memoria.

 Bifurcación incondicional: Producen la bifurcación sin ninguna


condición.
JUMP Modifica el contador de programa (CP) con una nueva
dirección

 Bifurcación condicional: las bifurcaciones condicionales son


instrucciones que tienen dos secuencias distintas:
- Cuando no se cumple la condición de bifurcación, no se
modifica el CP
- Cuando sí se cumple la condición de bifurcación, se modifica el
CP, el cual recibe la dirección de bifurcación.

Las condiciones de bifurcación se establecen sobre el Registro de


Estado de la UAL que almacena ciertas condiciones sobre las operaciones
realizadas con anterioridad. Estas condiciones pueden hacerse sobre un
sólo bit o sobre varios simultáneamente.
Las instrucciones que se usarán son:
JUMP Z Modifica el contador de programa (CP) con una nueva
dirección si el resultado de la operación efectuada es
cero, o sea Z= 1

181
JUMP NZ Modifica el contador de programa (CP) con una nueva
dirección si el resultado de la operación efectuada es
distinta de cero, o sea Z= 0
JUMP P Modifica el contador de programa (CP) con una nueva
dirección si el resultado de la operación efectuada es
positivo, o sea S= 0
JUMP M Modifica el contador de programa (CP) con una nueva
dirección si el resultado de la operación efectuada es
negativo, o sea S=1

 Bifurcación con retorno: Las instrucciones de bifurcación con retorno


salvaguardan la dirección de la instrucción que ocupa la posición
siguiente, en forma previa a realizar el salto. De esta forma, se puede
retornar al punto donde se bifurcó y seguir ejecutando en la dirección
siguiente a la que causó el salto, (ver Figura 5.10).
El uso más frecuente de la bifurcación con retorno es para llamar a
subrutinas (instrucción que suele llamarse CALL o BRANCH).
CALL Modifica el CP, luego de resguardar la dirección de retorno en
memoria pila
RET Retorna la dirección almacenada en memoria pila, al CP.

Figura 5.10 Llamada a subrutina.

Uno de los problemas clásicos de las bifurcaciones con retorno es la


selección del lugar donde se salvaguarda la dirección de retorno. La
solución más usada es el de la memoria pila.
Este método permite llamadas anidadas de cualquier nivel, así como
llamadas recursivas. En efecto, cada nueva llamada va introduciendo en la
pila su dirección de retorno, sin destruir las anteriores. Dado que los
retornos se hacen en orden inverso a las llamadas, la pila siempre tiene en
la cabecera la dirección de retorno adecuada.
El puntero a la cabecera de la pila está almacenado en el Registro
Puntero a Pila (Stack Pointer)

182
Resumen con los distintos tipos de instrucciones

La Tabla 5.5 resume las instrucciones de pseudo assembler con sus


respectivos códigos (hexadecimal) y las características del modelo
simplificado de CPU que se utilizarán en todos los ejercicios y ejemplos de
esta unidad.

Transferencia de datos Ruptura de secuencia Comienzo y final de programa

LOAD 01 H JUMP 07 H ORG (No se ejecuta, solamente se


carga el Contador de Programa con
STORE 02 H JUMP NZ 08 H
la dirección que acompaña a ORG)
Aritméticas JUMP Z 09 H
END 0E H
JUMP P 0A H
ADD 03 H
JUMP M 0B H
SUBTRACT (SUB) 04 H
CALL 0C H
MULTIPLY (MPL) 05 H
RETURN (RET) 0D H
DIVIDE (DIV) 06 H

Arquitectura del procesador:


Bus de datos: 24 bits
Bus de direcciones: 16 bits
Formato de instrucción: 8 bits para código de operación y
16 bits para dirección del operando

Tabla 5.5 Set de instrucciones y arquitectura del modelo simplificado de CPU.

183
5.5.2. Procesamiento de una instrucción
La función básica que realiza una computadora es la ejecución de
programas. El programa a ejecutar está compuesto por un conjunto de
instrucciones almacenadas en memoria. La unidad central de proceso (CPU)
se encarga de leer y ejecutar las instrucciones especificadas en dicho
programa.
Para adquirir una mejor comprensión de esta función y de la forma en
que los principales componentes del computador interactúan para ejecutar
un programa, es preciso considerar con detalle el proceso de ejecución de
un programa. El procesamiento que requiere una instrucción se denomina
ciclo de instrucción.
El punto de vista más sencillo considera el procesamiento de una
instrucción constituido por dos etapas: el ciclo de captación y el de
ejecución (Ver Figura 5.11).
En el ciclo de captación la CPU lee (capta, de “fetch” en inglés) la
instrucción de memoria y en el ciclo de ejecución la ejecuta. La ejecución
del programa consiste en la repetición del proceso de captación y ejecución
de la instrucción. Por supuesto, la ejecución de la instrucción puede a su
vez estar compuesta de cierto número de pasos.
La captación de una instrucción es una operación común a todas las
instrucciones y consiste en la lectura de la instrucción de una posición de
memoria; la ejecución de la instrucción puede suponer varias operaciones y
depende de la naturaleza de la instrucción.
La ejecución del programa se detiene sólo si la máquina se
desconecta, se produce algún error, o se encuentra una instrucción del
programa que detiene al computador.

Figura 5.11 Ciclo básico de la instrucción.

5.5.3. Ejecución de un programa. Seguimiento de instrucciones


La Unidad de Control, más precisamente el secuenciador, genera una
serie de microórdenes o microinstrucciones que llevan a la ejecución de una
instrucción completa. Se ha dicho en el apartado anterior que el
procesamiento de una instrucción supone dos etapas: la de captación y la

184
de ejecución. A continuación se describen las microórdenes que el
secuenciador genera durante ambas etapas.

Ciclo de captación de la instrucción


El procesamiento de cualquier instrucción comienza siempre en el
Contador de Programa. El Sistema Operativo carga el CP con la dirección de
la primera instrucción del programa y después este registro es el encargado
de mantener la secuencia de ejecución.
El ciclo de captación inicia cuando la Unidad de Control ordena la
transferencia del contenido del Contador de Programa (es decir, la dirección
de la instrucción por ejecutar) al Registro de Direcciones, y envía a la
memoria una orden de lectura a través del Bus de Control.
Una vez terminada esta operación de lectura, la palabra leída (la
instrucción) queda disponible en el Registro de Palabra. Entonces, la
Unidad de Control ordena la transferencia del contenido de este registro al
Registro de Instrucciones.
El Registro de Instrucciones está dividido en dos parte: el código de
operación y la dirección del operando (ver apartados 5.3.1, 5.4.2 y Figura
5.9). La Unidad de Control ordena que se copie el código de operación al
decodificador, donde es reconocido dentro del set de instrucciones del
procesador para poder determinar de qué instrucción se trata y actuar en
consecuencia.
El ciclo de captación termina incrementando el Contador de Programa
para direccionar la próxima instrucción.
El siguiente esquema resume los pasos del ciclo de captación
completo. Estos pasos, denominados microinstrucciones, pueden ser
identificados para su seguimiento en la Figura 5.12.

Pasos en el ciclo de captación de una instrucción


Contador de Bus Interno Registro de
1
Programa Direcciones

Registro de Bus de Direc. Memoria


2
Direcciones Principal

Memoria Bus de Datos Registro de


3
Principal (lectura) Palabra

Registro de Bus Interno Registro de


4
Palabra Instrucciones

Registro de Bus Interno


5 Decodificador
Instrucciones (Cod. Op.)

Contador de Contador de
6
Programa Programa +1

185
Figura 5.12 Ciclo de captación de una instrucción.

Ciclo de ejecución de la instrucción


La ejecución de una instrucción determinada supone una serie de
pasos o microinstrucciones que dependen en cada caso del tipo de
instrucción que se trate.

Instrucciones Aritméticas : ADD( ), SUB( ), MPL( ), DIV( )


Una vez analizado el código de operación, la Unidad de Control
reconoce que se trata de una instrucción de procesamiento con captación
previa del operando y que la dirección del operando se encuentra en la zona
de dirección del Registro de Instrucciones.
La Unidad de Control ordena su transferencia al Registro de
Direcciones de memoria y acto seguido ordena una operación de lectura en
la memoria. Al finalizar dicha operación, el operando buscado queda
disponible en el Registro de Palabra. La Unidad de Control emite señales a
los circuitos de la UAL para realizar el procesamiento indicado por el código
de operación y ordena la transferencia del operando a la UAL, cuyos
circuitos llevan a cabo la operación indicada por la Unidad de Control

186
interpretando el operando recibido como segundo operando, ya que el
primer operando es siempre el valor almacenado en el Acumulador.
El resultado de la operación realizada entre el primer y segundo
operando, queda almacenado en el Acumulador. A continuación, la Unidad
de Control ordena la actualización de los flags (bits) del Registro de Estado
que reflejan condiciones del resultado de la operación realizada en la
UAL (ver apartado 5.3.3 – Registros Asociados a la UAL: Registro de Estado).
El siguiente esquema de microinstrucciones resume los pasos del ciclo
de ejecución completo de una instrucción aritmética (sólo cambiará el tipo
de operación aritmética a ejecutar). Estos pasos se muestran para su
seguimiento en la Figura 5.13.

Pasos del ciclo de ejecución de una instrucción aritmética


Bus Interno
Registro de Registro de
7
Instrucciones Direcciones
(Dir. Operando)

Registro de Bus de Direc. Memoria


8
Direcciones Principal

Memoria Bus de Datos Registro de


9
Principal (lectura) Palabra

Bus Interno
Registro de
10 UAL
Palabra
(2do operando)

11 UAL Acumulador

(actualizacion bits) Registro de


12 Acumulador
Estado

187
Figura 5.13 Ciclo de ejecución de una instrucción aritmética (ADD, SUB, MPL o DIV).

Instrucciones de Transferencia de datos: LOAD ( ), STORE ( )


La transferencia de datos que describiremos aquí serán operaciones de
carga y almacenamiento de un dato entre la CPU y la memoria principal.
La carga consiste en leer un dato desde memoria principal y llevarlo a
un registro de la CPU, mientras que el almacenamiento guarda en la
memoria principal un dato que se encuentra en un registro de la CPU; son
operaciones que implican sentidos de transferencia opuestas.
A continuación se describen por separado las instrucciones de carga
(LOAD) y almacenamiento (STORE).

 Carga de un dato – Procesamiento de la instrucción LOAD ( )


Una vez que el decodificador identifica el código de operación,
comienza la ejecución copiando la dirección del operando desde el Registro
de Instrucciones al Registro de Direcciones. Luego, el bus de direcciones
activa la celda de memoria que tiene esa dirección y la Unidad de Control
ordena una lectura del contenido de la celda (operando), que es llevado por
el bus de datos al Registro de Palabra. Desde allí, a través del bus interno,
el operando se almacena el dato en el registro Acumulador. El valor del
acumulador actuará como el primer operando en una operación aritmética.

188
El siguiente esquema muestra los pasos del ciclo de ejecución de la
instrucción LOAD, cuyo seguimiento puede realizarse en la Figura 5.14.

Pasos del procesamiento de la instrucción LOAD ( )


Registro de Bus Interno Registro de
7
Instrucciones (Dir. Operando) Direcciones

Registro de Bus de Direc. Memoria


8
Direcciones Principal

Bus de Datos
Memoria Registro de
9
Principal Palabra
(lectura)

Registro de Bus Interno


10 Acumulador
Palabra

Figura 5.14 Ciclo de ejecución de la instrucción de carga LOAD.

 Almacenamiento de un dato – Procesamiento de la instrucción STORE ( )


El decodificador identifica el código de operación y la dirección del
operando se copia en el Registro de Direcciones. El bus de direcciones
activa la celda de memoria que tiene esa dirección para que pueda ser

189
escrita. La Unidad de Control ordena la operación de escritura en memoria
y el contenido del registro Acumulador es llevado por el bus interno al
Registro de Palabra. Desde allí a través del bus de datos se almacena el
dato en la celda de memoria activada.
A continuación se muestra el esquema de microinstrucciones del ciclo
de ejecución de la instrucción STORE con el respectivo seguimiento en la
Figura 5.15.

Pasos del procesamiento de la instrucción STORE ( )


Registro de Bus Interno Registro de
7
Instrucciones (Dir. Operando) Direcciones

Registro de Bus de Direc. Memoria


8
Direcciones Principal

Bus Interno Registro de


9 Acumulador
Palabra

Bus de Datos
Registro de Memoria
10
Palabra Principal
(escritura)

Figura 5.15 Ciclo de ejecución de la instrucción de almacenamiento STORE.

190
Observación: Para la resolución de los ejemplos y ejercicios
propuestos que se presentan a continuación, se usará el set de
instrucciones y la arquitectura de procesador detallado en la Tabla
5.5.

Ejemplo 5.1 Seguimiento de instrucciones LOAD, ADD y STORE

a) Realice el seguimiento del siguiente programa usando los esquemas y Figuras: 5.13, 5.14 y 5.15
ORG 0107 H Comienzo de programa. En el contador de programa se carga la dirección 0107H.
0107 H LOAD, (025ª H) Carga en el Acumulador el contenido de la celda de memoria de dirección 025AH.
0108 H ADD, (135E H) Suma al Acumulador el contenido de la celda de dirección 135EH.
0109 H STORE, (135F H)Almacena el contenido del Acumulador en la dirección 135FH.
010ª H END Fin del programa

Memoria Principal
Bus de Datos
01 025A H 0107 H
03 135E H 0108 H Bus de Direcciones
02 135F H 0109 H
0E 0000 H 010A H
: :
: :
:
13 D 025A H
Memoria de datos : :
20 D 135E H
50 D 135F H

Nota: Para mayor claridad, se muestran los esquemas de microinstrucciones en las páginas siguientes.

b) Complete el siguiente cuadro, que se corresponde con el seguimiento realizado en el apartado a)

1) Después de ejecutar: 0107 H LOAD, (025A H) Acumulador = 13D

2) Después del ciclo de búsqueda: 0108 H ADD, (0135E H) CP = 0109H


Decodificador = 03H

3) Después de ejecutar: 0108 H ADD, (0135E H) Acumulador = 33D


Reg. Estado: Z = 0
Reg. Estado: S = 0

4) Después del ciclo de búsqueda: 0109 H STORE, (135F H) (135F H)= 50D

5) Después de ejecutar: 0109 H STORE, (135F H) Reg. Palabra = 33D


(025ª H) = 13D
(135F H) = 33D

191
192

LOAD CB CP
RDir
Bus Dir MP= 0107 H Bus Datos
RP
RI U.C. CP=CP+1
0107 H 0107 H 01 025A H 01 025A H 01 025A H 01 025A H 01 Decodif. 0108 H

Dec.
CE 01 025A H 01= LD
Bus Dir MP= 025A H Bus Datos
RDir RP Acum.
025A H 13 13 13

Bus Dir MP= 0108 H Bus Datos RI U.C. CP=CP+1


ADD CB CP
0108 H
RDir
0108 H 03 135E H 03 135E H
RP
03 135E H 03 135E H 03 Decodif. 0109 H

Dec.
CE 03 135E H 03 =ADD
Bus Dir MP= 135E H Bus Datos U.A.L. R.Estado
RDir RP Acum
135E H 20 20 20 13 +20 33 S=0 Z=0

Bus Dir MP= 0109 H Bus Datos RI U.C. CP=CP+1


STORE CB CP RDir RP
0109 H 0109 H 02 135F H 02 135F H 02 135F H 02 135F H 02 Decodif. 010A H

Dec.
CE 02 135F H 02 =ST
Bus Dir MP= 135F H
RDir
Secuenc. 135F H 50 33
Bus de Datos

Acum R.Palabra
33

Bus Dir MP= 010A H Bus Datos RI U.C. CP=CP+1


END CB CP
010A H
RDir
010A H 0E 0000 H 0E 0000 H
RP
0E 0000 H 0E 0000 H 0E Decodif. 010B H

Dec.
CE 0E 0000 H 0E =END CB: Ciclo de Búsqueda
CE: Ciclo de Ejecución

192
Ciclo de Búsqueda Ciclo de Ejecución
Bus Interno (Dir. Operando)
Contador de Registro de Registro de Registro de
1 7
Programa Direcciones Instrucciones Direcciones
0107 H 025A H

Registro de Bus de Direc. Memoria Registro de Bus de Direc. Memoria


2 8
Direcciones 0107 H Principal Direcciones 025A H Principal

Bus de Datos
Memoria Bus de Datos Registro de Memoria Registro de
3 9
Principal (01 025A H) Palabra Principal Palabra
(13)

Registro de Bus Interno Registro de Registro de Bus Interno


4 10 Acum. = 13
Palabra 01 025A H Instrucciones Palabra 13

(Cod. Op.)
Registro de
5 Decodificador
Instrucciones
01

6 CP=0107 H CP+1=0108 H

Bus Interno (Dir. Operando)


Contador de Registro de Registro de Registro de
1 7
Programa Direcciones Instrucciones Direcciones
0108 H 135E H

Registro de Bus de Direc. Memoria Registro de Bus de Direc. Memoria


2 8
Direcciones 0108 H Principal Direcciones 135E H Principal

Memoria Bus de Datos Registro de Memoria Bus de Datos Registro de


3 9
Principal (03 135E H) Palabra Principal (20) Palabra

(2do operando)
Registro de Bus Interno Registro de Registro de
4 10 UAL
Palabra 03 135E H Instrucciones Palabra
20

(Cod. Op.)
Registro de UAL
5 Decodificador 11 Acum. = 33
Instrucciones 13+20
03 33

(actualizacion de Reg de Estado


6 CP=0108 H CP+1=0109 H 12 Acumulador
bits) S=0 Z=0

Bus Interno (Dir. Operando)


Contador de Registro de Registro de Registro de
1 7
Programa Direcciones Instrucciones 135F Direcciones
0109 H

Registro de Bus de Direc. Memoria Registro de Bus de Direc. Memoria


2 8
Direcciones 0109 H Principal Direcciones 135F Principal

Bus Interno
Memoria Bus de Datos Registro de Registro de
3 9 Acumulador
Principal (02 135F H) Palabra Palabra
33

Bus de Datos
Registro de Bus Interno Registro de Registro de MP = 135F H
4 10
Palabra 02 135F H Instrucciones Palabra 50 33
(33)

(Cod. Op.)
Registro de
5 Decodificador
Instrucciones
02

6 CP=0109 H CP+1=010A H

193
Instrucciones de ruptura de secuencia sin retorno: JUMP
Este tipo de instrucción, también llamado instrucción de bifurcación o
de salto, permite modificar el desarrollo secuencial del programa, haciendo
que la instrucción de salto sea seguida no por la instrucción almacenada en
la siguiente dirección, sino por una instrucción cuya dirección viene
suministrada por la propia instrucción de salto. Además este salto puede
ser incondicional o estar sujeto a ciertas condiciones que deben ser
cumplidas para ejecutar el salto (ver apartado 5.5.1).

Salto incondicional – Procesamiento de la instrucción JUMP


Una vez analizado el código de operación, la Unidad de Control
reconoce que se trata de una instrucción de salto incondicional. La
dirección de salto se encuentra en la zona de dirección del Registro de
Instrucciones. La Unidad de Control ordena su transferencia al Contador de
Programa modificando de esta manera la secuencia del programa.

Registro de Bus Interno Contador de


7
Instrucciones (Dir. Operando) Programa

Figura 5.16 Ciclo de ejecución de una instrucción de salto incondicional.

194
Salto condicional – Procesamiento de las instrucciones JUMP M/ P/ Z/ NZ
Cuando el Decodificador identifica el código de operación como una
instrucción de salto condicional, la Unidad de Control verifica la condición
de salto con los bits del Registro de Estado. Si la condición se cumple
(verdadero), la dirección de salto que se encuentra en la zona de dirección
del Registro de Instrucciones se transfiere al Contador de Programa
modificando de esta manera la secuencia del programa. Si la condición no
se cumple (falso), la ejecución de la instrucción termina, el Contador de
Programa no se modifica y la ejecución del programa continúa
normalmente. (ver apartado 5.5.1).

Pasos del ciclo de ejecución de la instrucción de salto condicional


Registro de Bus Interno Unidad de
7
Estado (flags: Z-S) Control

Registro de Verdadero Contador de


8
Instrucciones (Dir. Operando) Programa

Falso
Fin

Figura 5.17 Ciclo de ejecución de una instrucción de salto condicional.

195
Ejemplo 5.2 Seguimiento de instrucciones de salto

a) Realice el seguimiento del siguiente programa usando los esquemas de microinstrucciones. Considere el
Acumulador= 20; Registro de Estado: Z=0 S=0
0106 H …
0107 H JUMP Z, 0109 H Salta a la dirección 0109 H (STORE), si el resultado de la operación es nulo (si Z=1)
0108 H JUMP, 010A H Salto incondicional a la dirección 010A H (END)
0109 H STORE, (135F H Almacena el contenido del Acumulador en la dirección 135F H.
010AH END

Memoria Principal
Bus de Datos
09 0109 H 0107 H
07 010A H 0108 H Bus de Direcciones
02 135F H 0109 H
0E 0000 H 010A H
: :
: :

Memoria de datos 135E H


50 D 135F H

Nota: Para mayor claridad, se muestran los esquemas de microinstrucciones en las páginas siguientes.

b) Complete el siguiente cuadro, que se corresponde con el seguimiento realizado en el apartado a)

1) Después del ciclo de búsqueda: 0107 H JUMP Z, 0109 H CP = 0108H

2) Después de ejecutar: 0107 H JUMP Z, 0109 H CP = 0108H

3) Después del ciclo de búsqueda: 0108 H JUMP, 010A H CP = 0109H

4) Después de ejecutar: 0108 H JUMP, 010A H CP = 010AH

5) Después de ejecutar: 010A H END Acumulador = 20D


(135F H)= 50D

196
Ciclo de Búsqueda Ciclo de Ejecución
Bus Interno Bus Interno
Contador de Registro de Registro de UC
1 7
Programa Direcciones Estado (flag: Z) Z=0
0107 H

Registro de Bus de Direc. Memoria Registro de Verdadero(Z=1) Contador de


2 8
Direcciones 0107 H Principal Instrucciones (Dir. Operando) Programa

Memoria Bus de Datos Registro de Falso (Z=0)


3 Fin
Principal (09 0109 H) Palabra

Registro de Bus Interno Registro de


4
Palabra 09 0109 H Instrucciones

Registro de (Cod. Op.)


5 Decodificador
Instrucciones 09

6 CP=0107 H CP+1=0108 H

Bus Interno (Dir. Operando)


Contador de Registro de Registro de CP= 0109 H
1 7
Programa Direcciones Instrucciones CP=010A H
0108 H 010A H

Registro de Bus de Direc. Memoria


2
Direcciones 0108 H Principal

Memoria Bus de Datos Registro de


3
Principal (07 010A H) Palabra

Registro de Bus Interno Registro de


4
Palabra 07 010A H Instrucciones

(Cod. Op.)
Registro de
5 Decodificador
Instrucciones
07

6 CP=0108 H CP+1=0109 H

Bus Interno
Contador de Registro de
1
Programa Direcciones
010A H

Registro de Bus de Direc. Memoria


2
Direcciones 010A H Principal

Memoria Bus de Datos Registro de


3
Principal (0E 0000 Palabra

Registro de Bus Interno Registro de


4
Palabra 0E 0000H Instrucciones

(Cod. Op.)
Registro de
5 Decodificador
Instrucciones
0E

6 CP=010A H CP+1=010B H

197
Instrucciones de ruptura de secuencia con retorno: CALL, RET
Una instrucción de salto con retorno, se refiere siempre a un llamado
para la ejecución de un programa secundario. En lenguaje Assembler el
llamado se realiza usando la instrucción CALL. Según el lenguaje de
programación que se esté usando, el programa secundario puede ser una
Función, un Procedimiento o una Subrutina. Este programa secundario,
depende del programa principal que lo invocó, y por lo tanto una vez
ejecutado debe devolver el control al programa principal para que continúe
con la secuencia del programa. El retorno al programa principal se hace a
través de la instrucción RETURN (RET), colocada al final de la subrutina. Se
verá a continuación el desarrollo de estas dos instrucciones.

Llamado a Subrutina - Procesamiento de la instrucción CALL


Cuando el decodificador identifica la instrucción CALL, la Unidad de
Control reconoce que se trata de un salto con retorno y que por lo tanto
antes de modificar el Contador de Programa (CP) con la dirección que
acompaña al código de operación, se debe resguardar la dirección de
retorno. Esta dirección está en el CP y debe ser copiada en el lugar de
Memoria Pila que indica el Registro Puntero a Pila (PP). Este registro
siempre apunta a una dirección ocupada, por lo tanto, para realizar una
escritura primero debe apuntar a una dirección que esté libre, para lo cual
se decrementa en una unidad (PP = PP - 1). De este modo, en el caso de
anidamiento de subrutinas (dentro de una subrutina se llama a otra), las
direcciones de retorno se van "apilando" hasta que las instrucciones de
retorno (RET) vacían la pila. El Registro PP es un registro visible al usuario,
por lo tanto puede ser establecido por el programador en un valor
determinado, de no ser así, por defecto este registro toma el valor de la
primera instrucción del programa.
Se inicia la ejecución, entonces, decrementando el Puntero a Pila,
luego esta dirección se copia al Registro de Direcciones para que el bus de
direcciones active la celda correspondiente de la memoria. La Unidad de
Control envía una orden de escritura en memoria (bus de control) y la
dirección del CP se copia en el Registro de Palabra para que el bus de datos
la guarde en la celda indicada por PP. Realizada esta acción, se ejecuta el
salto a la subrutina copiando la dirección que acompaña al código de
operación (Registro de Instrucciones) en el Contador de Programa.

Pasos del procesamiento de la instrucción CALL

7 Puntero Pila PP = PP-1

Bus Interno Registro de


8 Puntero Pila
Direcciones

Registro de Bus de Direc.


9 Memoria Pila
Direcciones

Contador de Bus Interno Registro de


10
Programa Palabra

Bus de Datos
Registro de
11 Memoria Pila
Palabra
(escritura)

Bus Interno
Registro de Contador de
12
Instrucciones Programa
(dir.operando)

198
Figura 5.18 Ciclo de ejecución de una instrucción de salto con retorno (CALL).

Retorno al programa principal -Procesamiento de la instrucción RET


Cuando el decodificador reconoce la instrucción RET, el secuenciador
inicia las acciones de ejecución del retorno. El PP contiene la última
dirección de almacenamiento de la Memoria Pila, por lo tanto la dirección
del PP se copia en el Registro de Direcciones, el bus de direcciones activa la
celda de memoria correspondiente a esa dirección y la Unidad de Control
envía una orden de lectura. El contenido de la celda activada viaja por el
bus de datos hasta el Registro de Palabra y por el bus interno hasta el
Contador de Programa. De este modo, el CP ha quedado cargado con la
dirección de retorno. Por último, el PP debe incrementarse en 1 (PP = PP +
1), para quedar listo para la próxima lectura.

199
Pasos del procesamiento de la instrucción RET
Bus Interno Registro de
7 Puntero Pila
Direcciones

Registro de Bus de Direc.


8 Memoria Pila
Direcciones

Bus Datos
Registro de
9 Memoria Pila
Palabra
(lectura)

Bus Interno
Registro de Contador de
10
Palabra Programa

11 Puntero Pila PP = PP+1

Figura 5.19 Ciclo de ejecución de una instrucción de retorno (RET).

200
Ejemplo 5.3 Seguimiento de instrucciones de salto con retorno.

a) Realice el seguimiento del siguiente programa usando los esquemas de microinstrucciones. Complete el
cuadro correspondiente a la memoria de datos e instrucciones. Considere el Acumulador = 20 y el Puntero
Pila = 0100 H.
0106 H …
0107 H CALL, 0209 H Salta a la dirección 0209 H para ejecutar la subrutina, después de guardar 0108 H
0108 H END Fin del programa principal.
: :
0209 H STORE, (035B H) Almacena el contenido del acumulador en la dirección 035B H.
020A H RET Retorna al programa principal, a la dirección 0108 H.

Memoria Principal
00FE H
Bus de Datos 00FF H Memoria Pila
0100 H
: :
0C 0209 H 0107 H
0E 0000 H 0108 H Bus de Direcciones
: :
: :
02 035B H 0209 H
0D 0000 H 020A H
Memoria de datos : :
13 D 035B H

Nota: Para mayor claridad, se muestran los esquemas de microinstrucciones en la página siguiente.

b) Complete el siguiente cuadro, que se corresponde con el seguimiento realizado en el apartado a)

1) Después del ciclo de búsqueda: 0107 H CALL 0209 H CP = 0108 H


PP = 0100 H

2) Después de ejecutar: 0107 H CALL 0209 H CP = 0209 H


PP = 00FF H

3) Después de ejecutar: 0209 H STORE, (035B H) Reg. Palabra = 20D


(035B H) = 20D

4) Después de ejecutar: 020A H RET CP = 0108 H


PP = 0100 H

201
Ciclo de Búsqueda Ciclo de Ejecución
Bus Interno
Contador de Registro de
1 7 PP = 0100 H PP-1= 00FF H
Programa Direcciones
0107 H

Registro de Bus de Direc. Memoria Bus Interno Registro de


2 8 Puntero Pila
Direcciones 0107H Principal 00FF H Direcciones

Memoria Bus de Datos Registro de Registro de Bus de Direc.


3 9 Memoria Pila
Principal (0C 0209 H) Palabra Direcciones 00FF H

Bus Interno Bus Interno


Registro de Registro de Contador de Registro de
4 10
Palabra 0C 0209 H Instrucciones Programa Palabra
0108 H

(Cod. Op.) Bus de Datos


Registro de Registro de
Decodificador 11 Memoria Pila
5 Instrucciones Palabra
0C 0108 H

Bus Interno
Registro de CP = 0108 H
6 CP = 0107 H CP+1=0108 H 12-
Instrucciones CP = 0209 H
0209 H

Bus Interno (Dir. Operando)


Contador de Registro de Registro de Registro de
1 7
Programa Direcciones Instrucciones 035B H Direcciones
0209 H

Registro de Bus de Direc. Memoria Registro de Bus de Direc. Memoria


2 8
Direcciones 0209 H Principal Direcciones 035B H Principal

Bus de Datos Bus Interno


Memoria Registro de Registro de
3 9 Acumulador
Principal (02 035B H) Palabra Palabra
20

Bus de Datos MP = 035B


Registro de Bus Interno Registro de Registro de
4 10
Palabra 02 035B H Instrucciones Palabra 13 20
20

Registro de (Cod. Op.)


5 Decodificador
Instrucciones 02

6 CP = 0209 H CP+1=020A H

Bus Interno Bus Interno


Contador de Registro de Registro de
1 7 Puntero Pila
Programa Direcciones 00FF H Direcciones
020A H

Bus de Direc. Bus de Direc.


Registro de Memoria Registro de
2 8 Memoria Pila
Direcciones 020A H Principal Direcciones
00FF H

Bus de Datos Bus Datos


Memoria Registro de Registro de
3 9 Memoria Pila
Principal (0D 0000 H) Palabra Palabra
0108 H

Registro de Bus Interno Registro de Registro de Bus Interno CP = 020B H


4 10
Palabra 0D 0000 H Instrucciones Palabra 0108 H CP = 0108 H

Registro de (Cod. Op.)


5 Decodificador 11 PP = 00FF H PP+1 = 0100 H
Instrucciones 0D

6 CP = 020A H CP+1= 020BH

202
Bibliografía
JEAN-PIERRE MEINADIER. "Estructura y Funcionamiento de las
Computadoras Digitales"
WILLIAM STALLING. "Organización y Arquitectura de Computadores".
PEDRO DE MIGUEL ANASAGASTI. "Fundamento de los Computadores"
MARIO GINZBURG. "Operación Programación de Computadoras"

Revistas
Users #174- "Procesadores"- Adrián Mansilla

Fuentes webs:
http://www.howstuffworks.com - "How Microprocessors Work".
Marshall Brain
http://www.portalmundos.com / mundoinformatica / hardware -
"AMD vs. Intel: Pequeña historia de los procesadores". Sergio de
los Santos
http://www.intel.com
http://www.amd.com

203
Unidad 6
Periféricos e Interfaces
Índice temático Unidad Nº 6 – Periféricos e Interfaces

6.1. Introducción .................................................................................................. 208


6.2. Periféricos ..................................................................................................... 208
6.2.1. Periféricos de comunicación hombre-máquina ................................................. 208
6.2.2. Periféricos de comunicación máquina-hombre ................................................. 212
6.2.3. Periféricos de comunicación máquina-máquina ................................................ 214
6.3. Interfaz buffer ............................................................................................... 214
6.3.1. Buffer dentro de la CPU: Registros ..................................................................... 215
6.3.2. Buffer entre CPU y MP: Caché de RAM .............................................................. 215
6.3.3. Buffer entre CPU y memoria auxiliar: Caché de disco........................................ 218
6.3.4. Buffer entre CPU y periféricos............................................................................ 220
6.4. Buses............................................................................................................. 223
6.4.1. Jerarquía de buses .............................................................................................. 224
6.4.2. El Bus de sistema ................................................................................................ 226
6.4.3. El Bus de expansión ............................................................................................ 227
6.5. Puertos.......................................................................................................... 228
6.5.1. El puerto USB...................................................................................................... 229
6.5.2. El puerto IEEE-1394 ............................................................................................ 230
6.5.3. El Puerto PS/2-miniDIN6 .................................................................................... 231
6.5.4. Puertos para la conexión de audio y video ........................................................ 231
6.5.5. El Puerto e-SATA................................................................................................. 232
6.5.6. Puertos inalámbricos .......................................................................................... 232
6.6. Implementación de buses y componentes en la motherboard ......................... 233
Bibliografía ................................................................................................................. 236
Unidad 6
Periféricos e interfaces
Esquema de contenidos
Teclado

Lectores Ópticos de Imagen


de Barras

Hombre – Máquina Pantalla Sensible al Tacto


Lectores de Tarjeta Magnética
Ratones (Mouse)
Digitalizadores
Cámara digital
Webcam
PERIFÉRICOS DE de Impacto
COMUNICACIÓN Impresoras de Inyección de tinta
Láser
Máquina – Hombre Graficadores (plotters)

Monitores - LCD
Planos - Plasma
- LED
Máquina - Máquina Módems

Dentro de la CPU: Registros


Entre CPU y MP: Cache de RAM
-Cache de disco en RAM
Entre CPU y M. Auxiliar
Buffer -Cache de disco en Hardware

- A nivel de Periférico
Entre CPU y Periféricos - A nivel módulo (IB)
- Implementación de una IB

- Jerarquía de buses
INTERFACES - de control
Buses - Bus de Sistema - de direcciones
- de datos

- Bus de Expansión: PCI y AGP

- USB (bus serie universal)


- IEEE-1394 (FireWire)
Puertos - PS/2
- Puertos de audio y video
- eSATA
- Inalámbricos

207
6.1. Introducción
En esta unidad se hará una breve descripción de los distintos tipos de
periféricos y de cómo se conectan a la placa madre. Al igual que las
memorias externas, que necesitan de interfaces de conexión, los periféricos
también se conectan a través de interfaces a la placa madre.
Una interfaz es un dispositivo que se usa para conectar dos
subsistemas diferentes, por ejemplo, el procesador y otro componente del
sistema: la memoria principal, un periférico o una memoria auxiliar. Estas
interfaces toman características diferentes según sea el tipo de
componentes que estén conectando.
Teniendo en cuenta esto último, se abordarán los siguientes temas:
BUSES, como interfaz de conexión simple entre dos dispositivos; interfaz
BUFFER como conexión de periféricos al bus de expansión; Memorias
CACHÉ como conexión del procesador (CPU) con la memoria principal y con
las memorias secundarias (discos) y PUERTOS como interfaz de conexión
externa entre un periférico y la placa madre.

6.2. Periféricos
En el terreno de la informática, se puede hacer referencia a dos tipos
de periféricos: los periféricos de almacenamiento que son de entrada/salida
(vistos en la Unidad 4 como memorias externas) y los de comunicación, que
son los que se tratarán en esta Unidad. La denominación de periféricos de
comunicación se da a todo dispositivo que permite la conexión de la
computadora con el mundo exterior y pueden ser de entrada, salida o de
entrada/salida.
La misión de los periféricos de comunicación incluye:
 La toma de datos para procesarlos
 La presentación de los resultados devueltos por la computadora
 La comunicación con otro computador.

Con frecuencia se clasifica a los periféricos de comunicación, en las


tres categorías siguientes:
 De comunicación hombre-máquina
 De comunicación máquina-hombre
 De comunicación máquina-máquina

A continuación se describirán una serie de periféricos de cada una de


las clases, sin agotar las alternativas que el mercado ofrece, siendo este
sumamente dinámico en cantidad y calidad.

6.2.1. Periféricos de comunicación hombre-máquina


En general, se los denomina periféricos de entrada y están constituidos
por una gran variedad, siendo los más importantes:

208
 Teclado: es el periférico
más común e
indispensable para
introducir órdenes y
datos en la computadora.
Presenta distintos grupos
de teclas: teclado numérico, alfanumérico, de funciones, de movimiento,
etc. Se conecta a través de un cable a uno de los puertos de entrada de
la computadora o puede ser inalámbrico y conectarse a través de rayos
infrarrojos o radiofrecuencias.

 Mouse: es un dispositivo de entrada que


sirve para introducir información gráfica
o seleccionar coordenadas (x,y) de una
pantalla haciendo uso de los pulsadores
de control que presenta en la parte
superior, mientras se desplaza sobre
una superficie.
Una variación del mouse, usado en las
computadoras portátiles, es el "Touch
Pad" que consiste en una superficie
sensible sobre la que el usuario desliza
la punta del dedo. Para realizar el
"clickeo", se golpea suavemente la superficie.

 Lector óptico de imágenes (Escáner): es un sistema para digitalización


de documentos, basado en la exploración (scanning) de imágenes;
transforma los datos contenidos en una página (documento, fotografía,
etc.) en una señal eléctrica que se transmite a la computadora y se
almacena en la memoria en forma binaria (mapa de bits). La imagen así
digitalizada, se puede ver a través del monitor y puede ser modificada
usando programas especiales como Photoshop, Corel Photo Paint, etc.

 Lector óptico de barras: dispositivo que permite interpretar la


información grabada en “códigos de barras” y transformarla en datos
digitales que pueden ser almacenados en la memoria de la computadora.

209
 Lectora de tarjetas magnéticas: dispositivo que permite interpretar la
información almacenada en “una banda (o cinta) de un material
magnético”, donde están grabados los datos de la tarjeta y transformarla
en datos digitales que pueden ser almacenados en la memoria de la
computadora.

 Pantallas sensibles al tacto: Son pantallas o paneles que pueden


detectar las coordenadas (x,y) de la zona de la propia pantalla donde se
aplica una presión (por ejemplo, con un dedo).

210
 Digitalizador: es un periférico que transforma gráficos, en datos de
entrada a la computadora. El papel con el dibujo a digitalizar se coloca
en un tablero sobre el que se desplaza un cursor o lápiz. Este lápiz envía
a la computadora las coordenadas (x,y) del tablero sobre el que se va
moviendo.

 Cámara digital: La cámara digital es la sucesora de la cámara analógica


de fotos. La fotografía es el proceso de captar una imagen por medio de
la luz. La fotografía digital es una variante donde el proceso de captura
de una imagen se realiza también a través de una obturación, pero la luz
es interpretada por dispositivos electrónicos y traducidos como
información digital. La captura se realiza en un archivo, y no necesita
revelarse. Las cámaras digitales se definen por su resolución máxima
(cantidad de píxeles por pulgada cuadrada), la cual se calcula en
megapíxeles (millones de puntos)

Parte trasera de una cámara digital


Parte delantera de una cámara digital

 Cámara Web (Webcam): es una cámara digital de


video, pero en lugar de video captura instantáneas
por intervalos de segundos. La principal diferencia
respecto a una cámara digital es que luego de
capturar la imagen, la webcam debe transferirla
inmediatamente a la computadora. Esto representa
una limitación, ya que las imágenes con mayor
resolución tardarían más en trasmitirse y se perdería
fluidez en el video obtenido. Es por ello que las
resoluciones de las webcams son inferiores a las de
las cámaras digitales. Una de las resoluciones más comunes que se
obtiene de las webcams es 300 Kp (kilopixeles), es decir se obtiene un
video de 640 pixeles de ancho por 480 de alto, si bien en la actualidad se
están ofreciendo resoluciones de hasta 5 Mp (megapixels)

211
6.2.2. Periféricos de comunicación máquina-hombre
Son los dispositivos que permiten visualizar los resultados de los
programas ejecutados en la computadora. Se los denomina también
periféricos de salida. Una computadora puede tener varias unidades de
salida.

 Impresora: este periférico se caracteriza por la producción de respuesta


escrita. Es uno de los periféricos de mayor difusión y se lo clasifica
según su método de impresión. La característica común a todas, es la
generación de imágenes y caracteres “punteados”, es decir no imprimen
líneas continuas; se diferencian en la tecnología que utilizan para
generar la impresión en:
 De Impacto o matriz de puntos. Los cabezales de impresión
contienen agujas que golpean una cinta entintada, que
transfiere al papel los puntos correspondientes a las agujas
disparadas.
 De Inyección de tinta. Los cabezales de impresión inyectan un
chorro de gotas de tinta ionizada que impactan sobre el papel
para formar la impresión.
 Láser. En esta impresora, el láser crea una imagen
electroestática de la página (carga positiva) y un polvo negro
muy fino denominado tóner (cargado negativamente) se adhiere
al papel. La imagen de tóner se fija sobre el papel usando calor
y presión.

Impresora matriz de puntos Impresora de chorro de tinta Impresora laser

 Plotter: es un periférico de salida que efectúa con gran precisión,


impresiones gráficas de gran tamaño; las líneas son realmente líneas y
no una sucesión de puntos como en la impresora.

212
Plotter de mesa Plotter de tambor

Al principio, estas máquinas eran


usadas solamente para imprimir
planos, pero en la actualidad son
usados en varios campos, tales como
ambientes científicos, la ingeniería, el
diseño, la arquitectura, etc. Son
ideales para tareas de CAD (Diseño
Asistido por Computadora), ya que
presenta la ventaja de poder trabajar
con tamaños de papel muy grandes, a
la vez que mantienen una alta
Plotter inyeccion de tinta resolución. Otro uso se ha encontrado
substituyendo la pluma por un
cortador (plotter de corte). Existen plotter de impresión, de corte y de corte e
impresión.
Estos trazadores no son adecuados para crear regiones rellenas; en
estos casos, los trazadores (plotters) han sido suplantados por las
impresoras de inyección de tinta de gran-formato, que tienen mayor facilidad
para realizar dibujos no lineales y policromos. A estas impresoras a menudo
se las denomina informalmente trazadores o plotters, aún cuando ellas no
coinciden con la definición dada.

 Monitor: es un periférico de salida que permiten visualizar resultados


sobre una pantalla. La imagen (gráfica o de caracteres) se forma a partir
de puntos en la pantalla denominándose cada uno de ellos “píxel”. A
mayor cantidad de pixels (mayor resolución) se obtiene una mejor
definición de la imagen. Actualmente los monitores son de pantalla
plana, tipo LCD (Pantalla de Cristal Líquido). También existen televisores
que pueden conectarse como monitor a la computadora (televisores LCD,
de Plasma o LED). Todos se caracterizan porque pueden verse como una
“matriz de celdas elementales” que se corresponden con los pixels. Esto
significa que la cantidad de pixeles es fija y por lo tanto su resolución es
poco flexible.

Monitor plano

213
6.2.3. Periféricos de comunicación máquina-máquina

 Modem: cuando es necesario comunicar dos computadoras que están a


mucha distancia una de otra, el tendido de cables para unirlos resulta
costoso, y una buena solución a este problema es usar los cables
telefónicos, satélites o sistemas de radio enlace. Cuando se utiliza
cualquiera de estos métodos, es necesario convertir la señal de digital a
analógica para realizar la transmisión. Esta tarea está a cargo de un
dispositivo electrónico denominado MODEM; el equipo que recibe la
información del otro lado de la línea telefónica necesitará de otro
MODEM que realice el trabajo inverso, es decir convertir la señal
analógica recibida en digital para poder ser entendida por la
computadora

La conversión de señal digital a analógica utiliza una señal analógica a


la cual se le modifica haciendo discreta alguna de sus características para
lograr que “porte” sobre si la señal digital. A esta acción de modificar la
señal analógica se le llama Modular la señal y a la acción contraria llevada
a cabo en el otro modem, es decir, interpretar esa modificación y convertirla
en una señal digital, se le dice Demodular. De la contracción de estas dos
palabras surge el nombre de MODEM.

6.3. Interfaz buffer


Una "interfaz" es cualquier dispositivo adaptador que permita
conectar, a través del mismo, dos subsistemas diferentes. Atendiendo
a la gran diferencia de velocidad que existe entre el procesador y los
demás componentes de la computadora, la forma de implementar las
interfaces adquiere características muy variadas.
Una interfaz de conexión se denomina "buffer" cuando se usa para
adaptar distintas velocidades de operación de dos subsistemas, siendo en
esencia un lugar de almacenamiento temporal de información.
Un ejemplo de buffer en la vida cotidiana es el caso de un buzón que
es un buffer que acomoda el ritmo de envío de carta de las personas, con la
velocidad del servicio de vehículos que recoge la bolsa con cartas a
determinada hora.

214
Un buffer adapta dos velocidades distintas, permitiendo independencia
entre el subsistema emisor y el subsistema receptor, con el fin de que
ambos estén permanentemente ocupados y así contribuir a aumentar el
rendimiento general del sistema.
La palabra buffer tiene una traducción directa "amortiguador",
significando que amortigua diferencia de velocidades.
Físicamente, un buffer es un elemento de memoria (o varios) que se
utiliza para almacenar temporalmente datos.

La función buffer, se puede encontrar en diversas partes del sistema


informático, cada vez que sea necesario adaptar las velocidades de dos
dispositivos diferentes. Así, se puede encontrar un buffer:
- Dentro de la CPU
- Entre CPU y Memoria Principal
- Entre CPU y Memoria Secundaria
- Entre CPU y Periféricos

6.3.1. Buffer dentro de la CPU: Registros


Los registros de la CPU son el primer buffer que aparece en el sistema
informático. Estos registros están ubicados en la misma CPU, y no
necesitan ser direccionados para acceder a sus datos, como ocurre con la
MP. Cada uno de ellos tiene un nombre específico que permite
referenciarlos en forma directa, por ejemplo, el registro Acumulador. Los
datos pueden mantenerse en ellos, mientras esperan ser procesados por las
unidades de la CPU.

6.3.2. Buffer entre CPU y MP: Caché de RAM

Relación entre tiempos de CPU y Memoria Principal


Suponiendo una CPU con tiempos internos del orden de 5 nseg y una
Memoria principal de tiempo de lectura de 50 nseg, existe una relación de
10 entre dichos tiempos.

TMP / TCPU = 50 ηs/ 5 ηs = 10

Eso quiere decir que mientras se realiza una acción en memoria (por
ej. una lectura), la CPU puede realizar 10. La memoria caché de memoria
principal tiene por objetivo amortiguar esta diferencia.

Memoria caché de RAM


El objetivo de la memoria caché es lograr que la velocidad de la
memoria sea lo más rápida posible, consiguiendo al mismo tiempo un tamaño
grande al precio de memorias semiconductoras menos costosas. El concepto
se ilustra en la figura 6.1, donde se presenta una memoria principal
relativamente grande y más lenta, junto con una memoria caché más
pequeña y rápida.

215
La caché contiene una copia de partes de la memoria principal.
Cuando el procesador intenta leer una palabra de memoria principal,
se hace una comprobación para determinar si la palabra está en la caché.
Si es así, se entrega dicha palabra al procesador. Si no, un bloque de
memoria principal, consistente en un cierto número de palabras se
transfiere a la caché y, después, la palabra es entregada al procesador.

Al igual que los registros de la CPU, esta memoria es un buffer entre la


CPU y la MP. Sea, por ejemplo, una CPU de 50 MHz con una MP realizada
con pastillas de memoria DRAM con un tiempo de acceso de 60
nanosegundos. Cada vez que la CPU debe realizar la acción de leer o
escribir un dato en la MP, deben transcurrir tres pulsos de reloj. Si se
contara con una memoria con tiempo de acceso de 20 nanosegundos
(memoria estática de biestables-SRAM), en cada oportunidad que deba
hacerse una lectura o escritura, el acceso tardaría sólo un pulso de reloj,
pudiéndose emplear los otros dos pulsos en otras acciones (como ser,
realizar una operación aritmética o pedir otro dato o instrucción). De esta
forma, la ejecución de las instrucciones se haría más rápidamente.
Justamente esa es la función de la memoria caché: hacer que todo suceda
como si la CPU “viera” una MP de gran capacidad con un tiempo de acceso
corto (20 ηs).

60 ηs
Memoria
Principal

CPU
2 20 ηs Memoria (DRAM)
0 nseg Caché
(SRAM)

Transferencia por palabra Transferencia por bloque

Figura 6.1 Memoria caché de memoria principal.

La memoria caché o antememoria es de tipo SRAM, de poca capacidad


y opera interpuesta entre la CPU y la MP de tipo DRAM, como muestra la
Figura 6.1. Al usar la memoria caché, la CPU puede leer o escribir una
palabra en dicho buffer en menor tiempo que el que ocuparía accediendo a
la MP. En el ejemplo, el acceso a la caché tarda 20 ηs, mientras que el
acceso a la MP es de 60 ηs. Esta diferencia de tiempos de acceso es
impuesta por la tecnología de memoria utilizada para la MP (DRAM) y para
la memoria caché (SRAM), que presentan características opuestas.
Comparativamente, las memorias DRAM son más lentas, y a igual
capacidad, presentan menor tamaño físico y resultan de menor costo que
las SRAM.

Ahora bien ¿cómo opera la caché? El uso eficiente de la caché se


debe a dos características que surgen del acceso a las posiciones de MP
durante la ejecución de un programa:

216
La proximidad espacial y la proximidad temporal.

Un programa típico se ejecuta según secuencias de instrucciones que


están en posiciones consecutivas de MP. También, pero en menor grado, la
lectura de datos a procesar implica el acceso a determinadas porciones de
MP. Son comunes las estructuras de datos que se recorren en forma
secuencial y se ubican en la MP en posiciones consecutivas o cercanas
entre sí, como tablas, cadenas de caracteres, vectores, pilas, matrices, etc.,
las cuales además suelen estar agrupadas en la zona de datos de un
programa.
Resulta así la propiedad de proximidad espacial entre accesos
sucesivos a MP, por lo que, en un lapso de tiempo determinado, las
direcciones puestas en juego durante la ejecución de un programa hacen
referencia, casi siempre, a ciertas zonas específicas más “activas” de MP,
mientras que las zonas restantes son accedidas muy pocas veces.
Por otra parte, de manera frecuente un programa contiene ciclos
cortos de instrucciones que se repiten, llamados subrutinas y
procedimientos que se invocan repetidamente entre sí. También puede
ocurrir que durante la ejecución del programa se deban utilizar
repetidamente los mismos datos. En consonancia con estas características,
el análisis estadístico de programas usuales indica que las lecturas de la
MP en un lapso de tiempo dado, tienden a acceder repetidamente a algunas
zonas determinadas de MP, donde se encuentran dichas subrutinas, ciclos
y datos. Este uso repetitivo de ciertas subrutinas y datos define la
proximidad temporal de las posiciones de MP donde se encuentran
alojados dichos elementos.

En la memoria caché se copian en forma de bloques las zonas


activas de la MP. Cuando la UC ordena leer una dirección de MP,
los circuitos de control de la caché transforman ésta en una
dirección del caché, que proporciona rápidamente la palabra direccionada
(sea instrucción o dato). Si la palabra direccionada no está en caché, se
accede a la MP y se transfiere un bloque de unas 16 palabras contiguas de
la zona activa de MP a la que pertenece la palabra direccionada. Las
palabras de ese bloque llegan una por vez desde la MP a la caché y una vez
copiado el bloque, se transfiere la palabra direccionada a la CPU. Por acción
de los circuitos de control de la caché (basados en la estadística citada) en
la caché se anticipan los contenidos de MP que casi seguramente pedirá la
UC en las lecturas subsiguientes. Cuando se debe cambiar en el caché un
bloque activo por otro, se decide según un algoritmo de reemplazo.

La proximidad espacial se refuerza por la alta probabilidad de que un


mismo bloque sea accedido repetidamente (proximidad temporal). Por todo
ello, en general, el acierto en encontrar el contenido de una dirección
solicitada a MP en la memoria caché supera el 90% de los accesos
realizados.
Los circuitos de control de la caché también manejan la estrategia de
escritura de caché y MP. Una forma es escribir (actualizar)
simultáneamente ambos. Otra consiste en marcar en la caché, las
posiciones que la CPU escribió en ella, de forma que cuando el bloque que
las contiene salga de la caché, se actualicen entonces las posiciones
correspondientes en MP.

217
En resumen, la caché actúa como buffer entre la memoria principal
y el procesador, creando una memoria interna de dos niveles. Esta
arquitectura de dos niveles proporciona mejores prestaciones que una
memoria comparable de un nivel, explotando una propiedad conocida como
“proximidad ó localidad”.

El mecanismo de caché de la MP es parte de la arquitectura de la


computadora, implementada en hardware, y normalmente invisible para el
sistema operativo.
Por último para expresar el tiempo medio de acceso a un elemento, se
debe considerar no sólo las velocidades de los dos niveles de memoria, sino
también la probabilidad de que una referencia dada se encuentre en la
memoria caché. Tenemos:

Ts= H * T1 + (1 - H) * (T1 + T2) = T1 + (1 - H) * T2

Donde Ts es tiempo de acceso medio del sistema


T1 es el tiempo de la memoria caché
T2 es el tiempo de la memoria principal
H es la tasa de aciertos (fracción de veces que la
referencia es encontrada en la caché)

Para el caso del ejemplo anterior:


Ts = 20 + (1 - 0,9) * 60 = 20 + 6 = 26 ηs
es decir, la memoria equivalente tiene un tiempo de acceso de 26 ηseg.

Actualmente los microprocesadores incluyen una memoria caché


interna, dentro de la CPU. Por ejemplo, Intel a partir del microprocesador
80386, incorpora un buffer caché de rápido acceso dentro de la misma
pastilla del procesador, llamada caché principal o de nivel 1 (L1). Existen
además caché secundarias de nivel 2 (L2) y nivel 3 (L3) (ver Unidad 3-
Memorias Internas sección 3.2.2).

6.3.3. Buffer entre CPU y memoria auxiliar: Caché de disco

Relación entre tiempos de CPU y Memoria Auxiliar


Suponiendo que en una MP se puedan realizar lecturas o escrituras
cada 50 nseg y que un disco magnético tenga un tiempo de acceso de 50
mseg la relación de velocidades es de:

TMA / TMP = 50 ms/ 50 ηs = 50 10-3 s / 50 10-9 s = 106

La relación es de 1 millón, es decir la memoria principal es 1 millón de


veces más rápida que el disco, por cada lectura en el disco puedo realizar
un millón de lecturas en la memoria principal.
Para compensar ésta diferencia tan grande de velocidades se hacen
necesarios los buffers, los cuales tienen una realización muy variada.
Obviamente hay una secuencia de ellos desde la CPU hasta los periféricos
para poder amortiguar esta gran diferencia.

218
Memoria Caché de Disco
Estadísticamente se verifica que es muy probable que si se lee parte de
un archivo en disco, las lecturas solicitadas al disco en el futuro sean
también de ese archivo. Dado que para optimizar el tiempo de acceso, el
almacenamiento de las porciones de un archivo se realiza por ejemplo en
sectores de una misma pista, resulta que si se leyó un sector de la misma,
es alta la probabilidad de que se solicite leer otro sector de ella. Entonces,
una vez que el cabezal accedió a una pista, o al cilindro formado por las
pistas que recorrerán las cabezas, no se pierde mucho tiempo si además de
los 512 bytes (supuestos) de un sector, se transfieren los 35 (supuestos) de
la pista que contiene el sector. Por lo tanto en este ejemplo se enviarán al
caché de disco los 51235  18 KB de la pista, de manera tal que cuando se
requiera la siguiente parte del archivo éste ya se encuentra en la caché del
disco.

 Cache de disco en RAM (por software)


Si el sistema tiene caché de disco por programa (software), el
contenido de la pista pasa a una zona reservada en MP DRAM para el
caché, junto con el sector solicitado. En esta área, por ejemplo de 64 KB (u
otro valor fijado por el usuario) se pueden encontrar varias pistas en uso.
Cuando se solicita una nueva lectura del disco, el programa determina si el
sector pedido no fue escrito antes en dicha zona de MP formando parte de
una pista leída anteriormente. De ser así lee el sector en la DRAM, sin
acceder al disco. Caso contrario se debe perder tiempo en leer el sector del
disco, y traerá al caché en MP también la pista que contiene al mismo. Si el
caché está completo, el programa provee un algoritmo para decidir qué
pista se desechará (por ejemplo la que lleva más tiempo sin ser usada), para
que pueda escribirse la nueva pista. La pista que sale del caché debe
escribirse en el disco. El caché en MP tiene el inconveniente de que si se
corta la energía, o se reinicializa (reset) el computador, los datos en MP no
enviados al disco se pierden.

 Caché de disco en Hardware


En caso de que el disco duro tenga incorporada en su controladora
una memoria DRAM (por ejemplo de 64 a 128 KB según el modelo) se habla
de un caché de disco en hardware. Dicha DRAM de la controladora
funcionará en esencia como la caché de disco por programa, evitando el
acceso al disco cuando el sector buscado se encuentra en la controladora.
El problema que presentan, es que al igual que la memoria principal (RAM)
pierde la información guardada al cortar la energía, y por lo tanto necesitan
de una batería interna para mantener los datos. En la actualidad estas
memorias DRAM son reemplazadas por memorias de tipo Flash, con lo cual
se evita el uso de una fuente de energía permanente.
Este tipo de disco rígido que incorpora una cache de memoria Flash, se
conoce como Disco Duro Híbrido, ya que combina ambas tecnologías, la
magnética del rígido y la electrónica de la memoria Flash. (ver Unidad 4-
Memorias Externas, Discos de Estado Sólido)
Por lo general, el rendimiento de una caché de disco aumenta si se
leen o escriben en el disco los mismos datos con frecuencia y en menor
grado con la capacidad del mismo. Cuando un archivo leído supera
ampliamente la capacidad de un caché, y si el mismo es accedido
secuencialmente en toda su extensión, sin lecturas reiteradas de una
misma zona del disco, no se obtendrá ventaja en el uso del caché.

219
Buffer entre CPU y periféricos

Memoria
Principal A nivel de MP

Buffer en
Bus de MP
sistema
Adaptador

Interfaz Interna Bus de


expansión

Módulo de E/S
(Interfaz Buffer IB) A nivel de
(Placa controladora o Módulo
Adaptador)

Interfaz Externa
Conexión
del periférico
(serie o paralelo)

Electrónica Buffer
Periférico en EP
A nivel de
PERIFERICO Periférico

Vínculo Exterior
V

Exterior

Figura 6.2 Los tres niveles de buffer en la conexión de los periféricos

Desde la primera generación de computadoras los periféricos no se


conectan directamente a la MP para entrar y sacar datos de ella, sino que
reciben o envían datos desde o hacia la MP a través de una Interfaz Buffer
(IB) intermedia que almacenan temporalmente los mismos.

Dada la gran diferencia de velocidades de operación y transmisión


de datos entre la parte central de un computador (totalmente
electrónica) y sus periféricos (con movimientos mecánicos o en
contacto con el accionar de personas), se impone necesariamente la
existencia de interfaces buffers entre ambos, con registros para poder
almacenar el tiempo requerido, la información en curso.

En primer lugar los periféricos convierten datos externos en internos


que se almacenan en MP en operaciones de entrada o a la inversa en
operaciones de salida.

220
Esta conversión puede requerir a su vez conversiones analógicas /
digitales y/o conversiones serie / paralelo.

A nivel de Periférico
En relación a un periférico, en principio se puede distinguir en él dos
subsistemas, con funciones y ubicación relativa diferentes:
a) Uno más externo, mediante el cual el periférico se “vincula” con el
exterior, cuya función es obtener un primer nivel de señales eléctricas
en un periférico de entrada, o generar las señales eléctricas finales en
un periférico de salida. Por ejemplo, en un teclado las señales eléctricas
se obtienen luego de pulsar las teclas; en un disco luego que un
transductor (mecanismo de lectura) lee señales magnéticas.
b) Otro más interno que se llama “electrónica de periférico” EP y cuyas
funciones son:
- La conversión de señales eléctricas que le envía la porción V, en
señales eléctricas binarias hacia la IB del periférico, o el pasaje
inverso, según que se trate de una entrada o salida (conversión
Analógica/Digital).
- El manejo y control de los movimientos mecánicos necesarios
para leer o escribir el soporte en unidades de disco, cinta,
impresoras, graficadores, etc.; y el barrido del haz de electrones
en el monitor de vídeo, conforme a las ordenes provenientes de
la IB del periférico.
- La obtención de información de estado del periférico (si está o
no operando, falta de papel, disco, etc.) y el envío de la señal
correspondiente a la IB del mismo.

El Buffer a este nivel, se usa por lo tanto, para retener los datos de
entrada/ salida que deben ser tratados por la EP (conversión A/D
o D/A), o a la espera de una respuesta del periférico o de la Interfaz Buffer
(IB) para su transmisión.

La EP se encuentra en general alojada en el periférico correspondiente,


pudiendo también formar parte de una plaqueta en el interior del
computador. Puede estar conformada por un microprocesador dedicado
(como en impresoras y teclado), o por una o más pastillas con
microcircuitos. En periféricos de PC, como la unidad de disco, disquete o
monitor suele constituir parte de la denominada controladora o controlador.

A nivel de Módulo
Existen varias razones por las cuales los periféricos no se conectan
directamente al bus de sistema:
Hay una amplia variedad de periféricos con formas de funcionamiento
diferentes. Podría no ser práctico incorporar la lógica necesaria dentro de la
CPU para controlar la diversidad de dispositivos.
A menudo, la velocidad de transferencia de datos de los periféricos es
mucho menor que la de la memoria o la CPU. Así, no es práctico utilizar un
bus del sistema de alta velocidad para comunicarse directamente con un
periférico.
Con frecuencia, los periféricos utilizan datos con formatos y tamaños
de palabra diferentes de los del computador a los que se conectan.

221
En consecuencia, se necesita el módulo de E/S (o Interfaz Buffer, IB)
que es el elemento del computador responsable del control de uno o más
periféricos y del intercambio de datos entre esos dispositivos y la memoria
principal y/o los registros de la CPU.

En resumen: la función Buffer a este nivel, es la de almacenar


temporalmente los datos, para adaptar la diferencia de velocidades
de transferencia entre los periféricos, más lentos, y el bus del
sistema que comunica con la CPU y Memoria Principal.
Normalmente el almacenamiento en buffer es para un único uso, y utilizan
un sistema de cola FIFO (First Input- First Output, Primero en entrar-
Primero en salir), a diferencia de una memoria caché que opera suponiendo
que un mismo bloque de datos puede ser accedido varias veces y por lo
tanto solo se reemplazan aquellos bloques menos activos.

En una PC, cada periférico se enchufa mediante su conector a una


plaqueta que se introduce verticalmente en una ranura (slot) de un bus de
expansión de la placa madre (PCI, PCIe, AGP), para quedar así conectada
finalmente al bus del sistema que comunica con la CPU o la MP. Dicha
plaqueta contiene los circuitos de la Interfaz Buffer del periférico en
cuestión. A veces en dicha plaqueta también puede estar la EP de un
periférico, como ocurre con el modem, el monitor y ciertos modelos de
discos, recibiendo distintos nombres como "placa controladora", "adaptador"
o "interfaz". En la actualidad la mayoría de estas interfaces están integradas
a la placa madre, es decir son dispositivos “on board”.

Implementación física de una Interfaz Buffer: la controladora de disco


La interfaz es la conexión entre el mecanismo de la unidad de disco y
el bus del sistema. La interfaz define la forma en que las señales pasan
entre el bus del sistema y el disco duro. En el caso del disco, su interfaz se
denomina controladora o tarjeta controladora, y se encarga no sólo de
transmitir y transformar los datos que parten y que llegan al disco, sino
también de seleccionar la unidad a la que se quiere acceder.
En el mundo de las computadoras hay dos grandes estándares en
controladoras y discos que son los IDE y los SCSI, aunque el primero está
mucho más extendido que el segundo. Los dos han ido sufriendo a lo largo
del tiempo distintas modificaciones para intentar seguir el ritmo marcado
por otros componentes cada vez más rápidos, como el de los
microprocesadores.

IDE: Esta interfaz es el más usado en PCs normales, debido a que tiene un
balance bastante adecuado entre precio y prestaciones. El estándar IDE fue
ampliado por la norma ATA-2 en lo que se ha dado en denominar EIDE
(Enhanced IDE o IDE mejorado) permitiendo mayor transferencia de datos
en menor tiempo. Los sistemas EIDE disponen de 2 canales IDE
(comúnmente conocida como manguera de conexión), primario y secundario,
con lo que pueden aceptar hasta 4 dispositivos (unidades), que no tienen
porqué ser discos duros podrías ser un CD-ROM o alguna unidad
grabadora de CD/DVD. En cada uno de los canales IDE puede haber un
dispositivo Maestro (master) y otro Esclavo (slave). Los dispositivos IDE o
EIDE como discos duros o CD/DVD disponen de micro interruptores
(jumpers), situados generalmente en la parte posterior o inferior de los
mismos, que permiten seleccionar su carácter de maestro, esclavo o incluso
otras posibilidades. Las posiciones de los jumpers vienen indicadas en la

222
superficie del disco, o bien en el manual o serigrafiadas en la placa de
circuito del disco duro. Estas interfaces (IDE o ATA), conectan los
dispositivos en paralelo logrando velocidades de transferencias de 100-133
MB/s. Actualmente la tendencia es el uso de una nueva norma conocida
como Serial ATA (SATA), que como su nombre lo indica permite la conexión
en serie de los dispositivos, con velocidades que van de 150 MB/s hasta
300MB/s en su versión SATA 2.5 y en su versión más reciente 600MB/s

SCSI (Small Computer Systems Interface, interfaz de sistema para pequeñas


computadoras): Leído normalmente como "escasi" es una interfaz universal
para la conexión paralela de periféricos; es decir, la forma en que el disco
duro se conecta a la computadora; con una tasa de transferencia de datos
muy alta entre la computadora y el dispositivo SCSI pero aunque esto sea
una cualidad muy apreciable, no es lo más importante; la principal virtud
de SCSI es que puede acceder a varios dispositivos simultáneamente, sin
esperar a que cada uno finalice su transferencia, como en el caso de la
interfaz IDE, de tal manera que se aumenta en general la velocidad de todos
los procesos. Una controladora SCSI es de mayor costo que una IDE y debe
comprarse aparte (aunque algunas placas de altas prestaciones integran
esta interfaz) ya que las placas madres traen normalmente interfaz IDE. En
la interfaz SCSI se pueden conectar hasta 7 dispositivos SCSI como un
disco duro, una impresora, un escáner, una grabadora u otros. Si la
computadora va a funcionar como servidor en una red o servidor de base de
datos por su velocidad la interfaz SCSI es la más recomendada.

Ejemplo 6.1
Se tiene un buffer de 1 KByte que se llena a razón de 100
megabits por segundo. ¿Cuánto tarda en llenarse?

1 KB x 1 MB x 8 Mb = 0.0078125 Mb
1024 KB 1 MB

100 Mb __________ 1 s
0.0078 Mb _______ x = 0.0078125 Mb x 1 s = 0.000078125 s
100 Mb

0.000078125 s x 106 μs = 78,125 μs


1s

6.4. Buses
Un bus es un camino de comunicación entre dos o más dispositivos,
por lo tanto una interfaz. Una característica clave de un bus es que se trata
de un medio de transmisión compartido. Al bus se conectan varios
dispositivos, y cualquier señal transmitida por uno de esos dispositivos está
disponible para que los otros dispositivos conectados al bus puedan acceder
a ella. Si dos dispositivos transmiten durante el mismo período de tiempo,
sus señales pueden solaparse y distorsionarse. Consiguientemente, sólo un
dispositivo puede transmitir con éxito en un momento dado.

223
En muchos casos, un bus está constituido por varios caminos de
comunicación o líneas. Cada línea es capaz de transmitir señales binarias
representadas por 1 y por 0. En un intervalo de tiempo, se puede transmitir
dígitos binarios simultáneamente (en paralelo). Por ejemplo, un dato de 8
bits puede transmitirse mediante ocho líneas del bus.

6.4.1. Jerarquía de buses


Generalmente cada uno de los dispositivos conectados a un bus
tendrá una determinada velocidad de funcionamiento. También es habitual
que la necesidad de ancho de banda en las transferencias que realiza cada
dispositivo sea diferente. Dado que la incorporación de dispositivos lentos
puede retrasar las transferencias de los dispositivos más rápidos, y estos
necesitar de un mayor ancho de banda, los dispositivos dentro del
computador se suelen agrupar por sus velocidades y necesidades de ancho
de banda. Estos dispositivos de características similares comparten un mismo
bus y el conjunto de todos los buses forman una jerarquía dentro del sistema.
Con la separación de los buses se consigue reducir los retrasos de la
señales, al reducir la capacidad de las líneas debido a la conexión de
componentes heterogéneos.

Las computadoras poseen distintos tipos de buses que proporcionan


comunicación entre sus componentes a distintos niveles dentro de la
jerarquía del sistema.

En primer lugar existe un Bus Interno de la CPU. Este bus permite la


conexión de los registros que constituyen la unidad de control, la unidad
aritmético-lógica y otros registros específicos. Este bus se considera
intrínseco a la CPU. Otro bus, Externo, se ocupa de la comunicación de la
CPU con el resto de los componentes del equipo, es el Bus de Sistema.
Si se conectara un gran número de dispositivos a un único bus, las
prestaciones pueden disminuir y por consiguiente el rendimiento del
equipo. Hay dos causas principales:
1) En general, a más dispositivos conectados al bus, mayor es el retardo de
propagación. Este retardo determina el tiempo que necesitan los
dispositivos para coordinarse en el uso del bus. Si el control del bus
pasa frecuentemente de un dispositivo a otro, los retardos de
propagación pueden afectar sensiblemente a las prestaciones.
2) El bus puede convertirse en un cuello de botella a medida que las
peticiones de transferencia acumuladas se aproximan a la capacidad del
bus. Este problema se puede resolver en alguna medida incrementando
la velocidad a la que el bus puede transferir los datos y utilizando buses
más anchos (por ejemplo incrementando el bus de datos de 32 a 64
bits). Sin embargo, puesto que la velocidad de transferencia que
necesitan los dispositivos conectados a un bus (por ejemplo,
controladores gráficos y de vídeo, interfaces de red) cada vez requieren
de mayor velocidad, se justifica el hecho de que la arquitectura de bus
único haya dejado de existir.

Por consiguiente, la mayoría de las computadoras utilizan varios


buses, normalmente organizados jerárquicamente. Una estructura típica se
muestra en la Figura 6.3.

224
Bus Local: CPU Memoria Caché

Jerarquía de Buses Bus de Sistema: CPU Memoria Principal

Bus de Expansión: Periféricos Bus de Sistema

Hay un Bus Local que conecta el procesador a una memoria caché y


al que pueden conectarse también uno o más dispositivos locales. El
controlador de memoria caché conecta la caché no sólo al bus local sino
también al bus de sistema, donde se conectan todos los módulos de
memoria principal. El uso de una caché alivia la exigencia de soportar los
accesos frecuentes del procesador a la memoria principal. Por lo tanto, la
memoria principal puede pasar del bus local al bus de sistema. De esta
forma, las transferencias de E/S con la memoria principal a través del bus
de sistema no interfieren la actividad del procesador.
El segundo bus dentro de esta jerarquía corresponde al Bus de
Sistema, cuya función se describe en 6.4.2 , y por último se encuentra el
Bus de Expansión; a este bus se conectan la mayoría de los periféricos,
evitando la congestión en el tráfico de información del Bus de Sistema.

Figura 6.3. Jerarquía de buses1

1
Esquema: Paper Estructura y tecnología de computadores. Departamento Arquitectura de computadores y Automática.
Universidad Complutense de Madrid

225
6.4.2. El Bus de sistema
El bus que conecta los componentes principales del computador (CPU,
memoria, Cache) se denomina Bus de Sistema. Este está constituido,
usualmente, por un conjunto de líneas. A cada línea se le asigna un
significado o una función particular. Aunque existen diseños de buses muy
diversos, en todos ellos las líneas se pueden clasificar en tres grupos
funcionales: líneas de datos, de direcciones y de control. Además, pueden
existir líneas de alimentación para suministrar energía a los módulos
conectados al bus.

Bus de Datos
Las líneas de datos proporcionan un camino para transmitir datos
entre los módulos del sistema. El conjunto constituido por estas líneas se
denomina bus de datos. El bus datos generalmente consta de un número de
líneas que es potencia de 2 (32 ó 64 en la actualidad), cuyo número se
conoce como ancho del bus de datos. Puesto que cada línea sólo puede
transportar un bit cada vez, el número de líneas determina cuantos bits se
pueden transferir al mismo tiempo. Este bus es bidireccional y permite el
intercambio de datos entre la CPU y el resto de las unidades (memoria y
periféricos)

Bus de direcciones
Las líneas de dirección constituyen el bus de dirección y se utiliza para
designar la fuente o el destino del dato situado en el bus de datos. Por
ejemplo, si la CPU desea leer una palabra de datos de memoria (32 ó 64
bits), sitúa la dirección de la palabra deseada en las líneas de direcciones.
Claramente, el ancho del bus de direcciones determina la máxima
capacidad de memoria posible en el sistema, siendo 2n el tamaño máximo
en bytes del banco de memoria que se podrá direccionar con n líneas.
Además, las líneas de direcciones generalmente se utilizan también para
direccionar los puertos de entrada salida.

Bus de control
Las líneas de control constituyen el bus de control y se utiliza para
controlar el acceso y uso de las líneas de datos y de direcciones.
Puesto que las líneas de datos y de direcciones son compartidas por todos
los componentes, debe existir una forma de controlar su uso. Las señales
de control transmiten tanto órdenes como información de temporización
entre los módulos del sistema. Las señales de temporización indican la
validez de los datos y las direcciones, es decir se encargan de que no haya
colisión de información en el sistema por el uso simultáneo del bus. Las
señales de órdenes especifican las operaciones a realizar (por ej.
lectura/escritura).
El funcionamiento del bus se describe a continuación. Si un módulo
desea enviar un dato a otro debe hacer dos cosas: 1) obtener el uso del bus,
y 2) transferir el dato a través del bus. Si un módulo desea pedir un dato a
otro módulo, debe: 1) obtener el uso del bus, y 2) transferir la petición al
otro módulo mediante las líneas de control y dirección apropiadas. Después
debe esperar a que el segundo módulo envíe el dato.

226
6.4.3. El Bus de expansión
Es posible conectar controladores de E/S directamente al bus de
sistema, pero una solución más eficiente consiste en utilizar uno o más
buses de expansión.

La interfaz del bus de expansión regula las transferencias de datos


entre el bus de sistema y los controladores conectados al bus de
expansión. Esta disposición permite:
a) Conectar al sistema una amplia variedad de dispositivos de E/S
b) Aislar el tráfico de información entre la memoria y el procesador, del
tráfico correspondiente a las E/S.

Los buses de la PC son las principales autopistas de datos en un


motherboard. Conforman el sistema nervioso del motherboard, ya que
conectan la CPU con los demás componentes, una motherboard soporta
una amplitud de buses (66, 100 y 133 MHz, por ejemplo), donde esta
frecuencia de trabajo indica por ende la velocidad de trabajo de los distintos
tipos de buses.
En la actualidad existen 3 arquitecturas de buses de expansión, que
pueden coexistir en un motherboard; estos son PCI, PCI Express y AGP,
aunque la tendencia en las nuevas placas es reemplazar PCI y AGP por PCI
Express.

El bus PCI
El bus PCI (Peripherical Component Interconnect) fue el estándar más
usado hasta la aparición del PCI express.

Figura 6. 4: Slots o Ranuras PCI

Como muestra la Figura 6.4, el bus PCI físicamente es un slot


generalmente blanco. Puede manejar hasta 64 bits y se vincula al Bus de
Sistema mediante un chip que fue creado por Intel.
Una característica muy importante del bus PCI es que gracias a la
tecnología "plug and play" se facilita la configuración de los dispositivos.
Esta tecnología permite que los dispositivos sean reconocidos por la PC y su
configuración se simplifica mucho.
Otra forma en que también trabaja el bus PCI, es mediante
dispositivos "on board" que están incorporados en la placa madre, como por
ejemplo controladoras de disco ó sonido.

227
El nuevo estándar para conexión de periféricos es PCI Express (PCIe),
el cual es mucho más rápido que PCI. Por sus características PCI Express
puede reemplazar a los buses PCI y AGP, ya que puede usarse también para
conectar placas de video.
El bus PCI es un bus paralelo, mientras que el nuevo PCIe es un canal
serie punto a punto lo que posibilita grandes tasas de transferencia. Desde
su implementación se han establecido distintas versiones de zócalos y
buses PCIe para cada necesidad: 1x, 2x, 4x, 8x, 12x y 16x. En su versión de
1x (de 200 MB/s), casi duplica el ancho de banda de PCI, y en su versión de
16x (de 4GB/s) es 30 veces más rápido.
Los slots PCIe de 1x se utilizan para placas controladoras de disco,
placas de red y sonido. Los de 4x y 8x están destinados a placas de audio
profesional y placas de red Ethernet de 1 y 10 Gbps, y los de 16x fueron
creados para placas de video aceleradoras 3D. Otra ventaja de los PCIe es
que son compatibles entre sí, es decir a un zócalo de 16x se le puede
instalar una placa de 12x o inferior, o a un zócalo de 8x una placa de 4x, 2x
o 1x.
La mayoría de los dispositivos actuales son PCI, salvo los adaptadores
de video, que utilizan la tecnología AGP, un bus diseñado especialmente
para ellos.

El bus AGP
Es de uso exclusivo para gráficos, por esta razón las motherboards
sólo incluyen uno (para la placa de video). También existen componentes
"on board" que usan la arquitectura AGP. (Ver Figura 6.5)

Figura 6.5: Bus AGP

Una de las características más importantes del bus AGP es el uso de


DIME (Direct Memory Execute), que significa "Ejecución Directa en
Memoria" que permite que el chip gráfico pueda acceder directamente a la
memoria principal de la PC. El bus AGP tiene un gran ancho de banda, que
llega hasta el orden de los 500 MB/segundo, según la frecuencia de uso.

6.5. Puertos
En informática, un puerto es una interfaz a través de la cual se
pueden enviar y recibir los diferentes tipos de datos.
La interfaz puede ser de tipo física (hardware) o puede ser a nivel
lógico o de software, en cuyo caso se usa frecuentemente el término puerto
lógico (por ejemplo, los puertos de redes que permiten la transmisión de
datos entre diferentes computadoras).

228
En esta sección se hará referencia a las interfaces por hardware, es
decir puertos físicos que permiten conectar distintos periféricos a la placa
madre. Esta conexión se hace a través de cables que usan conectores
específicos para cada tipo de puerto. Otra manera de realizar dicha
conexión es en forma inalámbrica, es decir sin el uso de cables.
En la Figura 6.6 se puede apreciar el panel trasero de un
motherboard, donde se muestran algunos de los conectores más usados.

Figura 6.6

6.5.1. El puerto USB


El Universal Serial Bus (USB) es un estándar
que permite conectar dispositivos Plug & Play
externos a la PC. USB elimina la necesidad de
instalar tarjetas, que ocupan valiosos slots, y
reconfigurar el sistema, lo que ahorra importantes
recursos, como las interrupciones (IRQs). Las
computadoras equipadas con USB permiten la
configuración inmediata de los dispositivos que
utilizan esta interface no bien son enchufados, sin
necesidad de apagar o reiniciar el sistema
completo.
A diferencia de los cables paralelos o seriales,
los enchufes USB son pequeños y no necesitan ser
sujetados con tornillos. USB, en su versión
original, constituyó una interfaz de 12 Mbit/seg a
través de una conexión de cuatro hilos dentro de
un cable, dos son para transmitir datos. Soporta
hasta 127 dispositivos gracias a que se pueden
Figura 6.7 Hub USB
formar redes de dispositivos a través de "hubs de
expansión" que pueden estar en la PC o en otros dispositivos USB, como
teclados y monitores; incluso, hay hubs USB dedicados (Ver Figura 6.7). Si
bien figura esta capacidad es, en principio, impresionante, hay que
considerar que todos los dispositivos tendrán que compartir el mismo ancho
de banda de 12 Mbits/seg. o sea, cada vez que se agrega un dispositivo a la
cadena, la performance se puede ver afectada. En la práctica, no es
conveniente tener más de cinco dispositivos conectados a la vez.
Una de las ventajas más grandes de una interfaz como USB es que
sólo necesita una interrupción de la PC, aunque estén conectados
múltiples dispositivos.

229
Actualmente todos las motherboards tienen soporte para USB y
cuentan como mínimo con dos puertos.

Todas las características mencionadas hacen que USB sea capaz de


reemplazar totalmente a los puertos serie y paralelo. La variedad de
dispositivos que se conectan a los puertos USB es bastante amplia, debido
a que esta tecnología soporta distintos modos de transmisión, por lo tanto
puede usarse para:
- Dispositivos que necesitan enviar pequeñas cantidades de datos con
bastante frecuencia, como teclado y mouse
- Enviar paquetes de datos, como es el caso de la impresora, scaners o Pen
Drives
- Dispositivos que necesitan representar los datos en tiempo real, por
ejemplo parlantes y webcams

La versión 2.0 del estándar USB es hasta 40 veces más rápido que la
versión anterior y alcanza tasas de transferencia de 480 Megabits por
segundo (60 MB/seg). Los dispositivos usan los mismos cables y enchufes
que el estándar 1.1, pero el voltaje es distinto. Estos conectores se
identifican con el color negro mientras que los puertos de la versión 3.0,
mucho más veloces (600 MB/s), son de color azul.

6.5.2. El puerto IEEE-1394


IEEE-1394 es una tecnología de puerto que es el resultado de las
grandes demandas de transferencia de datos de los dispositivos multimedia
de la actualidad. Es extremadamente rápido, con tasas de transferencia
inicialmente de 400 Mbits/seg (50 MB/seg), y velocidades aún más rápidas
en sus últimas versiones.

IEEE-1394, está pensado para trabajar con dispositivos que


necesiten transmitir información en tiempo real, por lo tanto sirve
para conectar elementos de video digital como cámaras digitales y
dispositivos ópticos de audio

El puerto IEEE-1394 también es conocido como FireWire. El nombre


FireWire, es una marca registrada de Apple y, en general, se aplica a los
dispositivos para Mac. Actualmente, se distinguen cuatro versiones
diferentes de IEEE-1394, de acuerdo con su capacidad de transferencia:
50,100, 200 y 400 MB/seg).

230
Figura 6.8 Cables FireWire
y USB
La mayoría de los adaptadores PC actuales soportan 200 Mbit/seg,
aunque los dispositivos generalmente no requieren más de 100 MB/seg. Un
máximo de 63 dispositivos puede conectarse a una sola tarjeta adaptadora
IEEE-1394. La conexión con el motherboard se realiza por una interfaz
dedicada (integrada onboard) o por una tarjeta adaptadora PCI. La principal
diferencia es la velocidad. La tasa de transferencia de 1394 es muy elevada,
solo superada por las versiones USB 3.0 y 3.1 (600 y 1225 MB/s).
En la Figura 6.8 se puede observar cables Firewire y USB. El primero
tiene un conector bañado en oro y el cable se encuentra recubierto para
aislarse de las transferencias. Los USB, si bien están protegidos son más
económicos de realizar.

6.5.3. El Puerto PS/2-miniDIN6


Toma su nombre de la serie de computadoras IBM Personal
System/2 que es creada por IBM en 1987. Es un puerto serie que consiste
en un pequeño conector cilíndrico (9mm. de diámetro) de 6 terminales que
permite la transmisión de datos desde un dispositivo externo (periférico)
hacia la computadora. Existe un puerto exclusivo para teclado y otro
exclusivo para el ratón (Mouse). En la actualidad, se pueden encontrar
placas que soportan un solo conector que admite la conexión indistinta de
teclado o mouse. En general han sido reemplazados por los
dispositivos USB.

6.5.4. Puertos para la conexión de audio y video


HDMI: La sigla HDMI proviene de ("High Definition Multimedia
Interface"), lo que traducido significa interfase multimedia de alta
definición. Es un puerto de forma especial con 19 ó 29 terminales, capaz de
transmitir de manera simultánea videos de alta definición, así como varios
canales de audio y otros datos de apoyo.

PDIF-óptico: Es el acrónimo de Formato de Interfaz


Digital Sony/Philips (Sony/Philips Digital Interface Format). Es un puerto
de entrada/salida de audio que permite la transmisión de sonido digital por
fibra óptica. Transfiere señales de audio digital de un dispositivo a otro sin
necesidad de convertir en primer lugar a una señal analógica, que puede
reducir la calidad de sonido.

231
VGA: Adaptador Gráfico de Video, es un conector analógico de video
en alta definición. Se utiliza para la conexión de monitores y proyectores.

DVI: Interfaz Visual Digital es una interfaz de video diseñada para


obtener la máxima calidad de visualización posible en pantallas digitales,
tales como los monitores con pantalla de cristal líquido (LCD) de pantalla
plana y los proyectores digitales. DVI es el único estándar de uso extendido
que proporciona opciones de transmisión digital y analógica en el mismo
conector.

6.5.5. El Puerto e-SATA


El puerto Externo SATA, es una interfaz usada para la conexión de
discos duros SATA externos de alto rendimiento.

6.5.6. Puertos inalámbricos


Las conexiones en este tipo de puertos se hacen sin necesidad de
cables, a través de la conexión entre un emisor y un receptor,
utilizando ondas electromagnéticas. Si la frecuencia de la onda, usada en la
conexión, se encuentra en el espectro de infrarrojos se denomina puerto
infrarrojo (IrDA). Si la frecuencia usada en la conexión es la usual en las
radio frecuencias entonces sería un puerto Bluetooth o WiFi.
La ventaja de esta última conexión es que el emisor y el receptor no
tienen por qué estar orientados el uno con respecto al otro para que se
establezca la conexión. Esto no ocurre con el puerto de infrarrojos. En este
caso los dispositivos tienen que "verse" mutuamente, y no se debe
interponer ningún objeto entre ambos ya que se interrumpiría la conexión.
Básicamente, una computadora habilitada con Bluetooth está
equipada con un receptor o puerto Bluetooth. Los dispositivos inalámbricos
que soportan esta tecnología lo tienen integrado al dispositivo.
Las computadoras que no tienen la tecnología Bluetooth pueden
hacerlo si disponen de un puerto USB. Mediante dicho puerto, se conectará
un adaptador que permita las conexiones a los distintos dispositivos.
Wi-Fi, abreviatura de "Fidelidad Inalámbrica" (por sus siglas en inglés),
le permite a un dispositivo conectarse de forma inalámbrica a Internet y
otras redes a través de un dispositivo intermediario llamado router. Wi-Fi se
utiliza para conectar varios dispositivos a una LAN (Red de Área Local, por
sus siglas en inglés). Con conectividad Wi-Fi, los usuarios pueden tener
acceso a Internet desde cualquier dispositivo dentro de un rango de hasta
unos pocos cientos de metros sin necesidad de alambres o cables.
La tecnología Bluetooth se utiliza principalmente para dispositivos de
conexión directa, en lugar de conectar un dispositivo a una red. El uso más
común es conectar de forma inalámbrica un auricular a un teléfono celular
para un conversación con manos libres. Con Bluetooth también se puede
acceder y conectar impresoras, ratones, altavoces y otros dispositivos al
teléfono móvil o computadora personal.
Además de su diferente funcionalidad, hay algunas diferencias en las
especificaciones entre Wi-Fi y Bluetooth. Wi-Fi tiene mucho más alcance
que Bluetooth, llegando de manera fiable hasta 100 m, mientras que una
conexión Bluetooth generalmente sostiene sólo unos 10 m. Wi-Fi es mucho
más complicado y con más hardware que Bluetooth, involucrando tarjetas
Wi-Fi, módems, routers y software; mientras que Bluetooth sólo requiere
que los dispositivos se enciendan y se "enlacen" juntos. Bluetooth requiere
232
un ancho de banda y alcance mucho menor que Wi-Fi y por lo tanto es más
eficiente en cuanto a energía.

6.6. Implementación de buses y componentes en la


motherboard
Físicamente, un bus es un conjunto de conductores eléctricos
paralelos. Estos conductores son líneas de metal grabadas en una tarjeta de
circuito impreso o motherboard. El bus se extiende a través de todos los
componentes del sistema, cada uno de los cuales se conecta a algunas o a
todas las líneas del bus.
En la Figura 6.3 Jerarquía de buses, se observa un esquema básico de
conexión de los principales componentes del computador a los diferentes
niveles de buses. En esta sección se verá como se realiza la implementación
física de esta conexión.
Los componentes básicos que incluye una Placa Madre son: (Ver
Figura 6.9)
 El zócalo para el microprocesador, que determina que tipo de CPU usa
la motherboard, ya que cada micro tiene un tipo de zócalo diferente.
 El chipset, que es parte del sistema lógico de la motherboard y
usualmente se realiza en dos partes – el puente norte (nothbridge) y el
puente sur (southbridge). Estos dos "puentes" conectan la CPU a otras
partes de la computadora.
 El chip BIOS (Flash BIOS), este chip controla las funciones más básicas
de la computadora y realiza un test de monitoreo cada vez que se
enciende la máquina.
 El chip de memoria RAM CMOS, es un chip operado con batería que
mantiene la configuración básica de los componentes y el sistema de la
hora (reloj de tiempo real).

Además la motherboard incluye zócalos (slots) y conectores para


puertos:
 Zócalos PCI, para conexión de placas de sonido y red entre otros
periféricos.
 Zócalo AGP, para conexión de placa de video.
 Conectores IDE y SATA, interfase para la conexión de discos.
 Puertos USB (Universal Serial Bus) o FireWire, para periféricos
externos.
 Zócalos de Memoria

233
Figura 6.9 Componentes de la Placa Madre

Como muestra la Figura 6.10, el Chipset es el elemento de unión, que


permite al microprocesador (CPU) conectarse con el resto de la motherboard
y por consiguiente con el resto de la computadora. En una PC, el chipset
consiste de dos partes básicas, el puente norte o northbridge y el puente
sur o southbridge.

Figura 6.10 Esquema simplificado de componentes básicos de un


motherboard

234
El Puente Norte se conecta directamente al Procesador, a través del
Bus Frontal (FSB) y contiene un controlador de memoria que le permite a la
CPU un rápido acceso a la memoria. El Puente Norte también conecta al
Bus AGP o PCI Express directamente a la memoria.
El Puente Sur es más lento que el Norte, y la información que proviene
de la CPU debe pasar primero por el Puente Norte para alcanzar el Puente
Sur. A este Puente se conectan los buses de expansión para periféricos: el
bus PCI, el puerto USB y los conectores IDE o SATA para discos.
Además de los buses de periféricos ya nombrados, se deben mencionar
otros dos: El Back Side Bus (BSB), que conecta a la CPU directamente con
la memoria caché de nivel 2 (L2) también conocida como Caché Externa o
Secundaria; y el Bus de Memoria que conecta al Puente Norte con los
módulos de Memoria.

235
Bibliografía
JEAN-PIERRE MEINADIER. "Estructura y Funcionamiento de las
Computadoras Digitales"
WILLIAM STALLING. "Organización y Arquitectura de Computadores".
PEDRO DE MIGUEL ANASAGASTI. "Fundamento de los Computadores"
MARIO GINZBURG. "Operación Programación de Computadoras"
R. MARTÍNEZ J. BOLUDA, J. PÉREZ SOLANO “Estructura de
Computadores y Periféricos”

Revistas:
Users #161- "Los Puertos de la PC"- Ariel Gentile
Users #174- "Serial ATA 2.5"- Adrián Mansilla
- "Procesadores"- Adrián Mansilla
Users #176- "Motherboard"- Adrián Mansilla
Users #183- "Placas y buses de expansión"- Javier Richarte

Fuentes webs:
http://www.howstuffworks.com
- "How Motherboards Work". Tracy V. Wilson

236
Unidad 7
Software
Índice temático Unidad Nº 7 – Software

7.1 Introducción .................................................................................................. 239


Glosario ............................................................................................................................. 240
7.2 Tipos de lenguajes ......................................................................................... 240
Lenguajes de alto nivel...................................................................................................... 240
7.3 Interfaz buffer ............................................................................................... 241
Criterio “Costo del Software” ........................................................................................... 241
Criterio “Apertura del Código Fuente” ............................................................................. 242
Criterio “Según el Ámbito de Aplicación” ......................................................................... 242
 Software de Sistema (o de Base) ........................................................................... 242
 Software de arranque ............................................................................................ 243
 Controlador de dispositivos o device driver .......................................................... 245
 Sistema Operativo .................................................................................................. 245
Software de Programación ............................................................................................... 247
Software de Aplicación ..................................................................................................... 248
7.4 Software maligno (malware) .......................................................................... 248
Bibliografía ................................................................................................................. 252
Unidad 7
Software
Esquema de contenidos

Definición

De Máquina
Tipos de Lenguajes Ensamblador
Alto Nivel

Gratuito
Costo Pago

Apertura Propietario
SOFTWARE Clasificación del código Libre
de Arranque
Ámbito de Sistema Controladores
de aplicación Sist. Operativo
de Programación
de Aplicación

Definición
Malware Generaciones
Tipos

7.1 Introducción
El término software, es un vocablo de origen inglés, que hasta la fecha
no tiene traducción, pero en todo el mundo se entiende que es el conjunto
de programas que hacen posible el trabajo de los componentes de una
computadora.

Se podría definir al software como: el conjunto de instrucciones y


datos que permiten que una computadora funcione y genere
resultados.
Otra definición podría ser que el software es la parte lógica que dota al
equipo físico de capacidad para realizar cualquier tipo de trabajo.

El software puede almacenarse en medios tales como discos, cintas,


CD’s, DVD’s, etc. Su esencia son los algoritmos que lo conforman. Estos
son expresados mediante programas usando determinados lenguajes.

239
Una computadora con todos sus circuitos electrónicos energizados,
pero sin ningún programa en memoria, no puede procesar datos. No sabe
qué hacer. Al interactuar con el software, cada una de las partes de la
computadora, sabe qué hacer y cómo procesar los datos.
En los primeros años de la existencia de las computadoras, tuvo
mayor relevancia el hardware que el software, puesto que se disponía de
grandes computadoras, caras y complejas, que desarrollaban el trabajo
establecido por unos pocos programas. En la actualidad, el software
adquiere día a día una mayor importancia, en todos los aspectos (costo,
mantenimiento, etc.), y tiene, por lo tanto, mayor relevancia que el
hardware,

Glosario
Si bien en otra unidad se definieron términos técnicos, es bueno
recordar algunos:
 Instrucción: Es una orden que especifica una operación a ser
ejecutada por la computadora.
 Set de Instrucciones: Conjunto de instrucciones reconocidas por un
determinado microprocesador.
 Programa: Es un conjunto ordenado de instrucciones que cumplen
un determinado objetivo.
 Lenguaje: Son las reglas que permiten la comunicación entre el ser
humano y el computador
 Licencia: Es la forma en que un autor permite el uso de su creación
(por ejemplo un programa) por otras personas, de la manera que él
cree aceptable.
 Copyright: es el derecho legal de un autor que obtiene por el
resultado creativo de un trabajo original. Es una forma de protección
garantizada por la ley.
 Usuario: es aquella persona que emplea el software.

7.2 Tipos de lenguajes


Desde que se concibió filosóficamente el software, hasta llegar a
nuestros días, se ha ido produciendo una serie de transformaciones que
hacen que la tarea de concebir software por parte de los programadores sea
cada vez más sencilla a partir de lenguajes de nivel cada vez más alto. El
concepto de “alto nivel” se refiere a que el programador está más lejos de la
circuitería elemental de la computadora.
Se pueden considerar tres tipos de lenguajes:
 Lenguaje de Máquina: El concepto de lenguaje de máquina ya fue
tratado con anterioridad (ver Unidad 5, sección 5.4.1).
 Lenguaje Ensamblador (Bajo nivel): El concepto de lenguaje de bajo
nivel ya fue tratado con anterioridad (ver Unidad 5, sección 5.4.2).
 Lenguaje de Alto nivel.

Lenguajes de alto nivel


Con el fin de hacer cada vez más sencilla la tarea del programador, se
han desarrollado lenguajes que relevan a éste del conocimiento de muchas
instrucciones elementales del microprocesador. Estos lenguajes tan
potentes son los denominados de Alto Nivel.

240
Con los lenguajes de alto nivel, el programador da órdenes que le
permiten programar en menos tiempo, hacer un seguimiento y depuración
de errores más simple, sin necesidad de conocer la arquitectura del
microprocesador. Por otra parte, un programa en un lenguaje de alto nivel
puede utilizarse en distintos equipos, mientras que los de bajo nivel
dependen del procesador.
Esta potencialidad se pone de manifiesto cuando se compara un
lenguaje de alto nivel con el lenguaje Assembler, donde a una sola
instrucción de alto nivel le corresponden varias de bajo nivel para un mismo
algoritmo (cálculo). Por ejemplo: sumar 2 datos y guardar el resultado.

Assembler Alto Nivel

LOAD A ventas_año := ventas_semestre_1 + ventas_semestre_2


ADD B
STORE C

Sin embargo, como la computadora solamente puede entender


lenguaje binario, los lenguajes de alto nivel, al igual que el ensamblador,
necesitan de un traductor.
Los programas traductores tienen como principal objetivo transformar
el lenguaje en que está expresado un algoritmo. El contenido se preserva,
pero se cambia la codificación, de una forma que se encuentra orientada a
la comunicación humana a una orientada a la comunicación con la
máquina.
Por citar solo algunos ejemplos de estos lenguajes de Alto Nivel,
podemos mencionar a Visual Basic, Cobol, Fortran, C++.

7.3 Interfaz buffer


Existen distintos criterios para clasificar la gran variedad de software
existente, siendo los que se dan a continuación, los de uso mas frecuente:

Gratuito
Criterio Costo Pago

Criterio Apertura del Código fuente abierto


código fuente
Clasificación Código fuente cerrado
del software
Arranque
Criterio Ámbito de
Sistema o de Base Controlador de dispositivos
aplicación
Sistema Operativo
Programación
Aplicación

Criterio “Costo del Software”

a) Software gratuito:
También conocido como freeware. Es aquel software cuyo costo de
adquisición es nulo, es decir, no hace falta efectuar un desembolso de

241
dinero para poder usarlo. Dentro de este tipo pueden distinguirse las
siguientes variantes:
 Liteware: Reducido en su funcionalidad.
 Crippleware: Liteware llevado al extremo, es decir, severamente
limitado en su capacidad.
 Adware: Soft gratuito que muestra alguna publicidad.
 Registerware: Para su utilización, se exige un registro gratuito del
usuario en el sitio web de los creadores del software.
 Nagware: El software gratuito tiene una presentación o bienvenida
que no puede evitarse, y que puede ser larga y fastidiosa.

b) Software pago
También se conoce como software “comercial”. Es el software
desarrollado por una entidad que tiene la intención de hacer dinero con su
uso. Presenta las siguientes alternativas:
 Software Comercial: Software comprado por el usuario, no disponible
gratuitamente.
 Shareware (Demos o trials): demostraciones o pruebas por un
periodo de tiempo acotado. A veces durante este periodo es
totalmente funcional, otras veces están restringidas sus funciones.
Vencido este periodo de evaluación, se necesita una clave (número de
serie) para “activarlo”.

Criterio “Apertura del Código Fuente”

a) De código fuente abierto.


También llamado “software libre”, “de fuente abierta” u “open source”.
Es aquel software que permite tener acceso a su código fuente a través de
cualquier medio (ya sea acompañado con el programa ejecutable, a través
de Internet, a través del abono de una suma de dinero, etc.).

b) De código fuente cerrado.


También llamado “software cerrado”. Es el software que no tiene
disponible su código fuente por ningún medio, ni siquiera adquiriendo la
licencia de uso. Generalmente tiene esta característica cuando su creador
desea proteger su propiedad intelectual.

Criterio “Según el Ámbito de Aplicación”


 Software de Sistema (o de Base)
Es el conjunto de software que interactúa entre el usuario y todo el
hardware del sistema computacional, haciendo para aquel mucho más
sencilla la comunicación, y en muchos casos relevándolo de actividades
básicas.

242
Definición
Verificar componentes
Funciones Cargar el SO
Servicios de comunicación
De Arranque
ROM (BIOS)
Software de Base Componentes físicos
RAM-CMOS(config.de datos)

Controladores

Definición
Sistema Operativo Tareas
Tipos

 Software de arranque
El Software de arranque está constituido por una serie de rutinas
almacenadas en memoria ROM, denominadas BIOS (Basic Input Output
System) es decir, “Sistema básico de entrada/salida”. Por ser software
almacenado permanentemente en hardware constituye lo que se denomina
FIRMWARE. (ver Unidad 3, sección 3.2.3.1)

El BIOS es un conjunto de rutinas básicas que se cargan en


memoria principal al encenderse la computadora y cuyo propósito
principal es la carga del sistema operativo en memoria RAM.

Por ser el BIOS un firmware, consta de una parte lógica y una física.
La parte lógica está formada por las rutinas del BIOS (software),
almacenadas en la parte física, constituida por una memoria ROM,
actualmente del tipo Flash.
Para que estos programas (BIOS) funcionen en cualquier computadora
necesitan conocer los datos que "configuran cada equipo" en particular.
Como estos datos de entrada pueden variar de máquina a máquina e
incluso pueden modificarse en un mismo equipo en el caso que se actualice
algún componente del hardware, se graban en una memoria RAM del tipo
CMOS. Esta memoria RAM se alimenta con una pila que impide que se
borre el contenido cuando se apaga la máquina. La modificación de estos
datos se hace a través del SETUP (programa grabado en ROM).
Este tema se trata con más detalle al final del capítulo, donde se
detalla la información necesaria para realizar la Práctica de la Unidad de
Software, referente a la configuración del BIOS a través del SETUP
Como resumen se puede decir que las funciones principales del BIOS
son:
 Verificación de componentes de hardware: El proceso de arranque o
encendido de una computadora comienza con un “autorreconocimiento”,
es decir, cómo está compuesta, que recursos dispone, etc. La primera
pantalla que se verá cuando se enciende la máquina será relativa al
proceso inicial llevado a cabo por el BIOS, conocido como POST (Power
On Self Test, traducido significa “Autotesteo de encendido”), y que
consiste en: (ver figura 6.1)
- Realizar un conteo y comprobación de la memoria RAM.

243
- Comprobar por ejemplo la existencia del teclado; si no está
enchufado o el cable se cortó, mostrará un mensaje de falla de
teclado y la PC se detendrá donde se encuentre dentro del
POST.
- Verificar la correcta configuración de los puertos de conexión.
- Lectoras de CD/DVD.
- Discos duros.

Figura 7.1

 Cargar el Sistema Operativo en RAM: Esta operación se realiza a


continuación de la verificación de componentes de hardware, consiste en
buscar en las unidades de almacenamiento al Sistema Operativo y
cederle el control. También se conoce como "booteo"
 Brindar servicios de comunicación básicos entre el microprocesador y
algunos periféricos: Luego del booteo, el BIOS actúa como una interfaz
de comunicación entre el SO y algunos componentes de hardware como
son el teclado y el monitor. En el caso de que el BIOS no pueda
establecer esta comunicación, el SO deberá hacerlo a través de los
drivers o controladores de dispositivos, como se verá en el apartado
siguiente.

Hardware

BIOS

Programas Sistema Operativo Drivers

Figura 7.2

244
En el esquema que muestra la Figura 6.2 se puede ver la forma en la
que el software accede a los dispositivos de hardware. La realidad actual es
que el SO accede a la mayoría de los componentes directamente a través de
los controladores de dispositivos (o device drivers), pero aún existen casos
en los que utiliza el BIOS como interfaz de comunicación.

 Controlador de dispositivos o device driver


En el mercado existe una gran cantidad de periféricos, a su vez cada
tipo de dispositivo tiene variedad de modelos y fabricantes. Se puede ver
claramente que el manejo de una impresora es diferente al manejo que
tendrá una placa de red. La finalidad de uno y otro, el tipo de información
que operan, tasas de velocidad, señales de control, tipos de errores, etc.,
hacen que su manipulación sea realizada de manera específica.
Se puede deducir que es necesario tener un mecanismo de
interconexión eficaz, aliviando la tarea del sistema operativo (que es quien
debe administrarlo).
La instalación de un componente nuevo, hace necesario instalar el
driver correspondiente a fin de permitir utilizar ese dispositivo
adecuadamente. Generalmente, los Sistemas Operativos tienen
incorporados una librería de controladores para diferentes accesorios.

Técnicamente, se puede definir a un controlador como un


programa que permite al sistema operativo interactuar con un
dispositivo periférico, haciendo una abstracción del hardware y
proporcionando una interfaz para usarlo. A modo de ejemplo pueden
citarse, los drivers de las impresoras, equipos de sonido, entre otros.

 Sistema Operativo
El Sistema Operativo (SO) es un conjunto de programas destinado a
permitir una gestión eficaz de los recursos de una computadora. Se
entiende como recursos administrados por el SO:
- Procesador/es (CPU)
- Memoria
- Periféricos
- Archivos
Además, se encarga de relevar al operador de una computadora de la
necesidad de conocer la microelectrónica que maneja la computadora,
proveyendo interfaces amigables que permitan operar el hardware de
manera amigable e intuitiva.

Un sistema operativo es el conjunto de programas de control que


actúa como intermediario entre el usuario y el hardware de una
computadora y su propósito es la administración de los recursos
del sistema.

APLICACIONES

SIST. OPERATIVO

HARDWARE

245
Cuando la computadora se enciende, las rutinas de arranque (BIOS)
de una computadora cargan una fracción del SO, denominada núcleo o
kernel, en memoria principal y reside allí en forma permanente hasta el
apagado. El núcleo contiene las funciones básicas del SO. El resto de las
funciones se encuentran almacenadas en un medio de memoria auxiliar
(generalmente disco magnético), de donde son extraídas para su ejecución
cuando se las necesita.
Dichas funciones posibilitan utilizar en forma correcta, simple y
eficiente los recursos de un sistema de computación. Es el SO quien se
comunica con el hardware. Todas las funciones del hardware están a
disposición del usuario, a través de pedidos al SO.
Desde el punto de vista del usuario, el SO facilita el uso de la
computadora. Desde el punto de vista del aprovechamiento del sistema de
computación, maximiza el rendimiento, permitiendo ejecutar la mayor
cantidad posible de aplicaciones.
El SO es un componente principal de prácticamente la totalidad de los
sistemas de computación. Salvo en casos muy especiales, es muy difícil, si
no imposible, usar una computadora sin alguna clase de Sistema Operativo
y usar un sistema deficiente podría tener un efecto desastroso en la
capacidad de procesamiento de una máquina, pues anularía la eficacia de
un costoso y veloz hardware.
Los Sistemas Operativos son el centro nervioso que dirige y coordina el
uso de una máquina y el medio idóneo que permite obtener de ella una
mayor eficiencia y flexibilidad al cumplir las múltiples funciones para las
que están diseñados.
Dentro de los Sistemas Operativos más conocidos puede citarse:
Windows, Linux, Unix, Solaris, entre otros.

Tareas de los Sistemas Operativos


Mientras la computadora esté encendida, el SO tiene 4 tareas
principales:
a) Proporcionar una interfaz de línea de comando y/o una interfaz gráfica al
usuario, para que este último se pueda comunicar con la computadora.
La Interfaz Gráfica del Usuario (GUI), permite seleccionar las acciones
mediante el uso de un Mouse, pulsando sobre figuras llamadas iconos o
seleccionar opciones de los menús presentes.
b) Administrar los dispositivos de hardware en la computadora. Cuando
corren los programas, necesitan utilizar la memoria, el monitor, las
unidades de disco, los puertos de Entrada/Salida (impresoras, módems,
etc.). El SO sirve de intermediario entre los programas de usuario y el
hardware.
c) Administrar y mantener la información en los medios de
almacenamiento. Los SO agrupan la información dentro de
compartimientos lógicos para almacenarlos en unidades de
almacenamiento masivo. Estos grupos de información son llamados
archivos. Los archivos pueden contener instrucciones de programas o
información creada por el usuario (datos). El SO mantiene una lista de
los archivos por unidad de almacenamiento, y nos proporciona las
herramientas necesarias para organizar y manipular estos archivos.
d) Apoyar a otros programas. Proporciona servicios a otros programas.
Estos servicios son similares a aquellos que el SO proporciona
directamente a los usuarios. Por ejemplo, listar los archivos, grabarlos a
disco, eliminar archivos, revisar espacio disponible, etc. Cuando los
programadores escriben programas de computadora, incluyen en sus

246
programas instrucciones que solicitan los servicios del SO. Estas
instrucciones son conocidas como “llamadas del sistema”,
interrupciones por software o IRQs.

Tipos de Sistemas Operativos


 Sistema Operativo Monotareas: Los sistemas operativos monotareas son
primitivos, solo pueden manejar un proceso en cada momento. Es
relativamente simple ya que los recursos de un sistema informático
están dedicados a un solo trabajo, por lo tanto no hay disputa entre
ellos y no se requieren funciones complejas de administración. Un
ejemplo de este SO es DOS, en el cual cuando la computadora esta
imprimiendo un documento, no puede iniciar otro proceso ni responder
a nuevas instrucciones hasta que se termine la impresión.
 Sistema Operativo Multitarea: Es el modo de funcionamiento disponible
en la mayoría de los sistemas operativos, mediante el cual una
computadora procesa varias tareas al mismo tiempo. Existen distintas
políticas para ejecutar estas tareas paralelamente. Sistemas operativos
multitareas son Windows NT, Unix y Linux, por ejemplo.
 Sistema Operativo Monousuario: Los sistemas monousuarios son
aquellos que nada más puede atender a un solo usuario en un
determinado tiempo. En este tipo de sistemas todos los dispositivos de
entrada, salida y almacenamiento están dedicados a las tareas que
están ejecutando, esto quiere decir, que las instrucciones que se dan,
son procesadas de inmediato ya que existe un solo usuario. Ejemplos:
Sistemas Operativos para PC.
 Sistema Operativo Multiusuario: Es todo lo contrario a monousuario. En
esta categoría se encuentran todos los sistemas que cumplen
simultáneamente las necesidades de dos o más usuarios, que comparten
los mismos recursos. Un ejemplo son los sistemas operativos para
redes.

Software de Programación
Son todos aquellos software, a partir de los cuales se puede desarrollar
o programar otros software (llamados sistemas) para los más variados
ámbitos de aplicación. Están formados por un set de instrucciones en
lenguaje de alto nivel, con el cual trabaja el programador para construir
algoritmos (Programas Fuente) que resuelvan una situación problemática
particular.
Todo Software de Programación incluye un traductor, que convierte el
programa Fuente (construido con instrucciones de alto nivel) en un módulo
objeto, en lenguaje binario (comprensible por el microprocesador).
Como la computadora sólo es capaz de entender el lenguaje de
máquina, no podrá ejecutar directamente un programa escrito en
Assembler o en un lenguaje de alto nivel. Es por ello que se requiere de
programas traductores.
Entre los programas traductores pueden distinguirse los siguientes:
- Intérprete: Toma cada instrucción del programa escrito en un lenguaje
de alto nivel, la verifica sintácticamente, la traduce al lenguaje de
máquina e inmediatamente la ejecuta. Si encuentra algún error en este
proceso emite un mensaje de correspondencia. El proceso descrito es
instrucción a instrucción. Es decir sólo realizan la traducción a medida

247
que sea necesario y normalmente, no guardan el resultado de dicha
traducción.
Los programas interpretados suelen ser más lentos que los compilados
debido a la necesidad de traducir el programa mientras se ejecuta, pero
a cambio son más flexibles como entornos de programación y
depuración además permiten ofrecer al programa interpretado un
entorno no dependiente de la máquina donde se ejecuta el intérprete.
Algunos ejemplos de lenguajes que son interpretados: Basic, PHP,
JavaScript, ASP (hasta la versión 3), Prolog, ASP, Lisp.

- Compilador: Traduce todo el programa escrito en el lenguaje de Alto


Nivel (programa fuente) a lenguaje de máquina (programa objeto). Esto
implica que una vez escrito el programa, éste se traduce a partir de su
código fuente por medio de un compilador en un archivo ejecutable para
una determinada plataforma.
En el proceso de compilación se encuentran presentes tres actividades:
 Análisis lexicográfico: reconocimiento de instrucciones dentro del
set de instrucciones del lenguaje utilizado.
 Análisis sintáctico: Reconocimiento de la estructura de la
instrucciones y el programa.
 Generación del módulo objeto: Traducción del programa fuente al
programa objeto (en Lenguaje de máquina)
Algunos ejemplos típicos de lenguajes compilados son: Fortran, la
familia de lenguajes de C, (incluyendo C++), Ada, Pascal, Delphi, Algol,
PL/1.

Software de Aplicación

Son los programas que utiliza el usuario para procesar datos y obtener
resultados. Se los denomina también software de usuario. Hay distintas
variantes, a saber:
a) Programas a Medida. Son aquellos programas desarrollados en un
lenguaje de Alto Nivel, para realizar una tarea específica. Ejemplo de
esto es una página web, o un programa para administración de personal
de una empresa.
b) Utilitarios. Son programas desarrollados para cumplir con un gran
número de necesidades generales. Actualmente se ha generalizado su
uso. Ejemplo de ello son los Procesadores de Textos, Planillas
electrónicas, manejadores de bases de datos, generadores de
presentaciones, etc.

7.4 Software maligno (malware)


El término malware proviene de la agrupación de las palabras:
malicious software, es decir software malicioso. Estos son programas
desarrollados por programadores calificados, usualmente denominados
“hackers”.
En un principio, solo existían los virus, pero en los últimos tiempos ha
aparecido una gran variedad de software que de una u otra manera

248
representan un peligro para la seguridad de los datos y sistemas
almacenados en las computadoras.
Si bien, en general, a esta clase de software se le llama “virus” hay
definiciones más específicas para las distintas variantes de esta clase de
programas.
Los virus representan una amenaza presente debido a que todo el
tiempo están mutando. Sin embargo como representan el origen del
software maligno es que se empezará por su definición para luego avanzar
sobre las definiciones de las demás alimañas con las que tienen pequeñas
diferencias técnicas (pero sustanciales).
Estas tres características, sumado a la globalización del uso de
Internet, ha potenciado la peligrosidad de este tipo de programas,
resultando en la actualidad un tema de tratamiento en todo sistema que
pretenda seguir funcionando aceptablemente a lo largo del tiempo.

Generaciones de código maligno


Como una forma de caracterizar las cualidades distintivas de software
maligno a lo largo el tiempo, pueden reconocerse las siguientes
generaciones:
 Primera generación: Producían una destrucción directa
(generalmente completa) sobre determinados archivos. El daño era
localizado y no se extendía a otros programas. Generalmente
llamadas “bombas lógicas”.
 Segunda generación: El daño estaba definido como la alteración y no
la destrucción de archivos. No se perdían los archivos como en la
primera generación, pero eran alterados los contenidos,
invalidándose los mismos.
 Tercera generación: El aspecto distintivo de esta generación, no está
en el daño que producen, si en la particularidad de tomar distintos
aspectos (mutación por autoencriptación) Esto provoca serias
dificultades para ser detectados por los antivirus.
 Cuarta generación: Los cibercriminales ya no buscan grandes
impactos sino, más que nunca, obtener réditos económicos de sus
acciones. Los códigos maliciosos se han especializado en ataques
puntuales. Por ejemplo phising, secuestro de datos

Tipos de software malicioso


Existe una gran variedad de tipos de Software Malicioso los más
comunes se describirán sintéticamente a continuación. Sin embargo, es
pertinente aclarar que a veces las fronteras no son del todo claras entre
unos y otros. Además, hay códigos maliciosos que pueden pertenecer a más
de una categoría.
Por lo tanto, los virus son programas que se agregan automáticamente
a un archivo de manera tal que cuando éste sea utilizado, se incorporará a
otras aplicaciones, infectando así a todos los otros archivos que pueda.
Cuando se haya dispersado, puede quedar latente a la espera de algún
evento para causar algún daño. Un evento puede ser una fecha
determinada, la ejecución de una aplicación en particular, etc., es decir,
cualquier cosa que suceda en el entorno del funcionamiento de las
aplicaciones.

 Virus: Se define como un programa de computadora que puede infectar


otros programas modificándolos para incluir una copia de sí mismo. Es

249
decir que para que un programa pueda ser considerado virus debe
cumplir con 3 características: Dañino (fueron concebidos para producir
algún tipo de daño, ya sea eliminando/modificando un archivo o
consumiendo recursos del sistema), Autorreproductor (su objetivo es
perdurar en el tiempo y reproducirse por autocopia) y Subrepticio (se
mantiene oculto al usuario o presenta algún tipo de camuflaje que
dificulta su identificación). Para poder ingresar a un sistema necesitan
de un archivo (huésped o portador) en el cual se inserta su código, lo
que provoca la contaminación del archivo. Luego, puede quedar latente
a la espera de algún evento (fecha determinada, la ejecución de una
aplicación en particular, etc.) para causar algún daño.

 Gusanos: Los gusanos son programas malignos que no modifican


archivos, sino que permanecen residentes en la memoria RAM a fin de
cometer las acciones para las que fueron creados (por ejemplo
deshabilitar funciones de seguridad). A diferencia de los virus, los
gusanos operan de forma generalmente independiente de otros archivos.
Para contaminar otros sistemas, los gusanos explotan vulnerabilidades
(debilidades) de los sistemas o utilizan algún tipo de ingeniería social
(práctica de obtener información confidencial a través de la
manipulación de usuarios legítimos) para engañar a los usuarios y poder
ejecutarse.

 Troyanos: Se denomina troyano (o caballo de Troya) a un programa


malicioso capaz de alojarse en computadoras y permitir el acceso a
usuarios externos, a través de una red local o de Internet, con el fin de
recabar información o controlar remotamente a la máquina anfitriona,
pero sin afectar al funcionamiento de ésta. Los troyanos no son capaces
de replicarse por sí mismos y pueden ser adjuntados con cualquier tipo
de software por un programador o puede contaminar a los equipos por
medio del engaño. Tampoco es capaz de ejecutarse por si solo.

 Spyware (software espía): Este es un software instalado en una


computadora cuyo fin es espiar al usuario a fin de recabar información
sobre su comportamiento cuando navegan por la Red, con fines de
marketing y publicidad, y luego transmitir esa información al individuo
que lo creó. Por ejemplo, pueden tener acceso al correo electrónico y su
password, dirección IP, teléfono, país, páginas que visita, compras que
hace por Internet, tarjeta de crédito, cuentas bancarias, etc. Se puede
instalar a través de un virus o un troyano y no es capaz de replicarse
por si solo. Su uso legal está limitado a la vigilancia de empleados en
entornos laborales, o en el caso de padres interesados en saber qué
hacen sus hijos en Internet. Este es un claro ejemplo de cómo el mismo
software, dependiendo del uso que se le dé, puede ser legal o no.

 Adware (software agregado o adicional): Es aquel software que durante


su funcionamiento despliega publicidad de distintos productos o
servicios. Estas aplicaciones incluyen código adicional que muestra la
publicidad en ventanas emergentes o a través de una barra que aparece
en la pantalla. Esta práctica se utiliza para subvencionar
económicamente la aplicación, permitiendo que el usuario la obtenga
por un precio más bajo e incluso gratis y, por supuesto, puede
proporcionar al programador un beneficio, que ayuda a motivarlo para
escribir, mantener y actualizar un programa.

250
 Keyloggers: Es una clase o especialización de spyware (software espía)
que graba todo lo que se teclea en una computadora. Pueden llegar
camuflados como troyanos dentro de aplicaciones legítimas. Acá se
puede ver, que a veces, las fronteras no son claras para clasificar estos
programas malignos: un software de estas características puede ingresar
como un troyano a una computadora y actuar como un software espía,
más específicamente como un “grabador de teclas”.

 Puerta trasera (“Backdoor”): es una secuencia especial dentro del código


de programación de un software que permite el acceso al sistema de la
computadora ignorando los procedimientos normales de autenticación.
Debe quedar claro que no es un software como los anteriores, sino un
“atajo” que es dejado a propósito por los programadores que
desarrollaron una aplicación a fin de facilitar el ingreso sin necesidad de
pasar por los controles establecidos.

251
Bibliografía
GABRIEL DUPERUT “Fundamentos de Computación y Comunicación”
PRIETO ESPINOSA, LLORIS RUIZ Y TORRES CANTERO "Introducción a la
Informática”
ANDRES TENENBAUM “Organización de Computadoras”
A. SILBERSCHATZ “Sistemas Operativos: Conceptos fundamentales”
GABRIEL DUPERUT “"El Computador y su entorno”
MICHAEL FOLK Y BILL ZOELLICK “Estructuras de archivos”

Revistas:
Curso Users: Armado de Pc: BIOS Avanzado
Users # 184, Editorial MP Ediciones

Fuentes web:
http://es.wikipedia.org

252

Вам также может понравиться