Upload
francis-torres
View
221
Download
2
Embed Size (px)
DESCRIPTION
la evolucion de las computadoras, hardware y software y sistemas operativos
Citation preview
1
UNIDAD # I: EVOLUCION DEL COMPUTADOR
2
UNIDAD I: EVOLUCION DEL COMPUTADOR:
1. Antecedentes históricos del computador
La primera máquina de calcular mecánica, un precursor del ordenador digital, fue
inventada en 1642 por el matemático francés Blaise Pascal. Aquel dispositivo utilizaba
una serie de ruedas de diez dientes en las que cada uno de los dientes representaba
un dígito del 0 al 9. Las ruedas estaban conectadas de tal manera que podían sumarse
números haciéndolas avanzar el número de dientes correcto. En 1670 el filósofo y
matemático alemán Gottfried Wilhelm Leibniz perfeccionó esta máquina e inventó una
que también podía multiplicar.
El inventor francés Joseph Marie Jacquard, al diseñar
un telar automático, utilizó delgadas placas de madera
perforadas para controlar el tejido utilizado en los
diseños complejos. Durante la década de 1880 el estadístico estadounidense Herman
Hollerith concibió la idea de utilizar tarjetas perforadas, similares a las placas de
Jacquard, para procesar datos. Hollerith consiguió compilar la información estadística
destinada al censo de población de 1890 de Estados Unidos mediante la utilización de
un sistema que hacía pasar tarjetas perforadas sobre contactos eléctricos.
El mundo de la alta tecnología nunca hubiera existido de no ser por el desarrollo del
ordenador o computadora. Toda la sociedad utiliza estas máquinas, en distintos tipos y
tamaños, para el almacenamiento y manipulación de datos. Los equipos informáticos
han abierto una nueva era en la fabricación gracias a las técnicas de automatización, y
han permitido mejorar los sistemas modernos de comunicación. Son herramientas
esenciales prácticamente en todos los campos de investigación y en tecnología
3
aplicada.
2. La máquina analítica
También en el siglo XIX el matemático e inventor británico Charles Babbage elaboró
los principios de la computadora digital moderna. Inventó una serie de máquinas, como
la máquina diferencial, diseñadas para solucionar problemas matemáticos complejos.
Muchos historiadores consideran a Babbage y a su socia, la matemática británica
Augusta Ada Byron (1815-1852), hija del poeta inglés Lord Byron, como a los
verdaderos inventores de la computadora digital moderna.
La tecnología de aquella época no era capaz de trasladar a la práctica sus acertados
conceptos; pero una de sus invenciones, la máquina analítica, ya tenía muchas de las
características de un ordenador moderno.
Incluía una corriente, o flujo de entrada en forma de paquete de tarjetas perforadas,
una memoria para guardar los datos, un procesador para las operaciones matemáticas
y una impresora para hacer permanente el registro.
4
Considerada por muchos como predecesora directa de los modernos dispositivos de
cálculo, la máquina diferencial era capaz de calcular tablas matemáticas. Este corte
transversal muestra una pequeña parte de la ingeniosa máquina diseñada por el
matemático británico Charles Babbage en la década de 1820. La máquina analítica,
ideada también por Babbage, habría sido una auténtica computadora programable si
hubiera contado con la financiación adecuada. Las circunstancias quisieron que ninguna
de las máquinas pudiera construirse durante su vida, aunque esta posibilidad estaba
dentro de la capacidad tecnológica de la época. En 1991, un equipo del Museo de las
Ciencias de Londres consiguió construir una máquina diferencial Nº 2 totalmente
operativa, siguiendo los dibujos y especificaciones de Babbage.
3. Los primeros ordenadores
Los ordenadores analógicos comenzaron a construirse a principios del siglo XX. Los
primeros modelos realizaban los cálculos mediante ejes y engranajes giratorios. Con
estas máquinas se evaluaban las aproximaciones numéricas de ecuaciones demasiado
difíciles como para poder ser resueltas mediante otros métodos. Durante las dos
guerras mundiales se utilizaron sistemas informáticos analógicos, primero mecánicos y
más tarde eléctricos, para predecir la trayectoria de los torpedos en los submarinos y
para el manejo a distancia de las bombas en la aviación.
4. Ordenadores electrónicos
Durante la II Guerra Mundial (1939-1945), un equipo de científicos y matemáticos que
trabajaban en Bletchley Park, al norte de Londres, crearon lo que se consideró el
primer ordenador digital totalmente electrónico: el Colossus. Hacia diciembre de 1943
el Colossus, que incorporaba 1.500 válvulas o tubos de vacío, era ya operativo. Fue
5
utilizado por el equipo dirigido por Alan Turing para descodificar los mensajes de
radio cifrados de los alemanes. En 1939 y con independencia de este proyecto, John
Atanasoff y Clifford Berry ya habían construido un prototipo de máquina electrónica
en el Iowa State College (EEUU). Este prototipo y las investigaciones posteriores se
realizaron en el anonimato, y más tarde quedaron eclipsadas por el desarrollo del
Calculador e integrador numérico electrónico (en inglés ENIAC, Electronic Numerical
Integrator and Computer) en 1945. El ENIAC, que según se demostró se basaba en
gran medida en el ordenador Atanasoff-Berry (en inglés ABC, Atanasoff-Berry
Computer), obtuvo una patente que caducó en 1973, varias décadas más tarde.
La primera computadora electrónica comercial, la UNIVAC I, fue también la primera
capaz de procesar información numérica y textual. Diseñada por J. Presper Eckeret y
John Mauchly, cuya empresa se integró posteriormente en Remington Rand, la máquina
marcó el inicio de la era informática. En la ilustración vemos una UNIVAC. La
computadora central está al fondo, y en primer plano puede verse al panel de control
de supervisión. Remington Rand entregó su primera UNIVAC a la Oficina del Censo de
Estados Unidos en 1951.
5. El eniac
El ENIAC contenía 18.000 válvulas de vacío y tenía una velocidad de varios cientos de
6
multiplicaciones por minuto, pero su programa estaba conectado al procesador y debía
ser modificado manualmente. Se construyó un sucesor del ENIAC con un
almacenamiento de programa que estaba basado en los conceptos del matemático
húngaro-estadounidense John von Neumann. Las instrucciones se almacenaban dentro
de una llamada memoria, lo que liberaba al ordenador de las limitaciones de velocidad
del lector de cinta de papel durante la ejecución y permitía resolver problemas sin
necesidad de volver a conectarse al ordenador.
A finales de la década de 1950 el uso del transistor en los ordenadores marcó el
advenimiento de elementos lógicos más pequeños, rápidos y versátiles de lo que
permitían las máquinas con válvulas. Como los transistores utilizan mucha menos
energía y tienen una vida útil más prolongada, a su desarrollo se debió el nacimiento de
máquinas más perfeccionadas, que fueron llamadas ordenadores o computadoras de
segunda generación. Los componentes se hicieron más pequeños, así como los espacios
entre ellos, por lo que la fabricación del sistema resultaba más barata.
7
6. Circuitos integrados
A finales de la década de 1960 apareció el circuito integrado (CI), que posibilitó la
fabricación de varios transistores en un único sustrato de silicio en el que los cables
de interconexión iban soldados. El circuito integrado permitió una posterior reducción
del precio, el tamaño y los porcentajes de error. El microprocesador se convirtió en
una realidad a mediados de la década de 1970, con la introducción del circuito de
integración a gran escala (LSI, acrónimo de Large Scale Integrated) y, más tarde, con
el circuito de integración a mayor escala (VLSI, acrónimo de Very Large Scale
Integrated), con varios miles de transistores interconectados soldados sobre un único
sustrato de silicio.
Los circuitos integrados han hecho posible la fabricación del microordenador o
microcomputadora. Sin ellos, los circuitos individuales y sus componentes ocuparían
demasiado espacio como para poder conseguir un diseño compacto. También llamado
chip, un circuito integrado típico consta de varios elementos como reóstatos,
condensadores y transistores integrados en una única pieza de silicio. En los más
8
pequeños, los elementos del circuito pueden tener un tamaño de apenas unos
centenares de átomos, lo que ha permitido crear sofisticadas computadoras del
tamaño de un cuaderno. Una placa de circuitos de una computadora típica incluye
numerosos circuitos integrados interconectados entre sí.
7. Evolución cronológica de la computadora
La necesidad del hombre de encontrar métodos rápidos y efectivos para resolver sus
cálculos y su gran inventiva lo llevaron a través de los siglos al desarrollo de lo que hoy
conocemos como la computadora. Desde el ábaco hasta las computadoras personales
éstas han tenido una gran influencia en diferentes aspectos de nuestro diario vivir,
mejorando nuestra calidad de vida y abriendo puertas que antes eran desconocidas
para la humanidad.
500 AC: Ábaco
El primer calculador de tipo mecánico fue ideado en Babilonia alrededor de 500 A.C.
Este dispositivo mecánico llamado ábaco consistía de un sistema de barras y poleas
con lo cual se podían efectuar diferentes tipos de cálculos aritméticos.
1622: Oughtred presenta la regla de cálculo
Hacia 1622, el matemático inglés William Oughtred utilizó los recién inventados
logaritmos para fabricar un dispositivo que simplificaba la multiplicación y la división.
Consistía en dos reglas graduadas unidas que se deslizaban una sobre otra.
1642: Primera máquina de sumar
El matemático y filósofo francés Blaise Pascal tenía diecinueve años cuando construyó
la primera máquina sumadora del mundo en 1642. Utilizaba un engranaje de ruedas
dentadas como contadores. El dispositivo llevaba 1 automáticamente al llegar a las
9
decenas y también podía emplearse para restar.
1834: Primera computadora digital programable
En 1834 el científico e inventor inglés Charles Babbage realizó los esquemas de un
dispositivo el cual llamó máquina analítica lo que en realidad era una computadora de
propósitos generales. Esta máquina era programada por una serie de tarjetas
perforadas que contenían datos o instrucciones las cuales pasaban a través de un
dispositivo de lectura, eran almacenados en una memoria y los resultados eran
reproducidos por unos moldes. Esta máquina superaba por mucho la tecnología de su
tiempo y nunca se terminó.
1850: Primera sumadora de teclado
El teclado apareció en una máquina inventada en Estados Unidos en 1850. Podían
sumarse una secuencia de dígitos pulsando unas teclas sucesivas. Cada tecla alzaba un
eje vertical a cierta altura y la suma quedaba indicada por la altura total.
8. Generaciones Del Computador
A.C. (Antes De Ordenadores)
Dotación física
Mecánico
Software lógica
Tarjetas o cinta de papel perforadas
10
Ada Lovelace - primer programador (c. 1840)
Máquina de Turing y Church-Turing Thesis (1937)
Máquinas Especiales
Ábaco
Pascaline - Primera Máquina calculadora Automática (1642)
Telar De Telar jacquar (1805)
Motores De Babbage
Motor De Diferencia (1822)
Motor Analítico (1832)
Hollerith
Máquina De Tabulación (Censo 1890 De los E.E.U.U.)
La máquina de tabulación de las formas Co. (1896) - se convierte la IBM en 1924
Máquina sumadora De Burroughs (1888)
10. Primera generación: C. 1940 – 1955
Dotación física
Tubos de vacío
11
Tambores magnéticos
Cinta magnética (cerca del extremo de la generación)
Software lógica
Programas en terminología de la informática
Programas en lenguaje ensamblador (cerca del extremo de la generación)
1946 - von Neumann publica el documento sobre el ordenador salvado del programa
1950 - Prueba de Turing publicada
Máquinas Especiales
1940 - ABC (1r ordenador electrónico)
1940 - Robinson (1r ordenador, código operacionales de Enigma de las grietas)
1946 - Calculadora numérica de ENIAC (1r completamente electrónico, de uso general)
1950 - UNIVAC I (1r ordenador comercialmente acertado)
11. Segunda generación: C. 1955 – 1964
Dotación física
Transistores
1947 - Convertido
1955 - Calculadora Del Transistor De IBM's
12
Minicomputadoras
Discos magnéticos
Tarjetas de circuito impresas
Software lógica
Lenguajes de alto nivel
1956 - FORTRAN
1959 - COBOL
Máquinas Especiales
1963 -- PDP 8 (1ra minicomputadora)
12. Tercera generación: C. 1964 – 1971
Dotación física
Circuitos integrados (c. desarrollada 1958)
Familias de los ordenadores (1964 - IBM 360)
1970 - Diskette
Software lógica
Los programas entraron directamente en los ordenadores
13
Lenguajes de un nivel más alto (1965 - BASIC)
Sistemas operativos
Timesharing
Máquinas Especiales
1964 -- Serie del sistema 360 de la IBM (1ra familia de ordenadores)
13. Cuarta generación: C. 1971 – PRESENTE
Dotación física
1971 - Viruta del microprocesador introducida en los E.E.U.U. por Intel
Microordenadores (Ordenadores Personales)
Integración De la Escala Grande (LSI)
Integración De la Escala Muy Grande (Vlsi)
Software lógica
Programación estructurada
Conjuntos de aplicación
Sistemas del windowing (interfaces utilizador gráficos -- GUIs)
Programas conviviales
14
Máquinas Especiales
1971 - (1ra calculadora de bolsillo)
1975 -- Altaír 8800 (1ra PC)
1977 -- Manzana I (hágala usted mismo kit)
1978 -- Manzana II (pre montada)
1981 -- PC DE LA IBM
1984 -- Impermeable
14. Tendencias generales
Dotación física
Más pequeño
Más rápidamente
Más barato
Más disponible
Software lógica
Más grande (más exige en la dotación física: CPU, memoria, espacio de disco, etc.)
Más fácil utilizar
Mejore El Diseño
Más barato
15
Más disponible
15. Ordenadores analógicos
El ordenador analógico es un dispositivo electrónico o hidráulico diseñado para
manipular la entrada de datos en términos de, por ejemplo, niveles de tensión o
presiones hidráulicas, en lugar de hacerlo como datos numéricos. El dispositivo de
cálculo analógico más sencillo es la regla de cálculo, que utiliza longitudes de escalas
especialmente calibradas para facilitar la multiplicación, la división y otras funciones.
En el típico ordenador analógico electrónico, las entradas se convierten en tensiones
que pueden sumarse o multiplicarse empleando elementos de circuito de diseño
especial. Las respuestas se generan continuamente para su visualización o para su
conversión en otra forma deseada.
16. Ordenadores digitales
Todo lo que hace un ordenador digital se basa en una operación: la capacidad de
determinar si un conmutador, o ‘puerta’, está abierto o cerrado. Es decir, el ordenador
puede reconocer sólo dos estados en cualquiera de sus circuitos microscópicos:
abierto o cerrado, alta o baja tensión o, en el caso de números, 0 o 1. Sin embargo, es
la velocidad con la cual el ordenador realiza este acto tan sencillo lo que lo convierte
en una maravilla de la tecnología moderna. Las velocidades del ordenador se miden en
megahercios, o millones de ciclos por segundo. Un ordenador con una velocidad de
reloj de 100 MHz, velocidad bastante representativa de un microordenador o
microcomputadora, es capaz de ejecutar 100 millones de operaciones discretas por
16
segundo. Las microcomputadoras de las compañías pueden ejecutar entre 150 y 200
millones de operaciones por segundo, mientras que las supercomputadoras utilizadas
en aplicaciones de investigación y de defensa alcanzan velocidades de miles de
millones de ciclos por segundo.
La velocidad y la potencia de cálculo de los ordenadores digitales se incrementan aún
más por la cantidad de datos manipulados durante cada ciclo. Si un ordenador verifica
sólo un conmutador cada vez, dicho conmutador puede representar solamente dos
comandos o números. Así, ON simbolizaría una operación o un número, mientras que
OFF simbolizará otra u otro. Sin embargo, al verificar grupos de conmutadores
enlazados como una sola unidad, el ordenador aumenta el número de operaciones que
puede reconocer en cada ciclo. Por ejemplo, un ordenador que verifica dos
conmutadores cada vez, puede representar cuatro números (del 0 al 3), o bien
ejecutar en cada ciclo una de las cuatro operaciones, una para cada uno de los
siguientes modelos de conmutador: OFF-OFF (0), OFF-ON (1), ON-OFF (2) u ON-ON
(3). En general, los ordenadores de la década de 1970 eran capaces de verificar 8
conmutadores simultáneamente; es decir, podían verificar ocho dígitos binarios, de ahí
el término bit de datos en cada ciclo.
Un grupo de ocho bits se denomina byte y cada uno contiene 256 configuraciones
posibles de ON y OFF (o 1 y 0). Cada configuración equivale a una instrucción, a una
parte de una instrucción o a un determinado tipo de dato; estos últimos pueden ser un
número, un carácter o un símbolo gráfico. Por ejemplo, la configuración 11010010
puede representar datos binarios, en este caso el número decimal 210, o bien estar
indicando al ordenador que compare los datos almacenados en estos conmutadores con
los datos almacenados en determinada ubicación del chip de memoria. El desarrollo de
procesadores capaces de manejar simultáneamente 16, 32 y 64 bits de datos ha
permitido incrementar la velocidad de los ordenadores. La colección completa de
configuraciones reconocibles, es decir, la lista total de operaciones que una
17
computadora es capaz de procesar, se denomina conjunto, o repertorio, de
instrucciones. Ambos factores, el número de bits simultáneos y el tamaño de los
conjuntos de instrucciones, continúa incrementándose a medida que avanza el
desarrollo de los ordenadores digitales modernos.
17. Evolución futura
Una tendencia constante en el desarrollo de los ordenadores es la micro
miniaturización, iniciativa que tiende a comprimir más elementos de circuitos en un
espacio de chip cada vez más pequeño. Además, los investigadores intentan agilizar el
funcionamiento de los circuitos mediante el uso de la superconductividad, un fenómeno
de disminución de la resistencia eléctrica que se observa cuando se enfrían los
objetos a temperaturas muy bajas.
Las redes informáticas se han vuelto cada vez más importantes en el desarrollo de la
tecnología de computadoras. Las redes son grupos de computadoras interconectados
mediante sistemas de comunicación. La red pública Internet es un ejemplo de red
informática planetaria. Las redes permiten que las computadoras conectadas
18
intercambien rápidamente información y, en algunos casos, compartan una carga de
trabajo, con lo que muchas computadoras pueden cooperar en la realización de una
tarea. Se están desarrollando nuevas tecnologías de equipo físico y soporte lógico que
acelerarán los dos procesos mencionados.
Otra tendencia en el desarrollo de computadoras es el esfuerzo para crear
computadoras de quinta generación, capaces de resolver problemas complejos en
formas que pudieran llegar a considerarse creativas. Una vía que se está explorando
activamente es el ordenador de proceso paralelo, que emplea muchos chips para
realizar varias tareas diferentes al mismo tiempo. El proceso paralelo podría llegar a
reproducir hasta cierto punto las complejas funciones de realimentación, aproximación
y evaluación que caracterizan al pensamiento humano. Otra forma de proceso paralelo
que se está investigando es el uso de computadoras moleculares. En estas
computadoras, los símbolos lógicos se expresan por unidades químicas de ADN en vez
de por el flujo de electrones habitual en las computadoras corrientes.
19
UNIDAD # II: HARDWARE Y SOFTWARE:
20
UNIDAD II: HARDWARE Y SOFTWARE:
HARDWARE:
Corresponde a todas las partes tangibles de una computadora: sus componentes
21
eléctricos, electrónicos, electromecánicos y mecánicos; sus cables, gabinetes o cajas,
periféricos de todo tipo y cualquier otro elemento físico involucrado; contrariamente,
el soporte lógico es intangible y es llamado software. El término es propio del idioma
inglés (literalmente traducido: partes duras), su traducción al español no tiene un
significado acorde, por tal motivo se la ha adoptado tal cual es y suena; la Real
Academia Española lo define como «Conjunto de los componentes que integran la parte
material de una computadora». El término, aunque es lo más común, no solamente se
aplica a una computadora tal como se la conoce, ya que, por ejemplo, un robot, un
teléfono móvil, una cámara fotográfica o un reproductor multimedia también poseen
hardware (y software).
El término hardware tampoco correspondería a un sinónimo exacto de «componentes
informáticos», ya que esta última definición se suele limitar exclusivamente a las
piezas y elementos internos, independientemente de los periféricos.
La historia del hardware del computador se puede clasificar en cuatro generaciones,
cada una caracterizada por un cambio tecnológico de importancia. Este hardware se
puede clasificar en: básico, el estrictamente necesario para el funcionamiento normal
del equipo; y complementario, el que realiza funciones específicas.
Un sistema informático se compone de una unidad central de procesamiento (CPU),
encargada de procesar los datos, uno o varios periféricos de entrada, los que permiten
el ingreso de la información y uno o varios periféricos de salida, los que posibilitan dar
salida (normalmente en forma visual o auditiva) a los datos procesados.
HISTORIA DEL HARDWARE
22
La clasificación evolutiva del hardware del computador electrónico, está dividida en
generaciones, donde cada una supone un cambio tecnológico muy notable. El origen de
las primeras es sencillo de establecer, ya que en ellas el hardware fue sufriendo
cambios radicales. Los componentes esenciales que constituyen la electrónica del
computador fueron totalmente reemplazados en las primeras tres generaciones,
originando cambios que resultaron trascendentales. En las últimas décadas es más
difícil distinguir las nuevas generaciones, ya que los cambios han sido graduales y
existe cierta continuidad en las tecnologías usadas. En principio, se pueden distinguir:
1ª Generación (1945-1956): Electrónica implementada con tubos de vacío. Fueron las
primeras máquinas que desplazaron los componentes electromecánicos (relés).
2ª Generación (1957-1963): Electrónica desarrollada con transistores. La lógica
discreta era muy parecida a la anterior, pero la implementación resultó mucho más
pequeña, reduciendo, entre otros factores, el tamaño de un computador en notable
escala.
3ª Generación (1964-hoy): Electrónica basada en circuitos Integrados . Esta
tecnología permitió integrar cientos de transistores y otros componentes electrónicos
en un único circuito integrado conformando una pastilla de silicio. Las computadoras
redujeron así considerablemente su costo, consumo y tamaño, incrementándose su
capacidad, velocidad y fiabilidad, hasta producir máquinas como las que existen en la
actualidad.
4ª Generación (futuro): Probablemente se originará cuando los circuitos de silicio,
integrados a alta escala, sean reemplazados por un nuevo tipo de material o tecnología.
La aparición del microprocesador marca un hito de relevancia, y para muchos autores
constituye el inicio de la cuarta generación. A diferencia de los cambios tecnológicos
anteriores, su invención no supuso la desaparición radical de los computadores que no
lo utilizaban. Así, aunque el microprocesador 4004 fue lanzado al mercado en 1971,
23
todavía a comienzo de los 80's había computadores, como el PDP-11/44,[8] con lógica
carente de microprocesador que continuaban exitosamente en el mercado; es decir, en
este caso el desplazamiento ha sido muy gradual.
Otro hito tecnológico usado con frecuencia para definir el inicio de la cuarta
generación es la aparición de los circuitos integrados VLSI (Very Large Scale
Integration), a principios de los ochenta. Al igual que el microprocesador no supuso el
cambio inmediato y la rápida desaparición de los computadores basados en circuitos
integrados en más bajas escalas de integración. Muchos equipos implementados con
tecnologías VLSI y MSI (Medium Scale Integration) aun coexistían exitosamente
hasta bien entrados los 90.
TIPOS DE HARDWARE
Una de las formas de clasificar el Hardware es en dos categorías: por un lado, el
"básico", que abarca el conjunto de componentes indispensables necesarios para
otorgar la funcionalidad mínima a una computadora, y por otro lado, el Hardware
"complementario", que, como su nombre lo indica, es el utilizado para realizar
funciones específicas (más allá de las básicas), no estrictamente necesarias para el
funcionamiento de la computadora.
Así es que: Un medio de entrada de datos, la unidad de procesamiento (C.P.U.), la
memoria RAM, un medio de salida de datos y un medio de almacenamiento constituyen
el "hardware básico".
Los medios de entrada y salida de datos estrictamente indispensables dependen de la
aplicación: desde el punto de vista de un usuario común, se debería disponer, al menos,
de un teclado y un monitor para entrada y salida de información, respectivamente;
pero ello no implica que no pueda haber una computadora (por ejemplo controlando un
24
proceso) en la que no sea necesario teclado ni monitor, bien puede ingresar
información y sacar sus datos procesados, por ejemplo, a través de una placa de
adquisición/salida de datos.
Las computadoras son aparatos electrónicos capaces de interpretar y ejecutar
instrucciones programadas y almacenadas en su memoria, ellas consisten básicamente
en operaciones aritmético-lógicas y de entrada/salida. Se reciben las entradas
(datos), se las procesa y almacena (procesamiento), y finalmente se producen las
salidas (resultados del procesamiento). Por ende todo sistema informático tiene, al
menos, componentes y dispositivos hardware dedicados a alguna de las funciones
antedichas; a saber:
Procesamiento: Unidad Central de Proceso o CPU
Almacenamiento: Memorias
Entrada: Periféricos de Entrada (E)
Salida: Periféricos de salida (S)
Entrada/Salida: Periféricos mixtos (E/S)
Desde un punto de vista básico y general, un dispositivo de entrada es el que provee el
medio para permitir el ingreso de información, datos y programas (lectura); un
dispositivo de salida brinda el medio para registrar la información y datos de salida
(escritura); la memoria otorga la capacidad de almacenamiento, temporal o
permanente (almacenamiento); y la CPU provee la capacidad de cálculo y
procesamiento de la información ingresada (transformación).
Un periférico mixto es aquél que puede cumplir funciones tanto de entrada como de
salida, el ejemplo más típico es el disco rígido (ya que en él se lee y se graba
información y datos).
25
UNIDAD CENTRAL DE PROCESAMIENTO
ARTÍCULO PRINCIPAL: CPU
Microprocesador de 64 bits doble núcleo, el AMD Athlon 64 X2 3600.
La CPU, siglas en inglés de Unidad Central de Procesamiento, es la componente
fundamental del computador, encargada de interpretar y ejecutar instrucciones y de
procesar datos. En los computadores modernos, la función de la CPU la realiza uno o
más microprocesadores. Se conoce como microprocesador a un CPU que es
manufacturado como un único circuito integrado.
26
Un servidor de red o una máquina de cálculo de alto rendimiento (supercomputación),
puede tener varios, incluso miles de microprocesadores trabajando simultáneamente o
en paralelo (multiprocesamiento); en este caso, todo ese conjunto conforma la CPU de
la máquina.
Las unidades centrales de proceso (CPU) en la forma de un único microprocesador no
sólo están presentes en las computadoras personales (PC), sino también en otros tipos
de dispositivos que incorporan una cierta capacidad de proceso o "inteligencia
electrónica"; como pueden ser: controladores de procesos industriales , televisores,
automóviles, calculadores, aviones, teléfonos móviles, electrodomésticos, juguetes y
muchos más. Actualmente los diseñadores y fabricantes más populares de
microprocesadores de PC son Intel y AMD; y para el mercado de dispositivos móviles y
de bajo consumo, los principales son Samsung, Qualcomm y Texas Instruments.
PLACA BASE FORMATO µATX.
El microprocesador se monta en la llamada placa base, sobre el un zócalo conocido
27
como zócalo de CPU, que permite las conexiones eléctricas entre los circuitos de la
placa y el procesador. Sobre el procesador ajustado a la placa base se fija un
disipador térmico de un material con elevada conductividad térmica, que por lo general
es de aluminio, en algunos casos de cobre; éste es indispensable en los
microprocesadores que consumen bastante energía, la cual, en gran parte, es emitida
en forma de calor: En algunos casos pueden consumir tanta energía como una lámpara
incandescente (de 40 a 130 vatios).
Adicionalmente, sobre el disipador se acopla uno o dos ventiladores (raramente más),
destinados a forzar la circulación de aire para extraer más rápidamente el calor
acumulado por el disipador, y originado en el microprocesador. Complementariamente,
para evitar daños por efectos térmicos, también se suelen instalar sensores de
temperatura del microprocesador y sensores de revoluciones del ventilador, así como
sistemas automáticos que controlan la cantidad de revoluciones por unidad de tiempo
de estos últimos.
La gran mayoría de los circuitos electrónicos e integrados que componen el hardware
del computador van montados en la placa madre.
La placa madre, también conocida como placa base o con el anglicismo board, es un
gran circuito impreso sobre el que se suelda el chipset, las ranuras de expansión
(slots), los zócalos, conectores, diversos integrados, etc. Es el soporte fundamental
que aloja y comunica a todos los demás componentes: Procesador, módulos de memoria
RAM, tarjetas gráficas, tarjetas de expansión, periféricos de entrada y salida. Para
comunicar esos componentes, la placa base posee una serie de buses mediante los
cuales se trasmiten los datos dentro y hacia afuera del sistema.
La tendencia de integración ha hecho que la placa base se convierta en un elemento
que incluye también la mayoría de las funciones básicas (vídeo, audio, red, puertos de
varios tipos), funciones que antes se realizaban con tarjetas de expansión. Aunque ello
28
no excluye la capacidad de instalar otras tarjetas adicionales específicas, tales como
capturadoras de vídeo, tarjetas de adquisición de datos, etc.
La tendencia en los últimos años es eliminar elementos separados en la placa base e
integrarlos al microprocesador.
MEMORIA RAM
Módulos de memoria RAM instalados.
Artículo principal: Memoria RAM
Del inglés Random Access Memory, literalmente significa "memoria de acceso
aleatorio". El término tiene relación con la característica de presentar iguales tiempos
de acceso a cualquiera de sus posiciones (ya sea para lectura o para escritura). Esta
particularidad también se conoce como "acceso directo", en contraposición al Acceso
secuencial.
La RAM es la memoria utilizada en una computadora para el almacenamiento
transitorio y de trabajo (no masivo). En la RAM se almacena temporalmente la
información, datos y programas que la Unidad de Procesamiento (CPU) lee, procesa y
ejecuta. La memoria RAM es conocida como Memoria principal de la computadora,
29
también como "Central o de Trabajo"; [14] a diferencia de las llamadas memorias
auxiliares, secundarias o de almacenamiento masivo (como discos duros, unidades de
estado sólido, cintas magnéticas u otras memorias).
Las memorias RAM son, comúnmente, volátiles; lo cual significa que pierden
rápidamente su contenido al interrumpir su alimentación eléctrica.
Las más comunes y utilizadas como memoria central son "dinámicas" (DRAM), lo cual
significa que tienden a perder sus datos almacenados en breve tiempo (por descarga,
aún estando con alimentación eléctrica), por ello necesitan un circuito electrónico
específico que se encarga de proveerle el llamado "refresco" (de energía) para
mantener su información.
La memoria RAM de un computador se provee de fábrica e instala en lo que se conoce
como “módulos”. Ellos albergan varios circuitos integrados de memoria DRAM que,
conjuntamente, conforman toda la memoria principal.
Memoria RAM dinámica
Es la presentación más común en computadores modernos (computador personal,
servidor); son tarjetas de circuito impreso que tienen soldados circuitos integrados
de memoria por una o ambas caras, además de otros elementos, tales como
resistencias y capacitores. Esta tarjeta posee una serie de contactos metálicos (con
un recubrimiento de oro) que permite hacer la conexión eléctrica con el bus de
memoria del controlador de memoria en la placa base.
Los integrados son de tipo DRAM, memoria denominada "dinámica", en la cual las
celdas de memoria son muy sencillas (un transistor y un condensador), permitiendo la
fabricación de memorias con gran capacidad (algunos cientos de Megabytes) a un
costo relativamente bajo.
Las posiciones de memoria o celdas, están organizadas en matrices y almacenan cada
30
una un bit. Para acceder a ellas se han ideado varios métodos y protocolos cada uno
mejorado con el objetivo de acceder a las celdas requeridas de la manera más
eficiente posible.
Memorias RAM con tecnologías usadas en la actualidad.
Entre las tecnologías recientes para integrados de memoria DRAM usados en los
módulos RAM se encuentran:
SDR SDRAM: Memoria con un ciclo sencillo de acceso por ciclo de reloj. Actualmente
en desuso, fue popular en los equipos basados en el Pentium III y los primeros Pentium
4.
DDR SDRAM: Memoria con un ciclo doble y acceso anticipado a dos posiciones de
memoria consecutiva. Fue popular en equipos basados en los procesadores Pentium 4 y
Athlon 64.
DDR2 SDRAM: Memoria con un ciclo doble y acceso anticipado a cuatro posiciones de
memoria consecutivas.
DDR3 SDRAM: Memoria con un ciclo doble y acceso anticipado a ocho posiciones de
memoria consecutivas. Es el tipo de memoria más actual, está reemplazando
rápidamente a su predecesora, la DDR2.
Los estándares JEDEC, establecen las características eléctricas y las físicas de los
31
módulos, incluyendo las dimensiones del circuito impreso.
Los estándares usados actualmente son:
DIMM Con presentaciones de 168 pines (usadas con SDR y otras tecnologías
antiguas), 184 pines (usadas con DDR y el obsoleto SIMM) y 240 (para las tecnologías
de memoria DDR2 y DDR3).
SO-DIMM Para computadores portátiles, es una miniaturización de la versión DIMM
en cada tecnología. Existen de 144 pines (usadas con SDR), 200 pines (usadas con DDR
y DDR2) y 240 pines (para DDR3).
Memorias RAM especiales
Hay memorias RAM con características que las hacen particulares, y que normalmente
no se utilizan como memoria central de la computadora; entre ellas se puede
mencionar:
SRAM: Siglas de Static Random Access Memory. Es un tipo de memoria más rápida
que la DRAM (Dynamic RAM). El término "estática" deriva del hecho que no necesita el
refresco de sus datos. Si bien esta RAM no requiere circuito de refresco, ocupa más
espacio y utiliza más energía que la DRAM. Este tipo de memoria, debido a su alta
velocidad, es usada como memoria caché.
NVRAM: Siglas de Non-Volatile Random Access Memory. Memoria RAM no volátil
(mantiene la información en ausencia de alimentación eléctrica). Hoy en día, la mayoría
de memorias NVRAM son memorias flash, muy usadas para teléfonos móviles y
reproductores portátiles de MP3.
VRAM: Siglas de Video Random Access Memory. Es un tipo de memoria RAM que se
utiliza en las tarjetas gráficas del computador. La característica particular de esta
clase de memoria es que es accesible de forma simultánea por dos dispositivos. Así, es
posible que la CPU grabe información en ella, al tiempo que se leen los datos que serán
32
visualizados en el Monitor de computadora.
De las anteriores a su vez, hay otros subtipos más.
Periféricos
ARTÍCULO PRINCIPAL: PERIFÉRICOS
Se entiende por periférico a las unidades o dispositivos que permiten a la
computadora comunicarse con el exterior, esto es, tanto ingresar como exteriorizar
información y datos. Los periféricos son los que permiten realizar las operaciones
conocidas como de entrada/salida (E/S).
Aunque son estrictamente considerados “accesorios” o no esenciales, muchos de ellos
son fundamentales para el funcionamiento adecuado de la computadora moderna; por
ejemplo, el teclado, el disco duro y el monitor son elementos actualmente
imprescindibles; pero no lo son un escáner o un plotter. Para ilustrar este punto: en los
años 80, muchas de las primeras computadoras personales no utilizaban disco duro ni
mouse (o ratón), tenían sólo una o dos disqueteras, el teclado y el monitor como únicos
periféricos.
Dispositivos de entrada de información (E)
Teclado para PC inalámbrico.
33
Ratón (Mouse) común alámbrico.
De esta categoría son aquellos que permiten el ingreso de información, en general
desde alguna fuente externa o por parte del usuario. Los dispositivos de entrada
proveen el medio fundamental para transferir hacia la computadora (más propiamente
al procesador) información desde alguna fuente, sea local o remota. También permiten
cumplir la esencial tarea de leer y cargar en memoria el sistema operativo y las
aplicaciones o programas informáticos, los que a su vez ponen operativa la
computadora y hacen posible realizar las más diversas tareas.
Entre los periféricos de entrada se puede mencionar: [10] teclado, mouse o ratón,
escáner, micrófono, cámara web , lectores ópticos de código de barras, Joystick,
lectora de CD, DVD o BluRay (sólo lectoras), placas de adquisición/conversión de
datos, etc.
Pueden considerarse como imprescindibles para el funcionamiento, (de manera como
hoy se concibe la informática) al teclado, al ratón y algún dispositivo lector de discos;
ya que tan sólo con ellos el hardware puede ponerse operativo para un usuario. Los
otros son más bien accesorios, aunque en la actualidad pueden resultar de tanta
necesidad que son considerados parte esencial de todo el sistema.
34
Impresora de inyección de tinta.
Dispositivos de salida de información (S)
Son aquellos que permiten emitir o dar salida a la información resultante de las
operaciones realizadas por la CPU (procesamiento).
Los dispositivos de salida aportan el medio fundamental para exteriorizar y comunicar
la información y datos procesados; ya sea al usuario o bien a otra fuente externa, local
o remota.
Los dispositivos más comunes de este grupo son los monitores clásicos (no de pantalla
táctil), las impresoras, y los altavoces.
Entre los periféricos de salida puede considerarse como imprescindible para el
funcionamiento del sistema, al monitor. Otros, aunque accesorios, son sumamente
necesarios para un usuario que opere un computador moderno.
Dispositivos mixtos (E/S de información)
35
Piezas de un Disco duro.
Son aquellos dispositivos que pueden operar de ambas formas: tanto de entrada como
de salida. Típicamente, se puede mencionar como periféricos mixtos o de
Entrada/Salida a: discos rígidos, disquetes, unidades de cinta magnética, lecto-
grabadoras de CD/DVD, discos ZIP, etc. También entran en este rango, con sutil
diferencia, otras unidades, tales como: Tarjetas de Memoria flash o unidad de estado
sólido, tarjetas de red, módems, tarjetas de captura/salida de vídeo, etc.
Si bien se puede clasificar al pendrive (lápiz de memoria), memoria flash o memoria
USB o unidades de estado sólido en la categoría de memorias, normalmente se los
utiliza como dispositivos de almacenamiento masivo; siendo todos de categoría
Entrada/Salida.
Los dispositivos de almacenamiento masivo también son conocidos como "Memorias
Secundarias o Auxiliares". Entre ellos, sin duda, el disco duro ocupa un lugar especial,
ya que es el de mayor importancia en la actualidad, en el que se aloja el sistema
operativo, todas las aplicaciones, utilitarios, etc. que utiliza el usuario; además de
tener la suficiente capacidad para albergar información y datos en grandes volúmenes
por tiempo prácticamente indefinido. Los servidores Web, de correo electrónico y de
36
redes con bases de datos, utilizan discos rígidos de grandes capacidades y con una
tecnología que les permite trabajar a altas velocidades como SCSI incluyendo
también, normalmente, capacidad de redundancia de datos RAID; incluso utilizan
tecnologías híbridas: disco rígido y unidad de estado sólido, lo que incrementa
notablemente su eficiencia. Las interfaces actuales más usadas en discos duros son:
IDE, SATA, SCSI y SAS; y en las unidades de estado sólido son SATA y PCI-Express
ya que necesitan grandes anchos de banda.
La pantalla táctil (no el monitor clásico) es un dispositivo que se considera mixto, ya
que además de mostrar información y datos (salida) puede actuar como un dispositivo
de entrada, reemplazando, por ejemplo, a algunas funciones del ratón o del teclado.
HARDWARE GRÁFICO
GPU de Nvidia GeForce.
Artículo principal: Tarjeta gráfica
El hardware gráfico lo constituyen básicamente las tarjetas gráficas. Dichos
componentes disponen de su propia memoria y unidad de procesamiento, esta última
llamada unidad de procesamiento gráfico (o GPU, siglas en inglés de Graphics
Processing Unit). El objetivo básico de la GPU es realizar los cálculos asociados a
37
operaciones gráficas, fundamentalmente en coma flotante, [16] liberando así al
procesador principal (CPU) de esa costosa tarea (en tiempo) para que éste pueda
efectuar otras funciones en forma más eficiente. Antes de esas tarjetas de vídeo con
aceleradores por hardware, era el procesador principal el encargado de construir la
imagen mientras la sección de vídeo (sea tarjeta o de la placa base) era simplemente
un traductor de las señales binarias a las señales requeridas por el monitor; y buena
parte de la memoria principal (RAM) de la computadora también era utilizada para
estos fines.
Dentro de ésta categoría no se deben omitir los sistemas gráficos integrados (IGP),
presentes mayoritariamente en equipos portátiles o en equipos prefabricados (OEM),
los cuales generalmente, a diferencia de las tarjetas gráficas, no disponen de una
memoria dedicada, utilizando para su función la memoria principal del sistema. La
tendencia en los últimos años es integrar los sistemas gráficos dentro del propio
procesador central. Los procesadores gráficos integrados (IGP) generalmente son de
un rendimiento y consumo notablemente más bajo que las GPU de las tarjetas gráficas
dedicadas, no obstante, son más que suficiente para cubrir las necesidades de la
mayoría de los usuarios de un PC.
Actualmente se están empezando a utilizar las tarjetas gráficas con propósitos no
exclusivamente gráficos, ya que en potencia de cálculo la GPU es superior, más rápida
y eficiente que el procesador para operaciones en coma flotante, por ello se está
tratando de aprovecharla para propósitos generales, al concepto, relativamente
reciente, se le denomina GPGPU (General-Purpose Computing on Graphics Processing
Units).
La Ley de Moore establece que cada 18 a 24 meses la cantidad de transistores que
puede contener un circuito integrado se logra duplicar; en el caso de los GPU esta
tendencia es bastante más notable, duplicando, o aún más, lo indicado en la ley de
Moore.
38
Desde la década de 1990, la evolución en el procesamiento gráfico ha tenido un
crecimiento vertiginoso; las actuales animaciones por computadoras y videojuegos
eran impensables veinte años atrás.
1.- Monitor de computadora
El monitor de computadora o pantalla de ordenador, aunque también es común llamarlo
«pantalla», es un dispositivo de salida que, mediante una interfaz, muestra los
resultados del procesamiento de una computadora.
39
Historia
Los primeros monitores surgieron en el año 1981, siguiendo el estándar MDA
(Monochrome Display Adapter) eran monitores monocromáticos (de un solo color) de
IBM. Estaban expresamente diseñados para modo texto y soportaban subrayado,
negrita, cursiva, normal, e invisibilidad para textos. Poco después y en el mismo año
salieron los monitores CGA (Color Graphics Adapter-graficos adaptados a color)
fueron comercializados en 1981 al desarrollarse la primera tarjeta gráfica a partir del
estándar CGA de IBM. Al comercializarse a la vez que los MDA los usuarios de PC
optaban por comprar el monitor monocromático por su costo.
Tres años más tarde surgió el monitor EGA (Enhanced Graphics Adapter - adaptador
de gráficos mejorados) estándar desarrollado por IBM para la visualización de
gráficos, este monitor aportaba más colores (16) y una mayor resolución. En 1987
surgió el estándar VGA (Video Graphics Array - gráficos de video arreglados) fue un
estándar muy acogido y dos años más tarde se mejoró y rediseñó para solucionar
ciertos problemas que surgieron, desarrollando así SVGA (Super VGA), que también
aumentaba colores y resoluciones, para este nuevo estándar se desarrollaron tarjetas
gráficas de fabricantes hasta el día de hoy conocidos como S3 Graphics, NVIDIA o
ATI entre otros.
Con este último estándar surgieron los monitores CRT que hasta no hace mucho
seguían estando en la mayoría de hogares donde había un ordenador.
Tecnologías
Monitores analógicos
Los monitores CRT usan las señales de vídeo analógico roja, verde y azul en
intensidades variables para generar colores en el espacio de color RGB. Éstos han
usado prácticamente de forma exclusiva escaneo progresivo desde mediados de la
40
década de los 80.
Mientras muchos de los primeros monitores de plasma y cristal líquido tenían
exclusivamente conexiones analógicas, todas las señales de estos monitores atraviesan
una sección completamente digital antes de la visualización.
Los estándares más conocidos de vídeo analógico son VGA,SVGA éste último
desarrollado Video Electronics Standards Association (VESA), soportan resoluciones
de 800x600 píxeles y 36 bits de profundidad de color siguiendo la codificación RGB,
siguiendo la especificación VESA cuyo estándar es abierto.
Mientras que conectores similares (13W3, BNC, etc…) se fueron usando en otras
plataformas, el IBM PC y los sistemas compatibles se estandarizaron en el conector
VGA.
Combinación digital y analógica
Los primeros conectores de monitor externos y digitales popularizados, como el DVI-I
y los varios conectores breakout basados en él, incluían las señales analógicas
compatibles con VGA y las señales digitales compatibles con los nuevos monitores de
pantalla plana en el mismo conector.
Los monitores LCD normalmente soportan DVI-I cuya especificación sostiene que
debe soportar la especificación VGA de VESA y es por ello que siendo una tecnología
digital, tiene soporte para VGA (analógico) y por lo tanto se clasifica como
combinación. Actualmente se venden LCD analógicos con VGA, o con soporte para DVD
o con soporte para ambos y además para HDMI conforme soportan más cosas, también
son más caros por cuestiones de licencias.
Monitores digitales
Los nuevos conectores que se han creado tienen sólo señal de vídeo digital. Varios de
ellos, como los HDMI y DisplayPort, también ofrecen audio integrado y conexiones de
41
datos.
Las señales digitales de DVI-I son compatibles con HDMI, actualmente se usan para
señales de vídeo de alta definición.
Protección de datos
HDCP
Actualmente existe un estándar de protección de datos para señales digitales que
atraviesan conexiones DVI, HDMI o Display Port su nombre es HDCP (del inglés High-
Bandwidth Digital Content Protection, protección de contenido digital de gran ancho
de banda), fue desarrollado para la codificación de los datos que atraviesan cables
DVI o HDMI, se trata de un estándar propietario y se requiere licencia para
implementarlo. Con nuevas versiones de HDCP se añaden soporte para más interfaces
de conexión.
DPCP
La protección contra copia DPCP (DisplayPort Content Protection) de AMD está
disponible de forma opcional para conexiones DisplayPort, usa cifrado AES de 128-bit,
con modernos cifrados criptográficos.
Parámetros de una pantalla
Píxel: unidad mínima representable en un monitor. Los monitores pueden presentar
píxeles muertos o atascados.
Tamaño de punto o (dot pitch): el tamaño de punto es el espacio entre dos fósforos
coloreados de un píxel. Es un parámetro que mide la nitidez de la imagen, midiendo la
distancia entre dos puntos del mismo color; resulta fundamental a grandes
resoluciones. Los tamaños de punto más pequeños producen imágenes más uniformes.
un monitor de 14 pulgadas suele tener un tamaño de punto de 0,28 mm o menos. En
42
ocasiones es diferente en vertical que en horizontal, o se trata de un valor medio,
dependiendo de la disposición particular de los puntos de color en la pantalla, así como
del tipo de rejilla empleada para dirigir los haces de electrones. En LCD y en CRT de
apertura de rejilla, es la distancia en horizontal, mientras que en los CRT de máscara
de sombra, se mide casi en diagonal. Lo mínimo exigible en este momento es que sea de
0,28mm. Para CAD o en general para diseño, lo ideal sería de 0,25mm o menor. 0,21 en
máscara de sombra es el equivalente a 0.24 en apertura de rejilla.
Área útil: el tamaño de la pantalla no coincide con el área real que se utiliza para
representar los datos.
Ángulo de visión: es el máximo ángulo con el que puede verse el monitor sin que se
degrade demasiado la imagen. Se mide en grados.
Luminancia: es la medida de luminosidad, medida en Candela.
Tiempo de respuesta: también conocido como latencia. Es el tiempo que le cuesta a un
píxel pasar de activo (blanco) a inactivo (negro) y después a activo de nuevo.
Contraste: es la proporción de brillo entre un píxel negro a un píxel blanco que el
monitor es capaz de reproducir. Algo así como cuantos tonos de brillo tiene el monitor.
Coeficiente de contraste de imagen: se refiere a lo vivo que resultan los colores por la
proporción de brillo empleada. A mayor coeficiente, mayor es la intensidad de los
colores (30000:1 mostraría un colorido menos vivo que 50000:1).
Consumo: cantidad de energía consumida por el monitor, se mide en Vatio.
Ancho de banda: frecuencia máxima que es capaz de soportar el monitor.
Hz o frecuencia de refresco vertical: son 2 valores entre los cuales el monitor es
capaz de mostrar imágenes estables en la pantalla.
Hz o frecuencia de refresco horizontal: similar al anterior pero en sentido horizontal,
43
para dibujar cada una de las líneas de la pantalla.
Blindaje: un monitor puede o no estar blindando ante interferencias eléctricas
externas y ser más o menos sensible a ellas, por lo que en caso de estar blindando, o
semi-blindado por la parte trasera llevara cubriendo prácticamente la totalidad del
tubo una plancha metálica en contacto con tierra o masa.
Tipo de monitor: en los CRT pueden existir 2 tipos, de apertura de rejilla o de
máscara de sombra.
Líneas de tensión: son unas líneas horizontales, que tienen los monitores de apertura
de rejilla para mantener las líneas que permiten mostrar los colores perfectamente
alineadas; en 19 pulgadas lo habitual suelen ser 2, aunque también los hay con 3 líneas,
algunos monitores pequeños incluso tienen una sola.
Tamaño de la pantalla y ratio
Medida de tamaño de la pantalla para TFT.
El tamaño de la pantalla es la distancia en diagonal de un vértice de la pantalla al
opuesto, que puede ser distinto del área visible cuando hablamos de CRT , mientras
que el ratio o relación de aspecto es una medida de proporción entre el ancho y el alto
de la pantalla, así por ejemplo un ratio de 4:3 ( Cuatro tercios ) significa que por cada
4 píxeles de ancho tenemos 3 de alto, una resolución de 800x600 tiene una relación de
aspecto 4:3, sin embargo estamos hablando del ratio del monitor.
Estas dos medidas describen el tamaño de lo que se muestra por la pantalla,
históricamente hasta no hace mucho tiempo y al igual que las televisiones los
monitores de ordenador tenían un ratio de 4:3. Posteriormente se desarrollaron
estándares para pantallas de aspecto panorámico 16:9 (a veces también de 16:10 o
15:9) que hasta entonces solo veíamos en el cine.
Medición del tamaño de la pantalla
44
Las medidas de tamaño de pantalla son diferentes cuando se habla de monitores CRT y
monitores LCD .
Para monitores CRT la medida en pulgadas de la pantalla toma como referencia los
extremos del monitor teniendo en cuenta el borde, mientras que el área visible es más
pequeña.
Para monitores LCD la medida de tamaño de pantalla se hace de punta a punta de la
pantalla sin contar los bordes (Como se hace para los monitores CRT)
Los tamaños comunes de pantalla suelen ser de 15, 17, 19, 21 pulgadas. La
correspondencia entre las pulgadas de CRT y LCD en cuanto a zona visible se refiere,
suele ser de una escala inferior para los CRT , es decir una pantalla LCD de 17
pulgadas equivale en zona visible a una pantalla de 19 pulgadas del monitor CRT
(aproximadamente) .
Resolución máxima
Comparación de resoluciones de vídeo.
Artículo principal: Resolución de pantalla
Es el número máximo de píxeles que pueden ser mostrados en cada dimensión, es
45
representada en filas por columnas. Está relacionada con el tamaño de la pantalla y el
ratio.
Los monitores LCD solo tienen una resolución nativa posible, por lo que si se hacen
trabajar a una resolución distinta, se escalará a la resolución nativa, lo que suele
producir artefactos en la imagen.
Las resoluciones más Usadas son:
Estándar Nombre
Ancho
Alto
% de usuarios de
Steam
XGA eXtended Graphics Array 1024 768 15,37%
WXGA Widescreen eXtended Graphics Array 1280 800 7,35%
SXGA Super eXtended Graphics Array 1280 1024 21,01%
WSXGAWidescreen Super eXtended Graphics
Array1440 900 11,12%
WSXGA+Widescreen Super eXtended Graphics
Array Plus1680 1050 18,48%
Noviembre de 2009, encuesta del hardware usado en equipos con Steam instalado[1]
Colores
46
Geometría de los píxeles.
Cada píxel de la pantalla tiene interiormente 3 subpíxeles, uno rojo, uno verde y otro
azul; dependiendo del brillo de cada uno de los subpíxeles, el píxel adquiere un color u
otro de forma semejante a la composición de colores RGB.
La manera de organizar los subpíxeles de un monitor varía entre los dispositivos. Se
suelen organizar en líneas verticales, aunque algunos CRT los organizan en puntos
formando triángulos. Para mejorar la sensación de movimiento, es mejor organizarlos
en diagonal o en triángulos. El conocimiento del tipo de organización de píxeles, puede
ser utilizado para mejorar la visualización de imágenes de mapas de bit usando
renderizado de subpíxeles.
La mayor parte de los monitores tienen una profundidad 8 bits por color (24 bits en
total), es decir, pueden representar aproximadamente 16,8 millones de colores
distintos.
Ventajas y desventajas
Monitores LCD
Ventajas:
47
El grosor es inferior por lo que pueden utilizarse en portátiles.
Cada punto se encarga de dejar o no pasar la luz, por lo que no hay moire.
La geometría es siempre perfecta, lo determina el tamaño del píxel
Desventajas:
Sólo pueden reproducir fielmente la resolución nativa, con el resto, se ve un borde
negro, o se ve difuminado por no poder reproducir medios píxeles.
Por sí solas no producen luz, necesitan una fuente externa.
Si no se mira dentro del cono de visibilidad adecuado, desvirtúan los colores.
El ADC y el DAC de un monitor LCD para reproducir colores limita la cantidad de
colores representable.
El ADC (Convertidor Digital a Analógico) en la entrada de vídeo analógica (cantidad de
colores a representar).
El DAC (Convertidor Analógico a Digital) dentro de cada píxel (cantidad de posibles
colores representables).
En los CRT es la tarjeta gráfica la encargada de realizar esto, el monitor no influye en
la cantidad de colores representables, salvo en los primeros modelos de monitores que
tenían entradas digitales TTL en lugar de entradas analógicas.
Monitores CRT
Ventajas:
Permiten reproducir una mayor variedad cromática.
Distintas resoluciones se pueden ajustar al monitor.
En los monitores de apertura de rejilla no hay moire vertical.
48
Desventajas:
Ocupan más espacio (cuanto más fondo, mejor geometría).
Los modelos antiguos tienen la pantalla curva.
Los campos eléctricos afectan al monitor (la imagen vibra).
Para disfrutar de una buena imagen necesitan ajustes por parte del usuario.
En los monitores de apertura de rejilla se pueden apreciar (bajo fondo blanco) varias
líneas de tensión muy finas que cruzan la pantalla horizontalmente.
Datos técnicos, comparativos entre sí
En los CRT, la frecuencia de refresco es la que tiene la tarjeta gráfica, en los LCD no
siempre es la que se le manda
Los CRT pueden tener modo progresivo y entrelazado, los LCD tienen otro método de
representación.
En los CRT se pierde aproximadamente 1 pulgada del tamaño, que se utiliza para la
sujeción del tubo, en los LCD es prácticamente lo que ocupa el LCD por si mismo.
El peso de un LCD se ve incrementado por la peana para darle estabilidad, pero el
monitor en sí no pesa prácticamente nada.
Los LCD suelen necesitar de un transformador externo al monitor, en los CRT toda la
electrónica va dentro del monitor.
En los LCD el consumo es menor, y la tensión de utilización por parte de la electrónica
también.
En los CRT pueden aparecer problemas de "quemar" el fósforo de la pantalla, esto
ocurre al dejar una imagen fija durante mucho tiempo, como la palabra "insert coin" en
49
las recreativas, en los LCD los problemas pueden ser de píxeles muertos (siempre
encendido o, siempre apagado), aparte de otros daños.
El parpadeo de ambos tipos de pantallas es debido a la baja frecuencia de refresco,
unido a la persistencia del brillo del fósforo, y a la memoria de cada píxel en un CRT y
LCD respectivamente, que mitigan este defecto.
Con alta velocidad de refresco y un tiempo grande de persistencia del fósforo, no hay
parpadeo, pero si la persistencia del fósforo es baja y el refresco es bajo, se produce
este problema. Sin embargo esto puede causar un efecto de desvanecimiento o visión
borrosa, al permanecer aún encendido un punto, en el siguiente refresco de la pantalla.
En breve:
---En hardware, un monitor es un periférico de salida que muestra la información de
forma gráfica de una computadora. Los monitores se conectan a la computadora a
través de una tarjeta gráfica (o adaptador o tarjeta de video).
Un monitor puede clasificarse, según la tecnología empleada para formar las imágenes
en: LCD, CRT, plasma o TFT.
En tanto, según el estándar, un monitor puede clasificarse en: Monitor numérico,
MDA, CGA, EGA, analógico, VGA, SVGA, entro otros.
En cuanto a los colores que usan los monitores pueden ser monocromáticos o
policromáticos.
Existen algunos conceptos cuantificables relacionados a los monitores y sirven para
medir su calidad, estos son: píxel, paso (dot pitch), resolución, tasa de refresco,
dimensión del tubo, tamaño de punto, área útil.
---En software, un monitor de un programa es toda aquella herramienta que viene con
un programa que sirve para controlar alguna situación. Por ejemplo el monitor de un
50
antivirus, encargado de monitorear continuamente la computadora para verificar que
no se ejecute ningún virus.
Principales fabricantes
Los principales fabricantes de monitores conocidos a nivel internacional son los
siguientes:
Acer
Aoc
Apple Inc.
BenQ
Dell
Eizo
Gateway, Inc.
Hewlett-Packard
LG
Mitsubishi
NEC Corporation
Samsung
Sony
Toshiba
ViewSonic
51
PLACA BASE
La placa base, también conocida como placa madre o tarjeta madre (del inglés
motherboard o mainboard) es una placa de circuito impreso a la que se conectan los
componentes que constituyen la computadora u ordenador. Tiene instalados una serie
de circuitos integrados, entre los que se encuentra el chipset, que sirve como centro
de conexión entre el microprocesador, la memoria de acceso aleatorio (RAM), las
ranuras de expansión y otros dispositivos.
Va instalada dentro de una caja o gabinete que por lo general está hecha de chapa y
tiene un panel para conectar dispositivos externos y muchos conectores internos y
zócalos para instalar componentes dentro de la caja.
La placa base, además, incluye un firmware llamado BIOS, que le permite realizar las
funcionalidades básicas, como pruebas de los dispositivos, vídeo y manejo del teclado,
reconocimiento de dispositivos y carga del sistema operativo.
Componentes de la placa base
Una placa base típica admite los siguientes componentes:
Uno o varios conectores de alimentación: por estos conectores, una alimentación
eléctrica proporciona a la placa base los diferentes voltajes e intensidades necesarios
para su funcionamiento.
El zócalo de CPU es un receptáculo que recibe el microprocesador y lo conecta con el
resto de componentes a través de la placa base.
Las ranuras de memoria RAM, en número de 2 a 6 en las placas base comunes.
El chipset: una serie de circuitos electrónicos, que gestionan las transferencias de
datos entre los diferentes componentes de la computadora (procesador, memoria,
tarjeta gráfica,unidad de almacenamiento secundario, etc.).
52
Se divide en dos secciones, el puente norte (northbridge) y el puente sur
(southbridge). El primero gestiona la interconexión entre el microprocesador, la
memoria RAM y la unidad de procesamiento gráfico; y el segundo entre los periféricos
y los dispositivos de almacenamiento, como los discos duros o las unidades de disco
óptico. Las nuevas líneas de procesadores de escritorio tienden a integrar el propio
controlador de memoria en el interior del procesador.
Un reloj: regula la velocidad de ejecución de las instrucciones del microprocesador y
de los periféricos internos.
La CMOS: una pequeña memoria que preserva cierta información importante (como la
configuración del equipo, fecha y hora), mientras el equipo no está alimentado por
electricidad.
La pila de la CMOS: proporciona la electricidad necesaria para operar el circuito
constantemente y que éste último no se apague perdiendo la serie de configuraciones
guardadas.
La BIOS: un programa registrado en una memoria no volátil (antiguamente en
memorias ROM, pero desde hace tiempo se emplean memorias flash). Este programa
es específico de la placa base y se encarga de la interfaz de bajo nivel entre el
microprocesador y algunos periféricos. Recupera, y después ejecuta, las instrucciones
del MBR (Master Boot Record), registradas en un disco duro o SSD, cuando arranca el
sistema operativo.
El bus (también llamado bus interno o en inglés front-side bus'): conecta el
microprocesador al chipset, está cayendo en desuso frente a HyperTransport y
Quickpath.
El bus de memoria conecta el chipset a la memoria temporal.
El bus de expansión (también llamado bus I/O): une el microprocesador a los
53
conectores entrada/salida y a las ranuras de expansión.
Los conectores de entrada/salida que cumplen normalmente con la norma PC 99: estos
conectores incluyen:
Los puertos PS2 para conectar el teclado o el ratón, estas interfaces tienden a
desaparecer a favor del USB
Los puertos serie, por ejemplo para conectar dispositivos antiguos.
Los puertos paralelos, por ejemplo para la conexión de antiguas impresoras.
Los puertos USB (en inglés Universal Serial Bus), por ejemplo para conectar
periféricos recientes.
Los conectores RJ45, para conectarse a una red informática.
Los conectores VGA, DVI, HDMI o Displayport para la conexión del monitor de la
computadora.
Los conectores IDE o Serial ATA, para conectar dispositivos de almacenamiento, tales
como discos duros, unidades de estado sólido y unidades de disco óptico.
Los conectores de audio, para conectar dispositivos de audio, tales como altavoces o
micrófonos.
Las ranuras de expansión: se trata de receptáculos que pueden acoger tarjetas de
expansión (estas tarjetas se utilizan para agregar características o aumentar el
rendimiento de un ordenador; por ejemplo, un tarjeta gráfica se puede añadir a un
ordenador para mejorar el rendimiento 3D). Estos puertos pueden ser puertos ISA
(interfaz antigua), PCI (en inglés Peripheral Component Interconnect) y, los más
recientes, PCI Express.
Con la evolución de las computadoras, más y más características se han integrado en la
54
placa base, tales como circuitos electrónicos para la gestión del vídeo IGP (en inglés
Integrated Graphic Processor), de sonido o de redes (10/100 Mbps/1 Gbps), evitando
así la adición de tarjetas de expansión.
Tipos de bus
Los buses son espacios físicos que permiten el transporte de información y energía
entre dos puntos de la computadora.
Los buses generales son los siguientes:
Bus de datos: son las líneas de comunicación por donde circulan los datos externos e
internos del microprocesador.
Bus de dirección: línea de comunicación por donde viaja la información específica
sobre la localización de la dirección de memoria del dato o dispositivo al que se hace
referencia.
Bus de control: línea de comunicación por donde se controla el intercambio de
información con un módulo de la unidad central y los periféricos.
Bus de expansión: conjunto de líneas de comunicación encargado de llevar el bus de
datos, el bus de dirección y el de control a la tarjeta de interfaz (entrada, salida) que
se agrega a la tarjeta principal.
Bus del sistema: todos los componentes de la CPU se vinculan a través del bus de
sistema, mediante distintos tipos de datos el microprocesador y la memoria principal,
que también involucra a la memoria caché de nivel 2. La velocidad de transferencia del
bus de sistema está determinada por la frecuencia del bus y el ancho del mínimo.
Placa multiprocesador
55
Una placa con dos procesadores.
Este tipo de placa base puede acoger a varios procesadores (generalmente de 2, 4, 8 o
más). Estas placas base multiprocesador tienen varios zócalos de microprocesador, lo
que les permite conectar varios microprocesadores físicamente distintos (a diferencia
de los de procesador de doble núcleo).
Cuando hay dos procesadores en una placa base, hay dos formas de manejarlos:
El modo asimétrico, donde a cada procesador se le asigna una tarea diferente. Este
método no acelera el tratamiento, pero puede asignar una tarea a una unidad central
de procesamiento, mientras que la otra lleva a cabo a una tarea diferente.
El modo simétrico, llamado multiprocesamiento simétrico, donde cada tarea se
distribuye de forma simétrica entre los dos procesadores.
Linux fue el primer sistema operativo en gestionar la arquitectura de doble
procesador en x86. Sin embargo, la gestión de varios procesadores existía ya antes en
56
otras plataformas y otros sistemas operativos. Linux 2.6.x maneja multiprocesadores
simétricos, y las arquitecturas de memoria no uniformemente distribuida
Algunos fabricantes proveen placas base que pueden acoger hasta 8 procesadores (en
el caso de socket 939 para procesadores AMD Opteron y sobre socket 604 para
procesadores Intel Xeon).
Tipos
La mayoría de las placas de PC vendidas después de 2001 se pueden clasificar en dos
grupos:
Las placas base para procesadores AMD
Slot A Duron, Athlon
Socket A Duron, Athlon, Athlon XP, Sempron
Socket 754 Athlon 64, Mobile Athlon 64, Sempron, Turion
Socket 939 Athlon 64, Athlon FX , Athlon X2, Sempron, Opteron
Socket 940 Opteron y Athlon 64 FX
Socket AM2 Athlon 64, Athlon FX, Athlon X2, Sempron, Phenom
Socket F Opteron
Socket AM2 + Athlon 64, Athlon FX, Athlon X2, Sempron, Phenom
Socket AM3 Phenom II X2/X3/X4.
Socket AM4 Phenom III X3/X4/X5
Las placas base para procesadores Intel
Socket 7: Pentium I, Pentium MMX
57
Slot 1: Pentium II, Pentium III, Celeron
Socket 370: Pentium III, Celeron
Socket 423: Pentium 4
Socket 478: Pentium 4, Celeron
Socket 775: Pentium 4, Celeron, Pentium D (doble núcleo), Core 2 Duo, Core 2 Quad
Core 2 Extreme, Xeon
Socket 603 Xeon
Socket 604 Xeon
Socket 771 Xeon
LGA1366 Intel Core i7, Xeon (Nehalem)
LGA1156 Intel Core i3, Intel Core i5, Intel Core i7 (Nehalem)
LGA 2011 Intel Core i7 (Sandy Bridge)
LGA 1155 Intel Core i7, Intel Core i5 y Intel Core i3 (Sandy Bridge)
Formatos
58
Las tarjetas madre necesitan tener dimensiones compatibles con las cajas que las
contienen, de manera que desde los primeros computadores personales se han
establecido características mecánicas, llamadas factor de forma. Definen la
distribución de diversos componentes y las dimensiones físicas, como por ejemplo el
largo y ancho de la tarjeta, la posición de agujeros de sujeción y las características de
los conectores.
Con los años, varias normas se fueron imponiendo:
XT: es el formato de la placa base del PC de IBM modelo 5160, lanzado en 1983. En
este factor de forma se definió un tamaño exactamente igual al de una hoja de papel
tamaño carta y un único conector externo para el teclado.
1984 AT 305 × 305 mm ( IBM)
Baby AT: 216 × 330 mm
AT: uno de los formatos más grandes de toda la historia del PC (305 × 279–330 mm),
definió un conector de potencia formado por dos partes. Fue usado de manera extensa
de 1985 a 1995.
1995 ATX 305 × 244 mm (Intel)
MicroATX: 244 × 244 mm
FlexATX: 229 × 191 mm
MiniATX: 284 × 208 mm
ATX: creado por un grupo liderado por Intel, en 1995 introdujo las conexiones
exteriores en la forma de un panel I/O y definió un conector de 20 pines para la
energía. Se usa en la actualidad en la forma de algunas variantes, que incluyen
59
conectores de energía extra o reducciones en el tamaño.
2001 ITX 215 × 195 mm (VIA)
MiniITX: 170 × 170 mm
NanoITX: 120 × 120 mm
PicoITX: 100 × 72 mm
ITX: con rasgos procedentes de las especificaciones microATX y FlexATX de Intel,
el diseño de VIA se centra en la integración en placa base del mayor número posible
de componentes, además de la inclusión del hardware gráfico en el propio chipset del
equipo, siendo innecesaria la instalación de una tarjeta gráfica en la ranura AGP.
2005 [BTX] 325 × 267 mm (Intel)
Micro bTX: 264 × 267 mm
PicoBTX: 203 × 267 mm
RegularBTX: 325 × 267 mm
BTX: retirada en muy poco tiempo por la falta de aceptación, resultó prácticamente
incompatible con ATX, salvo en la fuente de alimentación. Fue creada para intentar
solventar los problemas de ruido y refrigeración, como evolución de la ATX.
2007 DTX 248 × 203 mm ( AMD)
Mini-DTX: 170 × 203 mm
Full-DTX: 243 × 203 mm
DTX: destinadas a PCs de pequeño formato. Hacen uso de un conector de energía de
24 pines y de un conector adicional de 2x2.
Formato propietario: durante la existencia del PC, mucha marcas han intentado
60
mantener un esquema cerrado de hardware, fabricando tarjetas madre incompatibles
físicamente con los factores de forma con dimensiones, distribución de elementos o
conectores que son atípicos. Entre las marcas mas persistentes está Dell, que rara vez
fabrica equipos diseñados con factores de forma de la industria.
Escalabilidad
Hasta la mitad de la década de 1990, los PC fueron equipados con una placa en la que
se soldó el microprocesador (CPU). Luego vinieron las placas base equipadas con zócalo
de microprocesador «libre», que permitía acoger el microprocesador de elección (de
acuerdo a sus necesidades y presupuesto). Con este sistema (que pronto se hizo más
generalizado y no ha sido discutido), es teóricamente posible equipar el PC con una
CPU más potente, sin sustituir la placa base, pero a menor costo.
De hecho, esta flexibilidad tiene sus límites porque los microprocesadores son cada
vez más eficientes, e invariablemente requieren placas madre más eficaces (por
ejemplo, capaces de manejar flujos de datos cada vez más importantes).
Fabricantes
Varios fabricantes se reparten el mercado de placas base, tales como Abit, Albatron,
Aopen, ASUS, ASRock, Biostar, Chaintech, Dell, DFI, ECS EliteGroup, Epox, Foxconn,
Gigabyte Technology, Intel, MSI, QDI, Sapphire Technology, Soltek, Super Micro,
Tyan, Via, XFX, Pc Chips.
Algunos diseñan y fabrican uno o más componentes de la placa base, mientras que
otros ensamblan los componentes que terceros han diseñado y fabricado.
Unidad central de procesamiento
La unidad central de procesamiento o CPU (por el acrónimo en inglés de central
processing unit), o simplemente el procesador o microprocesador, es el componente
del computador y otros dispositivos programables, que interpreta las instrucciones
61
contenidas en los programas y procesa los datos. Los CPU proporcionan la
característica fundamental de la computadora digital (la programabilidad) y son uno
de los componentes necesarios encontrados en las computadoras de cualquier tiempo,
junto con el almacenamiento primario y los dispositivos de entrada/salida. Se conoce
como microprocesador el CPU que es manufacturado con circuitos integrados. Desde
mediados de los años 1970, los microprocesadores de un solo chip han reemplazado
casi totalmente todos los tipos de CPU, y hoy en día, el término "CPU" es aplicado
usualmente a todos los microprocesadores.
La expresión "unidad central de proceso" es, en términos generales, una descripción
de una cierta clase de máquinas de lógica que pueden ejecutar complejos programas de
computadora. Esta amplia definición puede fácilmente ser aplicada a muchos de los
primeros computadores que existieron mucho antes que el término "CPU" estuviera en
amplio uso. Sin embargo, el término en sí mismo y su acrónimo han estado en uso en la
industria de la informática por lo menos desde el principio de los años 1960. La forma,
el diseño y la implementación de los CPU ha cambiado drásticamente desde los
primeros ejemplos, pero su operación fundamental ha permanecido bastante similar.
Los primeros CPU fueron diseñados a la medida como parte de una computadora más
grande, generalmente una computadora única en su especie. Sin embargo, este costoso
método de diseñar los CPU a la medida, para una aplicación particular, ha desaparecido
en gran parte y se ha sustituido por el desarrollo de clases de procesadores baratos y
estandarizados adaptados para uno o muchos propósitos. Esta tendencia de
estandarización comenzó generalmente en la era de los transistores discretos,
computadoras centrales, y microcomputadoras, y fue acelerada rápidamente con la
popularización del circuito integrado (IC), éste ha permitido que sean diseñados y
fabricados CPU más complejos en espacios pequeños (en la orden de milímetros).
Tanto la miniaturización como la estandarización de los CPU han aumentado la
presencia de estos dispositivos digitales en la vida moderna mucho más allá de las
62
aplicaciones limitadas de máquinas de computación dedicadas. Los microprocesadores
modernos aparecen en todo, desde automóviles, televisores, neveras, calculadoras,
aviones, hasta teléfonos móviles o celulares, juguetes, entre otros.
HISTORIA
Casi todos los CPU tratan con estados discretos, y por lo tanto requieren una cierta
clase de elementos de conmutación para diferenciar y cambiar estos estados. Antes
de la aceptación comercial del transistor, los relés eléctricos y los tubos de vacío
(válvulas termoiónicas) eran usados comúnmente como elementos de conmutación.
Aunque éstos tenían distintas ventajas de velocidad sobre los anteriores diseños
puramente mecánicos, no eran fiables por varias razones. Por ejemplo, hacer circuitos
de lógica secuencial de corriente directa requería hardware adicional para hacer
frente al problema del rebote de contacto. Por otro lado, mientras que los tubos de
vacío no sufren del rebote de contacto, éstos deben calentarse antes de llegar a estar
completamente operacionales y eventualmente fallan y dejan de funcionar por
completo. Generalmente, cuando un tubo ha fallado, la CPU tendría que ser
diagnosticada para localizar el componente que falla para que pueda ser reemplazado.
Por lo tanto, los primeros computadores electrónicos, (basados en tubos de vacío),
generalmente eran más rápidos pero menos confiables que las computadoras
electromecánicas, (basadas en relés). Las computadoras de tubo, como el EDVAC,
tendieron en tener un promedio de ocho horas entre fallas, mientras que las
computadoras de relés, (anteriores y más lentas), como el Harvard Mark I, fallaban
muy raramente. Al final, los CPU basados en tubo llegaron a ser dominantes porque las
significativas ventajas de velocidad producidas generalmente pesaban más que los
problemas de confiabilidad. La mayor parte de estos tempranos CPU síncronos corrían
en frecuencias de reloj bajas comparadas con los modernos diseños micro
electrónicos, (ver más abajo para una exposición sobre la frecuencia de reloj). Eran
muy comunes en este tiempo las frecuencias de la señal del reloj con un rango desde
63
100 kHz hasta 4 MHz, limitado en gran parte por la velocidad de los dispositivos de
conmutación con los que fueron construidos.
CPU de transistores y de circuitos integrados discretos
CPU, memoria de núcleo, e interfaz de bus externo de un MSI PDP-8/I.
La complejidad del diseño de los CPU se incrementó a medida que varias tecnologías
facilitaron la construcción de dispositivos electrónicos más pequeños y confiables. La
primera de esas mejoras vino con el advenimiento del transistor. Los CPU
transistorizados durante los años 1950 y los años 1960 no tuvieron que ser
construidos con elementos de conmutación abultados, no fiables, y frágiles, como los
tubos de vacío y los relés eléctricos. Con esta mejora, fueron construidos CPU más
complejos y más confiables sobre una o varias tarjetas de circuito impreso que
contenían componentes discretos (individuales).
Durante este período, ganó popularidad un método de fabricar muchos transistores en
un espacio compacto. El circuito integrado (IC) permitió que una gran cantidad de
transistores fueran fabricados en una simple oblea basada en semiconductor o "chip".
64
Al principio, solamente circuitos digitales muy básicos, no especializados, como las
puertas NOR fueron miniaturizados en IC. Los CPU basadas en estos IC de "bloques
de construcción" generalmente son referidos como dispositivos de pequeña escala de
integración "small-scale integration" (SSI). Los circuitos integrados SSI, como los
usados en el computador guía del Apollo (Apollo Guidance Computer), usualmente
contenían transistores que se contaban en números de múltiplos de diez. Construir un
CPU completo usando IC SSI requería miles de chips individuales, pero todavía
consumía mucho menos espacio y energía que diseños anteriores de transistores
discretos. A medida que la tecnología microelectrónica avanzó, en los IC fue colocado
un número creciente de transistores, disminuyendo así la cantidad de IC individuales
necesarios para un CPU completo. Los circuitos integrados MSI y el LSI (de mediana y
gran escala de integración) aumentaron el número de transistores a cientos, y luego a
miles.
En 1964, IBM introdujo su arquitectura de computador System/360, que fue usada en
una serie de computadores que podían ejecutar los mismos programas con velocidades
y desempeños diferentes. Esto fue significativo en un tiempo en que la mayoría de las
computadoras electrónicas eran incompatibles entre sí, incluso las hechas por el
mismo fabricante. Para facilitar esta mejora, IBM utilizó el concepto de
microprograma, a menudo llamado "microcódigo", ampliamente usado aún en los CPU
modernos . La arquitectura System/360 era tan popular que dominó el mercado del
mainframe durante las siguientes décadas y dejó una herencia que todavía aún perdura
en las computadoras modernas, como el IBM zSeries. En el mismo año de 1964, Digital
Equipment Corporation (DEC) introdujo otro computador que sería muy influyente,
dirigido a los mercados científicos y de investigación, el PDP-8. DEC introduciría más
adelante la muy popular línea del PDP-11, que originalmente fue construido con IC SSI
pero eventualmente fue implementado con componentes LSI cuando se convirtieron en
prácticos. En fuerte contraste con sus precursores hechos con tecnología SSI y MSI,
la primera implementación LSI del PDP-11 contenía un CPU integrado únicamente por
65
cuatro circuitos integrados LSI .
Los computadores basados en transistores tenían varias ventajas frente a sus
predecesores. Aparte de facilitar una creciente fiabilidad y un menor consumo de
energía, los transistores también permitían al CPU operar a velocidades mucho más
altas debido al corto tiempo de conmutación de un transistor en comparación a un tubo
o relé. Gracias tanto a esta creciente fiabilidad como al dramático incremento de
velocidad de los elementos de conmutación que por este tiempo eran casi
exclusivamente transistores, se fueron alcanzando frecuencias de reloj del CPU de
decenas de megahertz. Además, mientras que los CPU de transistores discretos y
circuitos integrados se usaban comúnmente, comenzaron a aparecer los nuevos diseños
de alto rendimiento como procesadores vectoriales SIMD (Single Instruction Multiple
Data) (Simple Instrucción Múltiples Datos). Estos primeros diseños experimentales
dieron lugar más adelante a la era de las supercomputadoras especializadas, como los
hechos por Cray Inc.
MICROPROCESADORES
66
Microprocesador Intel 80486DX2 en un paquete PGA de cerámica
Artículo principal: Microprocesador
Desde la introducción del primer microprocesador, el Intel 4004, en 1971, y del
primer microprocesador ampliamente usado, el Intel 8080, en 1974, esta clase de
CPUs ha desplazado casi totalmente el resto de los métodos de implementación de la
Unidad Central de Proceso. Los fabricantes de mainframes y minicomputadores de ese
tiempo lanzaron programas de desarrollo de IC propietarios para actualizar sus más
viejas arquitecturas de computador, y eventualmente produjeron microprocesadores
con conjuntos de instrucciones que eran compatibles hacia atrás con sus más viejos
hardwares y software. Combinado con el advenimiento y el eventual vasto éxito del
ahora ubicuo computadora personal, el término "CPU" es aplicado ahora casi
exclusivamente a los microprocesadores.
Las generaciones previas de CPUs fueron implementadas como componentes discretos
y numerosos circuitos integrados de pequeña escala de integración en una o más
tarjetas de circuitos. Por otro lado, los microprocesadores son CPUs fabricados con
un número muy pequeño de IC; usualmente solo uno. El tamaño más pequeño del CPU,
como resultado de estar implementado en una simple pastilla, significa tiempos de
67
conmutación más rápidos debido a factores físicos como el decrecimiento de la
capacitancia parásita de las puertas. Esto ha permitido que los microprocesadores
síncronos tengan tiempos de reloj con un rango de decenas de megahercios a varios
gigahercios. Adicionalmente, como ha aumentado la capacidad de construir
transistores excesivamente pequeños en un IC, la complejidad y el número de
transistores en un simple CPU también se ha incrementado dramáticamente. Esta
tendencia ampliamente observada es descrita por la ley de Moore, que ha demostrado
hasta la fecha, ser una predicción bastante exacta del crecimiento de la complejidad
de los CPUs y otros IC.
Mientras que, en los pasados sesenta años han cambiado drásticamente, la
complejidad, el tamaño, la construcción, y la forma general del CPU, es notable que el
diseño y el funcionamiento básico no ha cambiado demasiado. Casi todos los CPU
comunes de hoy se pueden describir con precisión como máquinas de programa
almacenado de von Neumann.
A medida que la ya mencionada ley del Moore continúa manteniéndose verdadera, se
han presentado preocupaciones sobre los límites de la tecnología de transistor del
circuito integrado. La miniaturización extrema de puertas electrónicas está causando
los efectos de fenómenos que se vuelven mucho más significativos, como la electro
migración, y el subumbral de pérdida. Estas más nuevas preocupaciones están entre los
muchos factores que hacen a investigadores estudiar nuevos métodos de computación
como la computadora cuántica, así como ampliar el uso de paralelismo, y otros métodos
que extienden la utilidad del modelo clásico de von Neumann.
Operación del CPU
La operación fundamental de la mayoría de los CPU, es ejecutar una secuencia de
instrucciones almacenadas llamadas "programa". El programa es representado por una
serie de números que se mantienen en una cierta clase de memoria de computador.
68
Hay cuatro pasos que casi todos los CPU de arquitectura de von Neumann usan en su
operación: fetch, decode, execute, y writeback, (leer, decodificar, ejecutar, y
escribir).
Diagrama mostrando como es decodificada una instrucción del MIPS32. (MIPS
Technologies 2005)
El primer paso, leer (fetch), implica el recuperar una instrucción, (que es
representada por un número o una secuencia de números), de la memoria de programa.
La localización en la memoria del programa es determinada por un contador de
programa (PC), que almacena un número que identifica la posición actual en el
programa. En otras palabras, el contador de programa indica al CPU, el lugar de la
instrucción en el programa actual. Después de que se lee una instrucción, el Contador
de Programa es incrementado por la longitud de la palabra de instrucción en términos
de unidades de memoria.[2] Frecuentemente la instrucción a ser leída debe ser
recuperada de memoria relativamente lenta, haciendo detener al CPU mientras espera
que la instrucción sea retornada. Este problema es tratado en procesadores modernos
en gran parte por los cachés y las arquitecturas pipeline (ver abajo).
La instrucción que el CPU lee desde la memoria es usada para determinar qué deberá
hacer el CPU. En el paso de decodificación, la instrucción es dividida en partes que
tienen significado para otras unidades del CPU. La manera en que el valor de la
instrucción numérica es interpretado está definida por la arquitectura del conjunto de
instrucciones (el ISA) del CPU.[3] A menudo, un grupo de números en la instrucción,
69
llamados opcode, indica qué operación realizar. Las partes restantes del número
usualmente proporcionan información requerida para esa instrucción, como por
ejemplo, operandos para una operación de adición. Tales operandos se pueden dar
como un valor constante (llamado valor inmediato), o como un lugar para localizar un
valor, que según lo determinado por algún modo de dirección, puede ser un registro o
una dirección de memoria. En diseños más viejos las unidades del CPU responsables de
decodificar la instrucción eran dispositivos de hardware fijos. Sin embargo, en CPUs e
ISAs más abstractos y complicados, es frecuentemente usado un microprograma para
ayudar a traducir instrucciones en varias señales de configuración para el CPU. Este
microprograma es a veces reescribible de tal manera que puede ser modificado para
cambiar la manera en que el CPU decodifica instrucciones incluso después de que haya
sido fabricado.
Diagrama de bloques de un CPU simple
Después de los pasos de lectura y decodificación, es llevado a cabo el paso de la
ejecución de la instrucción. Durante este paso, varias unidades del CPU son
70
conectadas de tal manera que ellas pueden realizar la operación deseada. Si, por
ejemplo, una operación de adición fue solicitada, una unidad aritmético lógica (ALU)
será conectada a un conjunto de entradas y un conjunto de salidas. Las entradas
proporcionan los números a ser sumados, y las salidas contendrán la suma final. La ALU
contiene la circuitería para realizar operaciones simples de aritmética y lógica en las
entradas, como adición y operaciones de bits (bitwise). Si la operación de adición
produce un resultado demasiado grande para poder ser manejado por el CPU, también
puede ser ajustada una bandera (flag) de desbordamiento aritmético localizada en un
registro de banderas (ver abajo la sección sobre rango de números enteros).
El paso final, la escritura (writeback), simplemente "escribe" los resultados del paso
de ejecución a una cierta forma de memoria. Muy a menudo, los resultados son
escritos a algún registro interno del CPU para acceso rápido por subsecuentes
instrucciones. En otros casos los resultados pueden ser escritos a una memoria
principal más lenta pero más barata y más grande. Algunos tipos de instrucciones
manipulan el contador de programa en lugar de directamente producir datos de
resultado. Éstas son llamadas generalmente "saltos" (jumps) y facilitan
comportamientos como |bucles (loops), la ejecución condicional de programas (con el
uso de saltos condicionales), y funciones en programas.[4] Muchas instrucciones
también cambiarán el estado de dígitos en un registro de "banderas". Estas banderas
pueden ser usadas para influenciar cómo se comporta un programa, puesto que a
menudo indican el resultado de varias operaciones. Por ejemplo, un tipo de instrucción
de "comparación" considera dos valores y fija un número, en el registro de banderas,
de acuerdo a cuál es el mayor. Entonces, esta bandera puede ser usada por una
posterior instrucción de salto para determinar el flujo de programa.
Después de la ejecución de la instrucción y la escritura de los datos resultantes, el
proceso entero se repite con el siguiente ciclo de instrucción, normalmente leyendo la
siguiente instrucción en secuencia debido al valor incrementado en el contador de
71
programa. Si la instrucción completada era un salto, el contador de programa será
modificado para contener la dirección de la instrucción a la cual se saltó, y la
ejecución del programa continúa normalmente. En CPUs más complejos que el descrito
aquí, múltiples instrucciones pueden ser leídas, decodificadas, y ejecutadas
simultáneamente. Esta sección describe lo que es referido generalmente como el
"entubado RISC clásico" (Classic RISC pipeline), que de hecho es bastante común
entre los CPU simples usados en muchos dispositivos electrónicos, a menudo llamados
microcontroladores.
Diseño e implementación
Artículo principal: Diseño del CPU
Prerrequisitos
Arquitectura informática
Circuitos digitales
Rango de enteros
La manera en que un CPU representa los números es una opción de diseño que afecta
las más básicas formas en que el dispositivo funciona. Algunas de las primeras
calculadoras digitales usaron, para representar números internamente, un modelo
eléctrico del sistema de numeración decimal común (base diez). Algunas otras
computadoras han usado sistemas de numeración más exóticos como el ternario (base
tres). Casi todos los CPU modernos representan los números en forma binaria, en
donde cada dígito es representado por una cierta cantidad física de dos valores, como
un voltaje "alto" o "bajo".
72
Microprocesador MOS 6502 en un dual in-line package (encapasulado en doble línea),
un diseño extremadamente popular de 8 bits.
Con la representación numérica están relacionados el tamaño y la precisión de los
números que un CPU puede representar. En el caso de un CPU binario, un bit se refiere
a una posición significativa en los números con que trabaja un CPU. El número de bits
(o de posiciones numéricas, o dígitos) que un CPU usa para representar los números, a
menudo se llama "tamaño de la palabra", "ancho de bits", "ancho de ruta de datos", o
"precisión del número entero" cuando se ocupa estrictamente de números enteros (en
oposición a números de coma flotante). Este número difiere entre las arquitecturas, y
a menudo dentro de diferentes unidades del mismo CPU. Por ejemplo, un CPU de 8 bits
maneja un rango de números que pueden ser representados por ocho dígitos binarios,
cada dígito teniendo dos valores posibles, y en combinación los 8 bits teniendo 28 ó
256 números discretos. En efecto, el tamaño del número entero fija un límite de
hardware en el rango de números enteros que el software corre y que el CPU puede
usar directamente.
El rango del número entero también puede afectar el número de posiciones en
memoria que el CPU puede direccionar (localizar). Por ejemplo, si un CPU binario utiliza
32 bits para representar una dirección de memoria, y cada dirección de memoria
representa a un octeto (8 bits), la cantidad máxima de memoria que el CPU puede
direccionar es 232 octetos, o 4 GB. Ésta es una vista muy simple del espacio de
dirección del CPU, y muchos diseños modernos usan métodos de dirección mucho más
complejos como paginación para localizar más memoria que su rango entero permitiría
73
con un espacio de dirección plano.
Niveles más altos del rango de números enteros requieren más estructuras para
manejar los dígitos adicionales, y por lo tanto, más complejidad, tamaño, uso de
energía, y generalmente costo. Por ello, no es del todo infrecuente, ver
microcontroladores de 4 y 8 bits usados en aplicaciones modernas, aun cuando están
disponibles CPU con un rango mucho más alto (de 16, 32, 64, e incluso 128 bits). Los
microcontroladores más simples son generalmente más baratos, usan menos energía, y
por lo tanto disipan menos calor. Todo esto pueden ser consideraciones de diseño
importantes para los dispositivos electrónicos. Sin embargo, en aplicaciones del
extremo alto, los beneficios producidos por el rango adicional, (más a menudo el
espacio de dirección adicional), son más significativos y con frecuencia afectan las
opciones del diseño. Para ganar algunas de las ventajas proporcionadas por las
longitudes de bits tanto más bajas, como más altas, muchas CPUs están diseñadas con
anchos de bit diferentes para diferentes unidades del dispositivo. Por ejemplo, el IBM
System/370 usó un CPU que fue sobre todo de 32 bits, pero usó precisión de 128 bits
dentro de sus unidades de coma flotante para facilitar mayor exactitud y rango de
números de coma flotante. Muchos diseños posteriores de CPU usan una mezcla de
ancho de bits similar, especialmente cuando el procesador está diseñado para usos de
propósito general donde se requiere un razonable equilibrio entre la capacidad de
números enteros y de coma flotante.
Frecuencia de reloj
Artículo principal: Frecuencia de reloj
La mayoría de los CPU, y de hecho, la mayoría de los dispositivos de lógica secuencial,
son de naturaleza síncrona.[8] Es decir, están diseñados y operan en función de una
señal de sincronización. Esta señal, conocida como señal de reloj, usualmente toma la
forma de una onda cuadrada periódica. Calculando el tiempo máximo en que las señales
74
eléctricas pueden moverse en las varias bifurcaciones de los muchos circuitos de un
CPU, los diseñadores pueden seleccionar un período apropiado para la señal del reloj.
Este período debe ser más largo que la cantidad de tiempo que toma a una señal
moverse, o propagarse, en el peor de los casos. Al fijar el período del reloj a un valor
bastante mayor sobre el retardo de la propagación del peor caso, es posible diseñar
todo el CPU y la manera que mueve los datos alrededor de los "bordes" de la subida y
bajada de la señal del reloj. Esto tiene la ventaja de simplificar el CPU
significativamente, tanto en una perspectiva de diseño, como en una perspectiva de
cantidad de componentes. Sin embargo, esto también tiene la desventaja que todo el
CPU debe esperar por sus elementos más lentos, aun cuando algunas unidades de la
misma son mucho más rápidas. Esta limitación ha sido compensada en gran parte por
varios métodos de aumentar el paralelismo del CPU (ver abajo).
Sin embargo, las solamente mejoras arquitectónicas no solucionan todas las
desventajas de CPUs globalmente síncronas. Por ejemplo, una señal de reloj está
sujeta a los retardos de cualquier otra señal eléctrica. Velocidades de reloj más altas
en CPUs cada vez más complejas hacen más difícil de mantener la señal del reloj en
fase (sincronizada) a través de toda la unidad. Esto ha conducido que muchos CPU
modernos requieran que se les proporcione múltiples señales de reloj idénticas, para
evitar retardar una sola señal lo suficiente significativamente como para hacer al CPU
funcionar incorrectamente. Otro importante problema cuando la velocidad del reloj
aumenta dramáticamente, es la cantidad de calor que es disipado por el CPU. La señal
del reloj cambia constantemente, provocando la conmutación de muchos componentes
(cambio de estado) sin importar si están siendo usados en ese momento. En general, un
componente que está cambiando de estado, usa más energía que un elemento en un
estado estático. Por lo tanto, a medida que la velocidad del reloj aumenta, así lo hace
también la disipación de calor, causando que el CPU requiera soluciones de
enfriamiento más efectivas.
75
Un método de tratar la conmutación de componentes innecesarios se llama el clock
gating, que implica apagar la señal del reloj a los componentes innecesarios,
efectivamente desactivándolos. Sin embargo, esto es frecuentemente considerado
como difícil de implementar y por lo tanto no ve uso común afuera de diseños de muy
baja potencia. Otro método de tratar algunos de los problemas de una señal global de
reloj es la completa remoción de la misma. Mientras que quitar la señal global del reloj
hace, de muchas maneras, considerablemente más complejo el proceso del diseño, en
comparación con diseños síncronos similares, los diseños asincrónicos (o sin reloj)
tienen marcadas ventajas en el consumo de energía y la disipación de calor. Aunque
algo infrecuente, CPUs completas se han construido sin utilizar una señal global de
reloj. Dos notables ejemplos de esto son el AMULET, que implementa la arquitectura
del ARM, y el MiniMIPS, compatible con el MIPS R3000. En lugar de remover
totalmente la señal del reloj, algunos diseños de CPU permiten a ciertas unidades del
dispositivo ser asincrónicas, como por ejemplo, usar ALUs asincrónicas en conjunción
con pipelining superescalar para alcanzar algunas ganancias en el desempeño
aritmético. Mientras que no está completamente claro si los diseños totalmente
asincrónicos pueden desempeñarse a un nivel comparable o mejor que sus contrapartes
síncronas, es evidente que por lo menos sobresalen en las más simples operaciones
matemáticas. Esto, combinado con sus excelentes características de consumo de
energía y disipación de calor, los hace muy adecuados para sistemas embebidos .
Paralelismo
Artículo principal: Computación paralela
76
Modelo de un CPU subescalar. Note que toma quince ciclos para terminar tres
instrucciones.
La descripción de la operación básica de un CPU ofrecida en la sección anterior
describe la forma más simple que puede tomar un CPU. Este tipo de CPU, usualmente
referido como subescalar, opera sobre y ejecuta una sola instrucción con una o dos
piezas de datos a la vez.
Este proceso da lugar a una ineficacia inherente en CPUs subescalares. Puesto que
solamente una instrucción es ejecutada a la vez, todo el CPU debe esperar que esa
instrucción se complete antes de proceder a la siguiente instrucción. Como resultado,
el CPU subescalar queda "paralizado" en instrucciones que toman más de un ciclo de
reloj para completar su ejecución. Incluso la adición de una segunda unidad de
ejecución (ver abajo) no mejora mucho el desempeño. En lugar de un camino quedando
congelado, ahora dos caminos se paralizan y aumenta el número de transistores no
usados. Este diseño, en donde los recursos de ejecución del CPU pueden operar con
solamente una instrucción a la vez, solo puede, posiblemente, alcanzar el desempeño
escalar (una instrucción por ciclo de reloj). Sin embargo, el desempeño casi siempre es
subescalar (menos de una instrucción por ciclo).
Las tentativas de alcanzar un desempeño escalar y mejor, han resultado en una
variedad de metodologías de diseño que hacen comportarse al CPU menos linealmente
y más en paralelo. Cuando se refiere al paralelismo en los CPU, generalmente son
usados dos términos para clasificar estas técnicas de diseño.
El paralelismo a nivel de instrucción, en inglés Instruction Level Parallelism (ILP),
busca aumentar la tasa en la cual las instrucciones son ejecutadas dentro de un CPU,
es decir, aumentar la utilización de los recursos de ejecución en la pastilla
El paralelismo a nivel de hilo de ejecución, en inglés thread level parallelism (TLP), que
se propone incrementar el número de hilos (efectivamente programas individuales) que
77
un CPU pueda ejecutar simultáneamente.
Cada metodología se diferencia tanto en las maneras en las que están implementadas,
como en la efectividad relativa que producen en el aumento del desempeño del CPU
para una aplicación.
ILP: Entubado de instrucción y arquitectura superescalar
Artículo principal: Entubado de instrucción y superescalar
Tubería básica de cinco etapas. En el mejor de los casos, esta tubería puede sostener
un ratio de completado de una instrucción por ciclo.
Uno de los más simples métodos usados para lograr incrementar el paralelismo es
comenzar los primeros pasos de leer y decodificar la instrucción antes de que la
instrucción anterior haya terminado de ejecutarse. Ésta es la forma más simple de una
técnica conocida como instruction pipelining (entubado de instrucción), y es utilizada
en casi todos los CPU de propósito general modernos. Al dividir la ruta de ejecución en
etapas discretas, la tubería permite que más de una instrucción sea ejecutada en
cualquier tiempo. Esta separación puede ser comparada a una línea de ensamblaje, en
la cual una instrucción es hecha más completa en cada etapa hasta que sale de la
tubería de ejecución y es retirada.
Sin embargo, la tubería introduce la posibilidad de una situación donde es necesario
terminar el resultado de la operación anterior para completar la operación siguiente;
una condición llamada a menudo como conflicto de dependencia de datos. Para hacer
78
frente a esto, debe ser tomado un cuidado adicional para comprobar estas clases de
condiciones, y si esto ocurre, se debe retrasar una porción de la tubería de
instrucción. Naturalmente, lograr esto requiere circuitería adicional, los procesadores
entubados son más complejos que los subescalares, pero no mucho. Un procesador
entubado puede llegar a ser casi completamente escalar, solamente inhibido por las
abruptas paradas de la tubería (una instrucción durando más de un ciclo de reloj en
una etapa).
Tubería superescalar simple. Al leer y despachar dos instrucciones a la vez, un máximo
de dos instrucciones por ciclo pueden ser completadas.
Una mejora adicional sobre la idea del entubado de instrucción (instruction pipelining)
condujo al desarrollo de un método que disminuye incluso más el tiempo ocioso de los
componentes del CPU. Diseños que se dice que son superescalares incluyen una larga
tubería de instrucción y múltiples unidades de ejecución idénticas. En una tubería
superescalar, múltiples instrucciones son leídas y pasadas a un despachador, que
decide si las instrucciones se pueden o no ejecutar en paralelo (simultáneamente). De
ser así, son despachadas a las unidades de ejecución disponibles, dando por resultado
la capacidad para que varias instrucciones sean ejecutadas simultáneamente. En
general, cuanto más instrucciones un CPU superescalar es capaz de despachar
simultáneamente a las unidades de ejecución en espera, más instrucciones serán
79
completadas en un ciclo dado.
La mayor parte de la dificultad en el diseño de una arquitectura superescalar de CPU
descansa en crear un despachador eficaz. El despachador necesita poder determinar
rápida y correctamente si las instrucciones pueden ejecutarse en paralelo, tan bien
como despacharlas de una manera que mantenga ocupadas tantas unidades de
ejecución como sea posible. Esto requiere que la tubería de instrucción sea llenada tan
a menudo como sea posible y se incrementa la necesidad, en las arquitecturas
superescalares, de cantidades significativas de caché de CPU. Esto también crea
técnicas para evitar peligros como la predicción de bifurcación, ejecución
especulativa, y la ejecución fuera de orden, cruciales para mantener altos niveles de
desempeño.
La predicción de bifurcación procura predecir qué rama (o trayectoria) tomará una
instrucción condicional, el CPU puede minimizar el número de tiempos que toda la
tubería debe esperar hasta que sea completada una instrucción condicional.
La ejecución especulativa frecuentemente proporciona aumentos modestos del
desempeño al ejecutar las porciones de código que pueden o no ser necesarias después
de que una operación condicional termine.
La ejecución fuera de orden cambia en algún grado el orden en el cual son ejecutadas
las instrucciones para reducir retardos debido a las dependencias de los datos.
En el caso donde una porción del CPU es superescalar y una parte no lo es, la parte que
no es superescalar sufre en el desempeño debido a las paradas de horario. El Intel
Pentium original (P5) tenía dos ALUs superescalares que podían aceptar, cada una, una
instrucción por ciclo de reloj, pero su FPU no podía aceptar una instrucción por ciclo
de reloj. Así el P5 era superescalar en la parte de números enteros pero no era
superescalar de números de coma (o punto [decimal]) flotante. El sucesor a la
arquitectura del Pentium de Intel, el P6, agregó capacidades superescalares a sus
80
funciones de coma flotante, y por lo tanto produjo un significativo aumento en el
desempeño de este tipo de instrucciones.
El entubado simple y el diseño superescalar aumentan el ILP de un CPU al permitir a un
solo procesador completar la ejecución de instrucciones en ratios que sobrepasan una
instrucción por ciclo (IPC).[11] La mayoría de los modernos diseños de CPU son por lo
menos algo superescalares, y en la última década, casi todos los diseños de CPU de
propósito general son superescalares. En los últimos años algo del énfasis en el diseño
de computadores de alto ILP se ha movido del hardware del CPU hacia su interface de
software, o ISA. La estrategia de la muy larga palabra de instrucción, very long
instruction word (VLIW), causa a algún ILP a ser implícito directamente por el
software, reduciendo la cantidad de trabajo que el CPU debe realizar para darle un
empuje significativo al ILP y por lo tanto reducir la complejidad del diseño.
TLP: ejecución simultánea de hilos
Otra estrategia comúnmente usada para aumentar el paralelismo de los CPU es incluir
la habilidad de correr múltiples hilos (programas) al mismo tiempo. En general, CPUs
con alto TLP han estado en uso por mucho más tiempo que los de alto ILP. Muchos de
los diseños en los que Seymour Cray fue pionero durante el final de los años 1970 y los
años1980 se concentraron en el TLP como su método primario de facilitar enormes
capacidades de computación (para su tiempo). De hecho, el TLP, en la forma de
mejoras en múltiples hilos de ejecución, estuvo en uso tan temprano como desde los
años 1950 . En el contexto de diseño de procesadores individuales, las dos
metodologías principales usadas para lograr el TLP son, multiprocesamiento a nivel de
chip, en inglés chip-level multiprocessing (CMP), y el multihilado simultáneo, en inglés
simultaneous multithreading (SMT). En un alto nivel, es muy común construir
computadores con múltiples CPU totalmente independientes en arreglos como
multiprocesamiento simétrico (symmetric multiprocessing (SMP)) y acceso de memoria
no uniforme (Non-Uniform Memory Access (NUMA)). Aunque son usados medios muy
81
diferentes, todas estas técnicas logran la misma meta: incrementar el número de hilos
que el CPU(s) puede correr en paralelo.
Los métodos de paralelismo CMP y de SMP son similares uno del otro y lo más directo.
Éstos implican algo más conceptual que la utilización de dos o más CPU completos y
CPU independientes. En el caso del CMP, múltiples "núcleos" de procesador son
incluidos en el mismo paquete, a veces en el mismo circuito integrado. Por otra parte,
el SMP incluye múltiples paquetes independientes. NUMA es algo similar al SMP pero
usa un modelo de acceso a memoria no uniforme. Esto es importante para los
computadores con muchos CPU porque el tiempo de acceso a la memoria, de cada
procesador, es agotado rápidamente con el modelo de memoria compartido del SMP,
resultando en un significativo retraso debido a los CPU esperando por la memoria. Por
lo tanto, NUMA es considerado un modelo mucho más escalable, permitiendo con éxito
que en un computador sean usados muchos más CPU que los que pueda soportar de una
manera factible el SMP. El SMT se diferencia en algo de otras mejoras de TLP en que
el primero procura duplicar tan pocas porciones del CPU como sea posible. Mientras es
considerada una estrategia TLP, su implementación realmente se asemeja más a un
diseño superescalar, y de hecho es frecuentemente usado en microprocesadores
superescalares, como el POWER5 de IBM. En lugar de duplicar todo el CPU, los
diseños SMT solamente duplican las piezas necesarias para lectura, decodificación, y
despacho de instrucciones, así como cosas como los registros de propósito general.
Esto permite a un CPU SMT mantener sus unidades de ejecución ocupadas más
frecuentemente al proporcionarles las instrucciones desde dos diferentes hilos de
software. Una vez más esto es muy similar al método superescalar del ILP, pero
ejecuta simultáneamente instrucciones de múltiples hilos en lugar de ejecutar
concurrentemente múltiples instrucciones del mismo hilo.
Procesadores vectoriales y el SIMD
Artículos principales: Procesador vectorial y SIMD
82
Un menos común pero cada vez más importante paradigma de CPU (y de hecho, de
computación en general) trata con vectores. Los procesadores de los que se ha
hablado anteriormente son todos referidos como cierto tipo de dispositivo escalar.[14]
Como implica su nombre, los procesadores vectoriales se ocupan de múltiples piezas de
datos en el contexto de una instrucción, esto contrasta con los procesadores
escalares, que tratan una pieza de dato por cada instrucción. Estos dos esquemas de
ocuparse de los datos son generalmente referidos respectivamente como SISD
(Single Instruction, Single Data|) (Simple Instrucción, Simple Dato) y SIMD (Single
Instruction, Múltiple Data) (Simple Instrucción, Múltiples Datos). La gran utilidad en
crear CPUs que se ocupen de vectores de datos radica en la optimización de tareas
que tienden a requerir la misma operación, por ejemplo, una suma, o un producto
escalar, a ser realizado en un gran conjunto de datos. Algunos ejemplos clásicos de
este tipo de tareas son las aplicaciones multimedia (imágenes, vídeo, y sonido), así
como muchos tipos de tareas científicas y de ingeniería. Mientras que un CPU escalar
debe completar todo el proceso de leer, decodificar, y ejecutar cada instrucción y
valor en un conjunto de datos, un CPU vectorial puede realizar una simple operación en
un comparativamente grande conjunto de datos con una sola instrucción. Por supuesto,
esto es solamente posible cuando la aplicación tiende a requerir muchos pasos que
apliquen una operación a un conjunto grande de datos.
La mayoría de los primeros CPU vectoriales, como el Cray-1, fueron asociados casi
exclusivamente con aplicaciones de investigación científica y criptografía. Sin
embargo, a medida que la multimedia se desplazó en gran parte a medios digitales, ha
llegado a ser significativa la necesidad de una cierta forma de SIMD en CPUs de
propósito general. Poco después de que comenzara a ser común incluir unidades de
coma flotante en procesadores de uso general, también comenzaron a aparecer
especificaciones e implementaciones de unidades de ejecución SIMD para los CPU de
uso general. Algunas de estas primeras especificaciones SIMD, como el MMX de
Intel, fueron solamente para números enteros. Esto demostró ser un impedimento
83
significativo para algunos desarrolladores de software, ya que muchas de las
aplicaciones que se beneficiaban del SIMD trataban sobre todo con números de coma
flotante. Progresivamente, éstos primeros diseños fueron refinados y rehechos en
alguna de las comunes, modernas especificaciones SIMD, que generalmente están
asociadas a un ISA. Algunos ejemplos modernos notables son el SSE de Intel y el
AltiVec relacionado con el PowerPC (también conocido como VMX).[15
MEMORIA RAM:
Memoria de acceso aleatorio
La memoria de acceso aleatorio (en inglés: random-access memory, cuyo acrónimo es
RAM) es la memoria desde donde el procesador recibe las instrucciones y guarda los
resultados.
Nomenclatura
La frase memoria RAM se utiliza frecuentemente para referirse a los módulos de
memoria que se usan en los computadores personales y servidores. En el sentido
estricto, los módulos de memoria contienen un tipo, entre varios de memoria de acceso
aleatorio, ya que las ROM, memorias Flash, caché (SRAM), los registros en
procesadores y otras unidades de procesamiento también poseen la cualidad de
presentar retardos de acceso iguales para cualquier posición. Los módulos de RAM son
la presentación comercial de este tipo de memoria, que se compone de circuitos
integrados soldados sobre un circuito impreso, en otros dispositivos como las consolas
de videojuegos, esa misma memoria va soldada sobre la placa principal.
Su capacidad se mide en bytes, y dada su naturaleza siempre binaria, sus múltiplos
serán representados en múltiplos binarios tales como Kigabyte, Megabyte, Gigabyte...
Y así sucesivamente desde Giga, Tera, Hexa y Zota.
Historia
84
La historia está marcada por la necesidad del volumen de datos. Originalmente, los
datos eran programados por el usuario con movimientos de interruptores. Se puede
decir que el movimiento de datos era bit a bit. Las necesidades apuntaron a una
automatización y se crearon lo que se denomina byte de palabra. Desde una consola
remota, se trasladaban los interruptores asignándoles valores de letra, que
correspondían a una orden de programación al microprocesador. Así, si se deseaba
programar una orden NOT con dos direcciones distintas de memoria, solo se tenía que
activar el grupo de interruptores asociados a la letra N, a la letra O y a la letra T.
Seguidamente, se programaban las direcciones de memoria sobre las cuales recibirían
dicho operador lógico, para después procesar el resultado. Los interruptores
evolucionaron asignándoles una tabla de direccionamiento de 16x16 bytes, en donde se
daban 256 valores de byte posibles (la actual tabla ASCII). En dicha tabla, se
traducen lo que antes costaba activar 8 interruptores por letra, a una pulsación por
letra (de cara al recurso humano, un ahorro en tiempos. Una sola pulsación, predisponía
1 byte en RAM... o en otras palabras, cambiaba la posición de 8 interruptores con una
sola pulsación). Se usó el formato de máquina de escribir, para representar todo el
alfabeto latino, necesario para componer palabras en inglés; así como los símbolos
aritméticos y lógicos que permitían la escritura de un programa directamente en
memoria RAM a través de una consola o teclado.
En origen, los programadores no veían en tiempo real lo que tecleaban, teniendo que
imprimir de cuando en cuando el programa residente en memoria RAM y haciendo uso
del papel a la hora de ir modificando o creando un nuevo programa. Dado que el papel
era lo más accesible, los programas comenzaron a imprimirse en un soporte de celulosa
más resistente, creando lo que se denominó Tarjeta perforada. Así pues, los
programas constaban de una o varias tarjetas perforadas, que se almacenaban en
archivadores de papel con las típicas anillas de sujeción. Dichas perforaciones, eran
leídas por un dispositivo de entrada, que no era muy diferente al teclado y que
constaba de pulsadores que eran activados o desactivados, dependiendo de si la
85
tarjeta en la posición de byte, contenía una perforación o no. Cada vez que se encendía
la máquina, requería de la carga del programa que iba a ejecutar.
Dado que los datos en memoria son de 0 o 1, que esas posiciones físicamente
representan el estado de un conmutador, que la estimulación del conmutador
evolucionó a pulsos electromagnéticos, el almacenamiento de los programas era
cuestión de tiempo que su almacenamiento pasara del papel a un soporte lógico, tal
como las cintas de almacenamiento. Las cintas eran secuenciales, y la composición de la
cinta era de un material magneto estática; bastaba una corriente Gauss para cambiar
las polaridades del material. Dado que el material magnético puede tener polaridad
norte o sur, era ideal para representar el 0 o el 1. Así, ahora, cargar un programa no
era cuestión de estar atendiendo un lector de tarjetas en el cual se debían de ir
metiendo de forma interminable tarjetas perforadas que apenas podían almacenar
apenas unos bytes. Ahora, los dispositivos electromagnéticos secuenciales requerían la
introducción de la cinta y la pulsación de una tecla para que se cargara todo el
programa de inicio a fin, de forma secuencial. Los accesos aleatorios no aparecieron
hasta la aparición del disco duro y el Floppy. Con estos medios, un cabezal lector se
deslizaba por la superficie en movimiento, si dicho movimiento tenía como
consecuencia la lectura de un valor N-N (norte-norte) no generaba corriente, tampoco
si era S-S (Sur-Sur), por el contrario, si era N-S o S-N sí creaba una corriente, que
era captada por el circuito que mandaba el dato a la memoria RAM.
Toda esta automatización requiso del diseño de un sistema operativo, o de un área de
gestión del recurso para su automatización. Estos sistemas requerían de un área de
memoria reservada, en origen de 64 Kb (Capacidades de representación de texto en
monitor monocromo), para irse ampliando a 128 Kb (Monocromo con capacidades
gráficas), 256 (Texto y gráficos a dos colores), 512 (Texto y gráficos a 4 colores) y
los tradicionales 640 Kb (Texto y gráficos a 16 colores). Esa memoria se denominó
MEMORIA BASE.
86
Es en esta parte del tiempo, en donde se puede hablar de un área de trabajo para la
mayor parte del software de un computador. La RAM continua siendo volátil por lo que
posee la capacidad de perder la información una vez que se agote su fuente de
energía. Existe una memoria intermedia entre el procesador y la RAM, llamada caché,
pero ésta sólo es una copia (de acceso rápido) de la memoria principal (típicamente
discos duros) almacenada en los módulos de RAM.
4MiB de memoria RAM para un computador VAX de finales de los 70. Los integrados
de memoria DRAM están agrupados arriba a derecha e izquierda.
Módulos de memoria tipo SIPP instalados directamente sobre la placa base.
La denominación “de Acceso aleatorio” surgió para diferenciarlas de las memoria de
acceso secuencial, debido a que en los comienzos de la computación, las memorias
87
principales (o primarias) de las computadoras eran siempre de tipo RAM y las
memorias secundarias (o masivas) eran de acceso secuencial (unidades de cinta o
tarjetas perforadas). Es frecuente pues que se hable de memoria RAM para hacer
referencia a la memoria principal de una computadora, pero actualmente la
denominación no es precisa.
Uno de los primeros tipos de memoria RAM fue la memoria de núcleo magnético,
desarrollada entre 1949 y 1952 y usada en muchos computadores hasta el desarrollo
de circuitos integrados a finales de los años 60 y principios de los 70. Antes que eso,
las computadoras usaban relés y líneas de retardo de varios tipos construidas con
tubos de vacío para implementar las funciones de memoria principal con o sin acceso
aleatorio.
En 1969 fueron lanzadas una de las primeras memorias RAM basadas en
semiconductores de silicio por parte de Intel con el integrado 3101 de 64 bits de
memoria y para el siguiente año se presentó una memoria DRAM de 1 Kibibyte,
referencia 1103 que se constituyó en un hito, ya que fue la primera en ser
comercializada con éxito, lo que significó el principio del fin para las memorias de
núcleo magnético. En comparación con los integrados de memoria DRAM actuales, la
1103 es primitiva en varios aspectos, pero tenía un desempeño mayor que la memoria
de núcleos.
En 1973 se presentó una innovación que permitió otra miniaturización y se convirtió en
estándar para las memorias DRAM: la multiplexación en tiempo de la direcciones de
memoria. MOSTEK lanzó la referencia MK4096 de 4 Kb en un empaque de 16 pines,[2]
mientras sus competidores las fabricaban en el empaque DIP de 22 pines. El esquema
de direccionamiento se convirtió en un estándar de facto debido a la gran popularidad
que logró esta referencia de DRAM. Para finales de los 70 los integrados eran usados
en la mayoría de computadores nuevos, se soldaban directamente a las placas base o
se instalaban en zócalos, de manera que ocupaban un área extensa de circuito impreso.
88
Con el tiempo se hizo obvio que la instalación de RAM sobre el impreso principal,
impedía la miniaturización, entonces se idearon los primeros módulos de memoria como
el SIPP, aprovechando las ventajas de la construcción modular. El formato SIMM fue
una mejora al anterior, eliminando los pines metálicos y dejando unas áreas de cobre
en uno de los bordes del impreso, muy similares a los de las tarjetas de expansión, de
hecho los módulos SIPP y los primeros SIMM tienen la misma distribución de pines.
A finales de los 80 el aumento en la velocidad de los procesadores y el aumento en el
ancho de banda requerido, dejaron rezagadas a las memorias DRAM con el esquema
original MOSTEK, de manera que se realizaron una serie de mejoras en el
direccionamiento como las siguientes:
Módulos formato SIMM de 30 y 72 pines, los últimos fueron utilizados con integrados
tipo EDO-RAM.
FPM-RAM (Fast Page Mode RAM)
Inspirado en técnicas como el "Burst Mode" usado en procesadores como el Intel 486,
se implantó un modo direccionamiento en el que el controlador de memoria envía una
sola dirección y recibe a cambio esa y varias consecutivas sin necesidad de generar
todas las direcciones. Esto supone un ahorro de tiempos ya que ciertas operaciones
89
son repetitivas cuando se desea acceder a muchas posiciones consecutivas. Funciona
como si deseáramos visitar todas las casas en una calle: después de la primera vez no
seria necesario decir el número de la calle únicamente seguir la misma. Se fabricaban
con tiempos de acceso de 70 ó 60 ns y fueron muy populares en sistemas basados en
el 486 y los primeros Pentium.
EDO-RAM (Extended Data Output RAM)
Lanzada en 1995 y con tiempos de accesos de 40 o 30 ns suponía una mejora sobre su
antecesora la FPM. La EDO, también es capaz de enviar direcciones contiguas pero
direcciona la columna que va utilizar mientras que se lee la información de la columna
anterior, dando como resultado una eliminación de estados de espera, manteniendo
activo el búffer de salida hasta que comienza el próximo ciclo de lectura.
BEDO-RAM (Burst Extended Data Output RAM)
Fue la evolución de la EDO RAM y competidora de la SDRAM, fue presentada en 1997.
Era un tipo de memoria que usaba generadores internos de direcciones y accedía a
mas de una posición de memoria en cada ciclo de reloj, de manera que lograba un
desempeño un 50% mejor que la EDO. Nunca salió al mercado, dado que Intel y otros
fabricantes se decidieron por esquemas de memoria sincrónicos que si bien tenían
mucho del direccionamiento MOSTEK, agregan funcionalidades distintas como señales
de reloj.
Arquitectura base
En origen, la memoria RAM se componía de hilos de cobre que atravesaban toroides de
ferrita, la corriente polariza la ferrita. Mientras esta queda polarizada, el sistema
puede invocar al procesador accesos a partes del proceso que antes (en un estado de
reposo) no es posible acceder. En sus orígenes, la invocación a la RAM, producía la
activación de contactores, ejecutando instrucciones del tipo AND, OR y NOT. La
90
programación de estos elementos, consistía en la predisposición de los contactores
para que, en una línea de tiempo, adquiriesen las posiciones adecuadas para crear un
flujo con un resultado concreto. La ejecución de un programa, provocaba un ruido
estruendoso en la sala en la cual se ejecutaba dicho programa, por ello el área central
de proceso estaba separada del área de control por mamparas insonorizadas.
Con las nuevas tecnologías, las posiciones de la ferrita se ha ido sustituyendo por,
válvulas de vacío, transistores y en las últimas generaciones, por un material sólido
dieléctrico. Dicho estado sólido dieléctrico tipo DRAM permite que se pueda tanto
leer como escribir información.
Uso por el sistema
Se utiliza como memoria de trabajo para el sistema operativo, los programas y la
mayoría del software. Es allí donde se cargan todas las instrucciones que ejecutan el
procesador y otras unidades de cómputo. Se denominan "de acceso aleatorio" porque
se puede leer o escribir en una posición de memoria con un tiempo de espera igual para
cualquier posición, no siendo necesario seguir un orden para acceder a la información
de la manera más rápida posible.
Módulos de la memoria RAM
91
Formato SO-DIMM.
Los módulos de memoria RAM son tarjetas de circuito impreso que tienen soldados
integrados de memoria DRAM por una o ambas caras. La implementación DRAM se
basa en una topología de Circuito eléctrico que permite alcanzar densidades altas de
memoria por cantidad de transistores, logrando integrados de decenas o cientos de
Megabits. Además de DRAM, los módulos poseen un integrado que permiten la
identificación de los mismos ante el computador por medio del protocolo de
comunicación SPD.
La conexión con los demás componentes se realiza por medio de un área de pines en
uno de los filos del circuito impreso, que permiten que el modulo al ser instalado en un
zócalo apropiado de la placa base, tenga buen contacto eléctrico con los controladores
de memoria y las fuentes de alimentación. Los primeros módulos comerciales de
memoria eran SIPP de formato propietario, es decir no había un estándar entre
distintas marcas. Otros módulos propietarios bastante conocidos fueron los RIMM,
ideados por la empresa RAMBUS.
La necesidad de hacer intercambiable los módulos y de utilizar integrados de distintos
fabricantes condujo al establecimiento de estándares de la industria como los JEDEC.
Módulos SIMM: Formato usado en computadores antiguos. Tenían un bus de datos de
16 o 32 bits
Módulos DIMM: Usado en computadores de escritorio. Se caracterizan por tener un
bus de datos de 64 bits.
Módulos SO-DIMM: Usado en computadores portátiles. Formato miniaturizado de
DIMM.
Relación con el resto del sistema
92
Diagrama de la arquitectura de un ordenador.
Dentro de la jerarquía de memoria la RAM se encuentra en un nivel después de los
registros del procesador y de las cachés. Es una memoria relativamente rápida y de
una capacidad media: sobre el año 2010), era fácil encontrar memorias con velocidades
de más de 1 Ghz, y capacidades de hasta 8 GB por módulo, llegando a verse memorias
pasando la barrera de los 3 Ghz por esa misma fecha mediante prácticas de overclock
extremo. La memoria RAM contenida en los módulos, se conecta a un controlador de
memoria que se encarga de gestionar las señales entrantes y salientes de los
integrados DRAM. Algunas señales son las mismas que se utilizan para utilizar
cualquier memoria: Direcciones de las posiciones, datos almacenados y señales de
control.
El controlador de memoria debe ser diseñado basándose en una tecnología de
memoria, por lo general soporta solo una, pero existen excepciones de sistemas cuyos
controladores soportan dos tecnologías (por ejemplo SDR y DDR o DDR1 y DDR2),
esto sucede en las épocas transitorias de una nueva tecnología de RAM. Los
controladores de memoria en sistemas como PC y servidores se encuentran embebidos
en el llamado "North Bridge" o "Puente Norte" de la placa base; o en su defecto,
dentro del mismo procesador (en el caso de los procesadores desde AMD Athlon 64 e
Intel Core i7) y posteriores; y son los encargados de manejar la mayoría de
información que entra y sale del procesador.
93
Las señales básicas en el módulo están divididas en dos buses y un conjunto misceláneo
de líneas de control y alimentación. Entre todas forman el bus de memoria:
Bus de datos: Son las líneas que llevan información entre los integrados y el
controlador. Por lo general están agrupados en octetos siendo de 8,16,32 y 64 bits,
cantidad que debe igualar el ancho del bus de datos del procesador. En el pasado,
algunos formatos de modulo, no tenían un ancho de bus igual al del procesador.En ese
caso había que montar módulos en pares o en situaciones extremas, de a 4 módulos,
para completar lo que se denominaba banco de memoria, de otro modo el sistema no
funciona. Esa es la principal razón de haber aumentar el número de pines en los
módulos, igualando el ancho de bus de procesadores como el Pentium de 64 bits a
principios de los 90.
Bus de direcciones: Es un bus en el cual se colocan las direcciones de memoria a las
que se requiere acceder. No es igual al bus de direcciones del resto del sistema, ya
que está multiplexado de manera que la dirección se envía en dos etapas.Para ello el
controlador realiza temporizaciones y usa las líneas de control. En cada estándar de
módulo se establece un tamaño máximo en bits de este bus, estableciendo un límite
teórico de la capacidad máxima por módulo.
Señales misceláneas: Entre las que están las de la alimentación (Vdd, Vss) que se
encargan de entregar potencia a los integrados. Están las líneas de comunicación para
el integrado de presencia que da información clave acerca del módulo. También están
las líneas de control entre las que se encuentran las llamadas RAS (row address
strobe) y CAS (column address strobe) que controlan el bus de direcciones y las
señales de reloj en las memorias sincrónicas SDRAM.
Entre las características sobresalientes del controlador de memoria, está la
capacidad de manejar la tecnología de canal doble (Dual Channel), tres canales, o
incluso cuatro para los procesadores venideros; donde el controlador maneja bancos
94
de memoria de 128 bits. Aunque el ancho del bus de datos del procesador sigue siendo
de 64 bits, el controlador de memoria puede entregar los datos de manera
intercalada, optando por uno u otro canal, reduciendo las latencias vistas por el
procesador. La mejora en el desempeño es variable y depende de la configuración y
uso del equipo. Esta característica ha promovido la modificación de los controladores
de memoria, resultando en la aparición de nuevos chipsets (la serie 865 y 875 de
Intel) o de nuevos zócalos de procesador en los AMD (el 939 con canal doble ,
reemplazo el 754 de canal sencillo). Los equipos de gama media y alta por lo general se
fabrican basados en chipsets o zócalos que soportan doble canal o superior.
Módulos de memoria instalados de 256 MiB cada uno en un sistema con doble
canal.
Tecnologías de memoria
La tecnología de memoria actual usa una señal de sincronización para realizar las
funciones de lectura-escritura de manera que siempre esta sincronizada con un reloj
del bus de memoria, a diferencia de las antiguas memorias FPM y EDO que eran
asíncronas. Hace más de una década toda la industria se decantó por las tecnologías
síncronas, ya que permiten construir integrados que funcionen a una frecuencia
95
superior a 66 MHz (A día de hoy, se han superado con creces los 1600 Mhz).
Memorias RAM con tecnologías usadas en la actualidad.
SDR SDRAM
Artículo principal: SDRAM
Memoria síncrona, con tiempos de acceso de entre 25 y 10 ns y que se presentan en
módulos DIMM de 168 contactos. Fue utilizada en los Pentium II y en los Pentium
III , así como en los AMD K6, AMD Athlon K7 y Duron. Está muy extendida la
creencia de que se llama SDRAM a secas, y que la denominación SDR SDRAM es para
diferenciarla de la memoria DDR, pero no es así, simplemente se extendió muy rápido
la denominación incorrecta. El nombre correcto es SDR SDRAM ya que ambas (tanto
la SDR como la DDR) son memorias síncronas dinámicas. Los tipos disponibles son:
PC100: SDR SDRAM, funciona a un máx de 100 MHz.
PC133: SDR SDRAM, funciona a un máx de 133 MHz.
DDR SDRAM
Artículo principal: DDR SDRAM
Memoria síncrona, envía los datos dos veces por cada ciclo de reloj. De este modo
96
trabaja al doble de velocidad del bus del sistema, sin necesidad de aumentar la
frecuencia de reloj. Se presenta en módulos DIMM de 184 contactos en el caso de
ordenador de escritorio y en módulos de 144 contactos para los ordenadores
portátiles. Los tipos disponibles son:
PC2100 o DDR 266: funciona a un máx de 133 MHz.
PC2700 o DDR 333: funciona a un máx de 166 MHz.
PC3200 o DDR 400: funciona a un máx de 200 MHz.
DDR2 SDRAM
SDRAM DDR2.
Artículo principal: DDR2
Las memorias DDR 2 son una mejora de las memorias DDR (Double Data Rate), que
permiten que los búferes de entrada/salida trabajen al doble de la frecuencia del
núcleo, permitiendo que durante cada ciclo de reloj se realicen cuatro transferencias.
Se presentan en módulos DIMM de 240 contactos. Los tipos disponibles son:
PC2-4200 o DDR2-533: funciona a un máx de 533 MHz.
PC2-5300 o DDR2-667: funciona a un máx de 667 MHz.
97
PC2-6400 o DDR2-800: funciona a un máx de 800 MHz.
PC2-8600 o DDR2-1066: funciona a un máx de 1066 MHz.
PC2-9000 o DDR2-1200: funciona a un máx de 1200 MHz
DDR3 SDRAM
Artículo principal: DDR3
Las memorias DDR 3 son una mejora de las memorias DDR 2, proporcionan
significantes mejoras en el rendimiento en niveles de bajo voltaje, lo que lleva consigo
una disminución del gasto global de consumo. Los módulos DIMM DDR 3 tienen 240
pines, el mismo número que DDR 2; sin embargo, los DIMMs son físicamente
incompatibles, debido a una ubicación diferente de la muesca. Los tipos disponibles
son:
PC3-8600 o DDR3-1066: funciona a un máx de 1066 MHz.
PC3-10600 o DDR3-1333: funciona a un máx de 1333 MHz.
PC3-12800 o DDR3-1600: funciona a un máx de 1600 MHz.
RDRAM (Rambus DRAM)
Artículo principal: RDRAM
Memoria de gama alta basada en un protocolo propietario creado por la empresa
Rambus, lo cual obliga a sus compradores a pagar regalías en concepto de uso. Esto ha
hecho que el mercado se decante por la tecnología DDR, libre de patentes, excepto
algunos servidores de grandes prestaciones (Cray) y la consola PlayStation 3. La
RDRAM se presenta en módulos RIMM de 184 contactos.
Detección y corrección de errores
98
Existen dos clases de errores en los sistemas de memoria, las fallas (Hard fails) que
son daños en el hardware y los errores (soft errors) provocados por causas fortuitas.
Los primeros son relativamente fáciles de detectar (en algunas condiciones el
diagnóstico es equivocado), los segundos al ser resultado de eventos aleatorios, son
más difíciles de hallar. En la actualidad la confiabilidad de las memorias RAM frente a
los errores, es suficientemente alta como para no realizar verificación sobre los datos
almacenados, por lo menos para aplicaciones de oficina y caseras. En los usos más
críticos, se aplican técnicas de corrección y detección de errores basadas en
diferentes estrategias:
La técnica del bit de paridad consiste en guardar un bit adicional por cada byte de
datos, y en la lectura se comprueba si el número de unos es par (paridad par) o impar
(paridad impar), detectándose así el error.
Una técnica mejor es la que usa ECC, que permite detectar errores de 1 a 4 bits y
corregir errores que afecten a un sólo bit. Esta técnica se usa sólo en sistemas que
requieren alta fiabilidad.
Por lo general los sistemas con cualquier tipo de protección contra errores tiene un
costo más alto, y sufren de pequeñas penalizaciones en desempeño, con respecto a los
sistemas sin protección. Para tener un sistema con ECC o paridad, el chipset y las
memorias deben tener soporte para esas tecnologías. La mayoría de placas base no
poseen dicho soporte.
Para los fallos de memoria se pueden utilizar herramientas de software especializadas
que realizan pruebas integrales sobre los módulos de memoria RAM. Entre estos
programas uno de los más conocidos es la aplicación Memtest86+ que detecta fallos de
memoria.
Memoria RAM registrada
99
Es un tipo de módulo usado frecuentemente en servidores y equipos especiales. Poseen
circuitos integrados que se encargan de repetir las señales de control y direcciones.
Las señales de reloj son reconstruidas con ayuda del PLL que está ubicado en el
módulo mismo. Las señales de datos pasan directamente del bus de memoria a los CI
de memoria DRAM.
Estas características permiten conectar múltiples módulos de memoria (más de 4) de
alta capacidad sin que haya perturbaciones en las señales del controlador de memoria,
haciendo posible sistemas con gran cantidad de memoria principal (8 a 16 GiB). Con
memorias no registradas, no es posible, debido a los problemas surgen de sobrecarga
eléctrica a las señales enviadas por el controlador, fenómeno que no sucede con las
registradas por estar de algún modo aisladas.
Entre las desventajas de estos módulos están el hecho de que se agrega un ciclo de
retardo para cada solicitud de acceso a una posición no consecutiva y por supuesto el
precio, que suele ser mucho más alto que el de las memorias de PC. Este tipo de
módulos es incompatible con los controladores de memoria que no soportan el modo
registrado, a pesar de que se pueden instalar físicamente en el zócalo. Se pueden
reconocer visualmente porque tienen un integrado mediano, cerca del centro
geométrico del circuito impreso, además de que estos módulos suelen ser algo más
altos.
TARJETA DE EXPANSION:
Tarjeta de expansión
Las tarjetas de expansión son dispositivos con diversos circuitos integrados y
controladores que, insertadas en sus correspondientes ranuras de expansión, sirven
para ampliar las capacidades de un ordenador. Las tarjetas de expansión más comunes
sirven para añadir memoria, controladoras de unidad de disco, controladoras de vídeo,
puertos serie o paralelo y dispositivos de módem internos. Por lo general, se suelen
100
utilizar indistintamente los términos «placa» y «tarjeta» para referirse a todas las
tarjetas de expansión.
En la actualidad las tarjetas suelen ser de tipo PCI, PCI Express o AGP. Como ejemplo
de tarjetas que ya no se utilizan tenemos la de tipo Bus ISA.
Gracias al avance en la tecnología USB y a la integración de audio, video o red en la
placa base, hoy en día son menos imprescindibles para tener un PC completamente
funcional.
La historia de la tarjeta de expansión
El primer microordenador en ofrecer un bus de tarjeta tipo ranura fue el Altair 8800,
desarrollado en 1974-1975. Inicialmente, las implementaciones de este bus eran de
marca registrada (como Apple II y Macintosh), pero en 1982 fabricantes de
computadoras basadas en el Intel 8080/Zilog Z80 que ejecutaban CP/M ya habían
adoptado el estándar S-100. IBM lanzó el bus XT, con el primer IBM PC en 1981; se
llamaba entonces el bus PC, ya que el IBM XT, que utilizaba el mismo bus (con una leve
excepción) no se lanzó hasta 1983. XT (también denominado ISA de 8 bits) fue
reemplazado por ISA (también denominado ISA de 16 bits), conocido originalmente
como el bus AT, en 1984. El bus MCA de IBM, desarrollado para el PS/2 en 1987,
competía con ISA, pero cayó en desgracia debido a la aceptación general de ISA de
parte de la industria, y la licencia cerrada que IBM mantenía sobre MCA. EISA, la
versión extendida de 32 bits abogada por Compaq, era común en las placas base de los
PC hasta 1997, cuando Microsoft lo declaró un «subsistema heredado» en el libro
blanco industrial PC 97. VESA Local Bus, un bus de expansión al principio de los 1990
que estaba ligado intrínsecamente a la CPU 80486, se volvió obsoleto (además del
procesador) cuando Intel lanzó la CPU Pentium en 1993.
El bus PCI se lanzó en 1991 para reemplazar a ISA. El estándar (ahora en la versión
3.0) se encuentra en las placas base de los PC aun hoy en día. Intel lanzó el bus AGP en
101
1997 como una solución dedicada de aceleración de video. Aunque se denominaba un
bus, AGP admite una sola tarjeta a la vez. A partir de 2005, PCI Express ha estado
reemplazando a PCI y a AGP. Este estándar, aprobado en 2004, implementa el
protocolo lógico PCI a través de una interfaz de comunicación en serie.
Después del bus S-100, este artículo sólo menciona buses empleados en PCs
compatibles con IBM/Windows-Intel. La mayoría de las otras líneas de computadoras
que no eran compatibles con IBM, inclusive las de Tandy, Commodore, Amiga y Atari,
ofrecían sus propios buses de expansión. Aun muchas consolas de videojuegos, tales
como el Sega Genesis, incluían buses de expansión; al menos en el caso del Genesis, el
bus de expansión era de marca registrada, y de hecho las ranuras de cartucho de la
muchas consolas que usaban cartuchos (excepto el Atari 2600) calificarían como
buses de expansión, ya que exponían las capacidades de lectura y escritura del bus
interno del sistema. No obstante, los módulos de expansión conectados a esos
interfaces, aunque eran funcionalmente iguales a las tarjetas de expansión, no son
técnicamente tarjetas de expansión, debido a su forma física.
Para sus modelos 1000 EX y 1000 HX, Tandy Computer diseñó la interfaz de expansión
PLUS, una adaptación de las tarjetas del bus XT con un factor de forma más pequeño.
Porque es eléctricamente compatible con el bus XT (también denominado ISA de 8
bits o XT-ISA), un adaptador pasivo puede utilizarse para conectar tarjetas XT a un
conector de expansión PLUS. Otra característica de tarjetas PLUS es que se pueden
apilar. Otro bus que ofrecía módulos de expansión capaces de ser apilados era el bus
«sidecar» empleado por el IBM PCjr. Éste pudo haber sido eléctricamente igual o
similar al bus XT; seguramente poseía algunas similitudes ya que ambos esencialmente
exponían los buses de dirección y de datos de la CPU 8088, con búferes y
preservación de estado, la adición de interrupciones y DMA proveídos por chips
complementarios de Intel, y algunas líneas de detección de fallos (corriente idónea,
comprobación de Memoria, comprobación de Memoria E/S). Otra vez, PCjr sidecars no
102
son técnicamente tarjetas de expansión, sino módulos de expansión, con la única
diferencia siendo que el sidecar es una tarjeta de memoria envuelta en una caja de
plástico (con agujeros que exponen los conectores).
Tipos de tarjetas de expansión
Capturadora de televisión
Módem interno
Tarjeta gráfica
Tarjeta de red
Tarjeta de sonido
CAPTURADORA DE TELEVISION:
Una tarjeta sintonizadora (o capturadora) de televisión es un periférico que permite
ver los distintos tipos de televisión en la pantalla de ordenador. La visualización se
puede efectuar a pantalla completa o en modo ventana. La señal de televisión entra
por el chip K_98_Begijar y en la toma de antena de la sintonizadora y puede proceder
de una antena (externa o portátil) o bien de la emisión de televisión por cable.
Este periférico puede ser una tarjeta de expansión, generalmente de tipo PCI, o bien
un dispositivo externo que se conecta al puerto USB. Los modelos externos codifican
la grabación por software; es decir, que es el procesador del ordenador quien
realmente hace todo el trabajo. En cambio el K_98_Begijar en algunos modelos
internos realizan la codificación de la grabación por hardware; es decir que es la
propia tarjeta quien la hace, liberando de esa tarea al procesador del ordenador para
dar mayor rendimiento a la maquina. En consecuencia, en un mismo ordenador se podrá
efectuar una grabación de calidad (sin pérdida de frames) a mayor resolución con una
sintonizadora interna que con una externa.
103
Estas tarjetas también pueden ser usadas para captar señales de alguna fuente de
video como cámaras filmadoras, reproductores de DVD o VHS, etc. y a su vez ser
difundidas a través de codificador de video (como Windows Encoder) para trasmitirse
por Internet.
Las sintonizadoras se distribuyen junto a sus drivers y un software que permite la
sintonización, memorizado, visualización y grabación directa o programada de los
canales. También existe software gratuito de terceros que funciona con cualquier
tarjeta sintonizadora y que en muchos casos mejora la calidad de la visualización y de
la grabación obtenida por el software original de la sintonizadora:
MODEM:
Un módem es un dispositivo que sirve para enviar una señal llamada moduladora
mediante otra señal llamada portadora. Se han usado módems desde los años 60,
principalmente debido a que la transmisión directa de las señales electrónicas
inteligibles, a largas distancias, no es eficiente, por ejemplo, para transmitir señales
de audio por el aire, se requerirían antenas de gran tamaño (del orden de cientos de
metros) para su correcta recepción. Es habitual encontrar en muchos módems de red
conmutada la facilidad de respuesta y marcación automática, que les permiten
conectarse cuando reciben una llamada de la RTPC (Red Telefónica Pública Conmutada)
y proceder a la marcación de cualquier número previamente grabado por el usuario.
Gracias a estas funciones se pueden realizar automáticamente todas las operaciones
de establecimiento de la comunicación.
TARJETA GRAFICA:
Una tarjeta gráfica, tarjeta de vídeo, placa de vídeo, tarjeta aceleradora de gráficos
o adaptador de pantalla, es una tarjeta de expansión para una computadora u
ordenador, encargada de procesar los datos provenientes de la CPU y transformarlos
en información comprensible y representable en un dispositivo de salida, como un
104
monitor o televisor. Las tarjetas gráficas más comunes son las disponibles para las
computadoras compatibles con la IBM PC, debido a la enorme popularidad de éstas,
pero otras arquitecturas también hacen uso de este tipo de dispositivos.
TARJETA DE RED:
Una tarjeta de red o adaptador de red permite la comunicación con aparatos
conectados entre si y también permite compartir recursos entre dos o más
computadoras (discos duros, CD-ROM, impresoras, etc). A las tarjetas de red también
se les llama NIC (por network interface card; en español "tarjeta de interfaz de
red"). Hay diversos tipos de adaptadores en función del tipo de cableado o
arquitectura que se utilice en la red (coaxial fino, coaxial grueso, Token Ring, etc.),
pero actualmente el más común es del tipo Ethernet utilizando una interfaz o conector
RJ-45.
TARJETA DE SONIDO:
Una tarjeta de sonido o placa de sonido es una tarjeta de expansión para
computadoras que permite la entrada y salida de audio bajo el control de un programa
informático llamado controlador (en inglés driver). El típico uso de las tarjetas de
sonido consiste en proveer mediante un programa que actúa de mezclador, que las
aplicaciones multimedia del componente de audio suenen y puedan ser gestionadas.
Estas aplicaciones multimedia engloban composición y edición de video o audio,
presentaciones multimedia y entretenimiento (videojuegos). Algunos equipos (como los
personales) tienen la tarjeta ya integrada, mientras que otros requieren tarjetas de
expansión. También hay otro tipo de equipos que por circunstancias profesionales
(como por ejemplo servidores) no requieren de dicho servicio.
FUENTE DE ALIMENTACION:
En electrónica, una fuente de alimentación es un dispositivo que convierte la tensión
105
alterna de la red de suministro, en una o varias tensiones, prácticamente continuas,
que alimentan los distintos circuitos del aparato electrónico al que se conecta
(ordenador, televisor, impresora, router, etc.).
Clasificación
Las fuentes de alimentación, para dispositivos electrónicos, pueden clasificarse
básicamente como fuentes de alimentación lineales y conmutadas. Las lineales tienen
un diseño relativamente simple, que puede llegar a ser más complejo cuanto mayor es
la corriente que deben suministrar, sin embargo su regulación de tensión es poco
eficiente. Una fuente conmutada, de la misma potencia que una lineal, será más
pequeña y normalmente más eficiente pero será más compleja y por tanto más
susceptible a averías.
Fuentes de alimentación lineales
Las fuentes lineales siguen el esquema: transformador, rectificador, filtro, regulación
y salida.
En primer lugar el transformador adapta los niveles de tensión y proporciona
aislamiento galvánico. El circuito que convierte la corriente alterna en continua se
llama rectificador, después suelen llevar un circuito que disminuye el rizado como un
filtro de condensador. La regulación, o estabilización de la tensión a un valor
establecido, se consigue con un componente denominado regulador de tensión. La
salida puede ser simplemente un condensador. Esta corriente abarca toda la energía
del circuito,esta fuente de alimentación deben tenerse en cuenta unos puntos
concretos a la hora de decidir las características del transformador.
Fuentes de alimentación conmutadas
Una fuente conmutada es un dispositivo electrónico que transforma energía eléctrica
mediante transistores en conmutación. Mientras que un regulador de tensión utiliza
106
transistores polarizados en su región activa de amplificación, las fuentes conmutadas
utilizan los mismos conmutándolos activamente a altas frecuencias (20-100 Kilociclos
típicamente) entre corte (abiertos) y saturación (cerrados). La forma de onda
cuadrada resultante es aplicada a transformadores con núcleo de ferrita (Los núcleos
de hierro no son adecuados para estas altas frecuencias) para obtener uno o varios
voltajes de salida de corriente alterna (CA) que luego son rectificados (Con diodos
rápidos) y filtrados (Inductores y capacitores) para obtener los voltajes de salida de
corriente continua (CC). Las ventajas de este método incluyen menor tamaño y peso
del núcleo, mayor eficiencia y por lo tanto menor calentamiento. Las desventajas
comparándolas con fuentes lineales es que son mas complejas y generan ruido
eléctrico de alta frecuencia que debe ser cuidadosamente minimizado para no causar
interferencias a equipos próximos a estas fuentes.
Las fuentes conmutadas tienen por esquema: rectificador, conmutador,
transformador, otro rectificador y salida.
La regulación se obtiene con el conmutador, normalmente un circuito PWM (Pulse
Width Modulation) que cambia el ciclo de trabajo. Aquí las funciones del
transformador son las mismas que para fuentes lineales pero su posición es diferente.
El segundo rectificador convierte la señal alterna pulsante que llega del
transformador en un valor continuo. La salida puede ser también un filtro de
condensador o uno del tipo LC.
Las ventajas de las fuentes lineales son una mejor regulación, velocidad y mejores
características EMC. Por otra parte las conmutadas obtienen un mejor rendimiento,
menor coste y tamaño.
UNIDAD DE DISCO OPTICO:
En informática, una unidad de disco óptico es una unidad de disco que usa una luz láser
u ondas electromagnéticas cercanas al espectro de la luz como parte del proceso de
107
lectura o escritura de datos desde o a discos ópticos. Algunas unidades solo pueden
leer discos, pero las unidades más recientes usualmente son tanto lectoras como
grabadoras. Para referirse a las unidades con ambas capacidades se suele usar el
término lectograbadora. Los discos compactos (CD), DVD, y Blu-ray Disc son los tipos
de medios ópticos más comunes que pueden ser leídos y grabados por estas unidades.
Las unidades de discos ópticos son una parte integrante de los aparatos de consumo
autónomos como los reproductores de CD, reproductores de DVD y grabadoras de
DVD. También son usados muy comúnmente en las computadoras para leer software y
medios de consumo distribuidos en formato de disco, y para grabar discos para el
intercambio y archivo de datos. Las unidades de discos ópticos (junto a las memorias
flash) han desplazado a las disqueteras y a las unidades de cintas magnéticas para
este propósito debido al bajo coste de los medios ópticos y la casi ubicuidad de las
unidades de discos ópticos en las computadoras y en hardware de entretenimiento de
consumo.
La grabación de discos en general es restringida a la distribución y copiado de
seguridad a pequeña escala, siendo más lenta y más cara en términos materiales por
unidad que el proceso de moldeo usado para fabricar discos planchados en masa.
DISCO DURO:
En informática, un disco duro o disco rígido (en inglés Hard Disk Drive, HDD) es un
dispositivo de almacenamiento de datos no volátil que emplea un sistema de grabación
magnética para almacenar datos digitales. Se compone de uno o más platos o discos
rígidos, unidos por un mismo eje que gira a gran velocidad dentro de una caja metálica
sellada. Sobre cada plato, y en cada una de sus caras, se sitúa un cabezal de
lectura/escritura que flota sobre una delgada lámina de aire generada por la rotación
de los discos.
El primer disco duro fue inventado por IBM en 1956. A lo largo de los años, los discos
108
duros han disminuido su precio al mismo tiempo que han multiplicado su capacidad,
siendo la principal opción de almacenamiento secundario para PC desde su aparición en
los años 60. Los discos duros han mantenido su posición dominante gracias a los
constantes incrementos en la densidad de grabación, que se ha mantenido a la par de
las necesidades de almacenamiento secundario.
Los tamaños también han variado mucho, desde los primeros discos IBM hasta los
formatos estandarizados actualmente: 3,5" los modelos para PCs y servidores, 2,5" los
modelos para dispositivos portátiles. Todos se comunican con la computadora a través
del controlador de disco, empleando una interfaz estandarizado. Los más comunes hoy
día son IDE (también llamado ATA o PATA), SCSI (generalmente usado en servidores
y estaciones de trabajo), Serial ATA y FC (empleado exclusivamente en servidores).
Para poder utilizar un disco duro, un sistema operativo debe aplicar un formato de
bajo nivel que defina una o más particiones. La operación de formateo requiere el uso
de una fracción del espacio disponible en el disco, que dependerá del formato
empleado. Además, los fabricantes de discos duros, SSD y tarjetas flash miden la
capacidad de los mismos usando prefijos SI, que emplean múltiplos de potencias de
1000 según la normativa IEC, en lugar de los prefijos binarios clásicos de la IEEE, que
emplean múltiplos de potencias de 1024, y son los usados mayoritariamente por los
sistemas operativos. Esto provoca que en algunos sistemas operativos sea
representado como múltiplos 1024 o como 1000, y por tanto existan ligeros errores,
por ejemplo un Disco duro de 500 GB, en algunos sistemas operativos sea
representado como 465 GiB (Según la IEC Gibibyte, o Gigabyte binario, que son 1024
Mebibytes) y en otros como 465 GB.
Existe otro tipo de almacenamiento que recibe el nombre de Unidades de estado
sólido; aunque tienen el mismo uso y emplean las mismas interfaces, no están formadas
por discos mecánicos, sino por memorias de circuitos integrados para almacenar la
información. El uso de esta clase de dispositivos anteriormente se limitaba a las
109
supercomputadoras, por su elevado precio, aunque hoy en día ya son muchísimo más
asequibles para el mercado doméstico.
TECLADO:
En informática un teclado es un periférico de entrada o dispositivo, en parte inspirado
en el teclado de las máquinas de escribir, que utiliza una disposición de botones o
teclas, para que actúen como palancas mecánicas o interruptores electrónicos que
envían información a la computadora. Después de las tarjetas perforadas y las cintas
de papel, la interacción a través de los teclados al estilo teletipo se convirtió en el
principal medio de entrada para las computadoras. El teclado tiene entre 99 y 108
teclas aproximadamente, y está dividido en cuatro bloques:
1. Bloque de funciones: Va desde la tecla F1 a F12, en tres bloques de cuatro: de F1 a
F4, de F5 a F8 y de F9 a F12. Funcionan de acuerdo al programa que esté abierto. Por
ejemplo, en muchos programas al presionar la tecla F1 se accede a la ayuda asociada a
ese programa.
2. Bloque alfanumérico: Está ubicado en la parte inferior del bloque de funciones,
contiene los números arábigos del 1 al 0 y el alfabeto organizado como en una máquina
de escribir, además de algunas teclas especiales.
3. Bloque especial: Está ubicado a la derecha del bloque alfanumérico, contiene algunas
teclas especiales como Imp Pant, Bloq de desplazamiento, pausa, inicio, fin, insertar,
suprimir, RePag, AvPag, y las flechas direccionales que permiten mover el punto de
inserción en las cuatro direcciones.
4. Bloque numérico: Está ubicado a la derecha del bloque especial, se activa al
presionar la tecla Bloq Num, contiene los números arábigos organizados como en una
calculadora con el fin de facilitar la digitación de cifras. Además contiene los signos
de las cuatro operaciones básicas: suma +, resta -, multiplicación * y división /;
110
también contiene una tecla de Intro o Enter.
RATON/MOUSE:
El ratón o mouse (del inglés, pronunciado [maʊs]) es un dispositivo apuntador usado
para facilitar el manejo de un entorno gráfico en un computador. Generalmente está
fabricado en plástico y se utiliza con una de las manos. Detecta su movimiento relativo
en dos dimensiones por la superficie plana en la que se apoya, reflejándose
habitualmente a través de un puntero o flecha en el monitor.
Hoy en día es un elemento imprescindible en un equipo informático para la mayoría de
las personas, y pese a la aparición de otras tecnologías con una función similar, como la
pantalla táctil, la práctica ha demostrado que tendrá todavía muchos años de vida útil.
No obstante, en el futuro podría ser posible mover el cursor o el puntero con los ojos
o basarse en el reconocimiento de voz.
SOFTWARE:
Se conoce como software al equipamiento lógico o soporte lógico de una computadora
digital; comprende el conjunto de los componentes lógicos necesarios que hacen
posible la realización de tareas específicas, en contraposición a los componentes
físicos, que son llamados hardware.
111
Los componentes lógicos incluyen, entre muchos otros, las aplicaciones informáticas;
tales como el procesador de texto, que permite al usuario realizar todas las tareas
concernientes a la edición de textos; el software de sistema, tal como el sistema
operativo, que, básicamente, permite al resto de los programas funcionar
adecuadamente, facilitando también la interacción entre los componentes físicos y el
resto de las aplicaciones, y proporcionando una interfaz para el usuario.
Existen varias definiciones similares aceptadas para software, pero probablemente la
más formal sea la siguiente:
Es el conjunto de los programas de cómputo, procedimientos, reglas, documentación y
datos asociados que forman parte de las operaciones de un sistema de computación.
Clasificación del software
Si bien esta distinción es, en cierto modo, arbitraria, y a veces confusa, a los fines
prácticos se puede clasificar al software en tres grandes tipos:
Software de sistema: Su objetivo es desvincular adecuadamente al usuario y al
programador de los detalles de la computadora en particular que se use, aislándolo
especialmente del procesamiento referido a las características internas de: memoria,
discos, puertos y dispositivos de comunicaciones, impresoras, pantallas, teclados, etc.
El software de sistema le procura al usuario y programador adecuadas interfaces de
alto nivel, herramientas y utilidades de apoyo que permiten su mantenimiento. Incluye
entre otros:
Sistemas operativos
Controladores de dispositivos
Herramientas de diagnóstico
112
Herramientas de Corrección y Optimización
Servidores
Utilidades
Software de programación : Es el conjunto de herramientas que permiten al
programador desarrollar programas informáticos, usando diferentes alternativas y
lenguajes de programación, de una manera práctica. Incluye entre otros:
Editores de texto
Compiladores
Intérpretes
Enlazadores
Depuradores
Entornos de Desarrollo Integrados ( IDE ): Agrupan las anteriores herramientas,
usualmente en un entorno visual, de forma tal que el programador no necesite
introducir múltiples comandos para compilar, interpretar, depurar, etc. Habitualmente
cuentan con una avanzada interfaz gráfica de usuario (GUI).
Software de aplicación : Es aquel que permite a los usuarios llevar a cabo una o varias
tareas específicas, en cualquier campo de actividad susceptible de ser automatizado o
asistido, con especial énfasis en los negocios. Incluye entre otros:
Aplicaciones para Control de sistemas y automatización industrial
Aplicaciones ofimáticas
Software educativo
Software empresarial
113
Bases de datos
Telecomunicaciones (por ejemplo Internet y toda su estructura lógica)
Videojuegos
Software médico
Software de Cálculo Numérico y simbólico.
Software de Diseño Asistido (CAD)
Software de Control Numérico (CAM)
114
UNIDAD # III: SISTEMA OPERATIVO:
115
UNIDAD III:
SISTEMA OPERATIVO
Un sistema operativo (SO) es el programa o conjunto de programas que efectúan la
gestión de los procesos básicos de un sistema informático, y permite la normal
ejecución del resto de las operaciones.
Nótese que es un error común muy extendido denominar al conjunto completo de
herramientas sistema operativo, es decir, la inclusión en el mismo término de
programas como el explorador de ficheros, el navegador y todo tipo de herramientas
que permiten la interacción con el sistema operativo, también llamado núcleo o kernel.
Uno de los más prominentes ejemplos de esta diferencia, es el núcleo Linux, que es el
núcleo del sistema operativo GNU, del cual existen las llamadas distribuciones GNU.
Este error de precisión, se debe a la modernización de la informática llevada a cabo a
finales de los 80, cuando la filosofía de estructura básica de funcionamiento de los
grandes computadores[2] se rediseñó a fin de llevarla a los hogares y facilitar su uso,
116
cambiando el concepto de computador multiusuario, (muchos usuarios al mismo tiempo)
por un sistema monousuario (únicamente un usuario al mismo tiempo) más sencillo de
gestionar.[3] (Véase AmigaOS, beOS o MacOS como los pioneros[4] de dicha
modernización, cuando los Amiga, fueron bautizados con el sobrenombre de Video
Toasters por su capacidad para la Edición de vídeo en entorno multitarea round robin,
con gestión de miles de colores e interfaces intuitivos para diseño en 3D.
Uno de los propósitos del sistema operativo que gestiona el núcleo intermediario
consiste en gestionar los recursos de localización y protección de acceso del
hardware, hecho que alivia a los programadores de aplicaciones de tener que tratar
con estos detalles. Se encuentran en la mayoría de los aparatos electrónicos que
utilizan microprocesadores para funcionar. (Teléfonos móviles, reproductores de DVD,
computadoras, radios, etc.).
PERSPECTIVA HISTÓRICA
Los primeros sistemas (1945-1960) eran grandes máquinas operadas desde la consola
maestra por los programadores. Durante la década siguiente (1950-1960) se llevaron a
cabo avances en el hardware: lectoras de tarjetas, impresoras, cintas magnéticas, etc.
Esto a su vez provocó un avance en el software: compiladores, ensambladores,
cargadores, manejadores de dispositivos, etc.
A finales de los años 80, una computadora Commodore Amiga equipada con una
aceleradora Video Toaster era capaz de producir efectos comparados a sistemas
dedicados que costaban el triple. Un Video Toaster junto a Lightwave ayudó a producir
muchos programas de televisión y películas, entre las que se incluyen Babylon 5,
Seaquest DSV y Terminator II.
PROBLEMAS DE EXPLOTACIÓN Y SOLUCIONES INICIALES
El problema principal de los primeros sistemas era la baja utilización de los mismos, la
117
primera solución fue poner un operador profesional que lo manejase, con lo que se
eliminaron las hojas de reserva, se ahorró tiempo y se aumentó la velocidad.
Para ello, los trabajos se agrupaban de forma manual en lotes mediante lo que se
conoce como procesamiento por lotes (batch) sin automatizar.
MONITORES RESIDENTES
Fichas en lenguaje de procesamiento por lotes, con programa y datos, para ejecución
secuencial.
Según fue avanzando la complejidad de los programas, fue necesario implementar
soluciones que automatizaran la organización de tareas sin necesidad de un operador.
Debido a ello se crearon los monitores residentes: programas que residían en memoria
y que gestionaban la ejecución de una cola de trabajos.
Un monitor residente estaba compuesto por un cargador, un Intérprete de comandos
y un Controlador (drivers) para el manejo de entrada/salida.
SISTEMAS CON ALMACENAMIENTO TEMPORAL DE E/S
Los avances en el hardware crearon el soporte de interrupciones y posteriormente se
llevó a cabo un intento de solución más avanzado: solapar la E/S de un trabajo con sus
propios cálculos, por lo que se creó el sistema de buffers con el siguiente
118
funcionamiento:
Un programa escribe su salida en un área de memoria (buffer 1).
El monitor residente inicia la salida desde el buffer y el programa de aplicación calcula
depositando la salida en el buffer 2.
La salida desde el buffer 1 termina y el nuevo cálculo también.
Se inicia la salida desde el buffer 2 y otro nuevo cálculo dirige su salida al buffer 1.
El proceso se puede repetir de nuevo.
Los problemas surgen si hay muchas más operaciones de cálculo que de E/S (limitado
por la CPU) o si por el contrario hay muchas más operaciones de E/S que cálculo
(limitado por la E/S).
SPOOLERS
PERSPECTIVA HISTÓRICA
Los primeros sistemas (1945-1950) eran grandes máquinas operadas desde la consola
maestra por los programadores. Durante la década siguiente (1950-1960) se llevaron a
cabo avances en el hardware: lectoras de tarjetas, impresoras, cintas magnéticas, etc.
Esto a su vez provocó un avance en el software: compiladores, ensambladores,
cargadores, manejadores de dispositivos, etc.
Hace aparición el disco magnético con lo que surgen nuevas soluciones a los problemas
de rendimiento. Se eliminan las cintas magnéticas para el volcado previo de los datos
de dispositivos lentos y se sustituyen por discos (un disco puede simular varias cintas).
Debido al solapamiento del cálculo de un trabajo con la E/S de otro trabajo se crean
tablas en el disco para diferentes tareas, lo que se conoce como Spool (Simultaneous
Peripherial Operation On-Line).
119
SISTEMAS OPERATIVOS MULTIPROGRAMADOS
Surge un nuevo avance en el hardware: el hardware con protección de memoria. Lo que
ofrece nuevas soluciones a los problemas de rendimiento:
Se solapa el cálculo de unos trabajos con la entrada/salida de otros trabajos.
Se pueden mantener en memoria varios programas.
Se asigna el uso de la CPU a los diferentes programas en memoria.
Debido a los cambios anteriores, se producen cambios en el monitor residente, con lo
que éste debe abordar nuevas tareas, naciendo lo que se denomina como Sistemas
Operativos multiprogramado, los cuales cumplen con las siguientes funciones:
Administrar la memoria.
Gestionar el uso de la CPU (planificación).
Administrar el uso de los dispositivos de E/S.
Cuando desempeña esas tareas, el monitor residente se transforma en un sistema
operativo multiprogramado.
LLAMADAS AL SISTEMA OPERATIVO
Definición breve: llamadas que ejecutan los programas de aplicación para pedir algún
servicio al SO.
Cada SO implementa un conjunto propio de llamadas al sistema. Ese conjunto de
llamadas es la interfaz del SO frente a las aplicaciones. Constituyen el lenguaje que
deben usar las aplicaciones para comunicarse con el SO. Por ello si cambiamos de SO,
y abrimos un programa diseñado para trabajar sobre el anterior, en general el
programa no funcionará, a no ser que el nuevo SO tenga la misma interfaz. Para ello:
120
Las llamadas correspondientes deben tener el mismo formato.
Cada llamada al nuevo SO tiene que dar los mismos resultados que la correspondiente
del anterior.
MODOS DE EJECUCIÓN EN UN CPU
Las aplicaciones no deben poder usar todas las instrucciones de la CPU. No obstante el
Sistema Operativo, tiene que poder utilizar todo el juego de instrucciones del CPU.
Por ello, una CPU debe tener (al menos) dos modos de operación diferentes:
Modo usuario: el CPU podrá ejecutar sólo las instrucciones del juego restringido de las
aplicaciones.
Modo supervisor: la CPU debe poder ejecutar el juego completo de instrucciones.
LLAMADAS AL SISTEMA
Una aplicación, normalmente no sabe dónde está situada la rutina de servicio de la
llamada. Por lo que si ésta se codifica como una llamada de función, cualquier cambio
en el SO haría que hubiera que reconstruir la aplicación.
Pero lo más importante es que una llamada de función no cambia el modo de ejecución
de la CPU. Con lo que hay que conseguir llamar a la rutina de servicio, sin tener que
conocer su ubicación, y hacer que se fuerce un cambio de modo de operación de la CPU
en la llamada (y la recuperación del modo anterior en el retorno).
Esto se hace utilizando instrucciones máquina diseñadas específicamente para este
cometido, distintas de las que se usan para las llamadas de función.
BIBLIOTECAS DE INTERFAZ DE LLAMADAS AL SISTEMA
Las llamadas al sistema no siempre tienen una expresión sencilla en los lenguajes de
alto nivel, por ello se crean las bibliotecas de interfaz, que son bibliotecas de
121
funciones que pueden usarse para efectuar llamadas al sistema. Las hay para distintos
lenguajes de programación.
La aplicación llama a una función de la biblioteca de interfaz (mediante una llamada
normal) y esa función es la que realmente hace la llamada al sistema.
INTERRUPCIONES Y EXCEPCIONES
El SO ocupa una posición intermedia entre los programas de aplicación y el hardware.
No se limita a utilizar el hardware a petición de las aplicaciones ya que hay situaciones
en las que es el hardware el que necesita que se ejecute código del SO. En tales
situaciones el hardware debe poder llamar al sistema, pudiendo deberse estas
llamadas a dos condiciones:
Algún dispositivo de E/S necesita atención.
Se ha producido una situación de error al intentar ejecutar una instrucción del
programa (normalmente de la aplicación).
En ambos casos, la acción realizada no está ordenada por el programa de aplicación, es
decir, no figura en el programa.
Según los dos casos anteriores tenemos las interrupciones y la excepciones:
Interrupción: señal que envía un dispositivo de E/S a la CPU para indicar que la
operación de la que se estaba ocupando, ya ha terminado.
Excepción: una situación de error detectada por la CPU mientras ejecutaba una
instrucción, que requiere tratamiento por parte del SO.
TRATAMIENTO DE LAS INTERRUPCIONES
Una interrupción se trata en todo caso, después de terminar la ejecución de la
instrucción en curso.
122
El tratamiento depende de cuál sea el dispositivo de E/S que ha causado la
interrupción, ante la cual debe poder identificar el dispositivo que la ha causado.
La ventaja de este procedimiento es que no se tiene que perder tiempo ejecutando
continuamente rutinas para consultar el estado del periférico. El inconveniente es que
el dispositivo debe tener los circuitos electrónicos necesarios para acceder al sistema
de interrupciones del computador.
IMPORTANCIA DE LAS INTERRUPCIONES
El mecanismo de tratamiento de las interrupciones permite al SO utilizar la CPU en
servicio de una aplicación, mientras otra permanece a la espera de que concluya una
operación en un dispositivo de E/S.
El hardware se encarga de avisar al SO cuando el dispositivo de E/S ha terminado y el
SO puede intervenir entonces, si es conveniente, para hacer que el programa que
estaba esperando por el dispositivo, se continúe ejecutando.
En ciertos intervalos de tiempo puede convenir no aceptar señales de interrupción. Por
ello las interrupciones pueden inhibirse por programa (aunque esto no deben poder
hacerlo las mismas).
Un ejemplo de sincronismo por interrupción es el almacenamiento de caracteres
introducidos mediante el teclado. Cuando se introduce un carácter, se codifica en el
registro de datos del dispositivo y además se activa un bit del registro de estado
quien crea una interrupción en el hardware. El procesador deja temporalmente la
tarea que estaba completando y ejecuta la rutina de atención a la interrupción
correspondiente. El teclado almacena el carácter en el vector de memoria intermedia
(también llamado buffer) asociada al teclado y despierta el proceso que había en el
estado de espera de la operación de entrada/salida.
EXCEPCIONES
123
Cuando la CPU intenta ejecutar una instrucción incorrectamente construida, la unidad
de control lanza una excepción para permitir al SO ejecutar el tratamiento adecuado.
Al contrario que en una interrupción, la instrucción en curso es abortada. Las
excepciones al igual que las interrupciones deben estar identificadas.
Clases de excepciones
Las instrucciones de un programa pueden estar mal construidas por diversas razones:
El código de operación puede ser incorrecto.
Se intenta realizar alguna operación no definida, como dividir por cero.
La instrucción puede no estar permitida en el modo de ejecución actual.
La dirección de algún operando puede ser incorrecta o se intenta violar alguno de sus
permisos de uso.
Importancia de las excepciones
El mecanismo de tratamiento de las excepciones es esencial para impedir, junto a los
modos de ejecución de la CPU y los mecanismos de protección de la memoria, que las
aplicaciones realicen operaciones que no les están permitidas. En cualquier caso, el
tratamiento específico de una excepción lo realiza el SO.
Como en el caso de las interrupciones, el hardware se limita a dejar el control al SO, y
éste es el que trata la situación como convenga.
Es bastante frecuente que el tratamiento de una excepción no retorne al programa
que se estaba ejecutando cuando se produjo la excepción, sino que el SO aborte la
ejecución de ese programa. Este factor depende de la pericia del programador para
controlar la excepción adecuadamente.
COMPONENTES DE UN SISTEMA OPERATIVO
124
Componentes del Sistema Operativo.
GESTIÓN DE PROCESOS
Un proceso es simplemente, un programa en ejecución que necesita recursos para
realizar su tarea: tiempo de CPU, memoria, archivos y dispositivos de E/S. El SO es el
responsable de:
Crear y destruir los procesos.
Parar y reanudar los procesos.
Ofrecer mecanismos para que se comuniquen y sincronicen.
La gestión de procesos podría ser similar al trabajo de oficina. Se puede tener una
lista de tareas a realizar y a estas fijarles prioridades alta, media, baja por ejemplo.
Debemos comenzar haciendo las tareas de prioridad alta primero y cuando se
terminen seguir con las de prioridad media y después las de baja. Una vez realizada la
tarea se tacha. Esto puede traer un problema que las tareas de baja prioridad pueden
que nunca lleguen a ejecutarse. y permanezcan en la lista para siempre. Para solucionar
esto, se puede asignar alta prioridad a las tareas más antiguas.
GESTIÓN DE LA MEMORIA PRINCIPAL
La Memoria es una gran tabla de palabras o bytes que se referencian cada una
125
mediante una dirección única. Este almacén de datos de rápido accesos es compartido
por la CPU y los dispositivos de E/S, es volátil y pierde su contenido en los fallos del
sistema. El SO es el responsable de:
Conocer qué partes de la memoria están siendo utilizadas y por quién.
Decidir qué procesos se cargarán en memoria cuando haya espacio disponible.
Asignar y reclamar espacio de memoria cuando sea necesario.
GESTIÓN DEL ALMACENAMIENTO SECUNDARIO
Un sistema de almacenamiento secundario es necesario, ya que la memoria principal
(almacenamiento primario) es volátil y además muy pequeña para almacenar todos los
programas y datos. También es necesario mantener los datos que no convenga
mantener en la memoria principal. El SO se encarga de:
Planificar los discos.
Gestionar el espacio libre.
Asignar el almacenamiento.
Verificar que los datos se guarden en orden
EL SISTEMA DE E/S
Consiste en un sistema de almacenamiento temporal (caché), una interfaz de
manejadores de dispositivos y otra para dispositivos concretos. El sistema operativo
debe gestionar el almacenamiento temporal de E/S y servir las interrupciones de los
dispositivos de E/S.
SISTEMA DE ARCHIVOS
Los archivos son colecciones de información relacionada, definidas por sus creadores.
126
Éstos almacenan programas (en código fuente y objeto) y datos tales como imágenes,
textos, información de bases de datos, etc. El SO es responsable de:
Construir y eliminar archivos y directorios.
Ofrecer funciones para manipular archivos y directorios.
Establecer la correspondencia entre archivos y unidades de almacenamiento.
Realizar copias de seguridad de archivos.
Existen diferentes Sistemas de Archivos, es decir, existen diferentes formas de
organizar la información que se almacena en las memorias (normalmente discos) de los
ordenadores. Por ejemplo, existen los sistemas de archivos FAT, FAT32, EXT3,
NTFS, XFS, etc.
Desde el punto de vista del usuario estas diferencias pueden parecer insignificantes a
primera vista, sin embargo, existen diferencias muy importantes. Por ejemplo, los
sistemas de ficheros FAT32 y NTFS, que se utilizan fundamentalmente en sistemas
operativos de Microsoft, tienen una gran diferencia para un usuario que utilice una
base de datos con bastante información ya que el tamaño máximo de un fichero con un
Sistema de Archivos FAT32 está limitado a 4 gigabytes, sin embargo, en un sistema
NTFS el tamaño es considerablemente mayor.
SISTEMAS DE PROTECCIÓN
Mecanismo que controla el acceso de los programas o los usuarios a los recursos del
sistema. El SO se encarga de:
Distinguir entre uso autorizado y no autorizado.
Especificar los controles de seguridad a realizar.
127
Forzar el uso de estos mecanismos de protección.
SISTEMA DE COMUNICACIONES
Para mantener las comunicaciones con otros sistemas es necesario poder controlar el
envío y recepción de información a través de las interfaces de red. También hay que
crear y mantener puntos de comunicación que sirvan a las aplicaciones para enviar y
recibir información, y crear y mantener conexiones virtuales entre aplicaciones que
están ejecutándose localmente y otras que lo hacen remotamente.
PROGRAMAS DE SISTEMA
Son aplicaciones de utilidad que se suministran con el SO pero no forman parte de él.
Ofrecen un entorno útil para el desarrollo y ejecución de programas, siendo algunas de
las tareas que realizan:
Manipulación y modificación de archivos.
Información del estado del sistema.
Soporte a lenguajes de programación.
Comunicaciones.
GESTOR DE RECURSOS
Como gestor de recursos, el Sistema Operativo administra:
La CPU (Unidad Central de Proceso, donde está alojado el microprocesador).
Los dispositivos de E/S (entrada y salida)
La memoria principal (o de acceso directo).
Los discos (o memoria secundaria).
Los procesos (o programas en ejecución).
128
y en general todos los recursos del sistema.
CLASIFICACIÓN
ADMINISTRACIÓN DE TAREAS
Monotarea : Solamente puede ejecutar un proceso (aparte de los procesos del propio
S.O.) en un momento dado. Una vez que empieza a ejecutar un proceso, continuará
haciéndolo hasta su finalización y/o interrupción.
Multitarea: Es capaz de ejecutar varios procesos al mismo tiempo. Este tipo de S.O.
normalmente asigna los recursos disponibles (CPU, memoria, periféricos) de forma
alternada a los procesos que los solicitan, de manera que el usuario percibe que todos
funcionan a la vez, de forma concurrente.
ADMINISTRACIÓN DE USUARIOS
Monousuario: Si sólo permite ejecutar los programas de un usuario al mismo tiempo.
Multiusuario : Si permite que varios usuarios ejecuten simultáneamente sus programas,
accediendo a la vez a los recursos de la computadora. Normalmente estos sistemas
operativos utilizan métodos de protección de datos, de manera que un programa no
pueda usar o cambiar los datos de otro usuario.
MANEJO DE RECURSOS
Centralizado: Si permite utilizar los recursos de una sola computadora.
Distribuido: Si permite utilizar los recursos (memoria, CPU, disco, periféricos...) de
más de una computadora al mismo tiempo.
129