Sie sind auf Seite 1von 23

MICROPROCESADORES

ESCUELA TCNICA SUPERIOR DE INGENIERA


INFORMTICA
Tema 2: Conceptos Bsicos
Carlos Garre
1
MICROPROCESADORES
ESCUELA TCNICA SUPERIOR DE INGENIERA
INFORMTICA
Conceptos bsicos
Estructura de un computador
Componentes bsicos del microprocesador:
Unidad de control.
Unidad de tratamiento.
Coprocesador matemtico.
Memoria cach.
Funcionamiento interno del microprocesador:
Microprogramacin.
Repertorio de instrucciones.
Modos de direccionamiento de un microprocesador.
C
o
n
t
e
n
i
d
o
s
2
MICROPROCESADORES
ESCUELA TCNICA SUPERIOR DE INGENIERA
INFORMTICA
Repertorio de Instrucciones
3
Lenguaje mquina:
nico lenguaje que un microprocesador es capaz de interpretar y ejecutar
directamente.
Secuencia de ceros y unos.
Ligado ntimamente a la arquitectura interna del microprocesador.
Ensamblador:
Cdigo mnemotcnico para representar el lenguaje mquina.
Equivalencia total con el lenguaje mquina.
Repertorio o juego de instrucciones de un microprocesador:
Conjunto de instrucciones mquina que es capaz de ejecutar.
Se agrupan en diferentes tipos, que simplificando se pueden englobar slo
en dos grandes tipos:
o Instrucciones de transferencia de datos.
o Instrucciones de procesamiento de datos.
El funcionamiento de cada instruccin viene definido por un
microprograma, de nivel ms bajo que el lenguaje mquina.
MICROPROCESADORES
ESCUELA TCNICA SUPERIOR DE INGENIERA
INFORMTICA
Repertorio de Instrucciones
4
Instrucciones de Transferencia de Datos:
Instrucciones de carga y almacenamiento (lw, sw, )
Instrucciones de control (jal, bne, j, )
Instrucciones de Procesamiento de Datos:
Instrucciones aritmticas (add, subi, )
Instrucciones lgicas (and, ori, )
Instrucciones de desplazamiento (shl, sra, )

Instrucciones de Control:
Sirven para alterar el ciclo de ejecucin de instrucciones para que no siempre se
ejecuten secuencialmente, sino que en un momento dado podamos saltar a
ejecutar cualquier otra instruccin que tengamos en la memoria.
Son las que nos permiten implementar:
Sentencias IF-THEN-ELSE
Bucles FOR o WHILE
Llamadas a procedimientos y funciones.
MICROPROCESADORES
ESCUELA TCNICA SUPERIOR DE INGENIERA
INFORMTICA
Instrucciones de Control
5
Por qu las instrucciones de control son instrucciones de
transferencia?
Porque se limitan a mover datos al contador de programa (PC).
Un contador puede trabajar en dos modos:
Incremento: PC PC + 1
Carga en paralelo: PC valor
Es similar al contador de la prctica del bus de datos de ETC!
Por tanto, una instruccin de control sera una instruccin que hara una
carga en paralelo sobre el registro PC
Se pueden diferenciar dos tipos de instrucciones de control:
Bifurcaciones.
Instrucciones de subrutina.
MICROPROCESADORES
ESCUELA TCNICA SUPERIOR DE INGENIERA
INFORMTICA
Bifurcaciones
6
Las bifurcaciones nos permiten implementar las sentencias:
IF-THEN-ELSE
CASE
WHILE
FOR
REPEAT
Bifurcaciones incondicionales
Se limitan nicamente a cargar una direccin de memoria sobre el PC.
En esta direccin debera haber una instruccin ejecutable.
PC dir
Bifurcaciones condicionales:
Slo se produce la bifurcacin si se cumple una determinada condicin.
En algunas arquitecturas estas condiciones se deben leer
obligatoriamente del registro de estado (ltima operacin fue 0, ).
En otras arquitecturas podemos leer la condicin mediante una
comparacin directa entre dos registros (bne, bgt, ).
MICROPROCESADORES
ESCUELA TCNICA SUPERIOR DE INGENIERA
INFORMTICA
Bifurcaciones
7
MICROPROCESADORES
ESCUELA TCNICA SUPERIOR DE INGENIERA
INFORMTICA
Instrucciones de Subrutina
8
BEGIN
C := Sumar (A, B);
A := 1;
END.
FUNCTION Sumar (X: INTEGER; Y: INTEGER) : INTEGER
BEGIN
Sumar := X + Y;
END;
Despus de llamar a Sumar, cmo podemos volver al programa principal
para ejecutar A := 1?
Las instrucciones de subrutina son un tipo de instrucciones de control que
se utilizan para implementar las llamadas a procedimientos y funciones,
as como la vuelta al programa que las llam tras su finalizacin.
Existen, por tanto, dos tipos de instrucciones de subrutina:
Instrucciones de llamada
Instrucciones de retorno.
MICROPROCESADORES
ESCUELA TCNICA SUPERIOR DE INGENIERA
INFORMTICA
Instrucciones de Subrutina
9
Implementacin con Registro Auxiliar:
Llamada: (jal)
1. PC2 PC
2. PC dir
Retorno: (jr $ra)
1. PC PC2
No podemos anidar funciones!
MIPS: a nivel hardware se implementa as (PC2 = $ra), pero a nivel
software se utiliza siempre una pila.
Implementacin con Banco de Registros:
Varios registros auxiliares (PC2, PC3, ).
Permite anidamiento limitado de funciones.
Microcontroladores PIC-16: 8 niveles de anidamiento.
Implementacin con Pila:
La solucin ms comn!
Anidamiento virtualmente ilimitado.
MICROPROCESADORES
ESCUELA TCNICA SUPERIOR DE INGENIERA
INFORMTICA
La Pila
10
Meter muchos registros para anidamiento de funciones es costoso.
Los registros son la memoria ms cara!
Necesitamos mucha memoria y que no sea cara
Ya la tenemos! MEMORIA PRINCIPAL.
Reservamos una zona dentro de memoria principal para guardar los valores de
PC en las llamadas anidadas. A esta zona la llamamos PILA o STACK.
Llamada:
1. Pila PC
2. PC dir
Retorno:
1. PC Pila
Cmo sabemos dnde est la pila dentro de la memoria?
Necesitamos un registro especial que contenga la direccin de memoria en la
que se encuentra la pila.
A este registro lo llamamos Puntero de Pila (SP: Stack Pointer).
MICROPROCESADORES
ESCUELA TCNICA SUPERIOR DE INGENIERA
INFORMTICA
La Pila
11
Cmo guardar muchos valores de PC con un solo puntero de pila?
En realidad slo nos interesa el ltimo valor de PC que se guard!
Memoria LIFO (Last In First Out). Sabiendo slo la ltima posicin, sabemos
que todas las anteriores pertenecen tambin a la pila.
No confundir con memoria FIFO! parada del autobs.
Necesitamos mucha memoria y que no sea cara
Ya la tenemos! MEMORIA PRINCIPAL.
Reservamos una zona dentro de memoria principal para guardar los valores de
PC en las llamadas anidadas. A esta zona la llamamos PILA o STACK.
MICROPROCESADORES
ESCUELA TCNICA SUPERIOR DE INGENIERA
INFORMTICA
La Pila
12
MICROPROCESADORES
ESCUELA TCNICA SUPERIOR DE INGENIERA
INFORMTICA
La Pila
13
MICROPROCESADORES
ESCUELA TCNICA SUPERIOR DE INGENIERA
INFORMTICA
La Pila
14
MICROPROCESADORES
ESCUELA TCNICA SUPERIOR DE INGENIERA
INFORMTICA
La Pila
15
Igual que una pila de libros, la pila crece hacia arriba:
Cada vez que guardamos un nuevo dato en la
pila, lo hacemos en una posicin anterior al
ltimo dato que se guard.
Desbordamiento de pila (Stack Overflow)
Llamada:
1. SP SP - 1
2. M(SP) PC
3. PC dir
Retorno:
1. PC M(SP)
2. SP SP + 1
MICROPROCESADORES
ESCUELA TCNICA SUPERIOR DE INGENIERA
INFORMTICA
Conceptos bsicos
Estructura de un computador
Componentes bsicos del microprocesador:
Unidad de control.
Unidad de tratamiento.
Coprocesador matemtico.
Memoria cach.
Funcionamiento interno del microprocesador:
Microprogramacin.
Repertorio de instrucciones.
Modos de direccionamiento de un microprocesador.
C
o
n
t
e
n
i
d
o
s
16
MICROPROCESADORES
ESCUELA TCNICA SUPERIOR DE INGENIERA
INFORMTICA
Modos de Direccionamiento
17
Mecanismos por los que se puede especificar la ubicacin de los
operandos de una instruccin.
El campo de operandos de una instruccin es limitado.
Necesitamos flexibilidad de direccionamiento.
Algunos modos de direccionamiento comunes:
Inmediato.
Directo a registro.
Indirecto a registro con desplazamiento.
Relativo a contador de programa.
Implcito.
MICROPROCESADORES
ESCUELA TCNICA SUPERIOR DE INGENIERA
INFORMTICA
Direccionamiento Inmediato
18
El operando es parte de la instruccin.
Normalmente se almacena como un entero en complemento a 2.
Ejemplo en MIPS:
addi $r0, $r1, -2
No hace falta un acceso a memoria para captar el operando muy rpido!.
La magnitud del operando est limitada por el n de bits.
La magnitud se fija en el momento de programar no es variable.
PREGUNTA: Cul es la mxima magnitud que podremos representar si el
campo Operando es de 10 bits?
MICROPROCESADORES
ESCUELA TCNICA SUPERIOR DE INGENIERA
INFORMTICA
Direccionamiento Directo a Registro
19
El operando se encuentra en un registro.
En el campo Operando de la instruccin se codifica el n de registro.
No hay acceso a memoria muy rpido!
El tamao del campo Operando es pequeo permite instrucciones ms
cortas.
El nmero de registros est limitado
add $r0, $r1, $r2
MICROPROCESADORES
ESCUELA TCNICA SUPERIOR DE INGENIERA
INFORMTICA
Direccionamiento Indirecto a Registro con
Desplazamiento
20
Necesitamos dos campos: Registro (R) y Desplazamiento (D).
El dato se encuentra en memoria, pero la direccin la obtenemos a partir de
estos dos campos.
Direccin = Contenido del registro R + D.
PREGUNTA: Por qu no utilizar un direccionamiento directo a memoria?
lw $r0, 2($r1)
MICROPROCESADORES
ESCUELA TCNICA SUPERIOR DE INGENIERA
INFORMTICA
Direccionamiento Relativo a PC
21
Es como el direccionamiento indirecto a registro con desplazamiento, pero el
registro est implcito, y es siempre el Contador de Programa: PC.
Slo se especifica un desplazamiento con respecto a PC.
Utilizado en instrucciones de bifurcacin no puedes bifurcar a una zona de
memoria muy lejana.
Ejemplo en MIPS: 16 bits podemos bifurcar a una instruccin que se
encuentre 32768 lneas ms adelante nos sobra para IF y bucles
En MIPS: instrucciones como jal dir_salto utilizan direccionamiento
pseudodirecto:
En campo de direccin de 26 bits se multiplica por 4 (shl 2), y se
concatenan los 4 primeros bits del PC.
Ms adecuado para instrucciones de subrutina.
bne $16, $17, dir_salto
MICROPROCESADORES
ESCUELA TCNICA SUPERIOR DE INGENIERA
INFORMTICA
Direccionamiento Implcito
22
No se necesitan campos para los operandos. Conociendo el cdigo de
operacin, se sabe implcitamente dnde est el operando.
En MIPS: jal dir_salto. Hay que especificar uno de los operandos, pero
hay otro que est implcito: cul? ...
El direccionamiento implcito es tpico de las operaciones para manejar la pila:
PUSH: Almacenar un dato en la cabecera de la pila.
POP: Extraer un dato de la cabecera de la pila.
En MIPS no existen estas instrucciones, pero en ensamblador x86 s.
Operando implcito: Puntero de pila (SP).
MICROPROCESADORES
ESCUELA TCNICA SUPERIOR DE INGENIERA
INFORMTICA
Ejercicio Opcional
23
Enunciado en Campus Virtual, diferente para cada alumno:
Enunciado (PDF).
Contenidos iniciales de Memoria Principal (.txt).
Se debe entregar:
Contenidos finales de Memoria Principal y de Registros (resultado.xls).
Traza de microprograma (microtraza.xls).
Se da un ejemplo completo ya resuelto:
Fecha tope: en Campus Virtual.

Das könnte Ihnen auch gefallen