Aquitectura de Computadoras SEM1 Sem1
-
Upload
ana-elizabeth-rodriguez-chumbe -
Category
Documents
-
view
40 -
download
5
description
Transcript of Aquitectura de Computadoras SEM1 Sem1
Ing. Chauca Castillo Eduardo
CICLO 2016-I Módulo:IIUnidad: I Semana: 1
ARQUITECTURA DE COMPUTADORAS
Conceptos básicos y visión histórica
Tema 1: Introducción a
Arquitectura de Computadores
Programa de Teoría
1. Introducción.
2. Lenguaje Máquina.
3. Lenguaje Ensamblador.
4. Ruta de Datos y Unidad de Control.
5. Unidad Aritmético-Lógica (ALU).
6. Sistema de Entrada-Salida.
7. 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
Responsable de realizar cálculos
Registros, unidades funcionales, unidades de interconexión
Unidad de control
Responsable de ordenar cálculos
Secuenciador, registros, pilas...
Memoria de programa y datos
Estructura de un computador
Procesador
Unidad de Control
Ruta de datos
UnidadAritmético-
Lógica
Memoria
Entrada
Salida
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
Dirección de la instrucción en curso
Se incrementa en cada ciclo
Registro de instrucción
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ómputoAntecedentes 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
Máquina analítica
Ada Lovelace
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 elsiglo XX nos habríamos quedado sin trabajo”
Computadores electrónicos1ª 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ónicos2ª 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
ShockleyBardain
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)
– Responsabilidades
– Requisitos
– Partes de una CPU
• ALU
• Control & Decode
• Registros
• Electrónica y buses
R.Mitnik 35
R.Mitnik 36
Índice
Capítulo 3 : Arquitecturas
3. Arquitecturas
3.1 von Neumann
3.2 Harvard
3.3 Otras (Multiprocesador, Sistemas distribuidos)
R.Mitnik 37
Introducción
Corresponde a la estructura, organización, e interconexión de las
diversas partes de un computador
Arquitectura de Computadores
Arquitectura del set de instrucciones
Cantidad de instrucciones
Tamaño de las instrucciones
Maneras de acceder a memoria
Organización funcional
Registros
Interconexión entre los componentes
Mecanísmos de Entrada/Salida (I/O)
Jerarquías de memoria
R.Mitnik 38
Introducción
• Que hace un computador.
– Almacenar Datos (leer - escribir).
– Almacenar Programas.
– Ejecutar operaciones sobre datos.
– Ejecutar algoritmos.
– Recibir nuevos datos.
– Entregar resultados.
R.Mitnik 39
Índice
3.1 von Neumann
3.2 Harvard
3.3 Otras (Multiprocesador, Sistemas distribuidos)
Capítulo 3 : Arquitecturas
R.Mitnik 40
Introducción
John von Neumann (se pronuncia «fon noiman»)
(28 de diciembre de 1903 - 8 de febrero de 1957)
Fue un matemático húngaro-estadounidense, 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 41
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 42
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.
CPU
Memoria
Input/Output
R.Mitnik 43
Arquitectura de von Neumann
• CPU, Memoria e I/O se comunican a través
de Buses.
I/OMemoria
Address Bus
Control
CPU
Control
Data Bus
R.Mitnik 44
Índice
3.1 von Neumann
3.2 Harvard
3.3 Otras (Multiprocesador, Sistemas distribuidos)
R.Mitnik 45
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 46
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 47
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 48
Índice
3.1 von Neumann
3.2 Harvard
3.3 Otras (Multiprocesador, Sistemas distribuidos)
R.Mitnik 49
Multiprocesador
Procesador
Memoria
local *
Procesador
Memoria
local
Procesador
Memoria
local
Procesador
Memoria
local
Memoria Principal I/O
* Memoria Local: mantiene una copia local de una porción de la memoria principal
R.Mitnik 50
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 51
Sistemas distribuidos
Arquitectura de Computadores
Red de interconexión
Procesador
Memoria
I/O
Procesador
Memoria
I/O
Procesador
Memoria
I/O
Capítulo 3 : Arquitecturas
R.Mitnik 52
Sistemas distribuidos
Red de interconexión
Cada nodo funciona como un computador
independiente
Se comunican por red
Distintas topologías: estrella, anillo, etc.
R.Mitnik 53
Sistemas distribuidos
Ventajas
Procesamiento paralelo
Facilidad de incorporar y quitar
nodos del sistema
Desventajas
No todo es paralelizable
Overhead en la transferencia de datos es considerablemente
mayor
Problemas de coherencia de memorias
R.Mitnik 54
Í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 55
Introducción
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
Unidad Central de Procesamiento(CPU o procesador)
R.Mitnik 56
Í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 57
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 58
9
00
01 1100011001
02 1110001010
03 1110000000
04 0110011000
05 0000011000
06 0001111000
07 0000000100
08 1111000000
09 0000000101
0A 0000000000
Partes de la CPU
• Requisitos:
– Procesar
instrucción
– Leer datos
– Almacenar
Temporalmente los
datos
– ALU – FPU
– Almacenar
Resultados
1101110111Load (7h)
4
5
0000001001
9
ALU
MemoriaEjecutar Operaciones y Algoritmos
00
01
02
03
04 0110011000
05 0000011000
06 0001111000
07 0000000100
08 1111000000
09 0000000101
0A 0000000000
1110000000
MOVE(0Ah)
R.Mitnik 59
1110001010
1100011001ADD(09h)
Partes de la CPU
• Ej. programa anterior.
LOAD (07h)
ADD (09h)
MOVE(0Ah)
GOTO(08h)
1101110111LOAD (07h)
4
5
ALU
9 Requisitos
Instruction Pointer
Mecanismos de Salto
9
GOTO(08h)
0000001001
Control de Flujo
Memoria
R.Mitnik 60
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
Partes de la CPUEj.
implementació
n
memoria
mux
A
L
U
0001111000
registro
Circuitos internos
Requisitos
Buses internos.
Señales de control.
ALU (función)
Mux
Registros (Load,etc)
Contador (Inc,
Load,etc)
00000000
contador
R.Mitnik 61
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
n señales de
control para
la instrucción
2k palabras
n bits por palabra
R.Mitnik 62
Partes de la CPU
Registros de la CPU
R.Mitnik 63
Registros de la CPU
• Un procesador incluye:
– registros visibles para el usuario
– registros de control/estado.
Registros Visibles.
Pueden referenciarse en las instrucciones.
Se clasifican en:
Uso general.
Datos.
Direcciones.
Códigos de Condición
R.Mitnik 64
Registros de la CPU
¿Cuántos registros de propósito general?
Óptimo entre 8 y 32
Pocos registros demasiados accesos a memoria.
Muchos registros no reducen considerablemente las
referencias a memoria
Muchos registros CPU más compleja.
R.Mitnik 65
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 66
Registros de la CPU
Registros Control/Estado.
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
R.Mitnik 67
Registros de la CPU
Registros Control/Estado.
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
R.Mitnik 68
Registros de la CPU
Registros Control/Estado.
Adicionalmente se cuenta con PSW = program status
word:(continuación)
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
R.Mitnik 69
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
Partes de la CPU
• Ej. Implementación modificado memoria
mux
A
L
U
0001111000
registro
00000000
contador
IRControl &
Decode
Señales de
Control
R.Mitnik 70
Partes de la CPU
Partes de la CPU.
Registros
Program Counter
Instruction Register
Uso general
ALU
FPU
Control & Decode
Buses
Circuitería
R.Mitnik 71
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
Resumen
GRACIAS