arquitectura de computadoras itcr ssc – i semestre 2012 1
TRANSCRIPT
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