Logo Studenta

UNIDAD I - A - ARQUITECTURA BASICA DE LAS COMPUTADORAS-2020-II

¡Este material tiene más páginas!

Vista previa del material en texto

Facultad de Ingeniería de 
 Sistemas e Informática	 
PRIMERA UNIDAD
ARQUITECTURA BASICA DE LA COMPUTADORA
Asignatura: Electrónica Digital
 Docente: Alejandro Reategui Pezo
Semestre 2020 - II
1
I. Inicios de la Computadora 
Turing y Church sientan las bases teóricas
de la computación
• 
Máquina de Turing
–  Máquina teórica compuesta por una cinta y 
una cabeza que puede leer y grabar símbolos 
en ella.
–  Un conjunto finito de estados
–  Un programa “cableado” del tipo (condición, acción)
Church: Lambda calculo
–  Resultado equivalente para probar computabilidad
–  Base de los lenguajes funcionales
• 
e la
a 
lla.
Inicios
de
la
computación
Turing y Church sientan las bases teóricas d
computación
•  Maquina de Turing
– 
Máquina teórica compuesta por una cinta y un
cabeza que puede leer y grabar símbolos en e
Un conjunto finito de estados
Un programa “cableado” del tipo (condición, acción)
– 
– 
•  Máquina universal de Turing
–  Máquina (teórica) capaz de simular el comportamiento de cualquier maquina (de Turing) a partir de un programa ingresado en la cinta
1.1. El Modelo de Von Neumann
Antes: Programar era conectar cables…
Hacer programas era mas una cuestión ingeniería electrónica.
Cada vez que había que calcular algo distinto había que reconectar todo.
Imaginen eso !
John
1903 – 1957
Matemático
Von
Neumann
• 
• 
• 
Publicó y publicitó la idea de
programa almacenado en memoria
1945: “Primer Borrador de un
Reporte sobre la EDVAC”
• 
von
Neumann
• 
Los datos y programas se almacenan
misma memoria de lectura-escritura
Los contenidos de esta memoria se direccionan indicando su posición sin importar su tipo
Ejecución en secuencia (salvo que se lo contrario)
Representación Binaria
en
una
• 
• 
indique
• 
1.2. ESTRUCTURA BASICA DE UNA COMPUTADORA
Tres Componentes Principales
1) La Unidad de Proceso Central (CPU): Unidad de Control, Unidad aritmético lógica (ALU), Registros
2) La Unidad de Memoria (UM): Almacena programas y datos
3) La Unidad de Entrada/Salida (UE/S)
Dos Componentes Secundarios:
4) La Unidad de Buses (UB): Es un sistema de interconexión:
-  Conecta la memoria y unidad de control
-  Fuerza la alternación entre ciclos de lectura y ejecución
5) El Programa Almacenado en UM
- Es común referenciar a los primeros cuatro elementos como HARDWARE y al quinto como SOFTWARE.
Estructura (computadora) Nivel Superior
interconexión
periféricos Computador
Unidad
Central de Memoria
Proceso Principal
CPU
Computador Sistema de
Entrada
Salida
Líneas de comunicación
Estructura - La CPU
Computer
Arithmetic
and 
Login Unit
Control
Unit
Internal CPU
Interconnection
Registers
CPU
I/O
Memory
System
Bus
CPU
10
Estructura – La Unidad de Control
CPU
Control
Memory
Control Unit 
Registers and 
Decoders
Sequencing
Login
Control
Unit
ALU
Registers
Internal
Bus
Control Unit
11
1.2.1 Estructura de la CPU
I/O
Lógica
CPU
Computer Unidad
Registros Aritmética y
System CPU
Bus Interconexión
Memory Interna de la CPU
Unidad de Control
CPU
Unidad de Control (UC)
• 
• 
Controla todos los componentes
Interpreta instrucciones
–  Decodifica y Ejecuta instrucciones.
Transforma instrucciones en órdenes a otros componentes
–  Puede ser programada por hardware (cableada) y “microprogramada” (varias microinstrucciones por instrucción)
Unidad Aritmético Lógica (ALU)
• 
Realiza operaciones matemáticas y
lógicas
– 
– 
– 
Sumas, restas, multiplicaciones
And, Or, Xor
Corrimientos
CPU
Registros
• 
Almacenan datos binarios, acceso
rápido
De tamaño fijo
De propósito general (programas) o específicos (acumulador, program counter, puntero a memoria, etc.)
• 
• 
DataPath
• 
Red interna que comunica la UC con
las otras unidades y registros
Mueve datos entre los diferentes componentes
Controlada por un reloj.
• 
• 
1.3. Estructura de una Máquina de Von Neumann 
1.3.1. Ciclo de Instrucción
3. Ejecutar la instrucción indicada en el registro de instrucción IR
2. Decodificar el patrón de bits en el registro de instrucción IR
1. Recuperar la siguiente instrucción desde memoria (apuntada por el program counter) y luego incrementar el program counter.
de
n 
s
os
1.3.2. Ciclo de Ejecución
1. 
UC obtiene la próxima instrucción
memoria (usando el registro PC) 
Se incrementa el PC
La instrucción es decodificada a u
lenguaje que entiende la ALU 
Obtiene de memoria los operando
requeridos por la operación
La ALU ejecuta y deja los resultad en registros o en memoria
Repetir paso 1
2. 
3. 
4. 
5. 
6. 
Ciclo
de
ejecución
•  La unidad de control obtiene la próxima instrucción de memoria usando el “contador de programa” (o RPI) que dice en que dirección esta la próxima instrucción.
Ciclo
de
ejecución
•  La instrucción es decodificada a un lenguaje que entiende la ALU (unidad aritmética lógica).
Ciclo
de
ejecución
•  Cada operando requerido para ejecutar es obtenido de la memoria principal y ubicado en registros dentro de la CPU.
Ciclo
de
ejecución
•  La ALU ejecuta la instrucción y coloca los resultados en registros o en memoria.
1.3.3. Tipos de Operaciones
• 
Procesador-memoria
–  Transferencia de datos entre la CPU y la memoria
Procesador-E/S
–  Transferencia de datos entre la CPU y un modulo de
E/S
Procesamiento de datos
–  Alguna operación aritmética o lógica sobre los datos
Control
–  Alteración de la secuencia de operaciones
–  Ej.: jump
• 
• 
• 
1.3.4. Computadora de Von Neumann/Turing: 
EL IAS
Concepto de Programa Almacenado
La memoria principal almacena los datos y los programas
El ALU opera con datos binarios
La unidad de control interpreta instrucciones desde la memoria y los ejecuta
El equipamiento de entrada y salida opera mediante la unidad de control
Princeton Institute for Advanced Studies 
IAS
Completado 1952
23
1.3.4.1. Estructura de la Maquina Von Neumann
24
1.3.4.2. El IAS: Detalles del Formato de Instrucciones 
1000 x 40 bits por palabra
Número binario
2 x 20 bits de instrucciones
 0 1
 39
 0 8 19 
 20 28 39
Instrucción de Izquierda
Instrucción de Derecha
Codop
Codop
 Dirección
Dirección
25
1.3.4.3. El IAS: Detalles de los Registros
Juego de registros (almacena en CPU)
-	Registro de Memoria Buffer		MBR
-	Registro de Dirección de Memoria 	MAR
-	Registro de Instrucciones		IR
-	Registro de Instrucción Buffer		IBR
-	Contador de Programa		PC
-	Acumulador				AC
-	Multiplicador Cociente 		MQ
1.3.4.4. Estructura de la IAS
(UC)
1.3.4.5. El IAS: Detalles del Ciclo de Instrucción
El IAS opera ejecutando repetidamente un Ciclo de Instrucción, como se puede ver en la siguiente figura, cada ciclo de instrucción consta de dos subciclos.
Durante el ciclo de captación, el Codop de la siguiente instrucción es cargado en el IR, y la parte que contiene la dirección es almacenada en el MAR, esta instrucción puede ser captada desde el IBR, o puede ser obtenida de la memoria cargando una palabra en el MBR, y luego en IBR, IR y MAR.
Una vez que el Codop esta en el IR, se lleva a cabo el ciclo de ejecución. Los circuitos de control interpretan el Codop y ejecutan la instrucción, enviando las señales de control adecuadas para provocar que los datos se transfieran o que la ALU realice una operación
ructura
MBR:
Memory Buffer Register
Contiene una palabra que debe ser almacenada en la memoria, o es usado para recibir una palabra procedente de la memoria.
ructura
MAR:
MemoryAdress Register
Especifica la dirección en
memoria de la palabra que va a 
ser escrita o leída en MBR.
ructura
IR:
Instruction Register
Contiene los 8 bits del código de
operación de la instrucción que se 
va a ejecutar.
ructura
IBR:
Instruction Buffer Register
Empleado para almacenar
temporalmente la instrucción contenida en la parte derecha de una palabra en memoria.
ructura
PC:
Program Counter
Contiene la dirección de la próxima
pareja de instrucciones que van a 
ser captadas de la memoria.
ructura
AC y MQ:
Accumulator y Multiplier
Quotient
Se emplean para almacenar
operandos y resultados de operaciones de la ALU temporalmente. Por ejemplo, el resultado de multiplicar dos números de 40 bits es un número de 80 bits; los 40 bits más significativos se almacenan en AC y los menos significativos se almacenan en MQ.
1.3.4.6. Registros en otras Arquitecturas
1.3.4.7. Modelo de von Neumann Bus del Sistema
1.3.4.8. Una Posible Configuración
La IAS (Institute for Advance Study,
Princeton University)
1.4. Buses
• 
Una vía comunicación que conecta 2
más dispositivos
En general “broadcast” (todos lo ven) 
En general agrupados
– Varios canales en un grupo
o
• 
• 
– Ej: Data bus de 32 bits, son 32 canales de
bit
1
1.4.1. Bus de Datos
•  Transfieren información
•  Su tamaño es un punto clave performance del sistema
– 8, 16, 32, 64 bits
en la
1.4.2. Bus de Direcciones
• 
• 
Identifican la fuente o destino de un dato
Ej: la CPU necesita leer una instrucción
(dato) de una locación en memoria
• 
Su tamaño
máxima de
– Ej: el Intel
determina la capacidad
memoria del sistema
8080 tiene 16 bit => 64k de espacio
direccionable
1.4.3.- Bus de Control
•  Control y sincronización
– Señal de lectura escritura a memoria
– Señales del reloj
– Solicitud de interrupción
1.5. Modelos no Von Neumann
•  Cuello de von Neumann
–  El procesador ejecuta una instrucción por vez…
–  Comunicación con Memoria y E/S empeoran la cosas..
•  Mejoras:
–  Buses especializados
–  Interrupciones
–  Unidades de punto flotante
–  Caches,
–  Pipelines
•  Otro enfoque: apartarse de la arquitectura clásica de von
Neumann.
•  Agregar procesadores es una posibilidad…
Modelos
no
von
Neumann
•  A finales de los 60’ los sistemas de computo “high-performance” fueron equipados con procesadores duales para mejorar su desempeño.
•  En los 70’ supercomputadoras con 32 procesadores.
•  En los 80’ con 1000 procesadores
•  En 1999, IBM anuncio su sistema “Blue Gene” que contiene aprox. 1 millón de procesadores.
Modelos no Von Neumann
•  El procesamiento paralelo es una de las formas de mejorar el poder de cómputo.
•  Otras ideas más radicales:
– Computadoras genéticas
– Computadoras cuánticas
– Sistemas Dataflow.
1.6. La jerarquía de niveles de una computadora
•  Una computadora es mucho más que chips.
•  Para que la computadora haga “algo”
necesita software
•  Para escribir programas complejos se suele dividir el problema en módulos que resuelven problemas mas simples
•  En las computadoras
– Varios niveles de máquinas “virtuales”
Jerarquía
de
niveles
virtual que abstrae a las
“interpretan” sus
inferior para implementarlas.
circuitos terminan haciendo el
•  Cada capa es una máquina 
maquina del nivel inferior.
•  Las máquinas, en su nivel, instrucciones particulares,
utilizando servicios de su capa
•  En última instancia los
trabajo…
Jerarquía
de
niveles
•  Level 6: Nivel Usuario
– Ejecución de programas e interfaces de usuario.
– Pensamos en terminos de la aplicación que se ejecuta
•  Level 5: Lenguajes de alto nivel
– El nivel donde interactuamos cuando escribimos programas en Haskell, C, Java, etc.
– Pensamos el algoritmos, TADs, etc.
Jerarquía
de
niveles
•  Level 4: Nivel de Lenguaje Ensamblador
–  Lenguaje ensamblador, en general producido por compiladores, o escrito directamente por programadores.
–  Muy cercano a la arquitectura de la computadora.
•  Level 3: Nivel del software del Sistema
–  Controla la ejecución de los procesos del sistema.
–  Protege los recursos.
–  Brinda servicios para acceder a dispositivos de E/S
–  Muchas instrucciones en Assembler pasan este nivel sin 
modificación.
Jerarquía
de
niveles
•  Level 2: Nivel del Lenguaje de máquina
– También conocido como nivel ISA 
(Instruction Set Architecture).
– Consiste en las instrucciones particulares 
para la arquitectura de la maquina.
– Los programas escritos en lenguaje de maquina no necesitan compilación ni ensamblado.
Jerarquía
de
niveles
•  Level 1: Nivel de Control
– La unidad de control (UC) decodifica y ejecuta 
instrucciones y mueve datos a traves del 
sistema.
– Puede ser microprogramada o “cableada”.
•  Un microprograma es un programa escrito en un 
lenguaje de bajo nivel que puede ser 
implementado enl hardware.
•  Las UC “cableadas” tienen hardware que ejecuta directamente las instrucciones en codigo de maquina
Hardwired
vs.
Micro-programada
Jerarquía
de
niveles
•  Level 0: Nivel de Lógica Digital
– Aquí encontramos los circuitos digitales
(chips).
– Son básicamente compuertas y cables.
– Implementan la lógica matemática de los 
niveles superiores.
1.7. Arquitectura Harvard
La arquitectura Harvard se caracteriza porque existen, a diferencia de la von Neumann, dos unidades de memoria separadas: una para los datos y otra para las instrucciones
Muchas veces se presenta la arquitectura Harvard como algo diferente de la arquitectura von Neumann. Sin embargo en el fondo no cambia la esencia de la von Neumann: siguen existiendo “programas” formados por una secuencia lógica de “instrucciones” las que son ejecutadas por una “CPU”.
Actualmente muchos procesadores implementan una arquitectura Harvard modificada, que consiste en mantener ciertos caminos separados y paralelos para acceder a las instrucciones en forma simultánea con los datos, pero permitiendo que los datos y las instrucciones están almacenados en una memoria común. Los detalles de estas implementaciones se verán más adelante en el curso.
Arquitecturas (a) Von Neumann y (b) Harvard. La arquitectura von Neuman utiliza una memoria única que se conecta a la CPU mediante los buses de direcciones (BDIR), datos (BDAT) y control (BCON), La Arquitectura Harvard utiliza memorias separadas para instrucciones y datos, las cuales se conectan a la CPU mediante los buses de direcciones de instrucciones (BDIR-I) y de direcciones de datos (BDIR-D), los buses de instrucciones (BINST) y de datos (BDAT) y los buses de control de instrucciones (BCON-I) y de datos (BCON-D).

Continuar navegando