You are on page 1of 86

Arquitectura de

computadoras
M.S.C. Jorge Fernando Ambros Antemate

Forma de evaluacin
(60%) Exmenes (3 exmenes parciales)
(10%) Tareas y presentaciones
(30%) Proyecto final
Se formarn equipos de trabajo, mximo ___

personas.
Se deben acreditar todos los exmenes.
Para tener derecho a ordinario se debe
acreditar al menos 1 parcial.
En caso de reprobar todos los parciales,
deber presentar examen extraordinario

Los exmenes se realizarn una semana despus

de haber terminado el contenido temtico.


El examen slo se presentara a la fecha y hora
indicado (a menos de presentar un justificante).
No se permite el uso de celulares u otro
dispositivo electrnico durante el examen para la
consulta de documentos.
En caso de encontrarse al alumno copiando y/o
sacando material, se le quitar el examen y
presentar directamente extraordinario, si lo hace
en extraordinario presentar titulo.
Para presentar examen extraordinario, titulo
debern presentar la papeleta para tener derecho
(no aplica en caso de problemas con el SICE).

Temario

Organizacin y arquitectura de computadoras


Estructura y funcionamiento.
Evolucin de las computadoras (generaciones).
Caso de estudio: evolucin del Pentium.
2. Organizacin de los sistemas de computadoras
Procesadores.
Memoria.
Entrada / salida
1.

3. Simulink xilinx
Uso de los componentes
Interconexiones configuracin
Creacin de una ALU
4. Procesador MIPS
Introduccin
Instrucciones, lenguaje ensamblador cdigo binario
Operaciones

Investigar para presentacin


Para la presentacin se formarn grupos de
trabajo, expondrn 3 equipos por hora. Los
temas son:
computadoras mecnicas
Primera generacin: bulbos.
Segunda generacin: transistores.
Tercera generacin: circuitos integrados.
Cuarta generacin: Integracin a muy grande
escala. - ltimas tendencias en procesadores.

Unidad 1
La arquitectura de computadoras se refiere a
los atributos de un sistema que son visibles a
un programador, o por decirlo de otra manera,
aquellos atributos que tienen un impacto
directo a la ejecucin lgica de un programa.
Se incluyen aspectos como el tamao de los
tipos de datos (por ejemplo, cuantos bits se
requieren para representar un entero), los tipos
de operaciones que son soportados (como
suma, resta, llamada a subrutinas).

Jerarqua de los componentes de una


computadora
Nivel del usuario: Programas de
aplicaciones
Lenguajes de alto nivel
Lenguaje ensamblador / cdigo mquina
Control (Cableado/Microcdigo)
Unidades funcionales (ALU, Memoria, entre
otros)
Compuertas lgicas
Cables y transistores

Alto nivel

Bajo nivel

La arquitectura de un computadoras se puede


caracterizar en base a dos elementos
fundamentales:
1. La microarquitectura
2. La arquitectura del set de instrucciones o

ISA.

Microarquitecturas
La microarquitectura de una computadora se
refiere a los distintos componentes de hardware
que
estarn
presente
en
un
sistema
computacional:
Registros:

distintas computadoras tendrn


distinta cantidad y tamao de registros.
Aumentar la cantidad de registros de un
sistema permite reducir los traspasos de
datos a memoria; aumentar el tamao de los
registros permite realizar operaciones con
nmeros de mayor rango y precisin.

Estructura interna de un registro

Ejemplo de registros microprocesador 8086,8088

Hay 4 registros de este tipo cada uno de ellos de 16 bits (1


palabra) que se denominan AX, BX, CX y DX. Cada uno de estos
registros se subdivide adems en dos registros de 8 bits (1
byte) que se denominan con la misma letra que el registro
completo pero terminado en H si se refiere al byte superior (8
bits ms significativos del registro) o en L si se refiere al byte
inferior (8 bits menos significativos del registro).

Unidades de ejecucin: la unidad bsica de

ejecucin de toda computadora es la ALU y


como
tal
estar
presente
en
toda
microarquitectura.

Unidad de control: Es la encargada de llevar

un orden en las instrucciones,


presentar variaciones dependiendo
computadora.

puede
de la

Funciones:
Controlar
la
secuencia
de
instrucciones que vayan a ser
ejecutadas.
Interpreta las instrucciones.
Regular tiempos de acceso y
ejecucin en el procesador.
Recibir y enviar las seales de
control de los perifricos

Existen dos modelos de unidades de control


principales:
Sistemas hard-wired en los cuales cada instruccin
tiene asociado directamente las seales de control
que ejecutan una funcin en la computadora.
Sistemas micro-programados o de microcode, la

unidad de control es de mayor complejidad, y cada


instruccin del programa se traduce en un
conjunto de microinstrucciones, que ejecutan
subfunciones muy especficas.

Control Hard-wired

Control Microcode

Stack:

Estructura
que
permite
el
almacenamiento de datos, su presencia para
subrutinas tambin es un elemento que varia
segn la computadora.

Memorias: la cantidad de palabras de las

memorias y el tamao de cada una de estas


tambin es un elemento que varia entre
distintas computadoras.

Jerarqua de memoria

Tarea, investigar las memorias


RAM
ROM
CACHE
Virtual

Investigar las arquitecturas:


Harvard
Von Neumman

Ejemplos de interconexiones

Registros

Unidad de ejecucin
Stack

Control

8088

80386

Arquitectura del Set de Instrucciones (ISA)


Las instrucciones de una computadora definirn
como se deben escribir programas, y se
diferenciarn por los siguientes factores:
Tipos de instrucciones: Dependiendo del ISA,
existirn distintos tipos de instrucciones
disponibles. En general los tipos de instrucciones
mnimos que se soportan en un ISA son:
a)
b)
c)
d)
e)

Instrucciones
Instrucciones
Instrucciones
Instrucciones
Instrucciones

de carga
aritmticas
lgicas y shift
de salto
de subrutina

Ejemplo

Tipos de datos: Distintos ISA pueden definir

distintos tipos de datos.


Modos de direccionamiento: Adems de
las instrucciones, el ISA debe definir que
modos de direccionamiento son soportados
por el sistema para generar la direccin
efectiva (effective address) con la que se
acceder a memoria. Algunos de los posibles
modos de direccionamiento son:
a) Direccionamiento inmediato o literal
b) Direccionamiento por registros

Formato de la instruccin: El formato de la

instruccin especfica la traduccin en


lenguaje de mquina de una instruccin
particular del conjunto.

Estructura y funcionamiento
Una computadora es un sistema complejo:
contienen
millones
de
componentes
electrnicos bsicos.

Cuando se disea, se debe tratar solamente un


nivel en particular del sistema a la vez, en cada
nivel el sistema consta de un conjunto de
componentes y sus interrelaciones.
De cada nivel al diseador le importan la
estructura y el funcionamiento:
Estructura: El modo en como los componentes
estn interrelacionados.
Funcionamiento: La operacin de cada
componente individual como parte de la
estructura.

El diseador debe determinar:


Que atributos son importantes en la
computadora.
Cuales son crticos en el impacto de su
desempeo.
El conjunto de instrucciones.
El diseo lgico, interconexiones entre los
componentes.
La implementacin: diseo de circuitos
integrados, empaqueteado.

Funcionamiento
Tanto la estructura como
el funcionamiento de una
computadora
son
en
esencia sencillos:
Procesamiento
de
datos.
Almacenamiento
de
datos.
Transferencia de datos.
Control.

Procesamiento
de
datos:
que
la
computadora sea capaz de transformar la
informacin.

Almacenamiento: Aunque la computadora


procese datos al vuelo (procesar y presentar
inmediatamente) debe ser capaz de guardar
temporalmente la informacin con la se trabaja.
Existen 2 tipos de almacenamiento: voltil y
permanente.

Transferencia
de
datos:
Entre
la
computadora y el exterior, el proceso se conoce
como entrada-salida (E/S) y el dispositivo que
se comunica se denomina perifrico.
Control: de las tres funciones anteriores,
dentro de la computadora una unidad de
control gestiona los recursos y dirige las
prestaciones de sus partes funcionales en
respuesta a instrucciones.

Posibles
operaciones de
una computadora

Estructura
La computadora es una entidad que interacta
con el entorno externo, todas las conexiones se
pueden clasificar como dispositivos perifricos o
lneas de comunicacin.
Existen cuatro componentes estructurales
principales:
Unidad central de procesamiento (CPU,
Central Processing Unit).
Memoria principal.
Entrada Salida
Sistema de interconexin.

CPU
Principales componentes
de un procesador:
Unidad de control: Controla
el funcionamiento de la CPU.
Unidad aritmtico lgica
(ALU):
procesamiento
de
datos.
Registros:
proporciona
almacenamiento interno a la
CPU.
Interconexiones
CPU:
Mecanismos que proporcionan
comunicacin entre la unidad
de control, ALU y registros.

Unidad de control
Su funcin es buscar las
instrucciones
en
la
memoria
principal,
decodificarlas
(interpretacin)
y
ejecutarlas,
empleando
para ello la unidad de
proceso.

Memoria
Incrementar el ancho de banda de la memoria y
decrementar la latencia de acceso a memoria
son cruciales para el rendimiento del sistema

Una cache es una memoria pequea y rpida


localizada cerca de la CPU que contiene la
mayor parte del cdigo o de los datos
recientemente accedidos.

El conjunto de instrucciones
Es el modo en que los operandos de las
instrucciones son almacenados y accedidos por
el CPU.
En primera instancia los operandos pueden ser
nombrados explcitamente o implcitamente. En
la primera alternativa se le dice al CPU donde
se encuentran almacenados los datos de la
operacin a realizar, en la segunda opcin el
CPU ya sabe de antemano donde se encuentra.

Si los operandos son nombrados explcitamente


entonces estos pueden ser almacenados en la
memoria principal del sistema o bien en los
registros de procesador o en ambas partes.
Ejemplo de conjunto de instrucciones:

Casi todas las arquitecturas nuevas (despus de


1980) son de registros de propsito general
(GPR) y de carga-guarda (load-store).
Si los datos estn a fin de cuentas en la
memoria principal, para qu traerlos al CPU y
guardarlos en registros?, tanto los datos como
los resultados deben terminar en RAM, porqu
no dejarlos ah?

Es ms rpido acceder a un registro interno

del procesador que a una celda de memoria


externa.
Los escritores de compiladores prefieren
registros verstiles, que sirvan para todo en
vez de registros que sean de propsito
especfico.

Formato de instruccin
Representa la forma en como la computadora
segmenta la operacin, es un nmero fijo de
bits.
Ejemplo de formato de instruccin:

Modos de direccionamiento
Establece la forma en como se llevar a cabo la
operacin.
Cmo se especifican los operandos?
Cmo decimos donde exactamente est el
operando?
Algunos modos de direccionamiento:
Inmediato, utiliza registros y constantes.
Indirecto, se utilizan registros.

Codificando el conjunto de instrucciones


Para disear el conjunto de instrucciones de la
computadora se tiene que decidir:
Que instrucciones debe tener.
Que modos de direccionamiento.
Tipos y tamao de operandos.
Cul debe ser el formato de las instrucciones .
Como se va a codificar la instruccin (cdigo
de operacin)

Ley de Moore
En 1965, el cofundador de Intel, Gordon Moore,
tuvo una visin de futuro. Su prediccin,
conocida popularmente como la Ley de Moore,
plantea que el nmero de transistores de un
chip se duplica cada dos aos.
La Ley de Moore es sinnimo de ms
rendimiento. La capacidad de proceso, medida
en millones de instrucciones por segundo
(MIPS), ha subido debido a cmputos de
transistores en aumento.

Diseo: buscando mejores prestaciones


Velocidad del procesador.
La adicin de nuevos circuitos, y la potenciacin
de la velocidad que proviene de la reduccin de
las distancias entre ellos, ha conseguido
aumentar las prestaciones cada tres aos
aproximadamente.
Pero la velocidad del procesador no alcanzar
su potencial a menos que se alimente con un
flujo constante de trabajo en forma de
instrucciones.

Mientras los fabricantes de chips se preocupan


por fabricarlos con mayor densidad, los
diseadores tienen que producir tcnicas
elaboradas para evitar la saturacin de datos.

Equilibrio de prestaciones
Mientras que la velocidad del procesador ha
crecido, otros componentes de la computadora
no lo han hecho tan rpido.
Se debe tomar en cuenta establecer un
equilibrio de las prestaciones: ajustar la
organizacin y la arquitectura para compensar
la desigualdad de capacidad entre distintos
componentes.

Debe existir un constante flujo de instrucciones


entre los datos y los chips de memoria y el
procesador, existe algunas tcnicas para
realizar esto:
Incrementar la interfaz de la DRAM para

hacerla ms eficiente , incluyendo un cache u


otro esquema de almacenamiento temporal
en el chip de DRAM.
Reducir la frecuencia de acceso a memoria
incorporando entre el procesador y la
memoria principal.
Incrementar el ancho de banda entre el
procesador y la memoria usando buses de

Otra rea de diseo se centra el manejo de


dispositivos de E/S, tambin debe existir un
equilibrio, los diseadores deben encontrar un
equilibrio en la demanda del rendimiento y
procesamiento.

Mejoras en la organizacin y arquitectura de chips

Adems del reto de los diseadores de


equilibrar el procesador con la memoria
principal
y
otros
componentes
de
la
computadora,
persiste
la
necesidad
de
aumentar la velocidad del procesador. Existen 3
formas:
Incrementando la velocidad del hardware del

procesador.
Incrementar el tamao y velocidad de las
cachs.
Haciendo cambios en la organizacin y
arquitectura del procesador, paralelismo.

Sin embargo, aumentar la velocidad de reloj y


la densidad lgica tiene una serie de
obstculos:
Potencia:

se aumenta la densidad de
potencia, problemas para disipar calor.
Retardo: La velocidad de los electrones es
limitada por la resistencia y capacidad de los
hilos metlicos..
Latencia de memoria: La velocidad de la
memoria relentiza la velocidad del procesador.

Prestaciones de los procesadores Intel


Cmo se pueden incrementar las prestaciones de un procesador sin
aumentar la frecuencia del reloj?

El primer procesador en incorporar otro ncleo


fue el Power4 de IBM (2001).

Caso de estudio: evolucin del pentium


8080:

es el primer microprocesador de
propsito general. Era de 8 bits con datos de
memoria de 8 bits. El 8080 se uso en la
primera PC, el Altair.
8086: es de 16 bits, 8Mhz, utiliza un camino
ms ancho y registros ms grandes,
incorporaba un cache. Una variante es el 8088
utilizado en la primera computadora personal
de IBM.

80286: Es un ampliacin del 8086, permita


direcciones de memoria de 16 MB y 20Mhz en
lugar de solo 1MB.

80386: Primero procesador Intel de 32 bits, fue


el primer procesador que admiti multitarea, 33
Mhz.

80486: Introduce tecnologa de cach ms


sofisticada
y
potente.
Incorpora
un
coprocesador matemtico el cual descargaba al
CPU principal de las operaciones matemticas
complejas, 100 Mhz.

Pentium: Se introducen tcnicas superescalares,


permiten varias instrucciones ejecutarse en
paralelo, 233 Mhz.

Pentium Pro: Se aumento el nmero de


registros, prediccin de ramificacin, anlisis de
flujo de datos, 200 Mhz.

Pentium II: Incorpor la tecnologa Intel MMX,

para el proceso eficiente de vdeo, audio y


grficos, 450 Mhz.

Pentium

III:
Incorpora
instrucciones
adicionales
en
coma
flotante
para
procesamiento de grficos 3D.

Pentium 4: Incluye coma flotante adicional y


mejoras multimedia, hasta 3 Ghz.

Pentium D: incorpora dos ncleos, l os chips


Pentium D consisten bsicamente en dos
procesadores Pentium 4 (de ncleo Prescott)
ubicados en una nica pieza de silicio con un
proceso de fabricacin de 90 nm.

Investigar
Arquitectura Von Neumann

Unidad 2. Componentes de la
computadora
Virtualmente todas las computadoras actuales
se han diseado basndose en los conceptos
desarrollados por John Von Neumann
MAR (Memory Address
Register): especifica la
direccin de memoria de la
prxima lectura o escritura.
MBR (Memory Buffer Register):
contiene el dato que se va a
escribir en memoria.
E/S AR: especifica el dispositivo
de E/S
E/S BR: intercambia datos entre
un mdulo de E/S y la CPU

Funcionamiento de la computadora
La funcin bsica que realiza la computadora es
la ejecucin de un programa, constituido por un
conjunto de instrucciones almacenados en la
memoria, el procesador es el encargado de
ejecutar las instrucciones especficas del
programa.
Esto se realiza en dos etapas:
El procesador lee la instruccin en memoria.
Ejecuta la instruccin la cual est compuesta
de cierto nmero de pasos.

El procesamiento que requiere una instruccin


se denomina ciclo de instruccin. Los dos pasos
se denotan como ciclo de captacin y ciclo de
ejecucin.
La ejecucin del programa se para solo si la
mquina se desconecta, se produce un error
irrecuperable o se ejecuta una instruccin que
detiene a la computadora

Ciclos de captacin y ejecucin


Al inicio de cada ciclo de instruccin, el CPU
capta una instruccin de memoria. En un CPU
tpico se utiliza un registro llamado contador de
programa (PC, program Counter), el PC indica la
posicin donde est el procesador en su
secuencia de instrucciones

La instruccin captada se almacena en un registro


del CPU conocido como registro de instruccin
(IR, instruction Register). La instruccin se describe
utilizando un cdigo binario que especifica la accin
que debe realizar el CPU. Existen cuatro acciones:

Procesador Memoria.
Procesador E/S.
Procesamiento de datos.
Control.

La ejecucin de una instruccin puede implicar una


combinacin.

Diagrama de estados del ciclo de instruccin

Interrupciones
Prcticamente
todas
las
computadoras
disponen de un mecanismo mediante el cual
otros mdulos (E/S, memoria) interrumpen el
procesamiento normal del CPU. Ejemplo de
interrupciones:
Programas: divisin entre cero, intento de

acceder fuera del espacio de memoria


permitido.
Temporizacin: temporizador interno.
E/S.
Fallo de hardware: como potencia de
alimentacin, sobrecalentamiento.

Las interrupciones proporcionan una forma de


mejorar la eficiencia del procesador. Por
ejemplo, los dispositivos externos son muchos
ms lentos que el procesador.
Con el uso de las interrupciones el procesador
puede dedicarse a ejecutar otras instrucciones
mientras una operacin de E/S est en curso.
Cuando un dispositivo externo est preparado
para actuar, el mdulo de E/S del dispositivo
enva una seal de peticin de interrupcin al
procesador. El cual suspende la operacin
actual.

Transferencia de control debido a una interrupcin

Quines son los responsables de continuar


con la ejecucin del programa?

Ciclo de instruccin con interrupciones

Diagrama de estados de un ciclo de instruccin, con interrupciones

Funcionamiento de las E/S


Un mdulo de E/S puede intercambiar datos con
el procesador, igual que el procesador puede
iniciar una lectura o escritura en memoria.
En algunos casos es deseable permitir que los
intercambios de E/S se produzcan directamente
en memoria, liberando al procesador de
cualquier responsabilidad en el intercambio,
esto es conocido como acceso directo a
memoria (DMA)

Transferencia de control con varias interrupciones

Interconexin con buses


Un bus es un camino de comunicacin entre
dos o ms dispositivos. Una caracterstica clave
es que se trata de un medio de transmisin
compartido. Conecta varios dispositivos y
cualquier seal transmitida por uno de esos
dispositivos est disponible para que los otros
dispositivos conectados accedan a ella.
Un bus est constituido por varios caminos de
comunicacin, transmite seales binarias.

Un bus est constituido por lneas, cada una de


ellas tiene un significado o una funcin en
particular.

Existen tres tipos de bus:


Lneas de datos, proporcionan un camino para
transmitir datos entre los mdulos del
sistema, puede incluir entre 32 y ms lneas, a
lo cual se le conoce como anchura del bus. La
anchura es un factor clave para determinar
las prestaciones.
Lneas de direccin, se utilizan para designar
la fuente o el destino del datos situado en el
bus (por ejemplo haca los mdulos de E/S).
Lneas de control, controlan el acceso y uso
de las lneas de datos y de direcciones, al ser
compartidas debe existir un orden para su
uso.

Seales de rdenes de las lneas de control:


Escritura en memoria.
Lectura de memoria.
Escritura de E/S.
Lectura de E/S.
Transferencia reconocida.
Peticin de bus.
Cesin de bus.
Peticin de interrupcin.
Interrupcin reconocida.
Reloj.
Inicio (reset)

Jerarqua de buses mltiples

Elementos de diseo de un bus


Existen pocos elementos para realizar un
diseo, ejemplos de ellos son:

Mtodo de arbitraje, existe un nico

controlador de bus (centralizado) o bien cada


mdulo contiene la lgica para controlar el
acceso (distribuido).
Temporizacin, utiliza ciclos de reloj para
coordinar los eventos (sncrona) o cada
evento en el bus es consecuencia de un
evento previo (asncrona).

You might also like