INSTITUTO TECNOLÓGICO PARTICULAR “JUAN MONTALVO”
MÓDULO DE MANTENIMIENTO DE COMPUTADORAS II
CUARTO SEMESTRE AUTOR: Prof. Byron Acaro REVISADO POR: Ing. Freddy Jara Publicaciones de la Cooperativa de Servicios Educacionales del Instituto Tecnológico “Juan Montalvo”
LOJA-ECUADOR 2016
1
INTRODUCCIÓN La asignatura de Mantenimiento de Computadores cubre el aprendizaje sobre la organización y arquitectura de computadoras, que se refieren al estudio de la presente asignatura y una exposición clara y sencilla acerca de la estructura, funcionamiento y características de los computadores actuales. La asignatura de Mantenimiento de Computadoras cubre el aprendizaje sobre la organización y arquitectura de computadores, que se refieren al estudio de las unidades funcionales de un computador y sus interconexiones; y a los atributos que intervienen en la ejecución lógica de un programa. El contenido se estructura en seis capítulos los cuales permitirán cubrir con los objetivos propuestos. En el capítulo 1, se trata a nivel general de los componentes básicos de un computador y la operación básica de un computador a bajo nivel, lo cual incluye el juego básico de instrucciones, formatos de instrucción y datos, tipos de direccionamiento y la ejecución de las instrucciones. En el capítulo 2, cubre las operaciones de entrada/salida e interrupciones, además se hace un estudio de los tipos de procesadores de entrada/salida. En el capítulo 3, se estudia el procesador detallando los componentes, organización y las tecnologías de procesamiento paralelo que incluye los procesadores actuales. En el capítulo 4, está dedicado a los buses de interconexión, con sus diferentes tipos y tecnologías. En el capítulo 5, trata el sistema de memoria en el cual se estudia detalladamente los tipos de memoria, los diferentes niveles de memoria que se incluyen en un computador. Así como las tecnologías de memoria existentes. En el capítulo 6, se hace un estudio de los dispositivos periféricos a nivel de estructura y funcionamiento, pero dando mayor realce a los dispositivos de almacenamiento.
2
Tabla de contenido INTRODUCCIÓN ...................................................................................................................... 5 CAPITULO 1 ............................................................................................................................ 6 ORGANIZACIÓN DEL COMPUTADOR ...................................................................................... 6 ARQUITECTURA BÁSICA .................................................................................................... 6 UNIDAD DE MEMORIA..................................................................................................... 6 UNIDAD CENTRAL DE PROCESO (PROCESADOR) ............................................................. 8 UNIDAD DE ENTRADA/SALIDA .......................................................................................... 10 OPERACIÓN DE LA COMPUTADORA DIGITAL ................................................................... 11 1.2.1. JUEGO BÁSICO DE INSTRUCCIONES ...................................................................... 12 1.2.2. FORMATO DE INSTRUCCIONES Y DATOS ................................................................... 13 1.2.3. TIPOS DE DIRECCIONAMIENTO............................................................................... 14 1.2.4. EJECUCIÓN DE LAS INSTRUCCIONES..................................................................... 14 1.2.5. EJEMPLOS DE PROGRAMAS ................................................................................... 21 EJECUCIÓN DE UN PROGRAMA ....................................................................................... 22 AUTOEVALUACIÓN........................................................... ¡Error! Marcador no definido. CAPÍTULO 2 .......................................................................................................................... 25 OPERACIONES DE ENTRADA Y SALIDA E INTERRUPCIONES .............................................. 25 2.1. CONCEPTOS BÁSICOS............................................................................................... 25 2.2. INSTRUCCIONES DE ENTRADA/SALIDA ..................................................................... 27 Tabla 2.1 Instrucciones de entrada/salida para la máquina hipotética ...................................... 27 INTERRUPCIONES ............................................................................................................ 28 PROCESAMIENTO DE INTERRUPCIONES ......................................................................... 29 PROCESADORES DE ENTRADA/SALIDA ........................................................................... 30 2.5.1. CONTROLADORES DE ACCESO DIRECTO A MEMORIA (DMA) ................................ 31 CANALES .......................................................................................................................... 31 CAPÍTULO 3 .......................................................................................................................... 33 EL PROCESADOR ................................................................................................................. 33 INTRODUCCIÓN ................................................................................................................ 33 3.1. COMPONENTES ......................................................................................................... 33 3.1.1. LA UNIDAD DE CONTROL ........................................................................................ 33 3.1.2. LA UNIDAD ARITMÉTICO LÓGICA ............................................................................ 34 3.1.3. REGISTROS ............................................................................................................. 34 3.2. ORGANIZACIÓN DEL PROCESADOR .......................................................................... 35 3.3. PROCESAMIENTO PARALELO .................................................................................... 37 3.3.1. ARQUITECTURA SEGMENTADA O PIPELINE ........................................................... 37 3.3.2. ARQUITECTURA RISC (RESTRICTED INSTRUTION SET COMPUTERS)........ 37 3.3.3. ARQUITECTURA VECTORIAL ................................................................................... 38 3.3.4. ARQUITECTURA SUPERESCALAR ........................................................................... 38 3.3.5. MULTIPROCESADORES........................................................................................... 38 CAPÍTULO 4 .......................................................................................................................... 39 BUSES .................................................................................................................................. 39 INTRODUCIÓN .................................................................................................................. 39 ESTRUCTURA DEL BUS .................................................................................................... 39 CLASIFICACIÓN DE LOS BUSES ....................................................................................... 40 4.2.1. TIPO DE TRANSFERENCIA ...................................................................................... 40 4.2.2. MÉTODO DE ARBITRAJE ......................................................................................... 41 4.2.3. TEMPORIZACIÓN ..................................................................................................... 42 4.3. JERARQUÍA DE BUSES............................................................................................... 42
3
4.4. TECNOLOGÍA DE BUSES ............................................................................................ 44 EL BUS XT Y EL BUS ISA (AT) ........................................................................................... 44 EL BUS MICRO CHANNEL (MCA) ....................................................................................... 44 EL BUS EISA ..................................................................................................................... 45 BUS LOCAL VESA ............................................................................................................. 45 EL BUS PCI (PERIPHERAL COMPONENT INTECONNECT)................................................. 45 EL BUS SCSI (SMALL COMPUTER SYSTEM INTERFACE).................................................. 45 EL BUS AGP (ACCELERATED GRAPHICS PORT) .............................................................. 46 BUSES DE COMUNICACIÓN SERIE Y PARALELO .............................................................. 46 Los nuevos buses de comunicación ..................................................................................... 47 EL ESTÁNDAR USB ........................................................................................................... 47 EL ESTÁNDAR IEEE 1394 .................................................................................................. 48 Las ranuras de expansión ................................................................................................... 48 CAPÍTULO 5 .......................................................................................................................... 49 SISTEMA DE MEMORIA ......................................................................................................... 49 INTRODUCIÓN .................................................................................................................. 49 CLASIFICACIÓN DE LAS MEMORIAS ................................................................................. 49 5.1.1. DE ACUERDO A LA UBICACIÓN ............................................................................... 49 5.1.2. DE ACUERDO A LAS CARACTERÍSTICAS FÍSICAS................................................... 49 DE ACUERDO AL COMPONENTE FÍSICO .......................................................................... 50 5.2. MEMORIAS SEMICONDUCTORAS .............................................................................. 50 5.2.1. ROM ........................................................................................................................ 50 Tecnologías de ROM .......................................................................................................... 51 5.2.2. RAM ......................................................................................................................... 51 Tecnologías de RAM........................................................................................................... 52 SRAM (RAM estática) ......................................................................................................... 52 5.3. JERARQUÍA DE MEMORIA .......................................................................................... 54 PRINCIPIOS DE JERARQUÍA DE MEMORIA ....................................................................... 55 5.4. OPERACIONES DE LECTURA Y ESCRITURA .............................................................. 56 MEMORIA CACHÉ ............................................................................................................. 56 5.5.1. ORGANIZACIÓN ....................................................................................................... 57 5.5.2. FORMA DE ACCESO A UN BLOQUE EN LA CACHÉ .................................................. 58 5.5.3. TÉCNICAS DE SUSTITUCIÓN ................................................................................... 61 5.5.4. TÉCNICAS DE ESCRITURA ...................................................................................... 61 5.5.5. TIPOS DE MEMORIA CACHÉ .................................................................................... 62 5.6. MEMORIA PRINCIPAL ................................................................................................. 62 CAPÍTULO 6 .......................................................................................................................... 63 DISPOSITIVOS PERIFÉRICOS ............................................................................................... 63 INTRODUCIÓN .................................................................................................................. 63 6.1. CONEXIÓN DE LOS PERIFÉRICOS ............................................................................. 64 6.2. ESTRUCTURA DE UN PERIFÉRICO ............................................................................ 65 6.3. CLASIFICACIÓN DE LOS PERIFÉRICOS...................................................................... 66 6.3.1. DISPOSITIVOS DE ALMACENAMIENTO .................................................................... 67 Discos ópticos .................................................................................................................... 68 Cinta magnética.................................................................................................................. 68 BIBLIOGRAFÍA ...................................................................................................................... 69
4
INTRODUCCIÓN En este capítulo estudiaremos al computador conjuntamente con sus componentes así como la forma en que realiza las operaciones. Un computador es una máquina compuesta por elementos físicos que permite aceptar datos de entrada, realizar con ellos operaciones aritméticas y lógicas a gran velocidad y precisión, y proporcionar resultados de salida. Debido a su complejidad es conveniente estudiarlo desde dos aspectos fundamentales: la organización y la arquitectura. Al estudiar el computador desde el punto de vista de la organización se tratan: las unidades lógicas con sus funciones, su operación y la forma en que se interrelacionan y comunican. Por ejemplo en la organización se define los registros del procesador, la forma de utilizar la memoria y los dispositivos de entrada/salida, etc. Desde el punto de vista de la arquitectura se analiza la forma de cómo están construidas cada una de las unidades lógicas y la forma en cómo se comunican para realizar las operaciones definidas en la organización. Por ejemplo en la arquitectura se definen el tipo y el tamaño de los operandos, el formato de las instrucciones, los detalles de construcción de las unidades aritmético-lógica, unidad de control, memoria y entrada/salida. El presente capítulo lo vamos a estudiar en dos apartados 1.
La arquitectura básica de un computador, en el cual se analizan cada uno de los componentes del computador con sus respectivas funciones e interrelación.
2.
La ejecución de las operaciones en un computador, en el que para comprender cómo opera la máquina se presentan programas en lenguaje ensamblador.
5
CAPITULO 1
ORGANIZACIÓN DEL COMPUTADOR ARQUITECTURA BÁSICA Una computadora digital, en su forma más simple consta de:
Unidad central de proceso ó procesador
Unidad de memoria ó módulo de memoria ó memoria básica ó memoria principal.
Unidad de entrada/salida ó módulo de entrada/salida
Sistema de interconexión ó bus.
Unidad Central de Proceso CPU Unidad de Control CU Dispositivos Periféricos Unidad aritmética lógica ALU REGISTROS
PC MAR
IR
FR
MDR
AC
Unidad de Memoria
Unidad de entrada/salida
Figura 2.1 Arquitectura básica
UNIDAD DE MEMORIA La unidad de memoria está organizada como un conjunto de celdas, conocidas también como palabras, cada una de las cuales puede almacenar un dato o una instrucción. Las celdas de la memoria tienen asociada una dirección única. Las direcciones de memoria están asignadas en forma secuencial empezando con la dirección 0.
6
Pueden realizarse dos tipos de direcciones sobre la unidad de memoria. Estas operaciones son de lectura de memoria y escritura a memoria. Para esto la unidad de memoria tiene varias líneas mediante las cuales se conecta al bus. Un conjunto de líneas sirven para especificar la dirección de una celda, otro conjunto sirve para transferir el dato que se desea leer o escribir en esa celda y otra línea se usa para indicar el tipo de operación que se desea realizar. Para comprender lo que es una palabra es necesario analizar la siguiente tabla. # de bits
Nombre
8
Byte
16
Media palabra
32
Palabra
64
Doble palabra
128
Palabra cuádruple
Tabla 1.1. Longitudes y nombres de unidades de almacenamiento En la siguiente figura se puede resumir los diferentes tipos de líneas que utiliza un módulo de memoria.
Lectura/escritura
datos MÓDULO DE MEMORIA
direcciones
datos
control
Figura 1.1 Líneas de la unidad de memoria
7
De la figura: o Las líneas de datos sirven para ubicar el dato que se va a leer (líneas de datos de salida) o a escribir (líneas de datos de entrada). o Las líneas de dirección sirven para especificar la dirección de donde se va a leer o la dirección a donde se va a escribir. o Las líneas de control sirven para controlar y sincronizar las operaciones del módulo de memoria. o La línea de tipo de operación por medio de la se indica si se trata de una operación de lectura o escritura.
UNIDAD CENTRAL DE PROCESO (PROCESADOR) El procesador a la vez está compuesto de tres elementos fundamentales: la unidad aritmético lógica, la unidad de control y los registros. La unidad aritmético lógica es la encargada de realizar las operaciones aritméticas y lógicas (suma, resta, comparaciones, etc.). La unidad de control es la encargada de controlar la ejecución de las operaciones y la utilización de todos los componentes del computador. Los registros permiten almacenar temporalmente datos o instrucciones El número y el tipo de registros que incluye un procesador depende de su arquitectura. Para el estudio del presente capítulo definiremos una máquina hipotética. Dentro de los registros definidos para esta máquina se tienen: Descripción del registro Registro de dirección de memoria
Abrev.
Función
MAR
Especifica la dirección de memoria de donde se desea leer o escribir.
Registro de datos de memoria
MDR
Transfiere datos entre la memoria y el
8
procesador Registro contador de programa
PC
Contiene la dirección de la celda de memoria que tiene almacenada la instrucción a ejecutar.
Registro de instrucción
IR
Contiene la instrucción que actualmente se está ejecutando.
Acumulador
AC
Almacena datos en forma temporal.
Registro de banderas
FR
Puede contener el valor de 0 o 1 indicando si es falso o verdadero el indicador de las banderas. N -> Indica que el valor del acumulador es verdadero. Z -> Indica que el valor del acumulador es 0. V -> Indica que el resultado de una operación aritmética sobrepasa la capacidad del acumulador(overflow).
Tabla 1.2. Registros del procesador de una máquina hipotética Ahora analicemos las líneas que entran y salen del procesador
instrucciones datos datos
UNIDAD CENTRAL DE PROCESO
control
interrupciones
Figura 1.2 Líneas del procesador De la figura: o Las líneas de instrucciones sirven para especificar la instrucción que se va a realizar.
9
o Las líneas de datos permiten ingresar los datos a ser procesados (líneas de datos de entrada) y retornar los datos procesados (líneas de datos de salida). o Las líneas de interrupciones permiten ingresar señales de interrupción(que se interrumpen el procesamiento normal del procesador generadas por hardware o sofware) . o Las líneas de control que se las utiliza para emitir señales de control del funcionamiento de todo el sistema.
UNIDAD DE ENTRADA/SALIDA La unidad de entrada/salida es el elemento del computador que permite la conexión de los dispositivos periféricos al computador. Es la encargada de controlar las operaciones sobre los dispositivos. De igual manera la unidad de entrada/salida tiene líneas de entrada y de salida como se indica en la siguiente figura:
R W dirección
Datos internos
UNIDAD DE ENTRADA/ SALIDA
Datos internos
Datos externos
Datos externos
Señales de interrupción
R -> Leer W-> Escribir
Figura 1.3 Líneas del Procesador De la figura: o Las líneas de dirección sirven para especificar la dirección del dispositivo de donde se va a leer o se va a escribir.
10
o Las líneas de datos internos i líneas de datos externos sirven para receptar o enviar datos de un dispositivo. o Las líneas de control sirven para controlar y sincronizar las operaciones del o módulo de memoria. o Las líneas de tipo de operación Read y Write por medio de las cuales se indica si se trata de una operación de lectura o escritura dependiendo de la que se active. o Las líneas de señales de interrupción que sirven para enviar al procesador una señal de interrupción desde un dispositivo.
OPERACIÓN DE LA COMPUTADORA DIGITAL En este punto vamos a aprender como opera una máquina a bajo nivel lo cual incluye el análisis de: juego básico de instrucciones, formatos de instrucción y datos, tipos de direccionamiento y ejecución de instrucciones. Además cada elemento estará definido para una máquina de estudio que la conoceremos como máquina hipotética. Consideraciones:
Para representar los datos y las direcciones se utilizará el sistema decimal
Los datos con los que se trabaja son números enteros con un tamaño de seis de los cuales la primera posición se utiliza para el signo y los cinco restantes para el valor.
Cada celda de memoria, el acumulador (AC) y el registro de datos (MDR) tienen seis posiciones. La primera posición se utiliza para el signo y las cinco que restan para el número.
La capacidad de almacenamiento de la memoria es de 1000 para almacenar los datos o instrucciones. Por lo tanto las direcciones de memoria irán desde 000 a 999.
El registro de dirección de memoria (MAR) y el controlador de programa (PC) son de tamaño tres para almacenar las direcciones de 000 a 999.
Los registros que se utilizan no son del mismo tamaño dependen de su función.
11
Las instrucciones tienen un tamaño de seis, por lo tanto el registro de instrucción (IR) también tiene el tamaño de seis.
El registro de banderas tiene las banderas N,Z y V negativo, cero y desbordamiento respectivamente.
1.2.1. JUEGO BÁSICO DE INSTRUCCIONES Para la máquina hipotética se consideran las siguientes operaciones.
Código
Operación
Descripción
de operación 01
CLA
Pone el valor de 0 en el AC y se enciende la bandera Z
02
NEG
Cambia el signo al dato que se encuentra en AC y se cambian las banderas N y Z de acuerdo al resultado de la operación.
10
LDA
Carga un dato en el AC. El dato anterior se pierde y las banderas N y Z se cambian de acuerdo al nuevo valor.
11
STA
Guarda el valor del AC en una dirección de memoria. El dato sigue permaneciendo en el AC.
20
ADD
Suma un dato al valor que se encuentra en el AC. El resultado se almacena en el AC. N, Z y V cambian de acuerdo a la operación.
21
SUB
Resta un dato al valor que se encuentra en el AC. El resultado se almacena en el AC. N, Z, y V cambian de acuerdo a la operación.
30
JMP
Se utiliza para continuar con la ejecución de instrucciones, modificando el valor del AC, que hará que continúe tomándose las instrucciones de otra dirección de memoria.
31
JMZ
Transfiere el control de la ejecución a la dirección de memoria especificada en la instrucción cuando la bandera Z está encendida.
32
JMN
Transfiere el control de la ejecución a la dirección de memoria especificada en la instrucción cuando la bandera N está encendida.
33
JMV
Transfiere el control de la ejecución a la dirección de memoria especificada en la instrucción cuando la bandera V está encendida
12
99
HLT
Detiene la operación de la máquina.
00
NOP
No realiza ninguna operación.
Tabla 1.3. Juego de instrucciones para la máquina hipotética.
1.2.2. FORMATO DE INSTRUCCIONES Y DATOS El formato para los datos tiene una posición para el signo y cinco para el valor. Por convención, las posiciones se numerarán de izquierda a derecha, emperezando con la posición 0. Este formato se muestra a continuación: 5
4
3
2
1
0
S
N
N
N
N
N
El formato de instrucciones consta de 3 campos básicos que son: COP -> Código de operación TD -> Tipo de direccionamiento DIR -> Dirección El formato de las instrucciones es: 5
4 COP
3 TD
2
1
0
DIR
Dentro de la computadora, todas las instrucciones están codificadas en forma numérica y existe un código asignado a cada instrucción denominado código de operación. Las posiciones 4 y 5 contienen este código de operación para las instrucciones. Las instrucciones CLA y NEG solamente necesitan el código ya que operan solamente sobre el registro acumulador. Para estas instrucciones las posiciones 0 a 3 no se utilizan y su contenido no es relevante. Las instrucciones HLT y NOP también utilizan solamente el código de operación. Las demás instrucciones hacen referencia a un dato o a una dirección de memoria y, por tanto, las posiciones 0 a 3 sí son usadas para ejecutar la instrucción.
13
1.2.3. TIPOS DE DIRECCIONAMIENTO Al analizar el tipo de direccionamiento analizaremos la posición 3. A continuación se presenta una tabla de la descripción de los tipos de direccionamiento.
Tipo de
Indic.
Direcc.
(pos. 3)
Inmediato
0
Descripción
Instrucciones
El dato se encuentra en las posiciones de 0 a LDA, ADD 2, en las posiciones 2 se almacena el signo y SUB en las 0 y 1 su magnitud, solo pueden tenerse números de -99 a +99.
Relativo
1
El dato se encuentra en la dirección de LDA, STA, memoria que resulta de sumar las posiciones ADD, SUB de 0 y 1 con el signo que indica la posición 2.
JMP, JMZ JMN, JMV
Absoluto
2
El dato se encuentra en la dirección de LDA, STA memoria que se especifica por el número ADD, SUB entero sin signo contenido en las posiciones JMP, JMZ de 0 a 2 el cual va desde 000 a 999.
Indirecto
3
JMN, JMV
El número entero sin signo contenido en las LDA, STA posiciones de 0 a 2 especifica la dirección de ADD, SUB memoria que contiene la dirección de la JMP, JMZ celda de memoria que contiene el dato para JMN, JMV la operación.
TABLA 1.4. Juego de instrucciones para la máquina hipotética
1.2.4. EJECUCIÓN DE LAS INSTRUCCIONES La ejecución de una instrucción se realiza a través de un conjunto de microoperaciones. Para las microoperaciones se deben tomar en cuenta algunas consideraciones:
14
Para referirse al contenido de un registro este va entre paréntesis. Por ejemplo: [PC] hace referencia al contenido del registro PC.
El corchete con un subíndice hace referencia al contenido del registro en la posición señalada por el subíndice. Por ejemplo: [MDR] 3 indica el contenido de la posición tres del registro MDR.
El corchete con un rango como subíndice hace referencia al contenido del registro en las posiciones señaladas por el rango del subíndice: Por ejemplo [IR] 2-0 indica el contenido de las posiciones del 0 al 2 del registro IR.
Las banderas N, Z y V solo pueden tener dos posibles valores 0 ó 1 (falso o verdadero) y se usa la letra que corresponde a la bandera en referencia.
Varias operaciones entre corchetes indica que éstas se realizan en forma simultánea.
A continuación se presenta una tabla en la cual se explica cada una de las microoperaciones. Microoperación
Descripción
Explicación
MMRead
Lectura de memoria
Se da la acción de leer de memoria
MMWrite
Escritura a memoria
Se da la acción de escribir en memoria
[AC]← +00000
Inicializa el AC con 0
El AC = +00000
[AC] ← - [AC]
Cambia el signo del valor
Si el valor del AC es positivo lo cambia a
del AC
negativo y si es negativo lo cambia a positivo.
[AC]5 ← - [IR]2
Carga un dato inmediato en
[AC]4-2← 000
el AC
En la posición 5 del AC se coloca lo que contiene la posición 2 del IR.
[AC]1-0 ← - [IR]1-0
En las posiciones 2,3 y 4 deñl AC se coloca 000.
En las posiciones 0 y 1 se coloca el valor
que
se
encuentra
en
las
posiciones 0 y 1 del IR [PC] ← [PC] + 1
Incrementa el valor del PC
Al valor anterior del PC se le incrementa 1
[IR] ← [MDR]
Transfiere el contenido del
Todos los elementos de las posiciones del MDR
MDR al IR
se pasan al IR. No es necesario indicarlas
Transfiere el contenido del
Todos los elementos de las posiciones del
[MAR] ← [PC]
15
PC
[MAR] ← [PC] + [IR]2-0
PC al MAR
se pasan al MAR. No es necesario indicarlas
Transfiere al MAR a una
Se suma los valores de las posiciones de 0 a 2
dirección relativa
del IR y éste número se suma al PC y el resultado se almacena en el MAR
[MAR] ← [IR]2-0 [MAR] ← [MDR]2-0 [PC] ← [IR]2-0
Transfiere al MAR a una
El valor que se encuentra en las posiciones del 0
dirección absoluta
al 2 del IR se transfiere al MAR
Transfiere una dirección del
El valor de las posiciones de 0 a 2 del MDR se
MDR al MAR
toman y se transfieren al MAR
Transfiere
una dirección El valor que se encuentra en las posiciones del 0
absoluta del IR al PC [PC] ← [PC] + [IR]2-0
Transfiere
al 2 del IR se transfieren al PC
una dirección Se suma los valores de las posiciones de 0 a 2
relativa al PC
del IR y éste número se suma al PC anterior y este resultado se almacena en el PC
[PC]← [MDR]2-0 [AC] ← [MDR] [MDR] ← [AC]2-0 [AC] ← [AC] + [IR]2-0
Transfiere una dirección del
El valor que se encuentra en las posiciones del 0
MDR al PC
al 2 del MDR se transfieren al PC
Transfiere el contenido del
El valor que se encuentra en el MDR se
MDR al AC
transfiere totalmente al AC
Transfiere el contenido del
El valor de las posiciones del 0 al 2 del AC se
AC al MDR
transfieren al MDR
Suma un dato inmediato al
El valor que se encuentra en la posiciones 0 al 2
AC
del IR se suman al valor anterior del AC y se almacena en el AC
[AC] ← [AC] - [IR]2-0
Resta un dato inmediato al
El valor que se encuentra en la posiciones 0 al 2
AC
del IR se restan al valor anterior del AC y se almacena en el AC
[AC] ← [AC] + [MDR]
Suma el MDR al AC
Se suma el valor del MDR al AC y se almacena en el AC
[AC] ← [AC] - [MDR]
Resta el MDR al AC
Se resta el valor del MDR al AC y se almacena en el AC
Tabla 1.5 Explicación de las microinstrucciones de la máquina hipotética La ejecución de una instrucción se realiza en dos ciclos: el ciclo de búsqueda de la instrucción y el ciclo de ejecución.
16
El ciclo de búsqueda se realiza de igual manera en todas las instrucciones, y lo que hace es capturar la siguiente instrucción a ejecutarse en el IR, cuya dirección se encuentra en el PC. El ciclo de búsqueda
de instrucciones está formada por las microoperaciones mostradas a
continuación. [MAR]← [PC] MMRead [PC]← [PC] + 1 [IR]← [MDR] El ciclo de ejecución es diferente para cada instrucción, ya que cada una realiza una operación distinta. La unidad de control es la encargada de controlar tanto el ciclo de búsqueda como el ciclo de ejecución. A continuación se describe el ciclo de ejecución de las instrucciones de máquina con base en las microoperaciones: Instrucción CLA [AC] ← + 00000 Instrucción NEG [AC] ← - [AC] Instrucción LDA Con direccionamiento inmediato [AC]5 ← [IR]2 [AC]4-2 ← 000 [AC]1-0 ← [IR]1-0 Con direccionamiento relativo [MAR] ← [PC] + [IR]2-0 MMRead [AC] ← [MDR] Con direccionamiento absoluto [MAR] ← [IR]2-0 MMRead
17
[AC] ← [MDR] Con direccionamiento indirecto [MAR] ← [IR]2-0 MMRead [MAR] ← [MDR]2-0 MMRead [AC] ← [MDR] Instrucción STA Con direccionamiento relativo [MAR] ← [PC] + [IR]2-0 [MDR] ← [AC] MMWrite Con direccionamiento absoluto [MAR] ← [IR]2-0 [MDR] ← [AC] MMWrite Con direccionamiento indirecto [MAR] ← [IR]2-0 MMRead [MAR] ← [MDR]2-0 [MDR] ← [AC] MMWrite Instrucción ADD Con direccionamiento inmediato: [AC] ← [AC] + [IR]2 000 [IR]1-0 Con direccionamiento relativo [MAR] ← [PC] + [IR]2-0 MMRead [AC] ← [AC] + [MDR] Con direccionamiento absoluto [MAR] ← [IR]2-0 MMRead [AC] ← [AC] + [MDR]
18
Con direccionamiento indirecto [MAR] ← [IR]2-0 MMRead [MAR] ← [MAR]2-0 MMRead [AC] ← [AC] + [MDR] Instrucción SUB Con direccionamiento inmediato: [AC] ← [AC] + [IR]2 000 [IR]1-0 Con direccionamiento relativo [MAR] ← [PC] + [IR]2-0 MMRead [AC] ← [AC] - [MDR] Con direccionamiento absoluto [MAR] ← [IR]2-0 MMRead [AC] ← [AC] - [MDR] Con direccionamiento indirecto [MAR] ← [IR]2-0 MMRead [MAR] ← [MAR]2-0 MMRead [AC] ← [AC] - [MDR] Instrucción JMP Con direccionamiento relativo [PC] ← [PC] + [IR]2-0 Con direccionamiento absoluto [PC] ← [IR]2-0 Con direccionamiento indirecto [MAR] ← [IR]2-0 MMRead [PC] ← [MDR]2-0 Instrucción JMZ
19
Con direccionamiento relativo Si Z = 1, entonces [PC] ← [PC] + [IR] 2-0 Con direccionamiento absoluto Si Z = 1, entonces [PC] ← [IR]2-0 Con direccionamiento indirecto Si Z = 1, entonces [MAR] ← [IR]2-0 MMRead [PC] ← [MDR]2-0 Instrucción JMN Con direccionamiento relativo Si N = 1, entonces [PC] ← [PC] + [IR] 2-0 Con direccionamiento absoluto Si N = 1, entonces [PC] ← [IR] 2-0 Con direccionamiento indirecto Si N = 1, entonces [MAR] ← [IR]2-0 MMRead [PC] ← [MDR]2-0 Instrucción JMV Con direccionamiento relativo Si V = 1, entonces [PC] ← [PC] + [IR] 2-0 Con direccionamiento absoluto Si V = 1, entonces [PC] ← [IR]2-0 Con direccionamiento indirecto Si V = 1, entonces [MAR] ← [IR]2-0 MMRead [PC] ← [MDR]2-0 Instrucción NOP Esta instrucción no realiza ninguna microoperación.
20
1.2.5. EJEMPLOS DE PROGRAMAS Dentro del computador las instrucciones están y se ejecutan solamente en el lenguaje máquina pero para comprender su funcionamiento es más sencillo escribirlo y analizarlo utilizando lenguaje ensamblador. Consideraciones para construir programas en lenguaje ensamblador:
El lenguaje ensamblador está basado en siglas o abreviaturas que representan instrucciones como: LDA, CLA, STA, etc.
Para las direcciones de memoria se usan direcciones simbólicas representadas por nombres como: X, Y, etc.
Para señalar los tipos de direccionamiento se utilizan letras
Se utilizan seudoinstrucciones, las cuales no son traducidas a lenguaje de máquinas, solamente sirven para controlar la generación del lenguaje a partir del código en ensamblador.
Las seudoinstrucciones que se utilizan en este punto son: ORG, especifica que las instrucciones que están a continuación deben ir a partir de la dirección que tiene como argumento. DEF, indica que en lugar definido en la seudoinstrucción se debe colocar el número, define constantes.
Una línea de programa en lenguaje ensamblador está definido por tres campos: campo para etiquetas, campo para instrucciones y parámetros, campo para comentarios. Campo para etiquetas.- este es el primer campo de una línea de programa y puede usarse o dejarse en blanco. Cuando se utiliza, se asigna una dirección simbólica a la línea y, al momento de pasarse al lenguaje de máquina, el valor de la etiqueta será la dirección en memoria en la cual quedará la instrucción correspondiente a la línea de programa que tiene la etiqueta. Capo para instrucciones y sus parámetros.- en este campo se colocan las siglas o abreviaturas para la instrucción, el tipo de direccionamiento y la dirección simbólica o numérica, separados por comas. Campo para comentarios.- este campo es el último de una línea de programa en el lenguaje ensamblador y su contenido no se traduce a lenguaje máquina, en este campo se colocarían en forma opcional los comentarios para hacer el programa.
21
Construcción: Para la construcción vamos a partir con los formatos de instrucción y datos, códigos de operación y tipos de direccionamiento definido en la máquina hipotética. Un programa debe iniciarse en una dirección la cual casi siempre es 000. Las siglas o abreviaturas y los operandos van separados por una coma. Ejecución: Una vez que se encuentra construido el programa podemos explicar su ejecución, la cual la vamos a esquematizar de la siguiente manera: Por cada paso: o Señalar el valor del PC o Señalar el valor del IR o Decodificar la instrucción o Realizar la operación
EJECUCIÓN DE UN PROGRAMA Los valores para realizar las operaciones se encuentran definidos en las direcciones: 100 = +00000(W) 101 = +00250(X) 102 = +00125(Y) 103 = -00315(Z) PASO 1 PC = 000 IR = 102101 10 operación LDA 2 tipo de direccionamiento absoluto 101 dirección del operando PC = 000+1
22
MAR = 101 MDR = +00250 AC = +00250 PASO 2 PC = 001 IR = 202102 20 operación ADD 2 tipo de direccionamiento absoluto 101 dirección del operando PC = 001+1 MAR = 102 MDR = +00250 AC = +00375 PASO 3 PC = 002 IR = 202103 20 operación ADD 2 tipo de direccionamiento absoluto 103 dirección del operando PC = 002+1 MAR = 103 MDR = -00315 AC = +00060 PASO 4 PC = 003 IR = 112100 11 operación STA 2 tipo de direccionamiento absoluto 100 dirección del operando PC = 003+1 MAR = 100 MDR = 00060 AC = +00060
23
PASO 5 PC = 004 IR = 990000 99 operaciรณn HLT (se detiene la ejecuciรณn del programa y termina) PC = 004+5 Al finalizar el programa las direcciones en donde se encuentran los datos quedan con los siguientes valores: 100 = +00060(W) 101 = +00250(X) 102 = +00125(Y) 103 = -00315(Z)
24
CAPÍTULO 2 OPERACIONES DE ENTRADA Y SALIDA E INTERRUPCIONES Todo sistema de computación básico requiere de componentes para ingresar los datos y para obtener los resultados de procesamiento. A estos componentes se los conoce con el nombre de periféricos de entrada y salida. Los periféricos de entrada más comunes son: teclado, ratón y escáner; y, los periféricos de salida más comunes son: monitor, impresora y plotter. Además se requieren componentes que permitan almacenar los datos en forma permanente para poderlos recuperar, procesar y volverlos a guardar. A estos componentes se los conoce como dispositivos de almacenamiento. Los dispositivos de almacenamiento más comunes son: disco duro, disquette. Disco óptico. Al conjunto de los dispositivos de entrada, salida y de almacenamiento se los conoce como dispositivos periféricos. Para poder conectar y comunicar los periféricos con el computador es necesario contar con la unidad de entrada/salida.
2.1. CONCEPTOS BÁSICOS Para que la computadora digital interactúe con un dispositivo periférico típico, es necesario proveer cuatro operaciones básicas:
Transferir datos del periférico a la computadora
Transferir datos de la computadora al periférico
Conocer el estado del dispositivo
Realizar funciones de control sobre el dispositivo
Los periféricos deben conectarse a una unidad de entrada/salida y no directamente al bus del sistema por las siguientes razones:
25
La amplia variedad de periféricos con formas de funcionamiento diferentes
La velocidad de transferencia de datos de los periféricos es mucho menor que la de la memoria o la CPU.
Los periféricos utilizan datos con formatos y tamaños diferentes a los del computador
En un sistema de computación generalmente se tiene varias unidades de entrada/salida para conectar a cada una a cierto tipo de periféricos.
CPU
CONTROLADOR
Datos de entrada
B U S
Dispositivo Periférico
Datos de salida Información de control Información de estado
Figura 3.1 Comunicación con dispositivos periféricos De la figura: Básicamente una unidad de entrada/salida consta de cuatro direcciones:
Datos de entrada, se utiliza para receptar datos del dispositivo periférico en el caso de una lectura.
Datos de salida, se utiliza para enviar datos al dispositivo periférico en el caso de una escritura.
Información de control, se utiliza para enviar información de control al periférico.
Información de estado, se utiliza para obtener el estado del periférico.
26
2.2. INSTRUCCIONES DE ENTRADA/SALIDA Los periféricos pueden ser operados por: 1. El procesador 2. Procesadores de entrada/salida Cuando son operados por el procesador tenemos dos técnicas para realizar las operaciones de entrada/salida. PRIMERA TÉCNICA Código
de
Operación
Descripción
operación 11
STA
Para enviar un dato o información de control
10
LDA
Para obtener un dato o el estado de un dispositivo
La dirección de las instrucciones STA y LDA corresponde a la dirección del dispositivo y tiene que ser diferentes a las direcciones de memoria SEGUNDA TÉCNICA 60
OUT
61
IN
Para enviar un dato o información de control Para obtener un dato o el estado de un dispositivo
La dirección de las instrucciones OUT e IN corresponde a la dirección del dispositivo y no es necesario que sean diferentes a las direcciones de memoria.
Tabla 2.1 Instrucciones de entrada/salida para la máquina hipotética El formato para las instrucciones de entrada/salida es: 2 posiciones para el código de operación 1 posición para el tipo de direccionamiento 3 posiciones para la dirección del dispositivo
27
Formato instrucción IN 5
4
3
6
0
TD
2
1
0
DIR
Formato instrucción OUT 5
4
3
6
1
TD
2
1
0
DIR
Cabe recalcar que las instrucciones de entrada salida solamente utilizan los direccionamientos absoluto e indirecto.
INTERRUPCIONES Supóngase que se está ejecutando un programa que primero realiza una serie de cálculos durante un tiempo de cinco minutos y produce resultados. Estos resultados serán enviados a una impresora para posteriormente analizarlos. Una vez enviados a impresión, el programa realiza otra serie de cálculos durante otros cinco minutos, genera más resultados, los envía a impresión y termina su ejecución. Para estar en posibilidad de aprovechar el tiempo del procesador de una manera más eficiente, se creó el concepto de interrupciones. Se puede definir a las interrupciones como eventos que interrumpen la operación normal del procesador generalmente para dar servicio de entrada ó salida y que permiten optimizar el uso del procesador. En la ejecución de un programa puede requerirse el ingreso o salida de datos. Este servicio se lo realiza a través de una operación de E/S, la cual interrumpe la ejecución normal del programa en ejecución para la preparación y orden de dicho servicio, después de que se hayan realizado estas operaciones; el procesador puede ya volver al programa. Mientras se está realizando el envío o
28
recepción de datos, el procesador puede seguir ejecutando paralelamente las instrucciones del programa. Cabe indicar que para que el procesador continúe exactamente donde se quedó y sin ningún inconveniente se deben almacenar los valores que tienen los registros antes de que se dé paso a la interrupción.
PROCESAMIENTO DE INTERRUPCIONES En el momento que se requiera un servicio de entrada o salida la unidad de entrada/salida reconoce la petición y envía una señal de interrupción al procesador para que se despache. Al recibir esta señal el procesador tiene dos opciones: dar paso a la interrupción o no darle paso. Para habilitar y deshabilitar las interrupciones se tienen dos instrucciones: Código de
Operación
Descripción
operación 03
INTON
Enciende la bandera I para habilitarlas interrupciones
04
INTOFF
Apaga la bandera para deshabilitar las interrupciones
Estas instrucciones solamente utilizan el código de operación Tabla 2.2 Instrucciones para interrupciones en la máquina hipotética Además el controlador de cada periférico tiene una bandera que señala si ese dispositivo tiene o no permiso de realizar una interrupción si esta encendida o apagada respectivamente. Cabe señalar que el procesador dará paso a la interrupción luego de que haya concluido con la instrucción que está en ejecución. Además en el momento que da paso a la interrupción se ejecutan automáticamente las siguientes acciones:
Se guarda el estado del procesador, lo cual implica almacenar los valores de los registros: PC, FR y AC.
Se apaga la bandera de interrupción del procesador
Se realiza un salto incondicional a la dirección donde empieza el programa de la interrupción correspondiente.
29
Una interrupción es tratada al igual que un programa, por lo tanto debe almacenarse en memoria en direcciones específicas. Una vez que se ha terminado el programa de la interrupción se habilita nuevamente la bandera de interrupción. En este momento puede darse el caso de que dos o más dispositivos generen una interrupción en este caso se despacharan de acuerdo a la ubicación física, es decir que el dispositivo que se encuentre conectado físicamente más cerca al bus será atendido. Y los otros dispositivos deberán seguir esperando hasta cuando se habilite la bandera de interrupción. El habilitar y deshabilitar interrupciones constituye el procesamiento de interrupciones secuenciales en donde la prioridad está determinada por la posición del dispositivo en el bus. Pero existen otras formas de procesamiento de interrupciones en las cuales se manejan niveles de interrupciones con prioridades para cada nivel en donde sí se permite la interrupción de una interrupción de acuerdo al nivel y a la prioridad. El procesamiento de interrupciones anidadas constituye una de estas formas de despacho, el cual consiste en: despachar las interrupciones de acuerdo a la prioridad asignada y por tanto una interrupción de mayor prioridad puede interrumpir a una de prioridad menor. Por ejemplo si se está imprimiendo un archivo y mientras se está despachando este servicio se pide almacenar el archivo en disco (el servicio de almacenar tiene mayor prioridad que el servicio de impresión), entonces el servicio de impresión se interrumpe para dar paso al servicio de almacenamiento que tiene mayor prioridad y una vez que termine continuará con el servicio de impresión.
PROCESADORES DE ENTRADA/SALIDA Los procesadores de entrada/salida al igual que la unidad central de proceso pueden ejecutar operaciones (pero en este caso solamente de entrada/salida). Los procesadores de entrada/salida son considerados procesadores esclavos del procesador del computador (CPU). Existen varios tipos de procesadores de entrada/salida conocidos como canales o controladores de acceso directo a memoria (DMA)
30
2.5.1. CONTROLADORES DE ACCESO DIRECTO A MEMORIA (DMA) Un controlador de acceso directo a memoria trabaja simultáneamente con la unidad central de proceso, atendiendo a un dispositivo periférico. En el área de ciencias computacionales se utiliza el término concurrente para indicar que dos o más dispositivos trabajan en forma simultánea. Existen tres tipos básicos de controladores de acceso directo a memoria: Controlador dedicado.- Este tipo de controlador de acceso directo a memoria trabaja, como su nombre lo indica, dedicado a atender a un solo dispositivo periférico. Se usa para manejar periféricos que transfieren grandes volúmenes de información y que se utilizan con mucha frecuencia discos duros por ejemplo. o Controlador selector.- un controlador de acceso directo a memoria del tipo selector puede trabajar con varios dispositivos periféricos, pero sólo le es posible atender uno a la vez. Cuando la unidad central de proceso prepara un dispositivo periférico para realizar una transferencia de datos a memoria, o de memoria; ordena la controlador de acceso directo a memoria que se haga cargo de dicha transferencia entre el periférico y la memoria. El controlador de acceso directo a memoria atiende solamente a este dispositivo hasta que termine su transferencia de datos. En ese momento, genera una interrupción al procesador para indicarle que se terminó la operación e indicarle el estado de la misma y queda liberado. El procesador puede asignarlo posteriormente a otro dispositivo para que controle la transferencia de información entre la unidad de memoria y el periférico. o Controlador compartido.- Un controlador de acceso directo de este tipo puede trabajar al mismo tiempo con varios dispositivos periféricos. La unidad central de proceso puede asignarle el control de varias transferencias de datos entre la unidad de memoria y varios dispositivos periféricos. El controlador de acceso directo a memoria coordina la transferencia de datos entre cada uno de los dispositivos periféricos y la unidad de memoria en forma independiente de las demás y generará una interrupción cada vez que se termine una operación de transferencia de datos de uno de los periféricos. Este tipo de controlador es más versátil que los otros dos tipos.
CANALES Un canal es un dispositivo similar a un controlador de acceso directo a memoria, pero con mayor capacidad para controlar las operaciones de entrada y salida.
31
Con un canal en las operaciones de entrada salida éste intercambia directamente los datos con la memoria sin participación del procesador (CPU). Así cuando la CPU desea leer o escribir un bloque da datos envía una orden al canal delegándole la operación de entrada/salida y el procesador (CPU) continua con otro trabajo. Cuando la transferencia se ha terminado, el canal envía una señal de interrupción al procesador (CPU). Así el procesador (CPU) solo interviene al comienzo y al final de la operación.
32
CAPÍTULO 3 EL PROCESADOR INTRODUCCIÓN En el presente capítulo vamos a estudiar uno de los componentes más importantes del computador EL PROCESADOR. El procesador es considerado el cerebro del computador que está encargado del control de todos los componentes del computador así como de realizar las operaciones aritméticas y lógicas. El procesador es un chip, un tipo de componente electrónico en cuyo interior existe miles (o millones) de elementos llamados transistores, cuya combinación permite realizar el trabajo que tenga encomendado el chip. Tiene forma de cuadrado o rectángulo negro, y van o bien sobre un elemento llamado zócalo (socket en inglés) o soldados en la placa o, metidos dentro de una especie de cartucho que se conecta a la tarjeta principal.
3.1. COMPONENTES
3.1.1. LA UNIDAD DE CONTROL Es el componente del procesador que produce las señales de control para que se lleve a cabo las operaciones cumpliendo con los ciclos de búsqueda y ejecución. La unidad de control es la que controla todo el funcionamiento del computador. La UC básicamente realiza dos tareas:
Secuenciamiento: la unidad de control hace que la CPU avance a través de una serie de microoperaciones en la secuencia oportuna, basada en programa que se está ejecutando.
Ejecución: La unidad de control hace que se ejecute cada microoperación.
33
3.1.2. LA UNIDAD ARITMÉTICO LÓGICA Es el componente del computador que realiza las operaciones aritméticas (suma, resta, multiplicación y división) y lógicas (NOT, AND, OR) con los datos. El resto de los elementos del computador: unidad de control, registros, memoria, E/S, suministran datos a la ALU, a fin de que ésta las procese, y para recuperar los resultados.
3.1.3. REGISTROS Los registros de la CPU se pueden dividir en dos tipos: registros visibles al usuario y registros de control y estado. Registros visibles al usuario.- llamados así porque pueden ser manipulados por el programador a través del lenguaje máquina. Registros de control y estado.- sirven para controlar el funcionamiento de la CPU.
Uso general: son asignados para diversas funciones es decir que pueden ser utilizados para almacenar dato, direcciones o señales de control
Datos: contienen datos.
Direcciones: contienen direcciones
Códigos de condición: llamados indicadores o banderas, almacenan indicadores acerca de alguna operación por ejemplo: un resultado puede ser positivo o negativo, nulo o con desbordamiento. Registros de control y estado se pueden diferenciar los siguientes: Estos registros ya fueron descritos con mayor detalle en el capitulo 2 por lo que los citaremos en forma general.
Contador de programa: contiene la dirección de la instrucción a captar.
Registro de instrucción: contiene la última instrucción captada.
34
Acumulador: almacena el último dato captado o calculado
Registro de dirección de memoria: contiene la última dirección de una posición de memoria.
Registro de datos de memoria: contiene la última palabra de datos a leer o escribir.
Registro de palabra de estado: contiene información de estado, los indicadores más comunes son: Signo, contiene el bit de signo del resultado de la última operación aritmética. Cero, puesto a uno cuando el resultado es 0. Acarreo, puesto a uno si una operación tiene acarreo. Igual, puesto a uno si el resultado de una comparación es igualdad. Desbordamiento, usado para indicar si hay desbordamiento. Interrupciones habilitadas/deshabilitadas, usado para permitir o no interrupciones. Supervisor, indica si la CPU funciona en modo supervisor o usuario.
3.2. ORGANIZACIÓN DEL PROCESADOR La organización del procesador incluye la estructura de las rutas principales de datos de la CPU o procesador y los bloques del procesador. Estos bloques pueden organizarse e interconectarse de varias formas. Una de tales organizaciones se muestra en la figura 3.1. “camino de datos del procesador”. En este caso, la unidad aritmética y lógica (ALU) y todos los registros de la CPU están conectados a través de un bus común. Desde luego, este bus es interno y no debe confundirse con el bus externo, o buses, que conectan a la CPU con la memoria y los dispositivos de E/S. el bus externo de memoria se muestra en la figura conectado con la CPU por medio de los registro de datos y de dirección MDR y MAR. El número y funciones de los registros del R0 al R(n-1) varían mucho de una máquina a otra. Puede ser para que el programador los emplee en operaciones generales, pero algunos de ellos pueden ser registros de aplicación especial, tales como registros índice o apuntadores de pila. Dos de los registros de la figura, los registros Y / Z, no se han mencionado. Estos registros son invisibles para el programador; esto es, no necesita preocuparse de su existencia, ya que nunca son referenciados en forma directa por instrucción alguna. Sólo son utilizados por la CPU para almacenamiento temporal durante la ejecución de ciertas instrucciones. Sin embargo, nunca se
35
utilizan para almacenar datos generados por una instrucciรณn para que luego los utilice otra instrucciรณn.
36
3.3. PROCESAMIENTO PARALELO 3.3.1. ARQUITECTURA SEGMENTADA O PIPELINE El pipeline consiste en dividir una instrucción en etapas y ejecutarlas en forma paralela, con diferentes datos. En el pipeline se permite paralelismo solamente con la misma instrucción ejecutándose simultáneamente las diferentes etapas de dicha instrucción con datos distintos. El concepto pipeline denota algo similar a una línea de ensamble en la cual se tiene varias estaciones y cada una realiza una operación diferente sobre los productos que se están fabricando, pero todas estas estaciones trabajan simultáneamente sobre distintos productos iguales.
3.3.2. ARQUITECTURA RISC (RESTRICTED INSTRUTION SET COMPUTERS). El concepto de arquitecturas RISC significa computadora con juego de instrucciones rtestringido apareció a mediados de la década de los setenta en IBM y culminó con la construcción de una máquina llamada IBM 801. la idea consistió en desarrollar una arquitectura que pudiera ejecutar todas sus instrucciones en un ciclo de reloj, lo cual lo haría más rápida. A continuación se presentan las principales características de esta arquitectura:.
Un conjunto de instrucciones limitado y sencillo
Un gran número de registros de uso general, o el uso de tecnología de compiladores para optimizar el uso de los registros.
Optimiza el código generado para optimizar su tamaño.
Un énfasis en la optimización de la segmentación de instrucciones.
Tienen arquitectura “load/store” esto quiere decir que los accesos a la memoria principal son para extraer instrucciones y datos; y, almacenar datos, todas las operaciones de procesamiento se realizan en los registros del procesador.
37
3.3.3. ARQUITECTURA VECTORIAL Permite realizar en paralelo operaciones aritméticas repetidas sobre matrices de datos cuando se cuenta con máquinas que poseen más de una unidad aritmético lógica. Entonces la técnica consiste en dividir los elementos de los vectores y enviar en forma paralela a las unidades de procesamiento a que se realice sobre esos elementos la instrucción (especificada).
3.3.4. ARQUITECTURA SUPERESCALAR Permite hacer paralelas las mismas etapas sobre instrucciones diferentes. Un procesador superescalar puede ejecutar más de una instrucción a la vez. Para esto es necesario que existan varias unidades aritmético-lógicas, de punto flotante y de control.
3.3.5. MULTIPROCESADORES Una arquitectura multiprocesador consta de varios procesadores que permiten ejecutar un conjunto de instrucciones diferentes en forma paralela. Tecnologías de Procesadores En vista de que en el mercado computacional se dispone de una gran variedad de marcas y modelos de procesadores provistos por diferentes fabricantes. El estudio de estas tecnologías se torna muy extenso. Por lo que se ha creído conveniente que en este tema delimitemos el estudio a los dos mayores fabricantes de procesadores Intel y AMD. Cabe recalcar que se ha seleccionado estos dos fabricantes no por ninguna razón comercial sino porque en nuestro medio son los más comercializados para equipos personales e institucionales.
38
CAPÍTULO 4 BUSES INTRODUCIÓN El componente encargado de comunicar las unidades de un computador es el sistema de interconexión conocido también con los nombres de estructuras de interconexión o buses. Una descripción más amplia de los buses es que es un conjunto de líneas que transmiten señales entre varios dispositivos. Dichas líneas transmiten señales binarias representadas por 1 y 0. Los buses son compartidos por dos o más dispositivos que para asegurar que las señales no se crucen debe incorporarse un mecanismo de sincronización. A continuación se presenta una figura en la que se indica a nivel general cómo un bus conecta los componentes de un computador.
PROCESADOR
E/S
MEMORIA
E/S
BUS
Fig. 4.1. Interconexión de componentes mediante bus
ESTRUCTURA DEL BUS Un bus está conformado por un conjunto de líneas las cuales se agrupan de acuerdo a su función. A nivel general un bus está constituido por líneas de datos, dirección y control Las líneas de datos, permiten transmitir los datos entre los módulos del computador. Las líneas de dirección, se utilizan para designar la fuente o el destino del dato que se encuentra en el bus de datos.
39
Las líneas de control, se usan para controlar el acceso y el uso de las líneas de datos y dirección. Las señales control transmiten tanto órdenes como información de sincronización entre los módulos que participan. A nivel general las líneas de control de un bus pueden ser:
Reloj
Inicio
Escritura en memoria
Lectura en memoria
Escritura E/S
Lectura E/S
Transferencia reconocida
Petición del bus
Cesión del bus
Petición de interrupción
Interrupción reconocida
CLASIFICACIÓN DE LOS BUSES Los buses se clasifican desde diferentes aspectos como son: tipo de transferencia, método de arbitraje y temporización. A continuación se describe la clasificación de los buses de acuerdo a los aspectos señalados anteriormente.
4.2.1. TIPO DE TRANSFERENCIA Dedicado Multiplexado
40
datos
direcció n control
Fig. 4.2. Representación de bus dedicado En este tipo de bus las líneas están divididas y dedicadas funcionalmente a datos, dirección o control.
Datos – dirección - control
Fig. 4.3. Representación de bus multiplexado En este tipo de bus las líneas son comunes para transmitir datos, dirección o control en tiempos diferentes.
4.2.2. MÉTODO DE ARBITRAJE Centralizado, un árbitro es el responsable de asignar el servicio y el tiempo del bus. Cualquier componente que desee hacer uso del bus deberá esperar que el árbitro le asigne el servicio del bus. Para asignar el servicio del bus a los componentes el árbitro tiene una lógica de selección la cual se basa en prioridades. Por ejemplo: Primero en solicitar primero en concederle el servicio del bus, el componente que esté más cercano físicamente al bus tiene el privilegio de asignársele el servicio del bus, etc. Distribuido, cada dispositivo tiene la lógica para controlar el acceso al bus, de tal manera que un momento dado cualquiera de los componentes puede tomar el control del bus y constituirse en el maestro.
41
4.2.3. TEMPORIZACIÓN Síncrono, los buses síncronos están controlados por un reloj. Las transmisiones empiezan al inicio de reloj. Asíncrono, los buses asíncronos realizan la transmisión luego de recibir las señales de sincronización del maestro y sincronización del esclavo.
4.3. JERARQUÍA DE BUSES Debido al número de componentes que se interconectan en un computador y a las diferentes velocidades que trabajan cada uno de ellos, es preciso que los buses que los interconectan se organicen en niveles de acuerdo a las necesidades de velocidades de transmisión altas, medianas o bajas. Por lo anteriormente indicado los computadores están construidos en base a varios buses en diferentes niveles para evitar el retardo en el despacho de la transmisión y el embotellamiento. Dichos buses están organizados en forma jerárquica. La velocidad del bus es mayor en los niveles superiores de la jerarquía y es menor en los niveles inferiores.
42
De la figura: Bus local: es el bus que conecta el procesador a la caché y también pueden conectarse a él otros dispositivos que requieran una gran velocidad. Bus del sistema: es el bus al cual se conectan los componentes principales del computador como son: memoria, procesador unidad de entrada/salida. Bus de expansión: es el bus que permite conectar controladores de E/S para la conexión de dispositivos externos que no requieren una velocidad muy elevada por ejemplo: tarjetas de red, controladores de disco, puerto serial etc. Bus de alta velocidad: este bus permite la conexión de dispositivos que ofrecen velocidades y prestaciones de alta capacidad como: tarjetas de red de alta velocidad, controladores para estaciones de trabajo especificas para aplicaciones gráficas y video, etc.
43
4.4. TECNOLOGÍA DE BUSES En este punto se presentan algunas de las tecnologías de buses que han sido y son incorporadas en los computadores. Es importante que usted conozca las tecnologías de buses ya que estas se incorporan en forma independiente en cualquier tipo de computador.
EL BUS XT Y EL BUS ISA (AT) Cuando en 1980 IBM fabricó su primer PC, este contaba con un bus de expansión conocido como XT que funcionaba a la misma velocidad que los procesadores Intel 8086 y 8088 (4.77Mhz de velocidad). El bus XT tenía un ancho de banda de 8 bits con lo cual se podía transportar un byte a la vez. Con la introducción del computador AT apareció un nuevo bus en el mundo del PC, que tenia un ancho de 16 bits (ISA) y era compatible con su antecesor, la diferencia era que el bus XT era síncrono y el AT era asíncrono. Además el bus ISA aumentó la velocidad de cada una de las señales de frecuencia de manera que toda la circulación del bus se desarrolló más rápidamente de 4.77 Mhz en el XT a 8.33 Mhz.
EL BUS MICRO CHANNEL (MCA) El diseño del bus microcanal MCA (Micro Channel Arqyuitecture) permitía un ancho de datos de 32 bits y una velocidad de reloj ligeramente más elevada 10 Mhz. Con una velocidad de transferencia máxima de 20 Mbps frente a los 8 Mbps del bus ISA. Este bus se comercializó con la gama de ordenadores PS/2 de IBM Los conectores de las tarjetas de expansión del bus microcanal eran más pequeños que los del bus ISA siendo por lo tanto incompatibles.
44
EL BUS EISA También es un bus de transferencia de 32 bits y compatible con las tarjetas ISA lo cual le obligó a trabajar a una velocidad de 8 Mhz. Esta arquitectura de bus permite multiproceso, es decir integrar en el sistema varios buses dentro del sistema y es utilizado en sistemas operativos como UNIX o Windows NT.
BUS LOCAL VESA Al contrario que con el EISA, MCA, el bus VL no sustituye al bus ISA sino que lo complementa. Un PC con bus VL dispone para ello de un bus ISA y de las correspondientes ranuras para tarjetas de ampliación. Además en un PC puede haber hasta tres ranuras para colocar tarjetas concebidas para el bus VL, casi siempre para gráficos. Es un bus de 32 bits pero puede trabajar como de 8 bits.
EL BUS PCI (PERIPHERAL COMPONENT INTECONNECT) El bus de interconexión de componentes periféricos, es un bus de ancho de banda elevado, independiente del procesador. El bus PCI presta mejores prestaciones para los subsistemas de E/S de alta velocidad (por ejemplo los adaptadores de pantalla gráfica, los controladores de interfaz de red, los controladores de disco etc.). Permite velocidades de transferencia de 264 Mbps a 2.112 Gbps. Trabaja con velocidades de 33Mhz, 66Mhz, 100Mhz y actualmente hasta 133Mhz, se lo ha diseñado específicamente 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 al bus PCI.
EL BUS SCSI (SMALL COMPUTER SYSTEM INTERFACE). Además de todas las arquitecturas mencionadas anteriormente, también hay que mencionar a SCSI. Esta tecnología tiene su origen a principios de los años 80 cuando un fabricante de discos desarrollo su propia interface de E/S denominado SASI que debido a su gran éxito comercial fue presentado y aprobado por ANSI en 1986.
45
SCSI no se conecta directamente al microprocesador sino que utiliza de puente uno de los buses anteriormente nombrados. Se puede definir SCSI como un subsistema de E/S inteligente, completa y bidireccional. Un solo adaptador host SCSI puede controlar hasta 7 dispositivos inteligentes SCSI conectados a él.
EL BUS AGP (ACCELERATED GRAPHICS PORT) La tecnología AGP, creada por Intel, tiene como objetivo fundamental el nacimiento de un Nuevo tipo de PC, en el que se presta especial atención a dos facetas: gráficos y conectividad. La especificación AGP se basa en la especificación PCI 2.1 de 66 MHz y añade 3 características fundamentales para incrementar su rendimiento: operaciones de lectura/escritura en memoria con pipeline, demultiplexado de datos y direcciones con el propio bus, e incremento de la velocidad hasta los 100 Mhz. Se trata de un bus dedicado, no comparte ancho de banda con otros componentes, como sucede con el PCI.
BUSES DE COMUNICACIÓN SERIE Y PARALELO Los puertos son puntos de conexión que facilitan la entrada y salida de información del computador desde y hacia los periféricos. Los puertos de conexión pueden ser de entrada, de salida o bidireccionales. La transmisión, a través de un puerto de comunicaciones, de los datos que componen la información puede efectuarse en modo paralelo o serie. Ambos modos se diferencian por la forma en que transmiten los datos a través del soporte físico de la comunicación.
46
Una comunicación serie emplea una única línea de datos por la que se transmite, de forma sucesiva, los bits que componen la información en formato digital. Una comunicación de este tipo transmite un bit en cada ciclo de reloj. Una comunicación en paralelo emplea varias líneas de datos que permiten transmitir, paralelamente, diversos bits, uno por cada línea. En consecuencia transmite varios bits en cada ciclo de reloj, siempre en función de las líneas de datos que integre.
Los nuevos buses de comunicación El desarrollo de los sistemas de comunicación ha llevado al establecimiento de estándares y protocolos que permiten altos niveles de transferencia y anchos de banda muy superiores a los que existían hasta hace poco. Tres tecnologías nuevas han tomado la iniciativa en el mercado como: USB (Universal Serial Bus), IrDA (IntraRed Data Association) y Firewire o IEEE 1394.
EL ESTÁNDAR USB Su aplicación se centra, básicamente, en la conexión de periféricos que mueven grandes volúmenes de datos en sus procesos de comunicación, como monitores, módems, escáneres, teclados o ratones. Permite hacer realidad las especificaciones de un sistema Plug y Play. Además el controlador del bus gestiona, a través de un sistema de direccionamiento dinámico, la asignación de recursos a cada uno de ellos repartiendo, al instante y de una manera inteligente, el flujo de datos en función de los dispositivos conectados. Un sistema USB hace posible a través de una topología en cadena o estrella que permite conectar un dispositivo a través de otro, controlar simultáneamente un total de 127 periféricos mediante un Hub USB. El cable que emplean los puertos USB permite la conducción tanto de datos como de corriente eléctrica hacia el periférico, de modo que se reducen los costes de producción de éstos al no tener que incorporar la fuente de alimentación, aunque tiene sus limitaciones.
47
EL ESTÁNDAR IEEE 1394 Fue desarrollado en un principio, por Apple Computer que lo bautizó como Firewire, tiempo después empezó a conocerse como IEEE 1394, aunque algunos fabricantes utilizan su propio término como la firma multinacional japonesa Sony que emplea el término iLINK para catalogar sus productos que utilizan este estándar como protocolo de comunicación. Lo que comenzó como un protocolo de red local se utiliza ahora, entre muchos otros, en periféricos tan diferentes como cámaras de video digital, tarjetas de edición de video, sistemas de red de alta velocidad, veloces unidades de disco duro y unidades ópticas.
Las ranuras de expansión Las ranuras de expansión se puede decir que son los enchufes madre del sistema del bus. A través de ellas, el bus tiene acceso a tarjetas de expansión como el adaptador gráfico, tarjeta de televisión, tarjeta de sonido, etc.
48
CAPÍTULO 5 SISTEMA DE MEMORIA INTRODUCIÓN La memoria es un componente imprescindible en el computador ya que para que éste pueda trabajar requiere que se almacenen tanto los datos como las instrucciones. La información en un computador de acuerdo a su ubicación puede ser interna o externa. Dentro de las memorias internas se tiene los registros del procesador, la memoria caché y la memoria principal y de las externas los discos magnéticos, discos ópticos, cintas magnéticas, etc. Debido a que ninguna tecnología de memoria es óptima para satisfacer completamente las necesidades de un computador, el sistema de memoria se encuentra organizado en varios niveles (diversas tecnologías) con características de tamaño, velocidad y costos.
CLASIFICACIÓN DE LAS MEMORIAS Las memorias se clasifican de acuerdo a algunos aspectos como son: ubicación, características físicas y componente físico.
5.1.1. DE ACUERDO A LA UBICACIÓN Tenemos que la memoria puede ser: interna o externa Interna: las memorias internas en el computador son: los registros del procesador, la memoria caché y la memoria principal. Externa: la constituyen los dispositivos de almacenamiento externo o periféricos tales como: discos ópticos, discos magnéticos, cintas magnéticas que son accesibles a través de las unidades de E/S.
5.1.2. DE ACUERDO A LAS CARACTERÍSTICAS FÍSICAS Las memorias pueden ser de los siguientes tipos:
49
Volátil / no volátil Borrable / no borrable En las memorias volátiles la información se va perdiendo, desaparece cuando se desconecta la energía. En las memorias no volátiles la información, una vez grabada, permanece sin deteriorarse hasta que se modifique intencionadamente, no se necesita la fuente de alimentación para mantener la información. Las memorias borrables son conocidas como memorias de lectura/escritura. Las memorias no borrables no pueden modificarse. Las memorias semiconductoras de este tipo se conocen como memorias de solo lectura (ROM).
DE ACUERDO AL COMPONENTE FÍSICO Tenemos: Semiconductoras Magnéticas Ópticas Las memorias semiconductoras utilizadas para la memoria caché y principal. Las memorias de soporte magnético utilizadas en discos y cintas Las memorias ópticas utilizadas en discos ópticos.
5.2. MEMORIAS SEMICONDUCTORAS Dentro de las memorias semiconductoras tenemos las memorias: ROM Read Only Memory (Memoria de solo lectura) RAM Random Access Memory (Memoria de acceso randómico)
5.2.1. ROM
50
Las memorias no volátiles conservan los datos en forma permanente, a este tipo de memorias se las conoce como memorias de solo lectura.
Tecnologías de ROM De acuerdo a su técnica de construcción y formas de borrado se pueden identificar las siguientes tecnologías de memoria de solo lectura. ROM (Read Only Memory), memoria de solo lectura es construida a base de circuitos integrados y se almacena la información al momento de su fabricación. PROM (Programable, Read Only Memory), memoria programable de solo lectura se diferencia de la ROM, poque se construyen sin ninguna información y pueden grabarse solo una vez. EPROM (Erasable Programable Read Only Memory), memoria de solo lectura y borrable eléctricamente, se puede leer y escribir eléctricamente como la PROM, pero con la diferencia que antes de realizar una escritura primeramente se debe borrar el contenido anterior, lo cual se lo realiza mediante la aplicación de radiaciones ultravioleta al chip correspondiente. EEPROM (Electrically Erasable Programmable Read Only Memory) memoria de solo lectura programable y borrable eléctricamente puede ser escrita en cualquier momento sin necesidad de borrar el contenido como las EPROM. Son memorias actualizables eléctricamente.
5.2.2. RAM Memoria volátil y que puede ser cambiada fácilmente se la conoce como memoria de acceso aleatorio RAM (Random Access Memory), debido a la capacidad que tiene para acceder a cada dirección en forma directa, sin pasar por los bytes precedentes. RAM es el tipo más común de memoria en las computadoras y en otros dispositivos, tales como las impresoras.
51
Tecnologías de RAM Dentro de las principales tecnologías de memoria RAM se tiene:
SRAM (RAM estática) Static Random Access Memory: es un tipo de memoria estática, en esta memoria no hay necesidad de refresco. DRAM (RAM dinámica) Dynamic Random Access Memory: es un tipo de memoria dinámica debe refrescarse continuamente en un cierto intervalo de tiempo porque sino puede perderse ocasionando que mientras se está realizando el refrescamiento no está disponible. El bloque básico de construcción de la memoria principal es el chip DRAM y el bloque básico de la construcción de memoria caché es el chip SRAM..
EDRAM (DRAM mejorada) Enhanced Random Access Memory: esta memoria integra una pequeña caché SRAM en un chip de DRAM genérica. La caché SRAM almacena el contenido completo de la última fila leída con una capacidad de 2 Kbits.
CDRAM (DRAM caché) Caché Dynamic Random Access Memory: es similar a la EDRAM incluye una caché SRAM más grande que la de una EDRAM (16 Kbits). La caché SRAM contiene un bloque denominado “columna accedida más recientemente”. El modo de la caché de la CDRAM es efectivo para usarles accesos aleatorios a memoria.
SDRAM (DRAM sincrónica) Synchronous Dynamic Random Access Memory: intercambia datos con el procesador de forma sincronizada con una señal de reloj
52
externa, que opera a la velocidad tope del bus procesador/memoria, sin imponer estados de espera.
VRAM (RAM de video) Video Dynamic Random Access Memory: es una memoria de propósito especial usada por los adaptadores de video, puede ser accedida por dos diferentes dispositivos de forma simultánea. Esto permite que un monitor pueda acceder a la VRAM para las actualizaciones de la pantalla al mismo tiempo que un procesador gráfico suministra nuevos datos y es más cara que una RAM normal.
SIMM (Módulo de memoria en línea) Sinngle In line Memory Module: un tipo de encapsulado consistente en una pequeña placa de circuito impreso que almacena chips de memoria, y que se inserta en un zócalo SIMM en la placa madre.
DIMM (Módulo doble de memoria) Dual In line Memory Module: un tipo de encapsulado consistente en una pequeña placa de circuito impreso que almacena chips de memoria, que se insert en un zócalo DIMM en la placa madre y usa generalmente un conector de 168 contactos.
FPM (Memoria modo paginado) Fast Page Mode: memoria en modo paginado, es el tipo más antiguo y menos complejo de RAM El scceso a los bits de memoria se realiza por medio de coordenadas, fila y columna.
EDO (Memoria de salida de datos extendida) Extended data Output: un tipo de chip de RAM dinámica que mejora el rendimiento de modo de memoria Fast Page alrededor de un 10%.
BEDO - Bursa EDO: es un tipo más rápido de EDO que mejora la velocidad usando un controlador de dirección para las siguientes direcciones y un estado pipeline que solapa las operaciones.
PB SRAM – Pipeline Bursa SRAM: se llama pipeline a una categoría de técnicas que proporcionan un proceso simultáneo o en paralelo dentro de la computadora, y
53
se refiere a las operaciones de solapamiento moviendo datos o instrucciones en una tubería conceptual con todas las fases de pipe procesando simultáneamente.
SDRAM DDR (Double data rate): es el doble de rápida comparada con la SDRAM.
5.3. JERARQUÍA DE MEMORIA Para indicar las características generales de la jerarquía de memoria se considera la figura 5.1. Una jerarquía de memoria típica
Reg
Caché
Memoria Principal Caché de disco Disco Magnético Cinta Magnética
Disco Optico
Fig. 5.1. Jerarquía de memoria moderna El tipo de memoria más rápida, más pequeña y cara, lo constituye los registros internos al procesador. En el siguiente nivel inferior se encuentra la memoria caché que sirve para acercar la memoria principal al procesador y con ello mejorar las prestaciones, la caché es más rápida y más pequeña que la memoria principal y no es visible al programador. En el siguiente nivel se encuentra la memoria principal conocida también como memoria real, o memoria básica, se constituye en un tipo de memoria imprescindible dentro del computador, ya que sin almacenamiento previo no se puede realizar ninguna tarea. Estos tres tipos de memoria son volátiles de tecnología semiconductora, el uso de tres niveles aprovecha la variedad existente de tipos de memorias semiconductoras, que difieren
54
en velocidad y costo. El almacenamiento de datos de forma más permanente se hace en dispositivos de almacenamiento secundario que además permiten almacenar grandes cantidades de información, de los cuales los más comunes son los discos magnéticos, discos ópticos y las cintas magnéticas. Las memorias externas no volátiles o permanentes se denominan también memorias secundarias o auxiliares. Se utilizan para almacenar archivos. Además se puede utilizar una parte de la memoria principal para almacenar datos que van a ser colocados en disco, esta técnica se denomina caché de disco.
PRINCIPIOS DE JERARQUÍA DE MEMORIA
Una jerarquía de memoria consta de varios niveles, pero en cada momento se gestiona entre dos niveles adyacentes.
El nivel superior es el más cercano al procesador, es más rápido, más pequeño y más costoso que el nivel inferior.
La mínima unidad de información que puede estar presente o no en la jerarquía de dos niveles se denomina bloque.
El éxito o fracaso de un acceso a un nivel superior se asigna como acierto o fallo.
Un acierto, es un acceso a memoria que se encuentra en el nivel superior, mientras que un fallo significa que no se encuentra en ese nivel.
El tiempo de acierto, es el tiempo para acceder al nivel superior de la jerarquía de memoria, que incluye el tiempo para determinar si el acceso es un acierto o un fallo.
Penalización de fallo, es el tiempo para sustituir un bloque de nivel superior por el bloque correspondiente del nivel más bajo, más el tiempo en proporcionar este bloque al dispositivo que lo ha pedido (normalmente a la CPU). La penalización de fallo se divide en dos componentes: Tiempo de acceso, es el tiempo para acceder a la primera palabra de un bloque en un fallo.
55
Tiempo de transferencia, es el tiempo adicional para transferir las restantes palabras del bloque.
5.4. OPERACIONES DE LECTURA Y ESCRITURA En los niveles de jerarquía de memoria se dan dos tipos de operaciones: la lectura y escritura. La operación de lectura se inicia cuando la CPU solicita información a través de una dirección virtual a la memoria caché, dicha información solicitada puede encontrarse o no en la caché dando un acierto o fallo respectivamente. Si hay un acierto la información requerido es enviada a la CPU caso contrario se debe bajar a memoria principal a cargar el bloque correspondiente a la información solicitada; y, si no se encuentra en la memoria principal debe bajar a la memoria secundaria a ubicar la información solicitada para ser cargada en la memoria principal, luego a caché y luego enviarla al procesador. La operación de escritura se da cuando se realiza una actualización de información en la CPU, la cual se la escribe en la caché, luego en la memoria principal y posteriormente en la memoria secundaria
MEMORIA CACHÉ La memoria caché es un tipo de memoria que se incorpora en los computadores para evitar los cuellos de botella de acceso a la memoria principal, conteniendo una copia de partes de la memoria principal. Constituye un nivel de almacenamiento del contenido de memoria principal al procesador. La memoria caché se encuentra en el nivel de jerarquía entre la CPU y la memoria principal. Esta memoria se presenta en forma de chips. Existen algunos aspectos que intervienen en el diseño de una memoria caché como: organización, métodos de sustitución, técnicas de escritura.
56
5.5.1. ORGANIZACIÓN El lugar donde puede ubicarse un bloque en la caché determina tres formas de organización: Correspondencia directa Completamente asociativa Asociativa por conjuntos Correspondencia directa, cada bloque solamente tiene un lugar donde puede ubicarse en la caché. La correspondencia está determinada por: Dirección de la estructura del bloque (en memoria principal) MOD (número de bloques en la caché). Completamente asociativa, cada bloque puede ubicarse en cualquier parte de la caché. La organización asociativa por conjuntos, es una combinación de las organizaciones de correspondencia directa y completamente asociativa. Para escoger el conjunto se aplica correspondencia directa y para el bloque la completamente asociativa. En la asociativa por conjuntos, cada bloque se puede colocar en un conjunto restringido de lugares de la caché. Un conjunto es un grupo de dos o más bloques de la caché. Un bloque se hace corresponder primero en un conjunto y después se puede colocar en cualquier parte del conjunto. El conjunto se escoge por: dirección de la estructura del bloque (en memoria principal) MOD (número de conjuntos en la caché). El número de bloques que conforman un conjunto debe ser múltiplo de dos. Si hay n bloques en un conjunto se dice asociativa por conjuntos de n vías. El módulo (MOD) es el residuo de la división entera
57
Figura 5.2. Formas de organización de la memoria caché En la figura 5.2. “Formas de organización de la memoria caché” se esquematiza los tres tipos de organización. De la figura: La caché tiene 8 bloques, la memoria principal tiene 32 bloques. En la de correspondencia directa, el bloque 12 solo puede colocarse en el bloque 4 (12 MOD 8). En la completamente asociativa el bloque 12 del nivel inferior puede ir en cualquiera de los 8 bloques de la caché. En la asociativa por conjuntos que tiene algunas características de ambas, permite que el bloque 12 se coloque en cualquier parte del conjunto 0 (12 MOD 4). Se trata de una memoria asociativa por conjuntos de 2 vías, ya que se tiene 4 conjuntos de 2 bloques y el bloque se puede colocar en el bloque 0 o en el bloque 1.
5.5.2. FORMA DE ACCESO A UN BLOQUE EN LA CACHÉ Para acceder a los bloques de la caché se cuenta con una dirección
58
La dirección tiene una estructura:
Etiqueta
Desplazamiento
a. Dirección en una caché de correspondencia directa y completamente asociativa
Etiqueta
Índice
Desplazamiento
b. Dirección en una caché asociativa por conjuntos
Figura 5.3. Dirección de una caché De la figura: La etiqueta indica el número de bloque El índice el número de conjunto El desplazamiento selecciona el dato deseado del bloque
Figura 5.4. Formas de acceso a la caché El procedimiento para accesar a un bloque en la caché de acuerdo a la forma de organización es como sigue (ver figura 5.4. “Formas de acceso a la caché”). En las caché completamente asociativa se realiza la búsqueda con las etiquetas en todos y cada uno de los bloques.
59
En la caché de correspondencia directa se realiza la búsqueda con la etiqueta al bloque único correspondiente. En la caché asociativa por conjuntos una vez que con el índice se ha seleccionado el conjunto se realiza la búsqueda con la etiqueta a todos los bloques correspondientes a ese conjunto. Ejercicio: En un sistema de memoria con las características que se indican a continuación:
Memoria principal de 32 bloques
Memoria caché de 8 bloques
Caché asociativa por conjuntos de 2 vías
Realice: a. La asignación del bloque 22 de la memoria principal a las cachés a.1. Asociativa por conjuntos a.2. Totalmente asociativa a.3. Correspondencia directa Desarrollo: a.1. Aplicando la fórmula se tiene: 22 MOD 4 = 2 El bloque 22 de la memoria principal se asigna en el conjunto 2 y en cualquiera de los bloques: 4 o 5. a.2. El bloque 22 de la memoria principal se asigna en cualquiera de los bloques de la caché del 0 al 7 a.3. Aplicando la fórmula se tiene: 22 MOD 8 = 6 El bloque 22 de la memoria principal se asigna en el bloque 6 de la memoria caché.
60
5.5.3. TÉCNICAS DE SUSTITUCIÓN Cuando se introduce un nuevo bloque en la caché debe sustituirse uno de los bloques existentes. Para el caso de correspondencia directa, solo hay un posible bloque particular de acuerdo a la fórmula y no hay elección posible. Para las técnicas asociativas se requieren algoritmos de sustitución. Existen 4 algoritmos que son los más comunes. Utilizando menos recientemente, este sustituye el bloque que se ha mantenido en la caché por más tiempo sin haber sido referenciado. Esto es fácil de implementar para la asociativa por conjuntos, cada bloque incluye un bit de uso. Cuando un bloque es referenciado se pone a 1 su bit de uso y 0 al resto de los bloques del mismo conjunto. Cuando va a transferirse un bloque se utiliza el bloque cuyo bit es 0. Primero en entrar primero en salir (FIFO), sustituye aquel bloque del conjunto que ha estado más tiempo en la caché. Menos frecuentemente usado, sustituye aquel bloque del conjunto que ha tenido menos referencias. Podría implementarse asociando un contador a cada línea. Aleatoria, en el cual se sustituye un bloque aleatoriamente.
5.5.4. TÉCNICAS DE ESCRITURA Escritura directa o inmediata, utilizando esta técnica, todas las operaciones de escritura se hacen tanto en caché como en memoria principal, asegurando que el contenido de la memoria principal siempre es válido. Post-escritura, minimiza las escrituras en memoria, con la post-escritura las actualizaciones solo se hacen en la caché. Cuando tiene lugar una actualización, se activa un bit ACTUALIZAR asociado al bloque, después cuando el bloque es sustituido es escrito en memoria principal si el bit ACTUALIZAR está activo.
61
5.5.5. TIPOS DE MEMORIA CACHÉ Caché interna, es una memoria caché que se encuentra en el mismo chip del procesador, llamada caché de nivel uno N1. Caché externa, es la memoria caché que se encuentra fuera del procesador interconectada a través del bus, llamada caché de nivel 2 o N2. Las tecnologías actuales incluyen los dos niveles de caché.
5.6. MEMORIA PRINCIPAL La memoria principal es la memoria básica del computador, por lo tanto no puede faltar en un computador ya que sin ella no se puede operar. En ella se almacenan los datos y las instrucciones para que el procesador y los demás componentes puedan realizar sus operaciones. La memoria principal es el siguiente nivel inferior a la memoria caché. La memoria principal satisface las demandas de las cachés y sirve como interfaz de E/S, ya que es el destino de la entrada, así como la fuente para la salida. La memoria principal está organizada como una matriz rectangular direccionada por filas y columnas. Al igual que el procesador la memoria principal (básica o de trabajo) es fundamental para la operación del sistema. Incluso el sistema operativo que se necesita para llevar a cabo un programa, necesita esta memoria para cargarse. La memoria principal actúa como una “memoria a corto plazo” y frecuentemente se hace referencia a ella como RAM. El procesador utiliza esta memoria para realizar estas funciones normales. Los contenidos de la memoria principal se cambian y se actualizan, según se necesite, mientras el procesador está en funcionamiento. Con frecuencia, las diferentes secciones de los programas se leen desde el disco duro y se almacenan en la memoria mientras el programa se ejecuta. La memoria principal es una memoria temporal, porque toda información almacenada se pierde cuando la computadora se desconecta. Sin embargo, los dispositivos de almacenamiento como los discos duros y los disquetes, son capaces de conservar la información de manera permanente.
62
CAPÍTULO 6 DISPOSITIVOS PERIFÉRICOS INTRODUCIÓN En este capítulo estudiaremos la conexión, la estructura y los principales dispositivos periféricos de entrada, salida y almacenamiento. Los dispositivos periféricos son componentes a través de los cuales el computador se comunica con el mundo exterior como a los componentes que almacenan o archivan la información. Según la definición de periférico dad anteriormente, estos están constituidas por unidades de entrada, unidades de salida y unidades de almacenamiento. Estas últimas unidades también pueden ser consideradas como unidades de E/S, ya que en el computador se puede escribir sobre ellas, y l información escrita puede ser leída, es decir, ser dada como entrada. Ahora bien, la información grabada en estos soportes no es directamente inteligible para el usuario del computador, esto es, no puede haber una intercomunicación directa usuario-computador como la que hay a través de un teclado/pantalla. El computador es una máquina que no tendría sentido si no se comunicase con el exterior, es decir, si no contara con periféricos. Por lo que debe dispones de:
Unidad(es) de entrada, a través de la(s) cual(es) poderle dar los programas que queramos que ejecute y los datos correspondientes.
Unidad(es) de salida, con la(s) que el computador nos da los resultados de los programas.
Unidad(es) almacenamiento, que facilite su funcionamiento y utilización.
Los dispositivos de E/S transforman la información externa en señales codificadas, permitiendo su transmisión, detección, interpretación, procesamiento y almacenamiento de forma automática. Los dispositivos de entrada transforman la información externa (instrucciones o datos) según alguno de los códigos de entrada/salida (E/S). Así el computador recibe dicha información preparada (en
63
binario). En un dispositivo de salida se efectúa el proceso inverso: la información binaria que llega del computador se transforma de acuerdo con el código de E/S en caracteres escritos inteligibles por el usuario. Los dispositivos de almacenamiento se utilizan para guardar en forma permanente la información para ser utilizadas posteriormente. No hay que confundir periférico con soporte de información. Por soporte de información se entiende aquellos medios físicos sobre los que va la información. Por unidades o dispositivos periféricos se entiende aquellos elementos encargados de transcribir la información al correspondiente soporte. Ejemplos: Los disquetes son soporte de información, mientras que la unidad lectora o disquetera, es unidad periférica. El papel de la impresora es soporte de información, y la impresora es unidad periférica.
6.1. CONEXIÓN DE LOS PERIFÉRICOS Un periférico se conecta a una unidad de entrada/salida la cual se encuentra conectada a los componentes principales del computador (procesador, memoria) mediante los buses que son conjuntos hilos por los cuales viaja la información de una unidad a otra. Existe una gran diversidad de periféricos con distintas características eléctricas y velocidades de funcionamiento. Para lo cual se requiere contar con interfaces las cuales permiten adaptar las características de los periféricos a las del bus que se conecta. Más concretamente, las interfaces cubren básicamente las siguientes funciones:
Conversión de datos: adaptan la representación de datos del bus a la representación de datos del periférico. Si el periférico, por ejemplo, es de tipo serie la interfase realiza la conversión de paralelo a serie (si es un dispositivo de salida) o de serie a paralelo (si es un dispositivo de entrada).
64
Sincronización: la velocidad operativa del computador suele ser mucho mayor que la de los periféricos. La interfase regula el tráfico de información para que no se den problemas de desincronización o pérdidas de información. Los periféricos incluyen una memoria intermedia o tampón (buffer), efectuándose el tráfico de datos entre el periférico y el bus a través de ella. La interfase suele actuar con unas señales de control y estado que intercambia con la CPU indicando situaciones tales como que está preparada o lista para recibir o transmitir, que ha reconocido la llegada de unos datos, que desea ser atendida por la CPU, etc.
Selección de dispositivos: las interfaces también se encargan de identificar la dirección del periférico que debe intervenir en la operación de entrada o de salida de tal manera que solo un dispositivo debe estar conectado lógicamente al bus, para transmitir a través de él.
6.2. ESTRUCTURA DE UN PERIFÉRICO Para estudiar la estructura de un periférico nos vamos a valer de la siguiente figura:
Control
Estado
Datosdesdeyhacia la unidad de E/S
Buffer Lógica de control Transductor
Datos desde y hacia el entorno
Figura 6.1. Estructura de un dispositivo periférico De la figura:
Los datos son enviados o recibidos de la unidad de entrada/salida
Las señales de control determinan la función que debe realizar el dispositivo por ejemplo: enviar datos a la unidad de entrada/salida INPUT.
65
Las señales de estado indican el estado del dispositivo por ejemplo: listo o no listo que indica si el dispositivo está listo o no para la transferencia de datos.
La lógica de control asociada al dispositivo controla su operación.
El transductor convierte las señales eléctricas a otra forma de energía en el caso de una escritura o viceversa en el caso de una lectura.
El buffer se encarga de almacenar temporalmente los datos que se van a enviar a la unidad de entrada/salida.
6.3. CLASIFICACIÓN DE LOS PERIFÉRICOS La clasificación más general de los periféricos es de acuerdo a su función:
Dispositivos de entrada
Dispositivos de salida
Dispositivos de almacenamiento considerados también como dispositivos de entrada y salida.
A continuación se presenta una lista de ejemplos de periféricos de acuerdo a esta clasificación: a. Dispositivos de entrada teclado ratón lápiz óptico lector óptico lector de bandas magnéticas lector de código de barras reconocedores de voz digitalizador o tabla gráfica scanner b. Dispositivos de salida Impresora Sintetizador de voz
66
Visualizador Trazador de gráficos o plotter Monitor c. Dispositivos de almacenamiento o entrada y salida disco magnético disco óptico cinta magnética
6.3.1. DISPOSITIVOS DE ALMACENAMIENTO Discos magnéticos
Los discos magnéticos son los dispositivos más estándares y más importantes dentro de los dispositivos de almacenamiento en un computador. Los discos magnéticos constituyen los que son los discos duros, en el cual se almacenan todos los programas necesarios para el funcionamiento del computador.
67
Discos ópticos
Más comúnmente usados, son dispositivos en los cuales se puede grabar información sólo una vez, pero puede ser leída cuantas veces se necesite. Estos discos son similares a los discos compactos utilizados en los equipos de audio. Actualmente hay discos ópticos en los cuales puede grabarse información, borrarse y volverse a grabar. La información esta organizada en pistas y sectores, sin embargo las pistas no son concéntricas como en los discos duros. La información está organizada sobre una espiral desde la parte externa del disco hasta la parte interna. La lectura de la información se realiza a velocidad lineal constante, esto implica que la velocidad angular del disco óptico varía de acuerdo con el lugar donde se está leyendo la información. Los discos ópticos tienen un material plástico que es capaz de reflejar un rayo láser de baja potencia.
Cinta magnética Son medios que permiten almacenar información en forma permanente. Están hechas de un material plástico cubierto con una película de material ferromagnético, que puede ser magnetizado en forma permanente. Los dispositivos que graban y leen información en cintas magnéticas tienen una cabeza lectora y otra grabadora, similares a las que tiene una grabadora de audio. Para leer información grabada en una cinta, se pasa la cinta junto a la cabeza lectora. Los pequeños imanes que contiene la cinta inducen corriente en la bobina de la cabeza lectora. El sentido de la corriente inducida depende de la polaridad del imán que está pasando junto a la cabeza lectora.
68
BIBLIOGRAFÍA o Martínez Garza Jaime y Olvera Rodríguez Jorge Agustín. Organización y Arquitectura de Computadoras, Prentice Hall, 2000. o Stallings William. Organización y arquitectura de Computadores. Diseño para optimizar prestaciones, Prentice Hall, 1998. o www. Monografías.com o www.lacompu.com o www.conociendotuhardware.com
69