Você está na página 1de 54

ESTRUCTURA INTERNA DE COMPUTADORAS

1. Introducción
2. Generaciones de computadoras
3. Unidad Central del Sistema
4. Unidad Central de Proceso
5. Unidad de Control (CU)
6. Unidad Aritmética y Lógica (ALU)
7. Registros
8. Memoria de Acceso Aleatorio (RAM)
9. Memoria ROM
10. Memoria Caché
11. Memorias externas
12. Buses
13. Arquitecturas de Bus
14. Reloj
15. Tarjetas de expansión interna
16. Tarjetas Controladoras de Periféricos
17. Tarjetas de Expansión Controladoras del Modo de Video
18. Tarjetas Controladoras de Comunicaciones
19. Jerarquía de computadoras
20. Modelo de Von Neumann
21. Los componentes físicos de una unidad de disco duro
22. Organización de la memoria semiconductora
23. El Procesador
24. Lenguaje ensamblador
25. Bibliografía
1.- INTRODUCCIÓN
El concepto de arquitectura de computadoras en el entorno
informático proporciona una descripción de la construcción y distribución
física de los componentes de la computadora. Son todos aquellos
atributos que tienen un impacto directo en la ejecución lógica de un
programa.
Mientras tanto, el concepto de organización de computadoras se
refiere a las unidades funcionales y sus interconexiones.
La estructura es el modo en el que los componentes están
interconectados.
El funcionamiento es la operación de cada componente individual
como parte de la estructura, tales como el procesamiento de datos, el
almacenamiento de datos, la transferencia de datos y el control.
Gráficamente, las funciones serían algo así:

* A) Transferencia de datos. * B) Almacenamiento.


* C) Procesamiento de datos almacenados. * D) Entrada o salida de datos con un
procesamiento previo. La arquitectura de una computadora explica
la situación de sus componentes y permite determinar las posibilidades
de que un sistema informático, con una determinada configuración,
pueda realizar las operaciones para las que se va a utilizar.
Cualquier usuario que desee adquirir un sistema informático, tanto si es
una gran empresa como un particular, debe responder a una serie de
preguntas previas: ¿qué se desea realizar con el nuevo sistema
informático? ¿Cuáles son los objetivos a conseguir? ¿Qué software será
el más adecuado para conseguir los objetivos marcados? ¿Qué impacto
va a suponer en la organización (laboral o personal) la introducción del
nuevo sistema informático?
Finalmente, cuando se haya respondido a estas preguntas, el usuario
tendrá una idea aproximada de los objetivos que han de cumplir los
diferentes sistemas informáticos a evaluar.
En la actualidad es muy familiar el aspecto exterior de una computadora
o, por lo menos, de una microcomputadora, pero se ha de advertir que,
salvando las diferencias de tamaño y la posibilidad de teleproceso
(manejo del sistema informático a grandes distancias a través de líneas
de comunicaciones de diferentes tipos), en general, los sistemas
informáticos se dividen físicamente en la unidad central del sistema y
los periféricos que permiten conectarlo al mundo exterior.
La Unidad Central del Sistema es un habitáculo en forma de caja donde
se sitúa el «cerebro» de la computadora, esto es, la unidad central de
proceso (CPU), así como los distintos componentes que van a ayudar al
sistema informático en sus operaciones habituales (bus, memorias,
fuentes de alimentación eléctrica, etcétera).
La unidad central de proceso se compone de:
• Una Unidad de Control que manejará los diferentes componentes del
sistema informático así como los datos a utilizar en los diferentes
procesos.
• Una Unidad Aritmético-Lógica que realizará las diferentes operaciones
de cálculo en las que la computadora basa su funcionamiento.
• Unos Registros del Sistema que sirven como área de trabajo interna a
la unidad central de proceso.
La unidad central de proceso se conecta a una serie de memorias que le
sirven como soporte para el manejo de los datos y programas que se
han de utilizar mientras se encuentre operativa.
Si la computadora está procesando datos al vuelo (los datos se
introducen, se procesan, se muestran inmediatamente), la computadora
necesita almacenar temporalmente al menos aquellos datos con los que
está trabajando en un momento dado de la misma manera, la
computadora lleva a cabo una función de almacenamiento de datos a
largo plazo.

ENTORNO OPERATIVO
(FUENTE Y DESTINO DE
DATOS)

Sistema de
transferencia de
datos
PERMANENTE
(BIOS, ROM, USB,
TEMPORAL
DISCO DURO,
(RAM, CACHÉ)
DVD)
Mecanismo de
control Recurso de
Recurso de
almacenamiento
almacenamiento
de datos
de datos

Las diferentes memorias del sistema informático (Random Access


Memory o RAMy Read Only Memory o ROM) son componentes
fundamentales de la computadora ya que van a ser, en el caso de la
RAM, el área de trabajo donde el microprocesador va a realizar las
diferentes operaciones en que se van a descomponer los procesos
solicitados por el usuario, mientras que la ROM va a servir para ayudar a
la computadora a realizar las diferentes operaciones de arranque del
sistema informático previas a que el sistema operativo tome el control
de las diferentes tareas a realizar.
La unidad central de proceso y las memorias se conectan entre ellas por
medio del bus. El bus es un enlace de comunicaciones que conecta
todos los componentes que configuran el sistema informático y permite
la transferencia de información entre ellos. Esta información se compone
de datos y órdenes de comandos para manipular los datos. Existen
varias tecnologías de diseño y construcción de buses entre las que se
pueden distinguir las arquitecturas ISA, EISA y MCA que se verán más
adelante.
Otros componentes que se conectan al bus son los puertos de conexión
de los diferentes periféricos asociados a la unidad central del sistema de
la computadora y que van a permitir configurar el sistema informático
para una serie diferente de operaciones funcionales que siempre han de
cubrir las necesidades del usuario.
Es evidente que la configuración de un sistema informático ha de
realizarse en función de los objetivos operativos que vaya a cubrir la
citada computadora. Así, un sistema informático que se va a dedicar
exclusivamente a CAD/CAM (diseño asistido por computadora) no tendrá
una configuración similar a la de una computadora que va a dedicarse a
controlar los diferentes enlaces de comunicaciones que componen una
red informática.
Los diferentes periféricos que se pueden conectar a un sistema
informático se dividen en cuatro grupos principales:
• Periféricos de Entrada de Información.
• Periféricos de Almacenamiento de Información.
• Periféricos de Salida de Información.
• Periféricos de Comunicaciones.
2.- Generaciones de computadoras
1. Primera Generación (1945-1955)
Se llama así a la generación de tubos al vacío y válvulas.
Se caracterizó por maquinas muy grandes y pesadas. Muy lentas en sus
procesos, tanto que la resolución de programas largos implicaba varios
días de espera. Pese a todo fue muy útil pues podía resolver 5.000
cálculos por segundo.
En las primeras computadoras se puede observar aproximadamente el
siguiente funcionamiento:
Al computador entraban datos, a esos datos se les daba un
procesamiento, dicho procesamiento se configuraba antes de empezar
por medio de cableado, y del computador salían los resultados.
Como se puede apreciar el procesador era para un uso específico.
Un ejemplo de esto es la famosa ENIAC.
Unos datos interesantes:
Trabajaba con numeración decimal.
Pesaba 30 toneladas
Poseía 18000 válvulas.
Consumía 140 Kilowatios.
Realizaba 5000 sumas por segundo.
2. Segunda Generación (1955 - 1965)
Se Llamaba de los transistores y sistemas en Lote.
En las computadoras de esta generación se reemplazaron las válvulas
por los transistores. Con eso se pudo reducir el tamaño de los
ordenadores y aumentar su velocidad de trabajo. Aunque todavía eran
un poco lentas
3. Tercera Generación (1965 - 1980)
Se llama de circuitos integrados y de multiprogramación. El gran
descubrimiento de este periodo fueron los circuitos integrados
denominados CHIP. El circuito integrado consiste en un gran número de
componentes electrónicos (transistores, resistencias, etc.)
miniaturizados y encapsulados en un espacio de pocos centímetros. Este
descubrimiento produjo grandes cambios en cuanto al tamaño de las
computadoras; en velocidad, en compatibilidad, e introduciendo nuevas
técnicas de programación.

4. Cuarta Generación (1980-1990)


Se la denomina de computadora personal o de computadora hogareña.
Se llama así ya que los microprocesadores son chips mucho más
pequeños que contienen en un centímetro cuadrado, miles de Si hacen
memoria quiere decir que la computadora ENIAC con 18.000 válvulas,
que ocupaba mas de una habitación, hoy se resume en un centímetro
cuadrado. De esta forma muchas familias comenzaron a tener
computadoras en sus casas, como por ejemplo las TEXAS INSTRUMENT
99/4A, COMMODORE 64 Y 128, SPECTRUM.
5. Quinta Generación (1990) Hasta la Fecha
En la actualidad los piases más adelantados, entre los que figuran Japón
y Estados Unidos están investigando y produciendo, los primeros
prototipos de nuevos ordenadores que formaran la Quinta Generación.
(Estos tendrán la capacidad de realizar deducciones empleando el
lenguaje del hombre.) Esta Quinta generación que recién comienza se
denominará: Computadora inteligente o inteligencia artificial
Computadoras que se destacaron en ésta generación: PC AT 80286, PC
AT 80386, PC AT 80486. PC AT 586 PENTIUM PENTIUM PRO PENTIUM II
PENTIUM III.
Clasificación de las computadoras basado en tamaño
Supercomputadoras
Una supercomputadora es un tipo de computadora muy potente y
rápida, diseñada para procesar enormes cantidades de información en
poco tiempo y dedicada a una tarea específica.
Por lo mismo son las más caras, su precio alcanza los 30 millones de
dólares o mas; y cuentan con un control de temperatura especial, esto
para disipar el calor que algunos componentes alcanzan a tener.
Ejemplos de tareas a las que son dedicadas las supercomputadoras:
Búsqueda y estudio de la energía y armas nucleares.
 Búsqueda de yacimientos petrolíferos con grandes bases de datos
sísmicos.
 El estudio y predicción de tornados.
 El estudio y predicción del clima de cualquier parte del mundo.
 La elaboración de maquetas y proyectos de la creación de aviones,
simuladores de vuelo.
Sus principales características son:
Velocidad de Proceso: Miles de millones de instrucciones de punto
flotante por segundo.
Usuario a la vez: Hasta miles, en entorno de redes amplias.
Tamaño: Requieren instalaciones especiales y aire acondicionado
industrial.
Facilidad de uso: Solo para especialistas.
Clientes usuales: Grandes centros de investigación.
Penetración social: Prácticamente nula.
Impacto social: Casi nulo.
Parque instalado: Menos de un millar en todo el mundo.
Costo: Hasta decenas de millones cada una.
Macrocomputadoras o Mainframes
Las macrocomputadoras son también conocidas como mainframes. Los
mainframes son sistemas grandes, rápidos y caros con capacidad de
controlar cientos de usuarios en forma simultánea, así como manejar
cientos de dispositivos de entrada y salida.
Su costo va desde los 350 mil dólares hasta varios millones de dólares.
De alguna forma los mainframes son más poderosos que las
supercomputadoras porque soportan mas programas simultáneamente.
Sin embargo las supercomputadoras pueden ejecutar un sólo programa
más rápido que un mainframe.
En el pasado, los Mainframes ocupaban cuartos completos o hasta pisos
enteros de algún edificio, hoy en día, un Mainframe es parecido a una
hilera de archiveros en algún cuarto con piso falso, esto para ocultar los
cientos de cables de los periféricos , y su temperatura tiene que estar
controlada.
Sus principales características son:
Velocidad de proceso: Cientos de millones de instrucciones por segundo
o mas.
Usuario a la vez: Centenares o miles.
Tamaño: Requieren instalaciones especiales y aire acondicionado.
Facilidad de uso: Para especialistas.
Clientes usuales: Grandes corporaciones y gobiernos.
Penetración social: Baja.
Impacto social: Muy alto, aunque pasa inadvertido, la sociedad
industrial moderna no puede funcionar sin ellas.
Parque instalado: Miles en todo el mundo.
Costo: Centenares de miles de dólares o más.
Minicomputadoras
En 1960 surgió la minicomputadora, una versión más pequeña de la
macrocomputadora. Al ser orientada a tareas específicas, no necesitaba
de todos los periféricos que necesita un mainframe, y esto ayudo a
reducir el precio y costos de mantenimiento.
En general, una minicomputadora, es un sistema multiproceso (varios
procesos en paralelo) capaz de soportar de 10 hasta 200 usuarios
simultáneamente. Actualmente se usan para almacenar grandes bases
de datos, automatización industrial y aplicaciones multiusuario.
Sus principales características son:
Velocidad de proceso: Cientos de millones de instrucciones por segundo.
Usuario a la vez: Hasta decenas, o cientos cuando se usan en red.
Tamaño: Reducido; no siempre necesitan instalaciones especiales.
Facilidad de usos: Para especialistas.
Clientes usuales: Universidades, empresas medianas. Suelen funcionar
como servidores de redes.
Penetración social: Baja.
Impacto social: Reducido, aunque amplio en los entornos de las redes.
Parque instalado: Cientos de miles.
Costo: Decenas de miles de dólares.
Microcomputadoras o PC´s
Las microcomputadoras o Computadoras Personales (PC´s) tuvieron su
origen con la creación de los microprocesadores. Un microprocesador es
"una computadora en un chip". Las PC´s son computadoras para uso
personal y relativamente son baratas y actualmente se encuentran en
las oficinas, escuelas y hogares.
El término PC se deriva de que para el año de 1981, IBM®, sacó a la
venta su modelo "IBM PC", la cual se convirtió en un tipo de
computadora ideal para uso "personal", de ahí que el término "PC" se
estandarizó y los clones que sacaron posteriormente otras empresas
fueron llamados "PC y compatibles", usando procesadores del mismo
tipo que las IBM , pero a un costo menor y pudiendo ejecutar el mismo
tipo de programas.
Existen otros tipos de microcomputadoras, como la Macintosh®, que no
son compatibles con la IBM, pero que en muchos de los casos se les
llaman también "PC´s", por ser de uso personal.
En la actualidad existen variados diseños de PC´s: computadoras
personales, con el gabinete tipo minitorre, con el gabinete horizontal,
computadoras personales portátiles "Laptop" o "Notebook".
Sus principales características son:
Velocidad de proceso: Decenas de millones de instrucciones por
segundo.
Usuario a la vez: Uno (Por eso se llaman Personales).
Tamaño: Pequeño, o portátiles.
Facilidad de uso: Supuestamente fáciles de usar.
Clientes usuales: Pequeñas empresas, oficinas, escuelas, individuos.
Penetración social: Mediana.
Impacto social: Alto, en los países industrializados.
Parque instalado: Cientos de millones en el mundo.
Costo: Pocos miles de dólares.
3.- Unidad Central del Sistema
La Unidad Central del Sistema (System Unit en inglés) es el centro de
operaciones de cualquier computadora existente en el mercado actual.
En la unidad central del sistema se alojan los componentes y circuitería
que van a realizar las tareas fundamentales de la computadora.
Al abrir la unidad central del sistema de una computadora se pueden
apreciar una serie de componentes:
- Placa principal.
- Microprocesador central o unidad central de proceso (CPU).
- Bus.
- Memoria principal.
- Otros componentes controladores.
- Fuente de alimentación eléctrica.
A continuación se estudiará detenidamente cada uno de ellos.
1. Placa Principal.
Es una placa con un circuito impreso donde se conectan los elementos
básicos de la computadora: el microprocesador, el bus y toda o parte de
la memoria principal.
En algunos lugares también aparece denominada como placa base o
placa madre.
2. Microprocesador Central o Unidad Central de Proceso (CPU).
Es el elemento fundamental de la computadora. El microprocesador va a
ocuparse de la ejecución de las órdenes de comandos, los cálculos
matemáticos solicitados por las referidas órdenes, el manejo de los
datos asociados a los cálculos. Otra función importante del
microprocesador va a ser el control de los componentes del sistema
informático conectados a él y que le dan apoyo y le permiten realizar
todas las operaciones que le son solicitadas por los diferentes
programas de aplicación.
El microprocesador se va a ocupar también de controlar y gestionar el
tráfico de datos entre la unidad central del sistema y los periféricos
optimizando los procesos a realizar por la computadora.
3. Bus.
El bus, quizá fuera mejor decir los buses ya que existen varios con
diversas funciones, es un circuito que conecta el procesador central con
todo el resto de componentes de la computadora.
El bus sirve para que le llegue al procesador la información y las
solicitudes de trabajo, desde el exterior, y envíe hacia afuera los
resultados del trabajo realizado.
4. Memoria Principal.
Es la zona de trabajo donde la computadora va a almacenar
temporalmente las órdenes a ejecutar y los datos que deberán
manipular esas órdenes.
Cuanto mayor sea la cantidad de memoria existente en el sistema
informático, mayores serán las posibilidades de trabajo de la
computadora, ya que ésta podrá manipular una cantidad superior de
datos al mismo tiempo (siempre que el sistema operativo lo permita).
5. Componentes de Control.
Son elementos que sirven como apoyo al funcionamiento del
microprocesador central.
Fundamentalmente, son componentes especializados en realizar
determinadas operaciones, descargando al microprocesador central de
estas actividades y permitiéndole obtener una mayor rapidez y
efectividad en el manejo del conjunto del sistema informático.
Los controladores más importantes son el controlador de interrupciones,
el generador de reloj y el controlador de acceso directo a memoria.
Las placas de expansión interna más importantes son las de control del
subsistema de vídeo, que manejarán las señales que envía la CPU a la
pantalla del sistema informático y las del controlador de los discos de la
computadora que controlará el flujo de datos entre la memoria principal
y el subsistema de almacenamiento.
Estos componentes serán estudiados en el apartado concreto de sus
tareas dentro del sistema informático.
6. Fuente de Alimentación Eléctrica.
Las fuentes de alimentación proporcionan la energía eléctrica que
necesita por la computadora para funcionar. Esa energía se estabiliza
para impedir que la computadora se vea afectada por oscilaciones
bruscas en el suministro de las compañías eléctricas.
La fuente de alimentación transforma la corriente alterna de 220 voltios
de la red ciudadana en corriente continua y de menor voltaje, que es la
que necesitan los diferentes componentes de la computadora.
Los voltajes que proporciona la fuente de alimentación son de 12 y 5
voltios. El primero se utiliza para poner en funcionamiento los
componentes mecánicos de la computadora (discos, diskettes, etc.). El
segundo se utiliza en los componentes electrónicos (el microprocesador,
la memoria, el reloj, etc.).
En caso de que se abra la unidad central del sistema de la computadora
es muy importante no manipular la fuente de alimentación; hay que
tener en cuenta que, si el sistema informático está enchufado y
encendido, la fuente de alimentación es potencialmente peligrosa. Si se
está intentando realizar alguna operación dentro de la caja de la unidad,
deben manipularse cuidadosamente los cables que entran y salen de la
caja de la fuente de alimentación y bajo ningún concepto intentar
abrirla.
4.- Unidad Central de Proceso
La Unidad Central de Proceso es el lugar donde se realizan las
operaciones de cálculo y control de los componentes que forman la
totalidad del conjunto del sistema informático.
Las CPU de las actuales computadoras son microprocesadores
construidos sobre un cristal de silicio semiconductor donde se crean
todos los elementos que forman un circuito electrónico (transistores,
etc.) y las conexiones necesarias para formarlo.
El microcircuito se encapsula en una pastilla de plástico con una serie de
conexiones hacia el exterior, en forma de patillas metálicas, que forman
su nexo de unión al resto del sistema informático. Estas pastillas de
plástico, con una multitud de patillas de conexión metálicas, reciben el
nombre de chips.
El microprocesador central de una computadora se divide en:
• Unidad de Control (Control Unit o CU en inglés).
• Unidad Aritmético-Lógica (Aritmethic Control Unit o ALU en inglés).
• Registros.
La Unidad de Control maneja y coordina todas las operaciones del
sistema informático, dando prioridades y solicitando los servicios de los
diferentes componentes para dar soporte a la unidad aritmético-lógica
en sus operaciones elementales.
La Unidad Aritmético-Lógica realiza los diferentes cálculos matemáticos
y lógicos que van a ser necesarios para la operatividad de la
computadora; debe recordarse que todo el funcionamiento del sistema
de una computadora se realiza sobre la base de una serie de
operaciones matemáticas en código binario.
Los Registros son una pequeña memoria interna existente en la CPU que
permiten a la ALU el manejo de las instrucciones y los datos precisos
para realizar las diferentes operaciones elementales.
De la misma forma que la placa principal tiene un bus para conectar la
CPU con los diferentes dispositivos del sistema informático, la unidad de
control tiene un bus interno para conectar sus componentes.
5.- Unidad de Control (CU)
Es la parte de la unidad central de proceso que actúa como
coordinadora de todas las tareas que ha de realizar la computadora.
Asimismo, se encarga de manejar todas las órdenes que la computadora
necesita para realizar la ejecución de las operaciones requeridas por los
programas de aplicación.
Sus funciones Básicas son:
1. Manejar todas las operaciones de acceso, lectura y escritura a cada
una de las posiciones de la memoria principal donde se almacenan las
instrucciones necesarias para realizar un proceso.
2. Interpretar la instrucción en proceso.
3. Realizar las tareas que se indican en la instrucción.
Esta unidad también se ocupa de controlar y coordinar a las unidades
implicadas en las operaciones anteriormente mencionadas, de manera
que se eviten problemas internos que se puedan producir entre los
componentes de la computadora.
La unidad de control, finalmente, comunica entre sí y dirige las entradas
y salidas desde y hasta los periféricos, dando el oportuno tratamiento a
la información en proceso.
Para realizar su cometido, la unidad de control necesita manejar la
siguiente información:
• El registro de estado.
• El registro puntero de instrucciones.
• La instrucción a ejecutar.
• Las señales de entrada/salida.
La salida que proporcionará la unidad de control será el conjunto de
órdenes elementales que servirán para ejecutar la orden solicitada.
Los pasos en que se divide este proceso son:
1. Extraer de la memoria principal la instrucción a ejecutar.
2. Tras reconocer la instrucción, la unidad de control establece la
configuración de las puertas lógicas (las interconexiones de los
diferentes componentes del circuito lógico) que se van a ver
involucradas en la operación de cálculo solicitada por la instrucción,
estableciendo el circuito que va a resolverla.
3. Busca y extrae de la memoria principal los datos necesarios para
ejecutar la instrucción indicada en el paso número 1.
4. Ordena a la unidad involucrada en la resolución de la instrucción en
proceso que realice las oportunas operaciones elementales.
5. Si la operación elemental realizada ha proporcionado nuevos datos,
éstos se almacenan en la memoria principal.
6. Se incrementa el contenido del registro puntero de instrucciones.
6.- Unidad Aritmética y Lógica (ALU)
Su misión es realizar las operaciones con los datos que recibe, siguiendo
las indicaciones dadas por la unidad de control.
El nombre de unidad aritmética y lógica se debe a que puede realizar
operaciones tanto aritméticas como lógicas con los datos transferidos
por la unidad de control.
La unidad de control maneja las instrucciones y la aritmética y lógica
procesa los datos.
Para que la unidad de control sepa si la información que recibe es una
instrucción o dato, es obligatorio que la primera palabra que reciba sea
una instrucción, indicando la naturaleza del resto de la información a
tratar.
Para que la unidad aritmética y lógica sea capaz de realizar una
operación aritmética, se le deben proporcionar, de alguna manera, los
siguientes datos:
1. El código que indique la operación a efectuar.
2. La dirección de la celda donde está almacenado el primer sumando.
3. La dirección del segundo sumando implicado en la operación.
4. La dirección de la celda de memoria donde se almacenará el
resultado.
7.- Registros
Los Registros son un medio de ayuda a las operaciones realizadas por la
unidad de control y la unidad aritmética y lógica. Permiten almacenar
información, temporalmente, para facilitar la manipulación de los datos
por parte de la CPU.
Realizando una similitud con el resto del sistema informático, los
registros son a la CPU como la memoria principal es a la computadora.
Los registros se dividen en tres grupos principales:
• Registros de Propósito General.
• Registros de Segmento de Memoria.
• Registros de Instrucciones.
Seguidamente se presenta una relación completa de los tres grupos de
registros que contiene un microprocesador típico como puede ser el
Intel 80386:
Registros de Propósito General:
(AX) Registro de Datos
(DX) Registro de Datos
(CX) Registro de Datos
(BX) Registro de Datos
(BP) Registro Puntero Base
(SI) Registro Índice Fuente
(DI) Registro Índice Destino
(SP) Registro Puntero de la Pila
Registros de Segmento de Memoria:
(CS) Registro Segmento de Código
(SS) Registro Segmento de la Pila
(DS) Registro Segmento de Datos
(ES) Registro Segmento de Datos Extra
(DS) Registro Segmento de Datos Extra
(ES) Registro Segmento de Datos Extra
Registros de Instrucciones
(FL) Registro de «Flags» o también denominado registro de estado
(IP) Registro Puntero de Instrucción o también denominado registro
Contador de Programa (PC)
De esta relación de registros los cuatro más importantes son:
• El Registro Puntero de Instrucciones.
El registro puntero de instrucciones o contador de programa indica el
flujo de las instrucciones del proceso en realización, apuntando a la
dirección de memoria en que se encuentra la instrucción a ejecutar.
Dado que las instrucciones de un programa se ejecutan de forma
secuencial, el procesador incrementará en una unidad este registro cada
vez que ejecute una instrucción, para que apunte a la siguiente.
La información que almacena este registro se puede modificar cuando
una interrupción externa, o la propia ejecución del proceso en curso,
provoquen una alteración en la secuencia de operaciones. Esta
alteración transferirá el control del sistema informático a otro proceso
diferente al que está en ejecución.
• El Registro Acumulador.
Es el Registro donde se almacenan los resultados obtenidos en las
operaciones realizadas por la unidad aritmética y lógica.
Su importancia radica en las características de la información que
almacena, ya que con su contenido se realizan todas las operaciones de
cálculo que ha de ejecutar la unidad aritmética y lógica.
• El registro de Estado.
El Registro de Estado o registro de “flags” no es un solo registro
propiamente dicho, ya que se compone de varios registros de menor
tamaño; este tamaño puede ser incluso de un solo bit.
El registro de estado se utiliza para indicar cambios de estados y
condiciones en los otros registros existentes en el sistema informático.
Estos cambios en la situación de los demás registros se producen debido
a las modificaciones del entorno a lo largo de la ejecución de los
procesos realizados por el sistema informático.
• El Registro Puntero de la Pila.
Este Registro almacena la dirección de la zona de la memoria donde
está situada la parte superior de la pila.
La Pila es una zona de los registros de segmento de memoria que la
unidad aritmética y lógica utiliza para almacenar temporalmente los
datos que está manipulando. Cuando la cantidad de datos a manejar es
demasiado grande u otras necesidades del proceso impiden que estos
datos puedan almacenarse en los registros creados para ello se envían a
la pila, donde se almacenan hasta que la unidad de control recupera la
información para que la procese la unidad aritmética y lógica.
La ventaja de manejar una pila como almacén de información es que la
información que se guarda en ella tiene que entrar y salir,
obligatoriamente, por una sola dirección de memoria. Esto permite que
la unidad de control no necesite conocer más que esa dirección para
poder manejar los datos almacenados en la pila.
Memoria Principal
La Memoria Principal es la zona de la unidad central de sistema que
almacena la información, en forma de programas y datos, que se va a
procesar seguidamente o va a servir de apoyo a las diferentes
operaciones que se van a efectuar por la computadora.
La posibilidad del proceso inmediato de la información que almacena la
memoria principal es su característica fundamental, ya que, mientras
que los datos existentes en la memoria principal pueden ser procesados
de inmediato por la unidad central de proceso, la información contenida
en la memoria auxiliar (discos, cintas, etc.) no puede ser procesada
directamente por la unidad central de proceso.
La memoria principal está conectada directamente a los buses, que son
su medio de comunicación con la unidad central de proceso del sistema
informático. La cantidad de memoria existente en una computadora se
verá limitada por la capacidad de direccionamiento del bus; esto forma
el Mapa de Memoria.
La memoria principal está compuesta lógicamente por una serie de
celdas de bits que permiten almacenar en cada una de ellas un bit de
información en código binario (0, 1) que será parte de un dato o una
instrucción.
Para poder identificar cada una de las celdas de la memoria, éstas se
numeran; a este número se le llama dirección y es el medio a través del
cual la unidad de control puede manejar la información.
Las direcciones de la memoria se localizan a través del mapa de
memoria. La dirección de cada celda de la memoria se establece por una
matriz en la que los parámetros son el número total de direcciones y la
longitud de palabra que maneja el sistema informático. Esto supone una
limitación, ya que la computadora sólo puede manejar un número
limitado de bits de dirección en sus operaciones de direccionamiento.
La Palabra representa la cantidad de bits de información manejada en
paralelo por la computadora. Tamaños típicos de palabras son 8 bits, 16
bits, 32 bits, etc.
Una vez localizada la dirección de la celda de memoria se podrán
realizar dos operaciones: leer la información existente en ella o bien
escribir nueva información para poder ser almacenada y posteriormente
procesada.
Para poder determinar si el sistema informático va a leer o escribir se
utiliza el registro de datos. El registro de datos es un bit que, según el
valor de la información que contenga (0,1) indica a la unidad de control
si se va a leer o escribir en el acceso a la memoria que se esté
realizando en ese momento. En ambos casos, esta operación se realiza a
través del bus de datos.
Cuando la unidad de control lee de la celda de memoria, necesita que se
le proporcione una dirección a la cual ir a leer. La información existente
en la celda no se destruye.
Cuando la unidad de control escribe en la celda de memoria, debe
recibir dos informaciones: la dirección de la memoria donde escribir y la
información que se debe escribir propiamente dicha. La información
existente en la celda de memoria previamente se destruye, ya que lo
que había escrito se sustituye por una nueva información.
La memoria principal se divide fundamentalmente en dos partes: Volátil
y No Volátil.
La Memoria Volátil pierde la información almacenada en su interior si el
sistema informático que la soporta es apagado. Esta parte de la
memoria principal se conoce como RAM (Memoria de Acceso Aleatorio o
Random Access Memory).
La parte de la Memoria principal que No es Volátil es la ROM (Memoria
de Sólo Lectura o Read Only Memory). Esta memoria es de sólo lectura y
la computadora no puede escribir sobre ella. Su función principal es el
arranque del sistema informático.
Las Memorias Volátiles pueden ser estáticas, también llamadas RAM
(Memorias de Acceso Aleatorio o Random Access Memory), o dinámicas,
denominadas en este caso DRAM (Memorias Dinámicas de Acceso
Aleatorio o Dinamic Random Access Memory). Más adelante se verán
más detenidamente.
Las Memorias No Volátiles se dividen en memorias de Sólo Lectura
(ROM) y en otras que permiten la Manipulación de la Información que
contienen por diversos medios especiales que se verán más adelante.
Existen dos modos distintos de Acceso a la Memoria:
• Acceso por Palabras.
• Acceso por Bloques.
1. Acceso por Palabras.
También se le denomina acceso aleatorio. La operación de acceso se
realiza sobre una sola palabra de información. Recuérdese que palabra
es la cantidad de bits que maneja el sistema informático al mismo
tiempo.
Este tipo de acceso únicamente se utiliza con memorias estáticas (RAM)
ya que el tiempo de acceso empleado es siempre el mismo.
2. Acceso por Bloques.
Es el modo de acceso utilizado en las memorias dinámicas. Consiste en
empaquetar en un bloque un conjunto de datos al que se añade una
cabecera para identificarlo. El acceso se realizará a la cabecera del
bloque y una vez en ella se accederá a la información que contiene.
El acceso en las memorias dinámicas se realiza por bloques, debido a
que tardan más tiempo que las estáticas en acceder a una zona de la
memoria. La ventaja es que una vez que acceden a la zona donde se
sitúa el bloque son muy rápidas en acceder a la información existente.
Generalmente, la memoria que posee una computadora recién adquirida
no es la máxima que el bus puede direccionar, por lo que la memoria
principal puede ampliarse incrementando el número de unidades de
memoria conectadas. Conviene recordar que las placas de memoria son
un factor fundamental en el costo total de adquisición del sistema
informático.
Debe tenerse en cuenta que si la cantidad de memoria principal del
sistema informático no es muy grande el procesador se verá restringido
en su potencia por la limitada capacidad de manipulación y acceso a los
datos.
Las Tecnologías para fabricar memorias se caracterizan por:
• Coste.
• Tiempo de acceso.
• Capacidad de almacenamiento.
La Optimización se consigue con una gran capacidad de
almacenamiento, un tiempo de acceso muy corto y un costo pequeño.
Las memorias se dividen físicamente en:
1. Soporte de Almacenamiento de la Información.
Generalmente son de naturaleza magnética. Está compuesto por
pequeños dipolos que pueden tomar dos estados en los que la
información toma un valor en cada uno de ellos. Cada estado se obtiene
por medio de la aplicación de una señal eléctrica exterior generada por
el elemento de lectura y escritura.
2. Elemento de Escritura y Lectura.
Este dispositivo introducirá y obtendrá la información de la memoria.
Para Escribir el dispositivo produce una corriente eléctrica local que
provoca un cambio estable en el campo magnético de la celda de
memoria.
Para Leer el dispositivo determinará el campo magnético de la celda de
memoria y sabrá cual es el valor existente.
3. Mecanismo de Direccionamiento.
Pueden ser de dos tipos dependiendo de que las memorias sean
estáticas o dinámicas.
En las Memorias Estáticas el direccionamiento es un cableado directo a
la celda de memoria.
En las Memorias Dinámicas se utiliza una información de control
almacenada con los datos que configuran el circuito para direccionar la
lectura o escritura al lugar donde se almacena la información.
La memoria se divide en varias capas o niveles con una estructura cuya
forma puede recordarnos a una estructura piramidal.

Nombre Tamaño Tiempo de Acceso


Máximo

Registros Hasta 200 Menos de 10


Bytes Nanosegundos

Memoria Hasta 512 Entre 10 y 30


Caché Bytes Nanosegundos

Memoria Más de 1 Entre 30 y 100


Principal Gigabyte Nanosegundos
El vértice de la pirámide sería una pequeña cantidad de memoria, los
registros, que se caracterizan por una capacidad de almacenamiento de
información muy pequeña, pero que poseen la ventaja de tener un
tiempo de acceso muy reducido, inferior a los 10 nanosegundos.
La base de nuestra hipotética pirámide es la memoria principal, donde
existe una mayor cantidad de espacio (puede llegar hasta 1 gigabyte,
esto es, mil millones de bytes), pero que tiene la desventaja de que el
tiempo de acceso es muy superior, lo que la convierte en mucho más
lenta que los registros.
Entre ambas se situaría una zona de memoria que se llama memoria
caché. La memoria caché es una zona especial de memoria que sirve
para optimizar los tiempos de acceso a la memoria RAM por métodos
estadísticos.
8.- Memoria de Acceso Aleatorio (RAM)
Las Memorias de Acceso Aleatorio (RAM: Random Access Memory) son
memorias construidas sobre semiconductores donde la información se
almacena en celdas de memoria que pueden adquirir uno cualquiera de
los dos valores del código binario.
Las memorias de acceso aleatorio son memorias en la que se puede leer
y escribir información. Permite el acceso a cualquier información que
contenga con la misma velocidad. Esto significa que se puede acceder
aleatoriamente a cualquier información almacenada sin que se afecte la
eficiencia del acceso. Contrasta con las memorias secuenciales, por
ejemplo una cinta magnética, donde la facilidad de acceso a una
información depende del lugar de la cinta donde esté almacenada.
Las tecnologías de memorias RAM se basan en Celdas de Memoria. La
memoria RAM es volátil, esto es, cuando se corta la alimentación
eléctrica se pierde toda la información que estuviera almacenada en
este tipo de memoria. La comunicación de la RAM con la CPU se realiza
a través del Bus de Direcciones y el Bus de Datos.
La memoria RAM se utiliza tanto para almacenar temporalmente
programas y datos como para guardar los resultados intermedios que se
están manipulando durante un proceso.
Una celda de memoria concreta de la RAM se puede referenciar con una
dirección de Segmento de Memoria y un valor determinado dentro de
ese segmento llamado «desplazamiento».
La RAM está dividida en segmentos de memoria para facilitar su manejo
por la unidad de control. Los segmentos de memoria tienen un tamaño
múltiplo de 16, de 0 a F en Hexadecimal. El rango total varía desde 0000
hasta un valor Hexadecimal que depende de la cantidad de
semiconductores de memoria RAM con la que se haya configurado el
sistema de la computadora.
Los segmentos de memoria se agrupan en diferentes Áreas de Trabajo
que permiten delimitar las diversas funciones que se realizan en la
memoria.
Las áreas de la memoria son:
• Memoria Convencional.
• Memoria Extendida.
La Memoria Convencional viene delimitada por la capacidad de
direccionamiento de memoria de la CPU de la computadora y la
capacidad de manejo de memoria que sea capaz de realizar el sistema
operativo que gestiona el sistema informático.
Se puede ver un ejemplo en el microprocesador Intel 8088 que
constituía la CPU de los primeros Personal Computer de IBM; este
microprocesador era capaz de direccionar un máximo de 1 megabyte de
memoria, por ello, las primeras versiones del sistema operativo que lo
gestionaba no necesitaban manejar más de 640 kilobytes para poder
realizar su trabajo.
En la actualidad, las unidades centrales de proceso, como el
microprocesador 80486, pueden llegar a manejar hasta 4 gigabytes de
memoria, por lo que los sistemas operativos como OS/2 o WINDOWS han
previsto esta posibilidad, pudiendo manejar esa cantidad de memoria.
La Memoria Convencional se Divide en:
• Memoria Baja.
• Memoria Alta.
La Memoria Baja es el área de memoria del sistema. Ocupa las primeras
direcciones de la memoria convencional y está ocupada por las tablas de
los vectores de las interrupciones, las rutinas de la ROM-BIOS y la parte
residente del sistema operativo.
La Memoria Alta, también se denomina área de memoria del usuario, es
la zona en la que se sitúan los códigos de los programas ejecutables y
los datos que éstos manejan en las diferentes aplicaciones que la
computadora ejecuta.
Puede ocurrir que la memoria convencional, es decir, la memoria que
existe en la configuración de la computadora no sea suficiente para
poder realizar ciertas operaciones en ese sistema informático; para
poder solventar ese problema se utiliza la memoria extendida.
La Memoria Extendida se utiliza en computadoras que poseen una CPU
que puede direccionar una gran cantidad de memoria, más de 1
megabyte, asociada a sistemas operativos que permiten gestionarla
correctamente, es decir, los sistemas operativos multitareas o
multiusuarios como UNIX, WINDOWS, sistemas operativos LAN, etc.
Estos sistemas operativos permiten instalar el código de los programas
de aplicaciones y los datos que éstos manejan fuera del área de la
memoria convencional denominada área de memoria del usuario,
pudiendo, por tanto, realizar más de un proceso al mismo tiempo o
permitiendo trabajar a varios usuarios a la vez en la misma
computadora, como en una red de área local.
Sin embargo, puede ocurrir que la memoria extendida no tenga el
tamaño suficiente para que todos los procesos o todos los usuarios
puedan realizar sus tareas al mismo tiempo; una solución que se utiliza
para resolver este problema es una simulación de la memoria de trabajo
llamada Memoria Virtual.
Esta memoria virtual consiste en que cuando el sistema informático
intenta utilizar más memoria de trabajo que la que realmente existe, el
gestor de la memoria salva una parte de la información que existe en la
memoria, en el disco duro del sistema informático.
La parte de la memoria salvada en el disco se llama página; esta página
de memoria almacenada queda disponible en la memoria de trabajo
para ser utilizada por el sistema informático. Cuando la computadora
necesite utilizar la información almacenada en la página guardada en el
disco del sistema informático volverá a repetir el proceso salvando otra
página de memoria en el disco y recuperando la que estaba almacenada
en él.
La Memoria Virtual tiene Ventajas e Inconvenientes.
Entre las Ventajas merece la pena destacar que nos permite utilizar una
gran cantidad de software, al mismo tiempo dentro del sistema
informático, que de otra forma no se podría utilizar al no tener suficiente
memoria y que nos permite utilizar mejor los recursos del sistema
informático.
El principal Inconveniente que conlleva la memoria virtual es que si
existe una excesiva cantidad de páginas se ralentiza considerablemente
la velocidad de proceso del sistema informático al tener que acceder
constantemente al disco, pudiendo, por ello, causar colapsos en los
diferentes procesos.
Un tipo diferente de ampliación de la memoria de trabajo es la
denominada Memoria Expandida. Este tipo de memoria utiliza una serie
de bancos de memoria en forma de circuitos integrados que se añaden a
la circuitería básica de la computadora.
El estándar de memoria expandida lo instituyeron Lotus, Intel y
Microsoft, por lo que en algunos lugares puede aparecer como memoria
LIM.
La memoria expandida utilizaba una zona de la memoria convencional
para crear un mapa de la cantidad de memoria expandida que se añade
al sistema informático. El mapa permitirá que, cuando un programa de
aplicación lo solicite, el gestor de la memoria expandida distribuya por
las diferentes páginas en que se dividen los bancos de memoria los
datos que la aplicación no puede manejar en la memoria convencional.
Como los tipos de memorias vistos anteriormente, la Memoria Expandida
tiene también ventajas e inconvenientes.
La principal Ventaja es que al no realizar accesos al disco del sistema
informático es mucho más rápida que la memoria virtual, pero el
Inconveniente con que se encuentra la memoria expandida es que como
los que tienen que solicitar su utilización son los propios programas de
aplicación, en este tipo de memorias sólo se pueden almacenar datos,
debiéndose colocar el código de los programas de aplicación en la
memoria convencional.
Existen dos tipos de memorias RAM:
• RAM Estáticas.
Son memorias RAM convencionales que mantienen la información
almacenada en ellas permanentemente, mientras se mantenga la
alimentación eléctrica.
• RAM Dinámicas (DRAM).
La diferencia fundamental entre este tipo de memorias y las memorias
RAM estáticas es que debido a que la celda de memoria donde
almacenan la información tiende a descargarse, por tanto a perder la
información almacenada en ella, se ha de producir un «refresco», esto
es, una regrabación de la información almacenada cada pocos
milisegundos para que no se pierdan los datos almacenados.
La ventaja con respecto a las memorias RAM convencionales es su bajo
costo para tamaños de memorias medios y grandes.
Un tipo específico de memorias DRAM son las VRAM (Vídeo RAM). Este
tipo de memorias están diseñadas específicamente para almacenar los
datos de vídeo de los sistemas informáticos. Estas memorias son
especialmente útiles para manejar subsistemas de vídeo, ya que su
necesidad de refresco constante permite un manejo más sencillo de las
cambiantes señales de vídeo.
9.- Memoria ROM
La ROM (Read Only Memory) es una «Memoria Sólo de Lectura». En ella
sólo se puede leer la información que contiene, no es posible
modificarla. En este tipo de memoria se acostumbra a guardar las
instrucciones de arranque y el funcionamiento coordinado de la
computadora.
Físicamente, las memorias ROM son cápsulas de cristales de silicio. La
información que contienen se graba de una forma especial por sus
fabricantes o empresas muy especializadas.
Las memorias de este tipo, al contrario que las RAM, no son volátiles,
pero se pueden deteriorar a causa de campos magnéticos demasiado
potentes.
La comunicación con el procesador se realiza, al igual que en las
memorias RAM, a través de los buses de direcciones y datos.
Al existir sólo la posibilidad de lectura, la señal de control, que en la RAM
se utilizaba para indicar si se iba a leer o escribir, sólo va a intervenir
para autorizar la utilización de la memoria ROM.
Además de las ROM, en las que sólo puede grabar información el
fabricante de la memoria, existen otros tipos de memorias no volátiles
que se pueden modificar de diversas formas y son de una flexibilidad y
potencia de uso mayor que las simples ROM. La utilización de este tipo
de memorias permite a los usuarios configurar computadoras dedicadas
a tareas concretas, modificando simplemente la programación de los
bancos de memoria del sistema informático. Estas memorias son:
• PROM (Programable Read Only Memory o Memoria Programable Sólo
de Lectura).
Las memorias PROM son memorias sólo de lectura que, a diferencia de
las ROM, no vienen programadas desde la fábrica donde se construyen,
sino que es el propio usuario el que graba, permanentemente, con
medios especiales la información que más le interesa.
• EPROM (Erasable-Programable Read Only Memory o Memoria Borrable
y Programable Sólo de Lectura).
Las EPROM tienen la ventaja, con respecto a las otras memorias ROM,
de que pueden ser reutilizables ya que, aunque la información que se
almacena en ellas permanece permanentemente grabada, ésta se
puede borrar y volver a grabar mediante procesos especiales, como
puede ser el mantenerlas durante treinta minutos bajo una fuente de
rayos ultravioletas para borrarlas.
• EEPROM (Electrically Erasable-Programable Read Only Memory o
Memoria Borrable y Programable Eléctricamente Sólo de Lectura).
Las EEPROM aumentan, más si cabe, su ventaja con respecto a los
anteriores tipos de memorias, ya que la información que se almacena en
ellas se puede manipular con energía eléctrica y no es necesaria la
utilización de rayos ultravioletas.
10.- Memoria Caché
La Memoria Caché es una zona especial de la memoria principal que se
construye con una tecnología de acceso mucho más rápida que la
memoria RAM convencional. La velocidad de la caché con respecto a la
memoria RAM convencional es del orden de 5 a 10 veces superior.
A medida que los microprocesadores fueron haciéndose más y más
rápidos comenzó a producirse una disfunción con la velocidad de acceso
a la memoria de trabajo que se conectaba a ellos en el sistema
informático.
Cada vez que el microprocesador del sistema informático accede a la
memoria RAM para leer o escribir información tiene que esperar hasta
que la memoria RAM está lista para recibir o enviar los datos. Para
realizar estas operaciones de lectura y escritura más rápidamente se
utiliza un subsistema de memoria intermedia entre el microprocesador y
la memoria RAM convencional que es la denominada memoria caché.
El funcionamiento de la memoria caché se basa en que al cargar una
información en la memoria principal (sean instrucciones o datos) ésta se
carga en zonas adyacentes de la memoria. El controlador especial
situado dentro del subsistema de la memoria caché será el que
determine dinámicamente qué posiciones de la memoria RAM
convencional pueden ser utilizadas con más frecuencia por la aplicación
que está ejecutándose en ese momento y traslada la información
almacenada en ellas a la memoria caché.
La siguiente vez que el microprocesador necesite acceder a la memoria
RAM convencional existirá una gran probabilidad de que la información
que necesita encontrar se encuentre en las direcciones de memoria
adyacentes a las ya utilizadas. Como estas direcciones de memorias
adyacentes ya se encuentran almacenadas en la memoria caché, el
tiempo de acceso a la información disminuye en gran medida.
La utilización de algoritmos estadísticos de acceso a los datos permiten
una gestión mucho más racional del manejo de la memoria RAM
convencional, disminuyendo los tiempos de acceso a la memoria
convencional y acercando ese tiempo de acceso al de la propia caché.
La memoria caché carga en su área de memoria propia el segmento de
la memoria principal contiguo al que se está procesando. Debido a que,
estadísticamente, existe una gran probabilidad de que la siguiente área
de memoria que necesite la aplicación que está corriendo en ese
momento sea la que se encuentra en el área de la caché, se optimiza el
tiempo de acceso a la memoria, ya que debe recordarse que el acceso a
la memoria caché es mucho más rápido que el acceso a la memoria RAM
convencional.
El tamaño de las memorias caché más habituales oscila entre los 8 y los
64 kbytes.
Política de escritura:
- Inmediata: Se realizan todas las operaciones de escritura tanto en
caché como en memoria principal.
- Post-escritura: Se escribe sólo en la caché y utiliza banderas para
comprobar las escrituras en memoria principal.
11.- Memorias externas
La memoria externa hace referencia a todos los dispositivos y medios de
almacenamiento que no son parte de la memoria interna de la
computadora (RAM y ROM). Son parte de la memoria externa los
disquetes, los discos ópticos, los discos duros, las unidades de cinta, los
ZIP, etc. La memoria externa no es fundamental para el funcionamiento
de una computadora.
Actualmente la memoria externa más utilizada es el disco duro, que
permite gran capacidad de almacenamiento y rápida recuperación del
contenido.
En tanto los disquetes ya casi no tienen uso por su limitada capacidad
de almacenamiento, baja velocidad, difícil acceso de la información y
alta probabilidad de pérdida de los datos.
Los discos ópticos reemplazaron a los disquetes. Estos vienen en
distintos formatos como ser CD, DVD, Blu-ray y HD-DVD. También son
muy utilizadas las memorias flash.
RAID
• Arreglo redundante de discos independientes (Redundant Array of
Independent Disks)
• Arreglo redundante de discos poco costosos (Redundant Array of
Inexpensive Disks)
• 6 niveles en uso común
• No una jerarquía
• Conjunto de discos físicos vistos como una unidad lógica por el
Sistema Operativo.
• Los datos se distribuyen a través de las unidades físicas.
• Puede usar capacidad redundante para almacenar información de
paridad.
RAID 0
• No redundante
• Los datos se tiran a través de todos los discos.
• La distribución es por turno rotatorio.
• Mejora la velocidad
– Muchas solicitudes de datos probablemente no en el mismo disco.
– Los discos buscan en paralelo.
– Un conjunto de datos es como si fueran distribuidos a través de varios
discos.
RAID 1
• Discos en espejo.
• Los datos se tiran a través de los discos.
• 2 copias por cada distribución en discos separados.
• Lee de cualquiera.
• Escribe en ambos.
• La recuperación es simple.
– Cambia el disco dañado y re-hacer el espejo.
– No existe el tiempo de sistema caído.
• Caro
RAID 2
• Los discos están sincronizados.
• Las tiras son muy pequeñas.
– Comúnmente un byte/palabra.
• La corrección de errores se calcula a través de los bits
correspondientes en los discos
• Varios discos de paridad almacenan corrección de códigos Hamming
en las posiciones correspondientes.
• Mucha redundancia.
– Cara.
– No usada.
RAID 3
• Similar al RAID 2
• Solo un disco redundante, no importa que tan grande sea el arreglo.
• Un solo bit de paridad para cada conjunto de bits correspondientes.
• Los datos en las unidades que fallen pueden ser reconstruidos de los
datos sobrevivientes y la información de paridad.
• Tasas de transferencia muy altas.
RAID 4
• Cada disco opera de forma independiente.
• Bueno para una tasa alta de solicitudes de E/S.
• Tiras largas.
• La paridad se calcula bit por bit a través de tiras en cada disco.
• La paridad se almacena en los discos de paridad.
RAID 5
• Como el RAID 4
• La paridad se tira a través de todos los discos.
• La asignación para las tiras de paridad es turno rotatorio.
• Evita los cuellos de botella en los discos de paridad.
• Comúnmente usado en servidores de red.
12.- Buses
El Bus es la vía a través de la que se van a transmitir y recibir todas las
comunicaciones, tanto internas como externas, del sistema informático.
El bus es solamente un Dispositivo de Transferencia de Información
entre los componentes conectados a él, no almacena información alguna
en ningún momento.
Los datos, en forma de señal eléctrica, sólo permanecen en el bus el
tiempo que necesitan en recorrer la distancia entre los dos componentes
implicados en la transferencia.
En una unidad central de sistema típica el bus se subdivide en tres
buses o grupos de líneas.
• Bus de Direcciones.
• Bus de Datos.
• Bus de Control.
Bus de Direcciones
Es un canal de comunicaciones constituido por líneas que apuntan a la
dirección de memoria que ocupa o va a ocupar la información a tratar.
Una vez direccionada la posición, la información, almacenada en la
memoria hasta ese momento, pasará a la CPU a través del bus de datos.
Para determinar la cantidad de memoria directamente accesible por la
CPU, hay que tener en cuenta el número de líneas que integran el bus
de direcciones, ya que cuanto mayor sea el número de líneas, mayor
será la cantidad de direcciones y, por tanto, de memoria a manejar por
el sistema informático.
Bus de Datos
El bus de datos es el medio por el que se transmite la instrucción o dato
apuntado por el bus de direcciones.
Es usado para realizar el intercambio de instrucciones y datos tanto
internamente, entre los diferentes componentes del sistema informático,
como externamente, entre el sistema informático y los diferentes
subsistemas periféricos que se encuentran en el exterior.
Una de las características principales de una computadora es el número
de bits que puede transferir el bus de datos (16, 32, 64, etc.). Cuanto
mayor sea este número, mayor será la cantidad de información que se
puede manejar al mismo tiempo.
Bus de Control
Es un número variable de líneas a través de las que se controlan las
unidades complementarias.
El número de líneas de control dependerá directamente de la cantidad
que pueda soportar el tipo de CPU utilizada y de su capacidad de
direccionamiento de información. Estas líneas son utilizadas para
controlar el uso del bus de control y del bus de datos. Se transmiten
órdenes y señales de temporización. Las órdenes son muy diversas, las
más comunes son:
* Escritura en memoria.
* Lectura de memoria.
* Escritura de E/S.
* Lectura de E/S.
* Transferencia reconocida.
* Petición del bus.
* Cesión del bus.
* Petición de interrupción.
* Interrupción reconocida.
* Señal de reloj.
* Inicio.

Jerarquía de buses:
Para mejorar el rendimiento del bus, las jerarquías de buses fueron
implementadas cada vez mas, una primera aproximación a una jerarquía
de bus básica seria la siguiente:
Primero tenemos un bus local, de alta velocidad que conecta el
procesador a la cache, el controlador de la cache también puede
acceder al bus del sistema, con esta implementación, la mayor parte de
los datos a los que va a acceder el procesador, que están en la cache,
serán entregados a una alta velocidad, otro punto a destacar de esta
parte es que los accesos a memoria por parte de la cache no van a
interrumpir el flujo de datos entre procesador y cache.
También se ve la posibilidad de conectar un dispositivo de entrada
salida al bus local.
Luego tenemos el bus del sistema, al cual esta conectada la memoria y
por debajo el bus de expansión, al cual se pueden conectar una amplia
diversidad de dispositivos, entre el bus del sistema y el bus de
expansión se encuentra una interfase, que entre las principales tareas
esta la de adaptar las velocidades de transmisión, por ejemplo para un
dispositivo muy lento conectado al bus de expansión la interfase podría
acumular una cierta cantidad de datos y luego transmitirla a través del
bus del sistema.
El hecho de que cada vez mas salgan al mercado dispositivos que
requieren mas velocidad de transmisión en los buses, hizo que los
fabricantes implementaran los buses de alta velocidad, el cual esta muy
estrechamente ligado al bus local, solo hay un adaptador que los une.
Debajo de este bus tenemos el bus de expansión, mas lento conectado
mediante otro adaptador.
Las señales de temporización indican la validez de los datos que están
en el bus en un momento dado.

Existen varios parámetros y elementos en los buses con los cuales


podemos clasificarlos.
Tipos de buses:
Una clarificación que podemos hacer es según la funcionalidad de este,
los podríamos dividir en dedicados o multiplexados..
Un ejemplo común de dedicados serian el bus de datos y el bus de
direcciones, cada uno se utiliza solo para una función especifica. Esta
situación de bus de datos y de direcciones dedicados es lo más común,
pero podría llegar a implementarse con un solo bus multiplexado el
tiempo. Esto funcionaria a grandes rasgos de la siguiente forma:
Al comienzo de la transferencia se sitúa en el bus la dirección de donde
se quiere leer o a donde se desea escribir, luego se emite por el bus de
datos una señal indicando que en el bus se encuentra una dirección
valida.
A partir de ese momento se dispone de una unidad de tiempo para que
los dispositivos identifiquen si es su dirección, luego de esto se pone en
el mismo bus los datos y se realiza la transferencia en el sentido que lo
indique una orden emitida por el bus de control.
Ventaja de este método es la reducción de la cantidad de lineas, lo cual
ahorra espacio y costos, la desventaja son que para poder implementar
es forma de operar la circuitería en cada modulo tiene que ser mas
compleja, y que el rendimiento del sistema sera menor por no poder
transmitir los datos simultáneamente, en paralelo (datos y dirección).
Otro tipo de clarificación podría ser según su dedicación física:
Podríamos poner como ejemplo el bus de E/S, el cual se encarga de
conectar solo los dispositivos de E/S, este bus se conecta al bus principal
mediante algún adaptador, la ventaja esta en que al ser dedicado solo a
E/S, el rendimiento de este va a ser mejor, ya que solo van a operar con
el los módulos de E/S, y no va a haber tanta competencia por el bus,
este ejemplo lo voy a explicar mas detalladamente cuando llegue al la
parte de E/S.
Método de arbitraje:
Por la razón de que en un momento dado solo puede usar el bus un solo
dispositivo, debe existir un método para decidir quien hace uso de el.
Todos los métodos que existen en general pueden ser clasificados en 2
grandes grupos:
Arbitraje centralizado: Una parte del hardware del sistema denominada
controlador del bus se encarga de decidir el uso del bus en cada
momento, este dispositivo puede ser un modulo separado o puede estar
incorporado al procesador.
Arbitraje distribuido: En este esquema no existe un controlador
centralizado, en su lugar, cada dispositivo que hace uso del bus tiene
que tener incorporada la logica necesaria para poder interactuar con los
demás dispositivos y decidir quien hace uso del bus.
En cualquiera de los dos casos lo que se busca es que se decida quien
va a tener la posesión del bus en un momento dado, procesador, modulo
de E/S o memoria, al cual se lo denomina maestro del bus, el maestro
del bus establecerá una comunicación con otro dispositivo (lectura o
escritura) al cual se lo denominara esclavo.
Temporización:
La temporización clasifica al método utilizado para coordinar los eventos
dentro del bus. Según la temporización usada podemos clasificar los
buses en 2 grupos.
Temporización síncrona:
Todos los eventos del bus se rigen a través del reloj del computador.
Una de las líneas del bus transmite continuamente una señal de reloj,
simplemente una secuencia de unos y ceros, la cual puede ser leída por
todos los dispositivos conectados al bus.
Al intervalo transcurrido en la emisión de un uno y un cero se lo llama
ciclo de reloj, todos los eventos ocurridos dentro del bus comienzan el
principio del ciclo y puede durar uno más.
En este método de temporización todos van al ritmo del reloj.
Temporización asincrónica:
Acá los eventos no se rigen por la línea del reloj, en general todo evento
es disparado por otro evento anterior.
La temporización síncrona es más fácil de implementar y comprobar,
pero es menos flexible que la síncrona. Por ejemplo, en el caso de que
hubiesen varios dispositivos conectados al bus, de distintas velocidades,
todos tienen que funcionar a la velocidad del reloj, si hay uno mas
rápido, este tiene que bajar su velocidad: En cambio con el asíncrono,
cada uno funcionaria a su velocidad, en el mismo bus se trabajaría a
distintas velocidades, cada transferencia se haría con la velocidad
óptima de sus dos partes (maestro-esclavo).
Anchura del bus:
La anchura del bus es simplemente la cantidad de líneas que posee, y
esta directamente relacionado con el rendimiento del sistema, cuanto
mas ancho el bus de direcciones, mayor va a ser la cantidad de
direcciones posibles utilizadas para direccionar memoria y dispositivos
de E/S, y cuanto mas ancho el bus de datos, mayor ya a ser la cantidad
de bis que se va a poder transmitir en paralelo.
13.- Arquitecturas de Bus
Dependiendo del diseño y la tecnología que se utilice para construir el
bus de una microcomputadora se pueden distinguir tres arquitecturas
diferentes:
• Arquitectura ISA.
• Arquitectura MCA.
• Arquitectura EISA.
• Arquitectura ISA.
• Arquitectura ISA
La Arquitectura ISA (Industry Standard Architecture en inglés) es la
arquitectura con que se construyó el bus de los microcomputadores AT
de IBM.
Esta arquitectura se adoptó por todos los fabricantes de
microcomputadoras compatibles y, en general, está basada en el
modelo de tres buses explicado anteriormente. Su tecnología es antigua,
ya que se diseñó a principios de la década de los 80, lo que provoca una
gran lentitud, debido a su velocidad de 8 megahercios y una anchura de
sólo 16 bits.
• Arquitectura MCA.
La Arquitectura MCA (Micro Channel Architecture en inglés) tuvo su
origen en una línea de microcomputadoras fabricadas por IBM, las PS/2
(PS significa Personal System).
Las PS/2 fueron unas microcomputadoras en las que, en sus modelos de
mayor rango, se sustituyó el bus tradicional de las computadoras
personales por un canal de comunicaciones llamado Micro Channel.
El Micro Channel no es compatible, ni en su diseño ni en las señales de
control, con la tecnología de bus tradicional, si bien su misión de
transferencia de direcciones de memoria y datos es similar en ambos
casos. Las ventajas de Micro Channel son una mayor velocidad, 10
megahercios, una anchura de 32 bits, la posibilidad de auto instalación y
una mejor gestión de los recursos conectados al canal gracias a un
control denominado bus master.
• Arquitectura EISA.
La Arquitectura EISA (Extended Industry Standard Architecture en inglés)
surge como una mejora del estándar ISA por parte de un grupode
empresas fabricantes de microcomputadoras compatibles. La velocidad
del bus aumenta, así como la posibilidad de manejo de datos, llegándose
a los 32 bits en paralelo; asimismo posee auto instalación y control de
bus.
La unión del aumento de la velocidad interna del bus y los 32 bits
trabajando en paralelo permite a esta arquitectura una capacidad de
manejo y transferencia de datos desconocida hasta ese momento,
pudiendo llegar hasta los 33 megabytes por segundo.
La gran ventaja de la arquitectura EISA es que es totalmente compatible
con ISA, esto es, una tarjeta de expansión ISA funciona si se la inserta en
una ranura EISA. Evidentemente, no va a poder utilizar totalmente la
potencia del nuevo estándar, funcionando a menor velocidad, pero
funcionando al fin y al cabo.
En la actualidad no existe una arquitectura que tenga el suficiente peso
específico como para desbancar totalmente al resto, si bien, poco a
poco, la arquitectura ISA puede ir desapareciendo de las configuraciones
de los sistemas informáticos dando paso a las otras dos arquitecturas.
14.- Reloj
El reloj de una computadora se utiliza para dos funciones principales:
1. Para sincronizar las diversas operaciones que realizan los diferentes
subcomponentes del sistema informático.
2. Para saber la hora.
El reloj físicamente es un circuito integrado que emite una cantidad de
pulsos por segundo, de manera constante. Al número de pulsos que
emite el reloj cada segundo se llama Frecuencia del Reloj.
La frecuencia del reloj se mide en Ciclos por Segundo, también llamados
Hertzios, siendo cada ciclo un pulso del reloj. Como la frecuencia del
reloj es de varios millones de pulsos por segundo se expresa
habitualmente en Megahercios.
El reloj marca la velocidad de proceso de la computadora generando una
señal periódica que es utilizada por todos los componentes del sistema
informático para sincronizar y coordinar las actividades operativas,
evitando el que un componente maneje unos datos incorrectamente o
que la velocidad de transmisión de datos entre dos componentes sea
distinta.
Cuanto mayor sea la frecuencia del reloj mayor será la velocidad de
proceso de la computadora y podrá realizar mayor cantidad de
instrucciones elementales en un segundo.
El rango de frecuencia de los microprocesadores oscila entre los 4,77
megahercios del primer PC diseñado por IBM y los 200 megahercios de
las actuales computadoras basadas en los chips Intel Pentium.
15.- Tarjetas de expansión interna
Las Tarjetas de Expansión están diseñadas y dedicadas a actividades
específicas, como pueden ser las de controlar la salida de vídeo de la
computadora, gráficas, comunicaciones, etc.
Las tarjetas de expansión no forman parte de la unidad central de
proceso, pero están conectadas directamente a ésta a través del bus,
generalmente dentro de la propia caja de la unidad central del sistema,
y controladas por la CPU en todas sus operaciones.
Las tarjetas de expansión complementan y ayudan a la placa base y, por
tanto, al microprocesador central descargándole de tareas que
retardarían los procesos de la CPU, añadiendo al mismo tiempo una
serie de posibilidades operativas que no estaban previstas en los
primeros modelos de computadoras.
A lo largo de la historia del desarrollo de las computadoras se han ido
aprovechando diseños técnicos anteriores para crear subcomponentes
de sistemas informáticos de complejidad superior; un ejemplo puede ser
el microprocesador 8086 que sirvió como microprocesador principal para
una serie de sistemas informáticos, como fueron los PS/2 de IBM. En la
actualidad puede emplearse como microprocesador de tarjetas gráficas
dedicadas a controlar los subsistemas de vídeo.
Las tarjetas de expansión cumplen una importante cantidad de
cometidos que van desde controlar actividades del proceso general del
sistema informático (subsistema de vídeo, subsistema de
almacenamiento masivo de información en los diferentes discos de la
computadora, etc.) hasta permitir una serie de tareas para las que los
diseñadores del sistema informático no han previsto facilidades o que
debido a su costo sólo se entregan como opcionales.
16.- Tarjetas Controladoras de Periféricos
Las Tarjetas de Expansión Controladoras de Periféricos son placas que
contienen circuitos lógicos y que se conectan al bus de datos para
recibir la información que la CPU envía hacia los periféricos
almacenándola en Buffers, esto es, una serie de Memorias Intermedias
que actúan como amortiguadoras de los flujos de datos que se
transmiten en el interior del sistema informático y descargan al
procesador principal del control del tráfico de señales y datos entre el
procesador y los periféricos exteriores.
Las tarjetas de expansión controladoras de periféricos más importantes
son:
• Las Tarjetas de Expansión Controladoras del Modo de Vídeo.
• Las Tarjetas de Expansión Controladoras de Entrada/Salida de Datos.
• Las Tarjetas de Expansión Controladoras de Comunicaciones.
17.- Tarjetas de Expansión Controladoras del Modo de Video
Este tipo de tarjetas de expansión son también llamadas Tarjetas
Gráficas. Las tarjetas gráficas van a proporcionar diferentes clases de
calidad en la información que el sistema informático va a poder mostrar
en su pantalla.
La información que la computadora va a representar en su pantalla se
encuentra en una zona de la memoria RAM que alimenta periódicamente
al cañón de electrones, a través de la tarjeta controladora del modo
gráfico, de los datos necesarios para representar la información
almacenada en la pantalla del sistema informático.
La pantalla de la computadora se refresca, esto es, modifica el dibujo
que aparece en ella con una periodicidad de entre 50 y 80 veces por
segundo. El dibujo que aparece en la pantalla del sistema informático es
el almacenado en la memoria de vídeo de la computadora y que la
tarjeta gráfica recibe para manejar los datos y enviarlos hacia la pantalla
del sistema informático.
Cuando la tarjeta de vídeo envía la información almacenada en la
memoria hacia la pantalla de la computadora, estos datos pasan por un
convertidor digital/analógico para convertirse en una señal eléctrica
compatible con la necesaria para que el componente de generación de
imágenes de la pantalla del sistema informático (cañón de rayos, LCD,
etc.) forme la imagen en la pantalla de la computadora.
Existen diferencias entre los distintos tipos de tarjetas gráficas entre las
que cabe destacar:
1. Modo de Trabajo.
Es como se va a manejar la información que se va a representar en la
pantalla del sistema informático.
Los modos principales de trabajo son:
• Modo Texto: Se maneja la información en forma de texto, si bien
algunos de estos caracteres pueden utilizarse para realizar dibujos
sencillos.
• Modo Gráfico: Es más completo que el anterior ya que a la posibilidad
del manejo de caracteres se une la de la creación de dibujos complejos.
2. Utilización del Color.
Algunas tarjetas de vídeo pueden manejar una serie de parámetros, en
forma de código binario, que permiten la utilización del color en las
pantallas de los sistemas informáticos que estén preparadas para ello.
La utilización, o no, del color permite realizar la siguiente diferenciación:
• Monocromas: Utilizan sólo un color que resalta sobre el fondo de la
pantalla de la computadora.
• Policromas: Utilizan la serie de tres colores fundamentales (rojo, azul y
verde) para obtener las diferentes mezclas de colores y tonos que se
van a representar en la pantalla del sistema informático.
3. Resolución Gráfica.
Es una matriz formada por la cantidad total de líneas de información y el
número de puntos en que se puede dividir cada una de las líneas. Esta
matriz es la información que la tarjeta gráfica envía hacia la pantalla de
la computadora.
A continuación van a estudiarse los tipos de tarjetas gráficas más
conocidas:
Tarjeta Gráfica Hércules.
Las tarjetas gráficas Hércules son tarjetas de vídeo que trabajan en
modo gráfico en sistemas informáticos cuya configuración incluye
pantallas monocromas.
Fueron diseñadas por Hércules Corp. para poder crear gráficos en las
pantallas monocromas de las primeras computadoras personales debido
a que la tarjeta de vídeo que incluían estos sistemas informáticos, el
Adaptador Monocromo de IBM, sólo podía trabajar en modo texto.
Debido a que Hércules Corp. era una empresa independiente, IBM nunca
consideró a la tarjeta de vídeo creada por ella como un estándar,
aunque sí lo fue de hecho.
Este modelo de tarjeta de vídeo posee una resolución gráfica de 720
puntos por 348 líneas.
Tarjeta Gráfica CGA.
La tarjeta gráfica CGA (Color Graphics Adapter-Adaptador de Gráficos
Color) fue diseñada para introducir el color en el mundo de la
microinformática.
Las tarjetas gráficas CGA trabajan en los modos texto y gráfico,
pudiendo conectarse a ellas pantallas de computadora monocromas y
de color.
El problema que presentan las CGA es que su resolución gráfica es muy
pobre en comparación con el resto de las tarjetas gráficas del mercado,
siendo de 640 puntos por 240 líneas en modo monocromo y de 320
puntos por 200 líneas trabajando con cuatro colores.
Tarjeta Gráfica EGA.
La EGA (Enhanced Graphics Adapter-Adaptador Mejorado de Gráficos) es
una tarjeta de vídeo que trabaja en modo gráfico y mejora en gran
medida las prestaciones de la CGA. Esta tarjeta gráfica trabaja con
pantallas de computadora monocromas o de color.
La resolución de la tarjeta gráfica EGA es de 640 puntos por 350 líneas y
maneja hasta 16 colores al mismo tiempo.
Tarjeta Gráfica MCGA.
Esta Tarjeta Gráfica (Micro channel Graphics Adapter - Adaptador Gráfico
Micro channel) fue diseñada por IBM para trabajar en sus
microcomputadoras del tipo PS/2.
La MCGA tenía una resolución máxima de 640 puntos por 400 líneas en
modo monocromo, reduciéndose a medida que se aumentaba el número
de colores con que se trabajaba.
Tarjeta Gráfica VGA.
La Tarjeta Gráfica VGA (Video Graphics Adapter - Adaptador Vídeo de
Gráficos) se diseñó, como la anterior, para los sistemas informáticos
PS/2 de IBM. La diferencia entre ambas tarjetas gráficas es que si la
anterior se instaló en los sistemas informáticos menos potentes, la VGA
se instaló en los sistemas informáticos más potentes de la gama PS/2,
debido a su mejor resolución.
Al contrario que la MCGA, la tarjeta gráfica VGA sí tuvo un modelo
compatible con el bus habitual de los sistemas PC y gracias a su calidad
de diseño y fabricación ha llegado a convertirse en un estándar dentro
del mercado microinformático.
La resolución de esta tarjeta gráfica tiene dos modos distintos:
• La resolución en modo texto es de 720 puntos por 400 líneas
manejando los dos colores del monocromo.
• La resolución en modo gráfico es de 640 puntos por 480 líneas y
maneja 16 colores.
Tarjeta Gráfica SVGA.
La tarjeta gráfica SVGA (Super Video Graphics Adapte - Super Adaptador
Vídeo de Gráficos) es un diseño de reciente creación. Ha sido introducida
en el mercado como una tarjeta gráfica VGA, ampliada y mejorada, que
rápidamente está consiguiendo una importante cuota de instalación en
las configuraciones de los nuevos sistemas informáticos.
La posibilidad de manejo por la propia tarjeta gráfica de un megabyte de
memoria DRAM, que puede ampliarse hasta los dos megabytes, supone
una importante potencia gráfica que da, a los sistemas
microinformáticos, posibilidades de manejo de gráficos que antes sólo
podían realizar las estaciones de trabajo o las minicomputadoras.
La resolución de esta tarjeta gráfica es muy alta, llegando a los 1.280
puntos por 1.024 líneas.
Tarjetas Controladoras de Entrada y Salida de Datos
La función principal de estos dispositivos es adaptar la información
procesada por la unidad central de proceso, canalizando las
transferencias de información entre la computadora y los dispositivos
periféricos exteriores.
Con las tarjetas controladoras de entrada y salida de datos se consigue:
1. Independencia funcional entre la unidad central de proceso y los
periféricos asociados a ella. Las tarjetas controladoras evitan la
lentitud de los procesos debido a la diferencia de velocidad entre
la CPU y los periféricos.
2. Adaptación de diversos tipos de periféricos al sistema informático,
independientemente de que la operatividad entre ellos y la
computadora no sea compatible.
3. Pueden servir de traductoras entre el modo digital de la
computadora y el analógico del de otros medios por los que se
pueden establecer enlaces entre sistemas informáticos.
18.- Tarjetas Controladoras de Comunicaciones
Las Tarjetas Controladoras de comunicaciones son unidades que
permiten la conexión de una computadora central, denominada sistema
central o servidor, con una serie de computadoras menos potentes que
utilizan parte de los recursos del servidor para aumentar su
operatividad.
La conexión se produce a través de una serie de Enlaces que unen todas
las computadoras entre sí formando una Red de Comunicaciones.
Si los sistemas informáticos que constituyen esta red de comunicaciones
se encuentra en una zona no muy extensa, no mayor que un edificio, la
red se denomina Red de Área Local (LAN - Local Area Network).
Si la red de comunicaciones tiene una extensión mayor y se utilizan los
servicios de las compañías telefónicas para enlazar las diferentes
computadoras que componen la red, ésta se denomina Red de Área
Extensa (WAN-Wide Area Network).
Las tarjetas controladoras de comunicaciones más comunes son las
tarjetas de conexión a redes de área local. Este tipo de tarjetas de
comunicaciones se estudiarán más adelante en un apartado específico
dedicado a ella; sin embargo, se puede adelantar aquí que las tarjetas
controladoras de comunicaciones se dividen en dos grupos principales:
• Tarjetas de conexión a redes locales (LAN).
• Tarjetas de expansión módem (para redes de comunicaciones
extensas).
Las tarjetas de conexión a redes LAN son tarjetas de expansión que
proporcionan una Conexión y una Dirección que permiten identificar al
usuario en el interior de la red, posibilitándole el poder enviar y recibir
información al sistema informático.
La conexión que proporcionan las tarjetas de conexión a redes de área
local es a un cable coaxial muy similar al utilizado para conectar una
televisión comercial a su antena exterior. La velocidad que este medio
permite dentro de la red de comunicaciones es, sin embargo, inferior a
la que poseen los sistemas informáticos conectados a ella, rondando
unos pocos megahercios.
Las tarjetas de expansión módem modulan la señal digital existente
dentro de la unidad central del sistema de la computadora y la
transforman convirtiéndola en analógica.
Esta señal analógica se superpone a otra señal llamada portadora, que
es la que viaja por el cable telefónico, sobre la que va a poder atravesar
las líneas telefónicas hasta un punto remoto donde otro módem volverá
a convertir la señal en digital para que pueda ser utilizada por otra
computadora.
Las velocidades de transmisión que proporcionan este tipo de tarjetas
de expansión módem oscilan entre los 1.200 y los 28.800 bits por
segundo.
19.- Jerarquía de computadoras
Una computadora es mucho más que chips.
Para que la computadora haga “algo” necesita software
Para escribir programas complejos se suele dividir el problema en
módulos que resuelven problemas más simples.
En las computadoras
Varios niveles de máquinas “virtuales”.
Jerarquía de niveles
Cada capa es una máquina virtual que abstrae a las maquina del nivel
inferior.
Las máquinas, en su nivel, “interpretan” sus instrucciones particulares,
utilizando servicios de su capa inferior para implementarlas.
En última instancia los circuitos terminan haciendo el trabajo.
Nivel 6: Nivel Usuario
Ejecución de programas e interfaces de usuario.
Pensamos en términos de la aplicación que se ejecuta
Nivel 5: Lenguajes de alto nivel
El nivel donde interactuamos cuando escribimos programas en Haskell,
C, Java, etc.
Pensamos en algoritmos, TADs, etc.
Nivel 4: Nivel de Lenguaje Ensamblador
Lenguaje ensamblador, en general producido por compiladores, o escrito
directamente por programadores.
Muy cercano a la arquitectura de la computadora.
Nivel 3: Nivel del software del Sistema
Controla la ejecución de los procesos del sistema.
Protege los recursos.
Brinda servicios para acceder a dispositivos de E/S.
Muchas instrucciones en Assembler pasan este nivel sin modificación.
Nivel 2: Nivel del Lenguaje de máquina
También conocido como nivel ISA (Instruction Set Architecture).
Consiste en las instrucciones particulares para la arquitectura de la
máquina.
Los programas escritos en lenguaje de máquina no necesitan
compilación ni ensamblado.
Nivel 1: Nivel de Control
La unidad de control (UC) decodifica y ejecuta instrucciones y mueve
datos a través del sistema.
Puede ser microprogramada o “cableada”.
• Un microprograma es un programa escrito en un lenguaje de bajo nivel
que puede ser implementado el hardware.
• Las UC “cableadas” tienen hardware que ejecuta directamente las
instrucciones en código de maquina.
20.- Modelo de Von Neumann
• Los datos y programas se almacenan en una misma memoria de
lectura-escritura
• Los contenidos de esta memoria se direccionan indicando su
posición sin importar su tipo.
• Ejecución en secuencia (salvo que se indique lo contrario).
• Representación Binaria.
Características principales
 3 componentes principales:
• CPU:
- Unidad de Control (UC)
 Controla todos los componentes.
 Interpreta instrucciones.
 Decodifica y Ejecuta instrucciones.
 Transforma instrucciones en órdenes a otros componentes
 Puede ser programada por hardware (cableada) y
“microprogramada” (varias microinstrucciones por instrucción).
- Unidad aritmético lógica (ALU)
 Realiza operaciones matemáticas y lógicas.
 Sumas, restas, multiplicaciones.
 And, Or, Xor.
 Corrimientos.
- Registros
 Almacenan datos binarios, acceso rápido.
 De tamaño fijo.
 De propósito general (programas) o específicos (acumulador,
program counter, puntero a memoria, etc.).
- DataPath
Red interna que comunica la UC con las otras unidades y registros.
Mueve datos entre los diferentes componentes.
Controlada por un reloj.
• Memoria principal:
Almacena programas y datos
• Sistema de Entrada/Salida
 Procesamiento secuencial de instrucciones
 Datos binarios
 Un sistema de interconexión
• Conecta la memoria y unidad de control
• Fuerza la alternación entre ciclos de lectura y ejecución

Tipos de Operaciones
Procesador-memoria: Transferencia de datos entre la CPU y la memoria.
Procesador-E/S: Transferencia de datos entre la CPU y un modulo de E/S.
Procesamiento de datos: Alguna operación aritmética o lógica sobre los
datos
Control: Alteración de la secuencia de operaciones. Ej.: jump
Harvard
El modelo de Harvard consta de 2 memorias; memoria de datos y
memoria de instrucciones.
El CPU accede de manera independiente y simultánea a cualquiera de
las memorias. Como los buses son independientes, éstos pueden tener
distintos contenidos en la misma dirección.
21.- Los componentes físicos de una unidad de disco duro
· Cabeza de lectura / escritura: Es la parte de la unidad de disco que
escribe y lee los datos del disco. Su funcionamiento consiste en una
bobina de hilo que se acciona según el campo magnético que detecte
sobre el soporte magnético, produciendo una pequeña corriente que es
detectada y amplificada por la electrónica de la unidad de disco.
· Disco: Convencionalmente los discos duros están compuestos por
varios platos, es decir varios discos de material magnético montados
sobre un eje central. Estos discos normalmente tienen dos caras que
pueden usarse para el almacenamiento de datos, si bien suele
reservarse una para almacenar información de control.
· Eje: Es la parte del disco duro que actúa como soporte, sobre el cual
están montados y giran los platos del disco.
· Impulsor de cabeza: Es el mecanismo que mueve las cabezas de
lectura / escritura radialmente a través de la superficie de los platos de
la unidad de disco.
Mientras que lógicamente la capacidad de un disco duro puede ser
medida según los siguientes parámetros:
· Cilindro: Es una pila tridimensional de pistas verticales de los múltiples
platos. El número de cilindros de un disco corresponde al número de
posiciones diferentes en las cuales las cabezas de lectura/escritura
pueden moverse.
· Cluster: Es un grupo de sectores que es la unidad más pequeña de
almacenamiento reconocida por el DOS. Normalmente 4 sectores de 512
bytes constituyen un Cluster (racimo), y uno o más Cluster forman una
pista.
· Pista: Es la trayectoria circular trazada a través de la superficie circular
del plato de un disco por la cabeza de lectura / escritura. Cada pista está
formada por uno o más Cluster.
· Sector: Es la unidad básica de almacenamiento de datos sobre discos
duros. En la mayoría de los discos duros los sectores son de 512 Bytes
cada uno, cuatro sectores constituyen un Cluster.
Otros elementos a tener en cuenta en el funcionamiento de la unidad es
el tiempo medio entre fallos, MTBF (Mean Time Between Failures), se
mide en horas (15000, 20000, 30000..) y a mayor numero mas fiabilidad
del disco, ya que hay menor posibilidad de fallo de la unidad. Otro factor
es el AUTOPARK o aparcamiento automático de las cabezas, consiste en
el posicionamiento de las cabezas en un lugar fuera del alcance de la
superficie del disco duro de manera automático al apagar la
computadora, esto evita posibles daños en la superficie del disco duro
cuando la unidad es sometida a vibraciones o golpes en un posible
traslado.
22.- Organización de la memoria semiconductora
El elemento básico de la memoria semiconductora es la celda de
memoria, aunque existen muchas tecnologías utilizadas para su
implementación, todas compartes algunas propiedades.
* Presentan 2 estados, los cuales se utilizan para representar un uno o
un cero.
* Puede escribirse en ellas al menos una vez.
* Pueden leerse para saber su estado.
Lo más común es que posean tres terminales, uno para seleccionar la
celda para lectura o escritura, otra para indicar el tipo de operación
(lectura/escritura), y otro para los datos, como salida (lectura) o entrada
(escritura).

Lógica del chip de memoria:


Las memorias semiconductoras vienen encapsuladas, y cada chip
contiene una matriz de celdas de memoria.
Una de las características mas importantes de los chips de memoria, es
la cantidad de bits que se pueden leer/escribir simultáneamente.
Tenemos muchas formas de organizar la memoria, en un extremo
tenemos una memoria en la cual la organización física es igual a la
lógica (igual a como la percibe el procesador), esto seria que el chip de
memoria esta organizado en W palabras de B bits cada una. Por ejemplo
una memoria de 16 Mbits podría estar organizada en 1Mpalabras de 16
bits cada una.
En el otro extremo tenemos la estructura llamada "un bit por chip" en la
cual los datos se lee/escriben por bits, y desarrollare a continuación.
23.- El Procesador
Ciclos de una instrucción:
Como ya hemos visto la función de un computador es la ejecución de un
programa, el cual esta compuesto por un conjunto de instrucciones, y es
el procesador el que se tiene que encargar de ejecutarlas. Dicha
ejecución la voy a empezar a describir empezando por la forma mas
simple, en 2 etapas, captación de la instrucción y ejecución de la
instrucción, entonces la ejecución de un programa consta en la
repetición del proceso de captación y ejecución de instrucciones.
Básicamente se capta la instrucción de memoria principal, se guarda el
código de la instrucción en el registro IR, se incrementa el registro PC, la
CPU interpreta la instrucción almacenada en IR y realiza las acciones
necesarias para que se ejecute la acción requerida.
Como ya hemos visto anteriormente, en general las acciones que puede
realizar la CPU se pueden agrupar en:
* Procesador-memoria: Transferencia de datos desde o hacia memoria.
* Procesador-E/S: Transferencia de datos desde o hacia el exterior a
través de un modulo de E/S.
* Procesamiento de datos: Alguna operación aritmética o lógica con los
datos.
* Control: Por ejemplo una instrucción de salto, que lo único que
requiere es que se cambie el valor del registro PC.
Unas instrucciones requieren una combinación de algunas.
IAC - Instruction address calculation: En general consiste en sumar 1 al
registro PC, pero no siempre. Supongamos que las instrucciones tienen
un largo de 16 bits y la memoria esta direccionada de a 16 bits, en ese
caso sumariamos 1 al PC, pero si la memoria estuviera direccionada de
byte, cada instrucción ocuparía 2 posiciones de memoria, en ese caso
tendríamos que sumar 2 al PC.
IF - Instruction fetch: La CPU lee la instrucción desde su posición en la
memoria.
IOD - Instruccion operation decoding: Decodifica la instrucción para
saber el tipo de operación a realizar y los operandos a utilizar.
OAC - Operand address calculation: Si el o los operandos se encuentran
en memoria o se accede a ellos a través de E/S, se determina la
dirección.
OF - Operand fetch: Se capta el operando de memoria o a través de E/S.
DO - Data operation: Se realiza la operación que requiere la instrucción.
OS - Operand store: Se almacena el operando en memoria o a través de
E/S.
En el gráfico podes observar varias cosas, las etapas están dispuestas
tal que en la parte de arriba están las etapas que requieren salir del
procesador, y la la parte inferior están las etapas que se solucionan
internamente.
Otra cosa para destacar son las flechas dobles en el momento de ir a
buscar un operando o al almacenarlo, esto se debe porque hay
instrucciones que requieren varios operandos y hay otras que generan
mas de un resultado.
Por ultimo hay instrucciones que realizan una misma operación con
distintos valores de un vector, por eso, al terminar de almacenar el
resultado no captan la siguiente instrucción, en vez de eso, captan el
próximo valor del vector realiza lo mismo con otros valores.
Interrupciones:
Una interrupción es un mecanismo, con el cual un modulo de E/S puede
interrumpir el procesamiento normal de la CPU.
Esto sirve para mejorar el rendimiento del sistema. Este mecanismo
puede llegar deshabilitarse si es necesario.
Ejemplo, ya sabemos que la mayoría de los dispositivos externos son las
lentos que la CPU, imaginemos la CPU imprimiendo un documento
Procesador a 200 MHz (tiempo ciclo reloj = 5 ns; Ciclos por instrucción
CPI = 2 , en promedio)
• Una instrucción tarda en promedio 2 x 5 ns = 10 ns =>lla
computadora puede ejecutar ~100 Mips
Queremos imprimir un archivo de 10 Kbytes en una impresora láser de
20 páginas por minuto
• 1 página ≅ 3.000 caracteres (1 carácter = 1 byte)
• La impresora imprime 60.000 caracteres por minuto = 1 Kbyte/s
Hasta hora lo único que podíamos hacer era que la CPU envíe los datos
que pudiera recibir la impresora y esperar que termine de imprimir o
que solicite mas datos.
Sin interrupciones:
• La CPU entra en un bucle y envía un nuevo byte cada vez que la
impresora está preparada para recibirlo.
• La impresora tarda 10 seg en imprimir 10 Kbytes
• La CPU está ocupada con la operación de E/S durante 10 seg.
(en ese tiempo la CPU podría haber ejecutado 1000 millones de
instrucciones)
Con el uso de interrupciones la CPU no tiene que esperar, mandaría los
datos a la impresora y seguiría haciendo alguna tarea productiva.
Con interrupciones:
La impresora genera una interrupción cada vez que está preparada para
recibir un nuevo byte.
• Si la gestión de interrupción (ATI) tiene 10 instrucciones (salvar
contexto, comprobar estado, transferir byte, restaurar contexto, rti)
• Para transferir 10 Kbytes tenemos que ejecutar 10.000 veces la ATI
⇒ ejecutar 100.000 instrucciones para atender al periférico ⇒ la CPU
tarda 0,001 seg.
• La CPU está ocupada con la operación de E/S durante 0,001 seg.
• La E/S por interrupciones reduce en 10.000 veces el tiempo que la CPU
está ocupada gestionando la impresora.
Esta diferencia es tan marcada porque el periférico es realmente muy
lento, con periféricos rápidos, solo con las interrupciones no alcanza
para solucionar el problema.
En este gráfico se muestra el tiempo que utiliza la CPU en el periférico,
la linea punteada nos marca en que se estaría utilizando el CPU.
Cuando se atiende, un periférico el procesador ejecuta un programa que
atiende al modulo de entrada salida, este programa se carga, prepara lo
necesario para que se pueda realizar la operación requerida con el
periférico, seguido a esto se ejecuta la instrucción solicitada, cuando
termina el periférico su tarea, en algunos casos el programa cargado
puede realizar alguna otra tarea relacionada, para el lado del periférico o
para el lado de los buses, por ejemplo mandar información de algún
error que se halla detectado en el periférico, para luego proseguir con la
ejecución del programa original.
Se puede ver, en la primera sección, que mientras esta funcionando el
periférico (entre los círculos 4 y 5) el CPU no hace nada, solo espera que
termine, en cambio se puede apreciar en la segunda seccione del
gráfico, que luego de que el programa que atiende la E/S pone en
funcionamiento el periférico, el procesador dedica su tiempo en procesar
el programa original hasta que reciba una nueva interrupción, las 2
cruces identifican las interrupciones.
Bien, que sucedería si ocurre una interrupción mientras se esta
ejecutando una interrupción?
Hay 2 alternativas, la primera es que mientras se esta atendiendo una
interrupción se desactivan las demás, luego que se termina de atender
la interrupción el procesador, antes de proseguir con la ejecución del
programa principal, chequea si hay alguna interrupción pendiente, y así
las va ejecutando secuencialmente.
La desventaja es que no se tiene en cuenta ninguna prioridad, y es
necesario porque hay peticiones que en la que es importante atenderlas
rápidamente y hay otras que no.
La otra alternativa es que las interrupciones tengan prioridad, entonces,
si una interrupción es interrumpida por otra que posee mayor prioridad,
se almacena el contexto de ejecución de la interrupción en curso, se
carga el PC con la nueva dirección y se empieza a ejecutar las
instrucciones del programa que atiende la nueva interrupción, al
terminar se continua atendiendo la interrupción anterior, y cuando se
termina de atender esta, se vuelve a la ejecución del programa
principal.
En la primera parte del gráfico se muestra como seria una atención
secuencial de interrupciones, y en la segunda parte muestra el
procesamiento de interrupciones anidadas, una dentro de otra,
obviamente la interrupción "Y" es de mayor prioridad que la "X", en caso
contrario, el gráfico hubiese sido similar al de la primera parte.
Sabiendo un poco de las interrupciones ahora podemos agregar una
nueva etapa al ciclo de la instrucción básico.
En este gráfico podemos ver que si las interrupciones están
deshabilitadas, el ciclo es igual, pero si están habilitadas antes de captar
la próxima instrucción, chequea si hay alguna interrupción pendiente, si
lo hay, en la etapa "Check for Interrupt" el procesador guardara el
contexto (registro que contiene los flags, registro PC, etc) cargara en el
registro PC la dirección donde esta el programa que atiende la
interrupción, y empezara a captar y ejecutar las instrucciones del
programa de atención a la interrupción.
También vamos a agregar la etapa de detección de interrupciones el
gráfico más detallado:
A esto faltaría agregarle una etapa.
Las instrucciones pueden contener uno, varios o ningún operando, este
operando puede pasado de distintas modos de direccionamiento, los
más comunes son:
* Direccionamiento inmediato: El valor del operando se encuentra
incluido en la instrucción.
* Direccionamiento directo: En la instrucción se encuentra la dirección
efectiva en donde se encuentra el operando o el registro donde se
encuentra el operando.
* Direccionamiento indirecto a través de registro: En la instrucción se
hace referencia implícitamente o explícitamente al registro en donde se
encuentra la dirección efectiva del operando.
* Direccionamiento indirecto a través de memoria: En la instrucción se
encuentra la dirección en donde se encuentra el operando, este
operando contiene la dirección de donde se encuentra el valor a
procesar.
Flujo de datos:
Veamos un poco como se usan los buses en el ciclo de una instrucción:
Ciclo de captación: En el momento de captar la próxima instrucción, s
toma la dirección contenida en el PC y se coloca en el MAR, luego la
unidad de control manda señal de lectura por el bus de control, y
entonces la memoria coloca en el bus de datos la información requerida.
A continuación el MBR copia la información que se encuentra en el bus
de datos al cual esta conectado, y como paso final el dato contenido en
MBR pasa a IR.
Ciclo indirecto: Si el operando utiliza direccionamiento indirecto,
entonces se toma los N bits mas a la derecha del registro MBR, los
cuales corresponden a la dirección de referencia del operando, estos bits
se pasan al MAR, la unidad de control manda señal de lectura, la
memoria pone los datos solicitados en el bus de datos, la MBR capta la
información del bus de datos
El ciclo de ejecución no tan fácil y predecible como los dos anteriores,
todo depende de la instrucción que el ciclo de captación halla dejado en
IR, son muchas las posibilidades de flujos posibles.
En cambio, el ciclo de interrupción es predecible como los 2 primeros.
Ciclo de interrupción: Antes de atender a la subrutina que atenderá la
interrupción, el contexto del CPU debe guardarse (flags y PC), para eso
la unidad de control coloca en MAR la dirección en donde hace el
resguardo de esos datos, podría ser la pila, luego de esto se coloca el
dato a guardar en MBR, la unidad de control envía señal de escritura, la
memoria detecta la señal y copia en la dirección que se encuentra en el
bus de direcciones el dato que se encuentra en el bus de datos,
dependiendo del tamaño del dato a guardar puede que este proceso ser
repita mas de una vez. Luego de eso, se coloca en el PC la dirección
donde comienza la subrutina de atención a la interrupción, gracias a lo
que se realizo, en el próximo ciclo se empezara a captar instrucciones
de la rutina de atención a la interrupción.
Para realizar las operaciones o instrucciones un microprocesador
necesita sincronizar todas sus señales internas y externas y disponer,
por tanto, de un patrón de tiempo. Es lo que se denomina: Reloj del
microprocesador.
Ciclos del microprocesador
- Ciclo máquina:
Es el tiempo que utiliza el microprocesador en leer una instrucción o en
su defecto escribir dicha instrucción en un dispositivo de E/S ó en una
localidad de memoria.
Un ciclo de máquina es el tiempo durante el cual el microprocesador
realiza una operación elemental. Cada ciclo de máquina emplea varios
ciclos (impulsos) de reloj.
- Ciclo búsqueda:
Tiempo que tarda el microprocesador en tomar un dato y decodificarlo.
- Ciclo de instrucción:
Se denomina Ciclo de instrucción al tiempo durante el cual el
microprocesador ejecuta una instrucción completa.
Es posible calcular el tiempo de ejecución de una determinada
operación, siempre que se conozca el número de ciclos de reloj que
emplea cada una de sus instrucciones.
- Ciclo de ejecución:
Es el tiempo que tarda el microprocesador en tomar un dato,
decodificarlo y ejecutarlo.
Procesadores CISC/RISC
Según el tipo de juego de instrucciones que utilicen, podemos clasificar
los microprocesadores en dos tipos distintos:
-RISC: Aquellos que utilizan un juego reducido de instrucciones. Un
ejemplo de ello sería el ensamblador del Motorola 88110, que carece por
ejemplo de más saltos condicionales que "salta si este bit es 1" y "salta
si este bit es 0". Por un lado se obtiene la ventaja de que en cierto modo
uno se fabrica las cosas desde un nivel más profundo, pero a veces llega
a hacer la programación excesivamente compleja.
-CISC: Son los que usan un juego de instrucciones ampliado,
incluyéndose en esta clasificación el lenguaje ensamblador de los 80x86
(el PC común de Intel, AMD, Cyrix...). Para el ejemplo usado antes, en el
asm de Intel tenemos 16 tipos distintos de salto que abstraen el
contenido del registro de flags y permiten comparaciones como mayor
que, mayor o igual que, igual, menor, etc.
24.- Lenguaje ensamblador
El lenguaje ensamblador es un tipo de lenguaje de bajo nivel utilizado
para escribir programas informáticos, y constituye la representación
más directa del código máquina específico para cada arquitectura de
computadoras legible por un programador.

Características
El código escrito en lenguaje ensamblador posee una cierta dificultad de
ser entendido directamente por un ser humano ya que su estructura se
acerca mas bien al lenguaje máquina, es decir, lenguaje de bajo nivel.
El lenguaje ensamblador es difícilmente portable, es decir, un código
escrito para un microprocesador en particular necesita ser modificado
muchas veces en su totalidad para poder ser usado en otro
microprocesador.
Los programas hechos en lenguaje ensamblador son generalmente más
rápidos y consumen menos recursos del sistema (memoria RAM y ROM).
Al programar cuidadosamente en lenguaje ensamblador se pueden crear
programas que se ejecutan más rápidamente y ocupan menos espacio
que con lenguajes de alto nivel.
Con el lenguaje ensamblador se tiene un control muy preciso de las
tareas realizadas por un microprocesador por lo que se pueden crear
segmentos de código difíciles de programar en un lenguaje de alto nivel.
Ensambladores: Un ensamblador (assembler en inglés) es un programa
que crea código objeto traduciendo instrucciones nemónicas de un
programa fuente escrito en ensamblador a códigos ejecutables e
interpretando los nombres simbólicos para direcciones de memoria y
otras entidades (ensamblado). El uso de referencias simbólicas es una
característica básica del lenguaje ensamblador, evitando tediosos
cálculos y direccionamiento manual después de cada modificación del
programa. La mayoría de los ensambladores también incluyen
facilidades para crear macros, a fin de generar series de instrucciones
cortas que se ejecutan en tiempo real, en lugar de utilizar subrutinas.
Los ensambladores son por lo general más fáciles de programar que los
compiladores de lenguajes de alto nivel, y han estado disponibles desde
la década de 1950. Los ensambladores modernos, especialmente para
arquitecturas basadas en RISC, como por ejemplo MIPS, SPARC y PA-
RISC optimizan las instrucciones para explotar al máximo la eficiencia de
segmentación[2] de la CPU.
Los ensambladores avanzados ofrecen posibilidades de abstracción que
incluyen:
 Control avanzado de estructuras.
 Procedimientos de alto nivel, declaración de funciones.
 Tipos de datos que incluyen estructuras, registros, uniones, clases
y conjuntos.
 Sofisticado procesamiento de macros.
Lenguaje: Un programa escrito en lenguaje ensamblador consiste en
una serie de instrucciones que corresponden al flujo de órdenes
ejecutables que pueden ser cargadas en la memoria de un sistema
basado en microprocesador.
Por ejemplo, un procesador x86 puede ejecutar la siguiente instrucción
binaria como se expresa en código de máquina:
Binario: 10110000 01100001 (Hexadecimal: 0xb061)
La representación equivalente en lenguaje ensamblador es más fácil de
recordar:
MOV al, 061h
Esta instrucción significa:
Asigna el valor hexadecimal 61 (97 decimal) al registro "al".
El mnemónico "mov" es un código de operación u "opcode", elegido por
los diseñadores de la colección de instrucciones para abreviar "move"
(mover, pero en el sentido de copiar valores de un sitio a otro). El
opcode es seguido por una lista de argumentos o parámetros,
completando una instrucción de ensamblador típica.
La transformación del lenguaje ensamblador en código máquina la
realiza un programa Ensamblador, y la traducción inversa la puede
efectuar un desensamblador. A diferencia de los lenguajes de alto nivel,
aquí hay usualmente una correspondencia 1 a 1 entre las instrucciones
simples del ensamblador y el lenguaje de máquina. Sin embargo, en
algunos casos, un ensamblador puede proveer "pseudo instrucciones"
que se expanden en un código de máquina más extenso a fin de proveer
la funcionalidad necesaria. Por ejemplo, para un código máquina
condicional como "si X mayor o igual que" , un ensamblador puede
utilizar una pseudoinstrucción al grupo "haga si menor que" , y "si = 0"
sobre el resultado de la condición anterior. Los Ensambladores más
completos también proveen un rico lenguaje de macros que se utiliza
para generar código más complejo y secuencias de datos.
El uso del ensamblador no resuelve definitivamente el problema de
cómo programar un sistema basado en microprocesador de modo
sencillo ya que para hacer un uso eficiente del mismo, hay que conocer
a fondo el microprocesador, los registros de trabajo de que dispone, la
estructura de la memoria, y muchas cosas más referentes a su
estructura básica de funcionamiento.
Cada arquitectura de microprocesadores tiene su propio lenguaje de
máquina, y en consecuencia su propio lenguaje ensamblador ya que
este se encuentra muy ligado al la estructura del hardware para el cual
se programa. Los microprocesadores difieren en el tipo y número de
operaciones que soportan; también pueden tener diferente cantidad de
registros, y distinta representación de los tipos de datos en memoria.
Aunque la mayoría de los microprocesadores son capaces de cumplir
esencialmente las mismas funciones, la forma en que lo hacen difiere y
los respectivos lenguajes ensamblador reflejan tal diferencia.
Pueden existir múltiples conjuntos de mnemónicos o sintaxis de lenguaje
ensamblador para un mismo conjunto de instrucciones, instanciados
típicamente en diferentes programas en ensamblador. En estos casos, la
alternativa más popular es la provista por los fabricantes, y usada en los
manuales del programa.
Código máquina: El código máquina, o lenguaje de máquina, está
formado por instrucciones sencillas, que -dependiendo de la estructura
del procesador pueden especificar:
 Registros específicos para operaciones aritméticas,
direccionamiento o control de funciones.
 Posiciones de memoria específicas (offset).
 Modos de direccionamiento usados para interpretar operandos.
 Las operaciones más complejas se realizan combinando estas
instrucciones sencillas, que pueden ser ejecutadas secuencialmente o
mediante instrucciones de control de flujo.
Las operaciones disponibles en la mayoría de los conjuntos de
instrucciones incluye:
 mover
 llenar un registro con un valor constante
 mover datos de una posición de memoria a un registro o
viceversa
 escribir y leer datos de dispositivos
 computar
 sumar, restar, multiplicar o dividir los valores de dos
registros, colocando el resultado en uno de ellos o en otro registro
 realizar operaciones binarias, incluyendo operaciones lógicas
(AND/OR/XOR/NOT)
 comparar valores entre registros (mayor, menor, igual)
 afectar el flujo del programa
 saltar a otra posición en el programa y ejecutar instrucciones
allí
 saltar si se cumplen ciertas condiciones (IF)
 saltar a otra posición, pero guardar el punto de salida para
retornar (CALL, llamada a subrutinas)
Algunas computadoras incluyen instrucciones complejas dentro de sus
capacidades. Una sola instrucción compleja hace lo mismo que en otras
computadoras puede requerir una larga serie de instrucciones, por
ejemplo:
 salvar varios registros en la pila de una sola vez
 mover grandes bloques de memoria
 operaciones aritméticas complejas o de punto flotante (seno,
coseno, raíz cuadrada)
25.- Bibliografía:
 http://www.monografias.com/trabajos17/arquitectura-
computadoras/arquitectura-computadoras.shtml
 http://html.rincondelvago.com/arquitectura-de-
computadoras_2.html
 http://www.taringa.net/posts/apuntes-y-
monografias/2059091/Arquitectura-y-organizacion-de-
computadoras-1.html
 http://www.taringa.net/posts/apuntes-y-
monografias/2097028/Arquitectura-y-organizacion-de-
computadoras-2.html
 http://www.monografias.com/trabajos16/memorias/memorias.shtm
l
 http://www.alegsa.com.ar/Dic/memoria%20externa.php
 http://docs.google.com/viewer?
a=v&q=cache:HIv81PiJg7kJ:www.dc.uba.ar/people/materias/oc1/fil
es/teorica/TD02B.pdf+jerarquia+de+computadoras+nivel+del+le
nguaje+ensamblador&hl=es&gl=mx&pid=bl&srcid=ADGEESjkiYU
HpKzXO7D1s6iB6riv2M3vPhjbSfXxaV0B5gCscn6bTqwP1G0zaBGfhy
1mLXZzstEvFp16SJI5rzqRg2_OJXnrCUNe7O67l7g1edA55vbAzanJO7
QhyYaoJlSoMooFuTDR&sig=AHIEtbQlG2jz_FEgUltYEHre1GBaM-
dvGw
 http://iteso.mx/~jluis/acpdf/oto-04/14-Memoria-externa.PDF
 http://www.wikilearning.com/curso_gratis/b_curso_b_de_programac
ion_de_virus-ensamblador_i_conceptos_basicos/4312-5

Você também pode gostar