52
ARQUITECTURA DE COMPUTADORAS ITCR SSC – I Semestre 2012 1

Arquitectura de Computadoras

Embed Size (px)

DESCRIPTION

Arquitectura de Computadoras. ITCR SSC – I Semestre 2012. Redes. Sistemas Operativos. Sistemas Información. Soporte Técnico. Hardware. ¿Para qué estudiamos la Arquitectura de las computadoras?. Usuario. - PowerPoint PPT Presentation

Citation preview

ARQUITECTURA DE COMPUTADORAS

ITCR SSC – I Semestre 2012

1

¿Para qué estudiamos la Arquitectura de las computadoras?

2

Hardware

Sistemas Operativos

Sistemas Información

Soporte Técnico

Redes

Usuario

Comprender los retos que enfrenta esta área es de primordial importancia para cualquiera que pretenda dedicarse profesionalmente a la ciencia de la computación o carreras afines.

Para comprender los problemas fundamentales en el diseño de computadoras, las alternativas y los mecanismos de solución a dichos problemas.

¿Cuáles son los conocimientos que el estudiante debe tener al llegar al curso?

Dominio básico del lenguaje ensamblador y de la arquitectura del procesador 8086 de Intel.

3

Dominio de los sistemas numéricos binario, octal, hexadecimal y decimal.

• Conversiones.• Interpretación de números en cualquiera de

estas bases.

Dominio básico de algebra booleana:• Operaciones AND, OR, XOR, NOT.• Simplificación algebraica: teoremas de

asociatividad, conmutatividad, distribución, DeMorgan.

1

2

3

¿Qué vamos a aprender en el curso?

Pipelining Procesadores de Alto Rendimiento ¿Benchmarking?

4

¿Circuitos Digitales? Ensamblaje y Desensamblaje de Instrucciones Ensamblador ¿Utilización de Ensamblador con Lenguajes de

Alto Nivel?

Conceptos sobre Arquitecturas CISC y RISC Diseño de la Jerarquía de Memorias Aplicaciones del lenguaje ensamblador

Organización vs. Arquitectura de Computadoras

• Arquitectura • Se refiere a los atributos de un sistema que son visibles

a un programador • Aquellos atributos que tienen un impacto directo en la

ejecución lógica de un programa• La computadora vista desde el programador• ¿Qué instrucciones y datos es capaz de procesar? ¿A

qué velocidad?

5

Organización vs. Arquitectura de Computadoras

• Organización• Se refiere a las unidades funcionales y sus interconexiones, que

dan lugar a especificaciones arquitectónicas.

• Como por ejemplo el conjunto de instrucciones, el número de bits usados para representar varios tipos de datos, mecanismos de E/S y técnicas para direccionamiento de memoria.

• Es transparente a el programador, este no se preocupa por estos temas, señales del bus de control, interfaces entre periféricos y computador, tecnología usada en memoria, cantidad de caches, otros

6

Organización vs. Arquitectura de Computadoras

• Organización• En general los fabricantes de máquinas producen familias de pc

con una misma arquitectura y a medida que pasa el tiempo salen nuevos modelos con la misma arquitectura, pero con una organización diferente, con lo cual logran una compatibilidad de software.

• ¿Cómo está organizada por dentro para procesar esos datos según esas instrucciones?

7

Arquitectura de Computadoras

8

Niveles de Representación

9

Los Componentes de una PC

10

Ley de Moore

11

El número de transistores se doblara cada 18 meses(Gordon Moore, cofundador de Intel)

Lo que ve un Programador

12

Modelo de Programación con mas detalle

13

Lo que ve un Arquitecto de computadores• Modelo de Von Neumann

14

Lo que ve un Arquitecto de computadores• La gran mayoría de las computadores actuales se han

diseñado basándose en los conceptos desarrollados por John von Neumann en el Instituto de Estudios Avanzados de Princeton:

15

Se basa en 3 componentes

Los datos y las instrucciones se almacenan en una sola memoria de lectura y escritura

Los contenidos de esta memoria se direccionan indicando su posición, sin considerar el tipo de dato contenido en la misma.

La ejecución se produce siguiendo una secuencia de instrucción tras instrucción ( a no ser que dicha secuencia se modifique explícitamente).

Componentes del computador – Hardware Específico

16

En este diagrama se ejemplifica como el computador realizaba una tarea fija con los datos, el sistema acepta datos y produce resultados

Componentes del computador - Hardware de uso general

17

En este diagrama vemos ejemplificado que por medio de instrucciones al procesador, se podía hacer que el computador sea de uso general y realizar distintas tareas. El sistema acepta datos y señales de control y produce resultados

Componentes del computador - Hardware de uso general

18

Como se puede apreciar, la memoria y los datos provienen de la misma memoria. La idea es la siguiente, se leía una instrucción, esta pasaba a la unidad de control, dicha unidad realizaba las conexiones correspondientes para que la ALU realizara una tarea determinada, entraban los datos a la ALU, esta realizaba las operaciones, y el resultado salía por algún dispositivo de E/S

Componentes del computador - Hardware de uso general

19

CPU

Interprete de instrucciones

Funciones lógicas y aritméticas de

uso general

Componentes del computador - Hardware de uso general

20

Interprete de instrucciones y módulo de uso general para las funciones aritmético y lógicas

Componentes del computador - Hardware de uso general

21

Además se requieren varios elementos adicionales para que el computador funcione.Ya que los datos y las instrucciones deben introducirse en el sistema, para eso se necesita algún tipo de modulo de entrada y también se necesita un medio para proporcionar resultados el modulo de salida.

E/S Modulo

Componentes del computador - Hardware de uso general

22

Se necesita un componente más, como sabemos un programa no siempre ejecuta las instrucciones según una misma secuencia, puede saltarse ciertas instrucciones. Por ello debe existir un sitio para almacenar temporalmente tanto las instrucciones como los datos.

MEMORIA PRINCIPAL

Componentes del computador - Hardware de uso general

23

Como interactúan todos los componentes

CPUSe encarga del

control

Intercambia datos con la memoria

Componentes del computador - Hardware de uso general

24

Para esto usualmente utilizan dos registros internos de la CPU

Registro temporal de memoria (buffer)

contiene el valor a almacenar o la palabra recibida de memoria.

Registro de dirección de MemoriaEspecifica la dirección de

memoria que será accedida.

CPU

Como interactúan todos los componentes

Componentes del computador - Hardware de uso general

25

Como interactúan todos los componentes

Igualmente un registro de direcciones de E/S especifica un dispositivo de entrada y salida

Registro de dirección E/S

Especifica un dispositivo de E/S

Registro de datos E/SSe utiliza para

intercambiar datos entre el módulo de E/S y la CPU

CPU

Componentes del computador - Hardware de uso general

26

Como interactúan todos los componentes

Un módulo de E/S transfiere datos desde los dispositivos externos a la CPU y a la memoria. Contiene los registros (buffers) internos para almacenar los datos temporalmente, hasta que puedan enviarse

Funcionamiento del computador

27

La función básica que realiza un computador es la ejecución de un programa, constituidos por un conjunto de instrucciones almacenados en memoria.

El procesador es el que se encarga de ejecutar las instrucciones especificadas en el programa.

Funcionamiento del computadorCiclos de búsqueda y ejecución

28

EJECUCIÓN DE UN PROGRAMA CONSTA DE DOS CICLOS

CICLOS DE BÚSQUEDAEl procesador lee la

instrucción de la memoria

CICLOS DE EJECUCIÓN

El procesador ejecuta la instrucción

La ejecución de un programa consiste en la repetición del proceso de búsqueda y ejecución de instrucción

Funcionamiento del computadorCiclos de búsqueda y ejecución

29

Búsqueda (también conocida como captación) Preparación de la siguiente instrucción Decodificación Ejecución

La ejecución del programa se detiene solo si la maquina se desconecta, se produce algún tipo de error irrecuperable o ejecuta una instrucción del programa que detiene al computador

Funcionamiento del computadorCiclos de búsqueda y ejecución

30

Como se dijo anteriormente la CPU interpreta la instrucción y lleva a cabo la acción requerida. En general, esta puede ser de 4 tipos:

1. Procesador – Memoria : Transferencia de datos desde o hacia memoria.

2. Procesador – E/S: Transferencia de datos desde o hacia el exterior a través de un modulo de E/S.

3. Procesamiento de Datos: Alguna operación aritmética o lógica con los datos.

4. Control: Una instrucción puede especificar que la secuencia de ejecución se altere

• Por ejemplo una instrucción de salto, que lo único que requiere es que se cambie el valor del registro PC

Las instrucciones requieren una combinación de algunas.

Funcionamiento del computadorCiclos de búsqueda y ejecución

31

Al comienzo de cada ciclo de instrucción la CPUcapta la instrucción de memoria

Se utiliza PC para seguir la pista de la instrucción que debe captarse a continuación. A no ser que se indique lo contrarioLa CPU siempre incrementa 1 a PC después de cada instrucción , de forma que captará la siguiente instrucción de secuencia

Funcionamiento del computadorCiclo de Instrucción

32

1. Recuperar la siguienteinstrucción desdememoria (apuntada por el program counter) y luego incrementar el program counter.

3. Ejecutar la instrucciónindicada en el registro deinstrucción IR

2. Decodificar el patrón de bits en el registro deinstrucción IR

Funcionamiento del computadorCiclo de ejecución

33

1. UC obtiene la próxima instrucción de memoria (usando el registro PC)

2. Se incrementa el PC3. La instrucción es decodificada a un lenguaje que

entiende la ALU4. Obtiene de memoria los operandos requeridos por la

operación5. La ALU ejecuta y deja los resultados en registros o en

memoria6. Repetir paso 1

Funcionamiento del computadorCiclo de ejecución

34

La unidad de control levanta la próxima instrucción de memoria usando el “contador de programa” que dice en que dirección esta la próxima instrucción.

Funcionamiento del computadorCiclo de ejecución

35

La instrucción es decodificada a un lenguaje que entiende la ALU (unidad aritmética lógica).

Funcionamiento del computadorCiclo de ejecución

36

Cada operando requerido para ejecutar es levantado de la memoria principal y ubicado en registros dentro de la CPU.

Funcionamiento del computadorCiclo de ejecución

37

La ALU ejecuta la instrucción y coloca los resultados en registros o en memoria.

Funcionamiento del computadorCiclo de ejecución

38

Procesador-memoriaTransferencia de datos entre la CPU y la memoriaProcesador-E/STransferencia de datos entre la CPU y un modulo de E/SProcesamiento de datosAlguna operación aritmética o lógica sobre los datosControl

Alteración de la secuencia de operaciones Ej.: jump

¿CUALES ERAN LOS TIPOS DE OPERACIONES?

Funcionamiento del computadorCiclos de búsqueda y ejecución

39

OPERACIONES ELEMENTALES SOBRE LA MEMORIA

LEER EL CONTENIDO DE LA MEMORIA1. Decidir que celda se va leer (dar la dirección).2. Esperar a que se complete la operación de copia del dato.3. Recoger el dato y dar por terminada la operación.

ESCRITURA4. Proporcionar el dato que se desea guardar.5. Proporcionar la dirección de la celda en donde sería guardado el

dato.6. Esperar un tiempo fijo para que se haga el almacenamiento.

Funcionamiento del computadorCiclos de búsqueda y ejecución

40

• Un problema radica en cómo almacenar las instrucciones en la memoria.

• Como en las celdas de memoria sólo caben números, entonces había que traducir las instrucciones a números para poder almacenarlas, que es el concepto de codificación.

• Para codificar las instrucciones se debe considerar cuantas y cuales son las instrucciones disponibles y que esquema de codificación se emplearía.

• La cantidad depende básicamente de la capacidad de la unidad de control del procesador central para hacer operaciones; a mayor complejidad –y costo–, mayor sería el número de instrucciones diferentes que podría efectuar. Se debe encontrar un código adecuado para que a cada instrucción le corresponda uno, y sólo un, valor numérico. Se usa una especie de diccionario electrónico.

NECESIDAD DE LA CODIFICACIÓN

Funcionamiento del computadorCiclos de búsqueda y ejecución

41

Su función principal es dirigir la secuencia de pasos de modo que la computadora lleve a cabo un ciclo completo de ejecución de una instrucción, y hacer esto con todas las instrucciones de que conste el programa. Los pasos son:

1. Ir a la memoria y extraer el código de la siguiente instrucción (que estaría en la siguiente celda de memoria por leer).

2. Decodificar la instrucción recién leída (determinar de qué instrucción se trata.

3. Ejecutar la instrucción.4. Prepararse para leer la siguiente instrucción, y volver al primer paso

para continuar.La unidad de control ejecutaría varias veces este ciclo de cuatro ”instrucciones alambradas”.

LA UNIDAD DE CONTROL

Funcionamiento del computadorCiclos de búsqueda y ejecución

• CPU con un solo Acumulador (A), 16 bits

• Memoria de 16 bits por posición

• Suma (940) + (941) en (941)

• Lenguaje simbólico Binariomov A, (940) 1940 (H)

add A, (941) 5941 (H)

mov (941), A 2941 (H)

42

Funcionamiento del computadorCiclos de búsqueda y ejecución

43

Funcionamiento del computadorCiclos de búsqueda y ejecución

44

1 9 4 0

5 9 4 1

2 9 4 1

0 0 0 3

0 0 0 2

300

1 9 4 0

300

301

302

940

941

Registros del CPUMemoria

PC

AC

IR

Códigos de operación

hexadecimal binario

1 0001 Cargar AC desde memoria

2 0010 Almacenar AC en memoria

5 0101 Sumar a AC un dato de memoria1

Funcionamiento del computadorCiclos de búsqueda y ejecución

45

1 9 4 0

5 9 4 1

2 9 4 1

0 0 0 3

0 0 0 2

300

1 9 4 0

300

301

302

940

941

Registros del CPUMemoria

PC

AC

IR

Funcionamiento del computadorCiclos de búsqueda y ejecución

46

1 9 4 0

5 9 4 1

2 9 4 1

0 0 0 3

0 0 0 2

300

301

302

940

941

Memoria

Especifica la dirección del dato que se va a cargar

940 contiene el dato 0003

Funcionamiento del computadorCiclos de búsqueda y ejecución

47

1. La instrucción captada se almacena en un registro de la CPU conocido como Registro de instrucción IR

2. El contador del PC se ubica en la primera instrucción (300)

3. La instrucción que es un valor hexadecimal (1940) se carga en el registro de instrucción

1 9 4 0

5 9 4 1

2 9 4 1

0 0 0 3

0 0 0 2

300

1 9 4 0

300

301

302

940

941

Registros del CPUMemoria

PC

AC

IR

Funcionamiento del computadorCiclos de búsqueda y ejecución

48

1 9 4 0

5 9 4 1

2 9 4 1

0 0 0 3

0 0 0 2

300

0 0 0 3

1 9 4 0

300

301

302

940

941

Registros del CPUMemoria

PC

AC

IR

La CPU interpreta la instrucción y lleva a cabo la acción requerida

Funcionamiento del computadorCiclos de búsqueda y ejecución

49

1 9 4 0

5 9 4 1

2 9 4 1

0 0 0 3

0 0 0 2

301

0 0 0 3

5 9 4 1

300

301

302

940

941

Registros del CPUMemoria

PC

AC

IR

El registro PC se incrementa, y se capta la siguiente instrucción (5941) desde la dirección 301

Funcionamiento del computadorCiclos de búsqueda y ejecución

50

1 9 4 0

5 9 4 1

2 9 4 1

0 0 0 3

0 0 0 2

301

0 0 0 5

5 9 4 1

300

301

302

940

941

Registros del CPUMemoria

PC

AC

IR

3 + 2 = 5

El contenido de AC y el de la posición de memoria 941 se suman y el resultado se almacena en AC

Funcionamiento del computadorCiclos de búsqueda y ejecución

51

1 9 4 0

5 9 4 1

2 9 4 1

0 0 0 3

0 0 0 2

302

0 0 0 5

2 9 4 1

300

301

302

940

941

Registros del CPUMemoria

PC

AC

IR

El registro PC se incrementa, y se capta la siguiente instrucción (2941) desde la posición 302

Funcionamiento del computadorCiclos de búsqueda y ejecución

52

1 9 4 0

5 9 4 1

2 9 4 1

0 0 0 3

0 0 0 5

302

0 0 0 5

2 9 4 1

300

301

302

940

941

Registros del CPUMemoria

PC

AC

IR

El contenido de AC se almacena en la posición 941