Está en la página 1de 21

UNIVERSIDAD

POLITÉCNICA DE
AGUASCALIENTES

CURSO DE INGENIERÍA
DE HARDWARE II

Elaborado por I.S.C. EDUARDO VELÁZQUEZ TORRES


en agosto de 2009, Aguascalientes, Ags., para la carrera
de Ingeniería en Sistemas Estratégicos de Información.
INGENIERÍA DE HARDWARE II

 
 
PRESENTACIÓN

Carrera: Ingeniería en Sistemas Estratégicos de Información

Asignatura: Ingeniería de Hardware II

Cuatrimestre: Septiembre-Diciembre 2009.

Nombre de quién elaboró: I.S.C. Eduardo Velázquez Torres

Fecha de elaboración: Agosto de 2009

   
2
   
INGENIERÍA DE HARDWARE II

 
 
INTRODUCCIÓN

Las computadoras hoy en día son una parte fundamental en el desarrollo de las actividades
profesionales de cualquier empresa, negocio o institución, su uso se ha vuelto tan
indispensable que resulta casi imposible mantenerse en el mercado sin incorporar la
tecnología a través del uso de computadoras personales. Por otro lado, también hay que
considerar el alto grado de avances tecnológicos en el campo de la informática, esta
dinámica nos obliga a desarrollar métodos y técnicas para realizar mantenimiento preventivo
(limpieza) y correctivo (detección y corrección de fallas), al equipo de cómputo para alargar
su vida útil y obtener un rendimiento adecuado del mismo, para lo cual es necesario
identificar su funcionamiento interno y el modo de conexión de sus componentes, es decir,
su ensamble.

La filosofía de educación de la Universidad Politécnica tiene la finalidad de que el alumno


logre habilidades (competencias), y a su vez tenga los conocimientos teóricos sobre los
mismos temas es por ello que el curso es teórico-práctico.

Los temas de esta asignatura abarcan el funcionamiento de la computadora desde una


perspectiva de integración de componentes, posteriormente se dan a conocer los detalles de
seguridad relacionados con el ensamble o montaje de una PC, configuración y puesta a
punto. Una vez que se tiene el conocimiento para conectar, se aplicarán técnicas de
mantenimiento preventivo y correctivo, para concluir con un curso interactivo electrónico que
resume todo lo descrito anteriormente.

El alumno al final del curso sabe ensamblar, instalar y configurar un equipo de cómputo, así
como realizar un mantenimiento preventivo básico y aprender técnicas de mantenimiento
correctivo.

Objetivo de la asignatura: Desarrollar la capacidad en el alumno para aplicar los


conocimientos adquiridos por medio de métodos y técnicas de ensamble, mantenimiento
preventivo y correctivo de una computadora personal.

   
3
   
INGENIERÍA DE HARDWARE II

 
 
CONTENIDO DE LA ASIGNATURA
Unidad de aprendizaje 1. Organización de la computadora y funcionamiento del Hardware

Funcionamiento de la computadora. CPU y Memoria. Entrada/Salida. Diseño y Organización


de la CPU. Sistemas modernos de cómputo.

Unidad de aprendizaje 2. Ensamble

Consideraciones generales. Herramientas necesarias. Configuración inicial. Montaje.


Optimización y puesta a punto.

Unidad de aprendizaje 3. Mantenimiento Preventivo

Consideraciones generales. Mantenimiento. Mantenimiento preventivo a una computadora.

Unidad de aprendizaje 4. Mantenimiento Correctivo

Consideraciones generales. Detección de fallas. Seguridad de los datos. Utilerías.


Corrección de fallas y reemplazo de partes.

Unidad de aprendizaje 5. Curso Interactivo

Estructura de una computadora. Dispositivos de Proceso de Información. Dispositivos de


Almacenamiento de datos. Periféricos de Entrada de datos. Periféricos de Salida de datos.
Ensamble.

Bibliografía
Arquitectura Computacional
Irv Englander
Compañía Editorial Continental.
Ampliar, reparar y configurar su PC
T. Eggeling, H. Frater
Alfaomega Grupo Editor.
Administración Informática
I.S.C. Eduardo Velázquez Torres
Memoria de titulación / Universidad Autónoma de Aguascalientes.

   
4
   
INGENIERÍA DE HARDWARE II

 
 
Reparación y Ensamblado de computadoras PC
Felipe Orozco Cuautle
Computación aplicada. México Digital Comunicación.

   
5
   
INGENIERÍA DE HARDWARE II

 
 
Unidad 1 – Organización de la computadora y funcionamiento
del Hardware
El funcionamiento básico de una computadora está determinado por la organización de
su hardware (arquitectura). A continuación se describe el funcionamiento interno y
veremos cómo todas las piezas se integran armoniosamente para crear un sistema.

1.1 Funcionamiento de la computadora.


El poder de la computadora no proviene de su complejidad, sino de su capacidad de
efectuar operaciones simples con gran velocidad. El desafío del programador es producir
la secuencia exacta de operaciones para realizar correctamente una tarea. Con el fin de
simplificar el análisis utilizaremos un modelo conocido como Pequeño Hombre
Computadora (LMC), creado por el Dr. Stuart Madnick en el MIT en 1965 y corregido en
1979.

Diseño del LMC

   
6
   
INGENIERÍA DE HARDWARE II

 
 
El modelo consta de una sala de correo formada por el pequeño hombre computadora,
buzones de correo, una calculadora, un contador, un botón de reinicio y dos cestos
(entrada y salida). En primer lugar hay una serie de 100 buzones de correo numerados
con una dirección que va de 00 a 99, cada buzón puede almacenar un número decimal
de 3 dígitos. En segundo lugar hay una calculadora para introducir y guardar
temporalmente números, sumar y restar, con capacidad para 3 dígitos. En tercer lugar
hay un contador manual de 2 dígitos, con un botón de reinicio conocido como contador
de ubicación de instrucciones. Finalmente tenemos al LMC, su papel será llevar a cabo
algunas tareas y su interacción con el ambiente (fuera de la sala) son los cestos. Un
usuario fuera de la sala de correo puede comunicarse con el LMC dejando en el cesto de
entrada un trozo de papel con un número de 3 dígitos, que le dirán qué hacer
(instrucciones). Por su parte, el LMC, puede escribir un número de 3 dígitos en un trozo
de papel y dejarlo en el cesto de salida para que lo recoja el usuario (resultado).

Funcionamiento del LMC


Para que el LMC hiciera un trabajo útil, se inventaron una serie de instrucciones que él
entiende y puede realizar, las cuales llevarán el formato de un número de 3 dígitos, de
los cuales, el primero corresponderá a la instrucción (código de operación) y los otros
dos para indicar la dirección del buzón que se usará como parte de la instrucción. A
continuación se definen dichas instrucciones:
• LOAD (código de operación: 5) – El LMC se dirige a la dirección del buzón
especificada en la instrucción, lee el número y lo introduce en la calculadora
reemplazando su valor actual.
• STORE (código de operación: 3) – El LMC se dirige a la calculadora, lee el
número almacenado en ella y lo pone en el buzón cuya dirección se especificó en
la instrucción (2 últimos dígitos). No se modifica la calculadora y el valor del buzón
es reemplazado.
• ADD (código de operación: 1) – El LMC se dirige a la dirección del buzón
especificado en esta instrucción, lee el número, y lo suma al que ya se encuentra
en la calculadora.
• SUBTRACT (código de operación: 2) – Igual que el anterior, pero resta en lugar
de sumar. La resta puede generar un número negativo, pero el LMC no está
capacitado para manejar números negativos.
• INPUT (código de operación: 9, dirección: 01) – El LMC se dirige al cesto de
entrada y recoge el trozo de papel, va a la calculadora y lo introduce en ella. El
valor de la calculadora es reemplazado. Si en el cesto de entrada hay varios
trozos de papel, el LMC los recoge en el orden en que fueron puestos (FIFO).
• OUTPUT (código de operación: 9, dirección: 02) – El LMC se dirige a la
calculadora, anota el número que ve en un trozo de papel y lo pone en el cesto de

   
7
   
INGENIERÍA DE HARDWARE II

 
 
salida para que el usuario lo recupere de allí. No se modifica el número en la
calculadora.
• COFFEE BREAK (código de operación: 0) – El LMC descansa.

Las instrucciones definidas hasta ahora caen en 4 categorías:


1. Las que mueven los datos de una parte a otra (LOAD, STORE).
2. Las que realizan operaciones aritméticas simples (ADD, SUBTRACT).
3. Las que realizan entrada/salida (INPUT, OUTPUT).
4. Las que controlan la máquina (COFFEE BREAK).

Un programa simple
Ahora analizaremos cómo combinar las instrucciones anteriores en un programa para
que el LMC haga un trabajo útil: en primer lugar supongamos que el programa ya está
almacenado en los buzones comenzando en el 00, el LMC se guiará para comenzar en
el valor que aparece en el contador de ubicación de instrucciones, y ejecutará la que se
encuentre en el buzón cuya dirección tenga ese valor, cada vez que termine una, se
dirige al contador y lo incrementa, iniciando nuevamente un ciclo. Como el contador se
reinicia desde afuera del buzón, el usuario podrá reanudar el programa con solo
restablecer el contador en 00. Es importante tener en cuenta que cuando se requiera
almacenar un valor en los buzones, deberán utilizarse aquellos que no estén ocupados
por el código del programa, dado que se sustituirían valores que alterarían la ejecución
del mismo. El LMC no puede distinguir entre una instrucción y un dato, ya que ambos
tienen el mismo código (un número de 3 dígitos).

CÓDIGO DE BUZÓN DESCRIPCIÓN DE LA INSTRUCCIÓN

INTRODUCIR PRIMER NÚMERO


00 901
GUARDAR DATOS
01 399
INTRODUCIR SEGUNDO NÚMERO
02 901
SUMARLE PRIMER
03 199
MOSTRAR RESULTADO
04 902
DETENER PROGRAMA
05 000

… … …

DATOS
99

   
8
   
INGENIERÍA DE HARDWARE II

 
 
Vamos a ampliar el conjunto de instrucciones que el LMC puede entender y ejecutar:

• JUMP (código de operación: 6) – El LMC altera el valor del contador de ubicación


de instrucciones con el valor de los dígitos de dirección de la instrucción.
• BRANCH ON ZERO (código de operación: 7) – El LMC se dirige a la calculadora y
observa el número guardado allí. Si su valor actual es cero, modificará el valor del
contador de ubicación de instrucciones con el valor de los dígitos de dirección de
la instrucción. Si el valor no es cero, pasará a la siguiente instrucción de la
secuencia.
• BRANCH ON POSITIVE (código de operación: 8) – El LMC se dirige a la
calculadora y observa el número guardado allí. Si su valor actual es positivo
(considerando el cero como positivo), modificará el valor del contador de ubicación
de instrucciones con el valor de los dígitos de dirección de la instrucción. Si el
valor es negativo, pasará a la siguiente instrucción de la secuencia.

De esta manera se podrá alterar el procesamiento secuencial con ciclos y brincos. Por
ejemplo: El código WHILE value = 0 DO task; NEXTSTATEMENT, se representaría así:

CÓDIGO DE BUZÓN DESCRIPCIÓN DE LA INSTRUCCIÓN

TRAER EL VALOR DE LA DIRECCIÓN 90


45 590
BRINCAR SI EL VALOR ES CERO
46 748
SALIDA DEL CICLO, CONTINUA LA EJECUCIÓN EN NEXTSTATEMENT
47 660
AQUÍ SE ENCUENTRA LA TAREA
48

… …
FINAL DE LA TAREA, REALIZAR CICLO PARA VOLVER A PROBAR
59 645
SIGUIENTE DECLARACIÓN (NEXTSTATEMENT)
60

   
9
   
INGENIERÍA DE HARDWARE II

 
 
Otro programa para analizar, donde se han incluido unas abreviaturas de las
instrucciones, conocidas como mnemónicos.

CÓDIGO DE BUZÓN MNEMÓNICO DESCRIPCIÓN DE LA INSTRUCCIÓN

INTRODUCIR PRIMER NÚMERO


00 901 IN
ALMACENARLO EN LA DIRECCIÓN 10
01 310 STO 10
INTRODUCIR SEGUNDO NÚMERO
02 901 IN
ALMACENARLO EN LA DIRECCIÓN 11
03 311 STO 11
RESTAR EL NÚMERO DE LA DIRECCIÓN 10
04 210 SUB 10
BRINCA A 08 SI EL VALOR ES POSITIVO
05 808 BRP 08
EL VALOR ES NEGATIVO, CARGA EL VALOR DE LA DIRECCIÓN 10
06 510 LDA 10
RESTAR EL NÚMERO DE LA DIRECCIÓN 11
07 211 SUB 11
IMPRIMIR RESULTADO
08 902 OUT
COFFEE BREAK
09 000 COB
USADO PARA ALMACENAR DATOS
10 000 DAT 000
USADO PARA ALMACENAR DATOS
11 000 DAT 000

En resumen

• Los mnemónicos facilitan la lectura y comprehensión del código de un programa,


a veces los programadores utilizan líneas de comentarios al código con ese
mismo fin.
• Los programas se ejecutan de manera secuencial, a menos que el mismo código
incluya ciclos o cambios en el orden de ejecución.
• El Pequeño Hombre Computadora es un ejemplo de la organización de John Von
Neumann: El CPU se compone de una Unidad Aritmético-Lógica (Calculadora),
una Unidad de Control (LMC y contador) y una Interfaz de Entrada/Salida (cestos
entrada/salida), además del uso de una Memoria (buzones) de almacenamiento.
• Las directrices de la organización de Von Neumann dicen que:
o La memoria contiene programas y datos
o La memoria se direcciona linealmente, y,
o La memoria se direcciona mediante el número de ubicación, no de los
datos contenidos en ella.

   
10
   
INGENIERÍA DE HARDWARE II

 
 
De lo anterior, deducimos que el funcionamiento de la computadora puede simularse
mediante un modelo simple : el Pequeño Hombre Computadora. Los pasos exactos que
realiza el LMC reflejan los que se efectúan en una unidad central de procesamiento
(CPU) real al ejecutar una instrucción.

   
11
   
INGENIERÍA DE HARDWARE II

 
 
1.2 CPU y Memoria.
La Unidad Central de Procesamiento (CPU), está separada tanto física como
funcionalmente de la Memoria, sin embargo están íntimamente relacionados en el
funcionamiento de la computadora.

El CPU de la computadora consta de 3 componentes principales:


• La Unidad Aritmético-Lógica es donde los datos se alojan temporalmente y tienen
lugar los cálculos.
• La Unidad de Control interpreta y controla la ejecución de las instrucciones, y
consiste en mover datos o direcciones de un lugar a otro.
• La Memoria que es un lugar de almacenamiento temporal.
a los dos primeros se les conoce como Unidad Central de Procesamiento o CPU,
además se requiere una Interfaz de Entrada/Salida.

Registros
El registro es una localidad individual y permanente de almacenamiento dentro del CPU,
sirve para guardar temporalmente un valor BINARIO o para manipular y efectuar cálculos
simples, a diferencia de la memoria donde las direcciones son iguales, cada registro se
destina a un uso particular.

Los registros se distinguen de la memoria porque no son direccionados como una


localidad de memoria, sino que los manipula directamente la unidad de control durante la
ejecución de las instrucciones. Los registros pueden contener un dato por procesar, una
instrucción por ejecutar, una dirección de memoria, una dirección de entrada/salida, o
códigos binarios especiales para llevar el control del estado de la computadora
(banderas).

En la unidad de control se encuentran varios registros importantes:


• El registro de contador de programa que contiene la dirección de la instrucción
actual a ejecutar.
• El registro de instrucción contiene la instrucción real que la computadora ejecuta
en ese momento.
• El registro de dirección de memoria (o búfer de memoria), contiene la dirección de
una localidad de memoria.
• El registro de datos de memoria contendrá un valor de datos que se va a guardar
o recuperar en la localidad de memoria direccionada actualmente por el registro
de dirección de memoria.

La unidad de control contendrá además varios registros de 1 bit, conocidos como


banderas, que le permiten a la computadora llevar el control de condiciones especiales

   
12
   
INGENIERÍA DE HARDWARE II

 
 
como los desbordamientos artiméticos y errores internos de la computadora, y se pueden
combinar en registros de estado.

La mayoría de los registros soportan 3 tipos primarios de operación:


• Pueden almacenar valores provenientes de otros registros o localidades de
memoria.
• Los datos provenientes de otro sitio pueden usarse directamente para cálculos
con el valor actual del registro, dejando el resultado en el mismo.
• Los datos del registro pueden cambiarse uno o más bits a la derecha o izquierda.

El funcionamiento de la memoria
La memoria real consta de celdas, cada una de las cuales puede albergar un solo valor y
tiene una sola dirección. Dos registros, el de dirección de memoria y el de datos de
memoria sirven de interfaz entre el CPU y la memoria, por medio de distintos procesos y
niveles de codificación.

La cantidad de bits del registro de dirección de memoria determina cuántas localidades


pueden decodificarse, del mismo modo que las direcciones de dos dígitos en el modelo
conceptual del LMC produjeron un máximo de 100 buzones.

En la mayoría de las computadoras modernas, los datos y las instrucciones de la


memoria se direccionan en múltiplos de bytes (8 bits). Así, se establece en 8 bits el
tamaño mínimo de la instrucción, pero por lo regular las instrucciones no caben en 8 bits:
si se destinan 3 bits al código de operación (23 = 8 tipos de instrucción), quedarían 5 bits
para el direccionamiento (25 = 32 direcciones diferentes).

A lo largo de la historia de la computadora se han utilizado diversos tipos de memoria,


entre los más útiles figura la memoria de núcleo magnético, RAM estática, RAM dinámica
y ROM. La memoria de núcleo magnético es no volátil, es decir, los datos no
desaparecen aún cuando se suprima la energía, pero es cara y de operación lenta en
comparación con los otros tipos, se utiliza en aplicaciones militares y espaciales. La
RAM, en sus dos tipos (estática y dinámica), es volátil, su contenido se pierde cuando se
apaga la fuente de energía. La memoria ROM se emplea en situaciones donde el
software se integra permanentemente a la computadora y no se prevé que cambie, salvo
en contadas ocasiones.

1.3 Entrada/Salida.

La utilidad de una computadora depende esencialmente de sus capacidades de entrada


y de salida (E/S). De manera similar al modelo del Pequeño Hombre Computadora,
pueden transferirse datos entre los dispositivos de E/S y la CPU, pero hay varios factores

   
13
   
INGENIERÍA DE HARDWARE II

 
 
que provocan lentitud en este proceso, como el hecho de que varios dispositivos traten
de realizar su función al mismo tiempo, por lo que habrá que separar la información
proveniente de ellos por medio de métodos de transferencia de datos en bloques, en
lugar de ejecutar una instrucción por cada elemento de datos y sincronizar estas
operaciones para que no se pierdan los datos.

Existen por tanto, características que afectan las capacidades de E/S, en especial la
velocidad y la cantidad de la transferencia de datos que se necesitan para utilizar la
computadora en forma eficiente y plena. Los discos, impresoras, pantallas, teclado, ratón
y la mayoría de los dispositivos de E/S operan casi por completo bajo el control del
programa del CPU, es el programa de ejecución el que invariablemente deberá
determinar qué archivo se introducirá en la entrada o dónde se guardará la salida, por
ello dicho programa inicia la transferencia de datos de E/S, aún y cuando el CPU esté
realizando otras tareas mientras espera que se termine esa operación. Por si esto fuera
poco, existen entradas “imprevistas” o “inesperadas”, como el uso de CTRL+C o ALT+F4
para cancelar la ejecución de un programa de su secuencia normal por medio del
teclado, o simplemente que el dispositivo de salida, como la impresora, no esté listo para
operar.

De lo anterior se deducen varias exigencias para que la computadora procese la


entrada/salida de manera eficaz:

1. Debe haber un medio para direccionar individualmente los periféricos.


2. Debe haber una forma en que los periféricos se comuniquen con la CPU, para
que esta última responda a las entradas imprevistas.
3. La E/S Programada es adecuada con dispositivos y transferencias lentas de
palabras individuales; en los dispositivos más rápidos con transferencias de
bloques, debe haber un medio más eficiente de trasladar datos entre la E/S y la
memoria, sin intervención de la CPU.
4. Debe haber un medio de utilizar los dispositivos que incluyan necesidades muy
distintas de control, dados los datos que esperan o las velocidades a las que
operan, por ejemplo.

Los requisitos de cada dispositivo, su necesidad de direccionamiento, de sincronización,


de estado y de control, indican que requieren de su propia interfaz, mediante algún tipo
de módulo, estos módulos reciben el nombre de controladores de dispositivo.

Entrada/Salida Programada

Es el método más simple de realizar la E/S y opera así: mediante un bus un módulo se
conecta a un par de registros de E/S en la CPU tal y como funciona el Pequeño Hombre
Computadora. La E/S Programada es lenta pues hay que realizar un ciclo completo de
instrucción con todos los datos por transferir.

   
14
   
INGENIERÍA DE HARDWARE II

 
 
Interrupciones

Hay muchas circunstancias en que convendría interrumpir el flujo normal de un programa


para reaccionar ante eventos especiales: un comando inesperado del usuario
proveniente del teclado o cualquier otra entrada externa anormal, nos indican la
conveniencia de tener un medio que permite a la computadora tomar medidas
especiales. Las capacidades de interrupción permiten compartir simultáneamente la CPU
entre varios programas. Las computadoras ofrecen esa capacidad por medio de una o
más líneas especiales de control del procesador central, denominadas líneas de
interrupción, se da el nombre de interrupciones (IRQ=Interrupt ReQuest) a los mensajes
enviados a la computadora por estas líneas. La presencia de estos mensajes hará que la
computadora suspenda el programa y salte a uno especial que procesa las
interrupciones. Las interrupciones cumplen con el requerimiento de control externo de
entrada y además presentan una característica útil: el CPU ya no tiene que esperar a
que ocurran los eventos.

La interrupción causa la suspensión temporal del programa en cuestión, toda la


información relevante (última instrucción ejecutada, valores de datos en los registros) se
guarda en un bloque de control de procesos en la memoria, entonces la computadora
llama al controlador de interrupciones, que determina la acción apropiada a ejecutarse.
Cuando la rutina de interrupción concluye su trabajo, en condiciones normales devolverá
el control al programa interrumpido, se restaurarán los valores originales del registro y el
programa inicial reanudará la ejecución exactamente donde la suspendió. Hay ocasiones
en que no es así, ya que las acciones tomadas por la rutina de interrupción pueden influir
en lo que el programa debe hacer.

Existen diversos modos para utilizar las interrupciones dependiendo de la naturaleza del
dispositivo que las manda llamar:

• La interrupción como notificadora de eventos externos. Ejemplo: sistema de


monitoreo de temperaturas.
• La interrupción como señal de terminación. Ejemplo: La impresora requiere que se
controle el flujo de caracteres enviados a ella.
• La interrupción como medio para asignar el tiempo de la unidad central de
procesamiento. El sistema de la computadora no puede contar con que los
programas cedan voluntariamente el control, por ello, está provisto de un reloj
interno que periódicamente envía una interrupción al CPU (se conoce como
quantum al tiempo asignado a los programas), cuando ocurre la interrupción del
reloj, la rutina devuelve el control al sistema operativo y éste decide cuál programa
continúa en ejecución.
• La interrupción como indicador de eventos anormales. Ejemplo: Corte de energía.

   
15
   
INGENIERÍA DE HARDWARE II

 
 
Además de las interrupciones de hardware que acabamos de estudiar, existen
interrupciones de software que permiten utilizar las mismas rutinas desde varios
programas, con sólo mandarla llamar, y por lo regular interactúan con el sistema
operativo.

Cuando se presentan interrupciones múltiples, habrá que establecer un orden de


prioridad en el que serán atendidas, las más altas se asignan a situaciones sensibles al
tiempo como apagones o el teclado, ya que se pierden datos si la entrada no se lee
rápidamente; las interrupciones de terminación de tareas son de baja prioridad puesto
que el retraso no afectará a la integridad de los datos.

Acceso Directo a la Memoria (DMA)

Las computadoras ofrecen un método más eficiente de E/S que bajo el control del
módulo de E/S: transferir bloques de datos directamente entre él y la memoria, mientras
ocurre la transferencia, el CPU puede dedicarse a otras actividades. A esta técnica se le
conoce como acceso directo a la memoria (DMA). Esto equivaldría a que el Pequeño
Hombre Computadora obtuviera datos cargados directamente en los buzones,
prescindiendo de instrucciones de E/S.

Para que se lleve a cabo el acceso directo a memoria hay que cumplir 3 condiciones:

• Debe contarse con un método para conectar la interfaz de E/S y la memoria.


• El módulo de E/S asociado a un dispositivo habrá de ser capaz de leer y escribir
en la memoria.
• Debe haber un medio para evitar conflictos entre la CPU y el módulo de E/S, dos
módulos no pueden transferir datos simultáneamente entre la E/S y la memoria
por medio del mismo bus, es decir, la memoria sólo puede ser utilizada por un
dispositivo a la vez.

Durante el acceso directo a memoria el CPU no participa activamente durante las


transferencias por lo que puede efectuar otras tareas, sin embargo, los datos por
trasladar no deberían modificarse durante ese periodo, pues de lo contrario, podrían
aparecer errores de transferencia y también de procesamiento, así pues, es importante
que el CPU sepa cuándo termina la transferencia para asegurar que los datos de la
memoria sean estables.

Cabe aclarar que un programa de aplicación no llevará a cabo directamente la E/S por
este método (DMA), pues entraría en conflicto con otros programas que estén realizando
la misma operación en ese momento. Las instrucciones y los procedimientos de E/S son
privilegiados: sólo al sistema operativo se le permite acceder a ellas.

   
16
   
INGENIERÍA DE HARDWARE II

 
 
La interfaz entre la CPU y el periférico de E/S consta de 5 componentes:

1. La CPU
2. El periférico de E/S
3. La memoria
4. Uno o más módulos de E/S
5. Los buses que conectan los componentes

1.4 Diseño y Organización de la CPU.

Las computadoras modernas son más complejas y flexibles: ofrecen una mayor variedad
de instrucciones, métodos avanzados de direccionar la memoria y de manipular datos,
técnicas de implementación que permiten ejecutar rápida y eficientemente las
instrucciones.

Existen dos formas de diseñar una unidad central de procesamiento (CPU), la


arquitectura CISC (Conjunto complejo de Instrucciones) y la arquitectura RISC (Conjunto
Reducido de Instrucciones). A la categoría CISC pertenecen el Sistema/390 de IBM y las
familias de Intel x86. Por el contrario, los procesadores RT de IBM, el SPARC de Sun,
PowerPC de Motorola, pueden describirse como RISC.

La arquitectura RISC, es un intento de obtener más potencia del CPU simplificando el


conjunto de instrucciones de CISC, eliminando aquellas que casi no se usan y la
complejidad adicional del hardware. El diseño del hardware RISC trata de ejecutar
instrucciones reales sencillas en una fracción del tiempo que suele requerirse para
decodificar y realizar instrucciones más complejas, es decir, se procesa una instrucción
por intervalo de reloj.

En varios estudios efectuados a finales de los 70´s y principios de los 80´s, se


establecieron los patrones de uso de las instrucciones, tanto en el lenguaje ensamblador
como en varios lenguajes de alto nivel, de ahí las siguientes conclusiones:

• En 1986 se demostró que 10 instrucciones representaban el 71% de las que se


ejecutaban en el Sistema/370 de IBM.
• Se observó que los programadores y los compiladores se abstenían de utilizar
instrucciones complejas.
• Las llamadas a procedimiento y a función son un enorme cuello de botella, al
pasarse argumentos.

Como consecuencia, varios equipos de investigación aprovecharon los resultados de los


estudios anteriores para diseñar CPU´s de mejor desempeño. Las principales
características que diferencian a los diseños tipo RISC de los de tipo CISC son:

   
17
   
INGENIERÍA DE HARDWARE II

 
 
• Un conjunto limitado y simple de instrucciones, ya que las instrucciones complejas
requieren hardware que se encargue de la ejecución y sincronización.
• Instrucciones orientadas a los registros, con acceso muy limitado a la memoria.
• Palabra de la instrucción con extensión y formatos fijos, esto permite que las
instrucciones se ejecuten en paralelo dado que al tener un formato idéntico, es
posible decodificarlas por separado.
• Modos limitados de direccionamiento, generalmente de modo directo o indirecto
de registros con un desplazamiento.
• Un gran banco de registros, al contar con muchos registros no se utiliza la
memoria.

Modos de Direccionamiento

La mayoría de las instrucciones en un programa ordinario manipulan datos. Éstos


pueden ser variables, constantes, direcciones y hasta arreglos de datos. La manipulación
consiste en moverlos de un lugar de la computadora a otro, en efectuar cálculos,
desplazamientos y otras operaciones. Los datos pueden guardarse en la memoria o en
registros accesibles al programador.

En gran medida, la potencia del conjunto de instrucciones se debe a la capacidad de


manipular datos en forma rápida, flexible y eficiente. En el Pequeño Hombre
Computadora se contaba con un solo método de direccionar la memoria y el
programador disponía de un solo registro. A este método se le conoce como
direccionamiento directo, absoluto.

El direccionamiento de registro tiene la ventaja de que se implementa directamente como


parte de la CPU, es posible mover contenidos del registro fuente especificados en la
instrucción directamente al registro destino, sin acceso a la memoria.

Existen otros métodos de direccionamiento, pero ya no los veremos a detalle, será más
relevante entender que las instrucciones deben ejecutarse secuencialmente en la
computadora, y los métodos de direccionamiento sirven para lograr una ejecución
secuencial más rápida.

1.5 Sistemas Modernos de cómputo.

Hasta ahora hemos estudiado la organización fundamental de los sistemas de cómputo a


través del funcionamiento de la unidad central de procesamiento, de un grupo de
instrucciones que se ejecutan por medio de un ciclo, de métodos para direccionar
memoria y técnicas con que se llevan a cabo las operaciones de entrada/salida.

Hoy, el software impone fuertes exigencias a todos los componentes de un sistema de


cómputo. Por ejemplo, hace 35 años, la mainframe de IBM estaba provista de 512 Kb de

   
18
   
INGENIERÍA DE HARDWARE II

 
 
memoria y alcanzaba 0.2 millones de instrucciones por segundo, en la actualidad una
computadora con ese nivel de desempeño se juzgaría inadecuada para la generalidad de
las aplicaciones, muchas llegan a ejecutar 1,000 millones de instrucciones por segundo o
más. Al considerar la computadora como un todo, se logran más avances en el
desempeño gracias a la integración. Los componentes individuales se diseñan para que
funcionen juntos de modo que el desempeño global supere al de cada uno de ellos, esto
es el concepto de sinergia.

Integración de los componentes

En la siguiente figura se muestran los componentes esenciales de una computadora


personal o estación de trabajo:

En esta otra, los de un

Mainframe:

   
19
   
INGENIERÍA DE HARDWARE II

 
 
Y en esta última, los circuitos de una computadora personal:

Para nuestro caso de estudio, nos interesa ésta última, donde la computadora personal
está controlada por una unidad central de procesamiento que se conecta a la memoria y
a varios periféricos de E/S por medio de uno o más buses. Un reloj controla el
funcionamiento de ella. Se ofrecen las capacidades de interrupción y de acceso directo a
memoria para permitir un procesamiento rápido y eficaz de la E/S. La memoria caché
aminora el tiempo necesario para acceder a las áreas de memoria que están usándose
en ese momento.

En cuanto al funcionamiento de un sistema de cómputo, los programas se cargan en la


memoria, las instrucciones se extraen de allí y se ejecutan, una a la vez, aunque con
varios métodos, se logra el procesamiento simultáneo de varias de ellas. Según indiquen
las instrucciones, los datos se obtienen desde su ubicación específica, para que luego se
procesen y generen nuevos resultados. Las localidades de las referencias a la memoria
se identifican por medio de algoritmos de direccionamiento integrados en el conjunto de
instrucciones. Las instrucciones de E/S causan la transferencia de datos entre la CPU y
el dispositivo especificado, o envían los códigos de instrucción a los controladores para
que inicien el acceso directo a la memoria. La estructura de interrupciones les ofrece un
medio a los controladores de E/S y a otros dispositivos para que interrumpan el flujo
normal del programa, permitiendo ejecutar rutinas especiales del programa cuando se
requieren determinadas acciones, el usuario opera y controla la computadora al
seleccionar el programa a ejecutar.

   
20
   
INGENIERÍA DE HARDWARE II

 
 
Optimización del desempeño del sistema

Examinando las áreas de flujo de datos fuera de la CPU se encuentran áreas del sistema
que inciden directamente en el desempeño, a continuación se mencionan algunas:

• Varias unidades centrales de procesamiento


• Mayor velocidad del reloj
• Instrucciones y rutas más anchas de datos
• Acceso más rápido al disco
• Mayor cantidad y velocidad de la memoria

Algunas veces es necesario o conveniente conectar varias CPU de modo que compartan
algunos o todos los recursos de memoria o de E/S, las computadoras donde se hace
esto se llaman sistemas de multiprocesadores y tienen acceso a los mismos programas y
datos en la memoria compartida, y a los mismos dispositivos de E/S, de ahí la posibilidad
de dividir la ejecución del programa entre varios CPU´s y la factibilidad de conseguir una
ejecución redundante.

Otras veces, las computadoras están libremente acopladas, es decir, cada una es
completa por sí misma y comparten con otra un recurso de disco o memoria para
comunicarse entre ellas, pero el factor importante que los distingue es la autonomía de
las computadoras dentro del complejo o red, a esto se le conoce como sistemas
multicomputadoras o clústers. En este rubro se pueden identificar dos tipos de
configuración:

• Multiprocesamiento maestro-esclavo: Una CPU administra el sistema y controla


los recursos (el maestro), las otras CPU´s (esclavas), sólo realizan el trabajo
que se les asigne.
• Multiprocesamiento simétrico: Todas las CPU tienen acceso al sistema
operativo y a los recursos del sistema, por medio de prioridad de despacho en
los procesos.

La memoria virtual es un método que permite a la computadora separar las direcciones


usadas en un programa (direcciones lógicas) de las que identifican su ubicación física
(direcciones físicas), creando una correspondencia de modo tal que, durante la ejecución
del programa una dirección lógica se transforme en una física, a esto se le conoce como
mapeo y se basa en métodos de paginación y segmentación. La memoria caché, por su
parte, pretende mejorar la velocidad de acceso a la memoria, en contra parte a la
memoria virtual que lo que quiere es aumentar la cantidad de memoria disponible.

   
21
   

También podría gustarte