Está en la página 1de 158

Arquitectura y Organización de Computadoras

TEORIA

Arquitectura y
Organización
de
Computadoras

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 1
Arquitectura y Organización de Computadoras
TEORIA

Arquitectura y Organización de Computadoras

Unidad 1: Computadoras digitales: Página 3


Conceptos introductorios. Funcionamiento básico. Organización de un sistema de cómputo. Arquitectura
Von Neuman: sus elementos. Clasificación. Las generaciones de computadoras. Parámetros característi-
cos de las computadoras digitales. Hardware, software, firmware. Concepto de niveles de abstracción.
Unidad 2: La información en una computadora: Página 21
Tamaños principales: bit, byte, palabra, doble palabra. Aritmética del procesador. Representaciones nu-
méricas de punto fijo. Operaciones. Representación y aritmética de números en punto flotante, normali-
zación. Error. Codificación de la información numérica y alfabética. Otros sistemas de codificación numé-
ricos y alfanuméricos. Códigos redundantes: Concepto, tipos.
Unidad 3: Circuitos digitales: Página 37
Repaso de conceptos de Álgebra de Boole. Circuitos digitales básicos. Circuitos integrados. Circuitos lógi-
cos combinacionales: sumadores, sustractores, conversores de código. Relojes. El factor tiempo: circui-
tos lógicos secuenciales. Concepto de memoria y lógica programable. Registros y contadores.
Unidad 4: Subsistemas de un computador: Página 62
Arquitectura general y organización funcional de computadoras. Descripción de los distintos bloques
(Memoria, ALU, Unidad de control y Unidad de E/S). Proceso de búsqueda y ejecución de las instruccio-
nes.). Interrupciones. Estructuras de interconexión. Buses.
Unidad 5: Subsistema CPU: Página 80
Función y estructura de una CPU. Comunicación CPU-memoria, dato y dirección. Instrucciones: concepto
y formatos. Lenguaje de máquina y assembly. Conjunto de instrucciones: operaciones, formatos y mo-
dos de direccionamiento. Organización de registros. Segmentación de instrucciones. Análisis de perfor-
mance. Microprocesadores. Conceptos de máquina CICS y RISC. Interrupciones: tratamiento general.
Unidad de control: Su funcionamiento. Microprogramación: Conceptos. Ejemplos. Conceptos de Máqui-
nas algorítmicas
Unidad 6: Subsistema Memoria: Página 105
Jerarquía. Tipos de memoria. Memoria principal, formas de organización. Repaso de memorias secunda-
rias, organización y formato de datos. Controladores. Memoria caché, concepto y descripción. Conceptos
de memoria virtual.
Unidad 7: Subsistema de Entrada-Salida: Página 128
Módulos de E/S. Funciones y estructura. Técnicas de transferencia de I/O (Programada, manejada por
interrupción y por DMA). Canales. Noción de interfase. Puertos serie y paralelo.
Unidad 8: Arquitecturas avanzadas: Página 133
Concepto de procesamiento paralelo. Clasificación de Flynn.
Procesadores Superescalares. Ejemplos. Procesadores vectoriales. Ejemplos. Otros tipos.

1: Computadoras digitales

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 2
Arquitectura y Organización de Computadoras
TEORIA

Conceptos introductorios:
Computadora
• Máquina
• Digital
• Sincrónica
• Cálculo Numérico
• Calculo lógico
• Controlada por programa
• Comunicación con el mundo exterior
Arquitectura de Computadoras
• Arquitectura: Atributos de un sistema que tienen un impacto directo en la ejecución lógica de
un programa.
• Atributos visibles para un programador
• Ejemplos: Conjunto de instrucciones, nro de bits usados para representar tipos de datos
(numéricos o caracteres), técnicas de direccionamiento de memoria, mecanismos de E/S, etc.
• Ej.: Existe la instrucción de multiplicación?
• Organización: Refiere a las unidades funcionales y sus interconexiones, que dan lugar a
especificaciones arquitectónicas.
• Como son implementados esos atributos.
• Atributos de organización: Detalles de hardware transparentes al programador: señales de
control, interfaces entre el computador y los periféricos, tecnología de memoria, frecuencia del
reloj, etc.
• Ej.: Existe la unidad de multiplicación por hardware o se realiza por sumas repetidas ?
Familias de computadoras
• Fabricantes ofrecen una familia de modelos de computadoras.
• Todas con la misma arquitectura, pero con distinta organización.
• Los integrantes de una familia tienen precios y prestaciones distintas.
• Arquitectura puede sobrevivir muchos años, pero la organización evoluciona con la tecnología.
• Arquitectura IBM sistema /370
• Microcomputadoras: Relación entre arquitectura y organización es muy estrecha.
• Cambios tecnológicos, influyen en la organización y generan arquitecturas mas ricas y potentes.
• Hay menos requisitos de compatibilidad entre modelos.
• Ejemplo son los computadores RISC, Reduced Instruction Set Computer).
• Aquí mayor interacción entre diseño arquitectónico y de organización.
Estructura y Funcionamiento:
• Computador: Es un sistema, constituido de un conjunto de componentes interrelacionados.
• La organización de un computador es jerárquica.
• Es necesario tratar con un nivel particular del sistema a la vez.
• De cada nivel al diseñador le interesa:
• Estructura: Como se interconectan los componentes.
• Función: la operación de cada componente individual como parte de la estructura
• Computador es un sistema complejo
• Naturaleza jerárquica de los sistema complejos.
• Sistema jerárquico: subsistemas interrelacionados. Cada uno de los cuales se organiza en
una estructura jerárquica, hasta el nivel más bajo del subsistema elemental.
• En cada nivel interesa: Estructura y funcionamiento
• Estructura: Modo en que los componentes están interrelacionados.
• Funcionamiento: la operación de cada componente individual como parte de la estructura.
• En términos de descripción: de arriba abajo ( “top-down”) es clara y efectiva (descomponer el
sistema.).
• Funciones básicas de un computador:
• Procesamiento de datos
• Almacenamiento de datos (corto/largo plazo)
• Transferencias de datos (Entrada/salida.- Comunicación de datos).-
• Control ( De las tres anteriores- gestionar y dirigir por medio de instrucciones)
• Número de operaciones posibles que pueden ser realizadas es pequeño.
• Posibles operaciones de un computador
Visión funcional de un computador

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 3
Arquitectura y Organización de Computadoras
TEORIA

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 4
Arquitectura y Organización de Computadoras
TEORIA

Operaciones

En la figura:
– a) Transferencia de Datos: (Por ejemplo: keyboard to screen )
– b) Almacenamiento: (Por ejemplo: Internet Download To Disk )
– c) Procesamiento de y hacia el almacenamiento: (Por ejemplo: Actualización de
Estados Bancarios)
– d) Procesamiento desde el almacenamiento hacia la E/S: (Por ejemplo: Impresión de
Estados Bancarios)
Operaciones
• Las operaciones detalladas pueden parecer absurdamente generalizada, pero:

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 5
Arquitectura y Organización de Computadoras
TEORIA

• “Hay sorprendentemente muy pocas formas de estructuras de computadores que se ajusten a la fun-
ción que va a ser llevada a cabo. En la raíz de esto subyace el problema de la naturaleza de uso general
de computadores, en la cual toda la especialización funcional ocurre cuando se programa y no cuando se
diseña”.
(SIEW82)
Estructura de una computadora
• Como se interconectan los componentes.
• El computador es una entidad que interactúa con su entorno externo.
• Existen cuatro componentes estructurales principales:
– Unidad Central de Procesamiento (procesador)
– Memoria Principal: almacena datos
– Entrada/Salida transfieren datos entre el computador y el entorno externo
– Sistema de Interconexión: mecanismo de conexión entre la CPU, la memoria y la E/S.

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 6
Arquitectura y Organización de Computadoras
TEORIA

• Unidad Central de Procesamiento: Sus principales componentes estructurales:


– Unidad de control
– Unidad aritmético-lógica ( ALU )
– Registros
– Interconexiones CPU: mecanismos que proporcionan comunicación entre la UC, la ALU y los registros.
Estructura de la Unidad de Control
• Unidad de Control: Controla el funcionamiento de la CPU y por tanto de la computadora.
• Implementación microprogramada , actua ejecutando microinstrucciones que definen su funcionalidad.
• Su estructura
– Memoria de control
– Lógica Secuencial
– Registros y decodificadores

Generaciones de Computadoras.-
Evolución y prestaciones.
• La evolución de los computadores se ha caracterizado por:
• Incremento de la velocidad del procesador.
• Disminución del tamaño de los componentes
• Aumento del tamaño de memoria
• Aumento de la capacidad de E/S y de la velocidad.

Primera generación: tubos de vacío


• ENIAC: Mauchly y Eckert ( Inician 1943 )
• Primer computador electrónico de propósito general del mundo.
• Máquina decimal, realizaba 5000 + seg.
• Contenía mas de 18000 tubos
• Pesaba 30 toneladas y ocupaba 15.000 pies cuadrados.
• Se programaba manualmente: conmutadores y conectando y desconectando cables
• 1946: Nueva era de computadores electrónicos

Manchester University Mark I


(Source: http://www.paralogos.com/DeadSuper)
• Los supercomputadores, de un gran volumen y alto precio han sido largamente desplazados, por
máquinas de tamaño menor y precio menor que ofrecen mejor promedio de performance y precio.

Primera generación: tubos de vacío


• Concepto de programa almacenado: Máquina de von Neuman
• Se diseña un nuevo computador de programa almacenado el IAS, de propósito general. For-
mado por:
• Memoria principal: Almacena tanto datos como instrucciones
• Unidad Aritmético_lógica: realiza operaciones con datos binarios
• Unidad de control: Interpreta las instrucciones en memoria y provoca su ejecución.
• Equipo de entrada-salida dirigido por la unidad de control

Proposiciones de von Neuman

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 7
Arquitectura y Organización de Computadoras
TEORIA

• Primero: Dispositivo es un computador que realizará frecuentemente las operaciones elementales


+,-,*,/. Contendrá elementos especializados sólo en estas operaciones. La primera parte específica: CA
( Central aritmética).
• Segundo: Control lógico será realizado por un órgano central de control. (CC)
• Tercero: Cualquier dispositivo que realice secuencias largas y complicadas de operaciones,
debe tener una memoria considerable (.. ). La memoria es la tercera parte especifica del dispositivo ( M
).
• Las tres partes específicas CA,CC (juntas C ) y M, corresponden a las neuronas asociativas del sistema
nervioso humano. Queda por discutir los equivalentes a la neuronas sensoriales o aferentes y las moto-
ras o eferentes. Éstos son los órganos del dispositivo de entrada y salida.
• EL dispositivo tiene que estar dotado con la habilidad de mantener contacto de entrada y salida con
medios específicos: el medio de grabación exterior del dispositivo R ( Recording).
• Cuarto: El dispositivo tiene que tener órganos para transferir .. información a partir de R a sus partes
específicas C y M. Éstos órganos forman su entrada ( I )
• Quinto: El dispositivo tiene que tener órganos para transferir ( .. ) información a partir de sus partes
específicas C y M hacia R. Éstos órganos forman su salida, la quinta parte específica: O ( Output). Es
mejor de nuevo hacer todas las transferencias a partir de M ( mediante O ) a R, y nunca directamente.
• Salvo muy raras excepciones todos los computadores tienen la estructura y funcionamiento que la in-
dicada por Von Neuman.

El modelo von Neumann ( IAS)


El modelo von Neumann presenta cinco componentes principales:
( 1) unidad de entrada; (2) unidad de salida; (3) unidad aritmética lógica; (4) unidad de memoria; (5)
unidad de control.

Memoria

Unidad de Unidad Unidad de


Entrada Aritmético Salida
Lógica (ALU)

Unidad de
Control

Operación del computador IAS

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 8
Arquitectura y Organización de Computadoras
TEORIA

(Institute for Advanced Studies )


• Memoria: 1000 palabras ó posiciones
• Cada palabra 40 bits ( dígitos binarios )
• Unidad de control: Capta instrucciones y las ejecuta una a una.
• Registros de ALU:
• Registro Acumulador (AC) y Multiplicador cociente (MQ): almacenan operandos y resultados de opera-
ciones de la ALU temporalmente.
• Registro temporal de memoria (MBR): contiene una palabra que debe ser almacenada en memoria o
recibe una palabra procedente de memoria

Formatos de la Memoria IAS

0 1 39

Bit de Signo

(a) Palabra número

0 8 19 20 28 39

Codop Dirección Codop Dirección

(b) Palabra instrucción

Estructura Expandida del IAS

Unidad Central de Procesamiento

Unidad Aritmético-Lógica
Equipo de Memoria
Entrada Principal
Salida M
Acumulador MQ

Circuitos aritméticos lógicos

MBR

Datos/ Instrucciones
IBR PC

MAR
IR Circuitos de
control

Unidad de control de programa

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 9
Arquitectura y Organización de Computadoras
TEORIA

El conjunto de instrucciones de IAS


Tipo de Instrucciones Codigo de Operación Representación Descripción
Simbólica
00001010 LOAD MQ Transferir el contenido del
registro MQ para el
00001001 LOAD MQ,M(X) acumulador AC
Transferir el contenido de la
00100001 STOR M(X) dirección de memoria X a
MQ
Transferir el contenido del
Transferencia de Datos 00000001 LOAD M(X) acumulador a dirección de
memoria X
00000010 LOAD -M(X) Transferencia M(X) para el
acumulador
00000011 LOAD |M(X)| Transferencia -M(X) para el
acumulador
00000100 LOAD -|M(X)| Valor absoluto de la
transferencia de M(X) para
el acumulador
Transferencia-|M (X) | para
el acumulador

Salto Incondicional 00001101 JUMP M(X,0:19) Tomar siguiente instrucción desde


la izquierda de la mitad de M(X)
Tomar siguiente instrucción desde
00001110 JUMP M(X,20:39) la derecha de la mitad de M(X)
Salto Condicional 00001111 JUMP+ M(X,0:19) Si el número en el
acumulador es no negativo,
tome la siguiente instrucción
desde la mitad izquierda de
00010000 JUMP+ M(X,20:39) M(X)
Si el número en el
acumulador es no negativo,
tome la siguiente instrucción
desde la mitad derecha de
M(X)

Aritmética 00000101 SUMAR M(X) Agregar M(X) a CA; poner el


resultado en AC
00000111 SUMAR |M(X)| Añadir |M (X) | a CA; poner
el resultado en AC
00000110 SUB M(X) Restar M(X) de CA; poner el
resultado en AC
00001000 SUB |M(X)| Restar |M (X) | de CA; poner
el resto en AC
00001011 MUL M(X) Multiplicar M(X) por MQ;
poner los bits más
significativos del resultado
en AC, poner los bits menos
00001100 DIV M(X) significativos en MQ
Dividir AC por M(X); poner
00010100 LSH el cociente en MQ y el resto
en AC
Acumulador de multiplicar

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 10
Arquitectura y Organización de Computadoras
TEORIA

00010101 RSH por 2; es decir, cambiar


posición de izquierda un bit
Dividir acumulador por 2; es
decir, mayús. derecha una
posición

Modificación de 00010010 STOR M(X,8:19) Reemplazar el campo de


Direcciones de Memoria dirección izquierda en M(X)
00010011 STOR M(X,28:39) por 12 bits más a la derecha
de AC
Reemplazar el campo de
dirección derecha en M(X)
por 12 bits más a la derecha
de AC

Operación del computador IAS


• Registros de la Unidad de Control:
• Registro de Instrucción ( IR ): Contiene 8 bits del código de operación de la instrucción que se va a
ejecutar.
• Registro temporal de Instrucción ( IBR ) almacena temporalmente la instrucción contenida en la parte
derecha de una palabra de memoria.
• Contador de programa ( PC ) : contiene la dirección de la próxima pareja de instrucciones a ser capta-
da de memoria
• Registro de dirección de memoria ( MAR ): especifica la dirección en memoria de la palabra que va a
ser escrita o leída en MBR.

Ciclos de ejecución
• El IAS ejecuta repetidamente el:
• Ciclo de instrucción:
– Ciclo de captación: El Codop de la siguiente instrucción es cargado en IR, la parte que contiene la di-
rección se almacena en MAR.
– La instrucción es captada desde el IBR , o desde la memoria.
– Ciclo de ejecución: Cuando el Codop esta en IR. Los circuitos de control interpretan el CODOP y eje-
cutan la instrucción, enviando señales de control adecuadas para provocar que los
datos se transfieran o que la ALU realice una operación.
– Tabla de Conjunto de instrucciones del IAS

El modelo de bus de sistema


• El modelo de von Neumann refinado , llamado modelo de bus del sistema tiene una CPU (ALU y con-
trol), memoria, y unidad de entrada/salida.
• Comunicación entre componentes se maneja por un camino compartido llamado bus del sistema, el
cual está formado por el bus de datos, el bus de direcciones y el bus de control.
Algunas arquitecturas pueden tener un Bus separado de I/O.

CPU (ALU, Memoria Entrada Salida


Registros y (E / S)
Control)

Computadores comerciales
– En los años 50: Compañias Sperry e IBM
– UNIVAC I: Primer computador de uso comercial. Utilizada para el censo en EEUU. Tareas: manejo de
matrices, reparto de primas para empresas, etc.
– UNIVAC II: mas memoria y más capacidad de cálculo, estrategia de compatibilidad ( para evitar per-
der la inversión en programas)
– El UNIVAC 1103 y sus sucesores diseñados para aplicaciones cientificas y de calculos complejos.

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 11
Arquitectura y Organización de Computadoras
TEORIA

– IBM: sacó su primer computador con programas almacenados electrónicamente, en 1953. ( 701 en
1953 ).
– Se inicia la serie de computadores 700/7000, que situaron a IBM como el fabricante de computadores
dominante ( aplicaciones de gestion ).

Segunda Generación: Los transistores


• Más pequeño, más barato, disipa menos calor
• Es un dispositivo de estado sólido, hecho con silicio.
• Inventado en los Laboratorios Bell en 1947
• Lanzada por NCR y con mas éxito por RCA
• Luego IBM siguió con la serie 7000.
• Se introdujeron unidades lógicas y aritméticas más complejas
• Uso de lenguajes de programación de alto nivel
• Se proporcionó un software del sistema.
• Aparece la empresa DEC (1957), con el PDP-1, se inicia asi el desarrollo de los minicomputadores.
• Serie 700 de IBM: la familia sufrió aumento de prestaciones y capacidad y/o disminución de precios.
• Memoria principal: creció de 2 K a 32 K palabras.
• Tiempo de acceso a una palabra de memoria: de 30us a 1,4 us.
• Crece el nro de codigos de operación de 24 a 185.
• Diferencias con IAS:
– A) Uso de canales de datos.
– B) Multiplexor: punto central de conexión central de los canales de datos, la CPU y la memoria. ( orga-
niza los accesos a la memoria desde la CPU y los canales de datos).
• Entre los 50 y los 60, los computadores compuestos por transistores, resistencias,
capacidades, etc.
• Estos se fabricaban separadamente ( en sus contenedores) y luego se soldaban o cableaban juntos.
• Proceso engorroso y caro: al crecer la cantidad de transistores ( 10000 o mas) a empacar en tarjetas
de circuitos en forma de panel.

Generaciones de computadores
Generación Años Aproximados Tecnología Velocidad Típica
(Operaciones por segundo)
1 1946–1957 Tubos de Vacío 40000
2 1958–1964 Transistores 200000
3 1965–1971 Escala de pequeña y 1000000
mediana integración
4 1972–1977 Escala de alta integración 10000000
5 1978–1991 Escala de muy alta 100000000
integración
6 1991–Actualidad Escala de ultra muy alta 1000000000
integración

Tercera Generación: Circuitos integrados


• Aparecen en 1958 y revolucionan la electrónica.
• Exponentes: IBM Sistema/ 360 y DEC PDP-8.
• Aparece la microelectrónica: “pequeña electrónica”
• Los elementos básicos deben ofrecer almacenamiento, procesamiento y control de funciones.
• Computador digital: requiere solo dos tipos de componentes: puertas y celdas de memoria.
• Interconectando muchos de estos dispositivos, se puede construir un computador.
• Funciones básicas: Almacén de datos: proporcionado por las celdas de memoria.
• Procesamiento de datos: proporcionado por las puertas.
• Transferencia de datos: caminos entre componentes.
• Control: los caminos entre componentes pueden llevar las señales de control.
• Se construyen miles de transistores al mismo tiempo en una sola oblea de silicio.
• La oblea se divide en una matriz. Se fabrica el mismo patrón de circuito en cada área.
• La oblea se divide en chips.
• Cada chip: varias puertas, mas puntos de interconexiones de entrada salida.
• Se encapsulan en una carcasa y que le proporciona patas.
• Varios chips pueden interconectarse en una tarjeta de circuito impreso para producir circuitos mas
complejos y mayores.
• Primeros circuitos: Pequeña escala de integración (SSI)
• Creció el número de componentes a encapsular en un solo chip.
• Ley de Moore: El número de transistores que se podrían integrar en un solo chip se duplicaba cada
año y se predecía que esto continuaría en un futuro cercano. El ritmo disminuyó, duplicándose cada 18
meses en los 70, pero luego la velocidad se ha mantenido desde entonces.

Evolución del número de transistores en los procesadores

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 12
Arquitectura y Organización de Computadoras
TEORIA

Consecuencias de la ley de Moore:


• Precio del chip ha permanecido prácticamente invariable
• Costo de la lógica del computadora y de la circuitería de la memoria han caído a una velocidad drásti-
ca.
• La lógica y la memoria están más próximos en chips más densamente encapsulados -> la longitud de
las
interconexiones eléctricas ha disminuido-> incrementandose la velocidad operativa.
• Disminución del tamaño del computador
• Reducción de las necesidades de potencia y refrigeración.
• Las interconexiones de los circuitos son más fiables que las conexiones soldadas.
• El sistema /360 de IBM fue la primera familia de computadores que se planeo.
• Un cliente podía empezar con un modelo barato, y luego pasarse a una con mayores capacidades, sin
sacrificar la inversión en software.
• Las características de una familia son:
– Conjunto de instrucciones similar o idéntico
– Sistemas operativos similares o idénticos
– Velocidad creciente
– Numero creciente de puertos de E/S
– Tamaño de memoria creciente
– Costo creciente
• Las diferencias entre modelos se basaron en:
– La velocidad básica
– El tamaño
– Grado de simultaneidad
• Por ej. : Lograrse mayor velocidad en la ejecución de una instrucción dada: usando una circuiteria mas
compleja en la ALU, permitiendo que las suboperaciones se realizaran en paralelo.
• Otro modo: incrementar la amplitud del camino de datos entre memoria principal y la CPU.
• Nace el PDP-8 de DEC.

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 13
Arquitectura y Organización de Computadoras
TEORIA

• De bajo costo y tamaño pequeño


• Costaba 16.000 dólares
• Usaban una estructura que ahora es prácticamente universal para minicomputadores y microcomputa-
dores ( estructura de bus ).
• Todos los componentes del sistema comparten un conjunto de caminos, cuyo uso esta controlado por
la CPU.

Últimas generaciones Existe un acuerdo no tan general para la cuarta y quinta generación
• 4 ta. 1972 - 1977 - Integración a gran escala ( LSI) + de 1000 componentes en un solo chip
• 5ta generación: 1978 en adelante Integración a muy grande escala ( VLSI ) + de 10.000 componentes
por chip
• Actualmente chips VLSI con más de 100.000 componentes
• Con el avance de la tecnología, los nuevos productos, el software y las comunicaciones la separación
de generaciones se vuelve menos clara
• Los circuitos integrados fueron usados para construir el procesador ( la ALU y UC.)
• También esta misma tecnología podía usarse para construir memorias.
• Memorias: Entre los 50 y los 60: de anillos de material ferromagnético.
• Se magnetizaban en un sentido el anillo (llamado núcleo) y representaba un uno, en el otro un cero.
• Era más bien rápida, pero era cara, voluminosa y usaba lectura destructiva. Leía un bit de memoria en
una milésima de segundo.
• Memoria semiconductora: Introducidas en 1970 por Fairchild. Un chip podía tener 256 bits de me-
moria.
• Era no destructiva y más barata. Leía un bit de memoria en 70 mil millonésimas de seg.El costo por bit
era mayor que el de un núcleo.
• En 1974 precio de memoria semiconductor menor que la de núcleo.

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 14
Arquitectura y Organización de Computadoras
TEORIA

• A partir de allí continua disminución del precio y aumento de la densidad.


Microprocesadores: En cada chip había más elementos ( crece en densidad).
• En 1971 Intel desarrolló su 4004. Contenía todos los componentes de la CPU en un solo chip (Micro-
procesador).
• Evolución del número de bits que el procesador trata a la vez. Otra medida es la anchura del bus de
datos.
• En 1972 aparece el Intel 8008, microprocesador de 8 bits
• En 1974 nace el INTEL 8080 primer microprocesador de uso general.
• INTEL 8080: es de 8 bits, mayor capacidad de direccionamiento, más rápido, conjunto de instrucciones
más rico.
• A finales de los 70, aparecen los de 16 bits (8086). 59

Tabla 2.6 evolución de microprocesadores Intel


(a) Procesadores de los años 1970
4004 8008 8080 8086 8088
Fecha de 1971 1972 1974 1978 1979
Introducción
Velocidad de 108 KHz 108 KHz 2 MHz 5 MHz, 8 MHz, 5 MHz, 8MHz
Reloj 10MHz
Ancho de Bus 4 bits 8 bits 8 bits 16 bits 8 bits
Numero de 2300 3500 6000 29000 29000
Transistores
Tamaño 10 - 6 3 6
(micrómetros)
Memoria 640 Bytes 16 KB 64 KB 1 MB 1MB
Direccionable
Memoria Virtual - - - - -
Caché - - - - -

(b) Procesadores de los años 1980


80286 386TM DX 386TM SX 486TM DX CPU
Fecha de 1982 1985 1988 1989
Inintroducción
Velocidad de Reloj 6 MHz – 12.5 MHz 16 MHz - 33 MHz 16 MHz – 33MHz 25 MHz - 50MHz
Ancho de Bus 16 bits 16 bits 16 bits 16 bits
Numero de 134000 275000 275000 1.2 Millones
Transistores
Tamaño 1.5 1 1 0.8 – 1
(micrómetros)
Memoria 16 MB 4 GB 16 MB 4 GB
Direccionable
Memoria Virtual 1 GB 64 TB 64 TB 64 TB
Caché - - - 8 KB

(c) Procesadores de los años 1990

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 15
Arquitectura y Organización de Computadoras
TEORIA

486TM SX Pentium Pentium Pro Pentium II


Fecha de 1991 1993 1995 1997
Introducción
Velocidad de Reloj 16 MHz – 33 MHz 60 MHz – 166 MHz 150 MHz – 200 MHz 200 MHz – 300 MHz
Ancho de Bus 32 bits 32 bits 64 bits 64 bits
Numero de 1185 millones 3.1 millones 5.5 millones 7.5 millones
Transistores
Tamaño 1 0.8 0.6 0.35
(micrómetros)
Memoria 4 GB 4 GB 64 GB 64 GB
Direccionable
Memoria Virtual 64 TB 64 TB 64 TB 64 TB
Caché 8 KB 8 KB 512 KB en L1 y 1MB 512 KB L2
en L2

(d) Procesadores Recientes


Pentium Pentium Pentium Core 2 Core 2 Core i3 Core i5 Core i7
III IV Dual Duo Quad
Core
Fecha de 1999 2000 2006 2006 2008 2009 2009 2009
Introducci
ón
Velocidad 450-600 1.3 – 1.8 1.3 – 2.6 1.06 – 1.2 3 GHz 3.3 GHz 3.8 GHz 3.8 GHz
de Reloj MHz GHz GHz GHz
Ancho de 64 bits 64 bits 64 bits 64 bits 64 bits 64 bits 64 bits 64 bits
Bus
Numero 9.5 42 370 167 820 382 750 1170
de millons millones millones millones millones millones millones millones
Transistor
es
Tamaño 250 180 32 65 45 32 32 32
(nanómet
ros)
Memoria 64 GB 64 GB 64 GB 64 GB 64 GB 64 GB 64 GB 64 GB
Direcciona
ble
Memoria 64 TB 64 TB 64 TB 64 TB 64 TB 64 TB 64 TB 64 TB
Virtual
Caché 512 KB en 256 en L2 1 MB en 2 MB en 6 MB en 4 MB en 8 MB en 12 MB en
L2 L1 L2 L2 L3 L3 L3

Niveles de máquina
• Hay un número de niveles en una computadora (el número exacto está abierto al debate), desde el ni-
vel del usuario hasta el nivel del transistor. • A medida que se desciende desde el nivel superior, estos
niveles se tornan menos abstractos y comienza a aparecer cada vez más, la estructura interna de la
computadora.
• En la arquitectura suele emplearse un concepto de niveles.

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 16
Arquitectura y Organización de Computadoras
TEORIA

•Idea básica: existencia de muchos niveles, desde los cuales considerar a la computadora.
•Desde el nivel más alto en que el usuario ejecuta programas, hasta el nivel inferior que consiste en
transistores y cables.
• Hay un número de niveles en una computadora (el número exacto está abierto al debate), desde el ni-
vel del usuario hasta el nivel del transistor. • A medida que se desciende desde el nivel superior, estos
niveles se tornan menos abstractos y comienza a aparecer cada vez más, la estructura interna de la
computadora.
• Nivel del usuario o del programa de aplicación. El usuario interactua con la computadora por medio de
la ejecución de programas como procesadores de texto, planillas de cálculo o juegos. Ve la computadora
a través de los programas que ejecuta
Poco o nada visible la estructura interna
• Nivel del lenguaje de alto nivel.
El usuario interactua con la computadora por medio de la ejecución de programas en lenguajes como C,
Pascal, Fortran o Java.
El programador ve los tipos de datos y las instrucciones.
No conoce como la máquina configura esos tipos de datos.
Es función del compilador convertirlos hacia los circuitos de la computadora.
Los programas así escritos pueden ser recompilados para distintos tipos de máquina( compatibilidad de
código fuente).
• Nivel del lenguaje de máquina. Miran “hacia abajo” en la jerarquía.
Deben tratar con cuestiones circuitales tales como la estructura de los registros y la transferencia de da-
tos entre ellos.
El conjunto de instrucciones del lenguaje de máquina para una computadora se denomina juego de
instrucciones.
Muchas instrucciones pueden describirse en términos de las transferencias efectuadas entre registros.
Código real que utiliza la máquina es el código binario.
Assembler: traduce esquemas nemotécnicos de un lenguaje común, tales como MOVE Data, Acc a
expresiones formadas por unos y ceros.
• “Compatibilidad binaria”:
Serie IBM 360 – Intel Corporation: 8086, 80286, 80386, 80486 Pentium
Es posible tener maquinas que difieren en la implementacion del nivel inferior pero que representan el
mismo conjunto de instrucciones o algun subconjunto o superconjunto de un juego de instrucciones
dado.
Otras computadoras ofrecen a sus usuarios distintos juegos e instrucciones, lo que dificulta el transporte
del paquete de programas de software de una computadora hacia otra familia.
Nivel de Control.
La Unidad de control a través de señales de control transfiere la información entre registros.
La U. de Control interpreta las instrucciones de máquina una a una que miran “hacia abajo” en la jerar-
quía.
Formas diferentes de implementar la unidad de control:
Cableado/Control Microprogramado
Cablear: señales de control que efectuan la transferencia entre registros y están generadas a partir de
un bloque de componentes lógicos digitales.
Ventajas: Velocidad y cantidad de componentes
Desventajas: Extremadamente dificiles de diseñar.
• Microprogramada: Más lenta pero más sencilla.
Programa escrito en lenguaje de nivel menor aún e implementado en los circuitos de la máquina, cuya
función es interpretar las instrucciones del lenguaje de máquina.
Firmware: incluye hardware y software y se ejecuta a través de un microcontrolador quien ejecuta las
microinstrucciones reales.
_• Nivel de las unidades funcionales.
_Las transferencias de registros y las demás operaciones implementadas por la unidad de control
mueven información desde y hacia “unidades funcionales”.
_Se incluyen los registros internos de la CPU, la ALU y la memoria principal de la computadora.
_ Circuitos lógicos, transistores y cables.
_Los circuitoslógicos se utilizan para construir las unidades funcionales y los transistores se usan
para construir los circuitos lógicos.
_Circuitos lógicos: Implementan las operaciones lógicas de más bajo nivel, de las cuales depende el
funcionamiento de la computadora.
_Transistores: se utilizan para construir los circuitos lógicos.
_Ultimo nivel: formada por componentes eléctricos como transistores y cables que sirven para
construir los circuitos logicos. A este nivel el comportamiento se dispersa en términos de
tensiones, corrientes, tiempos de propagación de señales, efectos cuánticos y otros temas de bajo
nivel.

•Interacciones entre niveles.


Suele confundirse en forma frecuente
Programas emuladores: Emulan el juego completo de instrucciones de una computadora sobre otra
computadora distinta.

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 17
Arquitectura y Organización de Computadoras
TEORIA

Computadores que no tienen coprocesador de punto flotante emulan las instrucciones de punto flotante
por medio de una serie de rutinas implementadas en el leng. de máquina del microprocesador y almace-
nadas en un circuito integrado de memoria ROM. Los puntos de vista de los lenguajes absoluto y de alto
nivel son los mismos para ambas implementaciones, con excepción de la velocidad.
Nivel de lenguaje alto nivel y los niveles de firmware y de las unidades funcionales pueden estar tan en-
trelazados que resulte difícil identificar que operación se está produciendo en qué nivel

La perspectiva del programador


• El programador que trabaja en lenguaje de máquina tiene interes en el lenguaje y en las unidades
funcionales.
Estos dos elementos conforman la arquitectura de programación de la computadora.
La perspectiva del arquitecto de computadoras.
Observa al sistema desde todos sus niveles.
Al enfocar el diseño de una PC sufre requerimientos de rendimiento y resctriciones de costo.
Esta búsqueda de equilibrio lleva a una búsqueda de compromiso entre y a través de los niveles de ma-
quina

Diseño para conseguir mejores prestaciones


•Precio-> Disminuye; prestaciones y capacidad ->crece • Aplicaciones de oficina que requieren de ma-
yor potencia de los microprocesadores incluyen:
•Procesamiento de imágenes
•Reconocimiento del habla
•Aplicaciones multimedia
•Vídeo-conferencias
•Almacenamiento de ficheros de voz y vídeo
•Estaciones de trabajo- >aplicaciones de ingeniería, ciencia y simulaciones
•Negocios-> servidores para transacciones y bases de datos, redes cliente-servidor que reemplazan los
centros de computo de antaño.
•Lo mas sorprendente: Bloques funcionales de hoy->similares al IAS de hace 50 años
•Novedosas técnicas para maximizar las prestaciones
•Factores que hay tras la necesidad de diseñar para obtener mejores prestaciones:
•1) Velocidad del Microprocesador: Su evolución continua confirmando la Ley de Moore. Reduciendo
el tamaño de las delgadas líneas de los circuitos de los transistores de silicio ( 10 % por año) se podría
crear una nueva generación de chips cada tres años ( con el cuádruple de transistores).
•En chips de memoria: Se ha cuadriplicado la capacidad de las DRAM cada tres años (tecnología básica
de la memoria principal).
•EN microprocesadores: La adición de nuevos circuitos y potenciación de la velocidad, ha conseguido
cuadruplicar o quintuplicar las prestaciones cada tres años desde que INTEL lanzó su X86 en 1979.
1) Velocidad del microprocesador: Alcanzará su potencia: si se lo alimenta con una corriente cons-
tante de instrucciones.
• Diseñadores del procesador elaboran técnicas cada vez más sofisticadas:
• A) Predicción de ramificación: el procesador se anticipa al software y predice que ramas o grupos
de instrucciones se van a procesar después con > probabilidad.
• B) Análisis de flujo de datos: las instrucciones se regulan para ser ejecutadas cuando estén listas,
independientemente del orden original del programa. Evita retrasos innecesarios.
• C) Ejecución especulativa: utiliza las dos anteriores y ejecuta instrucciones antes de que aparezcan
en la ejecución del programa. Los resultados en posiciones temporales.
Evolución de las características de DRAM y del procesador.
2) Equilibrio de prestaciones: Ajustar la organización y la arquitectura para compensar las desigual-
dades de capacidad entre los distintos componentes.
• Interfaz entre el procesador y la memora principal: Crecimiento de la velocidad del procesador y de la
capacidad de memoria, la velocidad de transferencia de datos entre ellos ha quedado retrasada.
• Si la interfaz o la memoria no mantienen el ritmo de las demandas del procesador se pierde tiempo va-
lioso de procesamiento.
• Maneras de atacar desde la arquitectura:
a) Incrementar el nro. de bits que se recuperan de una sola vez haciendo las DRAM más “anchas”.
b) Cambiar la interfaz DRAM incluyendo una cache u otro esquema de almacenamiento temporal en el
chip DRAM
c) Reducir la frecuencia del acceso a memoria incorporando, caches cada vez más complejas y eficien-
tes. Una o más caches en el chip del procesador, así como una cache fuera del chip cerca del procesa-
dor.
d) Incrementar el ancho de banda entre el procesador y la memoria usando buses de más alta velocidad
3. Otra área de diseño se basa en el manejo de dispositivos de E/S.
• Estos dispositivos crean una tremenda demanda de procesamiento de datos.
• Procesadores actuales: pueden manejar los datos producidos por esos dispositivos, pero el problema
es mover los datos entre el procesador y los periféricos ( estrategias de caches y almacenamiento, buses
de interconexión de + alta velocidad, uso de configuraciones multiprocesador.)
• Requerimientos típicos de ancho de banda para distintas tecnologías de periféricos
Periférico Tecnología Ancho de banda requerido

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 18
Arquitectura y Organización de Computadoras
TEORIA

Gráficos Color de 24 bits 30 MBytes/seg.


Red de área local 100BASEX 12 MBytes/seg.
Controlador de disco SCSI o P1394 10 MBytes/seg.
Video de movimiento completo 1024x768@30fps 67 + MBytes/seg

Diseñadores: en la búsqueda del equilibrio entre la demanda de rendimiento y procesamiento por parte
de los componentes del procesador, la memoria principal, los dispositivos de E/S y las estructuras de in-
terconexión.
El diseño se debe enfrentar a dos factores en constante evolución:
_La velocidad de cambio del rendimiento de las distintas áreas tecnológicas ( procesador, buses, memo-
ria y periféricos) es enormemente diferente entre ellos.
_Nuevas aplicaciones y nuevos dispositivos periféricos introducen nuevas demandas con respecto de las
instrucciones típicas y el modelo de acceso a datos.

Evolución del Pentium y del PowerPC


Pentium: Décadas de esfuerzo en diseño de computadores de repertorio complejo de instrucciones
(CICS) .
PowerPC: descendiente directo del primer sistema RISC, el IBM 801. Se usa en millones de máquinas
Apple Macintosh y en sistemas con microprocesadores embebidos.
Familia de PowerPC:
a) 601: máquina de 32 bits (1993) .
b) 603: para computadores portátiles y de sobremesa. Máquina de 32 bits, pero de costo mas bajo e im-
plementación mas eficiente.(1994).
c) 604: computadores de sobremesa y servidores finales. 32 bits pero técnica más avanzadas.
d) 620: para servidores finales, arquitectura de 64 bits.
e) 740/750: G3 – 1997 – Integra dos niveles de cache en el chip del procesador principal.
f) G4: 1999 – Incrementa el paralelismo y la velocidad interna del chip del procesador.

Bibliografía:
Stallings, Williams - Organización y Arquitectura de Computadoras - 5º Ed. - Prentice Hall. Año 2000
Stallings, Williams - Organización y Arquitectura de Computadoras - 8º Ed. - Prentice Hall. Año 2010
Murdocca, Miles J. - Principios de arquitectura de computadoras - 1º Ed. - Prentice Hall - Año 2002
Martinez Garza, Jaime; Olivera Rodríguez J.A. - Organización y Arquitectura de Computadoras - 1º Ed. -
Pearson Educacion - Año 2000. Facultad de Ciencias Exactas y Naturales y Agrimensura
Lic. V. Godoy .-

Tareas complementarias:
Leer item 1.8. Estudio de un caso. Pag. 14 a 17 del libro: Murdocca, Miles J. - Principios de arquitec-
tura de computadoras - 1º Ed. - Prentice Hall - Año 2002
Pensar y resolver el problema: De acuerdo a lo propuesto por La ley de Moore (la potencia de
computación se duplica cada 18 meses) , que se atribuye al creador de Intel, surge que las instrucciones
de punto flotante se ejecutan en forma circuital cien veces mas rápido que cuando se las emula. Usando
la ley de Moore como guía: Cuanto tiempo le llevará a la potencia de computación crecer a punto tal que
las instrucciones de pto flotante se emulen tan rápido como sus anteriores contrapartidas en el hardwa-
re?

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 19
Arquitectura y Organización de Computadoras
TEORIA

2: La información en una computadora

Las personas estamos acostumbradas a contar objetos y a realizar operaciones utilizando el sistema
decimal. Este es uno de los muchos métodos de representación de la información que existe. Sin
embargo, las computadoras no lo pueden manejar porque están formadas por dispositivos digitales, es
decir, todos sus circuitos internos trabajan en forma binaria (encendido-apagado, si-no, 0-1). Esto
implica que tengan que emplear otro sistema para gestionar la información: el sistema binario (sistema
numérico con base 2, por lo que sólo utiliza dos símbolos: el 0 y el 1). Estos unos y ceros no son más
que impulsos eléctricos con un determinado voltaje (por ejemplo: 3,3 voltios para el 1 y 0 voltios para el
0).

BIT
Teniendo en cuenta que las computadoras manejan un lenguaje binario, analizaremos los DÍGITOS
BINARIOS como la unidad más elemental de información para la comunicación de datos. Se denomina
BIT (contracción de BINARY DIGIT) al dígito binario que toma el valor 0 ó 1. Representa la información
correspondiente a la ocurrencia de un suceso de entre dos posibilidades distintas: prendido o apagado,
abierto o cerrado.
Un aspecto fundamental en la codificación binaria es determinar la cantidad de BITS necesarios para
representar la información, de manera que podamos identificar una entre varias posibles.
Como un bit puede ser 1 o 0, podremos utilizarlo para seleccionar una información entre dos. Con dos
bits, una entre cuatro; tres bits una entre ocho; etc. Las posibilidades aumentan como potencias de dos:
  Un bit --------> 21 = 2 posibilidades
Dos bits --------> 22 = 4 posibilidades
Tres bits --------> 23 = 8 posibilidades

Si quisiéramos conocer cuantos bits necesitamos para una de ocho situaciones utilizamos logaritmos en
base 2  log2 8 = 3.

En general el número de bits (B) que necesitaremos para poder codificar una determinada cantidad de
información (N) estará determinado por:
B = Log2 N
Como ejemplo, para poder representar en forma binaria los 26 caracteres de nuestro alfabeto
necesitaríamos:
B = Log2 26 = 4,7 bits ===> B = 5 bits

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 20
Arquitectura y Organización de Computadoras
TEORIA

BYTE
A pesar de que el ordenador maneja internamente la información en binario, no acepta entradas ni
muestra salidas de esa forma. Para que la información de E/S sea comprensible y fácil de manejar, se
utiliza un conjunto de símbolos, denominados caracteres. Se establece una correspondencia entre la
representación interna binaria y el caracter externo, al que se le asigna una combinación única de bits
que lo diferencia del resto. Casi todos los ordenadores utilizan internamente una agrupación de 8 bits,
denominada BYTE, para representar cada carácter. Habitualmente byte se utiliza como sinónimo de
caracter.

Palabra
Normalmente hay acuerdo acerca del significado de los términos “bit” y “byte”, pero no así sobre el
concepto de “palabra”, el que depende de la arquitectura particular de cada procesador. La palabra o
Word es un conjunto de uno o más bytes que la CPU trata como unidad. Es la unidad de información
procesada por la UAL.
Los tamaños de palabra típicos son de 16, 32, 64 y 128 bits, siendo el de 32 bits el más común. Intel
considera el tamaño de la palabra como de 16 bits y la doble palabra como de 32 bits.
Recordemos brevemente cómo se realiza el procesamiento de la información: las instrucciones y los
datos pasan a través de buses a la memoria (MP). Dichas instrucciones son ejecutadas, una por vez,
para lo cual primero cada una, por un bus, llega al registro de instrucciones (RI) de la UCP, donde
permanece mientras se ejecuta, para que la UC interprete qué operación debe ordenar. Luego, el dato a
operar por dicha instrucción llega desde la memoria a un registro acumulador (AX) del procesador, antes
de ser operado en la ALU, a fin de obtener un resultado. Este puede sustituir en el registro AX al dato ya
operado, y luego pasar a la memoria si una instrucción así lo ordena.
El procesamiento de los datos que están en la MP será más rápido si en cada acceso a ella, el número de
bits que la CPU puede tomar o enviar en paralelo es lo mayor posible. Es como llevar a la boca alimentos
con una cuchara: cuando más grande sea ésta, más rápido se ingerirá la comida (a igualdad de
cucharadas por minuto). Pero del mismo modo que existe un límite físico respecto de la cantidad
máxima de alimento que se puede ingerir, en cada modelo de UCP se tiene una cantidad máxima de bits
que ésta puede tomar por vez de la MP para procesar, que en general es múltiplo de 8.
La denominada “palabra” de un procesador es un indicador del número máximo de bits que puede tener
un dato a ser operado por la UAL del mismo. Expresa también el número de bits de dato que maneja
simultáneamente la UCP.
Si la palabra de un procesador es 32 bits, implica que la UAL puede sumar o restar dos números de 32
bits, y que el resultado que genere tendrá también 32 bits.
El tamaño o longitud de palabra determina además el ancho de los buses internos de la CPU por donde
se transmiten las palabras, y el de los registros donde una palabra puede almacenarse. Es decir, son
compatibles todos los elementos internos de la CPU.

Representación interna de la información

Sabemos que la información debe estar representada por patrones de “1” y “0”. Sin embargo, existen
muchas maneras de hacerlo, es decir, muchas maneras de codificar los datos. Algunos de los
ejemplos más utilizados son: la codificación de números de punto fijo (con o sin signo), la de los
números reales (conocida como Coma Flotante), y la de los caracteres requeridos para la impresión de
texto.

Representación numérica de Punto Fijo


En esta representación la coma está ubicada siempre en el mismo lugar. Al representar con este
formato, no se almacena la coma. Sólo se supone que está en un lugar determinado.
Respecto a un método de representación se deben hacer las siguientes consideraciones: capacidad de
representación, rango y precisión.

Rango y Precisión en sistemas restringidos a n bits


El rango y la precisión son conceptos importantes en la arquitectura de computadoras, debido a que
ambos son elementos finitos en la implementación de la arquitectura, mientras que son infinitos en el
mundo real, por lo que el usuario debe tener en claro las limitaciones que surgen al tratar de
representar información externa con formato interno.

El rango está dado por el número mínimo representable y el número máximo representable. En un
sistema binario sin signo (BSS) el rango es [0 ... (2 n –1)], mientras que en un sistema binario con signo
(BCS) el rango es [(-2n-1 +1) ... (2n-1 –1)]

La precisión es la mínima diferencia entre un número representable y el siguiente.

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 21
Arquitectura y Organización de Computadoras
TEORIA

La capacidad de representación es la cantidad de números que se pueden representar. Está dada por
bn., donde b es la base del sistema en cuestión.

Ej. 1: si utilizamos 3 dígitos, con la coma entre el primero y el segundo, en el sistema decimal
tendríamos un rango de 0,00 hasta 9,99 [0,00 ... 9,99]. La precisión de la representación es de 0,01, y
el error es la mitad de la diferencia entre dos números consecutivos, como 4,01 y 4,02 es decir 0,01/2=
0,005. Implica que cualquier número de este rango puede representarse en este formato con una
aproximación de hasta 0,005 de su valor real o preciso.

Ej. 2: en un sistema de representación binario sin signo, con cinco dígitos, el número máximo
representable es 31 (bn-1). El rango es [0, 31], es decir [00000, 11111] y la capacidad de
representación 25 números, es decir, 32 números.

Sistemas de numeración posicionales


La base o raíz de un sistema de numeración define el rango de valores posibles que pueden adoptar sus
dígitos.
La expresión general que permite determinar el valor de un número en un sistema de numeración de
base k y en formato de punto fijo es la siguiente:

El valor del dígito que ocupa la posición i está representado por bi. Existen en este caso n dígitos a la
izquierda de la coma fraccionaria y m dígitos a su derecha. Esta forma de representación de un número,
en la que cada posición tiene asignado un determinado valor, se denomina sistema de numeración
posicional.
Supongamos la expresión 541,25(10, con n=3, m=2, k=10

541,25(10 = 5 x 102 + 4 x 101 + 1 x 100 + 2 x 10-1 + 5 x 10-2


= 500 + 40 + 1 + (2/10) + (5/100) = (541,25) 10
Si en forma similar se considera el número binario 1010,01(2, en el que n=4, m=2 y k=2

1010,01(2 = 1 x 23 + 0 x 22 + 1 x 21 + 0 x 20 + 0 x 2-1 + 1 x 2-2


= 8 + 0 + 2 + 0 + 0,25 = 10,25 (10
En estos sistemas de numeración posicionales se define el bit con el mayor peso asociado como bit más
significativo (MSB, most significant bit), y el bit de menor peso como bit menos significativo (LSB,
least significant bit).

Conversión entre sistemas

De binario a decimal
El procedimiento visto anteriormente permite convertir un número expresado en un sistema de
numeración de base cualquiera al sistema de numeración decimal, mediante la utilización de una
representación polinómica. Se trata de multiplicar cada dígito por el peso asignado a su posición y luego
sumar los valores para obtener el número convertido.

De decimal a binario
La forma más sencilla de convertir números que contengan tanto parte entera como fraccionaria,
consiste en operar cada una de sus partes por separado.
Ej.: 23,375 a binario  23,375 = 23 + 0,375

Parte entera – Método de los restos

La forma polinómica general para la representación de un número entero binario es:

bi x 2i + bi-1 x 2i-1 + ... + b1 x 21 + b0 x 20

Si se divide el número entero por 2, se obtendrá:

bi x 2i-1 + bi-1 x 2i-2 + ... + b1 x 20

con un resto de b0. Como resultado de dividir por 2 el entero original se obtiene el valor del primer
coeficiente binario b0. Si se repite el proceso, se obtiene el segundo coeficiente b 1. Este procedimiento

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 22
Arquitectura y Organización de Computadoras
TEORIA

forma la base del método de los restos. Continúa hasta obtener 0 como cociente. Los restos obtenidos
se unen en el orden indicado por la figura, teniendo en cuenta el MSB y LSB.
En general, todo número entero expresado en el sistema decimal puede convertirse a cualquier otro
sistema dividiéndolo reiteradamente por la base del sistema de numeración al que se lo quiere convertir.

Parte fraccionaria - Método de las multiplicaciones

La conversión puede resolverse multiplicando sucesivamente la fracción por 2.


La forma polinómica general para la representación de una fracción binaria es:

b-1 x 2-1 + b-2 x 2-2 + b-3 x 2-3 + ...

Si se multiplica dicha expresión por 2, se obtiene

b-1 + b-2 x 2-1 + b-3 x 2-2 + ...

Se determina así el coeficiente b-1. Reiterando el proceso sobre la fracción remanente, se obtendrán los
sucesivos bi. Este proceso continúa hasta obtener una fracción nula, o hasta que se haya alcanzado el
límite de precisión requerida.

Por último, se combinan las partes entera y fraccionaria para obtener el resultado final:

23,75 = 10111,011(2

Este proceso, denominado método de las multiplicaciones, puede ser utilizado para convertir
números fraccionarios entre distintos sistemas de numeración, multiplicando por la base
correspondiente. El multiplicador coincide con la base del sistema numérico de destino.
Si bien el método funciona con todos los sistemas de numeración, el proceso puede llegar a producir
pérdidas de precisión. No todas las fracciones representadas en el sistema de numeración decimal

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 23
Arquitectura y Organización de Computadoras
TEORIA

pueden tener como equivalente un número racional exacto en el sistema binario. Por ej. el proceso de
conversión del número decimal 0,2 (ver figura), llega a un punto en que se repite en forma periódica

Representación de números en los sistemas binario, octal y hexadecimal

Si bien los números binarios reflejan la realidad de la representación interna de los números en la
computadora, tienen como desventaja el hecho de requerir mayor cantidad de dígitos para representar
un número que cualquier otro sistema de numeración posicional. Además, es más probable que se
cometan errores al escribir binarios debido a la gran cantidad de ceros y unos que se deben utilizar. Por
estas razones es una práctica común la conversión a los sistemas octal (base 8) o hexadecimal (base
16), sistemas estrechamente vinculados al binario. Esta relación está dada por el hecho de ser estas
bases potencias de 2 (la menor de todas ellas). Por otra parte, la conversión entre estos sistemas es
trivial, y mucho más sencilla que convertir desde o hacia el sistema decimal.
Para el sistema hexadecimal se requieren seis dígitos más que en el decimal. Se utilizan letras, de A a F.

Binario Octal (base Decimal (base Hexadecimal


(base 2) 8) 10) (base 16)
000 0 0 0
001 1 1 1
010 2 2 2
011 3 3 3
100 4 4 4
101 5 5 5
110 6 6 6
111 7 7 7
1000 10 8 8
1001 11 9 9
1010 12 10 A
1011 13 11 B
1100 14 12 C
1101 15 13 D
1110 16 14 E
1111 17 15 F

Al comparar las columnas de la tabla, se observa la necesidad de 3 bits para representar en binario cada
uno de los dígitos del sistema octal, y cuatro para el sistema hexadecimal. En general, se requieren k
bits para representar en binario un dígito del sistema de numeración de base 2 k, siendo k un número
entero.
Para convertir un número del binario al octal, se divide el número original en grupos de 3 bits cada uno,
empezando a partir de la coma decimal, completando el grupo más significativo con ceros, si fuera
necesario. Luego, cada trío de bits se convierte en forma individual al sistema octal. Para conversiones
desde el binario al hexadecimal, se utilizan grupos de 4 bits.

11010,012 = (0112)(0102),(0102) = 32,28


1101101,0112 = (01102)(11012),(01102) = 6D,616

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 24
Arquitectura y Organización de Computadoras
TEORIA

Representación de Binarios con signo (BCS)


Existen cuatro convenciones distintas de uso habitual en la representación con signo

1. Módulo y signo (MS)


El bit que está situado más a la izquierda representa el signo, y su valor será de 0 para el + y de 1 para
el -. El resto de los bits (n-1) representan el módulo o valor absoluto del número.
El rango de representación es para n dígitos de: [-2n-1+ 1 ... 2n-1 -1]
Para el caso de 8 bits el rango es [-127 ... 127]

Por ej.: disponemos de 8 bits y queremos representar los números 10 y -10.

Número 10 0 0001010 Número -10 1 0001010


+ módulo - módulo

En esta convención existen dos modos de representar el cero, una negativa y una positiva: 0000 0000 y
1000 0000

2. Complemento a 1 (C-1)
Este sistema de representación utiliza el bit de más a la izquierda para el signo, correspondiendo el 0
para el + y el 1 para el -. Para los números positivos el resto de los bits (n-1) representan el módulo del
número. El negativo de un número positivo se obtiene complementando todos sus dígitos (cambiando
ceros por unos y viceversa) incluido el bit de signo.
El rango de representación es de: [-2n-1+ 1 ... 2n-1 -1]
Para el caso de 8 bits el rango es [-127 ... 127]
Este sistema, a semejanza del MS, posee la desventaja de tener dos representaciones del 0, en este
caso, 0000 0000 y 1111 1111.

Número 10 0 0001010 Número -10 1 1110101


+ módulo - módulo

3. Complemento a 2 (C-2)
Este sistema de representación utiliza el bit de más a la izquierda para el signo, correspondiendo el 0
para el + y el 1 para el -. Para los números positivos el resto de los bits (n-1) representan el módulo del
número. El negativo de un número positivo se obtiene complementan el número positivo en todos sus
bits (cambiando ceros por unos y viceversa) incluido el bit de signo, para luego sumarle 1, despreciando
el ultimo acarreo si existe.
Ejemplo: Número 10 0 0001010
Número -10.........1 1110101
+1 1
11110110

El rango de representación es: [-2n-1 ... 2n-1 -1]


Para el caso de 8 bits el rango es [-128 ... 127]
Este método tiene la ventaja de poseer una sola representación para el 0.
Es la convención más utilizada en las computadoras.
4. Representación excedida, o Exceso a 2 elevado a n-1
Este método no utiliza ningún bit para el signo, con lo cual todos los bits representan un modulo o valor
que corresponde al número representado más el exceso, que para n bits viene dado por 2 elevado a n-1.
Por ej., para 8 bits el exceso es de 2 7 = 128. El número 10 vendrá representado por 10 + 128 = 138.
Para el caso de -10 tendremos -10 + 128 = 118.

Número 10 10001010
Número -10.....01110110

En este caso, el 0 tiene una única representación, que para 8 bits corresponde a:
Número 0 ( 0 + 128)  10000000

El rango de representación es: [-2n-1 ... 2n-1 -1]


Para el caso de 8 bits el rango es [-128 ... 127]

En este método, el valor del exceso tiene el formato del número negativo más grande, lo que produce
como efecto que los números aparezcan ordenados numéricamente si se los mira en una representación
binaria no signada. Así, el número negativo más grande es -128 10 = 0000 00002 y el más grande positivo
es 12710 = 1111 11112 . Esta representación simplifica las comparaciones entre números, dado que las
representaciones binarias de los números negativos tienen valores numéricamente menores que las
representaciones de los números positivos. Esto se hace importante cuando se representan los
exponentes de los números en coma flotante, donde se requiere comparar los exponentes de dos
cantidades para igualarlos, en caso de ser necesario, para sumar o restar.

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 25
Arquitectura y Organización de Computadoras
TEORIA

Aritmética del computador


La suma binaria se realiza siguiendo las mismas reglas que en el sistema decimal. Cuando la suma de
los dígitos excede los símbolos numéricos disponibles de la notación, se acarrea un 1 a la posición de
dígito inmediatamente superior. Por lo tanto, en el sistema decimal, 3+5=8, pero 9+1=0 con acarreo de
un 1 (es decir 10).
En el sistema binario hay solamente dos símbolos, 0 y 1. Por lo tanto, al sumar 1+1 en la notación
binaria se excede el límite de la cuenta (ya que no hay otro símbolo disponible) y, en consecuencia, el
resultado es 0 con acarreo de un 1 a la posición de dígito inmediatamente superior.
En la computadora se implementa la operación de suma mediante circuitos lógicos digitales
combinatorios.
Dos números binarios A y B se suman de derecha a izquierda, generando un bit de suma y uno de
arrastre en cada posición binaria.

Suma y resta en complemento a dos

Se analizará la resta implícitamente en la suma, como resultado del principio aritmético según el cual:
a – b = a + (-b), por lo tanto, se puede realizar la resta por medio del número complementado de este
método. Como consecuencia, se ahorra en la estructura circuital de la unidad de cálculo, dado que se
evita la necesidad de un elemento restador por hardware.
Lo que sí debe hacerse al sumar en C-2 es modificar la interpretación de los resultados de la suma.
A continuación se plantean dos casos especiales de suma de dos números de 3 bits

0 1 1 (+3) 0 1 1 (+3)
+ 1 1 1 (-1) + 0 0 1 (+1)
(1)0 1 0 (+2) 100

Arrastre (carry) Desborde (overflow)

En el primer ejemplo se produce un acarreo desde la posición más significativa (bit de la izquierda). En
este método se descarta dicho acarreo, y el resultado de la operación es correcto.
En el segundo caso se produce un desbordamiento, y el resultado es erróneo. Si bien el resultado
“parece” un 4 si se lo analiza como un número sin signo, al trabajar en forma signada, el primer dígito
indica un número negativo, lo que resulta claramente erróneo.

Suma y resta en complemento a uno

Las consideraciones generales son similares a las de C-2. La diferencia está en el


tratamiento del bit de arrastre que se genera a partir de la posición más significativa.
Este no se descarta, sino que se vuelve a sumar con la posición menos significativa del
resultado obtenido.
1 0 0 1 1 (-12)
+ 0 1 1 0 1 (+13)
100000

+ 1
00001
Corrección del resultado

El hecho de haber dos representaciones para el cero, y la necesidad potencial de realizar otra suma para
agregar el bit de arrastre son dos razones importantes para que los diseñadores prefieran la aritmética
de C-2 antes que la de C-1.

Overflow y Carry

Junto con el resultado de cada operación, la UAL genera varios indicadores (flags) acerca del mismo, que
se conocen por sus iniciales inglesas S,Z,V,C.
Indicador de Signo S=1 indica que el resultado de la operación es negativo
Indicador Z de resultado cero Z=1 si el resultado es cero (“zero”)
Indicador C de acarreo C=1 si existe un acarreo (“carry”)
Indicador V de overflow o desborde V=1 si el resultado de una suma entre números con bit de signo
excede el mayor valor positivo o negativo que se puede representar.

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 26
Arquitectura y Organización de Computadoras
TEORIA

Tanto en la representación en Ca1 como en Ca2 una operación puede dar como resultado un número
que excede la capacidad de la palabra de memoria, produciéndose así el overflow.

Al sumar dos números el overflow se puede dar sólo si los dos tienen el mismo signo; la suma de dos
números de distinto signo nunca dará como resultado un número con módulo mayor al de mayor módulo
de los dados, a lo sumo será igual (al sumarle 0 a otro número), pero en general será menor, por lo
tanto no puede exceder la capacidad de la palabra de memoria.

El overflow se reconoce cuando los bits de signo de los dos números que se suman son iguales entre sí
pero distintos del bit de signo del resultado, o sea cuando los números son positivos y da resultado
negativo o viceversa. En este caso el contenido de la palabra de memoria es incorrecta.

Representación numérica en Punto Flotante

La representación de números en formato de punto fijo ubica la coma decimal en una posición fija, por
lo que tiene una cantidad fija y determinada de dígitos tanto a la izquierda como a la derecha de la coma
decimal. Por lo tanto, esta notación puede requerir una gran cantidad de dígitos para representar algu-
nos números. Por ej, si queremos representar números del orden del billón, necesitaremos al menos 40
bits, puesto que 1012 es aproximadamente igual a 240. Por otra parte, si además se debiera representar
una fracción equivalente al billonésimo, se necesitarán otros 40 bits, lo que daría por resultado una pala -
bra de 80 bits.
En la práctica, suelen presentarse en los cálculos números con 80 o más bits (ej: distncia al sol, trayec -
toria de un misil, etc). Para manejar y almacenar números con 80 o más bits se requiere una buena
cantidad de hardware, y por otra parte, las operaciones de cálculo pueden llegar a resolverse más lenta-
mente cuando se trabaja con grandes cantidades de bits.
Para números decimales, esta limitación se supera utilizando notación científica. Así,
976.000.000.000.000 puede representarse como 9,76 * 10 14, y 0,0000000000000976 puede expresarse
como 9,76 * 10-14. Es decir, se desplaza convenientemente la coma decimal, incrementando o decre-
mentando adecuadamente el exponente, para mantener la relación. Esto permite representar un rango
de números muy grandes y muy pequeños con sólo unos cuantos dígitos.
Esa misma técnica puede aplicarse a números binarios, representándolos de la siguiente manera:
+/- S * B +/-E
Este número puede almacenarse en una palabra binaria con tres campos
 Signo: + o –
 Parte significativa o mantisa (S  significant)
 Exponente (E)
La base B está implícita y no es necesario almacenarla.

Normalización y bit implícito

Un número representado con este formato, puede tener distintas formas. Así, son equivalentes las si-
guientes expresiones:
0,110 * 25
110 * 22
0,0110 * 26
Para simplificar los cálculos con números en coma flotante, se procede a normalizar. Un número norma -
lizado es el que tiene la forma
+/- 0,1bbb…b * 2+/-E
donde cada b es un dígito binario (1 o 0). Se desplaza la coma decimal hasta ubicarla a la izquierda del
dígito no nulo más significativo. Esto implica que el bit más a la izquierda de la mantisa fuera siempre 1,
por lo que no sería necesario almacenarlo. La mayoría de los métodos de representación en coma flotan-
te no almacenan dicho bit inicial. Lo que se hace es “recortarlo” antes de empaquetar el número para su
almacenamiento, recuperándolo al desempaquetar y llevar el número a su representación de mantisa y
exponente. A raíz de este artificio, se obtiene un bit adicional a la derecha de la mantisa, lo que mejora
la precisión de la representación. Este bit suele denominarse bit implícito. Por ejemplo, si en un forma-
to determinado la mantisa luego de la normalización se representa como 0,11010, el patrón a ser alma -
cenado es 1010 y el bit más significativo se oculta.
Como inconveniente, este esquema no permite representar el cero, por lo que su representación debe
hacerse a través de un procedimiento de excepción. Veremos que se incluye una combinación especial
para representar el cero.

Ejemplo 1: Representar en coma flotante el número decimal 34, en C a 2, con 1 bit para el signo, 5 bits
para el exponente y 8 bits para la mantisa, con bit implícito.
-
Convertir a binario: 00100010
-
Notación exponencial (normalizar): 00100010 * 20  0,100010 * 26
-
Mantisa a almacenar (con bit implícito) 00010

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 27
Arquitectura y Organización de Computadoras
TEORIA

-
Exponente: 110
-
Empaquetar los elementos, según especificaciones (rellenar con 0 la mantisa)
0 00110 00010000

Ejemplo 2: Determinar el número decimal que representa el patrón 1010110010000, codificado en coma
flotante, con bit oculto, según las siguientes especificaciones: 1 bit para el signo, 4 bits para el exponen -
te y 8 bits para la mantisa, estos últimos expresados en MS
-
1 0101 10010000
-
Signo: -
-
Exponente: 5
-
Mantisa: 0,1 10010000
-
Componiendo: - 0,110010000 * 25 = -11001 = -25

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 28
Arquitectura y Organización de Computadoras
TEORIA

Rango y precisión

La representación de números en formato de punto flotante permite representar un amplio rango de


números con poca cantidad de dígitos binarios. Para ello se separan los dígitos utilizados para determi -
nar la precisión (mantisa), de aquellos necesarios para representar el rango (exponente). Supongamos
el número decimal en formato de punto flotante
+6,023 * 1023
Según la convención vista (nótese que la coma decimal no se almacena)

+ 2 3 6 0 2 3
Signo Exponente Mantisa
Dos dígitos Cuatro dígitos

El rango de la representación queda determinado básicamente por la cantidad de dígitos del exponente.
En este caso se expresa a través de una potencia de la base 10 (10 23).
La precisión queda determinado por la cantidad de dígitos de la mantisa (cuatro en este ejemplo).
Si se requiere un rango mayor, y si a cambio se está dispuesto a sacrificar precisión, se pueden usar 3
dígitos para la parte fraccionaria y dejar tres dígitos para el exponente, sin necesidad de aumentar la
cantidad de dígitos totales de la representación.

+ 0 2 3 6 0 2

La posibilidad de plantear soluciones de compromiso entre rango y precisión es una de las ventajas prin -
cipales de la representación en punto flotante.
Un inconveniente que presenta este método es que existen valores no representables. El rango de re-
presentación tiene la estructura:

mNN MNN 0 mNP MNP


mNN es el mínimo número negativo = - máxima mantisa * base máximo exponente positivo

MNN es el máximo número negativo = - mínima mantisa * base máximo exponente negativo

mNP es el mínimo número positivo = mínima mantisa * base máximo exponente negativo

MNP es el máximo número positivo = máxima mantisa * base máximo exponente positivo

Ejemplo: considérese una representación en coma flotante en la que se tiene 1 bit de signo, un expo -
nente de 2 bits en notación exceso 2 y una mantisa normalizada binaria, con 3 bits, con el primer 1 no
implícito.

Exponente mínimo (representación en exceso en 2 bits): - 2 n-1 = - 2 1 = - 2


Exponente máximo (representación en exceso en 2 bits): 2 n-1 - 1= 2 1 - 1= 1
Mínima mantisa: 0,100
Máxima mantisa: 0,111
mNN = - máxima mantisa * base máximo exponente positivo = - 0,111 * 21
MNN = - mínima mantisa * base máximo exponente negativo = - 0,100 * 2-2
mNP = mínima mantisa * base máximo exponente negativo = 0,100 * 2-2
MNP = máxima mantisa * base máximo exponente positivo = 0,111 * 21

Estándar del IEEE1 (norma 754)

Existen muchas maneras de representar números en formato de punto flotante. Cada uno tiene caracte-
rísticas propias en términos de rango, precisión y cantidad de elementos que pueden representarse. En
un esfuerzo por mejorar la portabilidad de los programas y asegurar la uniformidad en la exactitud de
las operaciones en este formato, el IEEE desarrolló su norma IEEE 754. Este estándar ha sido amplia-
mente adoptado y se utiliza prácticamente en todos los procesadores y coprocesadores matemáticos ac -
tuales.

Formatos

a) Simple precisión (32 bits)


1
Instituto de Ingeniería Eléctrica y Electrónica de Estados Unidos

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 29
Arquitectura y Organización de Computadoras
TEORIA

Signo Exponente Mantisa


31 30 - 23 22 - 0

Exponente: 8 bits. Se utiliza una representación conocida como “sesgada”.


El sesgo toma el valor (2k-1 – 1), donde k es el número de bits disponibles para la representación del
exponente. En este caso 28-1 – 1 = 127. Este sesgo se suma al exponente original, y el resultado es
el que se almacena: E = EO + S
Mantisa: 23 bits. Bit implícito  24 bits efectivos. Está normalizada. La normalización toma la
forma 1,bb..b, donde el patrón bb..b representa los 23 bits de la mantisa que se almacenan. Nótese
que la coma en esta normalización está a la derecha del primer dígito significativo.

b) Doble precisión (64 bits)

Signo Exponente Mantisa


63 62 – 52 51 - 0
Exponente: 11 bits. Sesgo 211-1 – 1 = 1023
Mantisa: 52 bits. Bit implícito  53 bits efectivos. Igual consideración para la normalización.
Algunas combinaciones se emplean para representar valores especiales. Se presentan los siguientes
casos:

-
Un exponente cero junto a una mantisa cero representa el cero positivo o negativo, dependiendo del
bit de signo. (00000000 00000000000000000000000  0)
-
Un exponente todo unos junto con una mantisa cero representa, dependiendo del bit de signo, el in -
finito positivo o el negativo (11111111 00000000000000000000000  )
-
Un exponente todos unos junto a una mantisa distinta de cero representa un NaN (not a number), y
se emplea para señalar una excepción (11111111 xxxxxxxxxxxxxxxxxxxxxxx  NaN)

Suma y resta en formato de punto flotante

Las operaciones aritméticas en este método difieren del visto en punto fijo en el hecho de que, además
de considerarse las magnitudes de los operandos, tiene que considerarse también el tratamiento que
debe darse a sus exponentes. Como en el caso habitual de las operaciones decimales en notación cientí -
fica, los exponentes de los operandos deben ser iguales para poder sumar o restar. Se suman o restan
las mantisas según corresponda, y se completa la operación normalizando el resultado.
Los procesos de ajuste de la mantisa y de redondeo del resultado pueden llevar a una pérdida de preci-
sión.
Hay cuatro etapas básicas en el algoritmo para sumar o restar
 Comprobar valores cero
 Ajuste de exponente y mantisa
 Sumar o restar las mantisas
 Normalizar el resultado
Para la operación de suma o resta, los dos operandos deben transferirse a registros que serán utilizados
por la ALU. Si el formato incluye un bit de mantisa implícito, dicho bit debe hacerse explícito para la ope -
ración.
Dado que la suma y la resta son idénticas, excepto por el cambio de signo, el proceso comienza cam -
biando el signo del substraendo cuando se trata de una resta. A continuación, si alguno de los operandos
es cero, se da el otro como resultado.
Luego se procede al ajuste de los exponentes, en sucesivas operaciones. Si en este proceso se obtiene
una mantisa cero, se da el otro número como resultado. Esto significa que cuando dos números tienen
exponentes muy diferentes, se pierde el menor de los números.
Luego se suman las mantisas, teniendo en cuenta sus signos. Ya que los signos pueden diferir, el resul-
tado puede ser cero. Existe también la posibilidad de desbordamiento de la mantisa en un dígito. Si es
así, se desplaza a la derecha la mantisa del resultado (se pierde el dígito menos significativo), y se in -
crementa el exponente. Como resultado podría producirse un desbordamiento en el exponente. Esto se
debe indicar, y la operación se detendría.
Por último, se normaliza el resultado.

Ejemplo: sumar (0,101 * 23) + (0,111 * 24)


- Se iguala el menor de los exponentes al mayor, modificando en forma acorde la mantisa
0,101 * 23 = 0,010 * 24
En este proceso se pierde precisión en la cifra menos significativa del valor original
-
Se suma: (0,010 + 0,111 ) * 24 = 1,001 * 24
-
Se normaliza: 0,1001 * 25
-
Se vuelve a redondear a 3 dígitos: 0,100 * 25 perdiéndose precisión nuevamente

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 30
Arquitectura y Organización de Computadoras
TEORIA

Codificación de la información

Para permitir la comunicación de datos existe una primera cuestión a tener en cuenta: el Hardware. Pero
esta es solo una parte. Todas las personas del mundo tienen el mismo hardware para la comunicación
hablada: labios, lengua, dientes y el resto del complejo aparato bucal para transmitir y los oídos para
recibir. La comunicación oral, sin embargo, es posible solamente cuando dos personas conocen el mismo
lenguaje, es decir la misma manera de codificar la información.-
Así como el habla sería imposible sin lenguajes comunes, la comunicación entre computadoras sería
imposible sin coordinación de códigos de caracteres.-

Todas las computadoras digitales actuales usan un lenguaje binario para representar la información
internamente. Debido a que algunos de los dispositivos con los que se deben comunicar las
computadoras están diseñados para uso humano (especialmente impresoras y terminales de video), es
importante que esos periféricos utilicen un código de comunicación compatible con la comunicación
humana.
Existen varios métodos para alcanzar dicha compatibilidad y cada uno utiliza un modo diferente de
codificar los números y las letras que conforman la base de la comunicación escrita entre las personas.
Actualmente es frecuente encontrar en un sistema de cómputo dispositivos provistos por distintos
fabricantes. La posibilidad de conectarlos existe únicamente si esos dispositivos utilizan un código común
para la transmisión y recepción de la información.
Son claras las ventajas de conseguir que todas las computadoras utilicen el mismo código de
comunicación. Aún cuando la calidad de los códigos varía enormemente, casi cualquier estándar
universal sería mejor que ninguno. Si bien hay códigos que prácticamente son aceptados por todos los
fabricantes, aún no existe un estándar que optimice el aprovechamiento de los recursos del hardware.

La codificación consiste en establecer una ley de correspondencia, llamada CÓDIGO, entre la


información por representar y las posibles configuraciones binarias, de tal manera que a cada
información corresponda una y generalmente solo una, configuración binaria.
Llamamos CODIFICACIÓN al proceso de convertir un símbolo complejo en un grupo de símbolos más
simples. Ejemplo: convertir una letra del alfabeto en un código de cinco bits.
DECODIFICACIÓN es el proceso inverso al de codificación, se convierte a un código donde la cantidad
de símbolos es menor, pero cada una contiene más información.
TRANSCODIFICACIÓN: Aplicación de un cambio de código a una información ya codificada. Ejemplo:
de EBCDIC a ASCII.

Codificación de la información no numérica

A diferencia de los números reales, que tiene un rango infinito, existe sólo una cantidad finita de
caracteres representables.
El concepto de caracter aparece como la cantidad de BITS necesarios para representar los diferentes
símbolos del alfabeto (letras, cifras, signos de puntuación, etc.)
De acuerdo al código utilizado cada caracter puede codificarse con un número varible de BITS, pero
dentro de un sistema todos los caracteres se representan con el mismo número de bits.

Generalmente, los caracteres se agrupan de la siguiente manera:


Caracteres alfabéticos: letras mayúsculas y minúsculas: A-Z, a-z
Caracteres numéricos: cifras decimales: 0-9
Caracteres especiales: son caracteres no incluidos en los grupos anteriores y que se utilizan con mucha
frecuencia: Ñ ñ / + = ! ? ’ ) ( , . >< # …
Caracteres gráficos: Suelen representar iconos o figuras elementales: © ┤ ╫ ☺ ▒
Caracteres de control: representan ciertas órdenes de control, como control de carro, final de archivo,
tabulación, etc.

Condiciones que se imponen para la codificación de caracteres

A) El código debe englobar al de los números, y permitir distinguir las cifras rápidamente de los otros
caracteres.
B) La representación debe permitir añadir nuevos caracteres específicos para una aplicación
determinada.
C) En el caso de las transmisiones, la representación debe incluir un sistema de redundancia que
permita la detección de errores.

A continuación se describen tres representaciones habituales en la codificación de caracteres: los códigos


ASCII, EBCDIC y Unicode.

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 31
Arquitectura y Organización de Computadoras
TEORIA

1) Código ASCII (American Standard Code for Information Interchange)

El código ASCII se definió inicialmente con 6 bits, esto permitía representar 2 6 = 64 caracteres.
Posteriormente el ANSI (Instituto Nacional Norteamericano de Normas) definió un nuevo ASCII (que se
mantiene como norma) de 7 bits. Esta nueva definición permite codificar 128 caracteres; haciéndolo
más apto, fundamentalmente para la transmisión, donde parte de los “caracteres” codifican funciones de
control.

Existen códigos ASCII ampliados (no normalizados) que usan los 8 bits para codificar una serie de
caracteres gráficos especiales, incluidas las vocales con acento.
La mayor parte de las máquinas actuales utilizan el código normalizado, pero generalmente agregan un
octavo bit, que les permite extender el código para representaciones no previstas o para utilizarlo como
bit de control de paridad en las transmisiones. Este código es ampliamente usado para la transmisión de
información.
El éxito de este código se basa en que cumple con todas las condiciones impuestas para la codificación
de caracteres:
Los valores correspondientes a las letras del alfabeto y a los restantes caracteres, siguen una secuencia
binaria continua, la computadora no tiene que dejar su propio lenguaje binario para realizar operaciones
secuenciales con esos caracteres. Además con el agrupamiento de las funciones de control, con solo
analizar los dos primeros bits de una combinación cualquiera codificada, la computadora puede
determinar si se trata de una función de control (dos ceros) o de un caracter (uno de los dos no es
cero).
Las mayúsculas de la A a la Z se codifican según una sucesión ordenada de números binarios, que
permite realizar ordenaciones alfabéticas:
A = 01000001 = 41(16 = 65(10 ; B = 01000010 = 42(16 = 66(10 ; … Z = 01011010 = 5A(16 = 90(10
Lo mismo ocurre con los dígitos decimales:
0 = 00110000 = 30(16 = 48(10 ; 1 = 00110001 = 31(16 = 49(10 ; … 9 = 00111000 = 39(16 = 57(10
Existen teclas de control correspondientes a órdenes mecánicas, como la barra espaciadora (SP en
ingles, de SPace), la tecla de retorno de carro a un nuevo renglón (CR de Carry Return), que aparece
como “Enter” en los teclados, la de retroceso (BS o Back Space).

Estas teclas sirven para organizar la impresión de caracteres en renglones de un papel o de una
pantalla, y se conocen como caracteres no imprimibles, siendo en esencia órdenes para desplazar el
carro de una máquina de escribir o su equivalente cursor en una pantalla.
Existen diversas maneras de presentación de una tabla con el código ASCII, las cuales mayormente
indican, por razones de comodidad, o para operar desde el teclado, las equivalencias hexadecimales o
decimales de cada combinación binaria del código, sin indicar ésta. Esto puede observarse en la
siguiente figura, que muestra la tabla de equivalencias a la que se accede desde un editor de texto sin
formato.

Representación de los Números

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 32
Arquitectura y Organización de Computadoras
TEORIA

Cada dígito decimal es representado internamente con 8 bits, distribuidos de la siguiente forma:
ZONA: Es siempre 0011
DIGITO: En este espacio (4 bits) se representa el número decimal codificado en BCD
Los datos numéricos así codificados no son técnicamente aptos para ser procesados aritméticamente. Si
es necesario realizar operaciones aritméticas con ellos, se debe eliminar la parte correspondiente a la
ZONA de cada byte. Esta operación se llama empaque y la información resultante, información
empacada (empaquetada) o decimal sin zona. Los datos numéricos con zona se denominan información
desempacada o zoneada.

2) Código EBCDIC(Expanded Binary Code Decimal Interchange Code)

Este código fue diseñado y utilizado exclusivamente por IBM. Su importancia radica en que sirvió como
base para los códigos posteriores normalizados.
Utiliza 8 dígitos binarios para representar cada carácter, por lo tanto hay un total de 2 8=256 caracteres
posibles. La correspondencia entre la información por representar y la correspondiente secuencia
binaria se encuentra en tablas con distintos formatos.
Con respecto a los caracteres alfabéticos y signos de puntuación no tiene características que lo
destaquen, salvo que podemos encontrar pequeñas alteraciones al ser utilizados en países con distintos
alfabetos.
La estructura del Byte según la representación es la siguiente:

7 6 5 4 3 2 1 0

Posición 5 y 4
Posición 7 y 6 00 - A-I
11- Letras mayúsculas y números 01 - J-R
10 - Letras minúsculas. 10 - S-Z
01 - Caracteres especiales 11 - Números
00 - Ningún carácter encontrado
Representación de los Números

En este código, al igual que en el ASCII, cada dígito decimal es representado internamente con 8 bits,
distribuidos de la siguiente forma:

ZONA: Ocupa los 4 bits de orden superior del Byte. Tiene una secuencia binaria fija para cualquier
número: 1111(2 = F(16
DIGITO: En este espacio se representa el número decimal codificado en BCD

Aquí surge el mismo inconveniente visto en el código ASCII: la dificultad para realizar operaciones
matemáticas con los números representados con la ZONA. La solución es la misma que la indicada para
el código anterior. Como la mayor parte de las máquinas utilizan 8 bit para cada dígito no surgen
conflictos al producirse el EMPAQUE.

3) El código UNICODE

Los códigos ASCII y EBCDIC sirven para soportar los conjuntos de caracteres (latinos) históricamente
dominantes en las representaciones de la computación. Existen muchos otros conjuntos de caracteres en
uso en el mundo, y no siempre es posible la conversión de código ASCII al código correspondiente al
idioma X. A raíz de esto surgió un nuevo conjunto de caracteres, universal y normalizado, al que se
conoce como Unicode, y que sirve para soportar una buena cantidad de alfabetos que se usan en el
mundo.
Este código es una norma en desarrollo, que se modifica a medida que se le incorporan los símbolos
correspondientes a alfabetos nuevos, y a medida que los conjuntos de caracteres incorporados se van
modificando y se refinan las correspondientes representaciones. En la versión 2.0 de Unicode se incluyen
38.885 caracteres diferentes, los que cubren los principales lenguajes escritos de uso en América,
Europa, Medio Oriente, Asia, India y las islas del Pacífico.
Utiliza un conjunto de caracteres de 16 bits. Si bien este código soporta muchos más caracteres que
ASCII y EBCDIC, no es la norma de mayor importancia.
Los primeros 128 caracteres del Unicode coinciden con los del ASCII.
La siguiente figura muestra los símbolos disponibles para inserción desde un documento de Word. En la
ventana puede observarse la disponibilidad de caracteres Unicode y ASCII, y el código decimal o
hexadecimal correspondiente.

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 33
Arquitectura y Organización de Computadoras
TEORIA

Códigos redundantes

Es difícil pensar en un equipo que funcione sin fallas durante un tiempo indefinido. Para cualquier
máquina se define un Tiempo Medio Entre Fallas (MTBF). El objetivo de los desarrollos tecnológicos es
incrementar ese tiempo.

Teniendo en cuenta esa premisa, es de esperar que la información pueda verse alterada en el transcurso
de la transmisión o almacenamiento. Si el equipo tiene la posibilidad de detectar o, mejor aún, corregir
esas modificaciones, es evidente que aumentará la confiabilidad del mismo. Para este fin, existen dos
tipos de códigos:

1.  Códigos autodetectores

Código en el que mediante un determinado número de bits de redundancia se puede detectar si la


información recibida es correcta o no. El ejemplo mas clásico de este tipo de códigos es el de control de
paridad.

1.1. Control de paridad

Este código, si bien no permite detectar errores dobles, es el más utilizado debido a su simplicidad y a
que en los ordenadores la probabilidad de que ocurra un error es muy pequeña, por lo tanto que ocurran
2 es mucho menos probable.
Consiste en agregar a los bit de información transmitidos un bit mas (generalmente el primero de la
izquierda), que hace que la cantidad de unos transmitidos sea PAR (PARIDAD PAR – pone un 0) o IMPAR
(PARIDAD IMPAR – pone un 1).

Ejemplo: Se desea enviar los caracteres ASCII ‘A’ (código decimal 65) y ‘C’ (código decimal 67) desde
un equipo emisor a otro receptor, utilizando una comprobación de paridad par:

Emisor (Codificación del Byte del carácter para comprobación de paridad PAR)

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 34
Arquitectura y Organización de Computadoras
TEORIA

Carácter ASCII Código binario del dato Bit de paridad Byte completo
‘A’ (65) 1000001 0 0 1000001
(el número de unos es par)
‘C’ (67) 1000011 1 1 1000011
(el número de unos es impar)

Cuando el receptor recibe la información lo que hará será volver a contar el número de unos que tiene el
dato y comprobar que concuerda con lo especificado en el bit de paridad. Si llega:

Receptor (Comprobación de paridad PAR)

Byte recibido Dato Nº de unos recibido Bit de paridad que tiene Error
0 1000001 1000001 2 0 NO
‘A’ (par)
1 1000001 1000001 2 1 SI
‘A’ (par)

Se puede detectar que en el segundo carácter transmitido hay un error porque el bit de paridad no
concuerda con lo que se expresa en los bits de datos: el número de unos es impar pero el bit de paridad
indica que debería ser par.

2.  Códigos correctores
Mediante el uso de estos códigos, el receptor puede determinar si la información recibida es correcta o
no y en este caso corregir el error producido durante la transmisión.

2.1.  Códigos de Hamming


Estos códigos permiten detectar y corregir uno o más errores producidos durante la transmisión para
palabras de cualquier número de bits.
Consiste en determinar en cuántos bits difiere la palabra recibida de la enviada, a lo que se llama
distancias de Hamming. Para ello, la información n enviada consiste de m bits de datos y r bits
redundantes, de control de paridad, siendo n = m + r

2.2.  Control 2 en 3
Para transmitir una información cualquiera de “n” bits, se envían 3 veces esos “n” bits, en forma
sucesiva. Al receptor de la información, al efectuar el análisis de la misma, pueden presentársele tres
situaciones distintas:
 Las tres son idénticas. La información se toma como correcta.
 Dos son iguales y una distinta. El código se comporta como AUTOCORRECTOR, selecciona una
de las dos iguales y la toma como correcta.
 Las tres son distintas. El código se comporta como AUTODETECTOR, la máquina detecta que
hay error pero no puede determinar cual es la información correcta.

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 35
Arquitectura y Organización de Computadoras
TEORIA

3: Circuitos digitales

El objetivo de este tema es abordar los principios básicos de la lógica digital, que pueden aplicarse en el
diseño de una computadora digital.
Lograr el entendimiento de los principios de la Lógica combinatoria y de la Lógica Secuencial, utilizadas
en el diseño de circuitos lógicos digitales, a partir de los cuales es posible construir integramente una
computadora.
Estos circuitos implementan las operaciones básicas de mas bajo nivel , de las cuales depende el funcio-
namiento de una computadora.
Algunas definiciones
Unidad lógica Combinatoria: un circuito lógico digital en el cual las decisiones lógicas se toman exclusi-
vamente en base a las combinaciones de las entradas. Ejemplo: un sumador.
Unidad lógica Secuencial: un circuito donde las decisiones se adoptan no sólo en virtud de las combina-
ciones de entrada sino también de la historia anterior de las mismas entradas. Ejemplo: una unidad de
memoria.
Máquina de estado finito: Un circuito que posee un estado interno y cuya salida es función de las entra-
das corrientes y de la historia previa de sus entradas
Unidad lógica Combinatoria
Transforma un conjunto de entradas en un conjunto de salidas de acuerdo con una o más funciones lógi-
cas.
Las salidas de una CLU son estrictamente funciones de las entradas, y se actualizan inmediatamente
luego de cualquier cambio en las entradas. La unidad recibe un conjunto de entradas i0 – in y produce
un conjunto de salidas f0 – fm que dependerán de las funciones lógicas correspondientes.
Las entradas y salidas para una CLU normalmente tienen dos valores binarios distintos : alto y bajo, 1 y
0, 0 y 1, o 5 volt y 0 volt por ejemplo

i0 f0 (i0 ,i1 )
Unidad Lógica
Combinacional
i1 f1 (i1 ,i3 ,i4)

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 36
Arquitectura y Organización de Computadoras
TEORIA

in fm (i9 ,in)

Es el bloque constructivo fundamental de una computadora digital.


Circuitos digitales: las señales son parte de un conjunto finito de valores.
Algunos circuitos de computadoras funcionan en el dominio analógico, ( manejan un continuo de valo-
res).
Para ciertas aplicaciones, resulta apropiado el uso de circuitos analógicos, ej: simuladores de vuelo.
Computadoras digitales son mayormente binarias.
Existen sin embargo circuitos digitales de Niveles Múltiples.
Ventajas: Si es capaz de transportar mas de dos valores puede ser mucho mas eficiente en la transmi-
sión de datos que un cable que solo transporta dos niveles.
Desventaja: Difícil de obtener circuitos que distingan en forma confiable entre mas de dos valores.
Es lo mismo un circuito analógico que un circuito digital de varios niveles?

Circuito combinacional

En general, un circuito combinacional consiste de n entradas binarias y m salidas binarias. Un circuito


combinacional puede definirse de tres formas:
Tabla de verdad: Para cada una de las posibles combinaciones de las n señales de entrada, se enume-
ra el valor binario de cada una de las m señales de salida.
Símbolo gráfico: Describe la organización de las interconexiones entre puertas.
Ecuaciones booleanas: Cada señal de salida se expresa como una función booleana de las señales de
entrada.
Los circuitos combinacionales implementan las funciones esenciales de una computadora digital. Pero no
proporcionan memoria, que es un elemento también esencial para el funcionamiento.
Para estos fines, se utilizan circuitos lógicos digitales mas complejos denominados circuitos secuenciales.

Algebra de Boole: Tablas de verdad

• Es el sistema matemático usado para la representación de la logica, en el diseño de circuitos ló-


gicos, que nos permite identificar mediante símbolos el objeto de un circuito lógico de modo
que su estado sea equivalente a un circuito real.
• Desarrollada en 1854 por George Boole
• Más tarde mejorada por Claude Shannon (Bell Labs)
• Las salidas son calculadas para todas las posibles combinaciones de entradas ( Cuántas combi-
naciones de entrada hay aquí ?)
Considere un cuarto con dos llaves A y B que actuan sobre la lampara Z.
Cómo trabajan ?

Asignación Alternativa de salida en función del estado de las llaves

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 37
Arquitectura y Organización de Computadoras
TEORIA

En una tabla de verdad, se enumeran todas las posibles combinaciones de entrada de las var. binarias y
se asigna el correspondiente valor 0 o 1 a la salida para cada combinación.

En general, dadas n variables de entrada se pueden obtener 2 n combinaciones de entradas, existen ->
2 (2n) posibles asignaciones de salida.

COMPUERTAS LOGICAS
Tablas de verdad con todas las posibles funciones de dos variables binarias

Puertas lógicas y sus símbolos

Una compuerta lógica


es un dispositivo físico
que implementa una
función básica del
Algebra de Boole.

Símbolos lógicos de las funciones booleanas AND (Y), OR (O) , buffer, y NOT
• Visualizar el uso de la “burbuja de inversion”.

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 38
Arquitectura y Organización de Computadoras
TEORIA

Símbolos lógicos para las funciones booleanas NAND,NOR, XOR y XNOR

O excluyente (XOR): Produce 1 en su salida, cuando el nro. de 1 en su entrada es impar

NOR EXCLUYENTE (XNOR): Produce una salida complementaria a la de XOR

Propiedades Básicas del Álgebra de Boole

Principio de dualidad: El dual de una función booleana se obtiene intercambiando sumas lógicas ( O )
por productos ( Y ) y productos por sumas.

Relación Dual Propiedad


A B=BA A +B=B+A Conmutativa
A (B + C) = A B + A C A + B C = (A + B) (A + C) Distributiva
1 A=A 0 +A=A Identidad
A A' = 0 A + A' = 1 Complemento
0A=0 1+A=1 Teoremas del cero y del uno
AA=A A+A=A Idempotencia
A (B C) = (A B) C A + (B + C) = (A + B) + C Asociativa
(A')' = A Involución

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 39
Arquitectura y Organización de Computadoras
TEORIA

A' B' = A' + B' A' + B' = A' B' Teorema de DeMorgan
A B + A' C + B C = A B + A' C A B + A' C + B C = A B + A' C Teorema del consenso
A (A + B) = A A (A + B) = A Teorema de Absorción

Teorema de DeMorgan (dos variables)

Se utiliza el Teorema de DeMorgan para convertir una compuerta O en una compuerta NAND.

Conjunto de puertas

Un conjunto completo de puertas permite generar otras compuertas lógicas que no son parte de dicho
conjunto.
Existen 3 conjuntos de compuertas lógicas que permiten lograr una estructura completa. (Y, O y NO, las
compuertas NAND y las compuertas NOR).
En el ejemplo anterior vimos como una función O, se implementa únicamente a través de compuertas
NAND.
La equivalencia funcional entre compuertas lógicas es importante en lo que hace a la aplicación practica,
dado que un tipo de compuerta lógica puede tener mejores características operativas que otro, depen-
diendo de la tecnología utilizada.

Representación en suma de productos y diagramas lógicos.


• Muchas veces surge la necesidad de representar funcionas mas complejas que una simple com-
puerta lógica, tal como la función mayoría.
• La función mayoría es cierta cada vez que mas de la mitad de sus variables lógicas de entrada
son ciertas.
• Este tipo de operación es común para la recuperación de errores, en la que se comparan las
salidas de circuitos idénticos que operan sobre los mismos datos, a partir de lo cual se determina la sali-
da real por medio del mayor nro. de salidas similares ( como una votación).
• Una forma de representar ecuaciones lógicas requiere el uso de la forma suma de productos.

La forma suma de productos (SOP)

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 40
Arquitectura y Organización de Computadoras
TEORIA

• Ninguna
de las com-
puertas
analizadas
hasta ahora
puede eje-
cutar en
forma direc-
ta la función
mayoría->
Transforma
la función
en una
ecuación ló-
gica de dos
niveles Y
(producto
lógico) y O
• Implementa la función con un un arreglo de compuertas lógicas, usando el conjunto {AND, OR,
NOT}
• M es verdadero cuando A=0, B=1, y C=1, o cuando A=1, B=0, y C=1, y así sucesivamente
en los restantes casos.
La forma SOP de la función mayoría
• La siguiente suma de productos describe la función mayoría para tres entradas:

• M = ABC + ABC + ABC + ABC = m3 + m5 +m6 +m7 = (3, 5, 6, 7)


• Cada uno de los 2n términos son llamados mínimos comenzando desde 0 hasta 2 n – 1
• Cuando un producto lógico contiene todas las variables de la función, expresadas una sola vez,
ya sea en su forma real o complementada, se denomina Termino Mínimo
• La notación en sumatoria es la apropiada para representar la forma canónica de una Ec. Boolea-
na (solo contiene términos mínimos).

• Note las relaciones entre números minitérminos y valores booleanos La forma suma de produc-
tos
• La siguiente suma de productos describe la función mayoría para tres entradas:
• M = ABC + ABC + ABC + ABC = m3 + m5 +m6 +m7 = (3, 5, 6, 7)
• Expresión de la función mayoría en su “ forma canónica suma de productos”.
• Cuando un producto lógico contiene todas las variables de la función, expresadas una sola vez,
ya sea en su forma real o complementada, se denomina Termino Mínimo
• Cada uno de los 2n términos son llamados mínimos comenzando desde 0 to 2 n - 1
• Note las relaciones entre números minitérminos y valores booleanos

Implementación circuital de la función mayoría utilizando dos niveles AND-OR

A B C

A’ B’ C’ A' B C

A B’ C A' B C + A B' C + A B C' + A B C

A B C'

ABC

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 41
Arquitectura y Organización de Computadoras
TEORIA

Cuatro convenciones utilizadas para indicar intersecciones

LA FORMA PRODUCTO DE SUMA (POS)


Como expresión dual de la forma suma de productos, una ecuación representada en su forma pro-
ducto de suma contiene conjuntos de variables afectadas por operaciones de suma lógica cuyos resul-
tados se convierten en un producto lógico. 
Se obtiene el complemento de la función suma de productos y aplicando los teoremas de
DeMorgan.
Seleccionando los términos de entrada que hacen 0 a la salida:

Se complementa ambos miembros de la igualdad, surge la ecuación

La aplicación del teorema de DeMorgan; en la primera negación, en la forma siguiente:

Da origen a la ecuación

Una nueva aplicación del Teorema de DeMorgan a los términos entre paréntesis, ahora en su forma:

Da origen a la ecuación:

Esta ecuación esta expresada en la forma producto de sumas y contiene 4 términos máximos, en los que
cada variable de la función aparece una sola vez en forma real o complementada.

Un termino máximo ( A + B + C ) adopta un valor 0, para una única entrada de la tabla de verdad.
 
Un argumento para el uso de la forma producto de sumas en reemplazo de la forma de la forma suma
de productos, puede ser la obtención de una expresión booleana mas sencilla.

La función mayoría implementada con dos niveles AND – OR (POS)

A B C

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 42
Arquitectura y Organización de Computadoras
TEORIA

A’ B’ C’ A' + B + C

A + B’ + C (A'+B+C)(A+B'+C) (A+B+C')(A+B+C)

A + B + C'

A +B+C

Formas SOP Y POS


• Una expresión booleana mas sencilla puede significar un circuito mas simple.
• Existen además consideraciones que no dependen del tamaño de la ecuación booleana, sino de
la complejidad de la topología de cableado.
• Parámetros de complejidad del circuito
• Cantidad de compuertas
• Cantidad de entradas en las compuertas
• En función de lo anterior comparar ambas implementaciones de circuitos. ???
• Dado que una ecuación booleana mas pequeña se traduce en un circuito con menor cantidad de
compuertas, -> la reducción es importante ( Mapas de Karnaugh).
Componentes digitales
• En los diseños de circuitos digitales de alto nivel, además de las compuertas individuales, sue-
len utilizarse componentes ( conjuntos de compuertas lógicas ) o bloques funcionales.
• Objetivo: Abstraer un cierto nivel de complejidad circuital
• La función mayoría puede verse como una componente.
• Niveles de integración (número de puertas) en un único circuito integrado:
• Integrados en pequeña escala (SSI): 10-100 elementos.
• Integración en escala media (MSI): 100 a 1000 elementos.
• Integración a gran escala (LSI): 1000-10.000 elementos.
• Integración en mayor escala (VLSI): 10.000 y más.
• Estos son niveles aproximados, pero son útiles para comparar la complejidad relativa de los dis-
tintos circuitos.
Componentes digitales MSI
• Multiplexores
• Demultiplexores
• Decodificadores
• Codificadores de prioridad
• Matrices logicas programables
• Sumador con arrastre serie
Multiplexores

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 43
Arquitectura y Organización de Computadoras
TEORIA

Entradas de datos

Circuito AND – OR que implementa el multiplexor de cuatro entradas.


La función mayoría implementada con un Mux 8-1

Mayor eficiencia: Uso de un multiplexor 4-1 para implementar la función mayoría.( 3 variables y 4 entra-
das de datos.)

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 44
Arquitectura y Organización de Computadoras
TEORIA

Demultiplexores (DEMUX)

El demultiplexor con su entrada en 1 es un decodificador.


Decodificadores
Decodificador: traduce una codificación lógica hacia una ubicación espacial.

En cada momento solo una de las salidas del decodificador está en estado activo ( 1 lógico).

Puede usarse para controlar otros circuitos.

Para no habilitar circuitos erróneamente incorpora entonces una línea de habilitación.

Aplicación: Traducción de direcciones de memoria a sus correspondientes ubicaciones físicas. En la


implementación de funciones booleanas.

Decodificadores.
Un decodificador traduce una codificación logica hacia una ubicación espacial.
A veces se introduce una línea de habilitación que fuerza todas las salidas a 0, cuando se le aplica un 0
en la entrada.

Decodificador 2-4.

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 45
Arquitectura y Organización de Computadoras
TEORIA

Demultiplexor de 4 Salidas con su entrada En 1

La función mayoría implementada por un decodificador 3 a 8

En c/momento, solo una de las salidas del decodificador esta en el estado activo. Las salidas no utilizadas se
dejan desconectadas

Codificadores de prioridad

• Traduce un conjunto de entradas en un código binario


• Puede pensarse como el circuito opuesto al de un decodificador
• Un codificador de prioridad establece un ordenamiento de las entradas.
• Ai tiene una mayor prioridad que Ai+1

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 46
Arquitectura y Organización de Computadoras
TEORIA

Matrices lógicas programables (PLAs)


• Una PLA es una matriz configurable de compuertas AND seguida de otra matriz configurable de
compuertas OR.

• Se personalizan anulando fusibles para una funcion especifica. Implementación de la función


mayoría mediante matriz lógica programable.

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 47
Arquitectura y Organización de Computadoras
TEORIA

Implementación de la función mayoría mediante matriz lógica programable.


PLA: Es un elemento que minimiza la cantidad de conexiones del circuito. Existen programas que
diseñan PLA a partir de descripciones funcionales. Son componentes de gran aplicación en los sistemas
digitales. Ventajas: Se tienen pocas entradas y salidas, aun cuando haya un importante numero de
compuertas entre las entradas y las salidas.

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 48
Arquitectura y Organización de Computadoras
TEORIA

Matriz lógica programable (PLA).


Importante: Minimizar la cantidad de conexiones del circuito para:

Obtener un sistema modular formado por componentes discretos que se diseñan y se implementan por
separado.

Haciendo uso del criterio modular es que se diseña una PLA como una caja negra.

Uso de PLAs: Diseño de un circuito digital que suma dos numeros binarios

PLA Implementacion de un sumador completo

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 49
Arquitectura y Organización de Computadoras
TEORIA

Circuito sumador con arrastre en serie de 4 bits implementado con sumadores completos conectados en
cascada
(Para el ejemplo anterior)

Desventaja: Los resultados de c/columna se determinan en secuencia empezando desde la derecha

• El uso de herramientas CAD favorecen su uso sobre el de la lógica discreta o de multiplexores

Estas herramientas de diseño asistido reducen los tamaños de las PLAs, por lo que la gran cdad de com-
puertas aparentemente utilizadas no es tan elevada en la practica.
Indice general
• Lógica Combinatoria:
• Definiciones
• Algebra de Boole
• Componentes digitales
• Lógica Secuencial:
• Maquina de Estados Finitos
• FLIP_FLOPS:
• Circuito S-R sincrónico
• Circuito D Flip-Flop
• Circuito J-K Flip-Flop
• Circuito Master-Slave Flip-Flop
• Registros
• Contadores

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 50
Arquitectura y Organización de Computadoras
TEORIA

Logica Secuencial: Modelo clásico de una Máquina de Estados Finitos


Una MEF está compuesta de una unidad lógica combinacional y elementos de retardo (llamados flip-
flops).

Si: elementos de retardo, uno por cada línea de entrada (líneas de estado)

D0 - Dn : salidas internas, que producirán el nuevo estado

Qi: nuevos bits de estado

Señal de sincronismo: Di->Si->Qi

Máquinas de Estado Finito


• Las máquinas de estado finito basan su funcionamiento en los AUTÓMATAS FINITOS, son entes
matemáticos que permiten dar un soporte teórico a numerosos desarrollos relacionados con la informáti-
ca (para nuestra asignatura, los circuitos secuenciales).
• Inicialmente se puede ver al autómata como una "caja negra" con entradas y salidas, cuyo
comportamiento se observan en instantes sucesivos discretos: t ; t1 ; t2 ; ......
• Un estímulo o entrada E(t) en el instante t produce una respuesta S(t+1) en el instante (t+1),
respuesta que dependerá del estímulo o entrada E(t) y de una función del tiempo H(t):

S(t+1) = F( H(t), E(t) )

• Considerar que:
• H(t) está completamente definida por la historia previa del autómata.
• Existe un número finito de elementos de memoria, por lo tanto H(t) no puede tomar más que
un número finito de valores distintos llamados ESTADOS INTERNOS DEL AUTÓMATA.

S(t+1) = F( H(t), E(t) )

1) S(t+1) = F( Q(t), E(t) )

Lo cual indica que la salida depende del estado en el instante t y de las entradas E(t).
El estado posterior a los estímulos o entradas, Q(t+1) dependerá también de E(t) y de Q(t); o sea:

2) Q(t+1) = G( Q(t), E(t) )

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 51
Arquitectura y Organización de Computadoras
TEORIA

Las ecuaciones 1) y 2) permiten calcular paso a paso el comportamiento del autómata, cualquiera sea la
sucesión de estímulos que pueda recibir en un instante t.
Las funciones F y G o FUNCIONES DE TRANSICIÓN pueden representarse en forma de tablas o de
diagramas:

• Funciones de transición
• Si al estado del autómata en el instante t se lo denomina Q(t) entonces:
• Ejemplo 1: autómata cuyo comportamiento es el siguiente:
Q(t+1) = E(t)

E Q (t) S Q(t+1)

0 0 0 0
1 0 0 1
0 1 1 0
1 1 1 1
E/S

1/0
0/0 0/1 1/1
0 1
Q(t+1)

• Ejemplo 2: Autómata para suma binaria en serie. Las entradas indican las parejas de números
a sumar, la salida S presenta la suma de los números binarios introducidos, los estados posibles (0 o 1)
indican, en cada caso) el arrastre producido.

Entradas Estado Actual Salida Estado Siguiente

A B Q(t) S Q(t+1)

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

FLIP-FLOPS
• Los elementos de memoria en un circuito secuencial se denominan flip-flops.
•Un flip-flop posee dos salidas, Q y Q', y dos entradas, set y reset (Flip-Flop SR).
Un flip flop posee dos salidas, una para el valor normal y otra para el valor complementado almacenado
en él.
• Un flip-flop puede construirse a partir de dos compuertas NAND o dos compuertas NOR

Compuerta NOR con tiempo de retardo

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 52
Arquitectura y Organización de Computadoras
TEORIA

El tiempo requerido para que una señal se propague desde las entradas de una compuerta lógica hasta
sus salidas no es nulo.
El retardo entre la E/S es la base de funcionamiento de un elemento importante de la memoria, el
flip-flop.

Este no se indica en los circuitos, pero su presencia está implícita

Circuito biestable Flip-Flop S-R


Es un conjunto de compuertas lógicas que mantiene estable el estado de la salida aun luego de que las
entradas pasen a un estado inactivo.
Salida de un flip-flop queda determinada tanto por las entradas actuales, y por la historia de las mismas.
Se puede utilizar para almacenar un bit de información, sirve como bloque constructivo para memorias
de computadoras.
Es necesario un nuevo circuito combinacional en el que se pueda lograr este comportamiento. Un flip
flop se puede utilizar para almacenar un bit de información.

El flip-flop tiene dos estados útiles.


Cuando Q =1 y Q’= 0, se encuentra en el estado set (o estado 1).
Cuando Q = 0 y Q’ = 1, se encuentra en el estado clear (o estado 0). Las salidas Q ( salida normal) y Q’
(salida negada)
El estado binario del flip-flop se toma con el valor de la salida normal (Q).

Compuerta 2

Compuerta 1

Flip-Flop SR o SC

• Supongamos: S=0, R=0, Q=0 y Q’=1.


• Si en un momento determinado cambiamos la entrada S de 0 a 1, la salida de la compuerta 1
(Q’) cambiará de 1 a 0.

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 53
Arquitectura y Organización de Computadoras
TEORIA

• Como esta salida es también una de las entradas de la compuerta 2, al haber un 0 y un 0 como
entrada, su salida (Q) pasará de 0 a 1. Como antes, ahora la salida de la compuerta 2 (Q) es una de las
entradas de la compuerta 1.
• Como hubo un cambio de 0 a 1 debemos ver que efecto tiene esto en la salida de la compuerta
1.
• Las entradas son 1 y 1 a lo que la compuerta NOR responderá con un 0 a la salida (Q’ ). Como
esta estaba en 0, el FF queda en un estado estable y no hay mas cambios.

• Estado inicial: S=0, R=0, Q=0 y Q’=1.


• Compuerta 1 : S=1; R=0; Q’=0.
• Compuerta 2:
• R= 0; Q=1 Q’=0.
• Compuerta 1:
• S= 1; Q=1
• Q’=0.
• Como estaba en 0 FF queda en un estado estable y no hay mas cambios. ( estado set).

• Nuestro estado actual es: S=1, R=0, Q=1 y Q’=0.


• Al cambiar la entrada S de 1 a 0, la salida de la compuerta 1 (Q’) deberá dar un 0. Como ya es-
tá en 0 esto no produce ningún otro cambio.
• Estando ahora en S=1, R=0, Q=1 y Q’=0, si nuevamente colocamos en 1 la entrada S, la com-
puerta 1 responderá a las entradas 1 y 0 con un 0. Como la salida (Q’) está en 0, no habrá cambios.
• Para finalizar, estando en S=1, R=0, Q=1 y Q’= 0, si nuevamente colocamos la entrada S en 0,
no se efectuará ningún cambio en el estado del FF.

• Podemos resumir el comportamiento para el FF cuando aplicamos un pulso en S (subir a 1 y ba-


jar a 0 nuevamente ) de la siguiente manera:
• Estando el FF en 0 (Qn= 0) si aplicamos un pulso en S el estado futuro será 1 (Qn+1 = 1).
• Estando el FF en 1 (Qn= 1) si aplicamos un pulso en S el estado futuro será 1 (Q n+1 = 1).
• Con esto podemos decir que si aplicamos un pulso en S, independientemente del estado actual,
(Qn) el estado futuro será 1 (Qn+1 = 1)

• A continuación se presenta la tabla de funcionamiento (tabla de estados de verdad) de este


biestable:

S C Qt Qt+1
0 0 0 0
0 0 1 1
0 1 0 0
0 1 1 0
1 0 0 1
1 0 1 1
1 1 0 ?
1 1 1 ?

• Supongamos: S=0, R=0, Q=1 y Q’= 0.


• Si en un momento determinado cambiamos la entrada R de 0 a 1, la salida de la compuerta 2
(Q) cambiará de 1 a 0. Como esta salida es también una de las entradas de la compuerta 1, al haber un
0 y un 0 como entrada, su salida (Q’) pasará de 0 a 1.
• Como antes, ahora la salida de la compuerta 1 (Q’) es una de las entradas de la compuerta 2.
Como hubo un cambio de 0 a 1 debemos ver que efecto tiene esto en la salida de la compuerta 2.
• Las entradas son 1 y 1 a lo que la compuerta NOR responderá con un 0 a la salida (Q).
• Como estaba en 0, el FF queda en un estado estable y no hay mas cambios. ( estado clear )

• Nuestro estado actual es: S=0, R=1, Q=0 y Q’=1.


• Al cambiar la entrada R de 1 a 0, la salida de la compuerta 2 (Q) deberá dar un 0. Como ya es-
tá en 0 esto no produce ningún otro cambio.
• Estando ahora en S=0, R=0, Q=0 y Q’=1, si nuevamente colocamos en 1 la entrada R, la com-
puerta 2 responderá a las entradas 1 y 0 con un 0. Como la salida (Q) está en 0, no habrá cambios.
• Para finalizar, estando en S=0, R=1, Q=0 y =1, si nuevamente colocamos la entrada R en 0, no
se efectuará ningún cambio en el estado del FF. ( estado clear )


• Podemos resumir el comportamiento para el FF cuando aplicamos un pulso en R (subir a 1 y ba-
jar a 0 nuevamente ) de la siguiente manera:
• Estando el FF en 0 (Qn= 0) si aplicamos un pulso en R el estado futuro será 0 (Qn+1 = 0).
• Estando el FF en 0 (Qn= 1) si aplicamos un pulso en R el estado futuro será 0 (Qn+1 = 0).

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 54
Arquitectura y Organización de Computadoras
TEORIA

• Con esto podemos decir que si aplicamos un pulso en R, independientemente del estado actual,
(Qn) el estado futuro será 0 (Qn+1 = 0)

• A continuación se presenta la tabla de funcionamiento (tabla de estados de verdad) de este


biestable:

S R Qt Qt+1

0 0 0 0
0 0 1 1
0 1 0 0
0 1 1 0
1 0 0 1
1 0 1 1
1 1 0 ?
1 1 1 ?

• Podemos resumir el comportamiento para el FF cuando mantenemos S y R iguales a 0 de la si-


guiente manera:
• Estando el FF en 0 (Qn= 0) si mantenemos S y R iguales, el estado futuro será 0 (Qn+1 = 0)
• Estando el FF en 0 (Qn= 1) si mantenemos S y R iguales, el estado futuro será 1 (Qn+1 = 1)
• Con esto podemos decir que si mantenemos S y R iguales a 0, el estado futuro será igual al es-
tado presente futuro, Qn = Qn+1

• A continuación se presenta la tabla de funcionamiento (tabla de estados de verdad) de este


biestable:

S R Qt Qt+1

0 0 0 0
0 0 1 1
0 1 0 0
0 1 1 0
1 0 0 1
1 0 1 1
1 1 0 ?
1 1 1 ?

Representación de Flip-Flop SR o SC

Tabla de verdad: muestra el comportamiento del estado


futuro en función de las entradas y el estado presente. Se utiliza para obtener la ecuación característica.
• Tabla característica: también muestra el comportamiento del estado futuro pero de una manera mas
compacta que la tabla de verdad.
• Ecuación característica: es otra forma de describir el
comportamiento del estado futuro, pero a menudo mas útil durante el análisis de circuito porque puede
ser utilizada como parte de una expresión booleana.
• Tabla de excitación: se obtiene de la ecuación característica. Muestra las entradas que se necesitan
para pasar de un estado a otro. Se utilizan en la síntesis de circuitos secuenciales.

Representaciones de Flip-Flop SR o SC

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 55
Arquitectura y Organización de Computadoras
TEORIA

Flip-Flop SR: Tabla de excitación


Consiste en definir qué valor debe ingresarse por las entradas del biestable para que un cierto cambio de
estados sea posible, Se utilizan en la síntesis de circuitos secuenciales:

Qt Qt+1 R S Explicación
0 0 x 0 Observando la tabla de funcionamiento hay dos situaciones en que se verifica este
cambio de estado: en ambos casos por S ingresa un 0 y por R puede ingresar 1 o
0. Esto implica que independientemente del valor de R (x) por S debe ingresar un
0
0 1 0 1 Observando la tabla de funcionamiento se verifica que hay una sola situación en
que se verifica este cambio de estado: Cuando por R ingresa un 0 y por S ingresa
un 1
1 0 1 0 Observando la tabla de funcionamiento se verifica que hay una sola situación en
que se verifica este cambio de estado: Cuando por R ingresa un 1 y por S ingresa
un 0
1 1 0 x Observando la tabla de funcionamiento se verifica que hay dos situaciones en que
se verifica este cambio de estado: en ambos casos por R ingresa un 0 y por S
puede ingresar 1 o 0. Esto implica que independientemente del valor de S (x) por
R debe ingresar un 0

• Supongamos: S=0, C=0, Q=0 y Q’=1.


• Si en un momento determinado cambiamos la entrada S de 0 a 1, como se vio al comienzo, la
salida de la compuerta 1 (Q’) cambiará de 1 a 0 quedando en un estado estable y no hay mas cambios.
• Estando ahora en S=1, C=0, Q=1 y Q’=0, si colocamos en 1 la entrada C, la compuerta 2 res-
ponderá a las entradas 1 y 1 con un 0, y la salida (Q) cambiará de 1 a 0. Note que ambas salidas Q y Q’
son ahora ambas iguales a 0, y aunque funcionalmente esto está bien, hay una contradicción con el te-
ner una salida como el complemento de la otra.

• Estando ahora en S=1, C=1, Q=0 y Q’=0, podemos hacer tres cosas:
• 1. Bajar S a cero, esperar que el FF se coloque en un estado estable y luego bajar C a cero.

• 2. Bajar C a cero, esperar que el FF se coloque en un estado estable y luego bajar S a cero.
• 3. Bajar S y C a cero simultáneamente.

• Estando ahora en S=1, C=1, Q=0 y Q’=0, podemos hacer tres cosas:
• 1. Bajar S a cero, esperar que el FF se coloque en un estado estable y luego bajar C a cero.
• 2. Bajar C a cero, esperar que el FF se coloque en un estado estable y luego bajar S a cero.
• 3. Bajar S y C a cero simultáneamente.

Forma de onda de una señal de reloj

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 56
Arquitectura y Organización de Computadoras
TEORIA

•Señal de sincronismo de reloj: para lograr una sincronizacion controlada de los circuitos de logica
secuencial .Cada flip-flop se sincroniza a si mismo al aceptar cambios de sus entradas solo en instantes
determinados

Frecuencia de la señal de reloj: a la inversa de su periodo o ciclo.


Ej.: Periodo de 25 ns./ciclo-> la frecuencia = 1/25 ciclos/ns, o sea 40 millones de ciclos por
segundo o 40 MHz. (1ns= 10-9 seg).

Si los estados de un circuito son sensibles a la secuencia temporal de las señales de entrada->
variación transitoria de los estados y deriva en mal funcionamiento

Señal de sincronismo: permite la eliminación de riesgos por medio de la creación de circuito


biestable sincrónico.

Prefijos Normalizados para la denominación de períodos y frecuencias

Circuito S-R sincrónico

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 57
Arquitectura y Organización de Computadoras
TEORIA

R y S ya no pueden cambiar el estado del circuito hasta que no reciba un nivel alto en CLK. Si los cam-
bios en R y S se producen mientras la señal de reloj está en su estado 0 (bajo) el estado del flip flop no
se modifica.
Sólo cuando la señal de reloj pase a 1 los nuevos estados de R y S, estables, se almacenarán en el flip
flop.

Circuito D-FLIP-FLOP

Desventaja del flip_flop R-S : para almacenar un 1 o un 0, hace falta aplicar un 1 a una de dos entradas
diferentes y un 0 a la otra (según el valor que se desea almacenar).
Alternativa: aplicar un 1 o un 0 a una única entrada, lleva a a un flip flop D.
Se obtiene conectando las entradas R y S entre ellas a través de un circuito inversor.
Cuando se activa la señal de reloj, el valor de D queda almacenado en el flip flop.
Desventaja: En situaciones en que existen realimentaciones desde las salidas hacia la entrada, a través
de otros circuitos, el flip-flop puede cambiar de estado mas de 1 vez en un ciclo de reloj.

Clocked D Flip-Flop

C: representa la señal de sincronismo

El flip-flop D, sincronizado, llamado latch, presenta un problema potencial. Como solución: se suele cor-
tar el lazo de realimentación a través de otra estructura .
El flip-flop Master-Slave soluciona este problema.

Master-Slave Flip-Flop

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 58
Arquitectura y Organización de Computadoras
TEORIA

•Cuando se utiliza un biestable en situaciones en las que existe realimentación desde la salida hacia la
entrada a través de otros circuitos, esta realimentación puede provocar que el flip flop cambie sus esta-
do más de una vez en un ciclo de reloj.

Un flip flop maestro-esclavo se construye con dos FF.


Durante la subida del pulso de reloj se habilita el maestro y se deshabilita el esclavo. La información de
entrada es transmitida hacia el FF maestro.
Cuando el pulso baja nuevamente a cero se deshabilita el maestro lo que evita que lo afecten las
entradas externas y se habilita el esclavo que pasa al mismo estado del maestro.
El comportamiento del flip-flop maestro- esclavo hace que los cambios de estado coincidan con la
transición del flanco negativo del pulso.

Flip-Flop J-K-

Además de los anteriores son muy comunes los flip-flops J-K


El flip-flops J-K se comporta en forma similar al flip-flop S-R excepto porque cuando las dos entradas
valen simultáneamente 1, el circuito conmuta el estado anterior de su salida.

Resumen de Flip-Flop

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 59
Arquitectura y Organización de Computadoras
TEORIA

Registros

Un flip-flop D almacena un único bit de información. Un grupo de N bits, que forman una palabra puede
almacenarse en N flip-flops D organizados. Esta disposición se conoce como registro.

Registro de cuatro bits

La información de las entradas Di se carga en el registro cuando las señales de Escritura y Habilitación
están en su estado alto, en forma sincronizada con la señal de reloj.
Los contenidos del registro pueden leerse en las salidas Q i solo si la línea de habilitación esta en su
estado alto.

Si la línea esta en su estado bajo los buffers de tres estados ubicados a la salida se encuentran
eléctricamente desconectados.

Algunos registros típicos son: Contadores, Decontadores, de desplazamiento.

Contador de Modulo-8

Un contador es un tipo distinto de registro, en el que los patrones binarios de salida recorren en secuen-
cia un cierto rango de números binarios

El ej. recorre la secuencia binaria 000,001,010,011,100,101,110 y 111, repitiendo luego la operación.

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 60
Arquitectura y Organización de Computadoras
TEORIA

Se utilizan 3 flip-flop J-K en modo T, y cada entrada de reloj se conecta a través de una compuerta Y
con la salida Q de la etapa anterior, lo que divide la frecuencia de reloj a la mitad en cada caso.

Como resultado se tiene una cadena de flip flop operando a velocidades que difieren en
potencias de 2, correspondientes a la secuencia de patrones binarios que va de 000 a 111.

El agregado de la línea asincrónica RESET, de funcionamiento activo en estado bajo, que lleva
el contador 000 en forma independiente de los estados del reloj o de la línea de habilitación.

Este diseño se puede extender a tamaños mayores debido a que no se lo trata como una
maquina de estados con propósitos de diseño en las que se enumeran todos los estados. Es
una maquina de estados finitos.

4: Subsistemas de un computador

Objetivos:
Repasar acerca de los componentes estructurales y funcionales Comprender la interrelación de dichos
componentes Identificar buses, como medio de conexión de los componentes. Apreciar aspectos de dise-
ño que afectan las interconexiones:

Estructura y Funcionamiento
• Repasamos: Computador es un sistema complejo
• Naturaleza jerárquica de los sistema complejos.
• Sistema jerárquico: subsistemas interrelacionados. Cada uno de los cuales se organiza en una
estructura jerárquica, hasta el nivel más bajo del subsistema elemental.
• En cada nivel interesa: Estructura y funcionamiento
• Estructura: Modo en que los componentes están interrelacionados.
• Funcionamiento: la operación de cada componente individual como parte de la estructura.
• En términos de descripción: de arriba abajo ( “topdown”) es clara y efectiva (descomponer el siste-
ma.).
Organización funcional
• Funciones básicas de un computador:
– Procesamiento de datos
– Almacenamiento de datos (corto/largo plazo)
– Transferencias de datos (Entrada/salida.- Comunicación de datos).-
– Control ( De las tres anteriores- gestionar y dirigir por medio de instrucciones)
• Número de operaciones posibles que pueden ser realizadas es pequeño.
• Las operaciones básicas pueden parecer absurdamente generalizada, pero:
• “Hay sorprendentemente muy pocas formas de estructuras de computadores que se ajusten a la fun-
ción que va a ser llevada a cabo. En la raíz de esto subyace el problema de la naturaleza de
uso general de computadores, en la cual toda la especialización funcional ocurre cuando se programa y
no cuando se diseña”.
Estructura de una computadora
• Como se interconectan los componentes.
• El computador es una entidad que interactúa con su entorno externo.
• Existen cuatro componentes estructurales principales:
– Unidad Central de Procesamiento (procesador)
– Memoria Principal: almacena datos
– Entrada/Salida transfieren datos entre el computador y el entorno externo
– Sistema de Interconexión: mecanismo de conexión entre la CPU, la memoria y la E/S.
A alto nivel un computador se puede se puede describir:
1) Mediante el comportamiento de cada uno de sus componentes, es decir, mediante los datos y las
señales de control que un componente intercambia con otro.
2) Mediante la estructura de interconexión y los controles necesarios para gestionar el uso de
dicha estructura.

Sub-sistemas de un computador.

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 61
Arquitectura y Organización de Computadoras
TEORIA

La visión de alto nivel es importante dada su capacidad explicativa para facilitar la comprensión de la na-
turaleza de un computador.
1) Es importante además para entender los problemas cada vez mas complejos de evaluación
de prestaciones.
2) Permite tener idea de los cuellos de botella del sistema, los caminos alternativos, la importancia
de los fallos si hay un componente defectuoso
3) Muchas veces los requisitos de mayor potencia y capacidad de funcionamiento tolerante a fallos se
soluciona mediante cambios en el diseño del computador
Diseño de la Arquitectura Von Neuman
Basada en tres conceptos fundamentales:
_Los datos y las instrucciones se almacenan en una sola memoria de lectura-escritura.
_Los contenidos de memoria se direccionan indicando su posición, sin considerar el tipo de dato conteni-
do en la misma.
_La ejecución es secuencial, una instrucción detrás de otra.
Recordamos: Fundamento de esos conceptos: un conjunto pequeño de componentes lógicos básicos
que se combinan para almacenar datos binarios y realizar operaciones matemáticas y lógicas.
Concepto de programa
- Antes para un cálculo concreto, era posible configurar los componentes lógicos de manera especial
para eso.
Se piensa en conectar los componentes para obtener la configuración deseada, se obtiene un programa
cableado (hardwired program)

Secuencia de funciones
Datos aritmético/lógicas Resultados

 Programación hardware: cuando cambian las tareas se cambia el hardware

Códigos de instrucción
 Ahora Intérprete de
instrucción

Señales de control

Datos Funciones Instrucciones


aritmético/lógicas

- Hardware de uso general


Programación en software: se proporciona en cada paso un nuevo conjunto de señales de control.

Componentes de una PC

-Dos componentes esenciales del sistema graficado:


Intérprete de instrucciones + módulo de uso general para las funciones = CPU.
Componentes adicionales: para ingresar datos e instrucciones: Modulo de entrada y para dar salida a los
resultados: Módulo de Salida= Componentes de E/S.
Componente necesario para almacenar temporalmente los datos e instrucciones= MEMORIA o MEMO-
RIA PRINCIPAL

Componentes de un Computador esquema de dos niveles

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 62
Arquitectura y Organización de Computadoras
TEORIA

Componentes de un Computador (Esquema de dos niveles )


–PC = Contador de Programa ó Program Counter. Cuando un programa va a ser ejecutado, el PC contie-
ne la dirección de la 1era. instrucción. Alcanzada esta inst. el PC es incrementado para apuntar a la si-
guiente instrucción.
–RI = Registro de instrucción
–MAR = Registro de dirección de memoria (especifica la dirección en memoria de la próxima lectura o
escritura)
–MBR = Registro de Buffer de Memoria (contiene el dato que se va a escribir en memoria o donde se es-
cribe el dato que se va a leer de memoria).
–E/S AR= Registro de dirección de E/S (especifica un dispositivo de E/S).
–E/S BR= Registro buffer de E/S (para intercambiar datos entre un módulo de E/S y la CPU)
CPU: Se encarga del control. Intercambia datos con la memoria

Funcionamiento del Computador


Función de la computadora
–Ejecutar programas
–El programa está compuesto de instrucciones almacenadas en memoria
–La CPU procesa/ejecuta las instrucciones
–Debe traerlas desde memoria una por vez
–Debe cumplir cada operación ordenada

Ciclo de Instrucción

Podemos descomponer el procesamiento de instrucciones en dos etapas:


Búsqueda: leer desde memoria (capta) Común a todas las instrucciones.
Ejecución: dependiendo de la instrucción puede implicar varias operaciones
El procesamiento requerido para una sola instrucción se llama ciclo de instrucción.
– Dos pasos: ciclo de búsqueda y ciclo de ejecución
- La ejecución del programa se interrumpe sólo si la máquina se apaga, hay un error ó una instrucción
que interrumpa a la computadora.

Ciclo de captación y ejecución

Inicio

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 63
Arquitectura y Organización de Computadoras
TEORIA

Buscar la siguiente
instrucción

Ejecutar la
instrucción

Parar

–Al principio de cada ciclo, la CPU capta una instrucción de memoria.


–En la CPU hay un registro, llamado contador de programa (PC), que tiene la dirección de la próxima
instrucción a captar.
La CPU, después de buscar cada instrucción, incrementa el valor contenido en PC; así podrá buscar la
siguiente instrucción en secuencia.
–La instrucción buscada se carga dentro de un registro de la CPU, llamado registro de instrucción (IR).
–La instrucción está en la forma de un código binario que especifica las acciones que tomará la CPU.
–La CPU interpreta cada instrucción y lleva a cabo las acciones requeridas.
– En general las acciones pueden ser de 4 tipos:
•CPU – Memoria datos pueden transferirse entre CPU y memoria y viceversa.
•CPU – E/S datos pueden transferirse entre CPU y modulo de entrada/salida. ( datos a o desde el exte-
rior)
•Procesamiento de datos CPU efectúa operaciones aritméticas ó lógicas con los datos.
•Control alterar la secuencia de ejecución de instrucciones.
Ejemplo:
Se mostrará la ejecución de una parte de un programa, recalcando las partes relevantes como memoria
y registros de la CPU.
Este fragmento suma el contenido de la palabra de memoria que está en la dirección 940 con el conteni-
do de la palabra de memoria en la dirección 941 y almacena el resultado en esta última posición.
Ejemplo (2) : Se considerará una maquina hipotética cuyas características se muestran:
- Tanto las instrucciones como los datos son de 16 bits
- Posee un único registro de datos llamado acumulador (AC)
- La memoria se organiza en posiciones de 16 bits, o palabras
- Puede haber 2 4, códigos de operación diferentes
- Se pueden direccionar directamente hasta 2 12 = 4096 (4k) palabras de memoria.
Lista parcial de códigos de operación. (“CODOPS”)
00012=1= cargar AC ( D) desde la memoria
00102=2= almacenar AC ( D ) en memoria
01012=5= sumar a AC (D) un dato de memoria
Ejemplo (3):
El ejemplo muestra la ejecución de un fragmento de programa que tiene tres instrucciones:
- Cargar en el registro AC (D) el contenido de la posición de memoria 94016
- Sumar el contenido de la posición de memoria 94116 al registro AC y guardar el resultado en AC
– Almacenar el valor del registro AC en la posición de memoria 94116
Ejemplo (4):
Consideremos que cada posición de memoria almacena 16 bits. Los primeros 4 bits indican la operación
a realizar, los siguientes 12 bits indican una dirección de memoria.
– 00012=1= cargar D desde la memoria
– 00102=2= almacenar D en memoria
– 01012=5= sumar D con un dato en memoria
Paso 1
El contador de programa (PC) contiene 30016 como la dirección de la primera instrucción ( 1940 16). El
contenido de esta dirección se carga en el registro de instrucción (IR).
Este proceso implica usar MAR y MBR. Para simplificar por ahora los ignoramos.

Ejemplo: Paso 1
Memoria

300 1940

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 64
Arquitectura y Organización de Computadoras
TEORIA

5941 Registros de la CPU


301 300 PC
2941
302 D AC
1940
IR
0003
940
0002
941

Ejemplo: Paso 2
•Los primeros 4 bits en IR ( primer dígito Hexadecimal) indican que el registro AC (D) se cargará con un
dato proveniente de la dirección especificada
•Los restantes 12 bits de la instrucción especifican la dirección que se va a cargar, 94016.

Memoria

300 1940
Registros de la CPU
5941
301 300 PC
2941
302 0003 D AC
1940
IR
0003
940
0002
941

Ejemplo: Paso 3
–Se incrementa el contador de programa PC y se capta la siguiente instrucción en la dirección 30116.

Memoria

300 1940
Registros de la CPU
5941
301 301 PC
2941
302 0003 D AC
5941
IR
0003
940
0002
941

Ejemplo: Paso 4
El 516 en IR indica que se debe sumar el contenido de una dirección de memoria especificada, en este
caso la dirección es 94116, con el contenido del registro D y almacenar el resultado en el registro AC (D).

Memoria

300 1940
Registros de la CPU
5941
301 301 PC
2941
302 0005 D AC
5941
IR
0003
940
0002
941 3+2=5

Ejemplo: Paso 5
Se incrementa el PC y se busca la siguiente instrucción en 302 16

Memoria

1940

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 65
Arquitectura y Organización de Computadoras
TEORIA

300
Registros de la CPU
5941
301 302 PC
2941
302 0005 D AC
2941
IR
0003
940
0002
941

Ejemplo: Paso 6
El 216 en IR indica que el contenido del registro D se almacena en la dirección 941 16, que está
especificada en los bits restantes de la instrucción.
En este ejemplo, se necesitan 3 ciclos de instrucción, cada uno con un ciclo de búsqueda y un ciclo de
ejecución.

Memoria

300 1940
Registros de la CPU
5941
301 302 PC
2941
302 0005 D AC
2941
IR
0003
940
0005
941

Ciclo de instrucción
Con este ejemplo podemos ahora tener una visión más detallada del ciclo de instrucción básico. El ciclo
de ejecución de una instrucción puede ocasionar mas de una referencia a memoria.
Además, en lugar de referencias a memoria, una instrucción puede referencia una operación de E/S.
La figura siguiente está en forma de diagrama de estados.
Para cualquier ciclo de instrucción dado, algunos estados pueden no estar y otros pueden repetirse.
Diagrama de estados del ciclo de instrucción(1)

Diagrama
de estados

1. Cálculo
de la direc-
ción de la
instruc-
ción: (IAC) determina la dirección de la siguiente instrucción
a ejecutarse.

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 66
Arquitectura y Organización de Computadoras
TEORIA

2. Búsqueda instrucción (IF): lee la instrucción de su posición de memoria a la cpu.


3. Decodificación de la instrucción (IOD): analiza la instrucción para determinar el tipo de operación
a realizar y los operandos que se usarán.
4. Cálculo dirección operando (OAC): si la instrucción implica una referencia a un operando en la memo-
ria ó e/s, entonces se determina la dirección del operando.
5. Captación del operando (OAC): capta el operando desde la memoria ó se lee desde el dispositivo de
e/s.
6. Operación sobre los datos (DO): realiza la operación indicada en la instrucción.
7. Cálculo dirección resultado. Idem 4.
8. Almacenamiento resultado. Escribe el resultado en memoria o lo saca a través de un dispositivo de
E/S
• Los estados en la parte superior implican un intercambio entre la cpu y la memoria ó e/s.
• Los estados en la parte inferior implican sólo operaciones internas en la cpu.
Ejemplo: ADD
Supongamos la siguiente instrucción :

ADD referencia a registro, dirección de memoria

direccionamiento a 2do operando


referencia 1er operando
Código de operación

•Buscar la instrucción en memoria.


•Incrementar el PC.
•Decodificar la instrucción.
•Si es necesario, buscar una constante en una dirección de memoria.
•Si es necesario, incrementar PC para que apunte más allá de la constante.
•Si es necesario calcular la dirección del operando.
•Buscar uno de los operandos, desde memoria ó registro.
•Buscar el otro operando desde registro.
•Realizar la Suma.
•Almacenar el resultado.

•En el primer paso, la CPU busca la instrucción en memoria. Para esto copia el valor del PC al MAR y de
ahí al bus de direcciones. La UC envía las señales necesarias para una operación de lectura. Se pueden
leer uno ó más bytes. Se colocan en IR.
•Después de buscar la instrucción, la CPU debe incrementar el PC para apuntar a “lo que sigue”. Puede
ser un dato, dirección ó la siguiente instrucción.

El paso siguiente es decodificar la instrucción para saber que operación hacer (suma, resta, etc.). En
este momento la CPU no sólo se entera de la operación, sino también dónde se encuentran los
datos sobre los cuales operar.

La instrucción es auto-contenida en ella “todo está dicho”.


•En el paso anterior la CPU determinó si tiene que ir a buscar un operando a memoria, que ocupa una
celda o más (byte/s) y lo hace en este momento.
•Si existió el paso anterior la CPU debe incrementar el PC en el valor adecuado de celdas (1, 2 o mas).

•En este paso si es necesario, calcula la dirección del operando.


•Buscar los operandos.
•Sumar, Restar ….
•Almacenar el resultado.

Ejemplos adicionales
Simulación de Instrucciones en MSX88
•Ejecutar aplicación MSX88.exe
•Almacenar en memoria:
•e 2000 b8002081c000e0
•Analizar la ejecución ciclo de instrucción a ciclo de instrucción con <F6>

Ejemplo: Repensar el ejercicio anterior


Esta máquina hipotética tiene también dos instrucciones de E/S.
0011 = Cargar AC desde E/S
0111 = Almacenar AC en E/S
En estos casos, la dirección de 12 bits indica un dispositivo concreto de E/S.
1. Cargar AC desde el dispositivo 5
2.Sumar el contenido de la posición de memoria 940.
3. Almacenar AC en el dispositivo 6.
Considerar que el siguiente valor obtenido desde el dispositivo 5 es 3 y que la posición 940 almacena el
valor 2.

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 67
Arquitectura y Organización de Computadoras
TEORIA

Interrupciones
• Mecanismo mediante el cual se puede interrumpir el procesamiento normal de la CPU.
– Ejecución secuencial de instrucciones de un programa
• Pueden ser de origen interno o externo a la CPU.

¿Porqué Interrumpir?
• Por resultado de una ejecución de una instrucción.
– Ej: desbordamiento aritmético (“overflow”), división por cero, intento de acceder fuera del espacio de
memoria permitido al usuario
• Por un temporizador interno del procesador.
– Generadas por un temporizador interno al procesador. Ej Permite al S.O. realizar ciertas funciones de
manera regular.
• Por una operación de E/S.
– Generadas por un controlador de E/S: para indicar la finalización normal de una operación o para avi-
sar de ciertas condiciones de error.
• Por un fallo de hardware.
– Ej: error de paridad en la memoria, pérdida de energía o falta de alimentación.
– Las interrupciones proporcionan una forma de mejorar la eficiencia del procesador.
– Ej: La mayoría de los dispositivos externos son mucho mas lentos que el procesador.
– Si el procesador esta transfiriendo datos a una impresora utilizando el esquema del ciclo de instrucción
– Después de cada operación de escritura, el procesador permanece ocioso hasta que la impresora ter-
mine su tarea.
– La longitud de esta pausa puede ser del orden de muchos cientos o incluso miles de ciclos de instruc-
ción que no implican acceso a memoria, esto supone un derroche de CPU.
– Si se utilizan interrupciones el procesador puede dedicarse a ejecutar otras instrucciones mientras una
operación de E/S está en curso.

Interrupciones
• Proporcionan una forma de mejorar la eficiencia del procesador.
• Ej.: los dispositivos externos son mucho mas lentos que el procesador
• El procesador está transfiriendo datos a una impresora basado en el ciclo de instrucción.
• Después de cada operación de escritura, el procesador queda ocioso hasta que se complete la escritu-
ra.
• Esta pausa puede ser del orden de cientos o incluso miles de ciclos de instrucción que no implican ac-
ceso a memoria.
• Esto supone un derroche en el procesador.
Ciclo de instrucción e interrupciones
Para permitir el uso de interrupciones resultan:
Tres pasos:
• Captación
• Ejecución
• Gestión de interrupciones

Ciclo de instrucción e interrupciones


• El procesador comprueba si se ha solicitado alguna interrupción.
– indicada por la presencia de una señal de pedido de interrupción.
• Si no hay señales se capta la siguiente instrucción.
• Si hay algún pedido de interrupción pendiente, la CPU:

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 68
Arquitectura y Organización de Computadoras
TEORIA

– Suspende la ejecución del programa en curso


– Guarda su contexto (próxima instrucción a ejecutar , PC, y el estado del procesador)
– Carga el PC con la dirección de comienzo de una rutina de gestión de interrupción. Se inhiben otras in-
terrupciones.
– El procesador accede a la 1era. Instrucción de gestión de interrupción, y realiza todas las operaciones
que sean necesarias.
 Finalizada la rutina de gestión de interrupción, el procesador retoma la ejecución del programa
del usuario en el punto de interrupción.

Diagrama de estados de un ciclo de instrucción con interrupciones

Un ejemplo de uso de interrupciones


• Un programa realiza una operación de E/S
– Hay que esperar al dispositivo
• Mejor solución: cuando el dispositivo termina su tarea, envía una señal al procesador indicando
el fin de la interrupción.
• Generalmente el programa de gestión de interrupción forma parte del sistema operativo.
• Normalmente determina el origen de la interrupción y realiza todas las acciones necesarias
• Situación frecuente para un dispositivo lento, como una impresora:
• Allí la operación de E/S requiere mas tiempo para ejecutar una secuencia de instrucciones de usuario .
• Un programa realiza una operación de E/S
– Hay que esperar al dispositivo
• Mejor solución: cuando el dispositivo termina su tarea, envía una señal al procesador indicando fin de
la interrupción
– Este mecanismo permite a un programa que escribe mas datos en ese modulo de E/S, cuando se com-
pleta se retorna al programa original
– Tener en cuenta la velocidad del dispositivo externo. (Fig. a ) a.)
Flujo de control del programa del ejemplo

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 69
Arquitectura y Organización de Computadoras
TEORIA

Flujo de control del programa del ejemplo


• Figura a)
• Los segmentos de código 1,2 y 3 corresponden a instrucciones que no ocasionan operaciones de E/S
• Las llamadas de escritura (WRITE) corresponden a llamadas a un programa de E/S, que es una de las
utilidades del S.O.
• El programa de E/S esta formado por:
• Una secuencia de instrucciones (4) , de preparación para la operación ( copia del dato en un buffer,
preparar los parámetros del control del dispositivo de E/S.
• La orden de E/S propiamente dicha. El programa debe esperar a que el dispositivo de E/S complete la
operación requerida.
Comprobaría repetidamente una condición que indique su fin
• Una secuencia de instrucciones, (5), que terminan la operación de E/S. Ej.: Activación de un flag, que
indique si se ha concluido o no con errores.
• El programa de usuario está parado en las llamadas Write un tiempo considerable

Flujo de control del programa del ejemplo


• Figura b)
• El programa llega a una llamada al sistema operativo para ejecutar la escritura WRITE
• El programa de E/S al que se llama está constituido por el código de preparación y la orden de E/S.
• Luego el control se devuelve al programa del usuario.
• Mientras, el dispositivo esta ocupado aceptando el dato de la memoria del computador e imprimiéndo-
lo. Esto se realiza concurrentemente con el ejecución del programa del usuario.
• Cuando el dispositivo externo esta listo para actuar, es decir leer mas datos, el modulo de E/S del dis-
positivo envía una señal de petición de interrupción al procesador.
• El procesador, suspende lo que estaba haciendo y salta al programa de gestión de interrupción, que
da servicio al dispositivo. Los puntos donde se producen las interrupciones se indican con una equis

Flujo de control de un programa


• El proceso generado por el gestor de interrupciones supone una cierta penalización (overhead). Deben
ejecutarse instrucciones extras en el gestor
• Para determinar el origen de la interrupción y para decidir la acción mas apropiada.
• No obstante el procesador puede emplearse mas eficientemente ya que se perdería tiempo asociado a
la operación de E/S Flujo de control de un programa
• Figura c)
• La situación mas frecuente es que la operación de E/S, por ejemplo una impresora, requiera mucho
mas tiempo para ejecutar una secuencia de instrucciones de usuario.

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 70
Arquitectura y Organización de Computadoras
TEORIA

• El programa de usuario llega a la 2da llamada WRITE, antes que la operación E/S generada por la 1er
llamada se complete.
• El programa de usuario se detiene en ese punto
• Cuando la operación E/S precedente se completa, esta nueva llamada a escritura se puede procesar, y
se inicia una nueva llamada de E/S y se puede iniciar una nueva operación de E/S.
• Existe una mejora porque parte del tiempo durante el cual la operación de E/S está en marcha se sola-
pa con la ejecución de instrucciones de usuario.

Jerarquía de interrupciones
Si hay múltiples fuentes se establece cuales son mas importantes
• No enmascarables: No pueden ignorarse.
– Indican eventos peligrosos o de alta prioridad.
• Enmascarables: Pueden ser ignoradas.
– Con instrucciones inhibimos su ocurrencia.
Interrupciones múltiples (1)
• Un programa puede estar recibiendo datos a través de una línea de comunicación e imprimiendo resul-
tados. La impresora generará interrupciones cada vez que complete una operación de escritura.
• Se presentan 2 alternativas para tratar este tipo de interrupciones
• Interrupciones inhabilitadas
• El procesador puede y debe ignorar la señal de petición de interrupción.
• Si se hubiera generado una interrupción se mantiene pendiente y se examinará luego una vez que se
hayan habilitado nuevamente.
• Ocurre una interrupción, se inhabilitan, se gestiona la misma y luego se habilitan otra vez.
• Por lo tanto las interrupciones se manejan en un orden secuencial estricto.
• Inconvenientes: NO tiene en cuenta prioridades relativas, ni las solicitudes con un tiempo critico. Ej:
Llega una entrada desde la línea de comunicación esta debe tramitarse para dejar espacio a la sgte, ……
Procesamiento de interrupciones

Interrupciones múltiples
Otra alternativa:
Definir prioridades
• Una interrupción de prioridad más alta puede interrumpir a un gestor de interrupción de prioridad
menor.
• Cuando se ha gestionado la interrupción de prioridad más alta, el procesador vuelve a las interrupcio-
nes previas (de menor prioridad).
• Terminadas todas las rutinas de gestión de interrupciones se retoma el programa del usuario.
Procesamiento de interrupciones anidadas (priorización)

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 71
Arquitectura y Organización de Computadoras
TEORIA

Reconocimiento de interrupciones
• Interrupciones multinivel
– Cada dispositivo que puede provocar interrupción tiene una entrada física de interrupción conectada a
la CPU.
– Es muy sencillo, pero muy caro.
• Línea de interrupción única
– Una sola entrada física de pedido de interrupción a la que están conectados todos los dispositivos.
– Tiene que “preguntar” a cada dispositivo si ha producido el pedido de interrupción (técnica Polling).
• Interrupciones vectorizadas
– El dispositivo que quiere interrumpir además de la señal de pedido de interrupción, debe colocar en el
bus de datos un identificador (vector).
– Lo puede poner el periférico directamente, o bien un controlador de interrupciones (que se ocupa de
todo).
Escenario de trabajo
• El procesador tiene una única entrada de pedido de interrupciones.
• Si tenemos varios productores de interrupciones
¿Cómo lo solucionamos?
– Dispositivo controlador de interrupciones (PIC)
Conexionado

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 72
Arquitectura y Organización de Computadoras
TEORIA

Interrupciones del MSX88


• Hardware
– Línea INT
– Como respuesta de reconocimiento INTA
– Línea NMI
– Su proceso de atención es por salto indirecto
• Software
– Instrucción INT xx
– Para retorno debe usarse la instrucción IRET
– Proceso de atención vectorizado
Funcionamiento de la E/S
Lo anterior hizo foco en la interacción entre CPU y memoria. Se debe considerar también entre compo-
nentes de E/S
Un módulo de E/S puede intercambiar datos directamente con el procesador
Puede iniciar una lectura o escritura en memoria, especificando la dirección de una posición concreta
El procesador también puede leer/escribir datos en un modulo de E/S-> identifica un dispositivo especifi-
co controlado por un modulo de E/S determinado.
En ciertas casos es deseable permitir los intercambios de E/S directamente con la memoria.
El procesador cede a un modulo la autoridad para leer/escribir en memoria -> no interviene el procesa-
dor-_ Esto se conoce como DMA ( Direct Memory Access)
Estructuras de interconexión.(I)
PC: conjunto de módulos o unidades elementales. Deben existir líneas para interconectar esos módulos
El diseño de la estructura de interconexión dependerá de los intercambios que deban producirse
Tipos de intercambio de datos según tipo de módulo:
•Memoria: Constituida por N palabras de igual longitud. Cada una con 1 dirección única. Una palabra
puede leerse o escribirse en memoria.
El tipo de operación se indica mediante señales: Read ( leer ) y Write ( escribir).
La posición de memoria para la operación se especifica mediante una dirección.

Módulos de un computador

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 73
Arquitectura y Organización de Computadoras
TEORIA

Módulo de E/S: es funcionalmente parecida a la memoria. Dos operaciones ( leer y escribir).


•Puede controlar más de un dispositivo externo
•Interfaces con un disp. externo= puerto (port)
•Cada uno con una dirección (0,1,.. M-1)
•Existen líneas externas de datos para la entrada y la salida de datos por un dispositivo externo.
•Puede enviar señales de interrupción al procesador
Procesador:
•Lee instrucciones y datos
•Escribe datos una vez procesados
•Utiliza señales para controlar el funcionamiento del sistema.
•Puede recibir señales de interrupción.
Estructuras de interconexión.
Las estructuras deben dar cobertura a los siguientes tipos de transferencia:
Memoria a procesador
Procesador a memoria
E/S a procesador
Procesador a E/S
Memoria a E/S y viceversa:
Un módulo de E/S puede intercambiar datos directamente con la memoria, sin que tengan que pasar a
través del procesador, utilizando el “acceso directo a memoria” (DMA)
Las estructuras mas comunes son los buses.
Interconexión con buses .
Es un camino de comunicación entre 2 o más dispositivos.
Es un medio de transmisión compartido. Se conectan a él varios dispositivos y cualquier señal transmiti-
da por uno está disponible para los otros
Constituidos por líneas
Cada línea transmite señales binarias de 0 y 1 Varias líneas pueden transmitir bits en paralelo (Ej. Un
dato de 8 bits puede transmitirse mediante 8 líneas del bus)
Bus del sistema: interconecta los componentes principales del computador.
Bus del sistema: entre 50 y 100 líneas A cada línea se le asigna un significado o función particular.
Tres grupos funcionales: líneas de datos, líneas de dirección y de control. Líneas de alimentación para
suministrar energía a los módulos conectados al bus.

Líneas de datos: Constituye el bus de datos. Puede incluir entre 32 y cientos de líneas.
Cada línea sólo puede transportar un bit a la vez
Anchura del bus: factor clave a la hora de determinar las prestaciones del sistema. Si el bus de datos
tiene 8 líneas y las instrucciones son de 16 bits, que hace el procesador cuando accede al módulo de
memoria.
Líneas de dirección: Designan la fuente o el destino del dato, situado en el bus de datos
Anchura del bus de direcciones: Determina la máxima capacidad de memoria posible en el
sistema Se usan además para direccionar los puertos de E/S
Líneas de control: Controlan el uso y acceso a las otras líneas. Las señales de control transmiten: ór-
denes e información de temporización entre los módulos.
Las de temporización: indican la validez de los datos y las direcciones.
Las señales de órdenes: especifican las operaciones a realizar:
1. Escritura en memoria (Memory write)
2. Lectura de memoria (Memory Read)
3. Escritura de E/S (I/O Write)
4. Lectura de E/S (E/S Read)
5. Transferencia reconocida (Transfer ACK)
6. Petición del bus (Bus request)
7. Cesión de bus (Bus grant)
8. Petición de ininterrupción (Interrupt request)
9. Interrupción reconocida (Interrupt ACK)
1. Reloj (clock): se utiliza para sincronizar las operaciones

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 74
Arquitectura y Organización de Computadoras
TEORIA

2. Inicio (reset): Pone los módulos conectados en su estado inicial.


Funcionamiento básico del bus:
a) Si un módulo desea enviar un dato a otro:
1. Obtener el uso del bus
2. Transferir el dato a través del bus.
b) Si un módulo desea pedir un dato a otro:
1. Obtener el uso del bus
2. Transferir la petición al otro módulo mediante las líneas de control y dirección apropiadas. Debe
esperar a que el 2do. módulo envié el dato.

Implementación física típica de una arquitectura de bus


Conj. de conductores eléctricos paralelos. Líneas de metal grabadas en una tarjeta ( de circuito impre-
so).

1. El esquema anterior se introduce en un chasis.


2. En los sistemas actuales tienden a tener sus componentes principales en la misma tarjeta y los circui-
tos integrados incluyen mas elementos.
3. El bus que conecta el procesador y la memoria cache se integra en el micro junto con el procesador y
la cache ( onchip) en bus que conecta el procesador con la memoria y otros componentes se incluye
(On-board)
4. Se puede adquirir un computador pequeño y expandirlo (ampliar memoria, módulos de E/S) mas ade-
lante añadiendo mas tarjetas.
Jerarquía de buses múltiples.
Si se conectan demasiados dispositivos al bus-> disminuyen las prestaciones:
1. A mayor nro de dispositivos mayor retardo de propagación. Retardo: tiempo que necesitan los dispo-
sitivos para coordinarse en el uso del bus. Si el control pasa de un dispositivo a otro frecuentemente
esto afecta las prestaciones.
2. Cuello de botella: Si las peticiones de transferencia acumuladas se aproximan a la capacidad del bus-
> se incrementa la anchura del bus y hasta cierto punto su velocidad, pero la velocidad que necesitan
los dispositivos aumenta también ( -> Bus único esta destinado a dejar de utilizarse.
3. La mayoría de los computadores utilizan varios buses, organizados jerárquicamente.

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 75
Arquitectura y Organización de Computadoras
TEORIA

Ventajas:
Acerca al procesador los dispositivos que exigen prestaciones elevadas
Al mismo tiempo es independiente del procesador.
Los cambios en la arquitectura del procesador no afectan al bus de alta velocidad y viceversa.

Elementos de diseño de un bus


Tipo Anchura de Bus:
Dedicado – Multiplexado Dirección
Método de arbitraje: Datos
Centralizado - Distribuido Tipo de transferencia de datos
Temporización: Lectura
Asíncrono - Síncrono Escritura
Lectura – Modificación - Escritura
Lectura – Después de escritura- Bloque

Elementos de diseño de un bus (preguntas para trabajar en grupo)


1.- Cual es el propósito de un método de arbitraje?

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 76
Arquitectura y Organización de Computadoras
TEORIA

2. Caracteriza el arbitraje centralizado y el distribuido?


3. Describa la temporización síncrona de bus.
4. Caracteriza la temporización asíncrona del bus?
5. Relaciona anchura de bus y prestaciones del sistema.
Problema ejemplo
• Considere un hipotético microprocesador de 32 bits cuyas instrucciones de 32 bits están compuestas
por dos campos: el primer byte contiene el codop y los restantes un operando inmediato o una
dirección de operando.
• a) Cual es la máxima capacidad de memoria ( en bytes) direccionable directamente?
• b) Discuta el impacto que se produciría en la velocidad del sistema si el microprocesador tiene :
• 1.- Un bus de dirección local de 32 bits y un bus de datos local de 16 bits,
• 2.- Un bus de dirección local de 16 bits y un bus de datos local de 16 bits.
• c) Cuantos bits necesitan el contador de programa y el registro de instrucción?.
PCI (Peripheral Component Interconnect)
• PCI ( Interconexión de componente periférico)
• Muy popular, se utiliza como bus de periféricos o bus para una arquitectura de entreplanta
• El estándar actual permite el uso de 64 líneas de datos a 66 MHZ, para una velocidad de transferencia
de 528 MB o 4,224 Gbps.
• Ha sido diseñado para ajustarse económicamente a los requisitos de E/S de los sistemas actuales.
• Se implementa con muy pocos circuitos integrados y permite que otros buses se conecten a él.
• Permite una cierta variedad de configuraciones basadas en microprocesadores, incluyendo sistemas de
uno o varios procesadores
• Proporciona un conjunto de funciones de uso general. Utiliza temporización sincrónica y un esquema
de arbitraje centralizado.
• El uso de adaptadores mantiene al PCI independiente de la velocidad procesador y proporciona la posi-
bilidad de recibir y enviar datos rápidamente.
Referencias bibliográficas
• Stallings, Capítulo 3
• www.pcguide.com/ref/mbsys/buses/

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 77
Arquitectura y Organización de Computadoras
TEORIA

5: Subsistema CPU
Introducción.

• Repertorio de instrucciones en lenguaje maquina: Un punto de encuentro para el disenador del compu-
tador y el programador.
• Punto de vista del diseñador: El conjunto de instrucciones maquina informa de las especificaciones
funcionales de la CPU: implementar la CPU es una tarea que implica implementar el set de inst.
• Punto de Vista del programador: Quien se maneja en lenguaje ensamblador se hace consciente de
la estructura de registros y memoria, de los tipos de datos y del funcionamiento de la ALU.
• La descripción del repertorio de inst. maquina es un paso mas hacia la explicacion de la CPU del com-
putador.
• Objetivos:
• Que hace una instruccion ?
• Examinar y reconocer los distintos tipos de operandos.
• Reconocer los distintos tipos de operaciones que pueden especificarse mediante instrucciones maqui-
na.
Que es el repertorio de intrucciones?
• Es la coleccion de instrucciones distintas que son ejecutadas por la CPU.
• El funcionamiento de la CPU esta determinado por las instrucciones que ejecuta.
• Cada instruccion debe contener la informacion que necesita la CPU para su ejecucion.
• Codigo de maquina
• Lenguaje binario
• Usualmente representada por codigo assembler
Diagrama de estados de un ciclo de instrucción ( 1 )

1. Cálculo dirección instrucción (IAC): determina la direccion de la siguiente instruccion a ejecutar-


se. Normalmente implica anadir un nro. fijo a la direccion de la instruccion previa.
2. Captación de la instrucción: La CPU la lee desde su posicion en memoria.
3. Decodificación de la operación: analiza la instruccion para determinar el tipo de operacion a reali-
zar y los operandos que se usaran.
4- Cálculo dirección operando: si la instruccion implica la referencia a un operando en la memoria o
E/S, entonces se determina la direccion.
5. Captación del operando: capta a el operando en la memoria o se lee desde E/S.
6. Operación sobre los datos: realiza la operacion indicada en la instruccion.
7. Cálculo dirección resultado.( Idem 4)
8. Almacenamiento resultado:escribe el resultado en memoria o lo saca a traves de un dispositivo de
E/S.
• Los estados en la parte superior implican un intercambio entre la CPU y la memoria o E/S.
• Los estados en la parte inferior implican solo operaciones internas en la CPU
Elementos de una Instrucción
• Código de operación (Op code)
—Especifica la operacion a realizar ( suma, E/S, etc.)
• Referencia a operandos fuente
—La operacion puede implicar uno o mas operandos fuente, que son entradas para la instruccion.
• Referencia al operando destino o resultado:

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 78
Arquitectura y Organización de Computadoras
TEORIA

—La operacion puede producir un resultado


• Referencia a la siguiente instrucción
—Dice a la CPU de donde captar la siguiente instruccion tras completarse la ejecucion de la instruccion
actual
—Donde puede estar la siguiente instruccion?
Los operandos fuente y resultado pueden estar en:
• Memoria principal (memoria virtual o cache):
—Debe indicarse dicha direccion.
• Registro de la CPU
—1 solo registro: referencia a el puede ser implicita
—Mas de 1 registro: cada uno tiene asignado un nro unico y
—La instruccion debe contener el nro de registro deseado.
• Dispositivo de I/O
—La instruccion debe especificar el modulo y dispositivo de E/S para la operacion.
— En caso de E/S asignadas en memoria, se dara otra direccion de memoria principal o virtual.

Representación de las instrucciones
• Cada instruccion se representa como una cadena de bits.
• Esta dividida en campos.
• Cada repertorio emplea en gral mas de un formato de instruccion.
• Durante su ejecucion la instruccion se escribe en IR.( CPU)
• La CPU debe extraer los datos de los distintos campos para realizar la operacion requerida.
• Para facilitar la comprension humana de programadores y otros se utiliza una representacion simbolica
de los CODOPS
—ej.: ADD, SUB,
• Conjunto de instrucciones del IAS.
• Los operandos pueden tambien representarse simbolicamente
—ADD R,Y
—“SUMAR el valor contenido en la posición de datos Y al contenido del registro R”
Formatos de la Memoria IAS

0 1 39

Bit de Signo

(a) Palabra número

0 8 19 20 28 39

Codop Dirección Codop Dirección

(b) Palabra instrucción

• Los codops se representan con nemotecnicos, que indican la operacion:


—ADD Sumar
—SUB Restar
—MPY Multiplicar
—DIV Dividir
—LOAD Cargar datos en memoria
—STOR Almacenar datos en memoria (memorizar)
• Es posible escribir un programa en leng. De maquina en forma simbolica. Cada cod. simbolico
tiene una representacion binaria fija.
• El programador define: X= 513; Y = 514
• A partir de alli se construyen programas sencillos.
Un formato de instrucciones sencillo
4bits 6bits 6bits
Codop Operando Operando
16 bits

Tipos de instrucciones
• Instruccion en BASIC o Fortran. Por ej.:
—X=X+Y
• X=513 ; Y = 514 ( Corresponden a posiciones )
• Como realizarlo con instrucciones de maquina?
• Puede necesitar de tres instrucciones maquina

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 79
Arquitectura y Organización de Computadoras
TEORIA

• 1) Cargar un registro con el contenido de la posicion de memoria 513


• 2)Sumar al registro el contenido de la posicion de memoria 514.
• 3) Memorizar el contenido del registro en la posicion de memoria 513.
• Un lenguaje de alto nivel expresa las instrucciones de forma algebraica concisa utilizando variables.
• Un lenguaje maquina expresa las operaciones de manera elemental, implicando operaciones de trans-
ferencia de datos a, o desde registros.

Tipos de instrucciones
• Cuales tipos incluir en un computador?
• Debiera existir un conj. que permitiese al usuario formular cualquier tarea de procesamiento de datos.
• O bien: Cualquier programe escrito en Alto nivel debe poder traducirse a lenguaje maquina para ser
ejecutado.
• De acuerdo a lo anterior se clasifican en:
A) De Procesamiento de Datos: Instrucciones aritmeticas y logicas ( en registros de la CPU)
B) De almacenamiento de datos: Instrucciones de memoria
C) De transferencia de datos: Instrucciones de I/O
D) De control: Instrucciones de comprobacion y de bifurcacion ( para testear el valor de una palabra o el
estado de un calculo/ para bifurcar a diferentes conj. de instrucciones)
Número de direcciones de una inst. (a)
• Permite describir la arquitectura de un procesador en termino del nro. de direcciones conte-
nidas en cada instrucción.
• Esta dimensión pierde significación a medida que crece la complejidad del diseño de la CPU.
• Cual es el numero maximo de direcciones que serian necesarias en una instruccion? ? Cuatro ?
Porque ?
• 3 direcciones
—Operando 1, Operando 2, Resultado
—a = b + c;
—No son comunes
—Necesitan formatos relativamente largos para albergar las tres referencias
—Es implicita la direccion de la instruccion siguiente ( se obtiene a partir del Contador del Programa )
Número de direcciones (b)
• 2 direcciones
—Una de las direcciones debe hacer el servicio doble de uno de los operandos y del resultado.
—a = a + b SUB Y, B
—Reduce la longitud de la instruccion
—Requiere algun trabajo extra
– Almacenamiento temporario para algunos resultados
• 1 direccion
—Una segunda direccion debe estar implicita
—Usualmente era el registro acumulador (AC)
—Esquema comun en las primeras maquinas
Número de direcciones (c)
• 0 (cero) direcciones
• Todas las direcciones son implicitas
—Usan una pila
—Pila: Conjunto de posiciones del tipo last-in-first-out (el ultimo en entrar es primero en salir).
—e.j. push a
— push b
— add
— pop c
—La pila esta en una posicion conocida
—A menudo los dos elementos de su cabecera están en registros del procesador.

Programas para calcular Y

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 80
Arquitectura y Organización de Computadoras
TEORIA

Cúantas direcciones por instrucción ? (1)


• Es una decision básica de diseño.
• Menos direcciones
—Procesador menos complejo
—Instrucciones mas cortas
—Instrucciones menos complejas
—Mas instrucciones por programa -> mayor tiempo de ejecucion y programas mas largos y complejos.
—Rapidas instrucciones de captacion/ejecucion de instrucciones
• Mas direcciones ( instrucciones de multiples direcciones)
—Instrucciones mas complejas (poderosas?)
—Mas registros de uso general
– Las operaciones Inter-registros son mas rapidas
—Menos instrucciones por programa
• Por razones de flexibilidad y facilidad para utilizar varios registros, las maquinas contemporaneas em-
plean una combinacion de dos y de tres direcciones.
• Otros aspectos a considerar al momento del diseno
—Si una direccion hace referencia a una posición de memoria o a un registro.
– Hay menos registros, entonces se necesitan menos bits para referenciarlos
—Una maquina puede permitir diversos modos de direccionamiento
– dicha especificacion consume uno o mas bits.
— La mayoría de los diseños de procesadores hacen uso de varios formatos de instrucciones

Decisiones para el diseño del repertorio de instrucciones del lenguaje de maquina


• Define muchas de las funciones realizadas por la CPU ( procesador)
• El repertorio es el medio que dispone el programador para controlar la CPU. Por lo tanto deben consi-
derarse sus necesidades a la hora de disenarlo.
• Los aspectos de diseno mas relevantes a considerar:
• Repertorio de operaciones:
—Cuantas operaciones considerar?
—Que operaciones considerar?
—Cuan complejas deben ser?
• Tipos de datos: con los que se efectuan operaciones
• Formatos de instrucciones
—Longitud ( en bits)
—Numero de direcciones

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 81
Arquitectura y Organización de Computadoras
TEORIA

—Tamano de los distintos campos


Decisiones para el diseño (2)
• Registros
—Numero de registros de la CPU disponibles
—Cuales operaciones pueden realizarse sobre cuales registros?
• Direccionamiento
— Diversas maneras mediante las cuales se especifica la direccion de un operando.
• Los aspectos estan fuertemente relacionados y deben considerarse conjuntamente en el diseno de un
set de instrucciones
• RISC vs CISC.
—RISC (POWER PC) : Reduced Instruction Set Computer o Computador de Conjunto Reducido de Ins-
trucciones.
—La arquitectura RISC cuestiona muchas de las decisiones sobre repertorios de instrucciones tradicio-
nalmente adoptadas
25
Tipos de operandos (1)
• Las instrucciones maquina operan con datos. Las categorias mas importantes son:
• Direcciones: En ocasiones debe realizarse algun calculo sobre la referencia de un operando, se consi-
deran como numeros enteros sin signo
• Números
—Enteros/punto flotante
—Limitados ( magnitud de los nros representables en una maquina y ademas en coma flotante su preci-
sion).
—En decimal
• Caracteres
—ASCII etc.
—EBCDIC.
• Datos lógicos
—Bits o flags
• Numeros:
• Almacenados en un computador estan limitados
—1) Para la magnitud de los nros representables en una maquina.
—2) Para nros en coma flotante, su precision esta limitada
• Programador consciente del redondeo, del desbordamiento.
• Se usan datos numericos:
—Enteros o en coma fija
—En coma flotante
—En decimal
• Para aplicaciones con muchas E/S vs pocos calculos y simples
—Es preferible memorizar y operar con los numeros directamente en su forma decimal: decimal empa-
quetado.
• Caracteres
• Diversos codigos que permiten representar caracteres mediante secuencias de bits
• ASCII: Codigo estandar americano para Intercambio de informacion.
• Cada caracter representado por un patron de 7 bist
• Otro: EBCDIC. ( Se emplea en los grandes computadores de IBM)
Tipos de operandos ( 4 )
• Datos lógicos: Bits o flags
—En gral cada palabra se trata como unidad de datos individual (u otras unidades direccionables: byte,
media palabra, etc) .
—Otras se considera: una unidad de n bits como n elementos o datos de 1 bit, donde c/elemento vale 0
o 1.
—Ventajas de los datos logicos:
—1) Para almacenar una matriz de datos binarios o booleanos, c/elemento (0 o 1)=> la memoria se
utiliza mas eficientemente
—2) Permite la manipulacion de bits individuales de un dato.
– EJ. Al convertir de ASCII a decimal empaquetado, se necesitan extraer los 4 bits de la derecha de cada
byte.
– Para desplazar bits de mantisas, en operaciones de coma flotante.
29
Tipos de datos en el Pentium
• Tipos generales de datos:
• 8 bits (Byte)
• 16 bits (palabra)
• 32 bits (palabra doble)
• 64 bits (palabra cuadruple)
• Direccionamiento se hace mediante 8 bits (byte)
• Reconoce una variedad impresionante de tipos de datos especificos que son reconocidos y procesados
mediante instrucciones concretas.
Tipos de datos del Pentium

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 82
Arquitectura y Organización de Computadoras
TEORIA

• General – 1 byte, de palabra (16 bits), palabra doble ( 32 bits), y cuadruple (64) con contenido bina-
rio arbitrario
• Entero - Valor binario con signo contenido en 1 Byte (C 2)
• Ordinal - Un entero sin signo contenido en un byte , 1 palabra o una doble palabra.
• BCD desempaquetado - Un digito en cada byte
• BCD empaquetado - 2 digitos BCD por byte valor en el rango 0 a 99.
• Puntero de proximidad – 32 bits que representa el desplazamiento dentro de un segmento
• Campo de bits. Una secuencia contigua de bits, cada posicion es independiente
• Cadena de bytes. Secuencia contigua de bytes, de palabras, o palabras dobles, que contiene de 0 a 2
32 -1 bytes.
Tipos de datos del Pentium
• Coma flotante. Existen una variedad de ellos, todos utilizados por la unidad de coma flotante.
• Las instrucciones de coma flotante pueden operar con enteros y con enteros decimales empaquetados,
asi como numeros en coma flotante.
• Los enteros con signo estan en representacion C2 y pueden ser de 16,32 o 64 bits.
• Los enteros decimales empaquetados se almacenan en representacion signo-magnitud con 18 digitos
en el rango de 0 a 9.
• Las representaciones en coma flotante se ajustan al formato IEEE 754.
• Ver tabla 9.2.- Pag. 322 Stallings y Figura 9.4 ( Pag.. 323). Varia segun la edicion del libro
Pentium Floating Point Data Types

Tipos de operaciones
• El nro de Codops diferentes varia ampliamente de una maquina a otra.
• En todas las maquinas se encuentran tipos generales de operaciones:
• 1) Transferencia de datos
• 2) Aritmeticas
• 3) Logicas
• 4) De conversion
• 5) De E/S
• 6) De control del sistema
• 7) De control de flujo.
Tipos de operaciones: Transferencia de datos
• Es el tipo mas basico de instruccion
• Debe especificar
—1)Posiciones del operando fuente/origen
—Posiciones del operando destino
– Podrian ser de memoria, un registro o la cabecera de una pila.
—2)Longitud de los datos a transferir
—3)El modo de direccionamiento para cada operando.
• Puede haber diferentes instrucciones para diferentes
modelos: e.j. IBM S/370

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 83
Arquitectura y Organización de Computadoras
TEORIA

— Load ( L ) Trans. Memoria a registro: 32 bits


— Load Halfword (LH) Transf. Memoria a registro. 16 bits
— Load ( LR ) Tranfs. De reg. A registro. 32 bits
— Load (Long) (LDR) Trans. Larga entre dos registros de coma flot.
— Load (Short) ( LE) Transf. Corta de memoria a reg. De coma flotante
—Store (ST ) Transf. De registro a memoria. 32 bits
Tipos de operaciones: Transferencia de datos
• Por el contrario el VAX: Presenta una instruccion (MOV) con variantes segun la cantidad de datos a
transmitir
• Es mas sencilla que la utilizada por el Pentium, pero es menos compacta. e.g. VAX
• Estas operaciones son las mas sencillas que debe realizar el procesaror (CPU)
• Si el origen y el destino son registros, la CPU hace la operacion (interna).
• Si uno o ambos operandos estan en memoria -> La CPU debe realizar alguna o todas las siguientes ta-
reas:
1. Calcular la direccion de memoria basandose en el modo de direccionamiento utilizado.
2. Si la direccion hace referencia a memoria virtual:traducir de direccion virtual a real.
3. Determinar si el elemento direccionado esta en cache.
4. Si no, cursar la orden al modulo de memoria.
Tipos de operaciones: Aritméticas
• Suma, Resta , Multiplicacion, Division
• Se tienen siempre para enteros con signo (coma fija)
• A menudo se proporcionan para numeros en Punto flotante y para decimales empaquetados
• Puede incluir varias instrucciones de un solo operando
—Increment (a++): incrementa en 1 el operando
—Decrement (a--): decrementa en 1 el operando
—Negate (-a): cambia el signo del operando
—Absolute: obtiene el valor absoluto del operando
Tipos de operaciones: Aritméticas
• Su ejecucion puede implicar:
• Operaciones de transferencia de datos para ubicar los operandos como entradas a la ALU
• Y para almacenar la salida de la ALU.
• Ademas la ALU debe realizar la operación deseada.

Tipos de operaciones: Lógicas


A) Disponen operaciones para manipular bits individuales dentro de una palabra o de otra unidad di-
reccionable.
• AND, OR, XOR, NOT
• Pueden aplicarse desde bit a bit hasta n bits
• Si dos registros contienen los siguiente:
• (R1)= 10100101 ; Contenido de la posicion R1
• (R2)= 00001111 ; Contenido de la posicion R2
• (R1) AND (R2)=00000101
• Esta operacion puede utilizarse como mascara, para poner a 0 ciertos bits y seleccionar otros.
• En otro ejemplo: si dos registros contienen:
• (R1)=10100101
• (R2)=11111111
• Entonces: (R1) XOR (R2) = 01011010 (obtiene complemento a uno).
b) Funciones de desplazamiento y rotación.
• Desplazamiento logico: se desplazan a la derecha o a la izquierda los bits de la palabra.
• En un extremo, el bit saliente se pierde al desplazarse. En el otro se introduce un 0. Estos son utiles
para aislar campos dentro de una palabra.
• Los ceros que se van introduciendo en la palabra desplazan la informacion no deseada, que se va per-
diendo por el otro extremo.
Tipos de operaciones: Lógicas
b) Funciones de desplazamiento y rotación.
• Desplazamiento aritmetico: trata el dato como entero con signo, y no desplaza el bit de signo.
• En un desplazamiento aritmetico a derecha, el bit de signo normalmente se replica en la posicion de bit
de su derecha.
• Estos desplazamientos sirven para acelerar ciertas operaciones aritmeticas.
• Con numeros en notacion de C 2, un desplazamiento a izquierda o derecha equivale a multiplicar o di-
vidir por 2 respectivamente, asumiendo que no hay desbordamiento ni desbordamiento a 0.
• Rotacion o desplazamiento ciclico.
• Preserva todos los bits con que se esta operando.
• Ej.: Ir volcando sucesivamente cada bit en la posicion mas a la izquierda, donde puede ser identificado
comprobando el bit de signo del dato.
• Las operaciones logicas implican actividad de laALU

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 84
Arquitectura y Organización de Computadoras
TEORIA

Tipos de operación: Conversión


• Cambian el formato u operan sobre el formato de los datos. Ej. Conversion de decimal a binario.
• Convierte un codigo de 8 bits a otro
—TR R1, R2, L
—Translate (s/370),
—R2: Contiene la direccion de comienzo de una tabla de codigos de 8 bits.
—Se traducen los L bytes que comienzan en la direccion especificada por R1.

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 85
Arquitectura y Organización de Computadoras
TEORIA

—Se sustituye cada byte por el contenido del elemento de la tabla indexadada por dicho byte.
—Por ej.: Para convertir de EBCDIC a ASCII
Tipos de operaciones: Entrada/Salida
• Las instrucciones admiten aproximaciones muy diversas.
• Incluyen E/S programadas aisladas.
• Incluyen E/S programadas asignadas en memoria.
• Instrucciones de movimiento de datos (mapeo de memoria )
• Puede ser hecha mediante un controlador separado (DMA).
• Muchas implementaciones ofrecen solo unas pocas inst. de E/S con acciones especificas indicadas me-
diante parametros, codigos o palabras de ordenes.

Tipos de operaciones: Control del sistema


• Son instrucciones privilegiadas.
• CPU necesita estar en un estado especifico
• Estan reservadas para ser usadas por el sistema operativo
• Ej: Leer o alterar un registro de control
• Ej.: para leer o modificar una clave de proteccion de memoria
Tipos de operaciones: Control de flujo o
transferencia de control
• Existe una serie de inst. cuya mision es cambiar la
secuencialidad de la ejecucion.
• La operacion que realiza la CPU es actualizar el
PC para que contenga la direccion de alguna inst.
que esta en memoria
• Varias razones para utilizar estas instrucciones:
—Si se va a procesar una tabla o una lista de elementos-
>lo normal es utilizar un bucle de programa.
—Los programas incluyen tomas de decision
—Existen programas muy largos, se parte la tarea en
trozos mas pequenos.
Tipos de operaciones: Control de flujo o transferencia de control

a) Bifurcación (“Salto”).
• Las maquinas poseen un codigo de condicion de uno o varios bits, que se actualiza luego de una ope-
racion.
• Ejemplo: Se ejecuta el salto (se actualiza el PC con la direccion especificada en el operando) si se cum-
ple la condicion.
• Sino se cumple se ejecuta la instruccion siguiente de la secuencia ( se incrementa el PC de forma habi-
tual).
—BRZ X (saltar a X si el resultado es cero)
—BRP X ( saltar a la posicion X, si el resultado es positivo)
—BRN X (saltar a X si el resultado es negativo)
—BR0 X (saltar a la posicion X, si el resultado es desbordamiento)
— Resultado: referencia a la ultima operación ejecutada que afecte al código de condición.
—Otro ejemplo con inst. de 3 direcciones:
—BRE R1, R2, X Saltar a X si el contenido de R1 = R2
Instrucciones de bifurcación
Control de flujo o transferencia de control
b) Salto implícito (“SKIP”). Incluye una direccion de manera implicita. Implica que se va a saltar una

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 86
Arquitectura y Organización de Computadoras
TEORIA

instruccion
• La direccion implicita es igual a la direccion de la siguiente instruccion mas la longitud de una instruc-
cion.
• Ej. Instruccion “incrementar y saltar si es cero” (ISZ)
—ISZ Register1
—301 ( R1 se fija a un valor negativo)
—.
—.
—309 ISZ R1
—310 BR 301
—311
Tipos de operaciones: Control de flujo o transferencia de control
c) Llamada a procedimiento
• Procedimiento : programa autoconsistente que se incorpora en uno mas grande.
• Razones de su uso:
—Economia y modularidad
—Economiza esfuerzo de programacion y hace mas eficiente el uso del espacio de memoria.
• Dos instrucciones basicas: “Call”, “Return”.
—c.f. llamada de interrupcion

Procedimientos anidados

Tipos de operaciones: Control de flujo o transferencia de control


• Llamada a procedimiento puede hacerse desde distintos puntos ->
• La CPU debe guardar la direccion de retorno en algun sitio.
• Existen 3 lugares habituales:
—Un registro
—Al principio de procedimiento
—En la cabecera de una pila: es la opcion mas potente y
mas general

Tipos de operaciones: Control de flujo o transferencia de control


• Primera ( Registro): CALL X ( llamada al procedimiento de
la posicion x). Si se utiliza un registro se produce:
• RN <- PC + Δ RN: registro utilizado a este fin
• PC <- X PC: contador de programa
• Δ: long. de la instruccion
• El procedimiento llamado puede consultar RN para el retorno posterior.
• Segunda posibilidad: Almacenar la direccion de retorno al
comienzo del procedimiento: CALL X
• X<- PC + Δ
• PC<- x+1

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 87
Arquitectura y Organización de Computadoras
TEORIA

• Aqui la direccion de retorno queda almacenada en un lugar


seguro.
• Limitacion: Impiden el uso de procedimientos reentrantes
• (Reentrante: Es posible tener abiertas varias llamadas al mismo tiempo). Los procedimientos
recursivos son un ej. del uso de esta caracteristica).

Uso de una pila para implementar el anidamiento de subrutinas


– La CPU cuando ejecuta una llamada, coloca la direccion de retorno en la pila.
– Cuando ejecuta un retorno utiliza la direccion guardada.

Tipos de operaciones: Instrucciones de


llamado a procedimientos
• Además de la dirección de retorno a veces es necesario pasar parámetros:
• Alternativa 1: Ademas de aportar la dirección de retorno, a veces, es necesario pasar o transferir
ciertos parámetros , se puede hacer mediante registros.
• Alternativa 2: : Almacenar los parametros en memoria justo despues de la instruccion CALL.
• El retorno debe hacerse a la posic. siguiente a los parametros.
• Tienen limitaciones, dificultan procedimientos reentrantes.
Tipos de operaciones: Instrucciones de llamado a procedimientos
• Alternativa 3: Mas flexible pasar parametros a traves de pilas.
• Cuando la CPU ejecuta una llamada, introduce la direccion de retorno mas los parametros.
• El procedimiento accede a los parametros en la pila.
• Para el retorno: los parametros de retorno pueden introducirse en la pila.
• Marco de pila: Parametros + direccion de retorno.
• Ver figura 9.9 ( Pag. 336 Stallings)( varia según edicion del libro a consultar).,
Apendice: Pilas
• Conjunto ordenado de elementos, en el que solo uno de ellos es accesible en un instante dado.
• Punto de acceso: cabecera de la pila
• Nro de elementos variable: longitud
• Solo se pueden anadir o eliminar elementos en la cabecera
• LIFO ( last-in-first-out)
• Gestionan las llamadas y retornos de procedimientos
• Son una alternativa para direccionar memoria
Pilas: Operaciones básicas

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 88
Arquitectura y Organización de Computadoras
TEORIA

Push: Apila; POP: Desapila; Multiplicar: requiere dos elementos de


la cabecera como operandos.
59
Implementación de la pila mediante instrucciones
• Depende de sus usos potenciales.
• Es una estructura util para la CPU: Gestion de llamadas y retornos a/de procedimientos.
• Pueden ser útiles también para el programador:
• Ej. Evaluacion de expresiones. ( Se definen inst.)
—PUSH, POP
—Operaciones que utilicen 1 o 2 elementos de la cabecera como operandos.
—Todas las instrucciones referencian a la cabecera, -> la direccion de/l operando/s esta implicita. ( 0 di-
recciones).-
• Si solo será utilizada por la CPU: En memoria principal ( o virtual ) se reserva un bloque de posicio-
nes contiguas para almacenar los elementos de la pila.
• La > parte del tiempo el bloque esta parcialmente lleno.
• El resto esta disponible para que crezca la pila.
• Se necesitan 3 direcciones, normalmente memorizadas en registros de la CPU:
—Puntero de pila: Contiene la direccion del tope o cabecera
—Base de la pila: Contiene la direccion base. Si se intenta POP cuando esta vacia que sucede ??
—Limite de la pila. Contiene la direccion del otro extremo del bloque reservado. Si se intenta PUSH
cuando esta utilizado totalmente: que sucede ??
• Para acelerar las operaciones con la pila, tambien los dos elementos de la cabecera se almacenan en
registros. El puntero de pila contiene la direccion del tercer elemento de la pila. Ver figura 9.14 b (Sta-
llings Pag.354)
Pilas: Organizaciones usuales

Pilas: Evaluación de expresiones.


• Formulas matemáticas: en notacion infija (infix)
• El operador binario aparece entre los operandos (a + b)
• Se emplean () para determinar el orden.
• a+(bxc) distinto de (a+b) x c
• Las operaciones tienen prioridades implicitas: Ej. la multiplicacion antes que la suma.
• a + b x c es equivalente a + ( b x c).
• Una alternativa: notación postfija o polaca inversa.
• El operador se especifica despues de los operandos:
• a+ b seria a b +
• a+(bxc) seria a b c x +
• (a+b) x c seria a b + c x

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 89
Arquitectura y Organización de Computadoras
TEORIA

• No se requieren parentesis.
Pilas: Evaluacion de expresiones.
Ventaja: Una expresion con este formato es facil de evaluar usando una pila.
Se recorre la expresion de izquierda a derecha.
Se aplican las siguientes reglas:
1.- Si el elemento es una variable o constante, se introduce en la pila.
2.- Si es un operador, se extraen de la cabecera de la pila los dos operandos, se realiza la operacion y se
apila el resultado.
El resultado se obtiene en la cabecera de la pila.
Muchos compiladores, partiendo de expresiones en alto nivel las convierten a notacion postfija y generan
las instrucciones maquina a partir de esta notacion.
Pilas: Evaluacion de expresiones.
Secuencia de instrucciones de maquina: para evaluar
f = ( a – b )/(c+d x e ).
La notacion postfija ha servido de guia para generar las instrucciones de maquina.
La secuencia de eventos, producidos por el programa en la pila se ilustra en la sig. Figura:

Utili-
za-
ción
de la
pila
para
cal-
cular
f

Apendice: Clasificación de procesadores


• Aspecto relacionado con la forma en que se referencian y se representan los bytes dentro de una pala-
bra y los bits dentro de un byte.
• ORDEN DE LOS BYTES.
• Endian: Surge cuando es necesario tratar una entidad multi-byte como un unico dato con una sola di-
reccion.
• El tipo de endian determina el orden de direccionamiento y de bytes.
• Big-endian: Un dato numerico multi-byte que se almacena con el byte mas significativo en la direc-
cion numerica mas baja.
• Little-endian: Si se memoriza con el byte mas significativo en la direccion mas alta.
• Bi-endian: puede manejar ambos estilos de memorizacion
El orden de los Bytes (1) (Ejemplo)
• Valor hexadecimal de 32 bits:
• 12345678, se almacena en una palabra de 32 bits de una memoria direccionable por bytes, en el
byte 184.
• El valor consta de 4 bytes, con el contenido 78 para el byte menos significativo, y el mas significativo
con el valor 12.
• se exponen dos maneras de memorizar este valor.
El orden de los Bytes (1) (Ejemplo)

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 90
Arquitectura y Organización de Computadoras
TEORIA

• Address Value (1) Value(2)


• 184 12 78
• 185 34 56
• 186 56 34
• 187 78 12
• + significativo - significativo
• big-endian little-endian
• i.e. leer de abajo hacia arriba o de arriba hacia abajo?
• El problema se llama Endian. En relacion con los bytes este concepto tiene que ver con la ordenacion
de los bytes en un escalar multi_byte.
• Se almacena el byte mas significativo en la direccion de byte con valor numerico mas bajo.
• Este se llama big-endian: equivalente al orden de escritura de izq. a derecha. Equivalente a la escri-
tura de las lenguas en las culturas occidentales.
• La otra almacena: el byte menos significativo en la direccion con valor mas bajo.
• Se conoce con el nombre de little-endian: equivalente al orden de derecha a izq. seguido por las ope-
raciones aritmeticas.
• Para determinadas tareas es necesario conocer la estructura de los datos.
• Por. Ejemplo: la conversion de un bloque de memoria con un tipo de endian a otro, requiere
conocer la estructura de los datos.
• Procesadores “Little endian”: Intel 80x86, Pentium II, Vax y Alpha.
• Procesadores “Big endian”: IBM System 370/390; SUN SPARC y mayoria de los RISC.
• La figura siguiente muestra como el tipo de “endian” determina el orden de direccionamiento y de los
bytes.
• La estructura C, contiene varios tipos de datos
• Los cuadros son el resultado de la compilacion
• Memoria: serie de filas de 64 bits
• “Big endian”: la memoria se representa de izq. A derecha y de arriba hacia abajo.
• “Little endian”: Memoria de derecha a izq. Y de arriba abajo.
• (Estos esquemas podrian variar de fila a fila, depende de la manera de hacer el trazado).
• Los manuales de programacion muestran confusa coleccion de formatos.
Example of C Data Structure

Alternative View of Memory Map


Ejemplo: Se considera la memoria como una matriz vertical de bytes. No existe consenso acerca de que
tipo es mejor.
Se prefiere el “big-endian” por lo siguiente:
•Ordenación de cadenas de caracteres: es mas rapido en comparar cadenas de caracteres alineadas
como enteros; la ALU de enteros puede comparar varios en paralelo
•Volcados decimal/ASCII: Todos los valores pueden imprimirse de izquierda a derecha sin causar
confusion.

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 91
Arquitectura y Organización de Computadoras
TEORIA

•Orden coherente: Los procesadores “Big-endian” almacenan en el mismo orden los enteros y las ca-
denas de caracteres ( el byte mas signif. primero).

Se prefiere el “little-endian” por lo siguiente:


•Un procesador “big-endian” tiene que efectuar sumas cuando convierte una direccion entera de 32 bits
a una de 16 bits, con el objeto de utilizar los bytes menos significativos.
•Mayor facilidad para realizar operaciones aritmeticas de alta precision al estilo “little endian”; no hay
que buscar primero el byte menos significativo y luego retroceder.
•Diferencias son poco significativas y la eleccion del estilo “endian” se debe mas a la necesidad de com-
patibilizar con maquinas anteriores que por otras causas.
•El POWER PC es un procesador “bi-endian”.
•Este permite a los desarrolladores de software elegir uno u otro modo.

Orden de los bits


Al considerarlos dentro de un byte:
1. Se cuenta el primer bit como bit numero 0 o como nro 1?

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 92
Arquitectura y Organización de Computadoras
TEORIA

2. El numero de bit mas bajo lo asignamos al bit menos significativo del byte ( little-endian) o al mas
significativo
( big-endian)?
No hay respuestas iguales para todas las maquinas
El programador necesita ser consciente para manipular los bits de manera individual.
Otro aspecto: transmision de datos a traves de una linea serie.
Cuando se transmite un byte individual . envia el sistema primero el bit mas significativo, o el menos
significativo?
El diseñador debe asegurarse de que los bits recibidos son correctamente tratados.

Standard…What Standard?
• Pentium (80x86), VAX are little-endian
• IBM 370, Moterola 680x0 (Mac), and most RISC are big-endian
• Internet is big-endian
—Makes writing Internet programs on PC more
awkward!
—WinSock provides htoi and itoh (Host to Internet & Internet to Host) functions to convert

Repertorios de instrucciones: Modos de direccionamiento y formato

Direccionamiento:
• El campo de direcciones en un formato de instrucción esta bastante limitado.
• Seria deseable referenciar un rango elevado de posiciones en memoria principal o de memoria virtual.
• Existen diversas técnicas:
• Compromiso entre:
—Rango de direcciones y/o flexibilidad de direccionamiento
—Numero de referencias a memoria y/o complejidad de calculo de las direcciones.
Modos de direccionamiento
• 1.- Inmediato
• 2.- Directo
• 3.- Indirecto
• 4.- Registro
• 5.- Indirecto con registro
• 6.- Con desplazamiento (Indexado)
• 7.- Pila
Notación a utilizar:
A= Contenido de un campo de dirección en la instrucción.
R= Contenido de un campo de dirección en la instrucción que referencia un registro.
EA= Dirección real (efectiva) de la posición que contiene el operando que se referencia.
(X)= Contenido de la posición X.
Consideraciones:
• Prácticamente todas las arquitecturas ofrecen mas de uno de estos modos.
• Problema a resolver: Como determina la unidad de control que modo de direccionamiento se esta utili-
zando en cada instrucción.?. Surgen diversas alternativas:
—Codops diferentes emplean modos distintos
—Uno o mas bits pueden utilizarse como campo de modo.
—Este campo de modo indica que tipo de direccionamiento
• Otra cuestión: Dirección efectiva (EA).
—Sin memoria virtual: La EA es una dirección de memoria principal o un registro
—Con memoria virtual: La EA es una dirección virtual o un registro.
La correspondencia real con una dirección física dependerá del mecanismo de paginación.
—No esta por tanto visible al programador.
Direccionamiento inmediato
a) Modo de direccionamiento inmediato

Codop Operando

•Este modo puede utilizarse para definir y utilizar constantes, o para fijar valores iniciales de variables.
•Normalmente el número se almacena en complemento a dos; el bit más a la izquierda del campo ope-
rando se utiliza como bit de signo.
• El operando está en realidad presente en la propia instrucción:
• Operando = A
• e.j. ADD 5
—Suma 5 al contenido del acumulador
—5 es el operando
• No se requiere una referencia a memoria para obtener el operando, ahorrándose un ciclo
• Rápido / Mas sencilla
• Desventaja: Rango limitado. Tamaño del nro limitado a la long. del campo de direcciones, que es pe-
queño comparado con la longitud de la palabra

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 93
Arquitectura y Organización de Computadoras
TEORIA

• Campo de direcciones contiene la dirección efectiva del operando


• EA= A
• e.j. ADD A
—Busca en memoria la dirección A para el operando
• Sólo requiere una referencia a memoria
• No necesita ningún cálculo especial
• Espacio de direcciones restringido

Diagrama de Direccionamiento Directo


Instrucción
A
Memoria

Direccionamiento indirecto
• Problema del modo anterior: La long. del campo de direcciones es normalmente < la longitud de la pa-
labra- > limita el rango de direcciones.
• El campo de direcciones referencia la dirección de una palabra de memoria
• La palabra de memoria contiene la dirección completa del operando
• EA = (A)
—Mira en A, encuentra el contenido de A (A) y busca allí el operando
• e.j. ADD (A)
—Agrega el contenido de la celda apuntada por el contenido de A al acumulador
Instrucción
A
Memoria

Diagrama de direccionamiento indirecto


Instrucción
A
Memoria

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 94
Arquitectura y Organización de Computadoras
TEORIA

• Espacio de direccionamiento grande


• Si N bits = longitud de la palabra, se dispone de un espacio de 2N direcciones.
• Puede ser anidado, multinivel o en cascada
—e.j. EA = ((..(A)..))
—“Indicador de indirección”: 0: contiene el valor de EA
— 1: se invoca otro nivel.
• Desventajas:
• La ejecución de la inst. requiere dos referencias a memoria para captar el operando: una para
captar su dirección y otra para obtener su valor.
• Demasiado lento
Direccionamiento de registro
• El campo de direcciones referencia un registro, en lugar de una dirección de memoria principal. EA = R
• Si el campo de direcciones es 5, la dirección deseada es R5, y el valor del operando es el contenido de
R5.
• Un campo de direcciones que referencia a registros consta de 3 a 5 bits, ->pueden referenciarse un to-
tal de 8 a 32 registros de uso general
• Es necesario un campo pequeño de direcciones en la instrucción
—Instrucciones más cortas
—Instrucciones de captación más rápidas
• No se requieren referencias a memoria
• Ejecución muy rápida
• Desventaja: Espacio de direcciones muy limitado
• Las CPU modernas emplean múltiples registros de uso general.
• Requiere una buena programación en lenguaje ensamblador (ej. cuando se desarrollan compiladores)
para conseguir una ejecución eficiente.
• En caso de utilizar masivamente este tipo, los registros de la CPU se utilizan intensivamente.
• Debido a su numero limitado se deben utilizar eficientemente solo si tiene sentido.
• Ej: almacenamiento de resultados intermedios de un calculo. Implementación de un algoritmo de
multiplicación en complemento a dos, una cierta variable se referencia muchas veces, y sería convenien-
te implementarla en registro en lugar de memoria principal.
• La mayoría de los procesadores modernos utilizan múltiples reg. de uso general , y es responsabilidad
del prog. en lenguaje ensamblador, conseguir una ejecución eficiente.
Diagrama de Direccionamiento de registro
Instrucción
Codop Registro de dirección R
Registros

• Es análogo al indirecto
• EA = (R)
• El operando está en una celda de memoria referenciada mediante el contenido del Registro R
• La limitación del espacio se supera: haciendo que R, referencie a una posición de palabra completa (
un registro), que contenga la dirección.
• Emplea una referencia menos a memoria que el
direccionamiento indirecto.
Diagrama de Direccionamiento Indirecto con Registro (5.2)
Instrucción
Codop Registro de dirección R

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 95
Arquitectura y Organización de Computadoras
TEORIA

Memoria
Registros

Direccionamiento con desplazamiento (


• Modo muy potente: combina direccionamiento directo e indirecto con registro.
• EA = A + (R)
• Requiere que las instrucciones tengan dos campos de direcciones, al menos uno de ellos es explícito.
—A = valor base, se utiliza directamente
—R = registro que contiene el desplazamiento, cuyo contenido se suma a A para obtener la dirección
efectiva.
—o viceversa
• Tres versiones:
—Desplazamiento relativo
—Direccionamiento con registro base.
—Indexado.
Diagrama de direccionamiento con desplazamiento (6)
Instrucción

Codop Registro R Dirección A

Memoria
Registros

Direccionamiento relativo
• Es una versión del direccionamiento con desplazamiento
• R= Contador de programa, PC
• La dirección de instrucción actual se suma al campo de direcciones
• EA = A + (PC): La dirección efectiva es un desplazamiento relativo a la dirección de la instrucción.
• i.e. Toma el operando de la celda A a partir de la localización corriente apuntada por el PC
• Si la mayoría de las referencias a memoria están próximas a la instrucción en ejecución, permite
ahorrar bits de direcciones en la instrucción.
Direccionamiento con Registro Base (6.2)
• Interpretación: El registro referenciado contiene una dirección de memoria
• Y el campo de dirección contiene un desplazamiento desde dicha dirección
• Este desplazamiento es una representación entera sin signo
• R contiene un apuntador a la dirección de memoria base
• R (la referencia a registro) puede ser explícita o implícita
Direccionamiento indexado (6.3)
• Es opuesto a la interpretación del registro-base.
• Registro referenciado contiene un desplazamiento positivo
• Campo dirección es una dirección de memoria principal=> contiene + bits que un campo de direccio-
nes de una instr. comparable que emplee el método anterior
• El método para calcular EA en ambos es igual en ambas variantes
• A = base
• R = contiene un desplazamiento positivo desde esa dirección
• EA = A + R
• Las referencias a registro pueden ser explicitas o implícitas.
• Mecanismo eficiente para ejecutar operaciones iterativas.
— EA = A + R

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 96
Arquitectura y Organización de Computadoras
TEORIA

— R++
Direccionamiento indexado (6.4)
• Ejemplo: Dado una lista de nros. almacenados a partir de la posición A .
• Se quiere sumar 1 a cada elemento de la lista.
• Se necesita-> captar c/elemento, sumar 1 y memorizar el resultado.
• La secuencia de direcciones efectivas necesarias es:
• A, A+1, A+2, ….
• El valor A se almacena en el campo de dirección de la instrucción;
• El registro elegido (registro índice) se inicializa a 0.
• Luego de c/operación, el registro se incrementa en 1.
• Esta operación puede hacerse automáticamente, como parte del ciclo de instrucción (autoindexado).
Direccionamiento indexado (6.5)
• Algunos sistemas la utilizan automaticamente como parte del ciclo de instrucción (
autoindexado)
• Autoindexado con incremento:
• EA = A + (R) .
• (R)<- (R) + 1;
Combinaciones (6.5)
• Algunas máquinas disponen de direccionamiento tanto indirecto como indexado, y es posible
utilizarlos a ambos.
• Hay dos posibilidades de indexación:
• Post-indexado (la indexación se realiza después de la indirección)
• EA = (A) + (R)
• Pre-indexado (la indexación se realiza antes de la indirección)
• EA = (A+(R))
• Un repertorio no incluye el pre-indexado y el post-indexado simultáneamente.
Direccionamiento de Pila (7)
• Pila: Matriz lineal de posiciones
• Los elementos se añaden en la cabecera.
• La pila tiene asociado un puntero, cuyo valor es la dirección de la cabecera o tope de la pila.
• El puntero de pila se mantiene en un registro.
• Operando está (implícitamente) en el tope de la pila.
• Son de hecho, direcciones de acceso indirecto con registro.
• Las instrucciones maquina no necesitan incluir una referencia a memoria, operan implícitamente con la
cabecera de la pila.
• Bastante comunes en microprocesadores.
Modos de direccionamiento del Pentium
II
• Mecanismo de traducción de direcciones del Pentium II roduce una dirección,
• Denominada “dirección virtual o efectiva”: es un desplazamiento dentro de un segmento.
• 12 modos de direccionamiento disponibles para permitir la ejecución eficiente de lenguajes de alto ni-
vel.
—Inmediato
—Registro
—Con desplazamiento
—Base
—Base con desplazamiento
—Indice escalado con desplazamiento
—Base con índice y desplazamiento
—Base con índice escalado y desplazamiento
—Relativo

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 97
Arquitectura y Organización de Computadoras
TEORIA

Cálculos en el modo de direccionamiento del Pentium II

PowerPC Addressing Modes


• Carga/ memorizacion
— Indirecto
– Instructiones incluye un desplazamiento de 16 bits, que se suma a un registro base ( algunos de los
registros de uso general).
– Puede reemplazar el contenido del registro base con una nueva dirección.
— Indirecto indexedo
– La instrucción referencia un registro base y otro índice, pudiendo ambos ser cualesquiera de los regis-
tros de uso general.
– EA es la suma de los contenidos de los dos registros.

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 98
Arquitectura y Organización de Computadoras
TEORIA

• Direccionamiento de bifurcaciones
— Absoluto
— Relativo
— Indirecto
• Instrucciones aritméticas.
— Operando debe estar en un registro o bien formar parte de la
instrucción.
— Para las operaciones aritméticas en coma flotante, todos los operandos se encuentran en registros de
coma flotante, solo se utiliza
direccionamiento de registros.
PowerPC Memory Operand Addressing Modes

Como se organizan los bits de una instrucción:


Formatos de instrucciones
• Descripción en bits de una instrucción en términos de las distintas partes que la componen.
• Incluye un código de operación (codop)
• Incluye (implícita o explícitamente) ninguno o algunos operandos.
• Cada operando explicito se referencia según los modos vistos.
• El formato debe indicar (implícita o explícitamente) el modo de direccionamiento para cada operando
• En la mayoría de los repertorios de instrucciones se emplea más de un formato de instrucción
• Existe una gran variedad de diseños de formatos
• Analizaremos aspectos claves del diseño:
Longitud de instrucción
• El aspecto de diseño mas básico a considerar.
• Afecta y se ve afectada por:
—Tamaño de memoria
—Organización de memoria
—Estructura de buses
—Complejidad de la CPU
—Velocidad de la CPU
• Programadores desean + codops + operandos +, modos de direccionamiento y > rango de direccio-
nes) - > requiere de mas bits, y empuja hacia longitudes de instrucción mayores.
• Compromiso entre el deseo de disponer de un repertorio de instrucciones máquina potente y la necesi-
dad de ahorrar espacio.
• Todo empuja a longitudes de inst. mayores, pero:
• Una long de 64 bits ocupa el doble de espacio de una de 32, pero probablemente no es el doble de útil.
• Otra consideración: Debiera cumplirse que el tamaño de la instrucción fuera igual al tamaño de las
transferencias a memoria ( tamaño del bus de datos).
• O que uno fuera un múltiplo del otro.
• Si así no fuera: no se consigue un nro. entero de instrucciones durante un ciclo de captación.
• Esto afecta la velocidad de transferencia de la memoria
• La velocidad del procesador ha aumentado mucho
• Cuello de botella: solución uso de memoria cache o de instrucciones mas cortas.
• Las instrucciones de 16 bits pueden captarse el doble de rápido que las de 32, pero no pueden ejecu-
tarse el doble de rápido.

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 99
Arquitectura y Organización de Computadoras
TEORIA

• Otra consideración: La longitud de la instrucción debiera ser un múltiplo de la long. de un carác-


ter (8 bits) y de la long. de los nros en coma fija.
• La long. de palabra de memoria: unidad “natural” de organización.
• La palabra define normalmente el tamaño de los números en coma fija (gralmente coinciden)
• El tamaño de palabra suele coincidir, o esta relacionado, con el tamaño de transferencias a memoria.
• Seria deseable que una palabra almacenara un nro. entero de caracteres.
• SINO: Se perderían bits en cada palabra cuando se almacenan múltiples caracteres o,
• Habría caracteres partidos entre dos palabras.
• Por ej. IBM debió pasar de arquitecturas de 36 bits a las de 32 bits en la serie ( 700/7000)
Asignación de los bits
• Otro aspecto a considerar: como asignar los bits en el formato de la instrucción?
• Relación clave entre codops y capacidad de direccionamiento. (+ codops – bits direccionamiento)
• Existen codops de long. variable
• Factores que afectan la definición del uso dado a los bits de direccionamiento:
—Número de modos de direccionamiento
—Número de operandos
—Registros frente a memoria
—Número de conjuntos de registros
—Rango de direcciones
—Granularidad de las direcciones
• Número de modos de direccionamiento
— Un modo puede indicarse de manera implícita ( indexación)
—Los modos explícitos requieren uno o mas bits de modo.
• Número de operandos
—Las instrucciones típicas actuales permiten dos operandos.
—C/dirección de operando podría requerir su propio indicador de modo, o el uso del indicador de modo
podrá estar limitado a solo uno de los campos de direcciones.
• Registros frente a memoria
—Maquina debe disponer de registros para traer los datos al procesador.
—Con varios registros solo se necesitan unos pocos bits para especificar el registro.
—Diversos estudios indican que es aconsejable disponer de 8 a 32
registros visibles para el usuario.
• Número de conjuntos de registros
—Varias maquinas tienen un conj. de registros de uso general, que contiene 8 o 16 registros.
—Suelen emplearse para guardar datos y para almacenar direcciones para direccionamiento con despla-
zamiento.
—Tendencia actual: pasar de un solo banco de registros de uso general a un grupo de 2 o mas conjuntos
especializados.
• Rango de direcciones:
—Para referencia a memoria, este rango esta relacionado con el nro. de bits de direccionamiento.
—Esto impone limitación, raramente se emplea direccionamiento directo.
—En direccionamiento con desplazamiento: el rango se amplia al definido por la longitud del registro de
direcciones.
—Es conveniente permitir desplazamientos bastantes mas largos que los del registro de direcciones y
esto necesita de un nro. relativamente grande de bits de direcciones en la instrucción.
• Granularidad de las direcciones:
— Factor importante para direcciones que referencian a memoria en lugar de registros.
—Con palabras de 16 o 32 bits, una dirección puede referenciar una palabra o un byte, según elija el di-
señador.
—El direccionamiento por bytes es conveniente para manipular caracteres, pero requiere, para un tama-
ño de memoria dado, de mas bits de direcciones.
• El diseñador enfrenta al momento de determinar la asignación de bits en un formato:
• Gran cantidad de factores a tener en cuenta y sopesar.
• Diversos estudios comparan varios enfoques al momento de decidir el formato de la instruc-
ción.
Instrucciones de longitud variable
• Esta táctica hace mas fácil proporcionar un amplio repertorio de codops de log. Variable.
• El direccionamiento puede ser mas flexible, con varias combinaciones de referencias a regis-
tros y a memoria y modos de direccionamiento.
• Desventajas: Aumento de complejidad de la CPU.
• Ya que el procesador no conoce la longitud de la siguiente inst. a captar-> estrategia: captar
un nro de bytes o de palabras igual, al menos, al tamaño de la instrucción mas larga.
• Esto implica que a veces se captan varias instrucciones
Instrucciones de longitud variable
• CONCLUSION:
• El formato de instrucción define la forma de los distintos campos. Su diseño es una tarea di-
fícil, que debe considerar la longitud de las instrucciones, fija o variable, los nros de bits de
los codops y de cada referencia a operando y a la forma en que se determina el modo de di-
reccionamiento

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 100
Arquitectura y Organización de Computadoras
TEORIA

Complex Instruction Set Reduced superescalar


(CISC) Computer Instruction Set
(RISC)
Computer
Characteristic IBM VAX Intel SPARC MIPS PowerPC Ultra MIPS
370/168 11/780 80486 R4000 SPARC R10000
Year Developed 1973 1978 1989 1987 1991 1993 1996 1996
Number of 208 303 235 69 94 225
Instructions
Instruction Size 2–6 2 – 57 1 – 11 4 4 4 4 4
(Bytes)
Addresing modes 4 22 11 1 1 2 1 1
Number of general- 16 16 8 40 – 32 32 40 – 32
purpose registers 520 520
Control Memory Size 420 480 246 - - - - -
(Kbits)
Cache Size (KBytes) 64 64 8 32 128 16 -32 32 64

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 101
Arquitectura y Organización de Computadoras
TEORIA

6: Subsistema Memoria

• Es un conjunto de registros numerados (direccionados) en forma consecutiva, cada uno de los cuales
normalmente almacena un byte de información.
• Cada registro tiene una dirección, que se suele designar como locación de memoria.
• Los tamaños de palabra típicos son de 16, 32, 64 y 128 bits, siendo el tamaño de palabra de 32 bits el
mas común para las computadoras usadas hoy en dia.

-Cuando
se utili-
zan pala-
bras de
mas de
un byte,
hay dos
alternati-
vas en
cuanto a
la forma
de alma-
cenar
sus bytes en memoria, en la 1ra de ellas, el byte mas significativo se almacena en la dirección más baja
de memoria (big endian) y en la otra el byte menso significativo es el que se almacena en la dirección
más baja de memoria (little endian).

-El numero que identifica en forma univoca cada palabra se define como su dirección
-Dado que las direcciones se cuentan en secuencia, a partir de cero, la dirección más alta corresponde a
una unidad menos que el tamaño de la memoria. La ultima dirección de una memoria de 2 32 bytes es 232
– 1, en tanto que la 1ra dirección es 0.
Memoria II • El programador puede acceder a un byte de memoria ubicado en cualquier posición
en el rango de 0 a 232 – 1.

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 102
Arquitectura y Organización de Computadoras
TEORIA

• El espacio de direcciones de la arquitectura de este ejemplo esta dividido en diferentes sectores, los
que se utilizan para el sistema operativo, para los elementos de entrada-salida, para los programas del
usuario y para la pila del sistema.
• La distribución de estos sectores forma el mapa de memoria, el cual puede diferir entre una implemen-
tación y otra, y esta es una de las causas por las cuales algunos programas compilados para el mismo
tipo de procesador pueden no ser compatibles entre sistemas.

JE-

RARQUIA DE MEMORIAS
Las restricciones de diseño de la memoria de un computador se pueden resumir en tres cuestiones
¿ cuanta capacidad? ¿Cómo de rápida? ¿De que coste?
En todo el espectro de posibles tecnologías se cumplen las siguientes relaciones:
• A menor tiempo de acceso, mayor costo por bit.
• A mayor capacidad, menor costo por bit.
• A mayor capacidad, mayor tiempo de acceso.
•A medida que se recorre la estructura jerárquica, se obtiene una mayor eficiencia a cambio de un ma-
yor costo.
•En la cima del la jerarquía se encuentran los registros, de velocidad similar a la de la unidad de proce-
so, pero grandes y consumidores de una importante cantidad de energía de alimentación.
•Al fondo de la jerarquía aparecen las memorias secundarias y los elementos de almacenamiento “off
line” en los que el costo por bit almacenado es bajo en términos monetarios y de energía consumida,
pero cuyo tiempo de acceso es muy alto comparado con el de los registros.
•cuando se desciende en la jerarquía ocurre:
Disminuye el costo por bit
Aumenta la capacidad
Aumenta el tiempo de acceso
Disminuye la frecuencia de accesos a la memoria por parte del procesador

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 103
Arquitectura y Organización de Computadoras
TEORIA

Características
• Duración de la información:
Memorias volátiles: RAM
Memorias no volátiles: discos, cintas
Memorias permanentes: ROM, EPROM
• Modo de acceso:
Acceso por palabra: memoria principal
Acceso por bloque: discos, caché
• Velocidad
– Memorias semiconductoras:
– Tiempo de acceso: tiempo máximo que transcurre desde que se inicia la operación de lect/escritura
hasta obtener/almacenar el dato.
– Tiempo de ciclo: tiempo mínimo que tiene que haber entre dos operaciones sucesivas sobre la memo-
ria tciclo > tacceso
• Memorias magnéticas:
– Tiempo de acceso: tiempo de posicionar el cabezal + tiempo de latencia (+ tiempo de lectura)
– Velocidad de transferencia: bytes/seg
• Métodos de acceso
Acceso aleatorio: el tiempo para acceder a una locación dada es independiente de la secuencia de acce-
sos anteriores y es constante. Ejemplo la memoria principal.
Acceso secuencial: el acceso debe hacerse en una secuencia lineal específica. Variable. Ejemplo son las
unidades de cinta.
• Métodos de acceso
Acceso directo: los bloques ó registros individuales tienen una dirección única que se basa en la localiza-
ción física. Variable. Ejemplo los discos magnéticos.
Acceso asociativo: memoria caché
Memoria de Acceso Aleatorio
• El término aleatoria significa que puede accederse a cualquier celda de memoria en el mismo tiempo,
independientemente de su posición en la estructura de la memoria.
• En la figura muestra el comportamiento funcional de una celda de memoria RAM utilizada en una com-
putadora típica.
• Los circuitos de memoria de acceso aleatorio basados en flip flops, se conocen como circuitos de me-
moria estática (SRAM, static RAM), debido a que el contenido de cada posición de la memoria se mantie-
ne en tanto se mantenga la alimentación eléctrica del circuito integrado.

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 104
Arquitectura y Organización de Computadoras
TEORIA

MEMORIA PRINCIPAL SEMICONDUCTORA


TIPOS DE MEMORIAS SEMICONDUCTORAS DE ACCESO ALEATORIO

Tipos de Memoria Categoría Mecanismo de Borrado Mecanis Volatilidad


mo de
Escritura
Memoria de Acceso Directo Memoria de Eléctricamente, a nivel de Eléctricam Volatil
(RAM) lectura-escritura byte. ente
Memoria de Solo Lectura (ROM) Memoria de No es posible borrar la Máscaras No volátil
ROM Programable (PROM) Solo Lectura memoria Eléctricam
PROM borrable (EPROM) Memoria Eléctricamente, a nivel de ente
mayormente de byte.
PROM eléctricamente borrable lectura Eléctricamente, a nivel de
(EEPROM) byte.
Memoria Flash Eléctricamente, a nivel de
bloques.

MEMORIA CACHE
PRINCIPIOS BÁSICOS
• El objetivo de la memoria cache es lograr que la velocidad de la memoria sea los más rápida posible
• Hay una memoria principal relativamente grande y más lenta, junto con una memoria cache más pe-
queña y rápida
• La cache contiene una copia de partes de la memoria principal
• Cuando el procesador intenta leer una palabra de memoria, se hace una comprobación para determi-
nar si la palabra está en la cache.
• Si es así, se entrega dicha palabra al procesador, Si no, un bloque de memoria principal, consistente
en un cierto número de palabras, se transfiere a la cache y, después, la palabra es entregada al proce-
sador.

MEMO-
RIAS
EXTER-
NAS
• DIS-
COS
MAG-
NETI-
COS
1. DIS-
CO RÍ-
GIDO
2.
DISKE-
TTE
3. PEN
DRIVE

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 105
Arquitectura y Organización de Computadoras
TEORIA

4. CINTA MAGNÉTICA
• MEMORIA OPTICA
1. CD-ROM
2. DVD
Discos magnéticos
• Platos
• Superficies de Al cubiertos con óxido de
Fe, material magnético.
- Ahora también se usa vidrio
· Se dilata menos que el Al.
· Superficie más uniforme.
· Reducción de defectos superficiales
Discos magnéticos
• Principios físicos
• Pequeñas áreas del disco son magnetizadas en diferentes direcciones por un transductor.
• Debe existir un movimiento relativo entre disco y el transductor al momento de la lectura/escritura.

. Cambios en la dirección de magnetización es lo que se detecta en la lectura

Mecánica de
lectura y es-
critura
• Lectura y
escritura
realizadas a
través de
una cabeza
transductora
(bobina).
• Durante
lectura/es-
critura, la
cabeza es estacionaria y el plato gira.
• Se almacenan ceros y unos por medio de la magnetización de pequeñas áreas del material.
Organización de los datos
_ Anillos concéntricos: pistas ó tracks.
· Espacios (gaps) entre pistas
· Reducir gaps para aumentar capacidad
· Mismo No de bits por pista
· Velocidad angular constante
_ Pistas divididas en sectores
_ Mínimo tamaño de bloque: sector
_ Bloque: más de un sector (cluster)
Pista y Sector

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 106
Arquitectura y Organización de Computadoras
TEORIA

•Un número entero de sectores se graban en una pista.


•El sector es la unidad de transferencia de/hacia el disco.
Sector típico
Un sector

10 bytes 512 bytes 12 bytes


Encabezado Código para errores Datos

_Sucesión o serie de bits divididos en campos


•Encabezado con información para sincronizar la lectura identificar el sector.
•Datos con longitud en bytes expresada usualmente como potencia de 2.
•Código para errores con información para detectar y/o corregir posibles errores.

Características posibles
_Cabeza fija (raro) o móvil.
_Disco removible o fijo.
_Simple ó doble lado.
_Uno ó múltiples platos.
_Mecanismo de cabeza:
· Contacto (Floppy)
· Distancia Fija
· Aerodinámica (Winchester)
Platos y cabezas

Ci-
lin-
dros

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 107
Arquitectura y Organización de Computadoras
TEORIA

Estructura de un disco
Múltiples platos
_Una cabeza por cara
_Todas las cabezas se mueven solidariamente
_Pistas alineadas en cada plato forman cilindros
_Datos son almacenados por cilindros
· Reduce movimientos de cabezas
· Aumenta velocidad de respuesta
Velocidad de giro del disco
Un bit más cercano al centro gira más lento que un bit en la periferia.
Los bits (sectores) ocupan distinto espacio en diferentes pistas.
_ En lectura o escritura se requiere sólo mover la cabeza hasta una pista y esperar un sector.
_ Determina la velocidad de transferencia de datos (bits/seg).
Tiempos
_Tiempo de seek (búsqueda) Mover al cilindro (o pista) correcto
_Tiempo de latencia (por rotación) Esperar que el sector “pase” por debajo de la cabeza
_Tiempo de Acceso: T.seek + T.latencia
_Tiempo Total: T. de Acceso + T. de Transferencia de datos
Capacidad del disco: cálculo

Capacidad = Bytes × Sector × Pistas


número de Superficies

Sector pistas Superficies

Se desperdicia espacio en pistas externas.


Hoy en día se usan zonas para incrementar la capacidad
_c/zona tiene fija la cantidad de bits/pista.
_requieren circuitos más complejos.
Aumento de capacidad

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 108
Arquitectura y Organización de Computadoras
TEORIA

Grabación en CAV Grabación en zonas


Formato
•Define cantidad, tamaño y función de distintos campos en cada pista
• Hardware: tamaño de sector fijo por marcas físicas.
• Software: tamaño de sector determinado por S.O.
El objetivo de los programadores es acceder a cantidades ilimitadas de memoria rápida .
Solución Práctica: Jerarquía de memoria
Consiste en distribuir la información en diversos dispositivos de memoria, de forma que cerca del proce-
sador se ubique el más rápido (de menor capacidad) y lejos el dispositivo más lento y de mayor capaci-
dad (contiene la totalidad del código y los datos de un programa).
Objetivo: Que la velocidad del sistema sea, aproximadamente, la del dispositivo más rápido (con un cos-
to adecuado)
 Los datos almacenados en un nivel han de estar almacenados en los niveles inferiores.
 Cada nivel es más pequeño, más rápido y más caro que el anterior.
 Existe una creciente diferencia entre la velocidad del procesador y la memoria.
Aspectos básicos.
Principio de localidad de programas y datos
 Localidad temporal: los elementos (datos o instrucciones) accedidos recientemente, también lo
serán en un futuro próximo.
 Localidad espacial: los elementos cuyas direcciones están cercanas tienden a ser referenciados.
 Aspectos de costo/prestaciones:
◦ Cuanto más pequeñas → más rápidas
◦ Cuanto más rápidas → más caras
 Memoria Cache
 Cantidad pequeña de memoria rápida.
 Se ubica entre la memoria principal y la CPU.
 Puede localizarse en un chip o en el módulo de la CPU.
 Operación de la caché:
 LA CPU solicita contenido de 1 dirección de memoria.
 LA cache ¿tiene ese dato?
◦ Si es así, la obtiene de la caché (rápidamente).
◦ Si no está, se lee el bloque que contiene esa dirección desde la memoria principal y copia
en la cache.
▪ Después, la caché entrega el dato requerido a la CPU.
 LA cache incluye etiquetas para identificar que bloque de la memoria está en cada una de sus
líneas
 Conceptos básicos:
 Acierto (hit): el procesador encuentra en la caché el dato solicitado.
 Fallo (miss): el procesador no encuentra en la cache el dato solicitado.
◦ Un bloque (línea de caché) que contiene la palabra accedida se copia de la memoria princi-
pal a la caché.
◦ Tiempo para servir un fallo: Depende de la latencia y ancho de banda de la memoria princi-
pal.
▪ Latencia: tiempo necesario para recuperar la primera palabra del bloque.
▪ Ancho de banda: velocidad con que se sirve el resto del bloque.
◦ Los fallos de caché se gestionan mediante hardware y causan que el procesador se detenga
hasta que el dato esté disponible.
 Diseño de la caché:
◦ Tamaño
◦ Función de correspondencia
◦ Algoritmo de sustitución
◦ Política de escritura
◦ Tamaño de línea
◦ Número de caches
◦ Gestión de la memoria.
◦ Mono-programación
▪ La memoria se divide en dos partes:
▪ Una para el sistema operativo (monitor)
▪ Otra para el programa en ejecución (usuario)
◦ Multiprogramación
▪ La parte del “usuario” debe subdividirse para dar cabida a los distintos procesos
▪ La tarea de subdivisión la realiza dinámicamente el sistema operativo, y se conoce
como gestión de memoria.
◦ Intercambio (swapping)
◦ Problema: La E/S es tan lenta comparada con la CPU que aun en sistemas de multiprogra-
mación, la CPU puede estar inactiva la mayor parte del tiempo.
◦ Soluciones:

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 109
Arquitectura y Organización de Computadoras
TEORIA

▪ Incrementar la memoria principal


 Es caro
 Mas memoria = programas más grandes.
▪ Intercambios
 ¿Qué es el intercambio?
 Se tiene una cola (queue) a largo plazo de solicitudes de proceso en el disco.
 Los procesos se traen a la memoria principal a medida que hay espacio disponible.
 A medida que un proceso se completa se mueve fuera de la memoria principal.
 Puede pasar que ninguno de los procesos de memoria esté listo (p. ej, todos están esperando
una operación de E/S)
◦ En lugar de estar parado, el procesador intercambia uno de esos procesos, ubicándolo en el
disco en una cola intermedia.
◦ Trae entonces otro proceso de la cola de largo plazo.
◦ Pero el intercambio es otro proceso de E/S.
 Particiones
 Consiste en dividir la memoria en secciones para ubicar los procesos (incluyendo el Sistema
Operativo)
 Particiones de tamaño fijo
◦ Pueden no ser del mismo tamaño
◦ Cuando un proceso se introduce en la memoria, se unica en la partición más pequeña que
puede incluirlo.
◦ Se desperdicia memoria.
◦ Una opción más eficiente consiste en usar particiones de tamaño variable.
◦ Particiones de tamaño variable:
◦ Cada proceso se introduce en la memoria, se le asigna el espacio exacto que necesita.
◦ Esto deja al final de la memoria un hueco, demasiado pequeño para otro proceso.
▪ Un solo hueco, menos derroche.
◦ Cuando todos los procesos están en espera, el procesador saca uno de memoria y carga
otro desde el disco.
◦ El nuevo proceso puede ser más pequeño que el anterior.
◦ Queda otro hueco.
◦ Eventualmente, puede haber un gran número de huecos, empeorando la utilización de la
memoria (fragmentación).
◦ Soluciones:
◦ Fusión. Juntar huecos adyacentes en un hueco mayor.
◦ - Compactación. Periódicamente recorrer la memoria y mover los huevos a un bloque libre
(defragmentación de disco).

 Relocalización:
 Dificilmente un proceso se cargará en la misma posición de memoria cada vez que se intercam-
bia.
 Las instrucciones contienen direcciones:
◦ Direcciones de datos
◦ Direcciones de instrucciones
 Estas direcciones cambian cada vez que el proceso se intercambia. Se distinguen:
 Direcciones lógicas – relativas al comienzo del programa
 Direcciones físicas – posición actual en la memoria principal.
 La conversión es automática al intercambiar procesos: dirección física = dirección lógica + posi-
ción de comienzo actual del proceso (dirección base).
 Paginación
 Se divide la memoria en pequeños trozos iguales y de tamaño fijo – frames (marcos).
 Se divide los programas (procesos) en pequeños trozos iguales – pages (páginas).
 Se asignan el número requerido de frames a un proceso.
 El sistema operativo mantiene una lista de frames libres.
 Un proceso no requiere que sus páginas se alojen en frames contiguos.
 Se usa una tabla de páginas que indica en que frame se aloja cada página del proceso.
 Memoria Virtual
 Paginación por demanda
◦ No requiere que todas las páginas de un proceso esten alojadas en la memoria
◦ Cada página se introduce en la memoria sólo cuando es requerida.
 Fallo de página
◦ La página requerida no está en la memoria
◦ El sistema operativo debe cargarla
◦ Puede ser necesario sacar alguna página para hacer espacio.
◦ La página a sacar se selecciona (predicción) en base a su historia reciente (las menos utili-
zadas).
 Hiperpaginación (Thrashing)

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 110
Arquitectura y Organización de Computadoras
TEORIA

 Si hay muchos procesos en una memoria pequeña:


 El sistema operativo pasa mucho tiempo intercambiando páginas, en lugar de ejecutar instruc-
ciones.
 El led del disco está encendido todo el tiempo
 Soluciones:
◦ Buenos algoritmos de reemplazo de páginas
◦ Reducir el número de procesos en ejecución
◦ Instalar más memoria.
 Ventajas
 No es necesario cargar todo un proceso en memoria para que corra.
 Solo se cargan las páginas necesarias.
 Por lo tanto, se puede correr un proceso mayor que toda la memoria principal.
 LA memoria principal es llamada memoria real.
 Sin embargo, el usuario o programador percibe una memoria mucho mayor (la que hay disponi-
ble en disco, que se denomina memoria virtual)
 Segmentación:
 La paginación no es visible al programador.
 La segmentación es visible al programador.
 Usualmente, el programador o el sistema operativo asignarán programas y datos a segmentos
distintos.
 Pueden haber segmentos de programa distintos para varios tipos de programas y también dis-
tintos segmentos de datos, pudiendo asignarse a cada uno derechos de acceso y uso.
 Ventajas de la segmentación:
 Simplifica el manejo de estructuras de datos crecientes
 Permite modificar los programas y recompilarlos independientemente, sin que sea necesario
volver a enlazarlos y recargar el conjunto entero.
 Permite que varios procesos compartan segmentos.
 Se facilita la protección
 Algunos sistemas combinan la segmentación con la paginación.

MICROOPERACIONES

Hemos visto que la operación de una computadora, al ejecutar un programa, consiste de una secuencia
de ciclos de instrucciones, con una instrucción de máquina por ciclo. Por supuesto, nosotros debemos
recordar que esta secuencia de ciclos de instrucciones no es necesariamente la misma que la secuencia
escrita de las instrucciones que compone el programa, debido a la existencia de instrucciones de
bifurcación. Lo que nos estamos refiriendo es al tiempo de secuencia ejecución de las instrucciones.
Hemos visto además que cada ciclo de instrucción está compuesto de varias unidades más pequeñas.
Una subdivisión que encontramos es la captación, indirecto, ejecución, e interrupción, con única
captación y se ejecutan los ciclos siempre en secuencia.
En nuestra discusión sobre el proceso de encauzamiento, nosotros empezamos viendo que se puede
hacer una descomposición adicional. En realidad, veremos que cada uno de los ciclos más pequeños
suponen una serie de pasos y cada uno de los registros de procesador. Nos referiremos a éstos pasos
como las microoperaciones. El prefijo micro se refiere al hecho de que cada paso es simple y realiza
muy poco. La figura 15.1 muestra la relación entre el varios conceptos que hemos estado discutiendo.
Para resumir, la ejecución de un programa consiste de la ejecución consecutiva de las instrucciones.
Cada instrucción se ejecuta durante un ciclo de instrucción compuesto de los subciclos más cortos ( por
ejemplo, captación, indirecto, ejecución, interrupción ). La ejecución de cada subciclo supone de una o
más operaciones cortas, es decir, las microoperaciones.
Las microoperaciones son las operaciones funcionales, o atómicas de un procesador. En esta sección,
examinaremos la microoperaciones para ganar una comprensión.

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 111
Arquitectura y Organización de Computadoras
TEORIA

Los eventos de cualquier ciclo de instrucción se pueden describir como una secuencia de tales
microoperaciones.

El ciclo de captación
Empezamos observando al ciclo de captación, que ocurre al comienzo de cada instrucción por un ciclo y
porque causan una instrucción que se trae de la memoria.
• Registro de dirección a memoria (MAR): Están conectados a las líneas de dirección del sistema
ómnibus. Especifica la dirección en memoria para una operación de lectura o escritura.
• El registro de almacenamiento temporal (MBR): Están conectados a la línea de datos del ómnibus
de sistema. Contiene el valor para ser guardado en memoria o el último valor lee de memoria.
• El contador de instrucción (PC): Contiene la dirección de la instrucción próxima a ser captada.
• Registro de instrucción (IR): Contiene la última instrucción captada.
A el comienzo del ciclo de captación, la dirección de la instrucción próxima para ejecutarse está en el
contador de programa (PC); en este caso, la dirección es 1100100. El primer paso es para mover esa
dirección al registro de dirección (MAR) de memoria porque esto solo registra una línea de dirección del
ómnibus de sistema. El segundo paso es introducir la instrucción. La dirección deseada (en el MAR) sera
situada en el bus de direcciones

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 112
Arquitectura y Organización de Computadoras
TEORIA

, la unidad de control emite un comando READ en el bus de control, y el resultado aparece en el bus de
datos y se copia en el área de registros de almacenamiento temporal en memoria (MBR). También
necesitamos incrementar el PC por la longitud de instrucción para prepararlo para la instrucción próxima.
Porque estas dos acciones ( leer la palabra de memoria, incrementar la PC ) hace que no interfiera
mutuamente, nosotros le podemos hacer simultáneamente para salvar tiempo. El tercer paso es mover
los contenidos del MBR al registro de instrucción (IR). Esto libera al MBR para el uso durante un posible
ciclo indirecto.
Así, el ciclo de captación simple en realidad consiste de tres pasos y cuatro microoperaciones.
Cada microoperación supone el movimiento de datos en o fuera de un registro. Mientras que estos
movimientos no interfieran con uno a otro, se pueden realizar varios movimientos durante los pasos
mencionados, el tiempo se economiza. Simbólicamente, podemos escribir esto en secuencia de eventos
como las siguientes:
t1 : MAR <- (PC)
t2 : MBR <- Memoria
PC <- PC + I
t3 : IR <- (MBR)

donde I la longitud de instrucción. Necesitamos hacer varios comentarios sobre esta secuencia.
Asumimos que un reloj está disponible y que emite regularmente impulsos de reloj espaciados. Cada
impulso de reloj define una unidad de tiempo. Así, para que cronometre todas las unidades con igualdad
de duración. Cada microoperación se puede ejecutarse dentro de una unidad sencilla de tiempo. La
anotación representa las unidades de tiempo sucesivas. De palabra, tenemos
• Primera unidad de tiempo (t1): Se mueve el contenidos del PC a MAR.
• Segunda unidad de tiempo (t2): Se mueven los contenidos de la dirección de memoria
especificadas por MAR al MBR. Incrementa por I los contenidos del PC.
• Tercera unidad de tiempo (t3): Mueve contenidos de MBR a IR.

Note que las segundas y terceras microoperaciones tienen lugar durante la segunda unidad de tiempo.
La tercer microoperación pudo haber sido agrupado con los cuartos sin afectar la operación de
captación:
t1 : MAR ← (PC)
t2 : MBR ← Memoria
t3 : PC ← PC + I
IR ← (MBR)

Las agrupaciones de las microoperaciones deben seguir dos reglamentos simples:


1. La secuencia apropiada de eventos se debe seguir. Así (MAR ← (PC)) debe estar antes que (MBR ←
Memoria) porque la operación de leer de memoria hace uso de la dirección en el MAR.
2. Los conflictos se deben evitar. Uno no debe intentar leer y escribir en el mismo registro en una unidad
de tiempo, porque los resultados podrían ser impredecibles.
Por ejemplo, las microoperaciones (MBR ← Memoria) y (IR ← (MBR)) no pueden ejecutarse durante
la misma unidad de tiempo.
Un aporte final valioso es que una de las microoperaciones suponen un adición. Para evitar la duplicación
del sistema de circuitos, esta adición pudo ejecutarse por el ALU. El uso del ALU puede suponer
microoperaciones adicionales, en dependencia de la funcionalidad del ALU y la organización del
procesador.

El ciclo indirecto
Una vez una instrucción es captada, el próximo paso es llevar operandos de la fuente. Continuando con
nuestro ejemplo simple, nos deja por sabido que en un formato de instrucción de una dirección, se
permite el direccionamiento directo e indirecto. Si la instrucción especifica una dirección indirecta,
entonces el ciclo de ejecución debe preceder del ciclo de captación. Los flujos de datos difieren
en algo de ese indicación.
t1 : MAR ← (IR (dirección))
t2 : MBR ← Memoria
t3 : IR (dirección) ← (MBR(Direccion))

El campo de dirección de la instrucción se transferencia para el MAR. Esto se usa entonces para captar la
dirección del operando. Finalmente, el campo de dirección del IR se actualiza mediante el MBR, de modo
que éste contiene ahora un rango directo antes que una dirección indirecta.
El IR está ahora en el mismo estado como si el direccionamiento indirecto no ha sido usado, y está listo
para el ciclo de ejecución.

El ciclo de Interrupción
A la terminación del ciclo de ejecución, se hace una prueba para determinar si se produjo cualquier
interrupción habilitada. Si es así, ocurre lo que se llama el ciclo de interrupciones. La naturaleza de esto
es que el ciclo varia enormemente de una máquina a otra. Presentamos una secuencia muy simple de
eventos Tenemos:
t1 : MBR ← (PC)
t2 : MAR ← Guardar_direccion

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 113
Arquitectura y Organización de Computadoras
TEORIA

PC ← Rutina_direccion
t3 : Memoria ← (MBR)

En el primer paso, los contenidos de la PC se transfieren al MBR, de modo que estos puedan ser
guardados por el retorno de las interrupciones. Entonces el MAR está cargado con la dirección y se
ahorran los contenidos de la PC, y la PC se carga con la dirección del principio de la rutina del proceso de
interrupciones. Estas dos acciones pueden ser microoperaciones sencillas. Sin embargo, la mayor parte
de los procesadores proporcionan los tipos múltiples y/o niveles de interrupciones, esto puede tener una
o más microoperaciones adicionales para obtener el guardar_direccion y la rutina_direccion antes que
se puedan transferir al MAR y al PC, respectivamente. En todo caso, una vez hecho esto, el paso final es
almacenar el MBR, que contiene el valor viejo del PC, en la memoria. El procesador está listo para
comenzar el ciclo de instrucción próximo.

El ciclo de Ejecución
El ciclo de captación, indirecto,y de interrupción son simples y fáciles de predecir. Cada uno supone una
secuencia pequeña y fijada de las microoperaciones y, en cada caso, las mismas microoperaciones se
repetirán cada vez.
Este no es verdadero un ciclo de ejecución debido a la variedad de códigos de operación, allí están varias
secuencias diferentes de las microoperaciones que puede ocurrir.
Permítanos considerar varios ejemplos hipotéticos.
En primer lugar, considere una instrucción añadida:
ADD R1, X
que añaden contenidos de la dirección X para registrar R1. La secuencia siguiente de las
microoperaciones que podrían ocurrir son :
t1 : MAR ← (IR (dirección))
t2 : MBR ← Memoria
t3 : R1 ← (R1) + (MBR)
Empezamos con el IR conteniendo la instrucción ADD. En el primer paso, la porción de dirección del IR
se carga en el MAR. Entonces se lee la dirección de memoria referenciada. Finalmente, los contenidos de
R1 y MBR son sumados por la ALU. De nuevo, esto es un ejemplo simplificado. Las microoperaciones
adicionales pueden necesitar extraer la referencia del registro del IR y para montar las entradas o
salidas de la ALU en algunos registros intermedios.
Veamos dos ejemplos más complejos. Una instrucción común es el incremento y saltar si cero:
ISZ X
El contenido de la dirección X se incrementa en 1. Si el resultado es 0, salta a la instrucción próxima.
Una posible secuencia de las microoperaciones es
t1 : MAR <- (IR (dirección))
t2 : MBR <- Memoria
t3 : MBR <- (MBR) + 1
t4 : Memoria <- (MBR)
IF ((MBR) = 0) THEN (PC <- (PC) + I )

Se introdujo una nueva característica aquí, que es la acción condicional. La PC se incrementa si (MBR) =
0 . Esta prueba y acción se puede poner en práctica como una microoperación. Note también que esta
microoperación se puede ejecutarse durante la misma unidad de tiempo durante el cual el valor
actualizado en MBR es guardado de vuelta a la memoria.
Finalmente, se considera una subrutina de llamada a la instrucción. Como un ejemplo, se considera una
instrucción de salto y guardado de dirección:
BSA X

La dirección de la instrucción que sigue a la instrucción de BSA se guarda en la dirección X, y la


ejecución continúa a la dirección X + 1 . La dirección salvada se usarán más tarde para el retorno. Esta
es una técnica directa para proporcionar llamadas de subrutina. Bastan las siguientes microoperaciones:
t1 : MAR <- (IR (dirección))
MBR <- PC
t2 : PC <- (IR (direccion))
t3 : Memoria <- (MBR)
t4 : PC <- (PC) + I

La dirección en la PC al principio de la instrucción es la dirección del próximo instrucción en la secuencia.


Esto se ahorra a la dirección designada en el IR. El posterior la dirección se incrementa también para
proporcionar la dirección de la instrucción para la instrucción próxima ciclo.

El ciclo de instrucción

Hemos visto que cada fase del ciclo de instrucción se puede descomponer en una secuencia de
microoperaciones elementales. En nuestro ejemplo, existe una secuencia para cada ciclo de captación,
indirecto, de interrupción, y, para el ciclo de ejecución, existe una secuencia de microoperaciones para
cada código de operación.

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 114
Arquitectura y Organización de Computadoras
TEORIA

Para completar la pintura, necesitamos unir las secuencias de las microoperaciones en conjunto.
Asumimos que un nuevo registro de 2 bits llama al código de ciclo de instrucción (ICC). El ICC designa el
estado del procesador en los términos de que porción del ciclo si está en:
00: Captación
01: Indirecto
10: Ejecutar
11: Interrumpir

Al final de cada uno de los de cuatro tiempos, el ICC se coloca apropiadamente. El ciclo indirecto sigue
siempre después del ciclo de ejecución. El ciclo de interrupciones está siempre después del ciclo de
captación. Para ambos ciclos, tanto para captación como la ejecución, el próximo el ciclo depende del
estado del sistema.
Así, el diagrama de flujo de la figura 15.3 define la secuencia completa de las microoperaciones,
dependiendo sólo en la secuencia de instrucción y el modelo de interrupciones. Por supuesto, esto es un
ejemplo simplificado. El diagrama de flujo para un procesador real es más complejo. En todo caso,
hemos alcanzado el punto en nuestra discusión en que la operación del procesador está definida como el
desempeño de una secuencia de los microoperaciones. Podemos considerar ahora cómo la unidad de
control que causa esta secuencia para realizar estas acciones.

CONTROL DEL PROCESADOR

Requisitos funcionales

A causa de nuestro análisis en la sección precedente, hemos descompuesto el comportamiento o


funcionamiento del procesador en operaciones elementales, las llamadas microoperaciones.
Reduciendo la operación del procesador a la mayor parte del nivel fundamental, somos capaces de
definir exactamente lo que la unidad de control debe causar para que sucedan ciertos eventos. Así,
nosotros podemos definir los requisitos funcionales para la unidad de control: esas funciones hacen que
la unidad de control pueda ejecutarse. Una definición de estos requisitos funcionales es la base para el
diseño y ejecución de la unidad de control.
Con la información a mano, el proceso de los siguientes tres pasos lleva a una caracterización de la
unidad de control:
1. Definir los elementos básicos del procesador.
2. Describir las microoperaciones que el procesador ejecutará.
3. Determinar las funciones que la unidad de control deba ejecutar para causar la ejecución de las
microoperaciones.

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 115
Arquitectura y Organización de Computadoras
TEORIA

Hemos ejecutado ya los pasos 1 y 2. En primer lugar, los elementos funcionales básicos del procesador
son lo siguientes:
• ALU
• Registros
• Caminos de datos internos
• Caminos de datos externos
• Unidad de control

Cierto pensamiento deba convencerle a usted que esto es una lista completa. La ALU es la esencia
funcional de la computadora. Los registros se usan solamente para almacenar datos internos para el
procesador. Ciertos registros contienen la información de estado que necesitan manejar una serie de
instrucciones ( por ejemplo, una palabra de estado del programa ). Otros contienen datos que se cargan
o se obtienen de la ALU, memoria, y módulos de E/S. Los caminos internos de datos se usan para mover
datos entre registros y entre registros y la ALU. Los caminos externos de datos que conectan la memoria
y los módulos de E/S, a menudo se realiza mediante un ómnibus de sistema. La unidad de control causa
las operaciones que suceden dentro del procesador. La ejecución de un programa consiste de
operaciones suponiendo estos elementos de procesador.
Como hemos visto, estas operaciones consisten de una secuencia de las microoperaciones. Sobre la
revisión, el lector debe ver que todas las microoperaciones desembocan en una de las categorías
siguientes:
• Transferencia de datos de un registro a otro.
• Transferencia de datos de un registro a una interfaz externa (por ejemplo, el bus de sistema).
• Transferencia de datos de una interfaz externa a un registro.
• Ejecución una operación aritmética o lógica, usando los registros para entrada y salida.

Todas las microoperaciones necesitan ejecutar un ciclo de instrucción, incluyendo todas las
microoperaciones para ejecutar cada instrucción en el conjunto de instrucciones, incluidas en uno de
estas categorías.
Nosotros ahora podemos ser algo más explícitos sobre la vía en las funciones de unidad de control. .La
unidad de control ejecuta dos tareas básicas:
• Secuencia: La unidad de control causa que el procesador coloque completamente una serie de
microoperaciones en la secuencia apropiada, basada en el programa a ser ejecutado.
• Ejecución: La unidad de control causa que cada microoperación se ejecute.

Señales de control

Nosotros hemos definido los elementos que componen el procesador ( ALU, registros, los caminos de
datos) y las microoperaciones que se ejecutan. La unidad de control ejecuta esta función, que debe
tener entradas que permiten determinar el estado del sistema y las salidas que permiten controlar el
comportamiento del sistema. Éstos son las especificaciones de las partes externas de la unidad de
control. Internamente, la unidad de control debe tener la lógica requerida para ejecutar sus funciones de
secuencia y ejecución.

La figura 15.4 es una unidad de modelo general, mostrando todo de estas entradas y salidas. Las
entradas son:
• Reloj: Así es cómo la unidad de control "mantiene la hora". La unidad de control causa una
microoperación ( o un conjunto de microoperaciones simultáneas ) que se ejecutan con cada impulso de
reloj. Esto es a veces se denomina como el tiempo de ciclo de procesador, o el tiempo de ciclo de
reloj.
• Registro de instrucción: El código de operación y el direccionamiento de la instrucción actual se usa
para determinar que microoperaciones se ejecutan durante el ciclo de ejecución.

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 116
Arquitectura y Organización de Computadoras
TEORIA

• Banderas: La unidad de control necesitan de los flags (banderas) para determinar el estado del
procesador y el resultado previo de operaciones de la ALU. Por ejemplo, para el incremento y salto si es
cero (ISZ), la unidad de control incrementará el PC si se pone la bandera de cero.
• Señales de control desde el bus de control: La porción de bus de control del ómnibus de sistema
proporciona señales a la unidad de control.
Las salidas son las siguientes:
• Señales de control dentro del procesador: Éstos son de dos tipos: aquellos que causan datos para
moverse de un registro para otro, y aquellos que activan las funciones específicas de la ALU.
• Señales de control al bus de control: Éstos también son de dos tipos: señales de control hacia
memoria, y de señales de control hacia los módulos de E/S.
Se usan tres tipos de señales de control: aquellas que activan una función de ALU, aquellos que activan
un camino de datos, y aquellas que son las señales en el ómnibus externo de sistema o otro enlace
externo. Todas estas señales son aplicadas finalmente directamente como entradas binarias a puertas
lógicas individuales.
Consideramos de nuevo el ciclo de captación para ver cómo la unidad de control mantiene control. Las
subsistencias de unidad de control están en alineación de donde está en el ciclo de instrucción. A un
dado punto, sabe que el ciclo de captación se ejecuta después. El primer paso es transferenciar los
contenidos de la PC a la unidad de control MAR. El hacen esto activando el control la señal que abre las
puertas entre los bits de la PC y los bits del MAR. El paso próximo es leer una palabra de memoria en el
MBR e incrementar el contador del PC. La unidad hace esto enviando las señales siguientes de control
simultáneamente:
• una señal de control que abre las puertas, permitiendo los contenidos del MAR en el bus de direcciones
• un control leído de memoria que comunica en el bus de control
• una señal de control que abre las puertas, permitiendo los contenidos del bus de datos para esté
guardado en el MBR
• Controle las señales a la lógica que añade 1 a los contenidos de la PC y almacene el resultado de
vuelta a la PC
Siguiendo este, la unidad de control envía una señal de control que abre puertas entre el MBR y el IR.
Esto completa el ciclo de captación si no fuera por una cosa: La unidad de control debe decidir si
después ejecutar un ciclo indirecto o un ciclo de ejecución. Para decidir esto, examina el IR para ver si
se hace una referencia de memoria indirecta. Los ciclos indirectos y directos trabajan similarmente. Para
el ciclo de ejecución, la unidad de control empieza examinando el código de operación y, basándose en
eso, decide que secuencia de las microoperaciones para ejecutarse para el ciclo de ejecución.

Un ejemplo de Señales de control


Para ilustrar el funcionamiento de la unidad de control, dejenos examinar un ejemplo simple.
La figura 15.5 ilustra el ejemplo. Esto es un procesador simple con un acumulador sencillo

Las señales de caminos de datos de figura 15.5 y de control (ACTINIO)


Los caminos de control para las señales que vienen de la unidad de control no se muestran, pero las
terminaciones de comunicación del control se muestra y se indica por un círculo. La unidad de control
recibe entradas del reloj, del registro de instrucción, y de las banderas. Con cada ritmo de reloj, la
unidad de control lee todo de sus entradas y emite un conjunto de comunicaciones de control. Las
señales de control van a tres destinos separados:

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 117
Arquitectura y Organización de Computadoras
TEORIA

• Caminos de datos: La unidad de control controla el flujo interno de datos. Por ejemplo, en la
captación de instrucción, los contenidos del registro de área de almacenamiento temporal en memoria se
transferencian al registro de instrucción. Para cada camino controlado, existe una puerta ( indicado por
un círculo en la figura ), una señal de control del control unidad temporalmente abre la puerta para dejar
pasar los datos.
• ALU: La unidad de control controla la operación del ALU por un conjunto de señales de control. Estas
señales activan varios controles lógicos para cuidar las puertas Y dentro el ALU.
• Ómnibus de sistema: La unidad de control controla los datos enviados desde y hacia al exterior en
las líneas de control de el sistema que viajan en el ómnibus ( por ejempo, la memoria READ ). La unidad
de control debe mantener el conocimiento de donde está en la instrucción ciclo. Usa este conocimiento,
y lee todo de sus entradas, la unidad de control emite una secuencia de señales de control que puede
causar las microoperaciones. Usa los pulsos de reloj para cronometrar la secuencia de los eventos,
permitiendo el tiempo entre eventos para los distintos niveles.
Tabla Micro operaciones y señales de control.
Micro operaciones Señales de control
Activas
Captación: t1 : MAR ← (PC) C2
t2 : MBR ← Memoria C 5, CR
PC ← (PC) + 1
t3 : IR ← (MBR) C4
Indirecto: t1 : MAR ← (IR (direccion)) C8
t2 : MBR ← Memoria C 5 , CR
t3 : IR(direccion) ← (MBR (direccion)) C4
Interrupción: t1 : MBR ← (PC) C1
t2 : MAR ← Guardar-direccion
PC ← Rutina-direccion
t3 : IR(direccion) ← (MBR (direccion)) C 12, CW
CR = Señal de control READ (Lectura) para el sistema de bus
CW = Señal de control WRITE (Escritura) para el sistema de bus

Esto vale ponderando la naturaleza mínima de la unidad de control. La unidad de control es el motor que
corre la computadora entera. Esto hace que esté basado sólo en el conocimiento las instrucciones para
ejecutarse y la naturaleza de los resultados de la aritmética y las operaciones lógicas ( por ejemplo, el
positivo, overflow, etc.). Nunca llega a ver los datos elaborados o los resultados reales que se
produjeron. Y controla todos los datos con las señales de control dentro del procesador y algunas
señales de control al sistema ómnibus.

Organización de procesador interna


La complejidad de este tipo de la organización debe ser clara. Más típicamente, algunos en cierta medida
el arreglo de ómnibus interno. Usando un bus de procesador interno, fse puede volver a arreglar como
un bus interno sencillo que une al ALU y al procesador.

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 118
Arquitectura y Organización de Computadoras
TEORIA

Las compuertas y señales de control se utilizan para el movimiento de datos en y del ómnibus de cada
registro. Las señales de control adicionales controlan la transferencia de datos de y hacia el sistema
(partes externas) transporte en el ómnibus y la operación del ALU. Se necesitan dos nuevos registros
para la operación apropiada del ALU. Cuando se da una operación, suponiendo dos operandos que se
ejecutan, uno se puede obtenerse del mismo ómnibus interno, pero el otro se debe obtenerse de otra
fuente. El AC puede ser usado para este propósito, pero este limita la flexibilidad del sistema y no
puede trabajar con un procesador y con los registros de propósito general múltiples. Los registros
temporales proporcionan almacenamiento temporal para la otra entrada. El ALU es un circuito
combinacional sin el almacenamiento interno. Así, cuando controle las señales activa una función de
ALU, la entrada al ALU se transforma en la salida. Así, la salida del ALU no puede unirse directamente al
ómnibus, porque esta salida alimentaría parte posterior de la entrada. El registro z proporciona el
almacenamiento de salida temporal. Con este arreglo, una operación para añadir que un valor de
memoria al AC tendría lo siguiente pasos:
t1: MAR ← (IR(direccion))
t2: MBR ← Memoria
t3: Y ← (MBR)
t4: Z ← (AC) + (Y)
t5: AC ← (Z)
Son posibles otras organizaciones, pero, por lo general, algunos en cierta medida el ómnibus interno o
conjunto de internos ómnibus se usa. El uso de los caminos de datos comúnes simplifica el esquema de
interconexión y el control del procesador. Otra razón práctica para el uso de un ómnibus interno sea
salvar espacio.

Implementación Cableada
La Unidad de Control es un circuito
secuencial, cuyas entradas son:

• Indicadores (Flags) y líneas del bus de control

—Cada bit tiene un significado determinado

• Registro de Instrucción

—Cada código de operación genera diferentes señales de control para cada instrucción

—Entonces, debe haber una entrada lógica única

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 119
Arquitectura y Organización de Computadoras
TEORIA

para cada código de operación

—Esta función la realiza un decodificador

—n entradas binarias y 2n salidas

• Reloj

—Provee una secuencia repetitiva de pulsos

—Permite calcular la duración de cada micro-operación

—Debe ser de una duración suficiente para


asegurar la propagación de las señal a través
de las compuertas o buses

—Hay señales de control diferentes en unidades de tiempo diferentes dentro de un único ciclo de
instrucción.

—Por lo tanto, se necesita un contador que


genere una señal de control diferente para t1, t2, etc.

Unidad de Control con Entradas


Decodificadas

Problemas del diseño de Lógica Cableada

• La lógica del secuenciamiento y las micro- operaciones resulta muy compleja

- Esto dificulta el diseño y el testeo

• El diseño resulta inflexible.

- Esto impide agregar nuevas instrucciones.

Control Micro-programado

• Usa una secuencia de instrucciones para


controlar operaciones complejas

• Esta secuencia se denomina micro-


programación o firmware

Implementación

• Todo lo que una Unidad de Control hace es

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 120
Arquitectura y Organización de Computadoras
TEORIA

generar un conjunto de señales de control para cada micro-operación

• Cada señal de control está activa o inactiva

• Por lo tanto, se puede representar cada


señal de control con un bit

• El conjunto de bits de todas las señales de control conformará una palabra de control

• Cada instrucción (código de máquina) tiene una secuencia de palabras de control

• Se puede adicionar una dirección que


especifique la siguiente instrucción
(condicionales)

Tipos de Micro-instrucciones

• Cada micro-instrucción especifica una(o


pocas) micro-operaciones a ser realizadas

— (micro-programación vertical)

• Cada micro-instrucción especifica varias diferentes micro-operaciones a ser realizadas en paralelo

—(micro-programación horizontal)

Formatos de Microinstrucción típicos

Organización de
una Memoria de
Control

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 121
Arquitectura y Organización de Computadoras
TEORIA

Unidad de
Control

Funcionamiento
de una Unidad de
Control micro-
programada

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 122
Arquitectura y Organización de Computadoras
TEORIA

Funcionamiento de la Unidad de Control

• La lógica de secuenciamiento envía un comando


de lectura a la memoria de control

• La palabra especificada por el registro de


dirección de control es leída en el registro intermedio de control.

• El registro intermedio de control genera las


señales de control y contiene la información de la
siguiente dirección

• La lógica de secuenciamiento carga la nueva


dirección en el registro de dirección de control,
basada en la información proporcionada por el
registro intermedio de control y por los
indicadores de la ALU

• Todo esto sucede en un ciclo de reloj.

Decisión de la Siguiente Dirección

• Dependiendo de los indicadores (flags) de


la ALU y del registro intermedio de control,

se decide una de las siguientes tres


decisiones:

—Buscar la siguiente instrucción

– Se suma 1 al registro de dirección de control

—Saltar a una nueva rutina según indica una


microinstrucción de salto

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 123
Arquitectura y Organización de Computadoras
TEORIA

– El campo de dirección del registro intermedio de control se carga en el registro de dirección de


control

—Saltar a la rutina de una instrucción de máquina

– Se carga el registro de dirección de control en función del código de operación almacenado en IR

------------------------------------------------------
Hemos discutido la unidad de control desde el punto de vista de sus entradas, salida, y las funciones.
Nosotros ahora vemos el tema de la ejecución de unidad de control. una variedad amplia de técnicas
que se utilizan. La mayor parte de éstas inician una de las dos categorías:
• Ejecución cableada
• Ejecución microprogramada
En una ejecución cableada, la unidad de control es esencialmente una máquina de estado finito. Sus
señales de lógica de entrada se transforman en un conjunto de las señales lógicaa de salida, que son las
señales de control.

7: Subsistema de Entrada-Salida
Canales de E/S
Los dispositivos de E/S son cada vez más sofisticados
• Ej: tarjetas gráficas 3D.
• Evolución:
1. La CPU controla directamente los periféricos.
2. Se agrega un módulo de E/S o controlador.
3. Idem 2 más llamado de interrupción.
4. El módulo de E/S provee el acceso directo a memoria (DMA).
5. El módulo de E/S tiene su propio procesador con su pequeño conjunto de instrucciones.
6. El módulo además tiene su memoria local o sea se convierte en una computadora en sí mismo.
Características de los Canales de E/S
•Los canales representan una extensión al concepto de DMA.

•Tienen la habilidad de ejecutar instrucciones de E/S.

•Completo control de la transferencia de datos por lo tanto la CPU no ejecuta instrucciones de E/S.

•Instrucciones almacenadas en memoria principal que serán ejecutadas por un procesador de propósito
especial en el canal.

•La CPU inicia una transferencia de E/S instruyendo al canal para ejecutar el programa que está en me-
moria.

•Este programa especifica dispositivos, áreas de memoria a usar,prioridades y acciones ante errores.

•El canal siguiendo las instrucciones controla la transferencia de datos.


Tipos de canales de E/S (1)

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 124
Arquitectura y Organización de Computadoras
TEORIA

• Selector
• Controla varios dispositivos de alta velocidad y uno
por vez, por lo tanto el canal se dedica para la
transferencia de datos de ese dispositivo.
• El canal selecciona un dispositivo y efectúa la
transferencia.
• Los dispositivos son manejados por un controlador o
módulo de E/S
• Por lo tanto el canal de E/S ocupa el lugar de la CPU
en el control de esos controladores.

Parte 2

Parte 3
Micro-Operaciones
En la ejecución de un programa en una computadora, se ejecutan instrucciones, que pueden subdividirse
en ciclos:
•Búsqueda/Ejecución

•Indirecto

•Interrupción

Cada ciclo se compone a su vez de una serie de operaciones más sencillas, llamadas microoperaciones
Implican movimientos de información a nivel de registros, y son las operaciones más elementales e indi-
visibles del computador.
Acceso directo a memoria (DMA)
• Las operaciones de E/S mediante interrupciones son más efectivas que las programadas.
• Pero ambas necesitan la intervención directa de la CPU.
• La velocidad de transferencia es limitada.
• La CPU permanece ocupada mucho tiempo durante la operación.
• Si el volumen a transferir es grande la técnica de DMA es la más eficiente.

Ejemplo E/S con periférico lento


• 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 => la 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
a) E/S con espera de respuesta
• 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)
b) E/S por 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.
- Clase 4 5
Conclusión con periférico lento
• La E/S por interrupciones reduce en 10.000 veces el tiempo que la CPU está ocupada gestionando la
impresora.
Ejemplo E/S con periférico rápido
• Procesador a 200 MHz (tiempo ciclo reloj = 5 ns; Ciclos por instrucción CPI = 2 ciclos, en promedio)
• Una instrucción tarda en promedio 2 x 5 ns = 10 ns  la computadora puede ejecutar ~100 Mips
• Queremos transferir un archivo de memoria a disco de 10 Mbytes.
• El disco posee una velocidad de transferencia de 10 MB/s (1 byte cada 10-7 seg ó 100 nanoseg)

a) E/S con espera de respuesta


• La CPU entra en un bucle y envía un nuevo byte cada vez que el disco está preparado para recibirlo
• El disco tarda 1 seg. en recibir un archivo de 10 Mbytes
• La CPU está ocupada con la operación de E/S durante 1 seg.
(en ese tiempo la CPU podría haber ejecutado 100 millones de instrucciones)
b) E/S por interrupciones
• El disco genera una interrupción cada vez que está preparado para recibir un nuevo byte

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 125
Arquitectura y Organización de Computadoras
TEORIA

• Si la gestión de interrupción (ATI) tiene 10 instrucciones (salvar contexto, comprobar estado, transferir
byte, restaurar contexto, rti)
• Para transferir 10 Mbytes tenemos que ejecutar 107 veces la ATI  ejecutar 100 millones de
instrucciones para atender al periférico  la CPU tarda 1 seg.
• La CPU está ocupada con la operación de E/S durante 1 seg.
Conclusión con periférico rápido
• La E/S por interrupciones no mejora el tiempo que la CPU está ocupada en atender al periférico.

Acceso directo a memoria (DMA)


El controlador de DMA es un dispositivo capaz de controlar una transferencia de datos entre un periférico
y memoria sin intervención de la CPU.
Controlador de DMA
El Controlador de DMA (DMAC) debe actuar como maestro del bus durante la transferencia DMA y debe
ser capaz de
• Solicitar el uso del bus mediante las señales y la lógica de arbitraje necesarias
• Especificar la dirección de memoria sobre la que se realiza la transferencia
• Generar las señales de control del bus
• Tipo de operación (lectura/escritura)
• Señales de sincronización de la transferencia
Etapas de una transferencia DMA
Inicialización de la transferencia
• La CPU debe enviar al interfaz del periférico y al DMAC los parámetros de la transferencia
Inicialización del interfaz (Bus master: CPU-Bus slave: Interfaz)
• Nº de bytes a transferir
• Tipo de transferencia (lectura/escritura)
• Otra información de control (pista, sector, etc.)
Inicialización controlador DMA(Bus master: CPU-Bus slave: DMAC)
• Nº de bytes o palabras a transferir
• Tipo de transferencia (lectura/escritura)
• Dirección de memoria inicial para la transferencia
• Nº de canal (para DMAs con varios canales)
• Después de la inicialización la CPU retorna a sus tareas y ya no se preocupa más de la evolución de la
transferencia.

Realización de la transferencia
• Cuando el periférico está listo para realizar la transferencia se lo indica al DMAC
• El DMAC pide el control del bus y se realiza la transferencia entre el periférico y la memoria
• Bus master: DMAC + Periférico - Bus slave: Memoria
• Después de la transferencia de cada palabra se actualizan los registros del DMAC
• Nº de bytes o palabras a transferir
• Dirección de memoria
Finalización de la transferencia
• El DMAC libera el bus y devuelve el control a la CPU
• El DMAC suele activar una señal de interrupción para indicar a la CPU la finalización de la operación
de E/S solicitada

Bus del sistema y DMA

Problema que puede haber


• Se puede degradar el rendimiento de la CPU si el DMAC hace uso intensivo del bus
• Si el bus está ocupado en una transferencia DMA, la CPU no puede acceder a memoria para leer
instrucc. / datos
• El problema se reduce con el uso de memoria cache
• La mayor parte del tiempo, la CPU lee instruc. de la cache, por lo que no necesita usar el bus de
memoria.
• El DMAC puede aprovechar estos intervalos en los que la CPU está leyendo instrucciones de la cache (y
por tanto no usa el bus de memoria) para realizar las transferencias.
• En caso de computadores sin cache
• El procesador no utiliza el bus en todas las fases de la ejecución de una instrucción.
• El DMAC puede aprovechar las fases de ejecución de una instrucción en las que la CPU no utiliza el bus
para realizar sus transferencias.

Tipos de transferencias
• Si el DMAC sólo toma el control del bus durante los intervalos de tiempo en los que la CPU no
hace uso del mismo el rendimiento del sistema no sufrirá degradación alguna
• Se distinguen dos tipos de transferencias:
• Por ráfagas (burst)
• Por robo de ciclo (cycle-stealing)
DMA modo ráfaga
• El DMAC solicita el control del bus a la CPU

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 126
Arquitectura y Organización de Computadoras
TEORIA

• Cuando la CPU concede el bus, el DMAC no lo libera hasta haber finalizado la transferencia de todo el
bloque de datos completo.
• VENTAJAS:
• La transferencia se realiza de forma rápida.
• DESVENTAJAS:
• Durante el tiempo que dura la transferencia la CPU no puede utilizar el bus con memoria, lo que puede
degradar el rendimiento del sistema.
DMA modo robo de ciclo
• El DMAC solicita el control del bus a la CPU.
• Cuando la CPU concede el bus al DMAC, se realiza la transferencia de una única palabra y después el
DMAC libera el bus.
• El DMAC solicita el control del bus tantas veces como sea necesario hasta finalizar la transferencia
del bloque completo
• VENTAJAS:
• No se degrada el rendimiento del sistema.
• DESVENTAJAS:
• La transferencia tarda más tiempo en llevarse a cabo.
• Para la CPU no es una interrupción.
• El procesador no debe guardar el contexto.
• Si bien el trabajo de la CPU es lento, no será tanto como si ella realizara la transferencia.
• Por lo tanto, para transferencia de E/S de múltiples
palabras, es la técnica más eficiente.

Estructura de un DMAC

• El DMA utiliza E/S programadas para transferir entre la memoria y los módulos de E/S.
• Cada transferencia utiliza dos veces el bus.
• Desde el módulo de E/S al DMA y desde el DMA a la memoria.
• La CPU debe “esperar” dos veces.
Bus único, DMA integrado al módulo de E/S ó conectado a varios módulos de E/S.
• El módulo de E/S puede controlar varios dispositivos.
• Cada transferencia usa el bus una vez.
• Del DMA a la memoria.
• La CPU se detiene sólo una vez
• comunicación de la finalización de la tarea.
Bus de E/S separado del bus del sistema.
• Derivado de la configuración anterior.
• Cada transferencia usa el bus del sistema unasola vez.
• Del DMA a la memoria.
• A la CPU se la interrumpe sólo una vez.
• Configuración fácilmente expandible.
• Como en el caso anterior la transferencia de datos entre el DMA y los módulos de E/S serealizan fuera
del bus del sistema.

Tipos de interfaces
• La conexión entre un módulo de E/S y los dispositivos externos puede ser:
• Punto a punto: línea dedicada.
• Ej: teclado, impresora, modem ...etc.
• Multipunto: idema un bus externo.
• Ej: dispositivos de almacenamiento en masa externos (discos SCSI).

Interfaz SCSI(Small ComputerSystemsInterface)


•Interfaz paralela.

•8, 16 o 32 líneas de datos.

•Dispositivos encadenados (daisy-chained).

•Los dispositivos son independientes.

•Los dispositivos pueden comunicarse entre sí.

•Y trabajan sin involucrar al procesador.

•Existen distintas versiones.


SCSI -1
•A principios de los 80

•8 líneas de datos

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 127
Arquitectura y Organización de Computadoras
TEORIA

•Clockde 5 MHz

•Velocidad de datos de 5 MBytes/s

•Soporta hasta siete (7) dispositivos en cadenas

•Ocho si incluímosa la interfaz del host


SCSI -2
•1991.

•16 y 32 líneas de datos.

•Clockde 10 MHz.

•Velocidad de datos de 20 ó 40 MBytes/s.


Señales y fases del SCSI (1)• Los intercambios en este tipo de bus son entre eldispositivo iniciador y el
seleccionado.• Normalmente entre host y un dispositivo• también puede ser entre dos dispositivos.• Fa-
ses:
•¿Está el bus libre? (similar a Ethernet)

•Arbitraje: un dispositivo toma el control del bus.

•Selección de objetivo para realizar una función.

•Re-selección: el objetivo se re-conecta con el iniciadordespués de una suspensión de parte de éste.


Señal del SCSI (2)
• Solicitud de órdenes desde un objetivo al
iniciador.
• Solicitud de datos en ambos sentidos (IN/OUT).
• Solicitud de que la información de estado del
objetivo sea enviada al iniciador.
• Solicitud de mensajes en ambos sentidos.
Configuración de SCSI• El bus debe finalizar en cada extremo.• Normalmente un extremo corresponde al
adaptador delhost.• Conexión a un terminador o conmutador(es).• Debe establecerse el ID de cada
dispositivo SCSI.• Jumperso conmutadores.• ID único en la cadena.• El número mayor (7) goza de
mayor prioridad en elarbitraje.
IEEE 1394 FireWireBus en serie de alto rendimiento.• Rápido (entre 25 y 400 Mbits/s)• Costos
reducidos.• Fácil de implementar.• También se emplea en cámaras digitales, VCR y televisión.
Configuración del FireWire
• Dispositivos encadenados (daisychain).
• 63 dispositivos en un solo puerto.
• En realidad 64, de los cuales uno es la interfaz.
• Pueden conectarse más de 1022 buses con adaptadores.
• Configuración automática.
• No hay terminadores de bus.
• Puede tener estructura de árbol.

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 128
Arquitectura y Organización de Computadoras
TEORIA

8: Arquitecturas avanzadas

VISIÓN GENERAL DEL PROCESAMIENTO SUPERESCALAR


El término superescalar, primero se acuñó en 1987[AGER87], y se refería a una máquina que se diseñó
para mejorar el desempeño de la ejecución de las instrucciones escalonadas. En la mayoría
las aplicaciones, la magnitud de las operaciones están en las cantidades escalonadas. En conformidad, el
superescalar el acercamiento representa el próximo paso en la evolución del alto rendimiento
procesadores de propósito general.
La esencia del acercamiento de superescalar es la habilidad para ejecutar las instrucciones
independientemente y concurrentemente en las tuberías diferentes. El concepto puede explotarse
además permitiendo a las instrucciones ejecutarse en un orden diferente del orden de programa.
Las unidades tienen múltiples funciones, cada una se pone en práctica como una tubería, que apoyo
compara ejecución de varias instrucciones. En este ejemplo, dos entero, número entero, dos de punto
flotante, y un la memoria ( cargar o almacene ) las operaciones pueden estar ejecutando al mismo
tiempo.
Muchos investigadores han investigado los procesadores parecidos a los superescalares, y su
investigación indica que cierto grado del mejoramiento de desempeño es posible. Tabla 14.1 presentes
las ventajas reportadas de desempeño. Las diferencias en los resultados origine en las diferencias ambos
en el hardware de la máquina simulada y en las aplicaciones ser simulando.

Superescalar versus Supertuberías


Un acercamiento alternativo para lograr mayor desempeño es mencionado para como el superpipelining
(supertuberías), un término primero acuñó en 1988[JOUP88]. Superpipelining explota el hecho que
muchas fases de tubería ejecutan tareas que requieren menos de ritmo de reloj medio. Así, una
velocidad del reloj doblada interna permite el desempeño de dos tareas en unos partes externas
ritmo de reloj. Hemos visto un ejemplo de este acercamiento con el MIPS R4000.
La figura 14.2 compara los dos enfoques. La parte superior del la bifurcacion ilustra
una tubería ordinaria, usada como una base para la comparación. Los aspectos de base de tubería

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 129
Arquitectura y Organización de Computadoras
TEORIA

una instrucción por ritmo de reloj y pueda ejecutar una fase de tubería por el ritmo de reloj.
comparación de figura 14.2 de superescalar y Superpipeline se acerca
La tubería tiene cuatro fases: captación de instrucción, la operación descifra, ejecución de operación,
y el resultado contesta por escrito. La fase de ejecución se sombrea para la claridad. Nota eso
aunque varias instrucciones se están ejecutando concurrentemente, sólo una instrucción está en
su fase de ejecución a cualquier un tiempo.
La parte próxima de la bifurcación muestra que una ejecución de superpipelined que es capaz de realizar
dos fases de tubería por el ritmo de reloj. Una vía alternativa de
mirar a esto es ése las funciones ejecutadas en cada fase se pueden dividirse en dos non over lapping
partes y cada uno puede ejecutar por la mitad un ritmo de reloj ejecución de superpipeline A
eso se comporta en esta forma sea antes mencionado para ser de grado 2. Finalmente, el más bajo
parte del diagbifurcacion muestra que una ejecución de superescalar capaz de ejecutando dos
casos de cada fase en la paralela. Las ejecuciones de superpipeline de grado más alto y de superescalar
ser por supuesto posible.
Ambos superpipeline y las ejecuciones de superescalar muestraron en
La figura 14.2 tiene el mismo número de las instrucciones ejecutando al mismo tiempo en el
estado firme.El procesador de superpipelined se queda atrás el procesador de superescalar a
el principio del programa y a cada objetivo de bifurcacion.
Limitaciones
El acercamiento de superescalar depende de la habilidad para ejecutar las instrucciones múltiples en la
paralela.
El paralelismo a nivel de instrucción de término se refiere al grado al que, como promedio, el
instrucciones de un programa se pueden ejecutar en la paralela.una combinación de con base en
compilador
las técnicas de optimización y de hardware pueden estar acostumbrado a aumentar al máximo el
paralelismo a nivel de instrucción.
Antes de examinar las técnicas de diseño usado en máquinas de superescalar para crecer
paralelismo a nivel de instrucción, necesitamos mirar a las limitaciones fundamentales a paralelismo
con que el sistema debe cubrir. [JOHN91] cinco limitaciones de listas:
• Dependencia de datos verdadera
• Dependencia procesal
• Conflictos de recurso
• Dependencia de salida
• Antidependency
Examinamos los primeros tres de estas limitaciones en el residuo de esta sección. A
discusión sobre los últimos dos debe esperar algunos de los desarrollos en la próxima sección.

14.2 ASPECTOS DE DISEÑO


Paralelismo a nivel de instrucción y paralelismo de máquina
[JOUP89a] marcas una distinción importante entre los dos conceptos relacionados de
paralelismo a nivel de instrucción y paralelismo de máquina. Paralelismo a nivel de instrucción
exista cuando son independientes las instrucciones en una secuencia y así se pueda ejecutar en
paralela solapando.
Como un ejemplo del concepto de paralelismo a nivel de instrucción, considere lo siguiente
dos codifican fragmentos[JOUP89b]:
¿Carga R1R2 Sumar R3 R3, "1e
¿Añade R3R3, "1" Sumar R4 R3, R2
¿Añade R4R4, R2 Store [R4] R0
Las tres instrucciones a la izquierda son independientes, y en la teoría todo tres pueda ser
ejecutado en la paralela. En cambio, las tres instrucciones a la derecha no se pueden ejecutar
en paralela porque la segunda instrucción usa el resultado del primero, y el
la tercero instrucción usa el resultado del segundo.
El grado del paralelismo a nivel de instrucción se determina por la frecuencia de
dependencias de datos verdaderas y dependencias procesales en el código. Estos factores, en
gire, es dependiente de la arquitectura de conjunto de instrucciones y en la aplicación.
El paralelismo a nivel de instrucción se determina también por qué[JOUP89a] refiera a como la operación
latencia: el tiempo hasta el resultado de una instrucción es disponible por use como un
operando en una instrucción subsecuente.La latencia determina cuánto de un A de demora
los datos o dependencia procesal causarán.
El paralelismo de máquina es una medida de la habilidad del procesador para aprovecharse
delparalelismo a nivel de instrucción. El paralelismo de máquina se determina por el número
de las instrucciones que puede llevarse y ejecutar al mismo tiempo ( el número
de paralelas tuberías ) y por la velocidad y sofistería de los mecanismos eso
el procesador usa para encontrar las instrucciones independientes.
Ambos a nivel de instrucción y elabore paralelismo es factores importantes en mejorar
desempeño. un programa no puede tener bastante paralelismo a nivel de instrucción
para tomar la ventaja completa del paralelismo de máquina. El uso de una instrucción de longitud fija
ponga arquitectura, como en un RISC, mejora el paralelismo a nivel de instrucción. En el otro
la mano, limitado elabore paralelismo limitará el desempeño no importa qué la naturaleza
delprograma.

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 130
Arquitectura y Organización de Computadoras
TEORIA

Política de asunto de instrucción


Como era mencionado, elabore paralelismo no es simplemente una materia de tienen los casos múltiples
de cada fase de tubería.El procesador debe también ser capaz de identificar instructionlevel
paralelismo y orquestan los atractivos, descifrando, y la ejecución de las instrucciones
en la paralela. [JOHN91] usos el asunto de instrucción de término para referirse al proceso de iniciar
ejecución de instrucción en las unidades funcionales del procesador y el término
la instrucción emite política para referirse al protocolo acostumbre a emitir instrucciones. Por lo
general,
podemos decir que el asunto de instrucción ocurre cuando la instrucción se mueve del decode
fase de la tubería al primero ejecuta la fase de la tubería.
En esencia, el procesador está tratando de mirar hacia adelante del punto actual de la ejecución
para localizar las instrucciones que pueden ser traídas en la tubería y ejecutado.Tres
tipos de ordenes son importantes en este sentido:
• El order in que instrucciones se traen
• El order in que instrucciones se ejecutan
• El order in que instrucciones actualizan los contenidos de registro y memoria
direcciones
Los más sofisticados el procesador, el menos que es destinado por una relación estricta
entre estos ordenes. Para optimizar la utilización de los varios elementos de tubería,
el procesador necesitará alterar uno o más de estos ordenes con el respeto
al orden para proporcionarse en una ejecución consecutiva estricta. La una limitación en
el procesador es que el resultado debe ser correcto.Así, el procesador debe acomodarse
los varios dependencias y conflictos discutieron anteriormente.
En términos generales, podemos agrupar instrucción de superescalar emiten políticas en el
categorías siguientes:
• El asunto en orden con la terminación en orden
• El asunto en orden con la terminación de exterior de orden
• Asunto de exterior de orden con la terminación de exterior de orden
COMPLETION de ORDER de IN de IN-ORDER ISSUE WITH el asunto de instrucción más simple
la política es emitir instrucciones en la orden exacta que pueden ser triunfadas por consecutivo
la ejecución (asunto en orden) y para escribir resultados en que mismo ordena (terminación en orden).
No las tuberías escalonadas uniformes siguen tal política cándida. Sin embargo, es útil
para considerar esta política como un basal para comparar los enfoques más sofisticados.
Figure 14.4a dé a un ejemplo de esta política.Asumimos que una tubería de superescalar
capaz de trayendo y descifrando dos instrucciones a la vez, tenga tres separata
las unidades funcionales ( por ejempo, dos aritmética de entero, número entero y una aritmética de
punto flotante ), y
tener dos casos de la fase posterior de escritura de tubería.El ejemplo asume que lo siguiente
limitaciones en un fragmento de código de seis instrucciones:
• I1 requiere de dos tiempos para ejecutar.
• conflicto de I3 e I4 para la misma unidad funcional.
• I5 depende del valor producido por I4.
• conflicto de I5 e I6 para una unidad funcional.
Las instrucciones son buscadas de dos en dos y pasadas a la unidad de decode. Porque
las instrucciones son buscadas en los pares, las dos instrucciones próximas deben esperar hasta el par
de
descifre fases de tubería se han aclarado.Para garantizar terminación en orden, cuando allí está
un conflicto para una unidad funcional o cuando una unidad funcional exige más de uno
ciclo para generar un resultado, la expedición de instrucciones temporalmente se atolla.
En este ejemplo, la duración de descifrar la primera instrucción para escribir
los últimos resultados son ocho ciclos.
terminación de exterior de orden de COMPLETION de ORDER de OUT-OF de IN-ORDER ISSUE
WITH
esté usado en los procesadores de RISC escalonados para mejorar el desempeño de instrucciones eso
requiera los ciclos múltiples. Figure 14.4b ilustra su uso en un procesador de superescalar. Instrucción
I2 se permite correr a la terminación antes de I1.Esto permite que I3 se complete
más temprano, con el resultado neto de unos ahorros de un ciclo.
Con terminación de exterior de orden, muchas instrucciones pueden estar en la ejecución
fase a cualquier un tiempo, hasta el grado máximo del paralelismo de máquina
hasta todas las unidades funcionales. La expedición de instrucción se atolla por un conflicto de recurso,
unos datos
dependencia, o una dependencia procesal.
Además de las limitaciones susodichas, una nueva dependencia, que mencionado
para más temprano como una dependencia de salida ( también llamado escriba después de la
escritura (WAW) la dependencia ),
levantarse.El fragmento siguiente de código ilustra esta dependencia ( operativo representa
cualquier operación ):
Instruction I2 no puede ejecutar antes de I1 de instrucción, porque necesita el resultado
en R3 de registro producido en I1; esto es un ejemplo de una dependencia de datos verdadera, como
descrito

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 131
Arquitectura y Organización de Computadoras
TEORIA

en la sección 14.1. Similarmente, I4 debe esperar a I3 , porque usa un resultado produzca


por I3. ¿Qué se sabe de la relación entre I1 e I3? No existen ningunos datos
dependencia aquí, como lo hemos definido. Sin embargo, si I3 ejecuta a terminación previa
a I1, entonces el valor malo de los contenidos de R3 será buscado para la ejecución de
I4. Por lo tanto, I3 debe completar después de I1 para producir los valores correctos de salida.Para
asegure este, la expedición de la tercer instrucción se debe atollarse si su resultado podría más tarde
sobregrabe se por una instrucción más vieja que toma más tiempo para completar.
La terminación de exterior de orden requiere que la lógica de asunto de instrucción más compleja que
terminación en orden. Además, es más difícil de trabajar con la instrucción interrumpe
y excepciones.Cuando un interrupciones ocurre, la ejecución de instrucción a la corriente
el punto es suspendido, para recomenzarse a hablar más tarde.El procesador debe asegurar que la
reasunción
toma en cuenta que, en el momento de interrupción, las instrucciones delante de la instrucción
ese cause el interrupciones puede haber completado ya.
COMPLETION de ORDER de OF de ISSUE WITH OUT de ORDER de OUT-OF con en orden
asunto, el procesador descifrará sólo instrucciones hasta el punto de una dependencia o
conflicto. Ningunas instrucciones adicionales se descifran hasta el conflicto resuelva se. Como A
resultado, el procesador no puede mirar hacia adelante del punto del conflicto a instrucciones
subsecuentes
eso puede ser independiente de esos ya en camino y que pueda ser
útilmente introducido en la tubería.
Para permitir asunto de exterior de orden, es necesario para el decouple el decode y ejecución
fases de la tubería. Esto se hace con un buffer (regulador)mencionado para como una ventana de
instrucción.
Con esta organización, después de un procesador haya terminado la decodificación una instrucción, se
llega entre los tres primeros
en la ventana de instrucción.Mientras este buffer (regulador)no es completo, el procesador puede
continuar para
traiga y descifre nuevas instrucciones.Cuando una unidad funcional llega a ser disponible en el ejecución
fase, una instrucción de la ventana de instrucción se puede emitir al ejecución
fase.Cualquier instrucción se puede emitir, a condición de que (1) necesita el funcional particular
la unidad que es disponible, y (2) ningunos conflictos o dependencias bloquean esta instrucción.
El resultado de esta organización es que el procesador tiene una capacidad de preanálisis,
permitirlo para identificar las instrucciones independientes que pueden ser traídas en el ejecución
fase. Las instrucciones son derivadas de la ventana de instrucción con la atención pequeña para su
orden de programa original. Como antes, la única limitación es ésa la ejecución de programa
comporte se correctamente.
Las figuras 14.4c ilustra esta política. Durante cada uno de los primeros tres ciclos, las dos instrucciones
sea buscado en la fase de decode. Durante cada ciclo, sujeto a la limitación
deltamaño de parachoques, dos instrucciones se mueven de la fase de decode a la ventana de
instrucción.
En este ejemplo, es posible emitir I6 de instrucción delante de I5 ( la llamada que I5 depende
en I4 , pero I6 hace no ). Así, un ciclo se ahorra en ambos ejecución y
fases posteriores de escritura, y los ahorros de fin a fin, comparado con figura 14.4b, es un ciclo.
La ventana de instrucción se muestra en figura 14.4c para ilustrar su papel. Sin embargo,
esta ventana no es una fase de tubería adicional. Una instrucción ser en la ventana
simplemente implica que el procesador tiene la información suficiente sobre esa instrucción
para decidir cuando se puede emitir.
El asunto de exterior de orden, política de terminación de exterior de orden están sujeto a las mismas
limitaciones
descrito anteriormente.Una instrucción no se puede emitir si viola una dependencia o
conflicto.La diferencia es ésa más instrucciones son disponibles por emitiendo, reduciendo el
la probabilidad que una fase de tubería tendrá que atollarse. Además, una nueva dependencia, que
nosotros mencionado para más temprano como un antidependency ( también llamado lea después
de la escritura (RAW) la dependencia ),
levantarse.El código fragmenta considere ilustra más temprano esta dependencia:
Instruction I3 no puede completar ejecución antes de I2 de instrucción comienza ejecución
y haya traído sus operandos.Esto es así porque actualizaciones de I3 registran R3 , que es
un operando de fuente para I2. El antidependency de término es usado porque la limitación es
similar a ese de una dependencia de datos verdadera, pero inverso: En lugar de la primera instrucción
producir un valor que la segunda instrucción usa, la segunda instrucción destruye
un valor que los primeros usos de instrucción.

Tubería con Static versus el simulador de programación dinámico


Predicción de bifurcacion
Cualquier alto rendimiento tubería la máquina deba dirigir el asunto de tratar sobre
bifurcacions. Por ejemplo, el 80486 de Intel dirigió el problema por trayendo ambos
la instrucción consecutiva próxima después de una bifurcacion y teóricamente trayendo el objetivo de
bifurcacion
instrucción. Sin embargo, porque existen dos fases de tubería entre el prefetch

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 132
Arquitectura y Organización de Computadoras
TEORIA

y ejecución, esta estrategia incurre en una demora de dos tiempos cuando la bifurcacion consigue
tomado.
Con el advenimiento de RISC elabora, la estrategia de bifurcación diferida se exploraba.
Esto permite el procesador para calcular el resultado de las instrucciones de bifurcación condicional
antes que cualesquiera instrucciones unusables han sido prefetched. Con esto
método, el procesador siempre ejecuta la instrucción sencilla que inmediatamente
seguimientos la bifurcacion.Esta conserva la tubería completa mientras que el procesador trae un nuevo
corriente de instrucciones.
Con el desarrollo de máquinas de superescalar, la estrategia de bifurcación diferida
tener el menos apela.La razón es que las instrucciones múltiples necesitan ejecutar en la demora
ranure, levantando varios problemas referentes a dependencias de instrucción.Así, superescalar
las máquinas han retornado a las técnicas de pre-RISC de la predicción de bifurcacion. Cierto, quiera
el PowerPC 601 , usa una técnica de predicción de bifurcacion estática simple. Más sofisticado
procesadores, tal como el PowerPC 620 y el Pentium 4, use la predicción de bifurcacion dinámica
basado en el análisis de historia de bifurcacion.
superescalar Execution
Somos ahora en posición para proporcionar una visión general de la ejecución de superescalar de
programas;
esto se ilustra en la figura 14.6.El programa para ejecutarse consista de un lineal
secuencia de las instrucciones.Esto es el programa estático como se escribe por el programador
o generado por el compilador. El proceso de captación de instrucción, que incluye bifurcacion
predicción, es usadoa formar una corriente dinámica de las instrucciones.Esta corriente se examina
para dependencias, y el procesador puede quitar las dependencias artificiales.El procesador
entonces envie las instrucciones en una ventana de la ejecución. En esta ventana,
las instrucciones ya no forma una corriente consecutiva pero sea estructurado según su
dependencias de datos verdaderas.El procesador ejecuta la fase de ejecución de cada instrucción
en una orden determinada por los datos verdaderos dependencias y recurso de hardware
disponibilidad. Finalmente, las instrucciones son conceptualmente vuelva en orden consecutiva y
sus resultados se registran.
El final paso mencionado en el párrafo precedente es mencionado para como
comprometer , o retirar , la instrucción.Este paso se necesita para la razón siguiente.
Debido al uso de paralela, las tuberías múltiples, instrucciones pueden completar en un
la orden diferente de ese mostrado en el programa estático. Adelante, el uso de la bifurcacion
predicción y ejecución especulativa significan que ciertas instrucciones pueden completar
ejecución y entonces deba ser abandonado porque la bifurcacion que estos representan no es
tomado.Por lo tanto, almacenamiento permanente y los registros visibles de programa no se pueden
actualizar
inmediatamente cuando instrucciones completan ejecución. Los resultados deben ser agarrados en
algunos
en cierta medida el almacenamiento temporal que sido útil por instrucciones de dependiente y entonces
haga
permanente cuando es determinado que el modelo consecutivo podría haber ejecutado
la instrucción.
superescalar Implementation
Basado en nuestra discusión hasta ahora, podemos hacer ciertos comentarios generales sobre el
el hardware de procesador requerido por el superescalar se acerca. [SMIT95] listas lo siguiente
elementos claves:
• La instrucción trae las estrategias que traen simultáneamente las instrucciones múltiples,
a menudo prediciendo los resultados de, y trayendo más allá de, la bifurcación condicional
instrucciones. Estas funciones requieren que el uso de múltiple captación de tubería y
descifre fases, y lógica de predicción de bifurcacion.
• Lógica para determinar las dependencias verdaderas suponiendo valores, y mecanismos de registro
para comunicar estos valores para donde estos son necesitados durante
ejecución.
• Mecanismos para iniciando, o emitiendo, las instrucciones múltiples en la paralela.
• Recursos para la ejecución paralela de las instrucciones múltiples, incluyendo múltiple
las unidades funcionales tuberías y las jerarquías de memoria capaz de simultáneamente
atender las referencias de memoria múltiples.
• Mecanismos para comprometer el proceso manifiesta en la orden correcta.

Aunque el concepto del diseño de superescalar es generalmente asociado con la arquitectura de RISC,
los mismos principios de superescalar pueden ser aplicados a una máquina de CISC. Tal vez
el más notabla ejemplo de esto es el Pentium.La evolución de los conceptos de superescalar
en la línea de Intel esté interesando a la nota.Los 386 son un CISC tradicional nonpipelined máquina.
Los 486 introdujeron el primero tubería procesador de x86 , reduciendo la latencia media
de las operaciones de entero, número entero de entre dos y de cuatro tiempos a un ciclo, pero todavía
limitado para
ejecutando una instrucción sencilla cada pase por un ciclo, sin los elementos de superescalar. El original
El Pentium tuvo un componente de superescalar modesto, consistiendo del uso de dos separa entero,
número entero

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 133
Arquitectura y Organización de Computadoras
TEORIA

unidades de ejecución. El profesional de Pentium introdujo un diseño de superescalar enteramente


abierto.
Los modelos de Pentium subsecuentes han refinado y mejorado el diseño de superescalar.
un diagbifurcacion de bloques general del Pentium 4 se mostraba en la figura 4.18. Figura
14.7 muestra la misma estructura de cierta manera más adecuado para la discusión de tubería en
esta sección.La operación del Pentium 4 se puede resumirse las siguientes:
1. El procesador trae las instrucciones de memoria en la orden del estático
programa.
2. Cada instrucción es traducida a unas o más instrucciones de RISC de longitud fija,
conocido como microoperaciones , o microscópico operativo.
3. El procesador ejecuta los microscópicos operativos en una organización de tubería de superescalar,
así
Que el microscópico operativo se puede ejecutar en desorden.
4. El procesador compromete los resultados de cada ejecución microscópica operativa para el
procesador
conjunto de registro en la orden del flujo original de programa.
En efecto, la arquitectura de Pentium 4 consiste de un CISC exterior se descascara con un
núcleo de RISC interior. Los interiores RISC microscópico operativo pase por una tubería con al menos
20 fases (Figure 14.8); en algunos casos, la ejecución requerida múltiple microscópica operativa
las fases, resultando en una tubería más tiempo uniforme. Estos contrastes con las cinco fases
la tubería (Figure 12.21) usado en los procesadores de Intel x86 más tempranos y en el Pentium.
Trazamos ahora la operación de la tubería de Pentium 4 , uso figura 14.9 para
ilustre su operación.
Fin delantero
la organización de El Pentium 4 de microOPS de GENERATION OF incluye un en orden
afronte el fin ( figura 14.9a ) que puede ser considerado fuera el alcance de la tubería muestrado
en la figura 14.8. Este fin delantero alimenta en un caché de instrucción de L1 , llame el
trace el caché, que es donde la tubería apropiado empiece. Normalmente, el procesador opera
delcaché de rastro; cuando una señorita de caché de rastro ocurre, el fin delantero en orden
alimentaciones nuevas instrucciones en el caché de rastro.
Con la ayuda del buffer (regulador)de objetivo de bifurcacion y el buffer (regulador)de lookaside de
instrucción
(BTB e I-TLB), la captación/descifran captacións de unidad Pentium 4 instrucciones de maquina de
los 64 bytes de L2 cache a la vez. Como un valor predeterminado, las instrucciones son buscadas
consecutivamente, así
que cada L2 cache raya la captación incluya la instrucción próxima para llevarse. Predicción de
bifurcacion
por la via de la unidad de BTB e I-TLB pueda alterar esta operación de captación consecutiva. El
ITLB traduce el indicador de instrucción lineal lo dirección dé en las direcciones físicas
necesite acceder el L2 cache. La predicción de bifurcacion estática en el BTB de fin delantero es
acostumbre a determinar que instrucciones para llevar próximo.
Una vez que las instrucciones son buscadas, la captación/descifre la unidad examina los bytes para
determinar
límites de instrucción; esta es una operación necesaria debido a la variable
longitud de las instrucciones de x86. El descifrador traduce cada instrucción de máquina en
desde la una hasta las cuatro microscópico operativo, cada uno de que es una instrucción de RISC de
118 bits. Nota para
la comparación que la mayor parte del puras máquinas de RISC tienen una longitud de instrucción de
justos 32 bits.
La más tiempo longitud microscópica operativa es requerida para acomodar el Pentium más complejo
operaciones. Sin embargo, el microscópico operativo es fácil de manejar que las instrucciones originales
de que se derivan.
El generado microscópico operativo es guardado en el caché de rastro.

(BTB) es mantenido que ocultan en un caché la información sobre recientemente encuentre bifurcacion
instrucciones. Siempre que una instrucción de salto se encuentra en la instrucción
corriente, el BTB se verifica. Si una entrada ya existe en el BTB, entonces la instrucción
la unidad se guia por la información de historia para esa entrada al determinar
si predecir que la bifurcacion se toma. Si una bifurcacion se predice, entonces el
la dirección de destino de bifurcacion asociada con esta entrada es usada para prefetching el
instrucción de objetivo de bifurcacion.
Una vez la instrucción se ejecuta, la porción de historia de la entrada apropiada
sea actualizado para reflejar el resultado de la instrucción de salto. Si esta instrucción no se representa
en el BTB, entonces la dirección de esta instrucción es cargada en una entrada en
el BTB; si el requisito, una entrada más vieja se borra.
La descripción de los dos párrafos precedentes ajusta, en términos generales, el
la estrategia de predicción de bifurcacion usada en el modelo de Pentium original, así como el posterior
Modelos de Pentium, incluyendo Pentium 4. Sin embargo, en el caso del Pentium, un relativamente
el plan de historia de 2 bits simple se usa. Los modelos de Pentium posteriores tienen mucho

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 134
Arquitectura y Organización de Computadoras
TEORIA

más tiempo las tuberías (20 fases para el Pentium 4 comparado con 5 fases para el Pentium)
y por lo tanto la pena para el misprediction es mayor. En conformidad, el posterior
Los modelos de Pentium usan un plan de predicción de bifurcacion más elaborado con más la historia
bits para reducir el índice de misprediction.
El Pentium 4 BTB es organizado como un caché establacido asociativo de cuatro vías con
512 líneas. Cada entrada usa la dirección de la bifurcacion como una etiqueta. La entrada también
incluye
la dirección de destino de bifurcacion por última vez esta bifurcacion se tomaba y
un campo de historia de 4 bits. Así uso de cuatro historia bit los contrastes con los 2 bits usados en
el Pentium original y usado en la mayor parte de los procesadores de superescalar. Con 4 bits, el
El mecanismo de Pentium 4 puede tomar en cuenta una más tiempo historia en predecir
bifurcacions. El algoritmo que sido usado es mencionado para como el algoritmo de Yeh[YEH91].
Los desarrolladores de este algoritmo han demostrado que Esto proporciona un significativo
reducción en misprediction comparado con algoritmos que use sólo 2 bits de la historia
[EVER98].
Las bifurcaciones condicionales que no tienen una historia en el BTB se predicen
usar un algoritmo de predicción estático, según los reglamentos siguientes:
• Para las direcciones de bifurcacion que no es pariente de IP, prediga tomado si la bifurcacion es el A
retorne y no tomado de otra manera.
• Para bifurcaciones condicionales relativas de IP hacia atrás, prediga tomado.Esta regla refleja
el comportamiento típico de curvas.
• Para bifurcaciones condicionales relativas de IP delanteras, no prediga tomado.
TRACE CACHE FETCH el caché de rastro ( figura 14.9c ) toma el ya descifrado
microscópico operativo del descifrador de instrucción y les arme en para ordenado de programa
secuencias de los rastros microscópicos operativos llamados. Microscópico operativo sea buscado
consecutivamente de el
trace caché, sujeto a la lógica de predicción de bifurcacion.
algunas instrucciones exigen más de cuatro microscópico operativo. Estas instrucciones son
transferido a ROM,which de microcódigo contiene la serie de microscópico operativo ( cinco o más )
asociado con una instrucción de máquina compleja. Por ejemplo, una instrucción de cadena puede
traduzca se en un muy grande (cientos uniformes), la secuencia repetitiva de microscópico operativo.
Así,
ROM del microcódigo es una unidad de control de microprogrammed en el sentido discutido en
Parte cuatro después de ROM del microcódigo termina ordenando en serie microscópica operativa para la
corriente
Instrucción de Pentium, trayendo resumenes del caché de rastro.
DRIVE la quinta fase ( figura 14.9d ) de la tubería de Pentium 4 da descifraron instrucciones
delcaché de rastro para el Rename/módulo de allocator.

Lógica de ejecución de exterior de orden


Esta parte del procesador reorganiza microscópica operativa para permitirles para ejecutar tan
rápidamente como
sus operandos de entrada son listos.
fase de ALLOCATE El allocate ( figura 14.9e ) distribuye los recursos requeridos por la ejecución.
Ejecuta las funciones siguientes:
• Si un recurso necesitado, tal como un registro, es indisponible para uno de los tres
microscópico operativo llegando el allocator durante un ritmo de reloj, el allocator se atolla
la tubería.
• El allocator distribuye una entrada de buffer (regulador)(ROB) de nuevo pedido, que siguen la pista de
el
estado de terminación de uno del 126 microscópico operativo que pueda ser en progreso a
cualquier tiempo.2
• El allocator distribuye uno del 128 entero, número entero o los entradas de registro de punto flotante
para los datos de resultado el valor de los microscópicos operativos, y posiblemente un buffer
(regulador)de carga o almacén
acostumbre a seguir la pista de una de las 48 cargas o 24 almacénes en la tubería de máquina.
• El allocator distribuye una entrada en una de las dos colas microscópicas operativas delante de
los programadores de instrucción.
El ROB es un buffer (regulador)circular que pueda exponer 126 microscópico operativo y también
contiene
los 128 registros de hardware. Cada entrada de buffer (regulador)consiste de los campos siguientes:
• Estado: Indica si este microscópico operativo sea programado para ejecución, haya sido
enviado para ejecución, o tenga ejecución completada y sea listo para
retiro.
• Dirección de memoria: La dirección de la instrucción de Pentium que genere el
microscópico operativo.
• Microscópico operativo: La operación real.
• Registro de alias: Si las referencias microscópicas operativas uno de los 16 registros arquitecturales,
esta entrada reexpide esa referencia a uno de los 128 registros de hardware.
Microscópico operativo entre el ROB que está en servicio. Microscópico operativo envie entonces de el

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 135
Arquitectura y Organización de Computadoras
TEORIA

ROB para el envío/ejecución unidad en desorden.El criterio para el envío es que el


aproprie de unidad de ejecución y todos los artículos de datos necesarios requeridos por este
microscópico operativo
ser disponible. Finalmente, microscópico operativo sea retirado del ROB que está en servicio. para
realizar
retiro en orden, microscópico operativo sea retirado viejo el primero después de cada microscópico
operativo haya sido
designado como listo para el retiro.
fase de REGISTER RENAMING El rename ( figura 14.9e ) remaps referencias para el
16 registros arquitecturales ( 8 registros de punto flotante, más EAX, EBX, ECX, EDX,
ESI, EDI,EBP, y ESP ) en un conjunto de 128 registros físicos.La fase quita falsamente
dependencias causadas por un número limitado de los registros arquitecturales al preservar
los datos verdaderos dependencias ( lea después de las escrituras ).
2 ven apéndice I para una discusión sobre los buffer (regulador)de nuevo pedido.
544 paralelismo de CHAPTER 14/INSTRUCTION-LEVEL y procesadores de superescalar
QUEUING de microOP después de asignación de recursos y registro nombrando de nuevo,
microscópico operativo
sea situado en una de dos colas microscópicas operativas ( figura 14.9f ), donde son agarrados hasta
existe la habitación en los programadores. Una de las dos colas son para las operaciones de memoria
( carga y almacenan ) y el otro para microscópico operativo que no suponen referencias de memoria.
Cada cola obedece un FIFO ( primero en primer exterior ) la disciplina, pero ninguna orden se mantiene
entre las colas. Es decir, un microscópico operativo puede ser expulsar de una cola fuera de
orden con respecto a microscópico operativo en la otra cola.Esta proporciona mayor flexibilidad
a los programadores.
SCHEDULING AND de microOP enviando los programadores ( figura 14.9g ) es
responsable para recuperando microscópico operativo de las colas microscópicas operativas y enviando
éstos para la ejecución. Cada programador mira para microscópico operativo en cuyo estado indica
Que el microscópico operativo tiene todo de sus operandos. Si la unidad de ejecución necesitada por eso
microscópico operativo sea disponible, entonces el programador trae los microscópicos operativos y lo
envian para
la unidad apropiada de ejecución ( figura 14.9h ). Hasta seis microscópico operativo se pueda enviar
en un ciclo. Si más de un microscópico operativo está disponible por una ejecución dada
unidad, entonces el programador les envia en secuencia de la cola.Esta es una clase
de la disciplina de FIFO que favorece la ejecución en orden, pero a esta hora la instrucción
la corriente se ha vuelto a arreglar así por dependencias y bifurcacions que es sólidamente
en desorden.
Cuatro puertos unen los programadores a las unidades de ejecución. Puerto 0 sea usado para ambos
entero, número entero e instrucciones de punto flotante, a excepción de las operaciones de entero,
número entero simples
y la manipulación de los mispredictions de bifurcacion, que sidos distribuir para portuario 1. Además,
las unidades de ejecución de MMX se distribuyen entre estos dos puertos.El restante
los puertos son para cargas de memoria y almacénes.
El entero, número entero y los unidades de ejecución de punto flotante
El entero, número entero y archivo register de punto flotante son la fuente para depender operaciones
por
las unidades de ejecución ( figura 14.9i ).Las unidades de ejecución recuperan valores del registro
los archivos así como del caché de datos de L1 ( figura 14.9j ). una fase de tubería separada
se usaa computar las banderas ( por ejempo, el cero, niegue ); éstas son tipicamente la entrada al A
instrucción de salto.
una fase de tubería subsecuente ejecuta la bifurcacion verificando ( figura 14.9k ). Esto
la función compara el resultado real de bifurcacion con la predicción. Si una predicción de bifurcacion
eche para haber sido malo, entonces existen las microoperaciones en varias fases
delproceso que debe ser retirado de la tubería. El destino apropiado de bifurcacion
provea entonces al predictor de bifurcacion durante una fase de guía (Figure 14.9l),
que comience de nuevo la tubería entera de la nueva dirección de objetivo.

La instrucción descifra unidad


La instrucción descifra la unidad descifra y ordenan en serie todo ARM e instrucciones de pulgar.
Tiene una estructura de tubería dual, llamado pipe0 y pipe1, de modo que dos instrucciones puede
progreso hasta la unidad a la vez.Cuando dos instrucciones sean derivadas de la instrucción
descifre tubería, pipe0 siempre contendrá la instrucción más vieja en la orden de programa.
Esto significa que si la instrucción en pipe0 no puede emitir, entonces la instrucción en pipe1
no emitir. Todo emita las instrucciones progresa que está en servicio abajo la tubería de ejecución
con los resultados escritos retroceda en el archivo register al final de la tubería de ejecución.Esto
la instrucción en orden emite y retire se prevenga que WAR arriesgan y conserva el rastreo de
WAW arriesgan y la recuperación del rubor condiciona directo.Así, el asunto principal
de la instrucción descifre la tubería es la prevención de RAW arriesgan.
Cada instrucción examina cuidadosamente cinco fases del proceso.
las instrucciones de D0 Thumb se descomprimen en las instrucciones de ARM de 32-bit. A
el preliminar descifra la función se ejecuta.

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 136
Arquitectura y Organización de Computadoras
TEORIA

D1 la instrucción descifra la función se completa.


D2 esta fase escribe instrucciones en y leen las instrucciones del pending/
estructura de cola de repetición de un encuentro.
D3 esta fase contiene la lógica de programación de instrucción. un marcador predice
registre la disponibilidad que usa las técnicas de programación estáticas.3 arriesgan la comprobación es
también haga a esta fase.
D4 ejecuta el final descifre para todas las señales de control exigidas por el entero, número entero
ejecución y las unidades de carga/almacén.
En las primeras dos fases, el tipo de instrucción, los operandos de fuente y destino,
y los requisitos de recurso para la instrucción se determinan. alguno menos comúnmente
las instrucciones usadas son mencionadas para como las instrucciones de multicycle.La fase de El D1
rompe éstos
instrucciones hacia abajo en los codigos de operación de instrucción múltiples que sidos ordenar en serie
individualmente
hasta la tubería de ejecución.
La cola pendiente sirve dos propósitos. En primer lugar, previene que una señal de establo de
D3 de rizar cualquier subida adicional la tubería. En segundo lugar, por instrucciones de almacenamiento
temporal,
allí deben ser siempre dos instrucciones disponibles por la tubería dual. En el caso
donde sólo una instrucción se emite, la cola pendiente habilita dos instrucciones para
proceda abajo la tubería en conjunto, aún si se enviaban originalmente de la captación
unidad en los ciclos diferentes.
La operación de repetición de un encuentro es diseñada para trabajar con los efectos del sistema de
memoria
en oportunidad de instrucción. Las instrucciones se fijan la hora de de modo estático en la fase de D3
basada en
una predicción de cuando el operando de fuente será disponible. Cualquier establo de la memoria
el sistema puede resultar en el mínimo de una demora de 8 ciclos. Este mínimo de demora de 8 ciclos
sea equilibrado con el número mínimo de los ciclos posibles para recibir datos de
el L2 cache en el caso de una señorita de carga de L1. La tabla 14.2 da a los más comúnes casos
eso puede resultar en una repetición de un encuentro de instrucción debido a un establo de sistema de
memoria.
Para repartir con estos establos, un mecanismo de recuperación es usadoa limpiar todo subsecuente
instrucciones en la tubería de ejecución y nueva publicación (repetición de un encuentro) les. Para
soportar repetición de un encuentro,
las instrucciones se copian en la cola de repetición de un encuentro antes que se emitan y quiten como
contestan por escrito sus resultados y retire se. Si una señal de repetición de un encuentro es emitida
instrucciones se recuperan
de la cola de repetición de un encuentro y registre de nuevo la tubería.
Dos instrucciones de aspectos de unidad de decode de El en paralela a la unidad de ejecución, a menos
que lo
encuentros una restricción de asunto. La tabla 14.3 muestra que los más comúnes casos de restricción.
El entero, número entero ejecuta unidad
La instrucción ejecuta la unidad consista de dos unidad (ALU) de lógica aritmética simétrica
las tuberías, un generador de dirección para instrucciones de carga y almacenamiento, y el multiplicar
3 ven apéndice I para una discusión sobre marcador.
tubería. Tuberías de ejecución de El también ejecutan el registro conteste por escrito. La instrucción
ejecución unidad:
• Ejecuta todo el entero, número entero ALU y multiplican las operaciones, incluyendo la generación de
bandera
• Genere las direcciones virtuales para cargas y almacenar y el posterior de escritura de base
valore, cuando requiera
• Las provisiones formatearon datos para datos de almacenamiento y envío y banderas
• Los procesos se ramifican y otros cambios de corriente de instrucciones y evalúa instrucción
códigos de condición
Para instrucciones de ALU, o tubería puede ser usado, consistiendo de lo siguiente
fases:
E0 Access registra archivo. Hasta seis registros se pueda leer del archivo register para
dos instrucciones.
E1 el tergiversador de barril (Figure 12.25) ejecuta su función, si es necesario.
la unidad de E2 El ALU (Figure 12.25) ejecuta su función.
E3 si necesite, esta fase completa aritmética de saturación usada por cierto ARM
instrucciones de procesamiento de datos.

SIMD y tubería de punto flotante


All SIMD e instrucciones de punto flotante pasan por la tubería de entero, número entero y
sea elaborado en una tubería de 10 fases separada (Figure 14.12). Esta unidad, mencionado para
como la unidad de NEON, los mangos empaquetaron instrucciones de SIMD, y proporcionan dos tipos de
apoyo de punto flotante. Si ponga en práctica, un vector de punto flotante (VFP) el coprocesador
ejecución las operaciones de punto flotante de acuerdo con IEEE 754. Si el coprocesador

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 137
Arquitectura y Organización de Computadoras
TEORIA

no esté presente, entonces la separata multiplica y añade tuberías ponen en práctica el floatingpoint
operaciones

17.1 LAS ORGANIZACIONES DE PROCESADOR MÚLTIPLES


Tipos de paralelos sistemas Processor
un primero de taxonomía introducido por Flynn[FLYN72] sea todavía la más común vía de
categorizar sistemas con la capacidad de proceso en paralelo. Flynn propuso que lo siguiente
categorías de de computadora sistemas:
• Instrucción sencilla, los datos sencillos (SISD) corre: un procesador sencillo ejecuta A
la corriente de instrucciones sencilla para operar en datos almacenados en una memoria sencilla.
Los uniprocesadores inician esta categoría.
• Instrucción sencilla, los datos múltiples (SIMD) corre: una instrucción de máquina sencilla
controles la ejecución simultánea de varios elementos de proceso en el A
base de lockstep. Cada elemento de proceso tiene una memoria de datos asociada, así
que cada instrucción se ejecuta en un conjunto diferente de datos por el diferente
procesadores. Vector y procesadores de matrices inician esta categoría, y se discuten
en la sección 18.7.
• Instrucción múltiple, los datos sencillos (MISD) corre: una secuencia de datos se transmite
a un conjunto de los procesadores, cada uno de que ejecuta una secuencia de instrucción diferente.
Esta estructura no se pone en práctica comercialmente.
• Instrucción múltiple, los datos múltiples (MIMD) corre: un conjunto de procesadores
simultáneamente
ejecución las secuencias de instrucción diferentes en los convertidores de señales diferentes. SMP,
clústeres, y sistemas NUMA encajan en esta categoría.
Con la organización de MIMD, los procesadores son de uso general; cada uno es capaz de
para procesar todas las instrucciones necesarias para ejecutar la transformación de datos apropiada.
MIMD pueden ser adicionales subdividido por los medios en que los procesadores
comunique (Figure 17.1). Si los procesadores comparten una memoria común, entonces cada uno
el procesador accede programas y datos almacenado en la memoria compartida, y procesadores
comunique se con mutuamente por la via de esa memoria.La más común forma de tal sistema
sea conocido como un multiprocesador (SMP) simétrico , que examinamos en la sección 17.2. En
un SMP, procesadores múltiples comparten una memoria sencilla o estanque de la memoria mediante el
A
ómnibus dividido u otro mecanismo de interconexión; una característica distintiva es que el
tiempo de acceso de memoria a cualquier región de la memoria es aproximadamente el mismo para
cada uno
procesador.un desarrollo más reciente es el acceso de memoria nonuniform (NUMA) la organización,
que describa se en la sección 17.5.Como el nombre sugiere, el acceso de memoria
tiempo para las regiones diferentes de la memoria puede diferir para un procesador de NUMA.
una colección de los uniprocesadores independientes o SMP se pueden interconectar para
forme un clúster. Comunicación entre las computadoras es por la via de caminos fijos o por la via de
cierta facilidad de red.
Organizaciones paralelas
La figura 17.2 ilustra la organización general de la taxonomía de la figura 17.1.
Figure 17.2a pantalla que la estructura de un SISD.Elre es cierto en cierta medida la unidad de control
(CU)
esa proporciona una corriente de instrucciones (IS) a una unidad (PU) de proceso. El proceso
la unidad opera en una corriente de datos (DS) sencilla de una unidad (MU) de memoria. Con un
SIMD, existe una unidad de control sencilla, ahora alimentando una corriente de instrucciones sencilla
para
PU múltiples. Each PU puede tener su propia memoria dedicada ( ilustrado en la figura
17.2b ), o puede existir una memoria compartida. Finalmente, con el MIMD, allí esté múltiple
unidades de control, cada alimento una corriente de instrucciones separada a su PU. El MIMD propio
pueda ser un multiprocesador de memoria dividida ( figura 17.2c ) o una de memoria distribuída
multicomputer ( figura 17.2d ).
Los aspectos de diseño referentes a SMP, agrupan, y NUMA sea complejo, suponiendo
aspectos referentes a organización física, estructuras de interconexión, interprocessor
comunicación, diseño de sistema operativo, y las técnicas de software de la aplicación.
Nuestro asunto aquí está primariamente con organización, aunque nos tocamos brevemente en operar
aspectos de diseño de sistema.
17.2 MULTIPROCESADORES SIMÉTRICOS
Hasta bastante reciente, virtualmente todas las computadoras personales de un solo usuario y la mayor
parte de los puestos de trabajo
contenido un microprocesador de propósito general sencillo. Como demandas para el desempeño
crezca y como el coste de microprocesadores continúe dejando caer, vendedores tienen
los sistemas introducidos con una organización de SMP. SMP del término se refiere a una computadora
arquitectura de hardware y también al comportamiento de sistema operativo que refleja eso
arquitectura. An SMP puede ser definido como un sistema de computadora autónomo con lo siguiente
características:
1. Allí está dos o los procesadores más similares de la capacidad comparable.

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 138
Arquitectura y Organización de Computadoras
TEORIA

2. Estos procesadores comparten la misma memoria principal y yo/facilidades de o e interconecte se


por un ómnibus u otro plan de conexión interno, tal esa memoria
el tiempo de acceso es aproximadamente el mismo para cada procesador.
3. Todos los procesadores comparten acceso a i / o device, o hasta los mismos canales o
hasta los canales diferentes que proporcionan caminos al mismo dispositivo.
4. Todos los procesadores pueden ejecutar las mismas funciones ( por lo tanto el término simétrico ).
5. El sistema se domina por un sistema operativo integrado que proporciona interacción
entre procesadores y sus programas al trabajo, ataree, archive, y los datos
niveles de elemento.
Puntos 1 a 4 deben ser que se explica por sí mismo. Apunte 5 ilustran uno de los contrastes
con un sistema de multiproceso sueltamente acoplado, tal como un clúster. En este último, el
la unidad física de la interacción es normalmente un mensaje o archivo completo. En un SMP, el
individuo
los elementos de datos pueden constituir el nivel de interacción, y puede existir un alto grado
de la cooperación entre los procesos.
El sistema operativo de un SMP fija la hora de procesos o hilos hasta todo de
los procesadores. Una organización de SMP tiene varias ventajas potenciales sobre el A
organización de uniprocesador, incluyendo lo siguiente:
• Desempeño: Si el trabajo para hacerse por una computadora puede ser organizado de modo que
ciertas porciones del trabajo se pueden hacer en paralela, entonces un sistema con el múltiple
los procesadores producirán mayor desempeño que un con un procesador sencillo de
el mismo tipo (Figure 17.3).
Tiempo
multiprogramación de figura 17.3 y multiproceso
• Disponibilidad: En un multiprocesador simétrico, porque todos los procesadores pueden ejecutarse
las mismas funciones, la falta de un procesador sencillo no paran la máquina.
En vez, el sistema puede continuar funcionando al desempeño reducido.
• Crecimiento incremental: un usuario puede mejorar el desempeño de un sistema cerca
añadir un procesador adicional.
• Escamadura: Los vendedores pueden ofrecer un rango de productos con los precio y desempeño
diferentes
características basadas en el número de procesadores configurados en
el sistema.
Es importante notar que éstos sea potencial, antes que garantice, se benefician.El
el sistema operativo debe proporcionar herramientas y funciones para explotar el paralelismo en un
sistema SMP.
Una característica atractiva de un SMP es ésa la existencia de los procesadores múltiples es
transparente al usuario.El sistema operativo cuida la programación de hilos o
procesos en los procesadores individuales y de la sincronización entre los procesadores.
Organización
La figura 17.4 muestra en términos generales la organización de un sistema de multiprocesador.
Existen dos o más procesadores. Cada procesador sea autónomo, incluyendo un control
unit,ALU, se registran, y, tipicamente, unos o más niveles del caché. Cada procesador
tenga acceso a una memoria principal dividida y los dispositivo de entrada/salida hasta cierta forma de
la interconexión
mecanismo. Los procesadores pueden comunicarse con mutuamente
hasta la memoria ( envian mensajes e información de estado salga en común áreas de datos ). Esto
también pueda ser posible para procesadores para cambiar las señales directamente. La memoria es
a menudo organice de modo que los accesos simultáneos múltiples para separar bloques de la memoria
ser posible. En ciertas configuraciones, cada procesador puede tener también su propio privado
memoria principal y canales de entrada/salida además de los recursos divididos.
La más común organización para computadoras personales, puestos de trabajo, y
los servidores son el ómnibus dividido de tiempo. El ómnibus dividido de tiempo es el mecanismo más
simple para
construir un sistema de multiprocesador (Figure 17.5).La estructura y enlaces son
básicamente igual que para un sistema de un solo procesador que usa una interconexión de ómnibus.
El ómnibus consiste de control, dirección, y datos se alinean.Para facilitar transferencias de DMA de
procesadores de entrada/salida, las características siguientes se proveen:
• Direccionamiento: Debe ser posible para distinguir módulos en el ómnibus para determinar
la fuente y destino de datos.
• Arbitraje: Cualquier módulo de E/S puede funcionar temporalmente como " sea maestro en. " un
mecanismo
sea suministrado para arbitrar las solicitudes competitivas para control de ómnibus, usando cierto
en cierta medida el plan de prioridad.
636 CAPÍTULO 17 / PROCESO EN PARALELO
• Participación de tiempo:Cuando un módulo se está controlando el ómnibus, otros módulos se
cierran
exterior y debe, si requisito, suspenda operación hasta que se triunfa el acceso de ómnibus.
Estas características de uniprocesador son directamente útiles en una organización de SMP. En esto

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 139
Arquitectura y Organización de Computadoras
TEORIA

caso posterior, está múltiple ahora allí procesadores así como procesadores de entrada/salida múltiples
todo
intente ganar acceso a unos o más módulos de memoria por la via del ómnibus.
La organización de ómnibus tiene varias características atractivas:
• Simplicidad: Esto es el acercamiento más simple a la organización de multiprocesador. El
enlace físico y el direccionamiento, arbitraje, y la lógica de participación de tiempo de
cada procesador permanece como igual que en un sistema de un solo procesador.
• Flexibilidad: Es generalmente fácil de expandir el sistema uniendo más procesadores
al ómnibus.
• Fiabilidad: El ómnibus es esencialmente unos medios pasivos, y la falta de cualquier
el dispositivo anexo no debe causar la falta del sistema entero.
El inconveniente principal a la organización de ómnibus es el desempeño. Todas las referencias de
memoria
pase por el ómnibus común.Así, el tiempo de ciclo de ómnibus limita la velocidad de el
sistema.Mejorar desempeño, es deseable equipar cada procesador con un área para la transferencia
rápida de datos
memoria. Esto deba reducir el número de los accesos de ómnibus dramáticamente. Tipicamente,
puesto de trabajo y pc SMP han dos niveles de caché, con el caché de L1 interno
( mismo astille como el procesador ) y el L2 cache interno o externo. Algunos
los procesadores ahora emplean un área para la transferencia rápida de datos de L3 también.
El uso de cachés introduce ciertas nuevas consideraciones de diseño. Porque cada
el caché local contiene una imagen de una porción de memoria, si una palabra se altera en uno
caché, pudo invalidar de un modo imaginable una palabra en otro caché. Para prevenir que este, el
otros procesadores se deben alertar que una actualización ha tomado lugar. Este problema es
conocido como el problema de coherencia de caché y dirección tipicamente en el hardware más bien
que por el sistema operativo.Dirigimos este asunto en la sección 17.4.
Consideraciones de diseño de sistema operativo de multiprocesador
Un sistema operativo de SMP maneja procesador y otros recursos de computadora así
Que el usuario percibe un sistema operativo sencillo dominándose recursos de sistema. En
hecho, tal configuración debería aparecer como una multiprogramación de un solo procesador
sistema. En ambos SMP y casos de uniprocesador, los trabajos o procesos múltiples pueden ser
activo en un tiempo, y Esto es la responsabilidad del sistema operativo al horario
su ejecución y para distribuir recursos. un usuario puede construir las aplicaciones eso
use los procesos múltiples o los hilos múltiples dentro de procesos sin considerar
si un procesador sencillo o los procesadores múltiples serán disponibles. Así un multiprocesador
el sistema operativo debe proporcionar toda la funcionalidad de una multiprogramación
sistema más las características adicionales para acomodar los procesadores múltiples.Entre
los aspectos claves de diseño:
• Procesos concurrentes simultáneos: las rutinas de OS necesitan ser entrantes para permitir
varios procesadores para ejecutar el mismo código de IS simultáneamente.Con el múltiple
procesadores ejecutando el mismo o las partes diferentes del OS, tablas de OS y
las estructuras de manejo deben ser manejadas correctamente para evitar estancamiento o inválido
operaciones.
• Programación: Cualquier procesador puede ejecutar programación, así conflictos deben ser
evitado.El programador debe asignar los procesos listos a los procesadores disponibles.
• Sincronización: Con los procesos activos múltiples tenga el acceso potencial a
espacios de direcciones divididos o parta que yo/recursos de o, cuidado debe ser tomado en
proporcionar
sincronización efectiva. La sincronización es una facilidad que impone mutuo
orden de exclusión y de evento.
• Gestión de memoria: Gestión de memoria en un multiprocesador debe trabajar
con todos los aspectos encuentre en máquinas de uniprocesador, como se verá se en
Capítulo 8. Además, el sistema operativo necesita explotar el disponible
paralelismo de hardware, tales como memorias de acceso múltiple, para lograr el mejor desempeño.
Los mecanismos de paginación en los procesadores diferentes se deben coordinarse
para imponer la consistencia cuando varios procesadores comparten una página o segmento
y para decidir en el reemplazo de página.
• Fiabilidad y tolerancia de error: El sistema operativo deba proporcionar gracioso
degradación en presencia de la falta de procesador.El programador y otras porciones
delsistema operativo deba reconocer la pérdida de un procesador y restructura
el manejo tabula en conformidad.
Una Gran Computadora SMP
La mayor parte de la PC y puesto de trabajo SMP usan una estrategia de interconexión de ómnibus como
se muestra en
Figura 17.5. Es instructivo para mirar a un acercamiento alternativo, que es usado para un reciente
ejecución de la familia de unidad principal de IBM zSeries[SIEG04, MAK04],
llamado el z990. Esta familia de sistemas cubre un rango de un uniprocesador con uno
tarjeta de memoria principal a un sistema de alto fin con 48 procesadores y 8 tarjetas de memoria.
Los componentes claves de la configuración se muestran en la figura 17.6:
• Astilla de procesador de dos núcleos: Cada astilla de procesador incluye dos central idéntica

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 140
Arquitectura y Organización de Computadoras
TEORIA

procesadores (CP).El CP es un microprocesador de superescalar de CISC, en que la mayor parte de


las instrucciones son cableadas y el resto se ejecuta por el microcódigo vertical.
Each CP incluye una instrucción de 256 KB L1 oculte en un caché y un caché de datos de 256 KB L1.
• L2 cache: Cada L2 cache contiene 32 L2 cache MB.El disponga se en los clústeres
de cinco, con cada ocho procesador justificativo del clúster astillan y proporcionando
acceso al espacio entero de memoria principal.
• Elemento (SCE) de control de sistema: El SCE arbitra la comunicación de sistema,
y tenga un papel central al mantener la coherencia de caché.
• La memoria principal controla (MSC): El MSC interconecta los L2 cache y el
memoria principal.
• Tarjeta de memoria: Cada tarjeta tiene el 32 GB de la memoria.El configurar máximo
la memoria consiste de 8 tarjetas de memoria para un total de 256 tarjetas de memoria de GB.
interconectan
al MSC por la via de los enlaces de memoria sincrónicos (SMI).
• Adaptador (MBA) de ómnibus de memoria: El MBA proporciona un enlace a varios tipos
de los canales de entrada/salida.Tráfico para/de los canales vaya al L2 cache.
El microprocesador en el z990 sea relativamente poco común comparado con otro
procesadores modernos porque, aunque es superescalar, ejecuta las instrucciones en
orden arquitectural estricta. Sin embargo, compensa por esto teniendo una tubería más corta
y mucho las áreas para la transferencia rápida de datos más grandes y TLB comparado con otros
procesadores, conjuntamente con otro
características de mejorar desempeño.
El sistema El z990 comprende uno a cuatro libros. Cada libro es una unidad de pluggable
contener hasta 12 procesador con hasta el 64 GB de la memoria, yo/adaptadores de o, y un sistema
controle el elemento (SCE) que une estos otros elementos. El SCE dentro
cada libro contiene un L2 cache de 32 mb, que sirve del punto central de coherencia
para ese libro particular. Ambos L2 cache y la memoria principal son accesibles por
un procesador o yo/adaptador de o dentro de ese libro o cualquier de los otros tres libros en el
sistema. El SCE y astillas de L2 cache conectan también los elementos correspondientes en
los otros libros en una configuración de anillo.
Existen unas varias características interesantes en la configuración de z990 SMP, que
discutimos a su vez:
• Interconexión conmutada
• L2 cache divididos
INTERRUPCIONESORED INTERCONNECTION un ómnibus dividido sencillo es un arreglo común
en SMP para pc y puestos de trabajo (Figure 17.5).Con este arreglo, el sencillo
el ómnibus se convierte en un embotellamiento conmovedor la escalabilidad ( la habilidad para tener
cierto peso a los tamaños más grandes )
deldiseño.El z990 cubre con este problema en dos vías. En primer lugar, la memoria principal es
hendidura en tarjetas múltiples, cada con su propio controlador de almacenamiento que puede manejar
la memoria accede a de alta velocidad. La carga media de tráfico a memoria principal se corta,
debido a los caminos independientes para separar partes de la memoria. Cada libro incluye
dos tarjetas de memoria, para un total de ocho tarjetas hasta una configuración máxima.
En segundo lugar, la conexión de procesadores (en realidad de los L2 cache) a un sencillo
la tarjeta de memoria no está en la forma de un ómnibus dividido pero más bien enlaces de punto a
punto.
Cada astilla de procesador tiene un enlace a cada uno de los L2 cache en el mismo libro, y
cada L2 cache tiene un enlace, por la via del MSC, a cada una de las dos tarjetas de memoria en el
mismo libro.
Cada L2 cache sólo conecta las dos tarjetas de memoria en el mismo libro.El
el controlador de sistema proporciona enlaces ( no mostrado ) a los otros libros en la configuración,
de modo que todo de la memoria principal sea accesible por todos los procesadores.
El punto a punto vincula antes que un ómnibus proporcionan también conexiones a i / o channel.
Cada L2 cache en un libro conecta cada uno de los MBA para ese libro. El
MBA, a su vez, conectan los canales de entrada/salida.
SHARED L2 CACHES en un plan de área para la transferencia rápida de datos de dos niveles típico para
un SMP, cada procesador
tener un L1 dedicado ocultar en un caché y un L2 cache dedicado. En los últimos años, el interés en
el concepto de un L2 cache dividido ha estado creciendo. En una versión más temprana de su unidad
principal
SMP, conocido como generación 3 (G3), IBM hizo el uso de los L2 cache dedicados. En
sus versiones posteriores ( G4, serie de G5 , y z900 ), un L2 cache dividido se usa.Dos consideraciones
dictado este cambio:
1. Al moverse de G3 a G4, IBM dobló la velocidad de los microprocesadores. Si
la organización de G3 era retenida, un aumento significativo en el tráfico de ómnibus
ocurrir.Al mismo tiempo, era deseado para volver a usar como muchos componentes de G3 como sea
posible.
Sin una actualización de ómnibus significativa, los BSN se convertirían en un embotellamiento.
2. Análisis de las cargas de trabajo de unidad principal típicas reveló un grado grande de la participación
de

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 141
Arquitectura y Organización de Computadoras
TEORIA

instrucciones y datos entre los procesadores.


Estas consideraciones llevaron el equipo de diseño de G4 para considerar el uso de un o
más L2 cache, cada uno de que parta se por los procesadores múltiples ( cada procesador
tenga un L1 en astilla dedicado oculta en un caché ). A primera vista, dividir un L2 cache puede
parezca una idea mala. Acceso a memoria de procesadores debe ser lento porque el
los procesadores deben luchar ahora para el acceso a un L2 cache sencillo. Sin embargo, si un suficiente
cantidad de datos se parte en realidad por los procesadores múltiples, entonces un área para la
transferencia rápida de datos dividida puede
aumente rendimiento antes que retardarlo. Los datos que se parte y proporciona en el
El área para la transferencia rápida de datos dividida se obtiene más rápidamente que si se deben
obtenerse sobre el bus.
17.3 OCULTE EN UN CACHÉ COHERENCIA Y EL PROTOCOLO DE MESI
En los sistemas de multiprocesador contemporáneos, Esto es acostumbrado para tener un par de niveles
de
El área para la transferencia rápida de datos asociada con cada procesador. Esta organización es
esencial para logre razonable
desempeño. Hace, sin embargo, cree un problema conocido como la coherencia de caché
problema. La esencia del problema es esta: Copias múltiples de los mismos datos
pueda existir en las áreas para la transferencia rápida de datos diferentes simultáneamente, y si los
procesadores se permiten a la actualización
sus propias copias libremente, una vista inconsistente de la memoria pueden resultar. En el capítulo 4
que nosotros
el dos campo común definido escribe políticas:
• Contestar por escrito: Las operaciones de escritura se hacen normalmente sólo para el caché.
Memoria principal
actualice sólo cuando la línea correspondiente de caché se ruboriza de el
caché.
• Escriba completamente: Todo escriba las operaciones haga se a memoria principal así como para
el caché, asegurando que la memoria principal es siempre válida.
Está claro que una política posterior de escritura puede resultar en la inconsistencia. Si dos cachés
contenga la misma línea, y la línea se actualiza en un caché, el otro caché puede
sin saber tenga un valor no válido. Subsecuente lea para que inválido raya producto
resultados inválidos. Aún con la política por escrituras, la inconsistencia pueda ocurrir a menos que
otros cachés controlan el tráfico de memoria o reciba cierta notificación directa de
la actualización.
En esta sección, examinaremos brevemente varios enfoques a la coherencia de caché
problema y entonces foco en el acercamiento que es la mayor parte del ampliamente usado: el MESI
(modified/exclusivE/Shared/invalid) el protocolo. una versión de este protocolo es usada en
ambas ejecuciones de Pentium 4 y PowerPC.
Para cualquier protocolo de coherencia de caché, el objetivo es dejar recientemente usar local
las variables se meten en el caché apropiado y permanencia allí hasta numeroso reads y
escritura, al usar el protocolo para mantener la consistencia de divididas variables eso
pueda estar en los cachés múltiples al mismo tiempo. Oculte en un caché enfoques de coherencia tienen
generalmente sido dividido en de software y hardware se acerca. Ciertas ejecuciones
adopte una estrategia que supone ambos software y elementos de hardware. Sin embargo,
la clasificación en los enfoques de software y de hardware es todavía instructiva
y esté usado en examinar estrategias de coherencia de caché.
Soluciones de software
Los planes de coherencia de caché de software intentan para evitar la necesidad del hardware adicional
sistema de circuitos y lógica dependiendo en el compilador y sistema operativo para trabajar
con el problema. Los enfoques de software son atractivos porque los gastos generales de detectar
los problemas potenciales se transferencian del tiempo de ejecución para compilar tiempo, y el diseño
la complejidad se transferencia de hardware a software. Por otra parte,
compile-tiempo de software enfoques generalmente deben hacer las decisiones conservadoras,
guiar a utilización de caché ineficiente.
Los mecanismos de coherencia con base en compilador ejecutan un análisis en el código para determinar
que artículos de datos pueden volverse inseguros para ocultar en un caché, y marcan ésos
artículos en conformidad. El sistema operativo o hardware entonces previenen noncacheables
artículos de ser ocultado en un caché.
El acercamiento más simple es prevenir todos los datos divididos variables de ser
ocultado en un caché.Esto es demasiado conservador, porque una estructura de datos dividida puede ser
exclusivamente
usado durante ciertos períodos y pueda ser efectivamente sólo para lectura durante otros períodos. Esto
sea único durante períodos cuando al menos un proceso puede actualizar la variable y al menos
un otro proceso puede acceder la variable que coherencia de caché es un asunto.
Los enfoques más eficientes analizan el código para determinar los períodos seguros para
variables divididas. El compilador entonces inserta instrucciones en el código generado para
imponga la coherencia de caché durante los períodos críticos. varias técnicas tienen
sido desarrollado para el tocar un instrumento musical el análisis y para imponer los resultados; ver
[LILJ93] y[STEN90] para los estudios.

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 142
Arquitectura y Organización de Computadoras
TEORIA

Soluciones de hardware
Las soluciones con base en hardware son generalmente mencionadas para como ocultan en un caché
protocolos de coherencia.
Estas soluciones proporcionan el reconocimiento dinámico al tiempo de ejecución de la inconsistencia
potencial
condiciones. Porque el problema se negocia sólo con cuando se levanta en realidad, allí está
el uso más efectivo de cachés, guiando al desempeño mejorado sobre un software
acercamiento. Además, estos enfoques son transparentes al programador y el
el compilador, reduciendo la carga de software de desarrollo.
Los planes de hardware difieren en varios datos, incluyendo dondelestado
información sobre las líneas de datos es agarrada, cómo que información es organizada, donde
coherencia
imponerse, y los mecanismos de imposición. Por lo general, planes de hardware
pueda ser dividido en las categorías dos: protocolos y protocolos de curioso directivos.
el directorio protocoliza los protocolos directivos reúnen y mantienen información
sobre donde las copias de líneas resida. Tipicamente, existe un controlador centralizado que es
parte del controlador de memoria principal, y un directorio que sida guardado en la memoria principal.
El directorio contiene la información de estado global sobre los contenidos del vario
cachés locales.Cuando un controlador de caché individual hace una solicitud, el centralizado
el controlador verifica y emite el requisito manda para transferencia de datos entre la memoria
y cachés o entre los cachés. Es también responsable para mantener la información de estado
hasta la fecha; por lo tanto, cada acción local que puede afectar el estado global del A
la línea debe ser reportada al controlador central.
Tipicamente, el controlador mantiene la información sobre que los procesadores tienen A
copia de que se alinean. Antes de un procesador pueda escribir a una copia local de una línea, debe
pedir
el acceso exclusivo a la línea del controlador. Antes de otorgar esta exclusiva
acceso, el controlador envia un mensaje a todos los procesadores con una copia ocultada en un caché de
esto
alinee se, forzando cada procesador para invalidar su copia. Después de recibir reconocimientos
parte posterior de cada tal procesador, el controlador otorga el acceso exclusivo al pidiendo
procesador.Cuando otros tries de procesador para leer una línea ése se otorga exclusivamente
para otro procesador, enviará una notificación de señorita al controlador.El controlador
entonces emita una orden a la posesión de procesador que la línea que requiere el procesador
para hacer un write back a memoria principal.La línea ahora puede estar dividido para leer por el
procesador original y el procesador de pedir.
Los planes directivos padecen de los inconvenientes de un embotellamiento central y el
gastos generales de la comunicación entre los varios controladores de caché y la central
controlador. Sin embargo, son efectivos en los sistemas a gran escala que suponen múltiple
ómnibus o alguna otra interconexión compleja forman proyectos.
SNOOPY protocoliza protocolos de curioso distribuya la responsabilidad para mantener
coherencia de caché entre todos los controladores de caché en un multiprocesador. caché A
deba reconocer cuando una línea que se mantiene es dividida con otros cachés.Cuando una actualización
la acción se ejecuta en una línea de caché dividida, se debe ser locutor a todos los otros cachés
por un mecanismo difundido. Cada controlador de caché es capaz de la "buscavidas" en la red
para observar éstos emitieron notificaciones, y reaccionan en conformidad.
Los protocolos de curioso son idealmente propios para un multiprocesador con base en ómnibus, porque
el
el ómnibus dividido proporciona unos medios simples para emitir y curiosear. Sin embargo, porque
uno de los objetivos del uso de las áreas para la transferencia rápida de datos locales son evitar accesos
de bus, inquiete se
se deba tomar que el tráfico de ómnibus aumentado requerido por emitiendo y curioseando
no contrabalancee las ganancias del uso de los cachés locales.
Dos enfoques básicos al protocolo de curioso han sido explorados: la escritura invalida
y escriba la actualización ( o escriba la emisión ).Con una escritura-invalide protocolo, allí
pueda ser lectores múltiples pero sólo un escritor a la vez. Inicialmente, una línea se puede partir
entre varios cachés para leer propósitos.Cuando uno de los cachés quieren ejecutarse
una escritura a la línea, Esto primero emite un anuncio que invalida que alinee se en el otro
los cachés, haciendo la exclusiva de línea al caché de escritura. Una vez que la línea sea exclusiva, el
poseer procesador puede hacer las escrituras locales baratas hasta que algún otro procesador exige
la misma línea.
Con un protocolo de actualización de escritura, puede existir escritores múltiples así como múltiple
lectores.Cuando un procesador desea actualizar una línea dividida, la palabra para actualizarse es
distribuído para todo otros, y los cachés conteniendo que línea puede actualizarlo.
Ni de estos dos enfoques es superior al otro bajo todas las circunstancias.
El desempeño depende del número de los cachés locales y el modelo de
la memoria lea y escribe. Ciertos sistemas ponen en práctica protocolos adaptablas ese empleo
ambas escritura-invalidan y los mecanismos de actualización de escritura.
La escritura-invalidelacercamiento es la mayoría ampliamente usado en el multiprocesador comercial
los sistemas, tales como los Pentium 4 y PowerPC. Marca el estado de cada

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 143
Arquitectura y Organización de Computadoras
TEORIA

oculte en un caché la línea ( usando dos bits extras en la etiqueta de caché ) como modifique, la
exclusiva, partido, o enferme se.
Por esta razón, la escritura-invalidelprotocolo es llamado a MESI. En el residuo
de esta sección, miraremos a su uso entre los cachés locales hasta un multiprocesador.
Para la simplicidad en la presentación, no examinamos los mecanismos incluidos en
coordinarse entre ambos nivel 1 y nivel 2 localmente así como al mismo tiempo coordinándose
hastal multiprocesador distribuído. Esto no podría añadir cualquier nuevos principios
pero grandemente complique la discusión.
Protocolo de El MESI
Para proporcionar la consistencia de caché en un SMP, los datos ocultan en un caché a menudo soporta
un protocolo
conocido como MESI. Para MESI, los datos ocultan en un caché incluye dos estado bit por etiqueta, de
modo que
cada línea puede estar en uno de cuatro estados:
• Modificado: La línea en el caché ha sido modificada (diferente de memoria principal)
y sea disponible sólo en este caché.
• Exclusiva: La línea en el caché es igual que ese en memoria principal y no es presente en cualquier
otro caché.
• Dividido: La línea en el caché es igual que ese en memoria principal y pueda ser
presente en otro caché.
• Inválido: La línea en el caché no contiene los datos válidos.
La tabla 17.1 resume el significado de los cuatro estados. La figura 17.7 muestra A
diagbifurcacion de estado para el protocolo de MESI. Tenga presente que cada línea del caché tiene
su propio estado bit y por lo tanto su propia comprensión del diagbifurcacion de estado. Figure 17.7a
exhibiciones las transiciones que ocurren debido a acciones iniciadas por el procesador anexo a
este caché. Figure 17.7b muestran que las transiciones que ocurren debido a los eventos que son
curioseado en el ómnibus común. Esta presentación de los diagbifurcacions de estado separados para
las acciones iniciadas de procesador e iniciadas de ómnibus ayudan para aclarar la lógica del MESI
protocolo. A cualquier hora una línea de caché es en un estado sencillo. Si el evento próximo es de el
procesador anexo, entonces la transición es dictada por Figure 17.7a y si el próximo
el evento es del ómnibus, la transición se dicta por Figure 17.7b. Parecemos a éstos
transiciones con más detalle.
READ MISS cuando una señorita leída ocurre en el área para la transferencia rápida de datos local, el
procesador inicia A
memoria leída para leer la línea de la memoria principal que contiene los desaparecidos la dirección. El
el procesador inserta una señal en el bus que alerta todos los otras unidades de procesador / área para
la transferencia rápida de datos para
curiosee la transacción.Existen varios resultados posibles:
• Si un otro caché tiene un limpio ( sin modifique desde leer de memoria ) la copia de
la línea en el estado exclusivo, retorna una señal indicando que Esto comparte esto
línea. El procesador de responder entonces transiciones el estado de su copia de
exclusiva para partir, y el procesador de iniciar lee la línea de la parte principal
memoria y transiciones la línea en su caché del inválido para partir.
• Si unos o más cachés tienen una copia en limpio de la línea en el estado dividido, cada uno de
señales de que comparta la línea. El procesador de iniciar lee la línea y
transiciones la línea en su caché del inválido para partir.
• Si un otro caché tiene una copia modificada de la línea, entonces que oculte en un caché los bloques el
la memoria leído y proporciona la línea al caché de pedir sobre el dividido
ómnibus.El caché de responder entonces cambia su línea de modificado para partir.1 el
alinee se envie al caché de pedir sea recibido también y andado en una procesión por la memoria
el controlador, que almacena el bloque en la memoria.
• Si ningún otro caché tiene una copia de la línea ( limpie o modifique ), entonces ningunas señales son
retornado. El procesador de iniciar lee la línea y transiciones la línea en su
caché de inválido a exclusiva.
READ HIT cuando un golpe leído ocurre en una línea corrientemente en el área para la transferencia
rápida de datos local, el procesador
simplemente lea el artículo requerido.No existe ningún cambio de estado:Los restos de estado se
modificaban,
dividido, o exclusivo.
WRITE MISS cuando una señorita de escritura ocurre en el área para la transferencia rápida de datos
local, el procesador inicia A
memoria leída para leer la línea de la memoria principal que contiene los desaparecidos la dirección.
Para
este propósito, el procesador emite una señal en el bus esto significa que de tomodify leído con intento
(RWITM).Cuando la línea es cargada, es marcado inmediatamente modificado.Con
respeto a otros cachés, dos posible guiones preceden la carga de la línea de datos.
En primer lugar, algún otro caché puede tener una copia modificada de esta línea
En este caso, el procesador alertado comunica el procesador de iniciar que otro procesador
( manifieste = modifique se ).

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 144
Arquitectura y Organización de Computadoras
TEORIA

1 en ciertas ejecuciones, el área para la transferencia rápida de datos con la línea modificada comunica
el procesador de iniciar para reensayar.
Entretanto, el procesador con la copia modificada ase el bus, escriba la línea modificada de vuelta a
parte principal
memoria, y las transiciones la línea en su caché de modificado para partir. Posteriormente, el pidiendo
el procesador prueba de nuevo y encuentre que unos o más procesadores tienen una copia en limpio de
la línea en el dividido
estado, como se describe en el punto precedente.
tenga una copia modificada de la línea. El procesador de iniciar rindelbus y
esperas. El otro acceso de ganancias de procesador al bus, escribe la línea modificada de área para la
transferencia rápida de datos
de vuelta a memoria principal, y transiciones el estado de la línea de caché para caer enfermo ( porque
el procesador de iniciar va a modificar esta línea ). Posteriormente, el iniciando
el procesador emitirá de nuevo una señal al bus de RWITM y entonces lea la línea
de memoria principal, modifique la línea en el caché, y marque la línea en el modificado
estado.
El segundo guión es que ningún otro caché tiene una copia modificada del pedido
línea. En este caso, ninguna señal es retornada, y los productos de procesador de iniciar para leer en
la línea y lo modifique. Entretanto, si unos o más cachés tienen una copia en limpio de la línea
en el estado dividido, cada caché invalida su copia de la línea, y si un caché tiene A
copia en limpio de la línea en el estado exclusivo, invalida su copia de la línea.
WRITE HIT cuando un golpe de escritura ocurre en una línea corrientemente en el caché local, el efecto
dependa del estado actual de esa línea en el caché local:
• Dividido: Antes de tocar un instrumento musical la actualización, el procesador debe ganar la
propiedad exclusiva
de la línea. El procesador comunica su dedicado al bus. Cada procesador
esa tiene una copia dividida de la línea en sus transiciones de caché el sector de partido
para enfermarse.El procesador de iniciar entonces ejecuta la actualización y transiciones que su
copia de la línea de partido para modificarse.
• Exclusiva: El procesador ya tiene el control exclusivo de esta línea, y así Esto
simplemente ejecución la actualización y transiciones su copia de la línea de la exclusiva
para modificarse.
• Modificado: El procesador ya tiene el control exclusivo de esta línea y tenga el
la línea marcada como modificó, y así Esto ejecuta simplemente la actualización.
la consistencia de L1-L2 CACHE que hemos descrito hasta ahora protocolos de coherencia de caché
desdelpunto de vista de la actividad de cooperate entre las áreas para la transferencia rápida de datos
una al mismo bus u otro
facilidad de interconexión de SMP.Tipicamente, estas áreas para la transferencia rápida de datos son L2
cache, y cada procesador
también tenga un área para la transferencia rápida de datos de L1 que no se une directamente al bus y
que por lo tanto
no pueda participar un protocolo de curioso.Así, cierto plan fue necesario para mantener datos
integridad hasta ambos niveles de caché y hasta todos los cachés en la configuración de SMP.
La estrategia es extender el protocolo de MESI ( o cualquiera coherencia de caché protocoliza )
al L1 oculte en un caché. Así, cada línea en el caché de L1 incluye bits para indicar el
estado. En esencia, el objetivo es lo siguiente: para cualquier línea que esté presente en ambos un
L2 cache y su caché de L1 correspondiente, el estado de línea de L1 debería seguir la pista del estado de
la línea de L2. unos medios simples de hacer esta es adoptar la política por escrituras en el
caché de L1; en este caso la escritura hasta es el L2 cache y no a la memoria.
La política por escrituras de El L1 fuerza cualquier transformación a un L1 marque al L2
oculta en un caché y por lo tanto haz lo visible a otros L2 cache. El uso del writethrough de L1
la política requiere que el contenido de L1 debe ser un subconjunto del contenido de L2.Esto
a su vez sugiere que el associativity del L2 cache deba estar a la altura de o mayor
que ese del associativity de L1. La política por escrituras de El L1 es usada en la IBM
S/390 SMP.
Si el caché de L1 tiene una política posterior de escritura, la relación entre los dos cachés
ser más complejo.Existen varios enfoques para mantener coherencia. Por ejemplo,
el acercamiento usado en el Pentium II se describe en detalle en [SHAN05].
17.4 LOS MULTIPROCESADORES DE MULTIHILO Y DE ASTILLA
La más importante medida del desempeño para un procesador es el índice a que lo
ejecución instrucciones.Esto se puede expresar como
donde la f es la frecuencia de reloj de procesador, en MHz, y IPC (las instrucciones por ciclo)
es el número medio de las instrucciones ejecutadas por el ciclo. En conformidad, diseñadores
haya perguido la meta de aumentar desempeño en dos frentes: reloj creciente
la frecuencia y aumentando el número de las instrucciones ejecutó o, mejor dicho,
el número de las instrucciones que completa durante un ciclo de procesador. Como nosotros
visto en capítulos más tempranos, los diseñadores han aumentado a IPC usando una instrucción
tubería y entonces usando múltiple comparan tuberías de instrucción en un superescalar
arquitectura.Con diseños tuberías y de tubería múltiple, el problema principal es
para aumentar al máximo la utilización de cada fase de tubería. Para mejorar rendimiento, diseñadores

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 145
Arquitectura y Organización de Computadoras
TEORIA

haya creado alguna vez mecanismos más complejos, tal como ejecutado ciertas instrucciones
en una orden diferente de la vía estos ocurren en la corriente de instrucciones y
comenzar ejecución de las instrucciones que nunca puede necesitarse. Pero como se verá se
en la sección 2.2 , este acercamiento puede estar extendiendo un límite debido a la complejidad y
preocupaciones de consumo de poder.
Un acercamiento alternativo, que tiene en cuenta un alto grado de nivel de instrucción
paralelismo sin aumentar complejidad o consumo de poder de circuito, se llama
multihilo. En esencia, la corriente de instrucciones es dividida en varios más pequeño
las corrientes, conocidas como enhebran, tal que los hilos se pueden ejecutar en la paralela.
La variedad de los diseños de multihilo específicos, comprendió en ambos comercial
los sistemas y los sistemas experimentales, sea vasto. En esta sección, damos a un estudio breve de
los conceptos principales.
Multihilo implícito y explícito
El concepto del hilo usado en discutiendo procesadores multihilos no puede o no puede
sea igual que el concepto de los hilos de software en un sistema operativo de multiprogrammed.
Será útil para definir los términos brevemente:
• Proceso: Un caso de una corrida de programa en una computadora. un proceso se une formando
cuerpo
dos características claves:
—Propiedad de recurso: un proceso incluye un espacio de direcciones virtual para tener el
imagen de proceso; la imagen de proceso es la colección de programa, datos, pila,
y los atributos que definen el proceso. De vez en cuando, un proceso puede ser
distribuido controle o la propiedad de los recursos, tal como memoria principal, canales de
entrada/salida,
dispositivo de entrada/salida, y archivos.
—Scheduling/execution: La ejecución de un proceso sigue un camino de ejecución
(rastro) hasta unos o más programas. Esta ejecución se puede interfoliar
con eso de otros procesos. Así, un proceso tiene un estado de ejecución ( corriendo,
Listo, etc.) y una prioridad de enviar y es la entidad que sida fijar la hora de
y enviado por el sistema operativo.
MIPS evalúa = f * IPC
• Interrupciones de proceso: Una operación que conmuta el procesador de un proceso para
otro, salvando todos los datos de control de proceso, registros, y otra información
para el primero y reemplazando les con la información de proceso para el segundo.2
• Hilo: una unidad enviar del trabajo dentro de un proceso. Incluye un procesador
el contexto ( que incluye el indicador de contador de instrucción y pila ) y su propio
área de datos para una pila ( para habilitar la subrutina ramificandome ). un hilo ejecuta
consecutivamente
y sea interrumpido de modo que el procesador pueda volver hacia otro hilo.
• Interrupciones de hilo: El acto de conmutar el control de procesador de un hilo para otro
dentro del mismo proceso.Tipicamente, este tipo del interrupcionesor es mucho menos costoso
que un interrupcionesor de proceso.
Así, un hilo es interesado con programación y ejecución, mientras que un proceso
sea interesado con ambas propiedad de programación / ejecución y recurso. El múltiple
hilos dentro de un proceso comparten los mismos recursos. Esto es porque un interrupcionesor de hilo
es
mucho menos el consumidor de tiempo que un interrupcionesor de proceso.Sistemas operativos
tradicionales, tal
como las versiones más tempranas de UNIX, no soporte hilos. La mayor parte de los sistemas operativos
modernos,
tal como Linux, otras versiones de UNIX, y Windows, soporta hilo. A
la distinción se hace entre hilos a nivel de usuario, que es visible a la aplicación
programe, y los hilos a nivel de núcleo, que son visibles sólo al sistema operativo.
Ambos de éstos puede ser mencionado para como los hilos explícitos, definido en el software.
Todos los procesadores comerciales y la mayor parte de los procesadores experimentales así
la distancia ha usado el multihilo explícito. Estos sistemas concurrentemente ejecutan instrucciones
de los hilos explícitos diferentes, o interfoliando instrucciones de diferente
hilos en las tuberías divididas o por comparar la ejecución en las tuberías paralelas.
El multihilo implícito se refiere a la ejecución concurrente de los hilos múltiples
extraído de un programa consecutivo sencillo. Estos hilos implícitos se pueden definir
o de modo estático por el compilador o con dinamismo por el hardware. En el residuo
de esta sección consideramos el multihilo explícito.
Enfoques a multihilo explícito
A mínimo, un procesador multihilo debe proporcionar un contador de instrucción separado
para cada hilo de la ejecución para ejecutarse concurrentemente. Los diseños difieren en el
cantidad y tipo del hardware adicional acostumbraron a soportar la ejecución de hilo concurrente.
Por lo general, instrucción atractivo tenga lugar en una base de hilo. El procesador
los convites cada enhebran separadamente y pueden usar varias técnicas para optimizar
la ejecución de un solo hilo, incluyendo predicción de bifurcacion, se registra nombrando de nuevo, y
superescalar

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 146
Arquitectura y Organización de Computadoras
TEORIA

técnicas.Lo que logre se es el paralelismo a nivel de hilo, que puede proporcionar


para desempeño grandemente mejorado cuando se para el paralelismo a nivel de instrucción.
Ampliamente habla, existen cuatro enfoques principales a multihilo:
• Multihilo interfoliado: Esto es también conocido con el nombre del multihilo muy bien áspero.
El procesador negocia con dos o más contextos de hilo a la vez, cambiándose
de un hilo para otro a cada ritmo de reloj. Si un hilo sea bloqueado porque
2 el cambio de contexto de término se proporcionan a menudo en literatura de OS y libros de texto .
Desafortunadamente, aunque la mayor parte de
la literatura usa este término para significar lo que llame aquí un interrupcionesor de proceso, otras
fuentes lo usan para significar A
interrupcionesor de hilo.Para evitar ambiguedad, el término no es usado en este libro.
de las dependencias o latencias de memoria de datos, ese hilo se salta y un listo
el hilo se ejecuta.
• Multihilo bloqueado: Esto es también conocido con el nombre del multihilo burdo áspero.
Las instrucciones de un hilo se ejecutan sucesivamente hasta que un evento ocurre
esa puede causar demora, tal como una señorita de caché. Este evento induce un interrupcionesor para
otro
hilo. Este acercamiento es efectivo en un procesador en orden que
ponga en establo la tubería para un evento de demora tal como una señorita de caché.
• Multihilo (SMT) simultáneo: Las instrucciones se emiten simultáneamente
de los hilos múltiples a las unidades de ejecución de un procesador de superescalar. Esto
los monipodios la instrucción de superescalar ancha emiten la capacidad con el uso del múltiple
contextos de hilo.
• Multiproceso de astilla: En este caso, el procesador entero es replegado en un sencillo
astilla y cada procesador maneja los hilos separados. La ventaja de esto
el acercamiento es que el área disponible de lógica en una astilla es usada efectivamente sin
en dependencia de alguna vez-aumentando la complejidad en el diseño de tubería.Esto es mencionado
para
como el multicore; examinamos este tema separadamente en el capítulo 18.
Para los primeros dos enfoques, las instrucciones de los hilos diferentes no se ejecutan
simultáneamente. En vez, el procesador es capaz de cambiarse rápidamente de uno
hilo para otro, usando un conjunto diferente de registros y otra información de contexto.
Estos resultados en una utilización mejor de los recursos de ejecución del procesador y evita
una pena grande debido a las señoritas de caché y otros eventos de latencia.El acercamiento de El SMT
supone
la ejecución simultánea verdadera de las instrucciones de hilos diferentes, usando
recursos de ejecución replegados. Astille el multiproceso también habilita la ejecución simultánea
de las instrucciones de los hilos diferentes.
Figura 17.8, basado en un en [UNGE02], ilustre alguno del posible
las arquitecturas de tubería que suponen el multihilo y los contrastes estos con los enfoques
eso no usa multihilo. Cada fila de horizontal representa el asunto potencial
ranure o las ranuras para un ciclo de ejecución sencillo; es decir, la anchura de cada fila corresponde
al número máximo de las instrucciones que pueden ser emitidas en un ritmo de reloj sencillo.3
La dimensión vertical representa la secuencia de tiempo de los ritmo de reloj. Un vacío
( sombre ) ranure representa una ranura de ejecución no usado en una tubería. un ningún operativo
indique se
por N.
Las primeras tres ilustraciones en la figura 17.8 muestra los enfoques diferentes con una magnitud
escalar
( es decir, de un solo asunto ) el procesador:
• Magnitud escalar de un solo hilo: Esta es la tubería simple proporcionada en RISC tradicional
y máquinas de CISC, sin el multihilo.
• Magnitud escalar interfoliada multihila: Esto es el acercamiento más fácil de multihilo
para poner en práctica. Cambiándose de un hilo para otro a cada ritmo de reloj, el
las fases de tubería se pueden mantener enteramente ocupadas, o cerca de enteramente ocupado. El
el hardware debe ser capaz de la conmutación de un contexto de hilo para otro
entre los ciclos.
3 ranuras de asunto son la posición de que instrucciones se pueden emitir en un ritmo de reloj dado.
Llamada de
Capítulo 14 que asunto de instrucción es el proceso de iniciar la ejecución de instrucción en el
procesador funcional
unidades.Esto ocurre cuando una instrucción se mueve de la fase de decode de la tubería al primero
ejecuta
fase de la tubería.
• Magnitud escalar multihila bloqueada: En este caso, un hilo sencillo se ejecuta hasta el A
el evento de latencia ocurre que pararía la tubería, a que cronometre el procesador
interrupcionesores a otro hilo.
Figure 17.8c pantalla que una situación en que el tiempo para ejecutar un interrupcionesor de hilo es
un ciclo, mientras que figure 17.8b muestran que la conmutación de hilo ocurre en los ciclos de cero. En
el caso de interfoliar multihilo, se supone que no existe ningún control o

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 147
Arquitectura y Organización de Computadoras
TEORIA

dependencias de datos entre los hilos, que simplifica el diseño de tubería y por lo tanto
deba permitir un hilo se cambia sin la demora. Sin embargo, en dependencia del específico
el diseño y ejecución, bloquee multihilo puede requerir un ritmo de reloj para ejecutarse
un interruptor de hilo, como se ilustra en la figura 17.8.Esto es verdadero si una instrucción buscada
gatillos el interruptor de hilo y se deba desechar de la tubería[UNGE03].
Aunque interfoliado multihilo parece ofrecer la utilización de procesador mejor
que multihilo bloqueado, hace así sacrificando el desempeño de un solo hilo.
Los hilos múltiples compiten para recursos de caché, que levantan el
probabilidad de una señorita de caché para un hilo dado.
Más oportunidades para la ejecución paralela sea disponible si el procesador puede
emita las instrucciones múltiples por el ciclo. Las figuras 17.8d hasta 17.8i ilustre un número
de variaciones entre procesadores que tienen hardware por emitir cuatro instrucciones por
ciclo. En todos estos casos, únicas instrucciones de un hilo sencillo se emiten en un sencillo
ciclo.Las alternativas siguientes se ilustran:
• superescalar: Esto es el acercamiento básico de superescalar sin el multihilo.
Hasta relativamente recientemente, esto era el más poderoso acercamiento para proporcionar
paralelismo dentro de un procesador. Nota que durante ciertos ciclos, no todo el
las ranuras de asunto disponibles se usan. Durante estos ciclos, menos del máximo
número de las instrucciones se emite; esto es mencionado para como la pérdida horizontal. Durante
otros ciclos de instrucciones, ningunas ranuras de asunto se usan; éstos son los ciclos cuando ningunas
instrucciones
se poder emitir; esto es mencionado para como la pérdida vertical.
• El superescalar de multihilo interfoliado: Durante cada ciclo, como muchas instrucciones
como posible sea derivado de un hilo sencillo.Con esta técnica, el potential
demoras debido a interrupcionesores de hilo se eliminan, como previamente discutido. Sin embargo,
el número de instrucciones emitidas en cualquier ciclo dado es todavía limitado por dependencias
eso existe dentro de cualquier hilo dado.
• superescalar multihilo bloqueado: De nuevo, instrucciones de sólo un hilo
se pueda emitir durante cualquier ciclo, y bloquee multihilo se usa.
• Palabra de instrucción muy larga (VLIW): una arquitectura de VLIW, tal como IA-64 ,
las instrucciones múltiples de los lugares en una palabra sencilla.Tipicamente, un VLIW se construye por
el compilador, que pone operaciones que pueden ser ejecutadas en paralela en el
misma palabra. En una máquina de VLIW simple ( figura 17.8g ), si no es posible completamente
llene la palabra con las instrucciones para emitirse en paralela, ningún operativo use se.
• El multihilo interfoliado VLIW: Este acercamiento debería proporcionar las eficiencias similares
a ésos proveídos por el multihilo interfoliado en un superescalar
arquitectura.
• VLIW multihilo bloqueado: Este acercamiento debería proporcionar las eficiencias similares
a ésos proveídos por el multihilo bloqueado en una arquitectura de superescalar.
Los dos enfoques finales ilustrados en la figura 17.8 habilitan la paralela, simultáneo
ejecución de múltiples hilos:
• Multihilo simultáneo: Figure 17.8i pantalla que un sistema capaz de que emite 8
instrucciones a la vez. Si un hilo tiene un alto grado de nivel de instrucción
paralelismo, Esto puede en ciertos ciclos son capaz del reempaquetado todas las ranuras horizontales.
En otros ciclos, instrucciones de dos o más hilos se pueden emitir. Si es suficiente
los hilos son activos, Esto normalmente debe ser posible para emitir el número máximo
de las instrucciones en cada ciclo, proporcionando un alto nivel de la eficiencia.
• Astille el multiprocesador (multicore): Figure 17.8k pantalla que una astilla que contiene cuatro
los procesadores, cada uno de que tenga un procesador de superescalar de dos aspectos. Cada
procesador
sea asignado un hilo, de que puede emitir hasta dos instrucciones por
ciclo.Discutimos computadoras de multicore en el capítulo 18.
Comparando las figuras 17.8j y 17.8k, vemos que un multiprocesador de astilla con el
misma instrucción emite la capacidad como un SMT no pueda lograr el mismo grado de
paralelismo a nivel de instrucción. Esto es porque el multiprocesador de astilla no es capaz para
oculte latencias emitiendo instrucciones de otros hilos. Por otra parte, la astilla
el multiprocesador debería aventajar en desempeño un procesador de superescalar con la misma
instrucción
emita capacidad, porque las pérdidas horizontales serán mayores para el superescalar
procesador. Además, es posible usar multihilo dentro de cada uno de los procesadores
en un multiprocesador de astilla, y esto se hace en ciertas máquinas contemporáneas.
Sistemas de ejemplo
modelos más recientes de PENTIUM 4 del uso de Pentium 4 una técnica de multihilo
Que la literatura de INTEL se refiere a como el hiperhilo[MARR02]. En esencia, el Pentium
4 acercamiento es usar a SMT con el apoyo por dos hilos.Así, el multihilo sencillo
el procesador es lógicamente dos procesadores.
la astilla de IBM POWER 5 El IBM Power5 , que es usada en los productos de PowerPC de alto fin,
los monipodios astillan el multiproceso con SMT[KALL04]. La astilla tiene dos separata
los procesadores, cada uno de que es un procesador multihilo capaz de que apoya dos

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 148
Arquitectura y Organización de Computadoras
TEORIA

los hilos concurrentemente usando SMT. Interesantemente, los diseñadores simularon varias
alternativas
y encuentra que tienen dos procesadores de SMT de dos sentidos en un sencillo astilla provea
el desempeño superior a un procesador de SMT de cuatro vías sencillo. Las simulaciones
muestra que el multihilo adicional más allá del apoyo por dos hilos puede
desempeño de disminución debido a paliza de caché, como datos de un hilo desplaza
datos necesitados por otro hilo.
La figura 17.9 muestra que el diagbifurcacion de flujo de instrucción de IBM Power5's. Sólo unos cuantos
de
los elementos en el procesador necesitan ser replegados, con los elementos separados dedicados
para separar hilos.Dos contadores de instrucciones se usan.Los substitutos de procesador
instrucciones atractivas, hasta ocho a la vez, entre los dos hilos. Todas las instrucciones
ser guardado en una instrucción común oculta en un caché y comparte una traducción de instrucción
la facilidad, que hace una instrucción parcial descifra.Cuando una bifurcación condicional es encontrada,
la facilidad de predicción de bifurcacion predice la dirección de la bifurcacion y, si
posible, calcule la dirección de objetivo. Para predecir el objetivo de un retorno de subrutina,
el procesador usa una pila de retorno, un para cada hilo.
Instrucciones entonces se mueven en dos buffer (regulador)de instrucción separados. Entonces, en el
base de la prioridad de hilo, un grupo de las instrucciones se escoge y descifra en la paralela.
Después, las instrucciones fluyen hasta una facilidad de nombrar de nuevo registro en la orden de
programa. Lógico
los registros se combinan a los registros físicos.El Power5 tiene 120 propósito general físico
registros y 120 registros de punto flotante físicos.Las instrucciones son entonces
movido en el asunto forme fila. De las colas de asunto, las instrucciones se emiten usando
multihilo simétrico. Es decir, el procesador tiene una arquitectura de superescalar y
pueda emitir instrucciones de unos o ambos hilos en la paralela. Al final de el
tubería, los recursos de hilo separados fue necesario para comprometer las instrucciones.
17.5 CLÚSTERES
Un diseño de sistema de computadora importante y relativamente reciente de desarrollo está
agrupando.
Agrupar es una alternativa a multiproceso simétrico como un acercamiento para proporcionar
desempeño alto y la disponibilidad alta y sea particularmente atractivo para
aplicaciones de servidor. Podemos definir un clúster como un grupo de interconecte, el total
las computadoras de trabajo en conjunto como un recurso de informática unificado que pueda crear el
ilusión de ser una máquina. La computadora entera de término significa un sistema que puede
corra sobre su propio, aparte del clúster; en la literatura, cada computadora en un clúster es
tipicamente mencionado para como un bulto.
[BREW97] los cuatro beneficios de listas ése se puede triunfar con agrupar. Éstos puede
también sea inimaginado como objetivos o requisitos de diseño:
• Escalabilidad absoluta: Es posible crear clústeres grandes tan lejos sobrepasa el
poder de uniforme las máquinas autónomas más grandes. un clúster puede tener diez, cientos,
o aún miles de las máquinas, cada uno de que es un multiprocesador.
• Escalabilidad incremental: un clúster es configurado en tal vía que es posible
para añadir nuevos sistemas al clúster en pequeño incrementos.Así, un usuario puede empezar
con un sistema modesto y expanda lo como las necesidades crecen, sin tener que ir
hasta una actualización principal en que un sistema pequeño existente se reemplaza con el A
sistema más grande.
• Disponibilidad alta: Porque cada bulto en un clúster es una computadora autónoma, el
falta de un bulto no significa la pérdida del servicio. En muchos productos, la tolerancia de error
sea manipulado de forma automática en el software.
• Precio / desempeño superior: Usando mercancía construyendo bloquean, es posible
para reunir un clúster con igual o mayor poder de informática que un sencillo
la máquina grande, a mucho más bajo costo.
Configuraciones de clúster
En la literatura, los clústeres son clasificados en varias vías diferentes. Tal vez el
simple la clasificación se basa en si las computadoras en un acceso de porción de clúster a
los mismos discos. Figure 17.10a pantalla que un clúster de dos bultos en que la única interconexión
sea mediante un enlace de alta velocidad que puede ser usado para el cambio de mensaje para
actividad de clúster coordinada.El enlace puede ser un LAN que sido dividido con otras computadoras
esas no son la parte del clúster o el enlace pueda ser una interconexión dedicada
facilidad. En este último caso, uno o más de las computadoras en el clúster habrá un enlace
a unos LAN o WAN de modo que existe una conexión entre el servidor agrupe y remoto
sistemas de cliente. Nota que en la figura, cada computadora se muestra como ser un multiprocesador.
Esto no es necesario pero no mejora ambos desempeño y disponibilidad.
En la clasificación simple mostrada en figura 17.10 , la otra alternativa es el A
clúster de disco dividido. En este caso, allí generalmente está todavía un enlace de mensaje entre
bultos. Además, existe un subsistema de disco que es directamente asociado a las computadoras
múltiples
dentro del clúster. En esta figura, el subsistema de disco común es un sistema RAID.
El uso de RAID o cierta tecnología de disco redundante similar son comúnes en

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 149
Arquitectura y Organización de Computadoras
TEORIA

los clústeres de modo que la disponibilidad alta triunfados por la presencia de las computadoras
múltiples
no comprometa por un disco dividido que es un punto sencillo de la falta.
una pintura más clara del rango de las opciones de clúster se puede ganar observando a
alternativas funcionales. La tabla 17.2 proporciona una clasificación útil a lo largo de funcional
las líneas, que discutimos ahora.
un campo común, método más viejo, conocidos como partidario fiel pasivo , son simplemente para
tener uno
la computadora maneja toda la carga de proceso mientras que los otros restos de computadora
inactivos,
estar de pie por para asumir la autoridad en caso de una falta de la cosa fundamental. para coordinarse
las máquinas, el sistema activo, o primario periódicamente envian un mensaje de "latido"
a la máquina de partidario fiel. Deba estos mensajes parar de llegar, el partidario fiel
asume que el servidor primario ha suspendido y pone se en la operación. Este acercamiento
disponibilidad de aumentos pero no mejore desempeño. Adelante, si el único
la información ése se cambia entre los dos sistemas es un mensaje de latido, y
si los dos sistemas no comparten los discos comúnes, entonces el partidario fiel proporciona un funcional
soporte pero no tenga ningún acceso a las bases de datos manejado por la cosa fundamental.
El partidario fiel pasivo no es generalmente mencionado para como un clúster.El clúster de término es
reservado para el múltiple interconecte de computadora que está todo activamente haciendo proceso
al mantener la imagen de un sistema sencillo al mundo exterior. El término
secundario activo está usado en referirse a esta configuración.Tres clasificaciones
de agrupando se pueda identificar: separe servidores, partido nada, y la memoria compartida.
En un acercamiento para agrupar, cada computadora es un servidor separado con su propio
discos y no existen ningunos discos partidos entre sistemas ( figura 17.10a ). Este arreglo
proporcione desempeño alto así como disponibilidad alta. En este caso, cierto tipo
delmanejo o el software de programación fue necesario para asignar las solicitudes de cliente entrantes
a los servidores de modo que la carga es la utilización balanceada y alta se triunfa. Es deseable
para tener una capacidad de failover, lo que significa que si una computadora fra al ejecutando un
aplicación, otra computadora en el clúster puede obtener y completar la aplicación.
Para este para suceder, los datos deben copiarse constantemente entre sistemas de modo que cada
el sistema tiene acceso a los datos actuales de los otros sistemas.Los gastos generales de estos datos
el cambio asegura que la disponibilidad alta a costa de una pena de desempeño.
Para reducir las comunicaciones por arriba, la mayor parte del agrupan consisten de ahora servidores
unido a los discos comúnes ( figura 17.10b ). En una variación en este acercamiento, llamado
dividido nada, los discos comúnes se reparten en volúmenes, y cada volumen es
poseído por una computadora sencilla. Si que computadora fra , el clúster se debe reconfigured
de modo que alguna otra computadora tiene la propiedad de los volúmenes de la computadora
suspendida.
Es también posible tener las computadoras múltiples compartir los mismos discos al mismo
cronometre ( llame el disco dividido acerque se ), de modo que cada computadora tiene acceso a todo
el volúmenes en todos los discos. Este acercamiento requiere que el uso de cierto tipo del cierre
facilidad para asegurar que los datos pueden accederse sólo por una computadora a la vez.
Aspectos de diseño de sistema operativo
La explotación completa de una configuración de hardware de clúster requiere que ciertos realces
a un sistema operativo de un solo sistema.

Comparación entre Clusters y SMP


Ambos clústeres y los multiprocesadores simétricos proporcionan una configuración con el múltiple
procesadores para soportar las aplicaciones de alta demanda. Ambas soluciones son comercialmente
disponible, aunque planes de SMP han corrido mundo lejos más tiempo.
La fortaleza principal del acercamiento de SMP es que un SMP es fácil de manejar
y configure que un clúster.El SMP es mucho más cercano al de un solo procesador original
La configuración de 100 Eelrnet de Gbps del ejemplo de figura 17.12 para
modele por lo que casi todas las aplicaciones se escriben.El principal cambia requiera en
ir de un uniprocesador a un SMP es la función de programador. Otro beneficio
delSMP es que normalmente lleva arriba espacio menos físico y los sorteos menos poder que
un clúster comparable. un beneficio importante final es que los productos de SMP se establacen bien
y establo.
Sobre las a largo plazo, sin embargo, las ventajas del acercamiento de clúster son probables
para resultar en clústeres controlando el mercado de servidor de alto rendimiento. Los clústeres son
la distancia superior a SMP desdelpunto de vista de la escalabilidad incremental y absoluta. Los clústeres
son
también superior desdelpunto de vista de disponibilidad, porque todos los componentes del sistema
pueden sin demora
sea hecho altamente redundante.

Procesamiento NUMA

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 150
Arquitectura y Organización de Computadoras
TEORIA

El procesamiento NUMA se da en computadores no convencionales, como ser por ejemplo, un


supercomputador. Éste se lleva a cabo de tal forma de realizar un acceso no uniforme
a memoria. Esto quiere decir que todos estos procesadores que componen el
supercomputador, (ademas de poseer su propia memoria, y sus propios modulos de entrada-
salida), poseen la capacidad de acceder
y llevar a cabo el control de la memoria
y de la entrada-salida de otros procesadores, por lo que podemos
decir, que estos trabajan en conjunto
utilizando esta forma de acceso para la
ejecución de una tarea.

Es una mejora de un diseño anterior


llamado UMA (Acceso uniforme a memoria), que consiste en que varios
procesadores acceden a memoria de la
misma forma, independientemente del proceso y de la ubicación del dato a
operar.

Como se puede ver en la figura 1.1, los


procesadores se interconectan en un
mismo canal de bus para acceder a
memoria, y además necesitan buses de
espía, para ir controlando los datos que
llevan y traen los procesamientos. Si
uno observa, esto no es muy óptimo, ya
que un solo bus no puede soportar mucha carga de datos, pues llevaría a
la ilegibilidad de estos, lo que se conoce
en la jerga informática como cuelgue o
cuello de botella.

Una solución sencilla sería aumentar el


tamaño del bus, pero no es conveniente
en el costo, ya que se necesita
mucho hardware que es difícil de
diseñar y por lo tanto el dinero a invertir es mucho mayor.

Entonces, hay que volver a cero de vuelta y ver si se puede crear otro diseño más óptimo
que pueda solucionar estos inconvenientes, de ahí surge la idea del diseño NUMA.

El NUMA consiste en la idea de nodos, donde cada nodo tiene su sistema de procesamiento y
memoria, es decir que son como varias computadoras trabajando en conjunto, y acceden de
manera no uniforme a memoria.

En cuanto al acceso, como se ve en la figura 1.2, el sistema es muy dinámico, cada procesador puede
controlar su propia memoria y la memoria de otro procesador, obviamente
cuando se conecta con una memoria remota 4, la velocidad disminuye. Esto facilita el trabajo
en conjunto para ejecutar un programa, y el proceso se vuelve más veloz porque al no
quedar más memoria en un nodo se busca en que nodo ha quedado memoria para poder
utilizarla.

Características particulares de un multiprocedador NUMA

a) Espacio de Direcciones: Existe un solo espacio de direcciones visibles para todos los

procesadores.

b) Acceso a memoria: El acceso a la memoria remota se efectúa con instrucciones load,

y store. Además cabe resaltar que su acceso es mas lento que a la memoria local.

c) Escalabilidad: La arquitectura NUMA ofrece la escalabilidad del multiprocesamiento

paralelo (MPP) y la programación simple del multiprocesamiento simétrico (SMP).

Explorador de Página NUMA

Este explorador se ejecuta cada cierto número de segundos. Su función consiste en el control de las
estadísticas de utilización y cambios de lugar de las páginas en un intento por mejorar
su desempeño. Si una página parece estar en el lugar incorrecto, el explorador de páginas
anula su correspondencia con la memoria, de modo que la siguiente referencia a ella cause

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 151
Arquitectura y Organización de Computadoras
TEORIA

un fallo de página. Cuando esto suceda, se tomará una decisión acerca del lugar de donde
debe colocarse la página, en donde este lugar posiblemente corresponda en la de una
memoria distinta de aquella en la que estaba anteriormente.

Numa con coherencia de caché (CC-NUMA)

Este es un tipo de procesador NUMA, en donde se impone una base de datos que funciona controlando
los diferentes accesos a memoria caché y brindando la posiblidad de entregar
una linea o un bloque de memoria caché, en donde la misma controla si se encuentra en uso
o se encuentra libre cuando se realiza una referencia a la memoria. Cabe aclarar que al
hablar de este procesador nos referimos a la función de la base de datos que es capaz de
referenciar a varias memorias caché.

Organización Funcional

Básicamente esta organización consta de un conjunto de nodos independientes entrelazados,


en donde cada uno es un SMP. Por lo que cada nodo esta constituido por:

n Procesadores (Cada uno con sus dos niveles de caché).

Memoria Principal

Un mecanismo de conmutación, como ser un anillo, o algun tipo de red, funciona como un
medio de comunicación entre los diferentes nodos de la organización de esta arquitectura.
Este conjunto de nodos, actuan de la siguiente manera:

Cada procesador necesitará accesos a memoria principal, de tal forma que si la posición que es solicitada
no se encuentra en la caché del mismo, actúa la caché de nivel 2 iniciando un
proceso de captación. Sin embargo, si la linea solicitada esta en una porciónr emota de la
memoria, es enviada una petición automática con el fin de captar dicha linea mediante el bus
del sistema y se proporciona a traves del mismo, a la caché que lo solicitaba en dicho bus.

Operación ejemplo: Supongase que el procesador 1 del nodo 2 (N2-P1) , solicita un acceso a la posición
599 que esta en la memoria del nodo 3. La secuencia de pasos para efectuar
esta tarea, es la siguiente:}

1. N2-P1 genera la petición de lectura de la posición solicitada (599) a traves del bus del nodo 2.

2. El modulo de direcciones del nodo 2 detecta la petición de acceso a memoria, por lo


que determina que la dirección esta en el módulo 3.

3. El modulo de direcciones del nodo 2 envía la petición al nodo 3, y esta es recogida por
el modulo de direcciones del nodo 3.

4. El modulo de direcciones del nodo 3, solicita la lectura de la posición 798,


(sustituyendo al procesador N2-P3)

5. La memoria principal del nodo 3 responde, situando el dato solicitado en las lineas de datos del bus
del sistema.

6. El módulo de direcciones del nodo 3 toma el dato del bus.

7. Se produce la transderencia del dato al módulo de direcciones del nodo 2.

8. El modulo de direcciones del nodo 2 sitúa el dato en el bus de dicho nodo, actuando
como si fuera la memoria que originariamente propocionó el dato.

9. El dato es leído pasando a la caché del procesador N2-P1, esde donde se proporciona
al procesador.

Cabe aclarar que esta secuencia, que consiste en la forma en que se lee un dato desde una
memoria remota con la utilización de mecanismos de hardware, se utiliza un protocolo de
coherencia de cache.

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 152
Arquitectura y Organización de Computadoras
TEORIA

Procesamiento Vectorial

ANÁLISIS Y DEFINICIÓN. OPERACIONES

Como sabemos, existen aplicaciones de toda índole, desde una simple aplicación que puede
ser implementada por un procesador convencional, hasta enormes aplicaciones que implican
un gran número de operaciones y en donde estas deben ser llevadas a cabo con la mayor
precisión posible para que esta tarea pueda ser exitosa. En este ultimo caso, nos vemos
obligados a pensar en algo mas que un procesador convencional, podríamos pensar en los
mainframes de proposito general, aunque es díficil creer que existen aplicaciones que ni
siquiera estos enormes computadores pueden ejecutarlas. Y es aquí donde damos paso a la
computación vectorial y a las entidades que la implementan: Los procesadores vectoriales.

A diferencia de los procesadores escalares, que son un tipo simple de procesadores y en


donde cada instrucción incide solamente hacia un dato por vez, se encuentran los
procesadores vectoriales o matriciales, en donde cada instrucción esta compuesta por
operandos y en donde estos operandos son vectores completos.

Para explayarnos mas en el tema, necesitamos tener conocimiento acerca de la definición de


matriz unidimensional o vector, y luego proseguir definiendo a estos procesadores
particulares.

Un vector es una secuencia de datos escalares del mismo tipo almacenados en memoria.

Quizas nosotros tengamos la concepción de que cada uno de los elementos del arreglo son almacenados
en posiciónes contiguas de memoria, pero aunque la mayoria de las veces esto
sucede, no siempre es así, esto ultimo es afirmativo en el de las matrices bidimensionales en
donde solamente cada uno de los elementos de cada vector fila, estarían almacenados en
posiciones contiguas.

Teniendo en cuenta esta definición y conocimientos previos, podemos definir a un procesador


vectorial como un conjunto de recursos para efectuar operaciones con vectores. Estas
funciones consistirían en la aplicación de funciones aritméticas y lógicas sobre cada
componente de los vectores. Existe un proceso de conversión que merece la pena acotar, el
cual consiste en la conversión de un programa correspondiente a un procesador escalar, a
otro vectorial, denomiando proceso de vectorización.

Un operando vectorial contiene una secuencia de n elementos, llamados componentes


operacionales, donde n es la longitud del vector. Existen muchos tipos de vectores
operandos, como ser un vector operando de enteros, un vector operando de coma flotante,
etc. A continuación en una tabla detallamos algunas de las formas de los operadores
vectoriales, la operación que define y de que tipo es la misma, explicando primeramente
algunas de las operaciones que pueden ser definidas por ellos:

F1: V  V (operación vectorial unitaria)

F2: V x V  V (operación vectorial binaria)

F3: V  K (reducción unitaria)

F4: V x V  K (reducción binaria), y F5: K x V  (reducción de escalado)

Cabe aclarar que en las operaciones vectoriales, cada resultado es independiente de los
anteriores. Esto permite efectuar los cálculos en un procesador segmentado sin que existan
inconvenientes por la dependencia de datos.

Una simple instrucción vectorial sustituye a múltiples operaciones escalares. Esto también
nos sirve para darnos cuenta verdaderamente la importancia de estos procesadores en
enormes aplicaciones. Si un procesador escalar tendría que realizar una tarea determinada
que implique millones de operaciones complicadas en las cuales se requiere precisión, el
cuello de botella que se produciría por la lectura de una instrucción sería bastante notable, a
diferencia de la resolución de la misma con un procesador vectorial.

Las instrucciones vectoriales que implican un acceso a memoria utilizan un patrón de acceso fijo,
facilitando su lectura paralela, e interviniendo para esta tarea una memoria entrelazada.

Si esta memoria no existiera, dichas posiciones serán almacenadas en caché, con un ahorro
de tiempo.

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 153
Arquitectura y Organización de Computadoras
TEORIA

Una importante relación que encontramos respecto a estos procesadores y a los escalares
subyace en la segmentación (pipelining), vista anteriormente. Si se utiliza una instrucción
vectorial, se evita la instrucción de salto de bucle, que se produciría si procesaramos las
instrucciones escalares equivalentes en un procesador segmentado. Esto es muy importante
ya que favorece al procesador al no producir instrucciones de salto y a no sufrir la
penalización por un tiermpo determinado en el que no comienzan las instrucciones a captarse
y un tiempo perdido que no implica acceso a memoria, y que quizas y seguramente, un
procesador escalar lamentablemente, tenga este inconveniente, como lo hemos estudiado en
el subsistema CPU.

Al hablar de la arquitectura de los procesadores vectoriales podemos


incidir en dos tipos de procesadores,
un procesador memoria-memoria
y un procesador registro-registro.

El procesador memoria-memoria
se encarga de extraer dos vectores de la memoria y realizar operaciones
sobre ellos.

Desventaja: Cuello de botella


producido por los numerosos accesos a Figura 2.1 Arquitectura Procesador Memoria-

memoria. Memoria

Solución: Algunas de las mejoras que se


podrían aplicar para solucionar este problema podría ser, aumentando el ancho de banda de
la memoria, de la tforma de entrelazar la memoria para que esta tenga varios modulos y se
pueda acceder simultaneamente a varias posiciones consecutivas las cuales se encuentran en
modulos diferentes. Otra solucióbn sería la adición de una memoria intermedia de mayor
velocidad entre la memoria y el procesador. Una forma de hacer esto, además de hacer esto

es añadir un banco de registros vectoriales.

El procesador vectorial registro-registro se compone de un o o varios bancos de


registros vectoriales, que cumplen la función de memoria intermedia.

La mayoria de los
procesadores vectoriales actúan
como coprocesadores de un procesador escalar convencional.

Este, a diferencia del


procesador trata las instrucciones no vectoriales. Al tener en cuenta lo mencionado
podemos considerar a
los computadores vectoriales como
computadores del tipo

SIMD de la clasificación de Flynn, aunque si bien ejecutan la misma instrucción sobre un


conjunto de datos diferentes los datos componen el mismo flujo de información.

Motivación
Con un sistema SMP, existe un límite práctico hasta el número de procesadores que puede usarse. Un
plan de área para la transferencia rápida de datos efectivo reduce el tráfico de bus entre cualquier un
procesador y memoria principal. Como el número de los aumentos de procesadores, este tráfico de bus
también crece.
También, el ómnibus es usadoa cambiar señales de coherencia de área para la transferencia rápida de
datos, adelante añadiendo a
la carga. A cierto punto, el ómnibus se convierte en un embotellamiento de desempeño. Desempeño
la degradación parece para limitar el número de procesadores en una configuración de SMP
para en alguna parte entre 16 y 64 procesadores. Por ejemplo, el poder de gráficos de silicona
Desafie SMP es limitado a 64 procesadores de R10000 en un sistema sencillo; además de esto
numere el desempeño degrada sólidamente.
El límite de procesador en un SMP es una de las motivaciones de conducción detrás del desarrollo
de los sistemas de clúster. Sin embargo, con un clúster, cada bulto tiene su propio privado
memoria principal; las aplicaciones no ven una memoria global grande. En efecto, la coherencia es
mantenido en antes que hardware de software.Esta granularidad de memoria afecta desempeño
y, para lograr desempeño máximo, software debe ser hecho a la medida a este entorno.
Un acercamiento para lograr el multiproceso a gran escala al reteniendo el
sabor de SMP es NUMA. Por ejemplo, el sistema NUMA de Silicon Graphics Origin es
diseñado al apoyo hasta 1024 procesadores de MIPS R10000[WHIT97] y la consecuencia
el sistema Q de NUMA es diseñado al apoyo hasta 252 procesadores de Pentium II[LOVE96].

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 154
Arquitectura y Organización de Computadoras
TEORIA

El objetivo con NUMA es mantener una memoria ancha transparente de sistema


al admitir los bultos de multiprocesador múltiples, cada con su propio ómnibus u otro
interno interconecte sistema.
Organización
La figura 17.13 muestra una organización de CC-NUMA típica. Allí está independiente múltiple
los bultos, cada uno de que es, en efecto, una organización de SMP. Así, cada bulto contiene
procesadores múltiples, cada con su propio L1 y L2 cache, más la memoria principal.
El bulto es el bloque básico de edificio de la organización de CC-NUMA completa. Para
ejemplo, cada bulto de origen de gráficos de silicona incluye dos procesadores de MIPS R10000;
cada bulto de q de Sequent NUMA incluye cuatro procesadores de Pentium II. Los bultos son
interconectado mediante ciertas comunicaciones la facilidad, que pudo ser una conmutación
mecanismo, un anillo, o alguna otra facilidad de red.
Cada bulto en el sistema CC-NUMA incluye cierta memoria principal. De el punto de vista de los
procesadores, sin embargo, existe sólo una memoria direccionable sencilla, con cada dirección tenga
una dirección ancha única de sistema .Cuando unos iniciados de procesador una memoria accede, si la
dirección pedida de memoria no está en el área para la transferencia rápida de datos de ese procesador,
entonces el L2 cache inicia una operación de captación. Si la línea deseada es en la porción local
de la memoria principal, la línea es buscada hastal ómnibus local. Si la línea deseada está en el A
la porción remota de la memoria principal, entonces una solicitud automática es enviada a la captación
esa línea hasta la red de interconexión, lo da al ómnibus local, y entonces
da lo al área para la transferencia rápida de datos de pedir en ese bus. Todo de esta actividad sea
automático y transparente al procesador y su área para la transferencia rápida de datos.
En esta configuración, oculte en un caché coherencia es un asunto central. Aunque ejecuciones
difiera en cuanto a los detalles, en términos generales podemos decir que cada bulto debe
mantenga algunos en cierta medida el directorio que da lo una indicación de la dirección de vario
porciones de la memoria y también información de estado de caché. Para ver cómo este plan
trabajos, damos a un ejemplo tomado de[PFIS98]. Supon que procesador 3 en el bulto
2 (P2-3) piden una dirección de memoria 798 , que está en la memoria de bulto 1.Lo siguiente
la secuencia ocurre:
1. P2-3 emite una solicitud leída en el ómnibus de curioso de bulto 2 para dirección 798.
2. El directorio en bulto 2 ve la solicitud y reconoce que la dirección está en
bulto 1.
3. El bulto 2 directorio envia un bulto de request to 1 , que pique se arriba por el bulto 1
directorio.
4. El bulto 1 directorio, haciendo como un substituto de P2-3, piden los contenidos de 798 ,
como si era un procesador.
5. El bulto 1 memoria principal responde poniendo los datos pedidos en el ómnibus.
6. El bulto 1 directorio obtiene los datos del ómnibus.
7. El valor se transferencia de vuelta al bulto 2 directorio.
8. El bulto 2 directorio pone los datos retroceden en el bulto 2 viaje en ómnibus, haciendo como un
substituto
para la memoria que originalmente tenido lo.
9. El valor sea escogido ascendente y puesto en P2-3 oculte en un caché y dé a P2-3.
La secuencia precedente explica cómo datos lea se de una memoria remota
usar mecanismos de hardware que hace la transacción transparente al procesador.
Encima de estos mecanismos, cierta forma del protocolo de coherencia de caché se necesita.Vario
los sistemas difieren en exactamente cómo esto se hace.Hacemos sólo algunas observaciones generales
aquí. En primer lugar, como parte de la secuencia precedente, bulto 1 directorio conserva un registro
eso
cierto caché remoto tiene una copia de la línea conteniendo dirección 798.Entonces, allí necesitan
para ser un protocolo cooperativo para cuidar transformaciones. Por ejemplo, si una transformación
hacerse en un caché, este hecho puede ser difundido a otros bultos. El directorio de cada bulto
eso recibe tal emisión puede determinar entonces si cualquier caché local tiene eso
alinee se y, si es así, lo cause para purgarse. Si la dirección real de memoria está al bulto receptor
la notificación difundida, entonces el directorio de ese bulto necesita mantener un
la entrada indicando ése que la línea de la memoria sea inválida y permanece así hasta un write back
ocurrir. Si otro procesador (local o remoto) pide la línea de inválido, entonces el local
el directorio debe forzar un write back para actualizar la memoria antes de proporcionar los datos.

NUMA pros and cons


La ventaja principal de un sistema CC-NUMA es que puede dar el desempeño efectivo
a niveles más altos del paralelismo que SMP, sin requerir especialice se de software
cambios.Con bultos de NUMA múltiples, el tráfico de ómnibus en cualquier bulto individual se limita
a una demanda que el ómnibus puede manejar. Sin embargo, si muchos de los accesos de memoria
sea los bultos remotos, desempeño empieza derrumbándose.Existe la razón para creer
que esta avería de desempeño se puede evitar. En primer lugar, el uso de L1 y L2 cache
sea diseñado para minimizar todos los accesos de memoria, incluyendo los remotos. Si gran parte de el
el software tiene localidad temporal buena, los accesos de memoria entonces remotos no deben ser
excesivo. En segundo lugar, si el software tiene la localidad espacial buena, y si la memoria virtual es
en uso, entonces los datos necesitados para una aplicación residirán en un número limitado de

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 155
Arquitectura y Organización de Computadoras
TEORIA

frecuentemente use folia que pueda cargarse inicialmente en la memoria local a la corrida
aplicación.El informe de diseñadores siguiente que tal localidad espacial aparece
en las aplicaciones representativas[LOVE96]. Finalmente, el plan de memoria virtual puede ser
mejorado incluyendo en el sistema operativo un mecanismo de migración de página eso
mueva una página de memoria virtual a un bulto que lo esté frecuentemente usando; la silicona
Los diseñadores de gráficos relatan el éxito con este acercamiento[WHIT97].
Aún si la avería de desempeño debido al acceso remoto sea dirigida, allí
sea otras dos desventajas para el acercamiento de CC-NUMA.Dos en particular se discuten
en detalle en [PFIS98]. En primer lugar, un CC-NUMA no se parece a de modo transparente un
SMP; los cambios de software serán requeridos para mover un sistema operativo y aplicaciones
de un SMP a un sistema CC-NUMA.Éstas incluyen distribución de página, ya
mencionado, procesan distribución, y balance de carga por el sistema operativo. A
el segundo asunto es ése de la disponibilidad. Esto es un asunto más bien complejo y dependa
en la ejecución exacta del sistema CC-NUMA; el lector interesado es
mencionado para[PFIS98].
Simulador de procesador de vector

Aunque el desempeño de computadoras de propósito general de unidad principal continúa para


mejore implacablemente, continúan siendo allí las aplicaciones que son más allá del alcance de
la unidad principal contemporánea.Existe una necesidad de computadoras para resolver matemático
problemas de los procesos físicos, tal como ocurrir en disciplinas incluyendo aerodinámica,
sismología, meteorología, y las físicas atómicas, nucleares, y de plasma.
Tipicamente, estos problemas se caracterizan por la necesidad de la precisión alta y
un programa que ejecuta repetitiva las operaciones aritméticas de punto flotante en
conjuntos grandes de números. La mayor parte de estos problemas inician la categoría conocida como
simulación de campo continuo. En esencia, una situación física se puede describir por A
trabaje en la superficie o la región en tres dimensiones ( por ejempo, el flujo de adyacente del aire a la
superficie de
un cohete ).Esta superficie se aproxima por una rejilla de puntos. un conjunto de las ecuaciones
diferenciales
defina el comportamiento físico de la superficie a cada punto. Las ecuaciones son
representado como un conjunto de valores y coeficientes, y la solución supone repita se
operaciones aritméticas en los conjuntos de datos.
Los supercomputadoras se desarrollaban para manejar estos tipos de problemas.Estas máquinas
sea tipicamente capaz de mil millones de de punto flotante operaciones por el segundo. En
contraste a las unidad principal, que sido diseñado para multiprogramación y palabra intensiva que yo/o,
el supercomputadora se optimiza para el tipo del cálculo numérico sólo descrito.
El supercomputadora ha limitado uso y, debido a su etiqueta de precio, un mercado limitado.
Comparativamente pocos de estas máquinas son operacionales, principalmente a la investigación
los centros y ciertas agencias de gobierno con científico o diseñando funciones. Como
con otras áreas de la tecnología de computadora, existe una demanda constante para aumentar el
desempeño del supercomputadora. Así, la tecnología y desempeño de el
el supercomputadora continúa evolucionando.
Existe otro tipo del sistema que ha sido diseñado para dirigir la necesidad de
computación de vector, mencionado para como el procesador de matrices. Aunque un
supercomputadora es
optimizado para computación de vector, es una computadora de propósito general, capaz de la
manipulación
proceso escalonado y las tareas de procesamiento de datos generales. Procesadores de matrices no
hacen
incluya el proceso escalonado; son configurados como los dispositivos periféricos por ambas unidad
principal
y los usuarios de minicomputadora para correr las porciones de vectorized de programas.
Enfoques a Vector Computation
La tecla al diseño de un supercomputadora o procesador de matrices es reconocer que el
la tarea principal es ejecutar las operaciones aritméticas en conjuntos o vectores de de punto flotante
números. En una computadora de propósito general, esto requerirá la iteración hasta cada uno
elemento del conjunto. Por ejemplo, considere dos vectores (conjuntos unidimensionales) de
números, A y b.Nosotros queremos añadir que estos y ponga el resultado en la c. En el ejemplo
de la figura 17.14 , esto requiere seis adiciones separadas. Cómo vamos más rápido
¿esta computación? La respuesta es introducir cierta forma del paralelismo.
Varios enfoques han sido tomados en lograr paralelismo en la computación de vector.
Ilustramos esto con un ejemplo.Considere la multiplicación de vector
donde , × ×, y ×c es los matrices.La fórmula para cada elemento de la c es

donde A , b , y c tienen los elementos respectivamente. Figure 17.15a


exhibiciones un programa de FORTRAN para esta computación que puede ser correr sobre un ordinario
procesador escalonado.
Un acercamiento para mejorar desempeño puede ser mencionado para como el proceso de vectores.
Esto asume que es posible operar en un vector unidimensional de datos.

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 156
Arquitectura y Organización de Computadoras
TEORIA

Figure 17.15b es un programa de FORTRAN con una nueva forma de la instrucción que permite
computación de vector para especificarse. La anotación indica que operaciones
en todo el J de índices en el intervalo dado lleve a cabo como una operación sencilla.
Cómo esto se puede lograr sea dirigido en breve.
El programa en figura 17.15b indica que todos los elementos de la fila de ith son
para computarse en la paralela. Cada elemento en la fila es una suma, y las sumas
(hastal k) haga se en serie antes que en la paralela. Aún así, único vector
las multiplicaciones son requeridas por este algoritmo con respecto a las multiplicaciones escalonadas
para el algoritmo escalonado.
Otro acercamiento, proceso en paralelo, se ilustra en figura 17.15c. Este acercamiento
asuma que tenemos procesadores independientes de n que podemos funcionar en la paralela.
Para utilizar los procesadores efectivamente, debemos repartir en lotes de algún modo la computación
a los varios procesadores.Dos primitivos se usan.La n de FORK primitiva causa un
el proceso independiente para empezarse en n de dirección. Entretanto, el original
el proceso continúa ejecución a la instrucción inmediatamente siguiendo el FORK.
Cada ejecución de un FORK deposita un nuevo proceso. La instrucción de El JOIN es esencialmente
el inverso del FORK. La n de JOIN de declaración causa n independiente
procesos para ser confundido paulatinamente con que continúe ejecución a la instrucción siguiente
el sistema operativo JOIN.El debe coordinar esta fusión, y así la ejecución
no continuar hasta todos los procesos de n han alcanzado la instrucción de JOIN.
El programa en figura 17.15c es escrito para imitar el comportamiento del vectorprocessing
programa. En el programa de proceso en paralelo, cada columna de la c se computa
por un proceso separado. Así, los elementos en una fila dada de la c se computan
en la paralela.
La discusión precedente describe enfoques a la computación de vector en lógico
o términos arquitecturales. Volvemos ahora a una consideración de tipos del procesador
la organización que se utiliza para a poner en práctica estos enfoques. una variedad ancha de
las organizaciones han sido y están yendo en percución.Tres categorías principales resaltan:
• Pipelined ALU
• ALU paralelos
• Procesadores paralelos
La figura 17.16 ilustra los primeros dos de estos enfoques.Hemos ya discutido
proceso de encauzamiento en el capítulo 12. Aquí el concepto es extendido a la operación de
el ALU. Porque las operaciones de punto flotante son más bien complejas, existe la oportunidad
para descomponer una operación de punto flotante en las fases, de modo que las fases diferentes
pueda operar en los conjuntos diferentes de datos concurrentemente.Esto se ilustra en figura 17.17a.
La adición de punto flotante se rompe arriba en cuatro fases ( véase la figura 9.22 ): comparación,
cambie, sume, y normalice. un vector de números estuvo presente consecutivamente al primero
fase. Como los productos de proceso, los cuatro conjuntos diferentes de números serán operados en
concurrentemente en camino.
Debe ser claro que esta organización es adecuada para el proceso de vectores. para ver
este, considere el proceso de encauzamiento de instrucción descrito en el capítulo 12.El procesador va
hasta un ciclo repetitivo de atractivo e instrucciones de proceso. En la ausencia de
las bifurcacions, el procesador están trayendo continuamente instrucciones de las direcciones
consecutivas.
Por lo tanto, la tubería se mantiene enteramente y unos ahorros a tiempo se triunfan. Similarmente,
un ALU tubería salvará tiempo sólo si es alimentado una corriente de datos de consecutivo
direcciones. un sencillo, aislado de punto flotante operación no se hace acelerar por una tubería.
El aumento de producción es logrado cuando un vector de operandos estuvo presente al ALU. El
la unidad de control pasa por un ciclo los datos hastal ALU hasta que se anda en una procesión el vector
entero.
La operación de tubería puede mejorarse además si los elementos de vector son
disponible en registran antes que de la memoria principal. Esto se sugiere en realidad por
Figure 17.16a.Los elementos de cada operando de vector son cargados como un bloque en un vector
registre, que es simplemente un banco grande de los registros idénticos. El resultado es también
puesto en un registro de vector. Así, la mayor parte de las operaciones suponen sólo el uso de registros,
y sólo las operaciones de carga y almacenamiento y el comienzo y fin de una operación de vector
requiera acceso a la memoria.
El mecanismo ilustrado en la figura 17.17 pudo ser mencionado para como el proceso de encauzamiento
dentro de una operación.Es decir, tenemos una operación aritmética sencilla ( por ejempo,
eso va a ser aplicado para los operandos de vector, y proceso de encauzamiento permiten los elementos
de vector múltiples
para ser elaborado en la paralela.Este mecanismo puede ser aumentada con el proceso de
encauzamiento
hasta las operaciones. En este caso posterior, existe una secuencia de las operaciones de vector
aritméticas,
y el proceso de encauzamiento de instrucción es usadoa hacer acelerar proceso. Un acercamiento para
la c = una b de + )

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 157
Arquitectura y Organización de Computadoras
TEORIA

este, mencionado para como encadenando, son encontrados en los supercomputadoras de Cray.La
regla básica para
el encadenamiento es esto: una operación de vector puede empezar tan pronto como el primer elemento
de el
el vector(s) de operando sea disponible y la unidad funcional ( por ejempo, sume, substraiga,
multiplique se,
divida se ) sea libre. Esencialmente, el encadenamiento causa los resultados emitiendo de una unidad
funcional para
coma se inmediatamente en otra unidad funcional y así sucesivamente. Si los registros de vector son
usado, se interponen los resultados no tiene que ser guardado en memoria y se pueda usar
aún antes de la operación de vector que les cree corren a la terminación.
Por ejemplo, cuando la informática donde A , b , y c son los vectores
y la s es una magnitud escalar, el Cray puede ejecutar tres instrucciones al instante. Elementos
traído para una carga inmediatamente entre un multiplicador tubería, los productos se envian para
una víbora tubería, y las sumas son situadas en un registro de vector tan pronto como la víbora
completa les:
1. Carga de vector
2. El vector carga a B S VR2
3. El vector se multiplica
4. El vector añade
5. Almacén de vector
Instrucciones 2 y 3 pueda ser encadenado ( tubería ) porque suponen la memoria diferente
direcciones y registros. Las 4 necesidades de instrucción los resultados de instrucciones 2 y 3 , pero
puede ser encadenado con estos también. Tan pronto como los primeros elementos del vector se
registran
2 y 3 sea disponible, la operación en instrucción 4 puede empezar.
Otra vía para lograr el proceso de vectores es por el uso de ALU múltiples en el A
el procesador sencillo, bajo el control de una unidad de control sencilla. En este caso, el control
la unidad encamina datos a ALU de modo que pueden funcionar en la paralela. Es también posible
proceso de encauzamiento de uso en cada uno de los ALU paralelos. Esto se ilustra en figura 17.17b.El
el ejemplo muestra que un caso en que cuatro ALU operan en la paralela.
Como con la organización tubería, una organización de ALU paralela es adecuada para
proceso de vectores. La unidad de control encamina elementos de vector a ALU en un de petirrojo
redondo
forma hasta que se andan en una procesión todos los elementos. Este tipo de la organización es más
complejo
que un sencillo-ALU CPI.
Finalmente, el proceso de vectores se puede triunfar usando múltiple compare procesadores.
En este caso, es necesario romper la tarea se levanta en los procesos múltiples para ser
ejecutado en la paralela. Esta organización es efectiva sólo si el software y hardware
para el coordinación efectivo de los procesadores paralelos sea disponible.
Podemos expandir nuestra taxonomía de la sección 17.1 para reflejar que éstos nuevas estructuras,
como
mostrado en la figura 17.18. Las organizaciones de computadora se pueden distinguir por la presencia
de unas o más unidades de control. Las unidades de control múltiples implican los procesadores
múltiples.
Seguir nuestra discusión previa, si los procesadores múltiples pueden funcionar cooperativa
en una tarea dada, estos se término comparan procesadores.
El lector deba tener conciencia de cierta terminología desafortunada probablemente para encontrarse
en la literatura. El procesador de vector de término se iguala a menudo con el A
la organización de ALU tubería, aunque una organización de ALU paralela se diseña también
para proceso de vectores, y, como hemos discutido, una organización de procesador paralela
también pueda estar diseñado para el proceso de vectores. El proceso de conjunto es usadoa
refiera a un paralelo ALU, aunque, de nuevo, cualquier de las tres organizaciones optimice se
para el proceso de conjuntos. Para hacer materias peor, procesador de matrices se normalmente refiere
a
un procesador auxiliar anexo a un procesador de propósito general y acostumbrado a ejecutarse
computación de vector. Un procesador de matrices puede usar la tubería o compare
acercamiento de ALU.
Ahora, la organización de ALU tubería domina la plaza del mercado.
Los sistemas tuberías son menos complejos que los otros dos enfoques. Su control
diseño de unidad y de sistema operativo se desarrollan bien para lograr el recurso eficiente
distribución y desempeño alto. El residuo de esta sección está dedicado a un más
el examen detallado de este acercamiento, usando un ejemplo específico.

Universidad Nacional del Nordeste - Facultad de Ciencias Exactas Naturales y Agrimensura


Licenciatura en Sistemas de Información Página 158

También podría gustarte