Aquitectura de Computadoras SEM1 Sem1
Short Description
Descripción: arquitectura de computadoras...
Description
CICLO 2016-I Módulo:II Unidad: I Semana: 1
ARQUITECTURA DE COMPUTADORAS
Ing. Chauca Castillo Eduardo
Tema 1: Introducción a Arquitectura de Computadores
Conceptos básicos y visión histórica
Programa de Teoría 1. 2. 3. 4. 5. 6. 7.
Introducción. Lenguaje Máquina. Lenguaje Ensamblador. Ruta de Datos y Unidad de Control. Unidad Aritmético-Lógica (ALU). Sistema de Entrada-Salida. Memoria.
Contenido • • • • •
¿Qué es un computador? Descripción funcional: Arquitectura de von Neumann Orígenes y evolución histórica. Parámetros característicos de un computador.
¿Qué es un computador?
Concepto de computador
Máquina de estados finitos: FSM
Arquitectura von Neumann
Ruta de datos
Unidad de Control
Memoria de programa y datos
FSM + Datapath
Arquitectura von Neumann
Ruta de datos
Unidad de control
Responsable de realizar cálculos Registros, unidades funcionales, unidades de interconexión Responsable de ordenar cálculos Secuenciador, registros, pilas...
Memoria de programa y datos
Estructura de un computador
Procesador
Unidad de Control
Salida Memoria
Ruta de datos Unidad AritméticoLógica
Entrada
Computador
Ruta de datos
Unidades funcionales
Realizan operaciones aritméticas y/o lógicas
ALUs, desplazadores, multiplicadores
Registros de la ruta de datos
Almacenan resultados temporales
Unidades de interconexión
Multiplexores y/o buses
Unidad de Control
Contador de programa
Registro de instrucción
Dirección de la instrucción en curso Se incrementa en cada ciclo Código de la instrucción en curso
Secuenciador
Genera señales para cada instrucción Actualiza el Contador de Programa
Secuenciador
Captación de la instrucción
Leer dirección del Contador de Programa Incrementar el Contador de Programa
Decodificación de la instrucción Ejecución de la instrucción
Captura de operandos Operación Escritura de resultados
Ejemplo de procesador
Necesidad de cómputo Antecedentes históricos
Ábaco
Máquina de Pascal (1642). Suma
Máquina de Leibniz (fin s. XVII). Multiplica y divide
Telar de Jacquard (med. XVIII) Tarjetas perforadas
El ábaco
La pascalina
La máquina de calcular de Leibniz
La era moderna Computadores mecánicos
Charles Babbage:
Máquina diferencial. Calcular tablas de artillería.
Máquina analítica. Programable, con E/S, memoria, unidad de cálculo Computadores eléctricos
Clasificadora de Höllerith (1886): Primer ordenador eléctrico
Charles Babbage
Máquina de diferencias
Charles Babbage
Ada Lovelace
Máquina analítica
Clasificadora de Höllerith
Computadores electromecánicos
Zuse (1941) primer computador de relés
Howard Aiken (IBM)
Mark I, II, III y IV (1943-52)
Electromecánicos: Mark I
Howard Aiken: “Si Babbage hubiera nacido en el
siglo XX nos habríamos quedado sin trabajo”
Computadores electrónicos 1ª generación: Válvula de vacío
ENIAC (1945-55), Eckert & Mauchly
John von Neumann: EDVAC (1945)
Bases de la arquitectura de computadores moderna
EDSAC (Wilkes,1949): programa almacenado y coma flotante UNIVAC I (1951): computador fabricado en serie
Electrónicos (válvulas): ENIAC
John Mauchly John P. Eckert
Computadores electrónicos 2ª generación: El transistor
1946: los laboratorios Bell inventan el transistor
Leprechaun, 1956: primer computador basado en transistores Burroughs B5000: primer ordenador de estructura de pila IBM Stretch, IBM 1410, PDP-1 (DEC), UNIVAC 1100
El transistor: 2ª generación
/
Shockley Bardain Brattain
Electrónica integrada 3ª generación: Circuito Integrado
J. Kilby inventa el circuito integrado en 1958
Inicialmente, es un chip con algunos transistores (SSI)
A finales de los 60, ya son cientos de transistores (MSI)
1975, decenas de miles de transistores en un chip (LSI)
Grandes familias de computadores
Burroughs B2500, IBM 360, CDC 6500, PDP 5, UNIVAC 1108
Circuito integrado: 3ª generación
Jack Kilby
El microprocesador (4004)
¿4ª generación? El Microprocesador
Intel 4004: primer microprocesador comercial
Aparecen los lenguajes de programación de alto nivel
Parámetros característicos
Tamaño de palabra Frecuencia de reloj Medidas de rendimiento
MIPS, MFLOPS Pruebas sintéticas: SPECint, SPECfp
Conceptos importantes
Estructura de un computador
Descomposición funcional Fundamentos de la ejecución de un programa
Evolución tecnológica Parámetros característicos y evaluación del rendimiento
Arquitecturas y Partes de la CPU
Objetivos •
Arquitecturas
– – •
von Neumann Otras Unidad Central de Procesamiento (CPU)
– – – • • • •
R.Mitnik
Responsabilidades Requisitos Partes de una CPU ALU Control & Decode Registros Electrónica y buses
35
Índice Capítulo 3 : Arquitecturas
3. Arquitecturas 3.1 von Neumann 3.2 Harvard 3.3 Otras (Multiprocesador, Sistemas distribuidos)
R.Mitnik
36
Introducción
Arquitectura de Computadores Corresponde a la estructura, organización, e interconexión de las diversas partes de un computador
Arquitectura del set de instrucciones
Cantidad de instrucciones Tamaño de las instrucciones Maneras de acceder a memoria
Organización funcional
R.Mitnik
37
Registros Interconexión entre los componentes Mecanísmos de Entrada/Salida (I/O) Jerarquías de memoria
Introducción
• Que hace un computador. – – – – – –
R.Mitnik
Almacenar Datos (leer - escribir). Almacenar Programas. Ejecutar operaciones sobre datos. Ejecutar algoritmos. Recibir nuevos datos. Entregar resultados.
38
Índice Capítulo 3 : Arquitecturas 3.1 von Neumann 3.2 Harvard 3.3 Otras (Multiprocesador, Sistemas distribuidos)
R.Mitnik
39
Introducción John von Neumann (se pronuncia «fon noiman») (28 de diciembre de 1903 - 8 de febrero de 1957)
Fue un matemático húngaroestadounidense, de ascendencia judía. Fue pionero de la computadora digital moderna y de la aplicación de la teoría operadora a la mecánica cuántica. Participó del Proyecto Manhattan
R.Mitnik
40
Introducción Trabajó con Eckert y Mauchly en la Universidad de Pennsylvania, donde publicó un artículo acerca del almacenamiento de programas. El concepto de programa almacenado permitió la lectura de un programa directamente desde la memoria del computador, así como la ejecución de las instrucciones del mismo sin necesidad de un medio externo (cinta). (Tomado de Wikipedia: John von Neumann) R.Mitnik
41
Arquitectura de von Neumann • John von Neumann propuso una manera de estructurar un computador. – – – – – –
Almacenar Datos (leer - escribir). Almacenar Programas. Ejecutar operaciones sobre datos. Ejecutar algoritmos. Recibir nuevos datos. Entregar resultados.
Memoria CPU Input/Output
R.Mitnik
42
Arquitectura de von Neumann • CPU, Memoria e I/O se comunican a través de Buses.
Data Bus Control Memoria
CPU
I/O
Control Address Bus R.Mitnik
43
Índice 3.1 von Neumann 3.2 Harvard 3.3 Otras (Multiprocesador, Sistemas distribuidos)
R.Mitnik
44
Arquitectura Harvard • Utiliza 2 memorias independientes – Datos – Instrucciones
• El término proviene de la computadora Harvard Mark I, que almacenaba las instrucciones en cintas perforadas y los datos en interruptores.
R.Mitnik
45
Arquitectura Harvard • Ventajas de la arquitectura Harvard – Instrucciones y datos de distinto largo – Memorias de distinto tamaño • bits de direccionamiento distintos
– Memorias con distinta tecnología
– Disminuyo el cuello de botella en el acceso a memoria – En controladores embebidos: • RAM para los datos • ROM para las instrucciones
R.Mitnik
46
Arquitectura de von Neumann • Ventajas de la arquitectura de von Neumann – Uso mas eficiente de la memoria • Jerarquía de memoria no requiere estar dividida en 2
– Más simple arquitectónicamente • Un solo tipo de instrucciones para acceder a memoria • Un solo bus de datos y de direcciones Una misma forma de acceso a datos e instrucciones
– Mayor flexibilidad • Útil para el sistema operativo • Paginación a disco • Código automodificante
CPU con menos operaciones y mas flexible R.Mitnik
47
Índice 3.1 von Neumann 3.2 Harvard 3.3 Otras (Multiprocesador, Sistemas distribuidos)
R.Mitnik
48
Multiprocesador Procesador
Procesador
Procesador
Procesador
Memoria local *
Memoria local
Memoria local
Memoria local
Memoria Principal
I/O
* Memoria Local: mantiene una copia local de una porción de la memoria principal R.Mitnik
49
Multiprocesador • Ventajas – Procesamiento paralelo – Cercanía entre CPUs permite altas tasas de transferencia de datos
• Desventajas – No todo es paralelizable
Problemas de coherencia de memoria local con memoria principal
R.Mitnik
50
Sistemas distribuidos Capítulo 3 : Arquitecturas
Procesador
Procesador
Memoria
Memoria I/O
Procesador
Memoria I/O
I/O
Red de interconexión
R.Mitnik
Arquitectura de Computadores
51
Sistemas distribuidos
Cada nodo funciona como un computador independiente Se comunican por red Distintas topologías: estrella, anillo, etc.
Red de interconexión R.Mitnik
52
Sistemas distribuidos Ventajas
Procesamiento paralelo Facilidad de incorporar y quitar nodos del sistema
Desventajas
R.Mitnik
No todo es paralelizable Overhead en la transferencia de datos es considerablemente mayor Problemas de coherencia de memorias 53
Índice 4.Unidad de Central de Procesamiento (CPU) 4.1 Partes de la CPU. 4.2 Ciclo de la Instrucción. 4.3 Conjunto de Instrucciones y tipos de funcionalidad. 4.4 Diseño de una CPU básica. 4.5 CISC/RISC. 4.6 Modos de direccionamiento. 4.7 Instrucciones en lenguaje de máquina. 4.8 Subrutinas y Manejo de Stack. 4.9 Interrupciones de software y hadware. R.Mitnik
54
Introducción
Unidad Central de Procesamiento (CPU o procesador)
Componente principal de un computador, encargado del control de flujo, decodificación y ejecución de instrucciones, y procesamiento y transferencia de datos.
Cerebro del computador R.Mitnik
55
Índice Capítulo 4 : Unidad de Procesamiento Central (CPU)
4.1 Partes de la CPU. 4.2 Ciclo de la Instrucción. 4.3 Conjunto de Instrucciones y tipos de funcionalidad. 4.4 Diseño de una CPU básica. 4.5 CISC/RISC. 4.6 Modos de direccionamiento. 4.7 Instrucciones en lenguaje de máquina. 4.8 Subrutinas y Manejo de Stack. 4.9 Interrupciones de software y hadware. R.Mitnik
56
Partes de la CPU Capítulo 4 : Unidad de Procesamiento Central (CPU) • Responsabilidades – Ejecutar Operaciones y Algoritmos – Controlar Flujo del Programa – Controlar Circuitos Internos
R.Mitnik
57
Partes de la CPU Memoria
Ejecutar Operaciones y Algoritmos
1101110111 Load (7h) 01 1100011001 00
• Requisitos: – Procesar instrucción – Leer datos – Almacenar Temporalmente los datos – ALU – FPU – Almacenar Resultados R.Mitnik
5
ALU 9
9
02
1110001010
03
1110000000
04
0110011000
05
0000011000
06
0001111000
07
0000000100
08
1111000000
09
0000000101
4
0A 0000000000 0000001001 58
Partes de la CPU
Control de Flujo
R.Mitnik
Instruction Pointer Mecanismos de Salto
GOTO(08h) 1110000000
04
0110011000
05
0000011000
06
0001111000
07
0000000100
08
1111000000
09
0000000101
01
ALU
Requisitos
03
00
• Ej. programa anterior. LOAD (07h) ADD (09h) MOVE(0Ah) GOTO(08h)
02
Memoria 1101110111 LOAD (07h) 1100011001 ADD(09h) 1110001010 MOVE(0Ah)
9
4 5
0A 0000000000 0000001001
59
Partes de la CPU Circuitos internos Requisitos Buses internos. Señales de control. ALU (función) Mux Registros (Load,etc) Contador (Inc, Load,etc)
R.Mitnik
contador 00000000
Ej. implementació n
memoria 00
LOAD (07h)
01
ADD(09h)
02
MOVE(0Ah)
03
GOTO(08h)
04
0110011000
05
0000011000
06
0001111000
07
0000000100
08
1111000000
09
0000000101
0A
0000000000
m u x
registro 0001111000
A L U 60
Partes de la CPU • Control & Decode procesa las instrucciones. – ROM – Espacio de Direccionamiento determina cantidad de instrucciones – Las salidas son señales de control para ejecutar una instrucción. Control & Decode Instrucción de k bits
R.Mitnik
2k palabras n bits por palabra n señales de control para la instrucción
61
Partes de la CPU
Registros de la CPU
R.Mitnik
62
Registros de la CPU • Un procesador incluye: – registros visibles para el usuario – registros de control/estado.
Registros Visibles.
R.Mitnik
Pueden referenciarse en las instrucciones. Se clasifican en: Uso general. Datos. Direcciones. Códigos de Condición 63
Registros de la CPU ¿Cuántos registros de propósito general?
Óptimo entre 8 y 32
R.Mitnik
Pocos registros demasiados accesos a memoria. Muchos registros no reducen considerablemente las referencias a memoria Muchos registros CPU más compleja.
64
Registros de la CPU ¿De cuántos bits deben ser los registros?
Deben ser de un número suficiente tal que se puedan manejar las direcciones a memoria.
Además deben ser capaces de manejar una palabra completa.
A veces se combinan dos registros para conformar uno solo.
R.Mitnik
65
Registros de la CPU
Registros Control/Estado.
R.Mitnik
controlar el funcionamiento de la CPU PC = program counter: contiene la dirección de la instrucción a captar IR = instruction register: contiene la última instrucción captada MAR = memory address register: contiene la dirección de una posición de memoria. MBR = memory buffer register: contiene la palabra de datos a escribir en memoria, o la palabra leída más recientemente
66
Registros de la CPU
Registros Control/Estado.
R.Mitnik
Adicionalmente se cuenta con PSW = program status word: Signo: contiene elbit de signo del resultado de última operación Cero: puesto a uno cuando el resultado es 0 Acarreo: puesto a uno si en la suma hay acarreo o en la resta hay un adeudo del bit más significativo Igual: puesto a uno si el el resultado de una comparación lógica es la igualdad Desbordamiento: Usado para indicar desbordamiento aritmético 67
Registros de la CPU
Registros Control/Estado.
Adicionalmente se cuenta con PSW = program status word: (continuación)
R.Mitnik
Interrupciones: usado para permitir o inhabilitar interrupciones Supervisor: indica si la CPU funciona en modo supervisor o usuario. Únicamente en modo supervisor se pueden ejecutar ciertas instrucciones privilegiadas y se puede acceder a ciertas áreas de memoria
68
Partes de la CPU • Ej. Implementació n modificado
contador 00000000
memoria
00
LOAD (07)
01
ADD(09)
02
GOTO(0A)
03
1110000000
04
0110011000
05
0000011000
06
0001111000
07
0000000100
08
1111000000
09
0000000101
0A
0000000000
m u x
0001111000
A L U
IR R.Mitnik
registro
Control & Decode
Señales de Control 69
Partes de la CPU
Partes de la CPU.
R.Mitnik
Registros Program Counter Instruction Register Uso general ALU FPU Control & Decode Buses Circuitería
70
Resumen Resumen • Distintas arquitecturas • Partes de la CPU y sus funciones – Registros • Visibles • Control/Estado – ALU, FPU – Control & Decode • Decodificación de instrucciones • Señales de control – Buses Internos – Circuitería R.Mitnik
71
GRACIAS
View more...
Comments