Hardware

Anuncio
Componentes de un ordenador
Contenido del tema
TT
EE
M
M
A
A
8.1. Componente física (hardware)
8.1.1. Arquitectura von Neumann
8.1.2. Unidad central de proceso
8.1.3. Buses
8.1.4. Memoria
8.1.5. Subsistema de E/S
8.2. Lenguaje ensamblador
Componentes básicos
• Componente física o hardware
¤ Elementos tangibles del ordenador:
•
•
•
•
• Componente lógica o software
¤ Programas que ejecuta el ordenador.
8.3. Componente lógica (software)
88
Unidad central de proceso
Buses
Memoria
Subsistema de entrada/salida: teclado, ratón, monitor...
• Programas del sistema: sistema operativo, compiladores,
programas de comunicaciones, bibliotecas estándares.
• Programas de usuario: bases de datos, navegadores, hojas de
cálculo, procesadores de texto, juegos, ...
8.3.1. Clasificación del software
8.3.2. Sistemas operativos
8.3.3. Gramáticas y compiladores
Introducción a los Computadores
Componentes físicos
• Arquitectura von Neumann
John von Neumann,
Neumann 1945
First Draft of a Report on
the EDVAC
(1) Programa almacenado
(2) Lógica binaria (George Boole)
(3) División en UCP, memoria y E/S (Charles Babbage)
Unidad de procesamiento
Almacén
temporal
(muy rápido)
Bus sistema
Registros
direcciones
datos
Unidad de
control
control
reloj
Memoria
(datos+instrucciones)
Señales del control
al resto del sistema
Procesamiento
aritméticológico
A.L.U.
Acum.
Subsistema de E/S
Introducción a los Computadores
estado
Unidad de
procesamiento
Buses
U.C.P.
Parámetros:
• Velocidad (MIPS o MFLOPS)
• Longitud de palabra
• Número de registros
• Nivel de paralelismo
Introducción a los Computadores
Unidad de procesamiento
• La Unidad de control (U.C.)
Unidad de
control
.
.
.
reloj
¤
¤
¤
¤
CLK
• Funcionamiento: ciclo máquina repetitivo desde que se
enciende el ordenador hasta que se apaga
Emisión de señales de sincronización
Decodificación de la instrucción
Ejecución secuencial
Repertorio de instrucciones simples:
(1) de tratamiento aritmético-lógico
(2) de transferencia de datos
UCP
(3) saltos de control del flujo
MP
ES
(4) otras (parada, paso-a-paso...)
MP
ES
Unidad de procesamiento
ciclo máquina
Memoria
Memoria
instrucción
(fetching)
UCP
UCP
UCP
MP
ES
opcional
reloj
.
.
.
Actualización
del C.P.
ciclo reloj
Decodificación
Introducción a los Computadores
Unidad de procesamiento
Memoria
• Registros
Otros registros:
•Propósito general
•Direcciones temp.
•Puntero de pila (PP)
U.A.L.
U.C.
Instrucción actual
a decodificar
RI
AC
Acumulador: Último resultado
Ejecución
Búsqueda de operandos
opcional
Introducción a los Computadores
Unidad de procesamiento
• Unidad aritméticoaritmético-lógica (U.A.L.)
Contador de programa:
siguiente instrucción
CP
PE
¤ Almacén temporal
¤ Sin direcciones de
memoria asignadas Registros
¤ Acceso muy rápido
Almacenamiento
de resultados
Fetching
Unidad de
control
Palabra de estado:
CY (carry) Acarreo
O (overflow) Desborde
N (negative) Negativo
Z (zero) Resultado cero
...
Se actualizan tras cada
operación aritmético-lógica
Introducción a los Computadores
¤ Ejecuta las instrucciones de tratamiento aritmético-lógico:
• Lógicas: AND, OR, NOT, XOR, CMP
• Aritméticas: ADD, SUB, MUL, DIV
• De desplazamiento de bits:
– lógico (entra un 0/1 y se pierde el último/primero)
– circular (el último pasa a ser el primero o viceversa)
– aritmético (se duplica el bit de signo y se pierde el último)
¤ Los operandos deben estar en los registros y/o acumulador.
¤ El resultado se deja en el acumulador.
¤ Actualiza los indicadores de la palabra de estado tras cada operación.
Las instrucciones de control de flujo se basan en los indicadores N y Z.
Introducción a los Computadores
Memoria
Memoria
• La memoria almacena datos e instrucciones.
• Desde el punto de vista funcional, en un
ordenador distinguimos:
¤ Memoria principal (MP) o interna.
¤ Memoria secundaria (MS), externa o masiva.
• La MP es directamente accesible por la
UCP. La MS no, sino que se accede a través
de un controlador del subsistema de E/S.
• En general las memorias que se utilizan
para la MP son de tecnología electrónica.
Electrónica
Alta velocidad
Capacidad limitada
Volátil en general
Alto coste
Magnética, óptica...
Baja velocidad
Alta capacidad
Permanente
Bajo coste
• Las memorias CACHE son los trozos de memoria
copiados de la MP o de la MS más probables de acceder a
continuación. Son más rápidas (y de mayor coste) y evitan
accesos a MP o MS más lentos.
UCP
Si el dato no está
en la cache se
accede a MP y se
copia un nuevo
trozo.
Cache
MP
MP
Cache
MS
MS
Introducción a los Computadores
Memoria Principal
• Desde el punto de vista físico, existen
las siguientes memorias electrónicas:
¤ ROM (sólo lectura): almacena la BIOS. Es
no volátil.
¤ RAM (lectura/escritura): almacena el SO
y los programas de usuario. A su vez,
pueden ser:
• SRAM: estática, más cara y rápida (¡de 4 a
20 nanosegundos!). Se utilizan para las
cache.
• DRAM: dinámica, más barata y menos
rápida (de 50 a 120 nanosegundos). Son
las habituales en MP.
El sistema de E/S básico
(Basic Input-Output
System) es el conjunto de
programas que se ejecuta
al encender el ordenador:
chequea el sistema y carga
el SO en la RAM.
Las RAM estáticas no
necesitan en refresco
electrónico para mantener
el contenido que necesitan
las dinámicas.
Introducción a los Computadores
Si el dato no está
en la cache se
accede a MS y se
copia un nuevo
trozo.
Introducción a los Computadores
Memoria Principal
• Independientemente de la
memoria física utilizada, la
UCP ve lógicamente la MP
como un conjunto de
posiciones o celdas donde leer
y escribir que se llama mapa
de memoria.
• Cada posición del mapa
corresponde a una palabra y
se numera consecutivamente
mediante una dirección.
direcciones en hex.
BBA0
BBA1
BBA2
BBA3
S.O.
...
Proceso 1
...
R/W
CS
otras
datos
direcciones
control
Proceso 2
...
mapa de memoria
Introducción a los Computadores
Memoria Principal
Subsistema de E/S
• La longitud de palabra, m, de la MP suele coincidir con la
del procesador y con el ancho del bus de datos, y es la
anchura en bits de una palabra.
• La capacidad de la memoria viene determinada por el
número de hilos, n, del bus de direcciones: 2n palabras:
32
bus del
sistema
16
0000
0001
0002
0003
0004
0005
FFFE
FFFF
216 palabras
• El subsistema de E/S permite
al procesador comunicarse
con distintos dispositivos o
periféricos del exterior.
• Cada tipo de dispositivo
debe conectarse al sistema a
través de un controlador que
adapte el mundo exterior del
periférico al mundo
electrónico de la UCP.
UCP
MP
bus de e/s
Contr.
disco
Contr.
Contr.
vídeo
teclado
longitud de palabra = 32
Introducción a los Computadores
Introducción a los Computadores
Subsistema de E/S
datos
• La UCP ve lógicamente todo
direcciones
el subsistema de E/S como control
posiciones de memoria en un
mapa de direcciones distinto
al de la MP.
• Una posición del mapa de
E/S se llama puerto.
I/ O
INT
• Físicamente, los puertos son
otras
posiciones de memoria
dentro de los controladores.
Subsistema de E/S
Puertos
disp. 1
• Esquema controlador genérico
datos
direcciones
control
entrada
salida
Puertos
disp. 6
control
conversores
estado
de señal
dispositivo
...
Puertos
disp. 8
circuitería
control / direcciones
controlador
mapa E/S
Introducción a los Computadores
Introducción a los Computadores
Memoria secundaria
• Entre los dispositivos de e/s destacan los de
almacenamiento masivo. Los hay de dos tecnologías:
¤ Magnética: cintas, discos duros y flexibles (disquetes)
¤ Óptica: CDs y DVDs
En un disco magnético hay
múltiples pistas concéntricas,
que se lee a velocidad angular
constante (CAV) (más rápido)
• Organización de un disco magnético:
Plato
Pista
Caras
En un disco óptico sólo
hay una pista en espiral
que se lee a velocidad
lineal constante (CLV)
Sector
brazos y cabezas
Memoria secundaria
• Tiempos de acceso a la información:
tiempo de latencia:
rotar discos hasta que el
sector buscado pase
bajo la cabeza
tiempo de localización:
posicionar brazo en la
pista adecuada
UCP
tacceso = tloc + tlat
tiempo de transferencia:
llevar los datos desde la
cabeza hasta la UCP
Introducción a los Computadores
Introducción a los Computadores
Buses
Buses
• Esquema de Bus único
• Buses
¤ Conexiones entre las distintas unidades funcionales del ordenador.
¤ Los buses de la placa base son paralelos y se subdividen en 3 sub-buses:
¤ Problema: los dispositivos son más lentos que la UCP y la MP y
además tienen velocidades de trabajo distintas entre sí.
• De direcciones: donde la UCP pone las posiciones de MP y ES.
• De datos: donde la UCP, la MP o la ES ponen los datos.
• De control: conjunto de señales de la UCP para sincronizar las operaciones.
Son sub-buses lógicos. Físicamente pueden ir multiplexados el de datos y
el de direcciones.
¤ Los buses pueden ser paralelos (SCSI o IDE) o en serie (COM o USB).
¤ Cada bus tiene sus propias características físicas/eléctricas: ancho de
banda, frecuencia reloj, anchura datos, que los hacen incompatibles entre
sí. Se necesitan interfaces adaptadores para cada tipo de bus. Cada
dispositivo se conecta mediante su controlador a un solo tipo de bus.
Introducción a los Computadores
UCP
MP
ES
ES
ES
Bus del sistema
Velocidad única:
número de
dispositivos limitado
Introducción a los Computadores
Buses
Buses
• Esquema con de bus de expansión
• Jerarquía de buses:
¤ Solución: buses distintos (con velocidades distintas) y circuitería de
interfaz entre los buses, los puentes (bridges).
UCP
UCP
Más lento
Adaptador
ISA
ES
ES
ES
66 MHz
528 MBps
Tarjeta
gráfica
MP
Bus AGP
33 MHz
264 MBps
Adaptador
AGP/PCI
MP
Bus local
del sistema
Más rápido
100 MHz
1 GBps
Bus local del sistema
8.33 MHz
8 MBps Modem
Bus PCI
Ratón
Teclado
Adaptador
PCI/ISA
Contr.
Disco
Tarjeta
red
Bus ISA
Bus ISA
Introducción a los Computadores
Introducción a los Computadores
Buses
Buses en placa
madre
ISA
Industry Standard Architecture, 1984
EISA
Ancho
A.B.
(bits) (MBps)
8/16
2.38
8.0
32
31.8
Buses
Frec. Dispositivos
(MHz)
8.3 T. Sonido,
modems...
8.3 T. red, adap. SCSI...
Extended ISA, 1988
Buses externos
IDE
Integrated Drive Electronics, 1984
SCSI
32
20
33
T. red, T. gráficas...
Small Computer System Interface, 1995
32
44-105
33
T. gráficas, UCP...
Universal Serial Bus
132-264
508.6
33
Peripheral Component Interconnect, 1992
32
64
AGP
32
254.31017.3
66
66x4
T. gráficas, adap.
SCSI, t. sonido
modernas
T. gráficas 3D
MCA
MicroChannel Architecture, 1987
VESA Local bus
Video Electronics Standard Association,
1993
PCI
Advanced Graphics Ports
Introducción a los Computadores
Ancho A.B. Dispositivos
(bits) (MBps)
8
8
discos, CDs, cintas
USB
FireWire
IEEE 1394, 1995
8, 16
5-80
serie
1.5
serie
discos, otros...
ratón, teclado, modems,
multimedia, escáneres...
1.5-50 cámaras, DVDs,
impresoras, redes, discos
Introducción a los Computadores
Lenguaje máquina
• Las instrucciones máquina pueden constar de una o más
palabras de memoria:
También pueden ser
co-op
co-op
co-op
co-op
opdo
dir.
opdo
Los operandos
pueden ser
inmediatos
dir. opdo
dir. opdo1
direcciones de memoria
(de anchura la del bus de
direcciones)
El código de operación
indica la instrucción a
ejecutar y cuántos
operandos son necesarios
Lenguaje ensamblador
• Cada instrucción máquina se corresponde con una
instrucción en lenguaje ensamblador:
Por esto, el
Lenguaje máquina
lenguaje
ensamblador es
simbólico
Lenguaje ensamblador
Patrones bits co-op
mnemónicos breves
Direcciones de memoria
o puertos de e/s
Operandos inmediatos
números en decimal, octal o hexadecimal
números precedidos por #
Comentarios
cadenas de texto precedidas por ;
dir. opdo2
100101101XXX 101010101100 10110110110
Introducción a los Computadores
Introducción a los Computadores
Lenguaje ensamblador
• Vamos a introducir un lenguaje ensamblador
correspondiente a una máquina simple con las siguientes
características:
¤
¤
¤
¤
Bus de datos de 12 bits (= anchura instrucción)
Bus de direcciones de 7 bits
Código de operación de 5 bits (hasta 25 posibles instrucciones)
Registros a tener en cuenta: CP, AC, PE, PP
Lenguaje ensamblador
• Instrucciones de transferencia de datos con el AC:
AC
LD m
LD #d
ST m
00000mmmmmmm
00001------- dddddddddddd
00010mmmmmmm
Carga [m] en AC
Carga d en AC
Almacena [AC] en [m]
MP
LD m
U.A.L.
dato
AC
LD #d
m-1
m
m+1
m+2
ST m
load = cargar
store = almacenar
Introducción a los Computadores
Introducción a los Computadores
Lenguaje ensamblador
• Instrucciones de transferencia MP a MP:
MP
MOV m #d 00011mmmmmmm dddddddddddd
MOV m n 10011mmmmmmm -----nnnnnnn
MP
MOV m #d
• Instrucciones de transferencia de datos en la pila:
pila
Almacena d en [m]
Almacena [n] en [m]
PUSH
POP
00100------00101-------
Almacena [AC] en [PP] e incrementa PP
Decrementa PP y almacena [PP] en AC
MP
El puntero de
pila (un registro)
apunta a la
primera posición
libre de la pila
del proceso
m-1
m
m+1
m+2
dato
Lenguaje ensamblador
MOV m n
n-1
n
n+1
n+2
U.A.L.
POP
AC
PUSH
SH
PU
PP
FFFD
PO
P
push = empujar
pull = tirar
Introducción a los Computadores
IN e
OUT s
00110eeeeeee
00111sssssss
Carga en el AC el contenido del puerto de entrada e
Almacena el contenido del puerto de salida s en AC
ES
IN e
U.A.L.
e-1
e
e+1
e+2
AC
puerto de un
dispositivo de
entrada: ratón,
teclado, tableta
gráfica...
Lenguaje ensamblador
• Instrucciones aritméticas (resultado en AC):
ADD
SUB
MUL
DIV
OUT s
puerto de un
dispositivo de
salida: vídeo,
impresora...
Introducción a los Computadores
m
m
m
m
01000mmmmmmm
01001mmmmmmm
01010mmmmmmm
01011mmmmmmm
Almacena [AC] + [m] en AC
Almacena [AC] - [m] en AC
Almacena [AC] * [m] en AC
Almacena [AC] / [m] en AC
MP
PE
..
s-1
s
s+1
s+2
pila
Introducción a los Computadores
Lenguaje ensamblador
• Instrucciones de transferencia de datos con el mapa de e/s:
e/s
FFFC
FFFD
FFFE
FFFF
NZ..
+-*/
AC
ADD
SUB
MUL
DIV
m
m
m
m
m-1
m
m+1
m+2
Se actualizan los indicadores S
y Z después de cada operación
Introducción a los Computadores
Lenguaje ensamblador
• Instrucciones aritméticas (resultado en MP):
INC m
CLR m
SET m
01100mmmmmmm
10001mmmmmmm
10010mmmmmmm
NZ..
• Instrucciones lógicas:
lógicas
Pone todos los bits de [m] a 0
Pone todos los bits de [m] a 1
MP
11100mmmmmmm
01101mmmmmmm
01110mmmmmmm
01111mmmmmmm
10000mmmmmmm
Si [AC] < [m] se activa N, y si [AC] = [m] se activa Z
Almacena [AC] AND [m] en AC
Almacena [AC] OR [m] en AC
Almacena [AC] XOR [m] en AC
Almacena NOT [AC] en AC
CLR m
+-*/
m-1
m
m+1
m+2
AC
+1
clear = limpiar
set = establecer
CMP m
AND m
OR m
XOR m
NOT m
Incrementa [m] en 1
PE
..
Lenguaje ensamblador
MP
00000000000
111111111111
PE
..
NZ..
CMP
AND
OR
XOR
NOT
+-*/
SET m
AC
INC m
Introducción a los Computadores
Pone m en [PC]
Pone m en [PC] si está activo N en PE
BN m
BZ m
BNZ m
Salva [CP] en la pila (dirección de vuelta) y pone [m] en CP
Repone la dirección de vuelta de la pila en CP
BR m
CP
NZ..
MP
m-1
m
m+1
m+2
¡Ojo!
direcciones
del texto del
programa
PE
CP
k
k+1
Pone m en [PC] si está activo N o Z en PE
..
branch = bifurcación
CALL 11000mmmmmmm
RET
11001-------
Pone m en [PC] si está activo Z en PE
etq m
saltos
condicionales
Lenguaje ensamblador
• Instrucciones de control de flujo del programa (llamadas):
• Instrucciones de control del flujo del programa:
10100mmmmmmm
10101mmmmmmm
10110mmmmmmm
10111mmmmmmm
m-1
m
m+1
m+2
Introducción a los Computadores
Lenguaje ensamblador
BR m
BN m
BZ m
BNZ m
m
m
m
m
m
m
m+1
dirección
de inicio
subprograma
FFFC
FFFD
FFFE
FFFF
RET
k
k+1
n-1
n
CALL
k
CA
LL
PP
k
RET
FFFC
FFFD
FFFE
FFFF
k es la
dirección
de vuelta al
programa
que hace la
llamada
dirección
final del
subprograma
call = llamar, return = volver
Introducción a los Computadores
Introducción a los Computadores
Lenguaje ensamblador
• Otras instrucciones:
HALT 11110------NOP
11111-------
• Ejemplo bucle:
Detener funcionamiento de la UCP hasta recibir interrupción
No operación, seguir con la siguiente instrucción
• Ejemplo selección:
etq1:
etq2:
fin:
LD #10 ;
CMP 40 ;
BNZ etq2
LD 40
ADD 41 ;
BR fin
LD 40 ;
SUB 41
NOP
;
ST 41
Lenguaje ensamblador
inicio sentencia SI
en la posición 40 está i
en la posición 41 está j
inicio rama SINO
// Equivalente en
// pseudolenguaje
SI i > 10 ENTONCES
j = i+j
SINO
j = i-j
FINSI
CLR 40 ;
bucle: LD #10 ;
SUB 40
BNZ fin
LD #3
MUL 41 ;
ADD 42 ;
ST 42
INC 40
BR bucle
fin:
NOP
;
en la posición 40 está i // Equivalente en
inicio sentencia MIENTRAS // pseudolenguaje
i = 0
MIENTRAS i<10 HACER
a = a+b*3
en la posición 41 está b
i = i+1
en la posición 42 está a FINMIENTRAS
continuar con la siguiente instrucción
continuar con la siguiente instrucción
Introducción a los Computadores
Lenguaje ensamblador
• Ejemplo bucle en MP:
Las direcciones de MP están
expresadas en decimal.
texto del programa
8
bucle-> 9
10
11
12
13
14
15
16
17
18
19
fin-> 20
...
datos del programa
100010101000
000011100010
000000001010
010010101000
101110010100
000011100010
000000000011
010100101001
010000101010
000100101010
011000101000
101000001001
111110111001
...
40 000000000000
41 001000100011
42 000001000001
...
CLR 40
LD
#10
SUB 40
BNZ fin
LD
#3
MUL 41
ADD 42
ST 42
INC 40
BR bucle
NOP
[i]
[b]
[a]
...
Introducción a los Computadores
Introducción a los Computadores
Descargar