Вы находитесь на странице: 1из 106

Estructura y Organizacin de

Computadores
Rosa Figueroa
Ingeniera Civil Biomdica
Depto. Ingeniera Elctrica
Universidad de Concepcion
Sistema Computacional (SC)
Sistema Computacional (SC)
Software (SW) Lenguaje de alto
nivel. Ej.: C,C++, java, Pascal,etc
Componentes del Hardware (HW)
desde 1946:
CPU
Memoria
Mdulos de E/S.
for (i=0; i<n; i++)
Suma +=i
Mdulos de E/S.
ISA (Instruction Set Architecture o
Arquitectura de conjunto de
Instrucciones) Interfaz entre el
HW y el SW. Provee definicin
completa del lenguaje de maquina.
Un Programa por dentro.
Ejemplo de un computador que podemos tener
hoy en da:
Cpu: Intel Core 2 Duo Cpu: Intel Core 2 Duo
Frecuencia: 2.40 GHz
Memoria RAM 3 GB
Disco Duro : 250 GigaBytes
Organizacin del Computador
Los elementos bsicos:
Unidad Central de Procesamiento (CPU) :
Unidad de Control (UC)
Unidad Aritmtico-Lgica (ALU)
Registros internos y buses Registros internos y buses
Memoria Central o Principal (MM)
Perifricos:
Memoria masiva o secundaria (discos duros, CDs, ..)
Unidades de entrada (teclado, ratn,)
Unidades de salida (monitor, impresoras,)
Antes de Von Neumann
No exista la memoria
Programaba estableciendo manualmente conexiones
fsicas entre las unidades (los programas eran cableados)
Para cambiar el programa haba que cambiar las Para cambiar el programa haba que cambiar las
conexiones
Haba un panel frontal de conexiones
Arquitectura de Von Arquitectura de Von Arquitectura de Von Arquitectura de Von Neumann Neumann Neumann Neumann (1945) (1945) (1945) (1945)
Arquitectura Von Neumann (1945):
Memoria almacena programas y datos
Varias unidades funcionales independientes conectadas
permanentemente y controladas por una unidad permanentemente y controladas por una unidad
Los programas pasan a ser almacenados (no cableados)
Idea an vigente, aunque con algunas modificaciones.
Arquitectura Von Neumann
Establece 5 unidades funcionales bsicas:
Unidad de Control (UC) - Unidad Aritmtico Lgica (ALU)
Unidad de Entrada - Unidad de Salida Unidad de Entrada - Unidad de Salida
Unidad de Memoria
Arquitectura Von Neumann
Arquitectura Von Neumann
Buses de interconexin
La interconexin entre la CPU y el resto de unidades
funcionales del computador se realiza mediante hilos
conductores en paralelo, que transmiten simultneamente
informacin, denominados buses
Bus de datos : Transporta los datos que se transfieren Bus de datos : Transporta los datos que se transfieren
entre las unidades.Bidireccional
Bus de direcciones: Transporta la direccin de la posicin
de memoria o del puerto perifrico que interviene en el
trfico de informacin. Unidireccional
Buses de interconexin
Bus de control: Contiene hilos que transportan las seales
de control y las seales de estado indicando
La direccin de transferencia de datos
Temporizacin de la transmisin
Seales de interrupcin Seales de interrupcin
Arquitectura Von Neumann
Componentes
Unidades Funcionales Bsicas: CPU
Unidad de Procesamiento Central (CPU) ->Cerebro
del computador
Controla y realiza la mayora de las operaciones.
Conjunto: Unidad de Control (UC)+ALU+Registros Conjunto: Unidad de Control (UC)+ALU+Registros
Dos partes principales:
o Unidad de Control y Unidad de Tratamiento.
Organizacin del Computador: CPU
Biestables (Flip-Flop)
Un elemento de memoria que almacena un bit de informacin.
En un conjunto de biestables se pueden almacenar palabras de varios
bits.
Este almacenamiento de la informacin es indefinido mientras exista Este almacenamiento de la informacin es indefinido mientras exista
alimentacin para mantenerse.
Organizacin del Computador:CPU
Registros:
Una memoria de alta velocidad y poca capacidad.
De tamao fijo.
Se emplean para controlar instrucciones en ejecucin,
manejar direccionamiento de memoria y proporcionar manejar direccionamiento de memoria y proporcionar
capacidad aritmtica.
Organizacin del Computador: Hardware
Registros:
Almacenamiento temporal para un dato, una instruccin o
una direccin de memoria.
Posee n entradas acceso para bus de ancho n bits. n
salidas salidas
Una entrada de 1 bit para una seal de control c.
C=0, el registro no cambia su contenido.
C=1, se almacena la informacin del bus de entrada.
Organizacin del Computador: Hardware
Registros (continuacin):
Especficos:
IR (Instruction Register): guarda el cdigo de la instruccin que
se esta ejecutando actualmente.
PC (Program Counter): guarda la direccin de la siguiente
instruccin que debe ejecutarse.
MAR(Memory Address Register): direccin de memoria a la que
se esta accediendo
MDR(Memory Data Register): datos ledos/escritos de/en
memoria.
AC(Acumulador): Almacena operandos y resultados de
operaciones de la ALU temporalmente. Almacena los bits mas
significativos del resultado.
Generales: almacenamiento temporal de datos.
Organizacin del Computador: Hardware
Relojes:
Proveen Sincronismo
Oscilan peridicamente.
Organizacin del Computador: Hardware
Contadores:
Al recibir una seal de control t, incrementan su valor en
una unidad.
Definiremos dos contadores:
PC (Program counter o Contador del programa) y PC (Program counter o Contador del programa) y
SP(stack pointer o puntero de pila).
PCPC+1
Unidades Funcionales Bsicas: CPU
Unidad de Control(CU).
Recibe seales de estado. Genera y enva de seales de
control.
Controla la operacin de los componentes de la CPU, tambin
la operacin de los elementos externos.
Controla la secuencia de instrucciones a ser ejecutadas.
Controla el flujo de datos entre las diferentes partes del
computador.
Interpreta las instrucciones.
Regula tiempos de acceso y ejecucin en el procesador.
Enva seales de control y recibe seales de estado de los
perifricos externos.
Unidades Funcionales Bsicas: CPU
Unidad de Control(CU).
Formada por los circuitos que generan las distintas
seales de control y el reloj (generador de pulsos) con la
que se sincronizan todas las micro-operaciones que
implican la ejecucin de las distintas instrucciones de la implican la ejecucin de las distintas instrucciones de la
maquina.
La frecuencia del reloj (inverso del tiempo de ciclo)
suele darse en millones de ciclos/seg (MHz) o en miles
de millones de ciclos de segundo (GHz)
Elementos de la unidad de control y que
desarrollan tareas especificas:
Decodificador de Instrucciones: Unidad que
interpreta el contenido del registro de instrucciones y
Unidades Funcionales Bsicas: CPU
permite generar las seales adecuadas para ejecutar la
instruccin.
Decodificador de Direcciones: Unidad que
interpreta la direccin en el registro de direcciones de
Memoria (MAR) y selecciona la posicin de memoria a
ser accedida.
Elementos de la unidad de control y que desarrollan
tareas especificas:
Registros en la unidad de control:
PC
IR
Unidades Funcionales Bsicas: CPU
IR
Registro de Estado(Program status word): Mantiene
informacin "bits de estado" o " flags" con informacin
sobre lo que ha pasado en la operacin realizada por la ALU.
Unidad de Tratamiento
Conjunto de recursos utilizados para trabajar con los datos.
Formada por:
Unidad Aritmtico Lgica (ALU)
Unidades Funcionales Bsicas: CPU
Registros en la unidad de tratamiento.
Unidad Aritmtico Lgica(ALU)
Circuito combinacional capaz de sumar restar, efectuar
operaciones lgicas y de desplazamiento de bits.
Operacin paralela con datos de diversa longitud.
Unidades Funcionales Bsicas: CPU
Operacin paralela con datos de diversa longitud.
2 puertas de entrada (buses de entrada) de n bits.
1puerta de salida (bus de salida) de n bits.
Puerta de entrada para seales de control.
Ejecuta 2
m
operaciones distintas.
Unidades Funcionales Bsicas: CPU
Unidades Funcionales Bsicas: CPU
SR: Registro de
Estado. Informa sobre
el resultado de la
ltima operacin ltima operacin
realizada por la ALU
Organizacin del Computador: Conceptos
Registros de la Unidad de Tratamiento.
Banco de registros (agrupacin de registros) que tienen la
funcin de almacenar datos mas utilizados dentro de una
secuencia de operaciones. secuencia de operaciones.
Se reducen los accesos a memoria principal que son mas
lentos que el tiempo acceso a registro.
2
m
registros de n bits cada uno
Organizacin del Computador:
Conceptos
Registros de la Unidad de Tratamiento.
1 puerta de entrada, n bits.
Puertas de salida de n bits
Puerta de control de m bits para
direccionar registro a escribir. direccionar registro a escribir.
Puertas de control de m bits para
direccionar registros a leer.
Puerta de control para habilitar
escrituras
Puerta de entrada de reloj.
n
n
CK
32 x n
bits
n
Reg
Write
5 5 5
R
D
R
S
R
T
busA
busB
busWr
Organizacin del Computador:
CPU y sus elementos internos
Registros de uso general (r0 a rD)
integrados en un bloque de registros.
(Banco de registros RF)
Estos registros tambin pueden
almacenar direcciones de memoria.
Su largo suele ser la de una palabra
Registro temporal (RT) .
Asociado a la ALU : Biestables Asociado a la ALU : Biestables
indicadores o de condicin. (valor 1 o
0 dependiendo de la ultima operacin
realizada en la ALU)
C: Acarreo
S: indicador de signo
Z: indicador de cero
P: indicador de paridad
V: Indicador de desbordamiento
Registro de direccin (AR): se encuentra la
direccin del dato/instruccin a leer o
escribir.
Registro de datos (DR): Se almacena el
dato a escribir en la memoria o en un puerto
de salida, o la informacin leda desde la
memoria o de un puerto de entrada.
Seales de control R/W e IO/M
Organizacin del Computador:
CPU y sus elementos internos
Registro instruccin (IR) : memoriza
temporalmente la instruccin de programa
que la CU esta ejecutando o interpretando.
CU busca las instrucciones
secuencialmente desde la memoria
principal para poder interpretarlas y
generar las seales de control.
PC (Program counter) : registro-contador
que indica al procesador la direccin de
memoria donde esta la instruccin
siguiente a ejecutar.
SP(stack pointer) o puntero de pila.
Elementos Bsicos: Memoria
Memoria Principal:
Dividida en posiciones (palabras de memoria) de n bits.
E/S de datos bus bidireccional o buses especficos de
entrada (grabar el dato) o salida (para el dato ledo).
Tamao de los buses es n bits instante dado se leen las
posiciones completas de memoria.
Bus de direcciones m bits 2
m
posiciones distintas.
Elementos Bsicos: Memoria
Memoria Principal:
Dos seales de control:
R/W (1 si se desea leer , 0 para escribir).
IO/M (0 para que la memoria lea o escriba) IO/M (0 para que la memoria lea o escriba)
Operacin de escritura en memoria
M(AR)DR (posicin de memoria se encuentra en el
registro AR y el dato a escribir esta en DR).
Operacin de lectura de datos
DR M(AR)
Elementos Bsicos: Memoria
Organizacin del Computador:
Memoria
Problemas con memoria principal:
Tiempo acceso a memoria de unas decenas de
nanosegundos.
Mucho mas lenta que acceso a registros de la Unidad de
Control y la ALU. Control y la ALU.
A medida que la tecnologa avanza es mas fcil y barato
hacer que los procesadores sean rpidos que hacer que
la memoria principal sea mas rpida.
Solucin: memoria mas pequea, de tecnologa mas rpida y
que acta como almacenamiento intermedio.
Organizacin del Computador:
Memoria
Solucin: memoria mas pequea, de tecnologa mas rpida y
que acta como almacenamiento intermedio.
Organizacin del Computador:
Memoria Cach
Memoria Cach:
Implementadas como SRAM (Static RandomAccess
Memory).
Organizada como una jerarqua de niveles : L1,L2,L3,etc .
L1(nivel 1) cache en el chip del procesador con tiempo L1(nivel 1) cache en el chip del procesador con tiempo
de acceso casi tan rpido como un registro.
L2 (nivel 2) mas grande y barata que L1 y as
sucesivamente. etc
Cuando se accede por primera vez a un dato, se hace una
copia en el cache; los accesos siguientes se realizan a dicha
copia, haciendo que el tiempo de acceso medio al dato sea
menor.
Organizacin del Computador:
Puertos E/S
Sistemas de E/S:
Conexin del sistema con el mundo exterior.
Teclado, mouse (usuario), Pantalla(usuario), dispositivo
de almacenamiento masivo, etc.
Organizacin del Computador:
Puertos E/S
Puertos E/S.
Modo de conexin e intercambio de informacin con el
resto del SC (Procesador, Memoria).
Un registro que tiene asociado una direccin, de tal forma
que cuando el computador se quiere comunicar con el que cuando el computador se quiere comunicar con el
perifrico debe proporcionar la direccin de su puerto.
Seales de control:
IO/M 0 si la direccin pertenece a memoria
principal o 1 si es la direccin de un puerto de E/S.
R/W 1 si el procesador lee desde un puerto de
entrada o 0 si escribe en un puerto de salida.
Organizacin del Computador:
Buses
Buses:
Conjunto de hilos conductores que llevan informacin desde y hacia
los distintos componentes del computador.
Diseados para transmitir bytes correspondientes a la palabra del
computador.
Sub-bus da datos: Su numero de hilos determina la longitud de Sub-bus da datos: Su numero de hilos determina la longitud de
palabra del computador. Bidireccional .
Sub-bus de direcciones: Transporta la direccin de la
posicin de memoria o del puerto de E/s que interviene en el
trafico de informacin.
Sub-bus de control: Lneas conductoras que transportan las
seales de control y de estado, indicando la direccin de la
transferencia de datos, coordina la temporizacin de eventos
durante la transferencia , transmite seales de interrupciones,etc.
Funcionamiento interno de un
programa
Funcionamiento interno de un computador.
Fase de captacin de la Instruccin (Fetch).
a) Recobrar la Instruccin desde memoria principal.
o PC contiene la direccin de la siguiente instruccin a
ejecutarse.
o Unidad de Control va a la direccin de memoria
especificada por PC hace una copia de los contenidos y los
almacena en el Registro de Instruccin.
o Este acceso de memoria toma un ciclo.
Funcionamiento interno de un computador.
b) Interpretacin del cdigo de la instruccin.
Para poder ejecutar la instruccin el IR debe determinar que
instruccin es.
La instruccin pasa por un decodificador para generar las
seales de control asociadas al cdigo de la instruccin. seales de control asociadas al cdigo de la instruccin.
b) PCPC+1.
Funcionamiento interno de un computador.
Fase de ejecucin de la Instruccin (Execute).
Unidad de control.
Se envan seales a la ALU para el procesamiento de la
instruccin, que puede ser por ej: operacin especificada por la
instruccin, calcular la direccin de memoria o incrementar o
decrementar el stack pointer SP. decrementar el stack pointer SP.
Ej:
o Si se pide sumar (add) un numero a un registro, entonces la ALU
recibe el dato y lo suma a los contenidos del registro.
o Luego, de terminada la ejecucin el ciclo comienza de nuevo (vuelve a
a)).
o En este es muy posible que la siguiente instruccin sea almacenar el
valor modificado del registro en memoria.
Funcionamiento interno de un computador.
Fase de ejecucin de la Instruccin (Execute)
continuacin.
Si la ejecucin de la instruccin implica saltar a la instruccin
m (alterndose el orden secuencial) hace que se cambie PC por
el valor de m. Bifurcacin y salto
Main
memory
I/O
bridge
Bus interface
ALU
Register file
CPU
System bus Memory bus
PC
"hello"
Disk
controller
Graphics
adapter
USB
controller
MouseKeyboard Display
Disk
I/O bus
Expansion slots for
other devices such
as network adapters
User
types
"hello"
Main
memory
I/O
bridge
Bus interface
ALU
Register file
CPU
System bus Memory bus
PC
hello code
"hello,world\n"
Disk
controller
Graphics
adapter
USB
controller
MouseKeyboard Display
Disk
I/O bus
Expansion slots for
other devices such
as network adapters
hello executable
stored on disk
Main
memory
I/O
bridge
Bus interface
ALU
Register file
CPU
System bus Memory bus
PC
hello code
"hello,world\n"
Disk
controller
Graphics
adapter
USB
controller
MouseKeyboard Display
Disk
I/O bus
Expansion slots for
other devices such
as network adapters
hello executable
stored on disk
"hello,world\n"
Instrucciones en binario
Se almacenan en memoria como 0 y 1s.
ISA MIPS
Tipos de instrucciones :
Load/Store (lw/sw)
Calculo (add) Calculo (add)
Saltos absolutos y
condicionales (j/beq)
etc
Programa para sumar dos
nmeros que proporciona el
usuario por teclado.
Leer los dos nmeros y
llevarlos a dos registros.
Sumar en la ALU
Dejar el resultado en otro Dejar el resultado en otro
registro.
Sacar los resultados a
travs de una unidad de
salida.
Funcionamiento interno de un
computador.
IN r0,IP02 0100 0000 0000 0010
IN r1,IP02 0100 0001 0000 0010
ADD r3,r0,r1 0110 0011 0000 0001
OUT OP02,r3 0101 0011 0000 0010
HALT 1111 0000 0000 0000
IN r0,IP02
IN r1,IP02
OUT OP02,r3
ADD r3,r2,r0
Temporizacin en la ejecucin de Temporizacin en la ejecucin de Temporizacin en la ejecucin de Temporizacin en la ejecucin de
instrucciones instrucciones instrucciones instrucciones
Se carga el programa a ejecutar en posiciones consecutivas de
memoria principal (forma parte del S.O.)
Se inicializa el PC con la direccin de la primera instruccin del
programa
Fases en la ejecucin de instrucciones Fases en la ejecucin de instrucciones Fases en la ejecucin de instrucciones Fases en la ejecucin de instrucciones
programa
Una vez cargado el programa, el S.O. indica al computador que
pase el control a la 1 instruccin del programa cargado
Ahora la CPU repite las siguientes fases:
Lleva de MP a la CPU la instruccin que corresponde a la direccin
contenida en PC y lo incrementa (CAPTACIN O BSQUEDA)
La CPU recibe la instruccin, la analiza y decodifica
(DECODIFICACIN)
Fases en la ejecucin de instrucciones Fases en la ejecucin de instrucciones Fases en la ejecucin de instrucciones Fases en la ejecucin de instrucciones
(DECODIFICACIN)
La UC enva las seales de control necesarias para realizar las operaciones
que implica la instruccin. En caso necesario, lee los operandos
requeridos desde memoria (EJECUCIN) se vuelve al primer paso
(ejecucin de la siguiente instruccin)
Fase de captacin de instruccin.
Siempre que se inicia una instruccin el procesador capta de la memoria
la instruccin siguiente a ejecutar.
AR PC (carga de registro AR con la direccin del dato a leer /escribir)
Fases en la ejecucin de instrucciones Fases en la ejecucin de instrucciones Fases en la ejecucin de instrucciones Fases en la ejecucin de instrucciones
DR M(AR) (lectura de memoria)
IR DR (En IR queda almacenado el codop de la instruccin)
PC PC + 1 (suposicin: cada instruccin ocupa una sola posicin de memoria)
Decodificacin de la instruccin:
La unidad de control interpreta la instruccin que est en el registro IR
Fase de ejecucin
Se realizan las operaciones especficas correspondientes al cdigo de
operacin (codop) de la instruccin captada, generndose las seales de
Fases en la ejecucin de instrucciones Fases en la ejecucin de instrucciones Fases en la ejecucin de instrucciones Fases en la ejecucin de instrucciones
operacin (codop) de la instruccin captada, generndose las seales de
control oportunas.
La ejecucin de una instruccin lleva consigo por lo
menos un acceso a memoria (para captar la instruccin),
pudiendo efectuar accesos adicionales (captacin de
operandos, memorizacin de resultados, etc.)
Fases en la ejecucin de instrucciones Fases en la ejecucin de instrucciones Fases en la ejecucin de instrucciones Fases en la ejecucin de instrucciones
Diagrama que muestra el ciclo y las
microoperaciones generadas por la
unidad de control para ejecutar una
instruccin de mquina
Fases en la ejecucin de instrucciones Fases en la ejecucin de instrucciones Fases en la ejecucin de instrucciones Fases en la ejecucin de instrucciones
Ejemplo: Adicin y sustraccin
Ejemplo: lectura de memoria
La direccin de memoria se forma al sumar la direccin constante de
la instruccin y los contenidos del segundo registro
$11 Mem(0+$10)
$12 Mem(4+$10)
Ejemplo: escritura de memoria
Segn lo visto el procesador ejecuta secuencialmente las
instrucciones del programa.
Qu pasa con instrucciones de control?
Qu pasa con instrucciones de salto?
Gestin Instrucciones de control Gestin Instrucciones de control Gestin Instrucciones de control Gestin Instrucciones de control
Qu pasa con instrucciones de salto?
Alteran el orden de la ejecucin del programa?
Distinguimos entre dos tipos de instrucciones de control:
Bifurcaciones (o saltos condicionales) y saltos
(incondicionales).
Gestin Instrucciones de control Gestin Instrucciones de control Gestin Instrucciones de control Gestin Instrucciones de control
Llamadas a procedimientos y retornos de
procedimientos, condicionales o no.
Instrucciones de control de flujo que no hacen referencia a
procedimiento.
Instrucciones pueden alterar el orden de la ejecucion del programa
saltando a una instruccion ubicada en una direccion de memoria
arbitraria.
Se ejecuta la instruccion que se almaceno en el PC (a la cual se salto)
Gestin Instrucciones de control Gestin Instrucciones de control Gestin Instrucciones de control Gestin Instrucciones de control
Se ejecuta la instruccion que se almaceno en el PC (a la cual se salto)
y las que se encuentren despues de ella en orden secuencial.
Instrucciones de Salto condicional
El salto o llamada slo se produce si se cumple alguna o algunas
condiciones, establecidas por el valor de alguno de los biestables
indicadores (Z, S, P, V, etc.)
Bifurcaciones (o saltos incondicionales) y saltos
(condicionales)
Se altera el orden de ejecucin saltando a una instruccin
ubicada en una direccin de memoria arbitraria,ds, establecida
por el programador.
Gestin Instrucciones de control Gestin Instrucciones de control Gestin Instrucciones de control Gestin Instrucciones de control
por el programador.
En la fase de ejecucin el procesador cambia el
contenido del contador de programa por ds
PC ds
As en la siguiente captacin de instruccin, al leer de memoria la
instruccin cuya direccin est en PC se capta es la instruccin
que est en la direccin ds (se produce automticamente el salto).
En el ejemplo que estamos considerando, la direccin de salto
Gestin Instrucciones de control Gestin Instrucciones de control Gestin Instrucciones de control Gestin Instrucciones de control
En el ejemplo que estamos considerando, la direccin de salto
debe darse a travs del registro rD; es decir, el procesador ejecuta
la instruccin de salto haciendo:
PC rD
Instrucciones de control de flujo que hacen referencia a
subrutinas.
Una llamada a subrutina (rutina, subprograma, o procedimiento)
se interrumpe la ejecucin normal de las instrucciones del
programa.
Tras la ejecucin de la instruccin de llamada, se ejecuta otro
Gestin Instrucciones de control
Tras la ejecucin de la instruccin de llamada, se ejecuta otro
programa (procedimiento, rutina o subrutina).
Una vez ejecutado la subrutina, se retorna (con una
instruccin de retorno) al programa desde el que se hizo la
llamada, que contina ejecutndose a partir de la posicin
desde la que se salt a la subrutina.
Gestin Instrucciones de control
desde la que se salt a la subrutina.
Una subrutina, a su vez, puede incluir llamadas a otros
subrutinas, y as sucesivamente
La diferencia entre un salto y una llamada a un
procedimiento, es:
Cuando acaba de ejecutarse el procedimiento llamado hay
que retornar al programa que lo llam
concretamente se debe retornar a la instruccin inmediatamente
Gestin Instrucciones de control
concretamente se debe retornar a la instruccin inmediatamente
despus de la de llamada, que es precisamente la que se encuentra en
la direccin contenida en el PC al ejecutarse la instruccin de
llamada.
Por tanto, hay que memorizar temporalmente los contenidos
del PC de las instrucciones de llamada a procedimientos.
Cuando se retorna a un procedimiento de llamada, la
direccin de vuelta puede eliminarse dicha memoria
Durante una instruccin de llamada a subrutina el
contenido de PC se almacena en una memoria o estructura
de datos de tipo pila (LIFO).
Gestin Instrucciones de control
La recuperacin de las direcciones de retorno se hace en
orden inverso al de su almacenamiento y esta es la razn
del porque se utiliza una estructura de datos del tipo LIFO.
El almacenamiento de las direcciones de las instrucciones de
llamada se realiza en una memoria o estructura de datos de
tipo pila(memoria LIFO, "Last Input First Output)
Gestin Instrucciones de control Gestin Instrucciones de control Gestin Instrucciones de control Gestin Instrucciones de control
En consecuencia, las microoperaciones a realizar durante
la fase de ejecucin de las llamadas a procedimientos
sern:
Llamada a procedimiento:
Pila PC
Gestin Instrucciones de control Gestin Instrucciones de control Gestin Instrucciones de control Gestin Instrucciones de control
Pila PC
PC ds
ds, es la direccin de comienza del procedimiento (contenido
de rD, en el computador-ejemplo).
Retorno de procedimiento:
PC Pila
Implementacin de la pila. Dos opciones:
Pila Hardware: En los computadores de muy alta
velocidad se suele disear con circuitos especficos, del
Gestin Instrucciones de control Gestin Instrucciones de control Gestin Instrucciones de control Gestin Instrucciones de control
velocidad se suele disear con circuitos especficos, del
propio procesador.
Pila Software: Generalmente, la pila se gestiona o
simula en memoria principal(MP), almacenndose las
direcciones de retorno en una zona (zona LIFO)de la
MP.
El procesador contiene un registro especfico (puntero
pila o SP, Stack Pointer) que contiene en todo
momento la direccin donde se guard la ltima
direccin de retorno (cabecera de la pila)
Gestin Instrucciones de control Gestin Instrucciones de control Gestin Instrucciones de control Gestin Instrucciones de control
direccin de retorno (cabecera de la pila)
Existen instrucciones mquina especficas para el uso del
SP
Gestin Instrucciones de control Gestin Instrucciones de control Gestin Instrucciones de control Gestin Instrucciones de control
Gestin Instrucciones de control Gestin Instrucciones de control Gestin Instrucciones de control Gestin Instrucciones de control
Qu es mejor pilahard o pilasoft?
Como la gestin de pila en la memoria principal implica la
realizacin de lecturas o escrituras en la MP, esta forma es
mucho ms lenta que utilizar una memoria LIFO hardware
especfica. especfica.
No obstante, la pila hardware es menos verstil (el nivel de
anidamiento viene fijado por el tamao fsico de la pila) y el
tamao del procesador ser mayor (en vez de contener el
registro SP debe contener toda la pila).
Algunos computadores (RISC, por ejemplo), contienen pila
hard, y cuando se llena utilizan pila en MP
Microprocesadores
Microprocesadores
Microprocesadores
Microprocesadores
Microprocesadores
Microprocesadores
Procesadores CISC y RISC
Procesadores CISC y RISC Procesadores CISC y RISC Procesadores CISC y RISC Procesadores CISC y RISC
Procesadores RISC y CISC
CISC
Emphasis on hardware
Includes multi-clock
complex instructions
Memory-to-memory:
RISC
Emphasis on software
Single-clock,
reduced instruction only
Register to register: Memory-to-memory:
"LOAD" and "STORE"
incorporated in instructions
Small code sizes,
high cycles per second
Transistors used for storing
complex instructions
Register to register:
"LOAD" and "STORE"
are independent instructions
Low cycles per second,
large code sizes
Spends more transistors
on memory registers
Procesadores RISC y CISC
En trminos d:e Performance:
The CISC approach attempts to minimize the number of
instructions per program, sacrificing the number of cycles per
instruction.
The RISC approach does the opposite, reducing the cycles per
instruction at the cost of the number of instructions per instruction at the cost of the number of instructions per
program.
Interrupcin: Detencin de la ejecucin de un programa
antes de que concluya para ejecutar otro que posee mayor
prioridad.
Ej:
Fallo de alimentacin.
Interrupcin
Fallo de alimentacin.
Anomalas de hardware.
Peticin de E/S de un perifrico.
Desbordamiento.
Gestin de tiempo compartido.
Violacin de proteccin de memoria.
Peticiones del programador o usuario (Ctrl-C).
1. Peticin de la interrupcin (Interruption Request):
Se solicita por medio de una seal de estado enviada a la
CPU. El procesador termina de ejecutar la instruccin o
ciclo de lectura o escritura que esta en curso, y luego
atiende la peticin de la interrupcin.
2. Tratamiento de la interrupcin (Interruption
Gestin de una Interrupcin
2. Tratamiento de la interrupcin (Interruption
Acknowledge):
Inicia la interrupcin, se analiza la causa de esta (por ej:
se determina el perifrico que la solicito), inhabilita en
caso necesario la posibilidad de atender otras
interrupciones, guarda en memoria principal el contenido
de los registros del procesador y pasa el control a la
interrupcin.
3. Ejecucin del procedimiento. Se ejecuta la(s)
instrucciones que acompaan la interrupcin y se
generan , si es necesario, los mensajes al usuario.
4. Fin de la Interrupcin: Restaura los contenidos de
los registros del procedimiento que se interrumpi y
Gestin de una Interrupcin (continuacin)
los registros del procedimiento que se interrumpi y
habilita las interrupciones inhabilitadas si es que las
hay.
Se pasa el control al programa interrumpido.
Gestin de una Interrupcin
Instrucciones se ejecutan en varias etapas
Lectura de instruccin
Decodificacin
Ejecucin de operacin
Escritura de resultados
Ejecucin Secuencial de Instrucciones
Termina una instruccin
antes de comenzar la siguiente.
Bajo flujo de instrucciones
Recursos ociosos
Lavanderia secuencial: mal negocio!!!
E
30 40 2030 40 2030 40 2030 40 20
6 PM 7 8 9 10 11 12
O
r
Tiempo
30 40 2030 40 2030 40 2030 40 20
6 PM 7 8 9 10 11 12
O
r
Tiempo
A
B
C
D
r
d
e
n
L
a
v
a
d
o
AA
BB
CC
DD
r
d
e
n
L
a
v
a
d
o
Inspirado en las cadenas de montaje en una fabrica. (fabricacin de un
automvil)
Es tcnica de diseo que permite ejecutar, en una nica CPU, ms de
una instruccin (no completa) al mismo tiempo, donde cada una de ellas
est ejecutndose en una etapa distinta. (comenzar a ejecutar la siguiente
instruccin en cuanto la anterior termina la primera etapa)
Pipelining o Segmentacin
Se ejecutan n instrucciones cada una en una etapa distinta de
ejecucin
Es slo una fraccin de la instruccin la que se est ejecutando
En un nico ciclo de reloj no se ha ejecutado completamente ninguna
instruccin.
Mayor y mejor utilizacin de recursos. Mayor flujo de instrucciones.
Lavandera segmentada: buen negocio!
6 PM 7 8 9 10 11 12
Tiempo
O
6 PM 7 8 9 10 11 12
Tiempo
O
Pipelining o Segmentacin
A
B
C
D
30 40 40 40 40 20
O
r
d
e
n
L
a
v
a
d
o
AA
BB
CC
DD
30 40 40 40 40 20 30 40 40 40 40 40 40 40 20
O
r
d
e
n
L
a
v
a
d
o
Pipelining no reduce el tiempo de cada tarea individual
Pipelining tampoco reduce el tiempo de cada parte de la tarea
Pipelining efectivamente reduce el trabajo completo: la suma de todas las
tareas
Pipelining est limitado a la velocidad de la parte ms lenta de las que
componen la tarea
Pipelining o Segmentacin
Pipelining presenta un aumento terico de n veces, n es el nmero de partes
de la tarea
El desempeo se reduce con:
El tiempo de llenado y de vaciado del pipe
despreciable si existen millones de instrucciones
Las competencias por recursos
se manejan en las etapas de diseo
Las dependencias de datos entre instrucciones muy difciles de resolver y
hacen detener el pipe
Pipelining o Segmentacin
Explotando el paralelismo a nivel de instruccin, los superescalares son
capaces de ejecutar mas de una instruccin por ciclo de reloj (dos, tres,
cuatro,etc).
Los procesadores superescalares pueden iniciar la ejecucin simultnea
de varias instrucciones escalares en paralelo de manera que se pueden
operar varios elementos de un vector dentro de una misma iteracin.
Procesamiento Superescalar
operar varios elementos de un vector dentro de una misma iteracin.
Se complementa con pipeline, la mayora de los procesadores
contemporneos utilizan ambos.
Para sto, es necesario que existan varias unidades aritmtico-lgicas, de
punto flotante y de control. El proceso que sigue el micro es
transparente al programa, aunque el compilador puede ayudar
analizando el cdigo y generando un flujo de instrucciones optimizado.
Multincleo o Multicore
Procesadores Multicore:
Mltiples CPU (ncleos) independientes en un chip.
Son dos o ms ncleos trabajando a una misma frecuencia.
Desde 2 a 8 ncleos hoy en da.
No hay paralelizacin automtica. No hay paralelizacin automtica.

Вам также может понравиться