Documentos de Académico
Documentos de Profesional
Documentos de Cultura
de computadores
Séptima Edición
WILLIAM STALLINGS
Traducción
Antonio Cañas Vargas
Beatriz Prieto Campos
Francisco José Pelayo Valle
Julio Ortega Lo pera
Departamento de Arquitectura y Tecnología de Computadores
Universidad de Granada
BIB CA
UNIVERSIDAD de PALERMO
Madrid • México • Santafé de Bogotá • Buenos Aires • Caracas • Lima • Montevideo • San Juan •
San José • Santiago • Sao Paulo • White Plains
j Datos de catalogación bibliográfica
DERECHOS RESERVADOS
© 2006 PEARSON EDUCACIÓN, S.A.
C! Ribera del Loira, 28
28042 Madrid (España)
A.uthorized trans\ation from the English language edition, entit\ed COMPUTER ORGANIZATION A.ND
ARCHITECTURE: DESIGNING FOR PERFOMANCE, ?lñ Edition, by STALUNGS, WILLIAM,
pub\ished by Pearson Education, lnc, publishing as Prentice Hall, Copyright © 2006.
ISBN: 0-13-146592-9
All rights reserved. No part of this book may be reproduced or transmitted in any form or by any
means, electronic or mechanical, including photocopying, recording or by any information
storage retrieval system, without perrnission from Pearson Education, Inc.
Equipo editorial:
Editor: Miguel Martín-Romo
Técnico editorial: Marta Caicoya
Equipo de producción:
Director: José Antonio Ciares
Técnico: José Antonio Hemán
Diseño de cubierta: Equipo de diseño de Pearson Educación, S.A.
• Operación con los datos (DO, Data Operation): realiza la operación indicada en la instruc-
ción.
Almacenamiento de operando (OS, Operand Store): escribe el resultado en memoria o lo
saca a través de un dispositivo de E/S.
Los estados en la parte superior de la Figura 3.6 ocasionan intercambios entre la CPU y la memo-
ria o un módulo de E/S. Los estados en la parte inferior del diagrama solo ocasionan operaciones
internas a la CPU. El estado oac aparece dos veces, puesto que una instrucción puede ocasionar una
lectura, una escritura, o ambas cosas. No obstante, la acción realizada en ese estado es la misma en
ambos casos, y por eso sólo se necesita un único identificador de estado.
Obsérvese además que en el diagrama se considera la posibilidad de múltiples operandos y múl-
tiples resultados puesto que se necesitan en algunas instrucciones de ciertas máquinas. Por ejemplo,
la instrucción ADD A,B del PDP-11 da lugar a la siguiente secuencia de estados: iac,if,iod,oac,of,oac,
of,do,oac,os.
Por último, en algunas máquinas, con una única instrucción se puede especificar una operación a
realizar con un vector (matriz unidimensional) de números o con una cadena (matriz unidimensional)
de caracteres. Como indica la Figura 3.6, esto implicaría una repetición de estados de captación y/o
almacenamiento de operando.
INTERRUPCIONES
Prácticamente todos los computadores disponen de un mecanismo mediante el que otros módulos
(E/S, memoria) pueden interrumpir el procesamiento normal de la CPU. La Tabla 3.1 enumera las
clases de interrupciones más comunes. La naturaleza específica de estas interrupciones se examina en
este libro más tarde, especialmente en los Capítulos 7 y 12. Sin embargo, necesitamos introducir el
concepto ahora para comprender más claramente la esencia del ciclo de instrucción y los efectos de
las interrupciones en la estructura de interconexión. En este momento, el lector no necesita conocer
Debido a que la operación de E/S puede necesitar un tiempo relativamente largo, el programa de
E/S debe detenerse a esperar que concluya dicha operación; por consiguiente, el programa de usuario
estará parado en las llamadas de escritura (WRITE) durante un periodo de tiempo considerable.
:,·
...,
ce
Q)
Programa Programa Programa Programa Programa Programa ::J
¡;¡·
de usuario de E/S de usuario deE/S de usuario deE/S Q)
: .: .,,"'1 o
,,.~ ~.,.,.,~
l } } }
,., : /1 ,," 1 ¡: ,,...."' i c;:
tí' .,,_p·· .:,)(
!¡ : :' A , . .1! ::J
\V ..../'f ¡ 1 -<
!, ,,.."'".,., i ¡:
,,'' 1
){
! !:,
.,"'' ! ; ¡ ...,
Q)
_J.......
,·:...............-
1 1
Orden e
;:::¡:
. ..
ESCRfTIJRA deE/S deE/S ESCRITURA ............................../ Í deE/S (1)
ESCRITURA. ...................... / 1 g_
,..........
·--··-..;.._:
} ii
-- i -- e
...,
-.-----
·- ¡ 1/ .. 1 ,'
1 1 Q)
a.
l' . . . . . . . . . . ¡ / / i, .
1 l
......
¡
.
(1)
: ..........
! ,•
,,l ....~
:
''
''
1 /
' .. '
o
o
l'
'
ll
'
, FIN
'. . . . . . . . ¡ ¡'''
..., .,... . ..
i :' 3
"O
e
1/
. 1
'
,,/
''
,' ¡ '. "'- / . . . . . . . .. .
i /f-..... ............ Gestor de '
...
í l
,1 l
Gestor de
~
Q)
a.
o
...,
: / i Í / ......... ........... interrupción ! 1 interrupción (1)
: í:' ..... A ""1 i / ........ ~-------: 111
}
,' ,l
_L.....,__ •• , -- 1:: . . . ,': 1 ~ ¡................. /! :
~· l' ~~ ,-,.., : : -L- ....
i 1 , ,' .. 1
1 ' ........ ..!
i
1 ,
,l' ,,..'
i'
,,
,.,'' ..., FIN
..
i ,l FIN
1
• l
,
,,
,:,,.,•,•,,
,,
!/
.....,
,,
'
•'
!
! ../ /
'
,:/
.
'
! i ,l
'
- --; -- ::/
.,
ESCRITURA ESCRITURA ESCRITURA ~
(a) Sin interrupción (b) Interrupción, espera de E!S corta (e) Interrupción, espara de E/S larga
Programa de usuario
2------
Aqui se produce-
la interrupción i + 1 - - - - - - ~-----------'
M------
servicio a ese dispositivo concreto, y prosigue con la ejecución del programa original después de
haber dado dicho servicio al dispositivo. En la Figura 3.7b, los puntos en los que se producen las inte-
rrupciones se indican con una equis (X).
Desde el punto de vista del programa de usuario, una interrupción es precisamente eso: una inte-
rrupción en la secuencia normal de funcionamiento. Cuando el procesamiento de la interrupción se
completa, la ejecución prosigue (Figura 3.8). Así, el programa de usuario no tiene que incluir ningún
código especial para posibilitar las interrupciones; el procesador y el sistema operativo son los res-
ponsables de detener el programa de usuario y después permitir que prosiga en el mismo punto.
Para permitir el uso de interrupciones, se añade un ciclo de interrupción al ciclo de instrucción,
como muestra la Figura 3.9. En el ciclo de interrupción, el procesador comprueba si se ha generado
Interrupciones
inhabilitadas
~ Comprobación ¡,
Captación de 1 Ejecución de ~ de interrupción; f;
la siguiente ~--~
instrucción la instrucción ] Interrup- Interrupción ~
~ clones del proceso f1
e_,"""'"""""·.-"'C;.·,""·,,,._,.._..#,_,::habilitadas '""'"··'· '"•·' · ·'···"'- · ' ··• ··'
PARADA}
alguna interrupción, indicada por la presencia una señal de interrupción. Si no hay señales de inte-
rrupción pendientes, el procesador continúa con el ciclo de captación y accede a la siguiente instruc-
ción del programa en curso. Si hay alguna interrupción pendiente, el procesador hace lo siguiente:
l. Suspende la ejecución del programa en curso y guarda su contexto. Esto significa almacenar
la dirección de la siguiente instrucción a ejecutar (contenido actual del contador de progra-
ma) y cualquier otro dato relacionado con la actividad en curso del procesador.
2. Carga el contador de programa con la dirección de comienzo de una rutina de gestión de inte-
rrupción.
Tiempo
Q) Q)
j 0 0
Procesador
en espera
t Operación
deE/S @ t Operación
de E/S
0 0
®
0
0
0 @ t Operación
deE/S
Procesador
en espera
t Operación
deE/S 0
0 ®
(b) Con interrupciones
0
(a) Sin interrupciones
cualquier caso, es posible que se produzca una interrupción de comunicaciones mientras se está pro-
cesando la interrupción de la impresora.
Se pueden seguir dos alternativas para tratar las interrupciones múltiples. La primera es desacti-
var las interrupciones mientras se está procesando una interrupción. Una interrupción inhabilitada
(dísabled interrupt) simplemente significa que el procesador puede y debe ignorar la señal de petición
de interrupción. Si se produce una interrupción en ese momento, generalmente se mantiene pendien-
te y será examinada por el procesador una vez este haya activado las interrupciones. Así, cuando un
programa de usuario se está ejecutando y se produce una interrupción, las interrupciones se inhabili-
tan inmediatamente. Después de que la rutina de gestión de interrupción termine, las interrupciones
se habilitan antes de que el programa de usuario prosiga, y el procesador comprueba si se han produ-
cido interrupciones adicionales. Esta aproximación es correcta y simple, puesto que las interrupcio-
nes se manejan en un orden secuencial estricto (Figura 3.13a).
El inconveniente del enfoque anterior es que no tiene en cuenta la prioridad relativa ni las solici-
tudes con un tiempo crítico. Por ejemplo, cuando llega una entrada desde la línea de comunicaciones,
esta debe tramitarse rápidamente para dejar espacio a los datos siguientes. Si los primeros datos no se
han procesado antes de que lleguen los siguientes, se pueden perder.
72 Organización y arquitectura de computadores
Tiempo
CD CD
1 0 0
Procesador [ Opemción
en espera deE/S
0 Operación
de E/S
Procesador
0 en espera
0 0
0
0
0
Procesador
en espera
1 Opernción
deE/S
Procesador
Operación
deE/S
en espera
0 0
0 (b) Con interrupciones
Una segunda alternativa consiste en definir prioridades para las interrupciones y permitir que una
interrupción de prioridad más alta pueda interrumpir a un gestor de interrupción de prioridad menor
(Figura 3.13b ). Como ejemplo de esta segunda alternativa, considérese un sistema con tres dispositi-
vos de E/S: una impresora, un disco, y una línea de comunicaciones, con prioridades crecientes de 2,
4, y 5 respectivamente. La Figura 3.14, basada en un ejemplo de [TANE97] muestra una posible
secuencia. Un programa de usuario comienza en t =O. En t = 10, la impresora produce una inte-
rrupción; la información del programa de usuario se sitúa en la pila del sistema, y la ejecución conti-
núa con la rutina de servicio de interrupción (ISR) de la impresora. Mientras se está ejecutando esta
rutina, en t = 15, se produce una interrupción de comunicaciones. Como la línea de comunicaciones
tiene una prioridad mayor que la impresora, se acepta la interrupción. La ISR de la impresora se inte-
rrumpe, su estado se introduce en la pila, y la ejecución continúa con la rutina de comunicaciones.
Mientras se está ejecutando esta rutina, el disco ocasiona una interrupción (t = 20). Puesto que esta
Perspectiva de alto nivel del funcionamiento y de las interconexiones del computador 73
interrupción tiene una prioridad menor, simplemente se retiene, y la ISR de comunicaciones se eje-
cuta hasta que termina.
Cuando la rutina de comunicaciones termina (t = 25), se restaura el estado previo del procesador,
que corresponde a la ejecución de la rutina de la impresora. No obstante, antes incluso de que pueda
ejecutarse una sola instrucción de esa rutina, el procesador acepta la interrupción, de mayor prioridad,
generada por el disco y el control se transfiere a la rutina de disco. Solo cuando esta rutina termina
(t = 35), la rutina de la impresora puede reanudarse. Cuando termina esa rutina (t = 40), el control
vuelve finalmente al programa de usuario.
Hasta aquí, hemos discutido el funcionamiento del computador controlado por el procesador, y nos
hemos fijado esencialmente en la interacción del procesador y la memoria.
La discusión solo ha aludido al papel de los componentes de E/S. Este papel se discute con deta-
lle en el Capítulo 7, pero es conveniente hacer aquí un breve resumen.
Un módulo de E/S (por ejemplo un controlador de disco) puede intercambiar datos directamente
con el procesador. Igual que el procesador puede iniciar una lectura o escritura en memoria, especifi-
cando la dirección de una posición concreta de la misma, el procesador también puede leer o escribir
datos de (o en) un módulo de E/S. En este último caso, el procesador identifica un dispositivo espe-
cífico controlado por un módulo de E/S determinado. Por consiguiente, se puede producir una
secuencia de instrucciones similar a la de la Figura 3.5, con instrucciones de E/S en lugar de las ins-
trucciones de referencia a memoria.
En algunos casos, es deseable permitir que los intercambios de E/S se produzcan directamente
con la memoria. En ese caso, el procesador cede a un módulo de E/S la autoridad para leer de o escri-
bir en memoria, para que así la transferencia E/S-memoria pueda producirse sin la intervención del
74 Organización y arquitectura de computadores
Programa Gestor de
de usuario interrupción X
Gestor de
Programa Gestor de
de usuario interrupción X
Gestor de
procesador. Durante esas transferencias, el módulo de E/S proporciona a la memoria las órdenes de
lectura o escritura, liberando al procesador de cualquier responsabilidad en el intercambio. Esta ope-
ración se conoce con el nombre de acceso directo a memoria (DMA, Direct Memory Access), y se
estudiará con detalle en el Capítulo 7.
Perspectiva de alto nivel del funcionamiento y de las interconexiones del computador 75
Un computador está constituido por un conjunto de unidades o módulos de tres tipos elementales
(procesador, memoria, E/S) que se comunican entre sí. En efecto, un computador es una red de módu-
los elementales. Por consiguiente, deben existir lineas para interconectar estos módulos.
El conjunto de líneas que conectan los diversos módulos se denomina estructura de inter-
conexión. El diseño de dicha estructura dependerá de los intercambios que deban producirse entre los
módulos.
La Figura 3.15 sugiere los tipos de intercambios que se necesitan indicando las formas de las
entradas y las salidas en cada tipo de módulo: