Estrucutura de computadoras
description
Transcript of Estrucutura de computadoras
Estructura de Computadores
Tema 1. Introducción a los computadoresTema 1. Introducción a los computadores
Departamento de InformáticaGrupo de Arquitectura de Computadores, Comunicaciones y Sistemas
UNIVERSIDAD CARLOS III DE MADRID
Contenido
1. ¿Qué es un computador?2. Concepto de estructura y arquitectura3. Elementos constructivos de un computador4. Arquitectura Von Neumann5. Instrucciones máquina. Programación 6. Fases de ejecución de una instrucción
ARCOS Estructura de Computadores 2
6. Fases de ejecución de una instrucción7. Parámetros característicos de un computador8. Evolución histórica
¿Qué es un computador?
ARCOS Estructura de Computadores 3
?
¿Qué es un computador?
ARCOS Estructura de Computadores 4
Industria de los semiconductores
ARCOS Estructura de Computadores 5
Fuente: embedded.com
Tipos de procesadores
� Procesadores: 2% de la industria de los semiconductores
ARCOS Estructura de Computadores 6
Fuente: embedded.com
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
¿Qué es un computador?
Procesadordatos
Instrucciones
resultados
ARCOS Estructura de Computadores 7
Instrucciones
� Máquina destinada a procesar datos.
¿Qué es un computador?
Procesadordatos
Instrucciones
resultados
ARCOS Estructura de Computadores 8
Instrucciones
� Desde el punto de vista matemático es una máquina abstracta que evalúa
}{ }{ mnf 1,01,0: →
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
ARCOS Estructura de Computadores 9
� 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
Conceptos de repaso
� Sistema binario� Elementos constructivos de un computador
� Transistores� Puertas lógicas� Principales bloques conbinacionales� Principales bloques conbinacionales� Principales elementos secuenciales
ARCOS Estructura de Computadores 10
Sistema binario
� BinarioX = 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� HexadecimalY = 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 0 1 0 0 1 0 1
ARCOS Estructura de Computadores 11
0x A 5
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
Transistor
E
A
E
A N-MOS P-MOS
ARCOS Estructura de Computadores 13
B B
E funcionamiento
1 Conecta A con B (circuito abierto)
0 No conecta A con B (circuito cerrado)
E funcionamiento
0 Conecta A con B (circuito abierto)
1 No conecta A con B (circuito cerrado)
(valores lógicos)
Puertas lógicas. Inversor (NOT)
E S
V3,3
E S E S
3.3 0 1 0
ARCOS Estructura de Computadores 14
E S
0 3.3 0 1
Puertas lógicas. NOR
A B C
0 0 1
0 1 0
1 0 0
1 1 0
ARCOS Estructura de Computadores 15
Puertas lógicas. OR
A B C
0 0 0
0 1 1
1 0 1
1 1 1
ARCOS Estructura de Computadores 16
Puertas lógicas. NAND
A B C
0 0 1
0 1 1
1 0 1
1 1 0
ARCOS Estructura de Computadores 17
Puertas lógicas. AND
A B C
0 0 0
0 1 0
1 0 0
1 1 1
ARCOS Estructura de Computadores 18
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
ARCOS Estructura de Computadores 19
� La salida depende de la entrada y del estado actual� Almacenan información
Decodificador
� N entradas, 2N salidas
ARCOS Estructura de Computadores 20
Multiplexor
� Selecciona con n bits, 2n entradas
A B C D
ARCOS Estructura de Computadores 21
A B C D
MUX S1S0
S
Elementos de memoria
Biestables R-S
� Elemento que almacena un bit
ARCOS Estructura de Computadores 22
Elementos de memoria
Biestables D
� Elemento que almacena un bit
ARCOS Estructura de Computadores 23
Q
Q
C
D Q
C
Elementos de memoria
Registro
� Elemento que almacena un conjunto de bits
ARCOS Estructura de Computadores 24
Esquema de un registro
Registro
Entrada
Carga
ARCOS Estructura de Computadores 25
Registro Carga
Salida
Memoria
••••••••
k = 2n
posiciones
Espacio de direcciones:Número de posiciones
ARCOS Estructura de Computadores 26
••••••••••••
posiciones
m bits
Número de posiciones
Tamaño de cada posición:Número de bits por posición
Componentes de un computador
ARCOS Estructura de Computadores 27
Procesador Memoriaprincipal
Módulo de E/S Módulo de E/S
Periférico Periférico
Bus de controlBus de datos
Bus de direcciones
Computador von Neumann
� Máquina capaz de ejecutar una serie de instrucciones elementales: instrucciones máquina� Instrucciones almacenadas en � Instrucciones almacenadas en
memoria � Leídas � Ejecutadas
ARCOS Estructura de Computadores 28
Arquitectura Von Neumann
Procesador Memoriaprincipal
Bus de controlBus de datos
ARCOS Estructura de Computadores 29
Módulo de E/S Módulo de E/S
Periférico Periférico
Bus de datos
Bus de direcciones
Memoria
Procesador Memoriaprincipal
Bus de control
Almacena:
� instrucciones
� datos
ARCOS Estructura de Computadores 30
Módulo de E/S Módulo de E/S
Periférico Periférico
Bus de controlBus de datos
Bus de direcciones
Memoria
Memoria
dirección Dato/instrucción
00001001110001101010111101011000
10101111010110000000100111000110
11000110101011110101100000001001
01011000000010011100011010101111
MAR MBR
ARCOS Estructura de Computadores 31
Memoria
L E
MAR MBR
Registro de direcciones de memoria Registro de datos de memoria
Procesador
Procesador
Memoriaprincipal
Registros
Unidad decontrol
ALU
Estructura que almacena un conjunto de bits
Realiza las operaciones
Ejecuta las instrucciones
ARCOS Estructura de Computadores 32
Módulo de E/S Módulo de E/S
Periférico Periférico
Bus de controlBus de datos
Bus de direcciones
Registros especiales
Procesador
Memoriaprincipal
Registros
Unidad decontrol
ALU
PC: contador de programa
RI: registro de instrucción
ARCOS Estructura de Computadores 33
Módulo de E/S Módulo de E/S
Periférico Periférico
Bus de controlBus de datos
Bus de direcciones
Unidad aritmético-lógica
� Realiza operaciones elementales sobre los datos:� Operaciones aritméticas� Operaciones lógicas
ARCOS Estructura de Computadores 34
Programa
� Secuencia consecutiva de instrucciones máquina
00001001110001101010111101011000
10101111010110000000100111000110
11000110101011110101100000001001
01011000000010011100011010101111
ARCOS Estructura de Computadores 35
Programa
� Secuencia consecutiva de instrucciones máquina
00001001110001101010111101011000
10101111010110000000100111000110
11000110101011110101100000001001
01011000000010011100011010101111
temp = v[k];
v[k] = v[k+1];
v[k+1] = temp;
ARCOS Estructura de Computadores 36
Ejecución de un programa
Disco
Memoria principal
ARCOS Estructura de Computadores 37
Fichero ejecutable
00001001110001101010111101011000
10101111010110000000100111000110
11000110101011110101100000001001
01011000000010011100011010101111
Procesador
PCRI
Ejecución de un programa
00001001110001101010111101011000
10101111010110000000100111000110
11000110101011110101100000001001
01011000000010011100011010101111
Disco
Memoria principal
ARCOS Estructura de Computadores 38
Fichero ejecutable
00001001110001101010111101011000
10101111010110000000100111000110
11000110101011110101100000001001
01011000000010011100011010101111
Procesador
PCRI
Ejecución de un programa
00001001110001101010111101011000
10101111010110000000100111000110
11000110101011110101100000001001
01011000000010011100011010101111
Disco
Memoria principal
ARCOS Estructura de Computadores 39
Fichero ejecutable
00001001110001101010111101011000
10101111010110000000100111000110
11000110101011110101100000001001
01011000000010011100011010101111
Procesador
PCRI
Ejecución de un programa
00001001110001101010111101011000
10101111010110000000100111000110
11000110101011110101100000001001
01011000000010011100011010101111
Disco
Memoria principal
ARCOS Estructura de Computadores 40
Fichero ejecutable
00001001110001101010111101011000
10101111010110000000100111000110
11000110101011110101100000001001
01011000000010011100011010101111
Procesador
PCRI 00001001110
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
ARCOS Estructura de Computadores 41
� ¿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?
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
ARCOS Estructura de Computadores 42
� ¿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)
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 00000001001posició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 CDse salta a ejecutar la instrucción almacenada en 000001001
ARCOS Estructura de Computadores 43
Siendo A,B, C, D, E, F = 0 o 1
Formato de una instrucción máquina
001 AB 00000000101
ARCOS Estructura de Computadores 44
Formato de una instrucción máquina
001 AB 00000000101
ARCOS Estructura de Computadores 45
Códigode operación
Formato de una instrucción máquina
001 AB 00000000101
ARCOS Estructura de Computadores 46
Códigode operación
OperandosRegistros
Direcciones de memoria
Números
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 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 00se salta a ejecutar la instrucción almacenada en 000001001
ARCOS Estructura de Computadores 47
Ejemplos
� Instrucción que almacena un 5 en el registro 00
� Instrucción que almacena un 7 en el registro 01� 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
Ejemplos
� Instrucción que almacena un 5 en el registro 00
� Instrucción que almacena un 7 en el registro 01
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
� 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
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 � 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
Ejemplo de programa
000100
000101
000110
000111
0010000000000000
0010100000000100
0011000000000001
0011100000000000
Dirección Contenido
ARCOS Estructura de Computadores 51
000111
001000
001001
001010
001011
001100
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Inicio de la ejecución del programa
PC
RI
0001
000100
?
?
000100
000101
000110
000111
0010000000000000
0010100000000100
0011000000000001
0011100000000000
Dirección Contenido
?
ARCOS Estructura de Computadores 52
011011
?
?
?
000111
001000
001001
001010
001011
001100
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
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
MAR MBR
RI
000100
ARCOS Estructura de Computadores 53
� RI MBR
� Decodificación de la instrucción
� Ejecución de la instrucción� Volver a fetch
000100 0010000000000000
Dirección Contenido
Memoria
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
MAR MBR
RI
000100
000100
ARCOS Estructura de Computadores 54
� RI MBR
� Decodificación de la instrucción
� Ejecución de la instrucción� Volver a fetch
000100 0010000000000000
Dirección Contenido
Memoria
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
MAR MBR
RI
000100
000100
ARCOS Estructura de Computadores 55
� RI MBR
� Decodificación de la instrucción
� Ejecución de la instrucción� Volver a fetch
000100 0010000000000000
Dirección Contenido
Memoria
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
MAR MBR
RI
000100
000100 0010000000000000
ARCOS Estructura de Computadores 56
� RI MBR
� Decodificación de la instrucción
� Ejecución de la instrucción� Volver a fetch
000100 0010000000000000
Dirección Contenido
Memoria
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
MAR MBR
RI
000101
000100 0010000000000000
ARCOS Estructura de Computadores 57
� RI MBR
� Decodificación de la instrucción
� Ejecución de la instrucción� Volver a fetch
000100 0010000000000000
Dirección Contenido
Memoria
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
MAR MBR
RI
000101
000100 0010000000000000
0010000000000000
ARCOS Estructura de Computadores 58
� RI MBR
� Decodificación de la instrucción
� Ejecución de la instrucción� Volver a fetch
000100 0010000000000000
Dirección Contenido
Memoria
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
MAR MBR
RI
000101
000100 0010000000000000
0010000000000000
ARCOS Estructura de Computadores 59
� RI MBR
� Decodificación de la instrucción
� Ejecución de la instrucción� Volver a fetch
000100 0010000000000000
Dirección Contenido
Memoria
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
MAR MBR
RI
000101
000100 0010000000000000
0010000000000000
ARCOS Estructura de Computadores 60
� RI MBR
� Decodificación de la instrucción
� Ejecución de la instrucción� Volver a fetch
000100 0010000000000000
Dirección Contenido
Memoria
Ejecución de instrucciones
0010000000000000 RI
R0 0000000000
ARCOS Estructura de Computadores 61
Se carga en R0 el valor 0
Ejecución de instrucciones
0100100000001001 RI
R1 MP[00000001001]
ARCOS Estructura de Computadores 62
00000001001 0000000000000101
Dirección Contenido
Se carga en R1 el contenido de la posición de memoria00000001001
Ejecución de instrucciones
1000000000001000 RI
PC 0000000001000
ARCOS Estructura de Computadores 63
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
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
MAR MBR
RI
000101
000100 0010000000000000
0010000000000000
ARCOS Estructura de Computadores 64
� RI MBR
� Decodificación de la instrucción
� Ejecución de la instrucción� Volver a fetch
000100 0010000000000000
Dirección Contenido
Memoria
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
MAR MBR
RI
000101
000100 0010000000000000
0010000000000000
ARCOS Estructura de Computadores 65
� RI MBR
� Decodificación de la instrucción
� Ejecución de la instrucción� Volver a fetch
000100 0010000000000000
Dirección Contenido
Memoria
Ejecución del programa
PC
RI
0001
000100
?
?
000100
000101
000110
000111
0010000000000000
0010100000000100
0011000000000001
0011100000000000
Dirección Contenido
?
ARCOS Estructura de Computadores 66
011011
?
?
?
000111
001000
001001
001010
001011
001100
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Fetch
Ejecución del programa
PC
RI
0001
000100
?
?
000100
000101
000110
000111
0010000000000000
0010100000000100
0011000000000001
0011100000000000
Dirección Contenido
0010000000000000
ARCOS Estructura de Computadores 67
011011
?
?
?
000111
001000
001001
001010
001011
001100
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Fetch
Lectura de la Inst.
Ejecución del programa
PC
RI
0001
000101
?
?
000100
000101
000110
000111
0010000000000000
0010100000000100
0011000000000001
0011100000000000
Dirección Contenido
0010000000000000
ARCOS Estructura de Computadores 68
011011
?
?
?
000111
001000
001001
001010
001011
001100
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Fetch
PC PC + 1
Ejecución del programa
PC
RI
0001
000101
?
?
000100
000101
000110
000111
0010000000000000
0010100000000100
0011000000000001
0011100000000000
Dirección Contenido
0010000000000000
ARCOS Estructura de Computadores 69
011011
?
?
?
000111
001000
001001
001010
001011
001100
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Decodificación
Ejecución del programa
PC
RI
0001
000101
?
000100
000101
000110
000111
0010000000000000
0010100000000100
0011000000000001
0011100000000000
Dirección Contenido
0010000000000000
00000000000
ARCOS Estructura de Computadores 70
011011
?
?
?
000111
001000
001001
001010
001011
001100
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Ejecución
R0 00000000000
Ejecución del programa
PC
RI
0001
000101
?
000100
000101
000110
000111
0010000000000000
0010100000000100
0011000000000001
0011100000000000
Dirección Contenido
0010000000000000
00000000000
ARCOS Estructura de Computadores 71
011011
?
?
?
000111
001000
001001
001010
001011
001100
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Fetch
Ejecución del programa
PC
RI
0001
000101
?
000100
000101
000110
000111
0010000000000000
0010100000000100
0011000000000001
0011100000000000
Dirección Contenido
0010100000000100
00000000000
ARCOS Estructura de Computadores 72
011011
?
?
?
000111
001000
001001
001010
001011
001100
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Fetch
Lectura de la Inst.
Ejecución del programa
PC
RI
0001
000110
?
000100
000101
000110
000111
0010000000000000
0010100000000100
0011000000000001
0011100000000000
Dirección Contenido
0010100000000100
00000000000
ARCOS Estructura de Computadores 73
011011
?
?
?
000111
001000
001001
001010
001011
001100
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Fetch
PC PC +1
Ejecución del programa
PC
RI
0001
000110
?
000100
000101
000110
000111
0010000000000000
0010100000000100
0011000000000001
0011100000000000
Dirección Contenido
0010100000000100
00000000000
ARCOS Estructura de Computadores 74
011011
?
?
?
000111
001000
001001
001010
001011
001100
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Decodificación
Ejecución del programa
PC
RI
0001
000110
00000000100
000100
000101
000110
000111
0010000000000000
0010100000000100
0011000000000001
0011100000000000
Dirección Contenido
0010100000000100
00000000000
ARCOS Estructura de Computadores 75
011011
00000000100
?
?
000111
001000
001001
001010
001011
001100
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Ejecución
R1 00000000100
Ejecución del programa
PC
RI
0001
000110
00000000100
000100
000101
000110
000111
0010000000000000
0010100000000100
0011000000000001
0011100000000000
Dirección Contenido
0010100000000100
00000000000
ARCOS Estructura de Computadores 76
011011
00000000100
?
?
000111
001000
001001
001010
001011
001100
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Fetch
Ejecución del programa
PC
RI
0001
000110
00000000100
000100
000101
000110
000111
0010000000000000
0010100000000100
0011000000000001
0011100000000000
Dirección Contenido
0011000000000001
00000000000
ARCOS Estructura de Computadores 77
011011
00000000100
?
?
000111
001000
001001
001010
001011
001100
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Fetch
Lectura de la Inst.
Ejecución del programa
PC
RI
0001
000111
00000000100
000100
000101
000110
000111
0010000000000000
0010100000000100
0011000000000001
0011100000000000
Dirección Contenido
0011000000000001
00000000000
ARCOS Estructura de Computadores 78
011011
00000000100
?
?
000111
001000
001001
001010
001011
001100
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Fetch
PC PC +1
Ejecución del programa
PC
RI
0001
000111
00000000100
000100
000101
000110
000111
0010000000000000
0010100000000100
0011000000000001
0011100000000000
Dirección Contenido
0011000000000001
00000000000
ARCOS Estructura de Computadores 79
011011
00000000100
?
?
000111
001000
001001
001010
001011
001100
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Decodificación
Ejecución del programa
PC
RI
0001
000111
00000000100
000100
000101
000110
000111
0010000000000000
0010100000000100
0011000000000001
0011100000000000
Dirección Contenido
0011000000000001
00000000000
ARCOS Estructura de Computadores 80
011011
00000000100
00000000001
?
000111
001000
001001
001010
001011
001100
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Ejecución
R2 00000000001
Ejecución del programa
PC
RI
0001
000111
00000000100
000100
000101
000110
000111
0010000000000000
0010100000000100
0011000000000001
0011100000000000
Dirección Contenido
0011000000000001
00000000000
ARCOS Estructura de Computadores 81
011011
00000000100
00000000001
?
000111
001000
001001
001010
001011
001100
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Fetch
Ejecución del programa
PC
RI
0001
000111
00000000100
000100
000101
000110
000111
0010000000000000
0010100000000100
0011000000000001
0011100000000000
Dirección Contenido
0011100000000000
00000000000
ARCOS Estructura de Computadores 82
011011
00000000100
00000000001
?
000111
001000
001001
001010
001011
001100
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Fetch
Lectura de la Inst.
Ejecución del programa
PC
RI
0001
001000
00000000100
000100
000101
000110
000111
0010000000000000
0010100000000100
0011000000000001
0011100000000000
Dirección Contenido
0011100000000000
00000000000
ARCOS Estructura de Computadores 83
011011
00000000100
00000000001
?
000111
001000
001001
001010
001011
001100
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Fetch
PC PC +1
Ejecución del programa
PC
RI
0001
001000
00000000100
000100
000101
000110
000111
0010000000000000
0010100000000100
0011000000000001
0011100000000000
Dirección Contenido
0011100000000000
00000000000
ARCOS Estructura de Computadores 84
011011
00000000100
00000000001
?
000111
001000
001001
001010
001011
001100
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Decodificación
Ejecución del programa
PC
RI
0001
001000
00000000100
000100
000101
000110
000111
0010000000000000
0010100000000100
0011000000000001
0011100000000000
Dirección Contenido
0011100000000000
00000000000
ARCOS Estructura de Computadores 85
011011
00000000100
00000000001
00000000000
000111
001000
001001
001010
001011
001100
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Ejecución
R3 00000000000
Ejecución del programa
PC
RI
0001
001000
00000000100
000100
000101
000110
000111
0010000000000000
0010100000000100
0011000000000001
0011100000000000
Dirección Contenido
0011100000000000
00000000000
ARCOS Estructura de Computadores 86
011011
00000000100
00000000001
00000000000
000111
001000
001001
001010
001011
001100
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Fetch
Ejecución del programa
PC
RI
0001
001000
00000000100
000100
000101
000110
000111
0010000000000000
0010100000000100
0011000000000001
0011100000000000
Dirección Contenido
00000000000
1010001000001100
ARCOS Estructura de Computadores 87
011011
00000000100
00000000001
00000000000
000111
001000
001001
001010
001011
001100
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Fetch
Lectura de la Inst.
Ejecución del programa
PC
RI
0001
001001
00000000100
000100
000101
000110
000111
0010000000000000
0010100000000100
0011000000000001
0011100000000000
Dirección Contenido
00000000000
1010001000001100
ARCOS Estructura de Computadores 88
011011
00000000100
00000000001
00000000000
000111
001000
001001
001010
001011
001100
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Fetch
PC PC +1
Ejecución del programa
PC
RI
0001
001001
00000000100
000100
000101
000110
000111
0010000000000000
0010100000000100
0011000000000001
0011100000000000
Dirección Contenido
00000000000
1010001000001100
ARCOS Estructura de Computadores 89
011011
00000000100
00000000001
00000000000
000111
001000
001001
001010
001011
001100
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Decodificación
Ejecución del programa
PC
RI
0001
001001
00000000100
000100
000101
000110
000111
0010000000000000
0010100000000100
0011000000000001
0011100000000000
Dirección Contenido
00000000000
1010001000001100
ARCOS Estructura de Computadores 90
011011
00000000100
00000000001
00000000000
000111
001000
001001
001010
001011
001100
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
EjecuciónSi el contenido del registro 01 es igual
al del registro 00 se salta a ejecutar la
instrucción almacenada en 000001100
Ejecución del programa
PC
RI
0001
001001
00000000100
000100
000101
000110
000111
0010000000000000
0010100000000100
0011000000000001
0011100000000000
Dirección Contenido
00000000000
1010001000001100
ARCOS Estructura de Computadores 91
011011
00000000100
00000000001
00000000000
000111
001000
001001
001010
001011
001100
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Fetch
Ejecución del programa
PC
RI
0001
001001
00000000100
000100
000101
000110
000111
0010000000000000
0010100000000100
0011000000000001
0011100000000000
Dirección Contenido
00000000000
0001111100000000
ARCOS Estructura de Computadores 92
011011
00000000100
00000000001
00000000000
000111
001000
001001
001010
001011
001100
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Fetch
Lectura de la Inst.
Ejecución del programa
PC
RI
0001
001010
00000000100
000100
000101
000110
000111
0010000000000000
0010100000000100
0011000000000001
0011100000000000
Dirección Contenido
00000000000
0001111100000000
ARCOS Estructura de Computadores 93
011011
00000000100
00000000001
00000000000
000111
001000
001001
001010
001011
001100
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Fetch
PC PC + 1
Ejecución del programa
PC
RI
0001
001010
00000000100
000100
000101
000110
000111
0010000000000000
0010100000000100
0011000000000001
0011100000000000
Dirección Contenido
00000000000
0001111100000000
ARCOS Estructura de Computadores 94
011011
00000000100
00000000001
00000000000
000111
001000
001001
001010
001011
001100
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Decodificación
Ejecución del programa
PC
RI
0001
001010
00000000100
000100
000101
000110
000111
0010000000000000
0010100000000100
0011000000000001
0011100000000000
Dirección Contenido
00000000000
0001111100000000
ARCOS Estructura de Computadores 95
011011
00000000100
00000000001
00000000001
000111
001000
001001
001010
001011
001100
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Ejecución
R3 R3 + R2
Ejecución del programa
PC
RI
0001
001010
00000000100
000100
000101
000110
000111
0010000000000000
0010100000000100
0011000000000001
0011100000000000
Dirección Contenido
00000000000
0001111100000000
ARCOS Estructura de Computadores 96
011011
00000000100
00000000001
00000000001
000111
001000
001001
001010
001011
001100
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Fetch
Ejecución del programa
PC
RI
0001
001010
00000000100
000100
000101
000110
000111
0010000000000000
0010100000000100
0011000000000001
0011100000000000
Dirección Contenido
00000000000
0000000100000000
ARCOS Estructura de Computadores 97
011011
00000000100
00000000001
00000000001
000111
001000
001001
001010
001011
001100
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Fetch
Lectura de la Inst.
Ejecución del programa
PC
RI
0001
001011
00000000100
000100
000101
000110
000111
0010000000000000
0010100000000100
0011000000000001
0011100000000000
Dirección Contenido
00000000000
0000000100000000
ARCOS Estructura de Computadores 98
011011
00000000100
00000000001
00000000001
000111
001000
001001
001010
001011
001100
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Fetch
PC PC +1
Ejecución del programa
PC
RI
0001
001011
00000000100
000100
000101
000110
000111
0010000000000000
0010100000000100
0011000000000001
0011100000000000
Dirección Contenido
00000000000
0000000100000000
ARCOS Estructura de Computadores 99
011011
00000000100
00000000001
00000000001
000111
001000
001001
001010
001011
001100
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Decodificación
Ejecución del programa
PC
RI
0001
001011
00000000100
000100
000101
000110
000111
0010000000000000
0010100000000100
0011000000000001
0011100000000000
Dirección Contenido
00000000001
0000000100000000
ARCOS Estructura de Computadores 100
011011
00000000100
00000000001
00000000001
000111
001000
001001
001010
001011
001100
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Ejecución
R0 R0 + R2
Ejecución del programa
PC
RI
0001
001011
00000000100
000100
000101
000110
000111
0010000000000000
0010100000000100
0011000000000001
0011100000000000
Dirección Contenido
00000000001
0000000100000000
ARCOS Estructura de Computadores 101
011011
00000000100
00000000001
00000000001
000111
001000
001001
001010
001011
001100
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Fetch
Ejecución del programa
PC
RI
0001
001011
00000000100
000100
000101
000110
000111
0010000000000000
0010100000000100
0011000000000001
0011100000000000
Dirección Contenido
00000000001
1000000000001000
ARCOS Estructura de Computadores 102
011011
00000000100
00000000001
00000000001
000111
001000
001001
001010
001011
001100
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Fetch
Lectura de la Inst.
Ejecución del programa
PC
RI
0001
001100
00000000100
000100
000101
000110
000111
0010000000000000
0010100000000100
0011000000000001
0011100000000000
Dirección Contenido
00000000001
1000000000001000
ARCOS Estructura de Computadores 103
011011
00000000100
00000000001
00000000001
000111
001000
001001
001010
001011
001100
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Fetch
PC PC +1
Ejecución del programa
PC
RI
0001
001100
00000000100
000100
000101
000110
000111
0010000000000000
0010100000000100
0011000000000001
0011100000000000
Dirección Contenido
00000000001
1000000000001000
ARCOS Estructura de Computadores 104
011011
00000000100
00000000001
00000000001
000111
001000
001001
001010
001011
001100
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Decodificación
Ejecución del programa
PC
RI
0001
001100
00000000100
000100
000101
000110
000111
0010000000000000
0010100000000100
0011000000000001
0011100000000000
Dirección Contenido
00000000001
1000000000001000
ARCOS Estructura de Computadores 105
011011
00000000100
00000000001
00000000001
000111
001000
001001
001010
001011
001100
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
EjecuciónSe salta a ejecutar la instrucción
almacenada en la posición de memoria 0000000001000
Ejecución del programa
PC
RI
0001
0001000
00000000100
000100
000101
000110
000111
0010000000000000
0010100000000100
0011000000000001
0011100000000000
Dirección Contenido
00000000001
1000000000001000
ARCOS Estructura de Computadores 106
011011
00000000100
00000000001
00000000001
000111
001000
001001
001010
001011
001100
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
EjecuciónPC 0000000001000
Ejecución del programa
PC
RI
0001
0001000 000100
000101
000110
000111
0010000000000000
0010100000000100
0011000000000001
0011100000000000
Dirección Contenido
1000000000001000
00000000001
00000000100
ARCOS Estructura de Computadores 107
011011
000111
001000
001001
001010
001011
001100
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Continúa la ejecución
00000000100
00000000001
00000000001
Algoritmo del programa anterior
i=0;s = 0;while (i < 4){s = s + 1;i = i + 1;
ARCOS Estructura de Computadores 108
i = i + 1;}
El programa almacena en la posición de memoria 00000100000
el valor: 1 + 1 + 1 + 1
Lenguaje ensamblador
li R0, 0li R1, 4li R2, 1li R3, 0
bucle: beq R0, R1, fin
ARCOS Estructura de Computadores 109
bucle: beq R0, R1, finadd R3, R3, R2add R0, R0, R2b bucle
fin: sw R3, 100000
Secuencia de ejecución de instrucciones
Ejecución de
ARCOS Estructura de Computadores 110
Lectura de la instrucción
Arranque
Parada
DecodificaciónEjecución dela instrucción
Ley de Moore
ARCOS Estructura de Computadores 111
Ley de Moore
� Doblar la densidad implica reducir lasdimensiones de sus elementos en un 30%
� En 1971 el Intel 4004 tenía 2300 transistorescon tamaños de 10 micrometros
� Hoy en día se consiguen chips con
ARCOS Estructura de Computadores 112
� Hoy en día se consiguen chips condistancias de 45 nanometros
� Para cumplir la ley de Moore se necesita tecnología cuyo precio se dobla cada 4.4 años
Proceso de fabricación
ARCOS Estructura de Computadores 113
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); � 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
Parámetros característicos de un
computador
� Ancho de palabra� Memoria principal o Memoria RAM� Memoria auxiliar� Ancho de banda� Ancho de banda� MIPS� MFLOPS
ARCOS Estructura de Computadores 115
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
ARCOS Estructura de Computadores 116
Exa E 2 = 1,152,921,504,606,846,976 10 = 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
Ejercicio
� ¿Cuántos bytes almacena un disco duro de 250 GB ?
ARCOS Estructura de Computadores 117
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
ARCOS Estructura de Computadores 118
� 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.
Exa E 2 = 1,152,921,504,606,846,976 10 = 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
Evolución histórica
� http://history.sandiego.edu/GEN/recording/computer1.html� http://www.computerhope.com/history/� http://www.computerhistory.org/� http://www.computersciencelab.com/ComputerHistory/History
.htm
ARCOS Estructura de Computadores 119
.htm� Museos de informática� Buscar en google: “Computer history”