Componentes de un ordenador
Contenido del tema
8.1. Componente física (hardware)
8.1.1. Arquitectura von Neumann 8.1.2. Unidad central de proceso 8.1.3. Buses8.1.4. Memoria
8.1.5. Subsistema de E/S
8.2. Lenguaje ensamblador
8.3. Componente lógica (software)
8.3.1. Clasificación del software 8.3.2. Sistemas operativos 8.3.3. Gramáticas y compiladores
T
E
M
A
8
T
E
M
A
8
Introducción a los Computadores
Componentes básicos
•
•
Componente física o
Componente física o
hardware
hardware
¤ Elementos tangibles del ordenador:
• Unidad central de proceso • Buses
• Memoria
• Subsistema de entrada/salida: teclado, ratón, monitor...
•
•
Componente lógica o
Componente lógica o
software
software
¤ Programas que ejecuta el ordenador.
• 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, ...
Componentes físicos
• Arquitectura
von
von
Neumann
Neumann
(1)Programa almacenado
(2)Lógica binaria (George Boole)
(3)División en UCP, memoria y E/S (Charles Babbage)
John von Neumann
John von Neumann, 1945
First Draft of a Report on the EDVAC
Subsistema de E/S
Memoria
(datos+instrucciones) Unidad de
procesamiento
Buses
Unidad de procesamiento
Bus sistema direcciones
Registros
A.L.U.
Acum.
U.C.P.
Unidad de control
Almacén temporal
(muy rápido) datos
control
Procesamiento
aritmético-lógico
Señales del control al resto del sistema
reloj
estado
Parámetros:
•Velocidad (MIPS o MFLOPS)
•Longitud de palabra
•Número de registros
Introducción a los Computadores
Unidad de procesamiento
• La Unidad de control (U.C.)
¤ 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
(3) saltos de control del flujo
(4) otras (parada, paso-a-paso...)
Unidad de
Unidad de
control
control
reloj
. . .
ciclo reloj ciclo reloj
UCP UCP MP UCP ES UCP
MP MP
ES ES
CLK
Introducción a los Computadores
Unidad de procesamiento
• Funcionamiento:
ciclo máquina
repetitivo desde que se
enciende el ordenador hasta que se apaga
Unidad de control
reloj
. . . MemoriaMemoria
instrucción (fetching)
ciclo máquina
ciclo máquina
Almacenamiento de resultados
Ejecución
Búsqueda de operandos
Decodificación Actualización
del C.P.
Fetching
opcional opcional
Unidad de procesamiento
•
•
Registros
Registros
¤ Almacén temporal ¤ Sin direcciones de memoria asignadas ¤ Acceso muy rápido
U.A.L.
AC
PE
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 Acumulador: Último resultado
Registros
Registros U.C.
RI CP
Memoria
Otros registros: •Propósito general •Direcciones temp. •Puntero de pila (PP)
Contador de programa: siguiente instrucción
Instrucción actual a decodificar
Unidad de procesamiento
•
•
Unidad aritmético
Unidad aritmético
-
-
lógica (U.A.L.)
lógica (U.A.L.)
¤ 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.
Introducción a los Computadores
• La memoria almacena datos e instrucciones.
• Desde el punto de vista funcional, en un
ordenador distinguimos:
¤ Memoria principal(MP) o interna.
¤ Memoria secundaria(MS), externao 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.
Memoria
Electrónica Alta velocidad Capacidad limitada Volátil en general Alto coste
Magnética, óptica... Baja velocidad Alta capacidad Permanente Bajo coste
Introducción a los Computadores
• 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.
Memoria
MS
MP UCP
Cache MP
Cache
MS Si el dato no está
en la cache se accede a MS y se
copia un nuevo trozo. Si el dato no está
en la cache se accede a MP y se
copia un nuevo trozo.
• 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.
Memoria Principal
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.
• 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
.
mapa de memoria
Memoria Principal
control direcciones
datos
S.O.
Proceso 1
Proceso 2
...
...
...
BBA0 BBA1 BBA2 BBA3 direcciones en hex.R/W CS
Introducción a los Computadores
Memoria Principal
• 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: 2
npalabras:
216palabras
32
16 bus del sistema
0000 0001 0002 0003 0004 0005
FFFE
FFFF longitud de palabra = 32
Introducción a los Computadores
• 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.
Subsistema de E/S
bus de e/s MP
UCP
disco vídeo teclado
Contr. Contr. Contr.
• La UCP ve lógicamente todo
el subsistema de E/S como
posiciones de memoria en un
mapa de direcciones distinto
al de la MP.
• Una posición del mapa de
E/S se llama
puerto
.
• Físicamente, los puertos son
posiciones de memoria
dentro de los controladores.
mapa E/S
Subsistema de E/S
control direcciones
datos
Puertos disp. 1
Puertos disp. 6
Puertos disp. 8
I/ O INT
otras
salida
control
estado entrada
conversores
de señal
circuitería
control / direcciones
...
controlador
Subsistema de E/S
•
•
Esquema controlador genérico
Esquema controlador genérico
dispositivo
control direcciones
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
• Organización de un disco magnético:
brazos y cabezas Plato
Caras Pista
Sector
En un disco magnético hay múltiples pistas concéntricas, que se lee a velocidad angular constante (CAV) (más rápido)
En un disco óptico sólo hay una pista en espiral
que se lee a velocidad lineal constante (CLV)
Introducción a los Computadores
Memoria secundaria
• Tiempos de acceso a la información:
tiempo de localización: posicionar brazo en la
pista adecuada
tiempo de latencia: rotar discos hasta que el
sector buscado pase bajo la cabeza
UCP
tiempo de transferencia: llevar los datos desde la
cabeza hasta la UCP
t
acceso= t
loc+ t
latBuses
•
•
Buses
Buses
¤ Conexiones entre las distintas unidades funcionales del ordenador. ¤ Los buses de la placa base son paralelos y se subdividen en 3 sub-buses:
• 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.
Buses
• Esquema de
Bus único
¤ Problema: los dispositivos son más lentos que la UCP y la MP y además tienen velocidades de trabajo distintas entre sí.
Bus del sistema
UCP MP ES
ES ES
Introducción a los Computadores
Buses
• Esquema con de
bus de expansión
¤ Solución: buses distintos (con velocidades distintas) y circuitería de interfaz entre los buses, los puentes(bridges).
UCP MP
Bus local del sistema
ES ES
Bus ISA Adaptador
ISA ES
Más rápido
Más lento
Introducción a los Computadores
Buses
• Jerarquía de buses:
UCP MP
Adaptador
PCI/ISA Tarjetared
Bus local del sistema
Adaptador AGP/PCI
66 MHz 528 MBps Tarjeta
gráfica
Bus AGP
Bus PCI
Ratón Modem
Bus ISA 8.33 MHz
8 MBps 100 MHz
1 GBps
33 MHz 264 MBps
Contr. Disco Teclado
Buses
Buses en placa madre
Ancho (bits)
A.B. (MBps)
Frec. (MHz)
Dispositivos
ISA
Industry Standard Architecture, 1984
8/16 2.38
8.0
8.3 T. Sonido,
modems... EISA
Extended ISA, 1988
32 31.8 8.3 T. red, adap. SCSI...
MCA
MicroChannel Architecture, 1987
32 20 33 T. red, T. gráficas...
VESA Local bus Video Electronics Standard Association, 1993
32 44-105 33 T. gráficas, UCP...
PCI
Peripheral Component Interconnect, 1992 32 64
132-264 508.6
33 T. gráficas, adap.
SCSI, t. sonido modernas AGP
Advanced Graphics Ports
32
254.3-1017.3 66 66x4
T. gráficas 3D
Buses
Buses externos Ancho
(bits)
A.B. (MBps)
Dispositivos
IDE
Integrated Drive Electronics, 1984
8 8 discos, CDs, cintas
SCSI
Small Computer System Interface, 1995
8, 16 5-80 discos, otros...
USB
Universal Serial Bus
serie 1.5 ratón, teclado, modems, multimedia, escáneres... FireWire
IEEE 1394, 1995
serie 1.5-50 cámaras, DVDs,
Introducción a los Computadores
Lenguaje máquina
• Las instrucciones máquina pueden constar de una o más
palabras de memoria:
co-op
opdo
dir.opdo
co-op
co-op
co-op
dir. opdo1
dir. opdo2
dir. opdo
El código de operación indica la instrucción a ejecutar y cuántos operandos son necesarios Los operandos
pueden ser inmediatos
También pueden ser direcciones de memoria (de anchura la del bus de
direcciones)
100101101
XXX
101010101100
10110110110
Introducción a los Computadores
Lenguaje ensamblador
Lenguaje máquina Lenguaje ensamblador
Patrones bits co-op mnemónicos breves
Direcciones de memoria
o puertos de e/s
números en decimal, octal o hexadecimal
Operandos inmediatos números precedidos por #
Comentarios cadenas de texto precedidas por ;
• Cada instrucción máquina se corresponde con una
instrucción en lenguaje ensamblador:
Por esto, el lenguaje ensamblador essimbólico
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 25posibles instrucciones)
¤ Registros a tener en cuenta: CP, AC, PE, PP
Lenguaje ensamblador
• Instrucciones de
transferencia de datos con el AC:
transferencia de datos con el AC
LD m 00000mmmmmmm Carga [m]en AC
LD #d 00001--- dddddddddddd Carga den AC
ST m 00010mmmmmmm Almacena [AC] en [m]
dato
LD m
ST m
m-1 m m+1 m+2
MP
LD #d
U.A.L.
AC
load = cargar
Introducción a los Computadores
Lenguaje ensamblador
• Instrucciones de
transferencia MP a MP
transferencia MP a MP:
MOV m #d 00011mmmmmmm dddddddddddd Almacena den[m]
MOV m n 10011mmmmmmm ---nnnnnnn Almacena [n]en[m]
m-1 m m+1 m+2
MP
n-1 n n+1 n+2
dato
MOV m #d
MOV m n
Introducción a los Computadores
Lenguaje ensamblador
• Instrucciones de
transferencia de datos en la pila:
transferencia de datos en la pila
PUSH 00100--- Almacena [AC] en [PP]e incrementa PP
POP 00101--- Decrementa PP y almacena [PP]en AC
El puntero de pila (un registro)
apunta a la primera posición
libre de la pila del proceso
FFFC FFFD FFFE FFFF
MP
FFFD pila
U.A.L.
AC
PUSH POP
PP
PUSH
POP
push= empujar pull= tirar
Lenguaje ensamblador
• Instrucciones de
transferencia de datos con el mapa de e/s
transferencia de datos con el mapa de e/s:
IN e 00110eeeeeee Carga en el AC el contenido del puerto de entrada eOUT s 00111sssssss Almacena el contenido del puerto de salida sen AC
IN e
OUT s U.A.L.
AC
e-1 e e+1 e+2 ES
s-1 s s+1 s+2
puerto de un dispositivo de entrada: ratón, teclado, tableta
gráfica...
puerto de un dispositivo de
salida: vídeo, impresora...
Lenguaje ensamblador
• Instrucciones
aritméticas (resultado en AC):
aritméticas
ADD m 01000mmmmmmm Almacena [AC] + [m]en AC
SUB m 01001mmmmmmm Almacena [AC] -[m]en AC
MUL m 01010mmmmmmm Almacena [AC] * [m]en AC
DIV m 01011mmmmmmm Almacena [AC] / [m]en AC
ADD m SUB m MUL m DIV m
m-1 m m+1 m+2
MP
+ - * /
AC PE
Se actualizan los indicadores S
y Zdespués de cada operación
Introducción a los Computadores
Lenguaje ensamblador
• Instrucciones
aritméticas (resultado en MP):
aritméticas
INC m 01100mmmmmmm Incrementa [m]en 1
CLR m 10001mmmmmmm Pone todos los bits de [m]a 0
SET m 10010mmmmmmm Pone todos los bits de [m]a 1
CLR m
SET m
INC m
m-1 m m+1 m+2
MP
+ - * /
AC PE
+1
111111111111 00000000000
clear= limpiar
set= establecer
..NZ..
Introducción a los Computadores
Lenguaje ensamblador
• Instrucciones
lógicas:
lógicas
CMP m 11100mmmmmmm Si [AC] < [m]se activa N, y si [AC] = [m]se activa Z
AND m 01101mmmmmmm Almacena [AC] AND [m]en AC
OR m 01110mmmmmmm Almacena [AC] OR [m]en AC
XOR m 01111mmmmmmm Almacena [AC] XOR [m]en AC
NOT m 10000mmmmmmm Almacena NOT [AC] en AC
CMP m AND m OR m XOR m NOT m
m-1 m m+1 m+2
MP
+ - * /
AC
PE ..NZ..
Lenguaje ensamblador
• Instrucciones de
control del flujo
control del flujo del programa:
BR m 10100mmmmmmm Pone men[PC]BN m 10101mmmmmmm Pone men[PC] si está activo Nen PE
BZ m 10110mmmmmmm Pone men[PC] si está activo Zen PE
BNZ m 10111mmmmmmm Pone men[PC] si está activo No Zen PE
m-1 m m+1 m+2
MP BR m
..NZ..
PE CP
etq m
BN m BZ m BNZ m
saltos condicionales
branch= bifurcación
¡Ojo! direcciones del textodel
programa
Lenguaje ensamblador
• Instrucciones de
control de flujo del programa (llamadas):
control de flujo
CALL 11000mmmmmmm Salva [CP] en la pila (dirección de vuelta) y pone [m] en CP RET 11001--- Repone la dirección de vuelta de la pila en CP
FFFC FFFD FFFE FFFF
RET
CALL
PP
CALL
call= llamar, return= volver
m m+1
k k+1
CP
k
FFFC FFFD FFFE FFFF
n-1 n k k+1
k
RET
kes la dirección de vueltaal
programa que hace la
llamada
dirección final del subprograma dirección
de inicio
Introducción a los Computadores
Lenguaje ensamblador
• Otras instrucciones:
HALT 11110--- Detener funcionamiento de la UCP hasta recibir interrupción
NOP 11111--- No operación, seguir con la siguiente instrucción
• Ejemplo selección:
etq1: LD #10 ; inicio sentencia SI
CMP 40 ; en la posición 40 está i
BNZ etq2 LD 40
ADD 41 ; en la posición 41 está j
BR fin
etq2: LD 40 ; inicio rama SINO
SUB 41
fin: NOP ; continuar con la siguiente instrucción
ST 41
// Equivalente en // pseudolenguaje
SI i > 10 ENTONCES
j = i+j
SINO
j = i-j
FINSI
Introducción a los Computadores
Lenguaje ensamblador
• Ejemplo bucle:
CLR 40 ; en la posición 40 está i
bucle: LD #10 ; inicio sentencia MIENTRAS
SUB 40 BNZ fin LD #3
MUL 41 ; en la posición 41 está b
ADD 42 ; en la posición 42 está a
ST 42 INC 40 BR bucle
fin: NOP ; continuar con la siguiente instrucción // Equivalente en // pseudolenguaje
i = 0
MIENTRAS i<10 HACER
a = a+b*3 i = i+1
FINMIENTRAS
Lenguaje ensamblador
• Ejemplo bucle en MP:
100010101000000011100010 000000001010
010010101000
101110010100
000011100010 000000000011
010100101001
010000101010
000100101010
011000101000
101000001001
111110111001
...
000000000000 001000100011 000001000001
...
8 bucle-> 9 10 11 12 13 14 15 16 17 18 19 fin-> 20
...
40 41 42
...
CLR 40 LD #10 SUB 40 BNZ fin LD #3 MUL 41 ADD 42 ST 42 INC 40 BR bucle NOP
[i] [b] [a]
texto del programa
datos del programa Las direcciones de MP están