1. Estructura de Computadores
Tema 1. Introducción a los computadores
Departamento de Informática
Grupo de Arquitectura de Computadores, Comunicaciones y Sistemas
UNIVERSIDAD CARLOS III DE MADRID
2. Contenido
1.
2.
3.
4.
5.
6.
7.
8.
¿Qué es un computador?
Concepto de estructura y arquitectura
Elementos constructivos de un computador
Arquitectura Von Neumann
Instrucciones máquina. Programación
Fases de ejecución de una instrucción
Parámetros característicos de un computador
Evolución histórica
ARCOS
Estructura de Computadores
2
3. ¿Qué es un computador?
?
ARCOS
Estructura de Computadores
3
4. ¿Qué es un computador?
ARCOS
Estructura de Computadores
4
5. Industria de los semiconductores
Fuente: embedded.com
ARCOS
Estructura de Computadores
5
6. Tipos de procesadores
Procesadores: 2% de la industria
de los semiconductores
Procesadores para PC: 2 % de todos
los procesadores
Un coche de tipo medio tiene una
docena de microprocesadores
Un BMW setie 7 tiene más de 65
Fuente: embedded.com
ARCOS
Estructura de Computadores
6
7. ¿Qué es un computador?
resultados
datos
Procesador
Instrucciones
Máquina destinada a procesar datos.
ARCOS
Estructura de Computadores
7
8. ¿Qué es un computador?
resultados
datos
Procesador
Instrucciones
Desde el punto de vista matemático es una máquina abstracta que evalúa
f : {0,1} → {0,1}
n
ARCOS
m
Estructura de Computadores
8
9. Estructura y arquitectura
Estructura
Componentes de un computador
Organización de los componentes
Arquitectura: atributos visibles para un programador
Juego de instrucciones que ofrece la máquina
Tipo y formato de datos que es capaz de utilizar el
computador
Número y tamaño de los registros
Técnicas y mecanismos de E/S
Técnicas de direccionamiento de la memoria
Tecnología: cómo se construyen los componentes
ARCOS
Estructura de Computadores
9
10. Conceptos de repaso
Sistema binario
Elementos constructivos de un computador
Transistores
Puertas lógicas
Principales bloques conbinacionales
Principales elementos secuenciales
ARCOS
Estructura de Computadores
10
11. Sistema binario
Binario
X= 1 0 1 0 0 1 0 1
... 27 26 25 24 23 22 21 20
d31d30 ... d1d0 : nº de 32 bits (dígitos binarios)
Valor = d31 × 231 + d30 × 230 + ... + d1 × 21 + d0 × 20
Hexadecimal
Y = 0x F 1 F A 8 0
... 165 164 163 162 161 160
De binario a hexadecimal:
Agrupar de 4 en 4 bits, de derecha a izquierda
Cada 4 bits es el valor del dígito hexadecimal
Ej.:
1 1
0x 0 A 0 0 15 0 1
ARCOS
Estructura de Computadores
11
12. Pregunta
¿Cuántos códigos distintos se pueden codificar con 8 bits?
¿Cuántos bits hacen falta para representar 512 códigos?
ARCOS
Estructura de Computadores
12
13. Transistor
N-MOS
A
P-MOS
E
E
B
B
E
1
0
A
funcionamiento
Conecta A con B (circuito abierto)
No conecta A con B (circuito cerrado)
E
0
1
funcionamiento
Conecta A con B (circuito abierto)
No conecta A con B (circuito cerrado)
(valores lógicos)
ARCOS
Estructura de Computadores
13
14. Puertas lógicas. Inversor (NOT)
V3,3
E
ARCOS
S
E
3.3
0
Estructura de Computadores
S
0
3.3
E
1
0
S
0
1
14
19. Bloques constructivos
Circuitos combinacionales
La salida depende de los valores de entrada
Sin estado
Circuitos secuenciales
La salida depende de la entrada y del estado actual
Almacenan información
ARCOS
Estructura de Computadores
19
25. Esquema de un registro
Entrada
Registro
Carga
Salida
ARCOS
Estructura de Computadores
25
26. Memoria
Espacio de direcciones:
Número de posiciones
k = 2n
posiciones
Tamaño de cada posición:
Número de bits por posición
ARCOS
Estructura de Computadores
•
•
•
m bits
26
27. Componentes de un computador
Procesador
Memoria
principal
Bus de control
Bus de datos
Bus de direcciones
Módulo de E/S
Periférico
ARCOS
Módulo de E/S
Periférico
Estructura de Computadores
27
28. Computador von Neumann
Máquina capaz de ejecutar una
serie de instrucciones
elementales: instrucciones
máquina
Instrucciones almacenadas en
memoria
Leídas
Ejecutadas
ARCOS
Estructura de Computadores
28
32. Procesador
Estructura que almacena un conjunto de bits
Realiza las operaciones
Procesador
ALU
Ejecuta las instrucciones
Registros
Unidad de
control
Memoria
principal
Bus de control
Bus de datos
Bus de direcciones
Módulo de E/S
Periférico
ARCOS
Módulo de E/S
Periférico
Estructura de Computadores
32
33. Registros especiales
PC: contador de programa
RI: registro de instrucción
Procesador
ALU
Registros
Unidad de
control
Memoria
principal
Bus de control
Bus de datos
Bus de direcciones
Módulo de E/S
Periférico
ARCOS
Módulo de E/S
Periférico
Estructura de Computadores
33
35. Programa
Secuencia consecutiva de instrucciones máquina
00001001110001101010111101011000
10101111010110000000100111000110
11000110101011110101100000001001
01011000000010011100011010101111
ARCOS
Estructura de Computadores
35
36. Programa
Secuencia consecutiva de instrucciones máquina
00001001110001101010111101011000
10101111010110000000100111000110
11000110101011110101100000001001
01011000000010011100011010101111
ARCOS
Estructura de Computadores
temp = v[k];
v[k] = v[k+1];
v[k+1] = temp;
36
37. Ejecución de un programa
Memoria principal
Disco
Fichero ejecutable
Procesador
00001001110001101010111101011000
10101111010110000000100111000110
11000110101011110101100000001001
PC
RI
01011000000010011100011010101111
ARCOS
Estructura de Computadores
37
38. Ejecución de un programa
Memoria principal
00001001110001101010111101011000
10101111010110000000100111000110
11000110101011110101100000001001
01011000000010011100011010101111
Disco
Fichero ejecutable
Procesador
00001001110001101010111101011000
10101111010110000000100111000110
11000110101011110101100000001001
PC
RI
01011000000010011100011010101111
ARCOS
Estructura de Computadores
38
39. Ejecución de un programa
Memoria principal
00001001110001101010111101011000
10101111010110000000100111000110
11000110101011110101100000001001
01011000000010011100011010101111
Disco
Fichero ejecutable
Procesador
00001001110001101010111101011000
10101111010110000000100111000110
11000110101011110101100000001001
PC
RI
01011000000010011100011010101111
ARCOS
Estructura de Computadores
39
40. Ejecución de un programa
Memoria principal
00001001110001101010111101011000
10101111010110000000100111000110
11000110101011110101100000001001
01011000000010011100011010101111
Disco
Fichero ejecutable
Procesador
00001001110001101010111101011000
10101111010110000000100111000110
11000110101011110101100000001001
PC
RI
01011000000010011100011010101111
ARCOS
Estructura de Computadores
00001001110
40
41. Ejemplo
Conjunto de instrucciones con las siguientes características:
Tamaño de una posición de memoria: 16 bits
Tamaño de la instrucción: 16 bits
Código de operación: 3 bits
¿Cuántas instrucciones diferentes puede tener este
computador?
Número de registros de propósito general: 4
Identificadores simbólicos:
R0
R1
R2
R3
¿Cuántos bits se necesitan para representar estos 4 registros?
ARCOS
Estructura de Computadores
41
42. Ejemplo
Conjunto de instrucciones con las siguientes características:
Tamaño de una posición de memoria: 16 bits
Tamaño de la instrucción: 16 bits
Código de operación: 3 bits
¿Cuántas instrucciones diferentes puede tener este
computador? 8 instrucciones
Número de registros de propósito general: 4 (2 bits)
R0 (00)
R1 (01)
R2 (10)
R3 (11)
ARCOS
Estructura de Computadores
42
43. Ejemplo. Juego de instrucciones
Instrucción
Descripción
000EFABCDXXXXXXX
Suma el registro AB con el CD y deja el resultado en EF
001AB00000000101
Almacena en el registro AB el valor 00000000101
010AB00000001001
Almacena en el registro AB el valor almacenado en la
posición de memoria 00000001001
011AB00000001001
Almacena en la posición de memoria 00000001001 el
contenido del registro AB
1000000000001001
Se salta a ejecutar la instrucción almacenada en la
posición de memoria 0000000001001
101ABCD000001001
Si el contenido del registro AB es igual al del registro CD
se salta a ejecutar la instrucción almacenada en
000001001
Siendo A,B, C, D, E, F = 0 o 1
ARCOS
Estructura de Computadores
43
44. Formato de una instrucción máquina
001 AB 00000000101
ARCOS
Estructura de Computadores
44
45. Formato de una instrucción máquina
001 AB 00000000101
Código de operación
ARCOS
Estructura de Computadores
45
46. Formato de una instrucción máquina
001 AB 00000000101
Código de operación
Operandos
ARCOS
Registros
Direcciones de memoria
Números
Estructura de Computadores
46
47. Ejemplo. Juego de instrucciones
Instrucción
Descripción
000010010XXXXXXX
Suma el registro 00 con el 10 y deja el resultado en 01
0010100000000101
Almacena en el registro 01 el valor 00000000101
0100100000001001
Almacena en el registro 01 el valor almacenado en la
posición de memoria 00000001001
0110100000001001
Almacena en la posición de memoria 00000001001 el
contenido del registro 01
1000000000001001
Se salta a ejecutar la instrucción almacenada en la
posición de memoria 0000000001001
1010100000001001
Si el contenido del registro 01 es igual al del registro 00
se salta a ejecutar la instrucción almacenada en
000001001
ARCOS
Estructura de Computadores
47
48. Ejemplos
Instrucción que almacena un 5 en el registro 00
Instrucción que almacena un 7 en el registro 01
Instrucción que suma el contenido del registro 00 y el registro
01 y deja el resultado en el registro 10
Instrucción que almacena el resultado anterior en la posición
de memoria 1027 (en decimal)
ARCOS
Estructura de Computadores
48
49. Instrucción
000010010XXXXXXX
Suma el registro 00 con el 10 y deja el resultado en 01
0010100000000101
Almacena en el registro 01 el valor 00000000101
0100100000001001
Almacena en el registro 01 el valor almacenado en la posición de memoria 00000001001
0110100000001001
Almacena en la posición de memoria 00000001001 el contenido del registro 01
1000000000001001
Se salta a ejecutar la instrucción almacenada en la posición de memoria 0000000001001
1010100000001001
Ejemplos
Descripción
Si el contenido del registro 01 es igual al del registro 00 se salta a ejecutar la instrucción
almacenada en 000001001
Instrucción que almacena un 5 en el registro 00
Instrucción que almacena un 7 en el registro 01
Instrucción que suma el contenido del registro 00 y el registro
01 y deja el resultado en el registro 10
Instrucción que almacena el resultado anterior en la posición
de memoria 1027 (en decimal)
ARCOS
Estructura de Computadores
49
50. Ejemplos
Solución
Instrucción que almacena un 5 en el registro 00
0010000000000101
Instrucción que almacena un 7 en el registro 01
0010100000000111
Instrucción que suma el contenido del registro 00 y el registro
01 y deja el resultado en el registro 10
000100001XXXXXXX
Instrucción que almacena el resultado anterior en la posición
de memoria 1027 (en decimal)
0111010000000011
ARCOS
Estructura de Computadores
50
52. Inicio de la ejecución del programa
Dirección
Contenido
000100
0010000000000000
000101
0010100000000100
000110
0011000000000001
?
000111
0011100000000000
?
001000
1010001000001100
001001
0001111100000000
001010
0000000100000000
001011
1000000000001000
001100
0111100000100000
PC
RI
00
01
10
11
ARCOS
000100
?
?
?
Estructura de Computadores
52
53. Fases de ejecución de una instrucción
Lectura de la instrucción (ciclo de fetch)
MAR
PC
Lectura
MBR
Memoria
PC
PC + 1
RI
MBR
PC
000100
RI
MAR
Decodificación de la instrucción
Dirección
000100
MBR
Contenido
0010000000000000
Ejecución de la instrucción
Volver a fetch
Memoria
ARCOS
Estructura de Computadores
53
54. Fases de ejecución de una instrucción
Lectura de la instrucción (ciclo de fetch)
MAR
PC
Lectura
MBR
Memoria
PC
PC + 1
RI
MBR
PC
000100
RI
MAR
Decodificación de la instrucción
MBR
000100
Dirección
000100
Contenido
0010000000000000
Ejecución de la instrucción
Volver a fetch
Memoria
ARCOS
Estructura de Computadores
54
55. Fases de ejecución de una instrucción
Lectura de la instrucción (ciclo de fetch)
MAR
PC
Lectura
MBR
Memoria
PC
PC + 1
RI
MBR
PC
000100
RI
MAR
Decodificación de la instrucción
MBR
000100
Dirección
000100
Contenido
0010000000000000
Ejecución de la instrucción
Volver a fetch
Memoria
ARCOS
Estructura de Computadores
55
56. Fases de ejecución de una instrucción
Lectura de la instrucción (ciclo de fetch)
MAR
PC
Lectura
MBR
Memoria
PC
PC + 1
RI
MBR
PC
000100
RI
MAR
Decodificación de la instrucción
000100
Dirección
000100
MBR
0010000000000000
Contenido
0010000000000000
Ejecución de la instrucción
Volver a fetch
Memoria
ARCOS
Estructura de Computadores
56
57. Fases de ejecución de una instrucción
Lectura de la instrucción (ciclo de fetch)
MAR
PC
Lectura
MBR
Memoria
PC
PC + 1
RI
MBR
PC
000101
RI
MAR
Decodificación de la instrucción
000100
Dirección
000100
MBR
0010000000000000
Contenido
0010000000000000
Ejecución de la instrucción
Volver a fetch
Memoria
ARCOS
Estructura de Computadores
57
58. Fases de ejecución de una instrucción
Lectura de la instrucción (ciclo de fetch)
MAR
PC
Lectura
MBR
Memoria
PC
PC + 1
RI
MBR
PC
000101
RI
0010000000000000
MAR
Decodificación de la instrucción
000100
Dirección
000100
MBR
0010000000000000
Contenido
0010000000000000
Ejecución de la instrucción
Volver a fetch
Memoria
ARCOS
Estructura de Computadores
58
59. Fases de ejecución de una instrucción
Lectura de la instrucción (ciclo de fetch)
MAR
PC
Lectura
MBR
Memoria
PC
PC + 1
RI
MBR
PC
000101
RI
0010000000000000
MAR
Decodificación de la instrucción
000100
Dirección
000100
MBR
0010000000000000
Contenido
0010000000000000
Ejecución de la instrucción
Volver a fetch
Memoria
ARCOS
Estructura de Computadores
59
60. Fases de ejecución de una instrucción
Lectura de la instrucción (ciclo de fetch)
MAR
PC
Lectura
MBR
Memoria
PC
PC + 1
RI
MBR
PC
000101
RI
0010000000000000
MAR
Decodificación de la instrucción
000100
Dirección
000100
MBR
0010000000000000
Contenido
0010000000000000
Ejecución de la instrucción
Volver a fetch
Memoria
ARCOS
Estructura de Computadores
60
62. Ejecución de instrucciones
0100100000001001 RI
R1
MP[00000001001]
Dirección
00000001001
Contenido
0000000000000101
Se carga en R1 el contenido de la posición de memoria
00000001001
ARCOS
Estructura de Computadores
62
63. Ejecución de instrucciones
1000000000001000 RI
PC
0000000001000
Se modifica el PC con la dirección 0000000001000
de forma que la siguiente instrucción a ejecutar es la que se
encuentra en 0000000001000
ARCOS
Estructura de Computadores
63
64. Fases de ejecución de una instrucción
Lectura de la instrucción (ciclo de fetch)
MAR
PC
Lectura
MBR
Memoria
PC
PC + 1
RI
MBR
PC
000101
RI
0010000000000000
MAR
Decodificación de la instrucción
000100
Dirección
000100
MBR
0010000000000000
Contenido
0010000000000000
Ejecución de la instrucción
Volver a fetch
Memoria
ARCOS
Estructura de Computadores
64
65. Fases de ejecución de una instrucción
Lectura de la instrucción (ciclo de fetch)
MAR
PC
Lectura
MBR
Memoria
PC
PC + 1
RI
MBR
PC
000101
RI
0010000000000000
MAR
Decodificación de la instrucción
000100
Dirección
000100
MBR
0010000000000000
Contenido
0010000000000000
Ejecución de la instrucción
Volver a fetch
Memoria
ARCOS
Estructura de Computadores
65
108. Algoritmo del programa anterior
i=0;
s = 0;
while (i < 4)
{
s = s + 1;
i = i + 1;
}
El programa almacena en la posición de memoria 00000100000
el valor: 1 + 1 + 1 + 1
ARCOS
Estructura de Computadores
108
110. Secuencia de ejecución de instrucciones
Arranque
Lectura de la
instrucción
Decodificación
Ejecución de
la instrucción
Parada
ARCOS
Estructura de Computadores
110
112. Ley de Moore
Doblar la densidad implica reducir las
dimensiones de sus elementos en un 30%
En 1971 el Intel 4004 tenía 2300 transistores
con tamaños de 10 micrometros
Hoy en día se consiguen chips con
distancias de 45 nanometros
Para cumplir la ley de Moore se necesita tecnología cuyo
precio se dobla cada 4.4 años
ARCOS
Estructura de Computadores
112
114. Mejoras en la tecnología
Memoria
Capacidad de DRAM: 2x / 2 años (desde 96);
64x en la última decada
Procesador
Velocidad: 2x / 1.5 años (desde 85);
100X en la última decada.
Discos
Capacidad: 2x / 1 año (desde 97)
250X en la última decada.
ARCOS
Estructura de Computadores
114
115. Parámetros característicos de un
computador
Ancho de palabra
Memoria principal o Memoria RAM
Memoria auxiliar
Ancho de banda
MIPS
MFLOPS
ARCOS
Estructura de Computadores
115
116. Prefijos
Nombre
Abr
Factor
SI
Kilo
K
210 = 1,024
103 = 1,000
Mega
M
220 = 1,048,576
106 = 1,000,000
Giga
G
230 = 1,073,741,824
109 = 1,000,000,000
Tera
T
240 = 1,099,511,627,776
1012 = 1,000,000,000,000
Peta
P
250 = 1,125,899,906,842,624
1015 = 1,000,000,000,000,000
Exa
E
260 = 1,152,921,504,606,846,976
1018 = 1,000,000,000,000,000,000
Zetta
Z
270 = 1,180,591,620,717,411,303,424
1021 = 1,000,000,000,000,000,000,000
Yotta
Y
280 =
1,208,925,819,614,629,174,706,176
1024 = 1,000,000,000,000,000,000,000,000
ARCOS
Estructura de Computadores
116
118. Prefijos
Nombre
Abr
Factor
SI
Kilo
K
210 = 1,024
103 = 1,000
Mega
M
220 = 1,048,576
106 = 1,000,000
Giga
G
230 = 1,073,741,824
109 = 1,000,000,000
Tera
T
240 = 1,099,511,627,776
1012 = 1,000,000,000,000
Peta
P
250 = 1,125,899,906,842,624
1015 = 1,000,000,000,000,000
Exa
E
260 = 1,152,921,504,606,846,976
1018 = 1,000,000,000,000,000,000
Zetta
Z
270 = 1,180,591,620,717,411,303,424
1021 = 1,000,000,000,000,000,000,000
Yotta
Y
280 =
1,208,925,819,614,629,174,706,176
1024 = 1,000,000,000,000,000,000,000,000
1 KB = 1024 bytes, pero en el SI es 1000 bytes
Los fabricantes de disco duros y en telecomunicaciones emplea el SI.
Un disco duro de 30 GB almacena 30 x 109 bytes
Una red de 1 Mbit/s transfiere 106 bps.
ARCOS
Estructura de Computadores
118