Story Transcript
Computadores y Comunicaciones Tema 4: Arquitectura y funcionamiento básico del ordenador
Febrero, 2011 Jorge Juan Chico , Julián Viejo Cortés Departamento de Tecnología Electrónica Universidad de Sevilla Usted es libre de copiar, distribuir y comunicar públicamente la obra y de hacer obras derivadas siempre que se cite la fuente y se respeten las condiciones de la licencia Attribution-Share alike de Creative Commons. Puede consultar el texto completo de la licencia en http://creativecommons.org/licenses/by-sa/3.0/
Objetivos Conocer la estructura básica de un ordenador Comprender cómo funcionan los principales componentes del ordenador Conocer los distintos dispositivos de memoria y almacenamiento existentes y valorar ventajas e inconvenientes de cada uno Comprender la utilidad de los mecanismos de interrupciones y acceso directo a memoria como método para mejorar las prestaciones de las operaciones de entrada y salida
2
Contenidos Estructura básica del ordenador Unidades funcionales –
El bus. La memoria. Dispositivos de entrada/salida. La CPU.
Dispositivos de almacenamiento –
Jerarquía. Memoria interna. Memoria externa: tipos. Discos magnéticos. Cintas. CD/DVD.
Interrupciones y métodos de entrada/salida
3
Estructura básica del ordenador. Modelo de Von Neumann Un ordenador consiste en una serie de componentes básicos capaces de realizar tareas simples: operaciones lógicas, operaciones aritméticas, movimiento de datos, etc. Cuando estos componentes se organizan para realizar una tarea determinada se dice que el ordenador está "programado" para esa tarea. –
–
Programa cableado (hardwired): los primeros ordenadores se programaban conectando "físicamente" sus componentes en la forma requerida. Programa almacenado (software): en la actualidad, la programación se realiza mediante el almacenamiento de instrucciones en una "memoria" siguiendo el modelo de Von Neumann.
4
Estructura básica del ordenador. Modelo de Von Neumann Principios básicos: – – –
Los datos y las instrucciones se almacenan en una misma memoria de lectura y escritura. Tanto los datos como las instrucciones se acceden de una misma forma (las instrucciones pueden ser tratadas como datos). Las instrucciones se ejecutan secuencialmente salvo que se de una orden especial
Ventajas –
facilidad de programación, flexibilidad, código reutilizable.
Inconvenientes –
se dedica tiempo y recursos a la captación y ejecución de las instrucciones almacenadas en la memoria.
5
Estructura básica del ordenador Memoria
CPU
Conexión
E/S Periféricos
CPU CPU
Memoria Memoria
E/S E/S 11
E/S E/S 22
BUS (Conexión) 6
Estructura básica del ordenador CPU (Unidad central de proceso) –
cerebro del ordenador, ejecuta instrucciones, realiza operaciones lógicas y aritméticas
Memoria –
almacena datos y programas
–
directamente accesible por la CPU
Entrada/Salida (E/S) –
comunica la CPU con dispositivos "externos" (periféficos): monitor, teclado, red, modem, discos, etc.
Sistema de conexión –
comunica la CPU con la memoria y los módulos de E/S
7
Contenidos Estructura básica del ordenador Unidades funcionales –
El bus. La memoria. Dispositivos de entrada/salida. La CPU.
Dispositivos de almacenamiento –
Jerarquía. Memoria interna. Memoria externa: tipos. Discos magnéticos. Cintas. CD/DVD.
Interrupciones y métodos de entrada/salida
8
Unidades Funcionales. El Bus Conjunto de líneas eléctricas que permiten la comunicación entre los componentes del ordenador. Tipo de líneas: – – –
Dirección (bus de direcciones -AB-): indican el origen o destino de los datos Datos (bus de datos -DB-): contienen el dato a transferir Control: determinan el tipo de operación a realizar
CPU
Memoria
E/S 1
direcciones datos control 9
El bus. Arbitración Bus Master (maestro del bus): dispositivo que controla el bus en un momento determinado. Árbitro: dispositivo que concede el control del bus a los demás – –
REQ#: petición de uso del bus (request) GR#: cesión del bus (grant)
Árbitro Árbitro REQ1
REQ2 GRT1
CPU CPU
GRT3
GRT2 REQ3
E/S E/S 11
E/S E/S 22
Memoria Memoria BUS
10
El bus. Jerarquía No hay un sólo bus que cubra todas las necesidades: velocidad, extensión, coste, compatibilidad, etc. Los puentes se encargan de que la estructura "lógica" siga siendo de bus único CPU
Memoria
Bus del sistema (133MHz, 64 bits)
Puente
VGA
Discos
Red
Bus PCI (33MHz, 32 bits)
Puente
E/S 1
E/S 2 Bus ISA (8MHz, 16 bits)
11
Unidades Funcionales. El bus Ejemplo de bus simple: – – –
–
Direcciones: 16 bits (0 .. FF) Datos: 8 bits Control: Memoria/ES (M/I): Memoria=0, E/S=1 Lectura (R): activa=1 Escritura (W): activa=1 Transferencia reconocida (ACK): activa=1 Reloj: activo en "flanco de bajada"
BUS
DIR
0000
DATO
00
M/I
0
R 0
W 0
ACK 0 12
Unidades Funcionales. Memoria La memoria está compuesta por un conjunto de registros de una anchura determinada (p. ej. 8, 16 o 32 bits). Cada registro (o posición de memoria) se identifica con una dirección unívoca. Cada posición de memoria almacena un dato que puede ser leido o escrito. – –
al leer una posición de memoria, el dato no se modifica al escribir en una posición de memoria el dato antiguo se borra
La memoria se conecta con el exterior mediante: – – –
líneas de dirección (A): identifican la posición de memoria a la que se quiere acceder. líneas de datos (D): trasmiten el dato a almacenar o el leido. líneas de control: seleccionan una de las dos posibles operaciones: lectura (R) o escritura (W). 13
Memoria. Lectura Memoria
BUS
DIR
0003
0000 0001 0002 0003 0004 0005 0006
D2 A6 61 34 24 3C F1
. . .
. . .
FFFF
7872
DATO
34
M/I
0
R 1
W 0
ACK 1 14
Memoria. Escritura Memoria
BUS
DIR
0005
0000 0001 0002 0003 0004 0005 0006
D2 A6 61 34 24 17 F1
. . .
. . .
FFFF
7872
DATO
17
M/I
0
R 0
W 1
ACK 1 15
Entrada/Salida. Funcionamiento básico Análogo a la memoria Activada cuando la operación en el bus es de entrada/salida Cada dispositivo responde a una o varias direcciones Los dispositivos no direccionados permanecen inactivos
Periférico A
Periférico B
Periférico C
E/S 00-03
E/S 04
E/S A8-AF
BUS 16
Entrada/Salida. Lectura
Periférico A
Periférico B
E/S Puerto 0003
E/S Puerto 0005
7F
BUS
DIR
0003
1234
DATO
7F
M/I
1
R 1
W 0
ACK 1
17
Entrada/Salida. Escritura
Periférico A
Periférico B
E/S Puerto 0003
E/S Puerto 0005
54
BUS
DIR
0003
1234
DATO
54
M/I
1
R 0
W 1
ACK 1
18
Entrada/Salida Ejemplo: terminal de texto Hello World! Hola Mundo
Dispositivo sólo de salida Puerto de E/S (dirección): 01 Recibe datos de 8 bits e imprime en la pantalla el símbolo correspondiente según la codificación Latin-1 (ISO-8859-1) Dispone de un registro interno para almacenamiento temporal.
E/S 01 H
BUS
19
Entrada/Salida Ejemplo: teclado QWERT YUIOP ASDFG HJKLÑ ZXCVB NM,.** ***** ***
Dispositivo sólo de entrada Puerto de E/S (dirección): 02 Envía datos de 8 bits correspondientes a símbolos de la codificación Latin-1 (ISO-8859-1) Dispone de un buffer interno para almacenar 4 símbolos Emite un sonido cuando se pulsa una tecla y el buffer está lleno
789/ 456* 1230.=+
E/S buffer 02 H O L A
BUS
20
CPU Ciclo de instrucción La tarea de la CPU es ejecutar intrucciones almacenadas en la memoria. Para ello repite incesantemente el "ciclo de instrucción" Para realizar la ejecución, la CPU cuenta con: Unidades de procesamiento Registros internos Unidad de control
Captación
Ejecución
no ¿fin?
si FIN
21
CPU. Estructura básica CPU Unidad de control
Unidad de Procesamiento
Registros
Unidades de procesamiento: operaciones lógicas, aritméticas, punto flotante, etc. Registros internos: almacenamiento temporal de operandos y resultados Unidad de control: gestiona todo el proceso de captación y ejecución de instrucciones
BUS
22
CPU de ejemplo Registros –
CPU PC IR
D2 A6
A B C D
34 24 3C F1
Z OV
1 0
–
– –
–
PC (8 bits): contador de programa (Program Counter). Almacena la dirección de la próxima instrucción a ejecutar. IR (16 bits): registro de instrucción (Instruction Register). Almacena el códico de la próxima instrucción a ejecutar. A,B,C y D (16 bits): registros de propósito general. Z (1 bit): bandera de cero. Se pone a 1 cuando el resultado de una operación lógica o aritmética es 0. OV (1 bit): bandera de overflow. Se pone a 1 cuando hay desbordamiento en un operación aritmética.
23
CPU Instrucciones Lenguaje (código) máquina: código binario de las instrucciones que ejecuta la CPU Lenguaje ensamblador: representación del lenguaje máquina mediante palabras clave fáciles de entender para el programador
MOV MOV ADD ADD MOV MOV
A,5 A,5 A,6 A,6 A,7 A,7
0011001011000101 0011001011000101 1101001010000110 1101001010000110 0011001011000111 0011001011000111
24
CPU. Instrucciones Ejemplo ;; ejemplo ejemplo introductorio; introductorio; suma suma los los números números de de una una lista lista SECTION SECTION .data .data global global xx x: x: dd dd dd dd dd dd dd dd sum: sum:
;; comienzo comienzo del del segmento segmento de de datos datos
11 55 22 18 18
dd dd
00
SECTION SECTION .text .text
;; comienzo comienzo del del segmento segmento de de código código
mov mov eax,4 eax,4 mov mov ebx,0 ebx,0 mov mov ecx, ecx, xx
;; EAX EAX servirá servirá de de contador contador para para el el ;; número número de de datos datos que que quedan quedan por por sumar sumar ;; EBX EBX almacenará almacenará la la suma suma ;; ECX apunta al siguiente elemento ECX apunta al siguiente elemento ;; aa sumar sumar
top: top: add add ebx, ebx, [ecx] [ecx] add ;; mueve add ecx,4 ecx,4 mueve el el puntero puntero al al siguiente siguiente elemento elemento dec ;; decrementa dec eax eax decrementa el el contador contador jnz ;; si jnz top top si el el contador contador no no es es 0, 0, repetir repetir done: done: mov mov [sum],ebx [sum],ebx ;; hecho, hecho, almacena almacena el el resultado resultado en en [sum] [sum]
25
http://heather.cs.ucdavis.edu/~matloff/50/LinuxAssembly.html
Computador simple Memoria
CPU PC IR
D2A7 A610
A B C D Z OV
BUS
341C 2470 3C30 F100
0000 0001 0002 0003 0004 0005 0006
D2 A6 61 34 24 3C F1
1 0
. . .
. . .
FFFF
7872
DIR
0000
DATO
00
M/I
Hello World! Hola Mundo
E/S 01 H
0
E/S 02
R 0
W 0
H O L A
ACK 0
QWERT YUIOP ASDFG HJKLÑ ZXCVB NM,.** ***** ***
789/ 456* 1230.=+ 26
Contenidos Estructura básica del ordenador Unidades funcionales –
El bus. La memoria. Dispositivos de entrada/salida. La CPU.
Dispositivos de almacenamiento –
Jerarquía. Memoria interna. Memoria externa: tipos. Discos magnéticos. Cintas. CD/DVD.
Interrupciones y métodos de entrada/salida
27
Almacenamiento. Clasificación Ubicación –
CPU, memoria interna, memoria externa, ...
Capacidad –
tamaño de la palabra, número de palabras.
Unidad de transferencia –
palabra, bloque
Tecnología de fabricación –
semiconductor, magnética, óptica, ...
Tipo de acceso –
secuencial, aleatorio
Características físicas –
Volatil/No-volatil, borrable/no-borrable
Prestaciones –
tiempo de acceso, velocidad de transferencia
28
Almacenamiento. Ubicación Registros de la CPU – –
usados como argumentos en las operaciones lógicas, aritméticas, etc. almacenamiento más próximo a la CPU y de acceso más rápido.
Memoria Interna (o Memoria Principal) – – –
accesible directamente por la CPU (instrucciones de acceso a memoria) acceso rápido medio semiconductor (circuito electrónico)
Memoria externa (o Dispositivos de Almacenamiento) – – –
acceso indirecto: primero hay que transferir los datos a la memoria principal accesible mediante dispositivos de entrada/salida diferentes medios: discos magnéticos, CD-ROM, cintas, etc. 29
Almacenamiento. Jerarquía No existe un tipo único de memoria que cubra todas las necesidades Es necesario combinar varios tipos
Externa
Interna
Registros Registros CPU CPU Memoria Memoria caché caché Memoria Memoria principal principal
menor coste mayor capacidad mayor tiempo acceso
Discos Discos magnéticos magnéticos Cintas/discos Cintas/discos ópticos ópticos
30
Memoria interna. Tipos Tipo M. de acceso aleatorio (RAM)
Volatilidad
volátil
M. de sólo lectura (ROM)
Operaciones
lectura / escritura
Borrado
por bytes
lectura
Escritura
eléctricamente
máscaras no posible
ROM programable (PROM)
PROM borrable (EPROM)
chip completo (luz ultrav.)
no-volátil sobre todo lectura
eléctricamente
PROM borrable eléctr. (EEPROM)
por bytes eléctricamente
Memoria FLASH
por bloques eléctricamente
31
Memoria interna. Ejemplo
32
Memoria interna. Evolución
33
Memoria caché –
CPU CPU
–
–
Caché Caché
–
Memoria Memoria principal principal –
Memoria de alta velocidad situada entre la CPU y la memoria principal Guarda los datos más recientes y que serán accedidos por la CPU con mayor probabilidad. Se base en el "principio de localidad": los datos/instrucciones accedidos recientemente tienen mayor probabilidad de ser accedidos en el futuro. Permite que la CPU opera a su velocidad máxima. Puede haber varios niveles de caché: interna, externa, etc.
34
Memoria externa. Tipos Discos magnéticos – – – –
gran capacidad lectura/escritura alta velocidad memoria secundaria
CD/DVD – – –
capacidad moderada velocidad media distribución de programas y documentación, copias de seguridad, etc.
Unidades Flash (llave USB, etc.) –
– –
equivalente al disco magnético pero con tecnología Flash fiable alta velocidad
Cintas magnéticas – – –
gran capacidad acceso secuencial copias de seguridad
35
Discos magnéticos Una unidad de datos (sector) se accede indicando tres parámetros: C-H-S –
–
–
Cilindro (C): proporciona la posición radial de las cabezas. El conjunto de cabezas se desplaza el cilindro seleccionado. Cabeza (H - Head): activa una cabeza de lectura/escritura. Selecciona una cara concreta. Sector (S): selecciona un sector dentro de una pista. El sector se lee al pasar por debajo de la cabeza de lectura/escritura. 37
http://commons.wikimedia.org/wiki/Image:Cilindro_Cabeza_Sector.svg
Discos magnéticos. Sector
cola
datos
cabecera
Cabecera: –
contiene información de localización y estado del sector
Datos: –
bloque de datos almacenados
Cola: –
código de detección y corrección de errores (CRC)
Archivos –
los archivos empleados por el Sistema Operativo se construyen a base de listas de sectores distribuidos por el disco de forma más o menos ordenada. 38
Discos magnéticos. Propiedades Tiempo medio de acceso – –
tiempo medio que se tarde en mover las cabezas y rotar el disco hasta comenzar a leer un sector ~ 10ms
Velocidad de transferencia máxima (burst rate) – –
velocidad de lectura de datos cuando se lee un sector depende de la velocidad de rotación, el número de sectores en una pista y el tamaño del sector
Velocidad de transferencia media – – –
velocidad de lectura de datos media considerando tiempos empleados en cambiar de un sector a otro disminuye cuando aumenta la “fragmentación” ~ 20-60 MB/s
39
Cintas magnéticas datos
cabezal
cabecera
Acceso secuencial Estructura en bloques Múltiples cabezas/pistas
40
CD-ROM/R/RW – – – –
Tecnología óptica Una única pista en espiral (5km) 20000 pistas aparentes Disco original audio: 1.2 m/s 73 min 774.57 MB 176.4 B/s (650MB efect.)
41
DVD-ROM/+-R/+-RW – – – –
Tecnología similar al CD pero con mayor capacidad Mayor densidad por capa: 4.7GB (7 CD's) Hasta 4 capas (dos por cara): 17 GB (26 CD's) Diseñado para ~2 horas de vídeo MPEG2 a resolución PAL CD
DVD
42
CD/DVD-ROM
43
CD/DVD-R
44
CD/DVD-RW
45
Contenidos Estructura básica del ordenador Unidades funcionales –
El bus. La memoria. Dispositivos de entrada/salida. La CPU.
Dispositivos de almacenamiento –
Jerarquía. Memoria interna. Memoria externa: tipos. Discos magnéticos. Cintas. CD/DVD.
Interrupciones y métodos de entrada/salida
46
Interrupciones En muchas ocasiones es necesario "avisar" a la CPU de un acontecimiento: – – –
llegada de un paquete de red presión de una tecla avisos periódicos: actualizar un reloj, multitarea, etc.
Esto se consigue mediante el mecanismo de "Interrupciones". Al recibir una interrupción (activación de la señal de interrupción), la CPU: – – –
Deja de ejecutar el programa actual Salta a un programa de servicio a la interrupción Vueve a ejecutar el primer programa donde lo había dejado.
47
Interrupciones Programa principal
Durante la ejecución de una instrucción, se activa una línea de interrupción (*) Gestor de interrupción
* RETORNO
La CPU guarda la información necesaria sobre el programa principal (contexto) y salta al "gestor de interrupción".
El gestor de interrupción hace las operaciones necesarias para atender la interrupción. Una instrucción de "retorno de interrupción" devuelve el control al programa principal y continúa la ejecución. 48
Interrupciones. Ciclo de instrucción Captación
Ejecución
si ¿interr?
Salvar contexto
Ejecutar interrupción
Recuperar contexto
no no ¿fin?
si FIN 49
Métodos de entrada/salida Entrada/salida programada – –
se realiza al ejecutar una instrucción de E/S la CPU permanece bloqueada mientras se completa la operación de entrada/salida
Entrada/salida mediante interrupciones –
emplea interrupciones para evitar tiempos de espera de la CPU
Acceso directo a memoria (DMA) –
el módulo de E/S transfiere datos directamente a la memoria mediante múltiples operaciones, sin intervención de la CPU
50
Métodos de entrada/salida E/S programada La operación se realiza al encontrar una instrucción de E/S en el programa (E/S programada) La CPU permanece bloqueada mientras se completa la operación de entrada salida Esto es un problema en operaciones con dispositivos más lentos que la CPU, que son la mayoría.
51
Métodos de entrada/salida E/S mediante interrupciones Evita los estados de bloqueo de la CPU en las operaciones de E/S Procedimiento: – – – –
La CPU inicia una operación de E/S sobre un módulo Mientras el módulo procesa la operación, la CPU pasa a ejecutar otra tarea (proceso) que esté pendiente de ejecución. Cuando el módulo completa la operación de E/S, activa una señal de interrupción. La CPU recibe la señal de interrupción y finaliza la operación de E/S.
52
Métodos de entrada/salida Acceso Directo a Memoria (DMA) Libera a la CPU de toda transferencia de datos, la cual es realizada directamente por el módulo de E/S hacia o desde la memoria. Procedimiento: –
–
– –
La CPU inicia la operación indicando al módulo de entrada salida los parámetros de la transferencia, entre otros: dirección de memoria inicial número de bytes a transferir El módulo realiza la operación haciendo todas las transferencias que sean necesarias de forma directa, tomando el control del BUS. La CPU pasa a ejecutar otra tarea (proceso) que esté pendiente de ejecución. Cuando el módulo ha transferido todo el bloque de datos, activa una señal de interrupción. La CPU recibe la señal de interrupción y finaliza la operación de E/S.
53
Métodos de entrada/salida Ejemplo PIO
*
Int.
*
*
*
DMA
t
*
Proceso A
Proceso B
Proceso A durante E/S
CPU bloqueada
Interrupción 54