Estrucutura de computadoras

Preview:

DESCRIPTION

Computadoras

Citation preview

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”