Tema 4. Arquitectura y funcionamiento básico del ordenador

Anuncio
Computadores y Comunicaciones
Tema 4: Arquitectura y funcionamiento
básico del ordenador
Febrero, 2011
Jorge Juan Chico <[email protected]>, Julián Viejo Cortés <[email protected]>
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
Descargar