View
221
Download
0
Category
Preview:
DESCRIPTION
ALU y procesadores
Citation preview
UNIDAD ARITMETICA Y LOGICA
Una unidad aritmeacutetica y loacutegica (ALU) es un circuito combinacional que desarrolla micro operaciones loacutegicas y
aritmeacuteticas de dos operandos A y B de n bits Las operaciones llevadas a cabo por la ALU son controladas por
un grupo de entradas de seleccioacuten de funcioacuten
UNIDAD ARITMEacuteTICA LOacuteGICA
Realiza las operaciones elementales tanto aritmeacuteticas como loacutegicas que implementa el computador suma resta AND OR NOT etc
Los datos con los que opera se leen de Memoria Principal y se almacenan temporalmente en los registros que contiene la UAL
ARITMEacuteTICA DE LAS COMPUTADORAS
bull La aritmeacutetica que realiza una computadora es diferente de la aritmeacutetica de los cursos de matemaacuteticas Para cada computadora hay una cifra positiva llamada el eacutepsilon () de la computadora que es la cantidad positiva mas grande tal que 1 + = 1 Su existencia hace que la propiedad de asociatividad de la suma no se cumpla siempre (1 + ) + 6= 1 + ( + )
ARITMEacuteTICA CON ENTEROS
Un entero se puede representar empleando todos los bits de una palabra de computadora con la salvedad de que se debe reservar un bit para el signo Por ejemplo en una maacutequina con longitud de palabra de 32 bits los enteros estaacuten comprendidos entre -(231 - 1) y 231 - 1 = 2147483647 Un nuacutemero representado en formato entero es exacto Las operaciones aritmeacuteticas entre nuacutemeros enteros son tambieacuten exactas siempre y cuando 1
La solucioacuten no esteacute fuera del rango del nuacutemero entero maacutes grande o maacutes pequentildeo que se puede representar (generalmente con signo) En estos casos se dice que se comete un error de desbordamiento por exceso o por defecto (en ingleacutes Overflow y Underflow) y es necesario recurrir a teacutecnicas de escalado para llevar a cabo las operaciones
2 La divisioacuten se interpreta que da lugar a un nuacutemero entero despreciando cualquier resto
ENTEROS
Para representar un nuacutemero entero en la computadora se utiliza el sistema de numeracioacuten binaria o de base 2 debido a la tecnologiacutea que se utiliza para la memoria la cual solo permite el uso de 2 diacutegitos 0 y 1
Los nuacutemeros enteros de acuerdo a la definicioacuten pueden ser positivos o negativos esto hace que la representacioacuten en la computadora se establezcan convenciones (meacutetodo de signo y magnitud o el de Complemento)
ARITMEacuteTICA CON PUNTO FLOTANTE
Representacioacuten de Nuacutemeros RealesUn nuacutemero real en cualquier base (R) puede ser representado como (notacioacuten de punto fijo)
Un meacutetodo alterno que facilita la manipulacioacuten de los nuacutemeros reales es la notacioacuten cientiacutefica o de punto flotante
donde
A = (A A A A A A A A A )n-1n+
R 1 -1 -2 -(m-1)- n-2 0 -m Rhellip hellip
La forma general de un nuacutemero real de base (R) en notacioacuten flotante f f f f x R -2-1
+- -3 -m
Ehellip +-
Es llamada la parte fraccionaria o mantisaEs un nuacutemero entero llamado exponenteEs la base
f f f f-2-1 -3 -mhellip
ER
Signo Exponente Mantisa
Mantisa
Signo Exponente Mantisa
Mantisa
dondeSigno de la mantisa (representa con 0 o 1)Exponente (representa entero en complemento a 2)Mantisa (representa entero en signo y magnitud)
ExponenteMantisa
Signo
Mantisa
Mantisa
Nuacutemero Real
Parte Real
Parte Imaginaria
REPERTORIO DE INSTRUCCIONES
bull Para comandar una computadora se le debe ldquohablarrdquo en su lenguaje Las palabras del lenguaje de una maacutequina son llamadas instrucciones y su vocabulario es llamado repertorio de instrucciones En esta seccioacuten se expone el repertorio de instrucciones de una computadora real considerando una forma entendible para los humanos (ensamblador) y una forma entendible por la computadora (coacutedigo maacutequina)
INSTRUCCIONES bull Es faacutecil ver por meacutetodos loacutegicos formales que existen ciertos [repertorios de instrucciones] que son en
abstracto adecuados para controlar y causar la ejecucioacuten de cualquier secuencia de operaciones Las consideraciones realmente decisivas desde el punto de vista actual en seleccionar un [repertorio de instrucciones] son maacutes de naturaleza praacutectica La simplicidad del equipo demandado por el [repertorio de instrucciones] y la claridad de su aplicacioacuten a problemas realmente importantes junto con la velocidad del manejo de esos problemas
bull Burks Goldstine y von Neumann 1947
bull La ldquosimplicidad del equipordquo es una consideracioacuten tan valiosa para las maacutequinas actuales como lo fue en los 50rsquos La meta de este capiacutetulo es mostrar un repertorio de instrucciones que siga este consejo mostrando como eacuteste es representado en hardware y su relacioacuten con los lenguajes de alto nivel
bull El repertorio de instrucciones bajo estudio es de una arquitectura MIPS usado por NEC Nintendo Silicon Graphics y Sony entre otros Y es un repertorio de instrucciones tiacutepico disentildeado en los 80rsquos
MIPS ndash INSTRUCCIONES aritmeacuteticoloacutegicas
bull bull Principio de disentildeo 1
bull ndash ldquoLa simplicidad favorece la uniformidadrdquo
bull bull Todos los computadores deben ser
bull capaces de realizar caacutelculos aritmeacuteticos y
bull loacutegicos
bull add a b c a 1048773 b + c
bull sub a a d a 1048773 a + d = (b + c) - d
bull or a a e a 1048773 a + e = (b + c + d) OR e
MIPS ndash INSTRUCCIONES DE SALTOCONDICIONAL
bull bull Instrucciones de salto condicional (soacutelo dos)
bull ndash bne $s0 $s1 L1 branch to L1 if no equal
bull ndash beq $s0 $s1 L1 branch to L1 if equal
bull bull Pseudoinstrucciones de salto condicional
bull ndash slt (set si menor que) beq bne y $zero permiten las
bull condiciones restantes
bull blt $s1 $s2 etiqueta salta si menor que
bull slt $at $s1 $s2
bull bne $at $zero etiqueta
bull ndash El ensamblador expande las pseudoinstrucciones
bull bull $at registro utilizado por el programa ensamblador
EJEMPLO DE COMPILACIOacuteN DE UNA SENTENCIA DE SALTO CONDICIONAL
bull bull Coacutedigo fuente de C
bull If (i==j) h = i + j
bull h i y j en $s0 $s1 y $s2
bull bull Compilacioacuten en MIPS
bull bne $s1 $s2 etiqueta
bull add $s0 $s1 $s2
bull etiqueta hellip
LENGUAJE MAacuteQUINA ndash INSTRUCCIONESARITMEacuteTICO-LOacuteGICAS
bull bull El tamantildeo de las instrucciones es de 32 bits
bull bull Las instrucciones aritmeacutetico-loacutegicas son codificadas con el formato tipo-R
bull ndash add $rd $rs $rt
bull bull Significado de los campos
bull ndash op 6-bits coacutedigo de operacioacuten
bull ndash rs rt rd 5-bits registro source target destination
bull ndash shamt 5-bits nuacutemero de bits a desplazar (cuando aplicable)
bull ndash funct 6-bits coacutedigo de funcioacuten (extensioacuten del coacutedigo de operacioacuten)
bull op rs rt rd shamt funct Formato de instrucciones aritmeacuteticas
bull 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits Todas las instrucciones MIPS de 32 bits
bull 000000 01010 11111 00011 00000 100000 0x015f1820 add $3$10$31
LENGUAJE MAacuteQUINA ndash INSTRUCCIONESDE ACCESO A MEMORIA
bull bull Principio de disentildeo 3
bull ndash ldquoUn buen disentildeo necesita buenas soluciones de compromisordquo
bull bull Las instrucciones de load y store especifican dos registros y un
bull desplazamiento
bull ndash Formato tipo I (16 bits para el dato inmediato)
bull ndash lw $rt inmediato($rs) sw $rt inmediato($rs
bull ndash lh lhu lb lbu sh sb (load half half unsigned byte byte unsigned store half
bull byte)
bull op rs rt Direccioacuteninmediato Formato de instruciones de carga
bull 6 bits 5 bits 5 bits 16 bits Todas las instrucciones MIPS de 32 bits
bull 100011 00011 00101 0000000000100000 0x8c650020 lw $
TIPO DE OPERACIONES
Transferencia de datosbull Move (transferir) transfiere una palabra o un bloque desde un origen a un destinobull Store (memorizar) Transfiere una palabra desde el procesador a memoriabull Load (cargar o captar) transfiere una palabra desde memoria al procesadorbull Exchange (intercambiar) intercambia los contenidos del origen y el destinobull Clear (reiniciar o poner a 0) Transfiere una palabra de ceros al destinobull Set (poner a 1) transfiere una palabra de unos al destinobull Push (introducir en la pila ldquoapilarrdquo) Transfiere una palabra desde un origen a la cabecera de la pilabull Pop (extraer de la pila ldquodesapilarrdquo) Transfiere una palabra desde la cabecera de la pila a un destinoAritmeacuteticas bull Add (sumar) Calcula la suma de 2 operandosbull Substract (restar) Calcula la diferencia de dos operandosbull Multiply (multiplicar) Calcula el producto de dos operandosbull Divide (dividir) Calcula el cociente de dos operandosbull Absolute (valor absoluto) Sustituye el operando por su valor absolutobull Negate (opuesto) Cambia el signo del operandobull Increment (incrementar) suma 1 al operandobull Decrement (decremenatar) Resta 1 al operandoLoacutegicasbull AND (Producto loacutegico Y) Realiza la operacioacuten loacutegica Y (AND)bull OR (Suma loacutegica O) Realiza la operacioacuten loacutegica o (OR)bull NOT (Complemento) Realiza el complemento (NOT) bit a bit del dato
bull Exclusive-OR (OR-exclusiva) Realiza la operacioacuten loacutegica O-Exclusiva (XOR)bull Test (comprobar) Comprueba la condicioacuten especificada foja los indicadores (flags) en funcioacuten del
resultadobull Compare (comparar) Realiza la operacioacuten loacutegica o aritmeacutetica de dos o mas operandos fija los
indicadores (flags) en funcioacuten del resultadobull Set control variables (fijar variables de control) Instrucciones que fijan controles para proteccioacuten gestioacuten
de interrupciones control de temporizador etcbull Shift (desplazamiento) Desplaza el operando a la izquierda (derecha) introduciendo valores constantes
por el otro extremobull Rotate (rotar) Desplaza el operando a la izquierda (derecha) de forma ciacuteclicaControl de flujobull Jump (bifurcacioacuten o salto) Ruptura incondicional de flujo carga el PC con la direccioacuten especificada bull Jump condicional (salto condicional) Comprueba la condicioacuten especificada dependiendo de la condicioacuten
o carga del PC con la direccioacuten indicada o no hace nadabull Jump to Subrutina (llamada la subrutina) Guarda la informacioacuten de control del programa en una posicioacuten
conocida y salta a la direccioacuten indicadabull Return (retorno) Sustituye el contenido del PC y de otros registros por los de la posicioacuten conocidabull Execute (ejecutar) Capta el operando de la direccioacuten indicada y lo ejecuta como una instruccioacuten no
modifica el PCbull Skip (salto impliacutecito) Incrementa el PC de manera que salte la instruccioacuten siguientebull Skip conditional (salto impliacutecito condicional) Comprueba la condicioacuten indicada realiza el salto impliacutecito
o no hace nada dependiendo de la condicioacutenbull Halt (parar) Detiene la ejecucioacuten del programa
bull Wait (esperar) Detiene la ejecucioacuten del programa comprueba de forma repetitiva la condicioacuten especificada reanuda la ejecucioacuten cuando se satisface la condicioacuten
bull No operation (no operacioacuten) No se ejecuta operacioacuten alguna pero la ejecucioacuten del programa continuaENTRADASALIDAbull InPut (entrada) Transfiera datos desde un puerto o dispositivo de ES al destino (memoria principal o
registro del procesador)bull OutPut (salida) Transfiera datos desde el origen especificado a un puerto o dispositivo de ESbull Start IO (iniciar ES) Transfiere instrucciones al procesador de ES para iniciar operaciones de ESbull Test IO (comprobar ES) Transfiere informacioacuten de estado desde el sistema de ES al destino
especificadoCONVERSIONbull Traslate (traducir) Traduccioacuten de los valores de una seccioacuten de memoria basada en una tabla de
correspondenciabull Convert (convertir) Convierte el contenido de una palabra de un formato a otro (por ejemplo de decimal
empaquetado a binario)
ACCIONES DEL PROCESADOR PARA VARIOS TIPOS DE OPERADORES
TRANSFERENCIA DE DATOS Transfiere datos de una posicioacuten a otra si se implica la memoriabull Determina la direccioacuten de memoriabull Realiza la transformacioacuten de direcciones de memoria virtual a realbull Comprueba la cachebull Inicia la lecturaescritura ende memoriaARITMEacuteTICAbull Puede implicar transferencia de datos antes yo despueacutesbull Realiza la operacioacuten en la ALUbull Actualiza coacutedigos e indicadores de condicioacutenLOacuteGICA Lo mismo que en la aritmeacuteticaCONVERSION Similar a la aritmeacutetica y la loacutegica Puede implicar a loacutegica especial para realizar la conversioacutenCONTRO DEL FLUJO Actualiza el contador del programa En el caso de llamadas y retorno de subrutinas gestiona la transferencia y enlace de paraacutemetrosES bull Cursa una orden en el modulo de ESbull En el caso de ES asignada en memoria determina la direccioacuten de memoria correspondiente
MODOS DE DIRECCIONAMIENTObull InmediatoEn la instruccioacuten estaacute incluido directamente el operandoEn este modo el operando es especificado en la instruccioacuten misma En otras palabras una instruccioacuten de modo inmediato tiene un campo de operando en vez de un campo de direccioacuten El campo del operando contiene el operando actual que se debe utilizar en conjunto con la operacioacuten especificada en la instruccioacuten Las instrucciones de modo inmediato son uacutetiles para inicializar los registros en un valor constanteCuando el campo de direccioacuten especifica un registro del procesador la instruccioacuten se dice que estaacute en el modo de registro
bull DirectoEl campo de operando en la instruccioacuten contiene la direccioacuten en memoria donde se encuentra el operando En este modo la direccioacuten efectiva es igual a la parte de direccioacuten de la instruccioacuten El operando reside en la memoria y su direccioacuten es dada directamente por el campo de direccioacuten de la instruccioacuten En una instruccioacuten de tipo ramificacioacuten el campo de direccioacuten especifica la direccioacuten de la rama actualCon este tipo de direccionamiento la direccioacuten efectiva es contenida en la misma instruccioacuten tal como los valores de datos inmediatos que son contenidos en la instruccioacuten Un procesador de 16 bits suma la direccioacuten efectiva al contenido del segmento de datos previamente desplazado en 4 bits para producir la direccioacuten fiacutesica del operando
bull IndirectoEn este modo de direccionamiento no es necesario poner ninguna direccioacuten de forma expliacutecita ya que en el propio coacutedigo de operacioacuten se conoce la direccioacuten del (de los) operando(s) al (a los) que se desea acceder o con el (los) que se quiere operarUn ejemplo de este tipo de direccionamiento lo podemos encontrar en la arquitectura de acumulador (AC) donde siempre hay un paraacutemetro impliacutecito y este es el ACPara finalizar y dejar este modo de direccionamiento generalizado para las arquitecturas maacutes usuales remarcamos que tambieacuten podemos encontrarlo en la arquitectura con registros de propoacutesito general por ejemplo con oacuterdenes como set c que pone a 1 el registro c (acarreo)
bull De registroSirve para especificar operandos que estaacuten en registros
bull Indirecto mediante registrosEl campo de operando de la instruccioacuten contiene un identificador de registro en el que se encuentra la direccioacuten efectiva del operando En este modo el campo de la direccioacuten de la instruccioacuten da la direccioacuten en donde la direccioacuten efectiva se almacena en la memoria El control localiza la instruccioacuten de la memoria y utiliza su parte de direccioacuten para accesar la memoria de nuevo para leer una direccioacuten efectiva Unos pocos modos de direccionamiento requieren que el campo de direccioacuten de la instruccioacuten sea sumado al control de un registro especificado en el procesadorLa direccioacuten efectiva en este modo se obtiene del siguiente caacutelculoDir Efectiva = Dir de la parte de la instruccioacuten + Contenido del registro del procesador
bull De desplazamientoCombina el modo directo e indirecto mediante registros
bull De pilaSe utiliza cuando el operando estaacute en memoria y en la cabecera de la pilaEste direccionamiento se basa en las estructuras denominadas Pila(tipo LIFO) las cuales estaacuten marcados por el fondo de la pila y el puntero de pila (SP) El puntero de pila apunta a la uacuteltima posicioacuten ocupada Asiacute como puntero de direccionamiento usaremos el SP El desplazamiento maacutes el valor del SP nos daraacute la direccioacuten del objeto al que queramos hacer referencia En ocasiones si no existe C de desplazamiento solo se trabajara con la cima de la pila Este tipo de direccionamiento nos aporta flexibilidad pero por el contrario es mucho maacutes complejo que otros tipos estudiados maacutes arriba
ORGANIZACIOacuteN DEL PROCESADOR
Captar instrucciones el procesador lee una instruccioacuten de memoria (registro cache o memoria principal)Interpretar instruccioacuten la instruccioacuten se codifica para determinar queacute accioacuten es necesarioCaptar datos la ejecucioacuten de una instruccioacuten puede exigir leer datos de memoria o de un moacutedulo de ESProcesar datos la ejecucioacuten e una instruccioacuten puede exigir llevar a cabo alguna operacioacuten aritmeacutetica o loacutegica con los datosEscribir datos los resultados de una ejecucioacuten pueden exigir escribir datos en la memoria o en el moacutedulo de ESPara hacer estas cosas el procesador necesita almacenar instrucciones y datos temporalmente mientras una instruccioacuten esta ejecutaacutendose en otras palabras el procesador necesita una pequentildea memoria interna
ORGANIZACIOacuteN DE REGISTROS
Registros visibles al usuario son utilizados por el programador
Registros de control y estado son utilizados por la UC para controlar la operacioacuten de la CPU (no son visibles por el programador)
REGISTROS VISIBLES AL USUARIObull Pueden ser asignados a una variedad de funciones
bull cualquier registro de propoacutesito general puede contener el operando para cualquier coacutedigo de operacioacuten (verdadero propoacutesito)
bull pueden existir restricciones (ej Registros dedicados a operaciones especificas)
NUacuteMERO DE REGISTROSbull Afecta al tamantildeo de la instruccioacuten
bull Mayor Nordm de registros maacutes bits para especificarlos en la instruccioacuten
bull Pocos registros maacutes referencias a memoria
bull No oacuteptimo entre 8 y 32 reg Maacutes no hay gran mejora (aumenta tamantildeo de la instruccioacuten)
LONGITUD DE LOS REGISTROSbull De direcciones deben ser capaces de almacenar la direccioacuten maacutes grande
bull De datos deben estar habilitados para almacenar la mayoriacutea de los tipos de datos
bull Algunas maacutequinas permiten 2 registros contiguos utilizados como un solo registro para almacenar valores de doble longitud
BITS DE CONDICIOacuteN (BANDERAS)bull Bits establecidos por la CPU como resultado de operaciones
bull Pueden ser utilizados por las instrucciones de bifurcacioacuten condicional
bull Generalmente no son alterados por el programador
REGISTROS DE CONTROL Y ESTADObull Empleados para controlar la operacioacuten de la CPU En la mayoriacutea de las
maacutequinas no son visibles al usuario
bull Los 4 esenciales para la ejecucioacuten de
bull Contador de programa (PC)
bull Registro de instruccioacuten (IR)
bull Registro de direccioacuten de memoria (MAR)
bull Registro buffer de memoria (MBR)bull Los 4 reg recieacuten mencionados se emplean para el movimiento de datos
entre la CPU y memoria
bull Dentro de la CPU los datos se deben presentar a la ALU para procesamiento eacutesta puede acceder al MBR y a los reg visibles por el usuario Puede haber tambieacuten reg temporales adicionales para intercambiar datos con el MBR y demaacutes reg visibles
bull un ciclo de instruccioacuten incluye los siguientes sub ciclos
bull Capitacioacuten es la que lleva la siguiente instruccioacuten de la memoria al procesador
bull Ejecucioacuten interpreta el coacutedigo de operacioacuten y lleva a cabo la operacioacuten indicada
bull Interrupcioacuten si ocurre un problema guarda el estado del proceso actual y atiende la interrupcioacuten
CICLO DE INSTRUCCIOacuteN
CICLO INDIRECTObull Si se usa direccionamiento indirecto es necesario memoria adicional
bull La principal actividad es consiste en alternar las actividades de captacioacuten y ejecucioacuten de instrucciones
bull La instruccioacuten es captada pada determinar si incluye un direccionamiento indirecto
bull Una vez que la instruccioacuten es captada debe identificar sus campos de operando
bull Despueacutes que se ejecuta es un proceso similar para almacenar
bull El resultado en la memoria principal
FLUJO DE DATOS
bull La secuencia de eventos que tienen lugar durante el clico de instruccioacuten depende del procesador
bull El contador de programa contiene la direccioacuten de la siguiente instruccioacuten
bull La unidad de control solicita una lectura de memoria y el resultado se pone en un bus de datos y se lleva al registro de instruccioacuten
bull El ciclo de ejecucioacuten adopta muchas formas ya que se ya que depende del registro de instruccioacuten
bull Este ciclo puede aplicar transferencia de datos entre registros asiacute como lectura y escritura en Es
bull Mientras que el ciclo de interrupcioacuten es simple el contenido de contador de programa debe ser almacenado para que el procesador pueda continuar su actividad
La segmentacioacuten o pipeline es una teacutecnica de realizacioacuten de procesadores por la cual se solapa la ejecucioacuten de las instrucciones Hoy en diacutea es la teacutecnica clave para la realizacioacuten de CPU raacutepidas La idea baacutesica de la segmentacioacuten se puede extraer de una cadena de montaje de coches Los coches no se montan uno a uno si no que su construccioacuten se divide en fases sucesivas y el montaje del coche se realiza tal como este va avanzando por estas fases De esta forma cada fase estaacute trabajando simultaacuteneamente en la construccioacuten de un coche diferente De esta forma la construccioacuten de un coche cuesta el mismo tiempo que antes pero ahora la frecuencia con que salen los coches construidos es mucho mayor (tantos como fases tenga su construccioacuten) Cada uno de estas fases se denomina segmento o etapa de segmentacioacuten Al igual que en los coches la productividad de un computador va a depender del nuacutemero de instrucciones que acaben por unidad de tiempo y no de lo que le cueste a una instruccioacuten individual
SEGMENTACIOacuteN DE INSTRUCCIONES
RISC (del ingleacutes reduced instruction set computer) es un tipo de microprocesador con las siguientes caracteriacutesticas fundamentalesbull Instrucciones de tamantildeo fijo y presentadas en un reducido nuacutemero de formatosbull Soacutelo las instrucciones de carga y almacenamiento acceden a la memoria de datosbull El objetivo de disentildear maacutequinas con esta arquitectura es posibilitar la segmentacioacuten y el
paralelismo en la ejecucioacuten de instrucciones y reducir los accesos a memoria
ARQUITECTURA RISC
CISC (complex instruction set computer) bull Los microprocesadores CISC tienen un conjunto de instrucciones que se caracteriza
por ser muy amplio y permitir operaciones complejas entre operandos situados en la memoria o en los registros internos en contraposicioacuten a la arquitectura RISC
bull Este tipo de arquitectura dificulta el paralelismo entre instrucciones por lo que en la actualidad la mayoriacutea de los sistemas CISC de alto rendimiento implementan un sistema que convierte dichas instrucciones complejas en varias instrucciones simples del tipo RISC llamadas generalmente microinstrucciones
bull Para realizar una sola instruccioacuten un chip CISC requiere de cuatro a diez ciclos de reloj
ARQUITECTURA CISC
UNIDAD ARITMEacuteTICA LOacuteGICA
Realiza las operaciones elementales tanto aritmeacuteticas como loacutegicas que implementa el computador suma resta AND OR NOT etc
Los datos con los que opera se leen de Memoria Principal y se almacenan temporalmente en los registros que contiene la UAL
ARITMEacuteTICA DE LAS COMPUTADORAS
bull La aritmeacutetica que realiza una computadora es diferente de la aritmeacutetica de los cursos de matemaacuteticas Para cada computadora hay una cifra positiva llamada el eacutepsilon () de la computadora que es la cantidad positiva mas grande tal que 1 + = 1 Su existencia hace que la propiedad de asociatividad de la suma no se cumpla siempre (1 + ) + 6= 1 + ( + )
ARITMEacuteTICA CON ENTEROS
Un entero se puede representar empleando todos los bits de una palabra de computadora con la salvedad de que se debe reservar un bit para el signo Por ejemplo en una maacutequina con longitud de palabra de 32 bits los enteros estaacuten comprendidos entre -(231 - 1) y 231 - 1 = 2147483647 Un nuacutemero representado en formato entero es exacto Las operaciones aritmeacuteticas entre nuacutemeros enteros son tambieacuten exactas siempre y cuando 1
La solucioacuten no esteacute fuera del rango del nuacutemero entero maacutes grande o maacutes pequentildeo que se puede representar (generalmente con signo) En estos casos se dice que se comete un error de desbordamiento por exceso o por defecto (en ingleacutes Overflow y Underflow) y es necesario recurrir a teacutecnicas de escalado para llevar a cabo las operaciones
2 La divisioacuten se interpreta que da lugar a un nuacutemero entero despreciando cualquier resto
ENTEROS
Para representar un nuacutemero entero en la computadora se utiliza el sistema de numeracioacuten binaria o de base 2 debido a la tecnologiacutea que se utiliza para la memoria la cual solo permite el uso de 2 diacutegitos 0 y 1
Los nuacutemeros enteros de acuerdo a la definicioacuten pueden ser positivos o negativos esto hace que la representacioacuten en la computadora se establezcan convenciones (meacutetodo de signo y magnitud o el de Complemento)
ARITMEacuteTICA CON PUNTO FLOTANTE
Representacioacuten de Nuacutemeros RealesUn nuacutemero real en cualquier base (R) puede ser representado como (notacioacuten de punto fijo)
Un meacutetodo alterno que facilita la manipulacioacuten de los nuacutemeros reales es la notacioacuten cientiacutefica o de punto flotante
donde
A = (A A A A A A A A A )n-1n+
R 1 -1 -2 -(m-1)- n-2 0 -m Rhellip hellip
La forma general de un nuacutemero real de base (R) en notacioacuten flotante f f f f x R -2-1
+- -3 -m
Ehellip +-
Es llamada la parte fraccionaria o mantisaEs un nuacutemero entero llamado exponenteEs la base
f f f f-2-1 -3 -mhellip
ER
Signo Exponente Mantisa
Mantisa
Signo Exponente Mantisa
Mantisa
dondeSigno de la mantisa (representa con 0 o 1)Exponente (representa entero en complemento a 2)Mantisa (representa entero en signo y magnitud)
ExponenteMantisa
Signo
Mantisa
Mantisa
Nuacutemero Real
Parte Real
Parte Imaginaria
REPERTORIO DE INSTRUCCIONES
bull Para comandar una computadora se le debe ldquohablarrdquo en su lenguaje Las palabras del lenguaje de una maacutequina son llamadas instrucciones y su vocabulario es llamado repertorio de instrucciones En esta seccioacuten se expone el repertorio de instrucciones de una computadora real considerando una forma entendible para los humanos (ensamblador) y una forma entendible por la computadora (coacutedigo maacutequina)
INSTRUCCIONES bull Es faacutecil ver por meacutetodos loacutegicos formales que existen ciertos [repertorios de instrucciones] que son en
abstracto adecuados para controlar y causar la ejecucioacuten de cualquier secuencia de operaciones Las consideraciones realmente decisivas desde el punto de vista actual en seleccionar un [repertorio de instrucciones] son maacutes de naturaleza praacutectica La simplicidad del equipo demandado por el [repertorio de instrucciones] y la claridad de su aplicacioacuten a problemas realmente importantes junto con la velocidad del manejo de esos problemas
bull Burks Goldstine y von Neumann 1947
bull La ldquosimplicidad del equipordquo es una consideracioacuten tan valiosa para las maacutequinas actuales como lo fue en los 50rsquos La meta de este capiacutetulo es mostrar un repertorio de instrucciones que siga este consejo mostrando como eacuteste es representado en hardware y su relacioacuten con los lenguajes de alto nivel
bull El repertorio de instrucciones bajo estudio es de una arquitectura MIPS usado por NEC Nintendo Silicon Graphics y Sony entre otros Y es un repertorio de instrucciones tiacutepico disentildeado en los 80rsquos
MIPS ndash INSTRUCCIONES aritmeacuteticoloacutegicas
bull bull Principio de disentildeo 1
bull ndash ldquoLa simplicidad favorece la uniformidadrdquo
bull bull Todos los computadores deben ser
bull capaces de realizar caacutelculos aritmeacuteticos y
bull loacutegicos
bull add a b c a 1048773 b + c
bull sub a a d a 1048773 a + d = (b + c) - d
bull or a a e a 1048773 a + e = (b + c + d) OR e
MIPS ndash INSTRUCCIONES DE SALTOCONDICIONAL
bull bull Instrucciones de salto condicional (soacutelo dos)
bull ndash bne $s0 $s1 L1 branch to L1 if no equal
bull ndash beq $s0 $s1 L1 branch to L1 if equal
bull bull Pseudoinstrucciones de salto condicional
bull ndash slt (set si menor que) beq bne y $zero permiten las
bull condiciones restantes
bull blt $s1 $s2 etiqueta salta si menor que
bull slt $at $s1 $s2
bull bne $at $zero etiqueta
bull ndash El ensamblador expande las pseudoinstrucciones
bull bull $at registro utilizado por el programa ensamblador
EJEMPLO DE COMPILACIOacuteN DE UNA SENTENCIA DE SALTO CONDICIONAL
bull bull Coacutedigo fuente de C
bull If (i==j) h = i + j
bull h i y j en $s0 $s1 y $s2
bull bull Compilacioacuten en MIPS
bull bne $s1 $s2 etiqueta
bull add $s0 $s1 $s2
bull etiqueta hellip
LENGUAJE MAacuteQUINA ndash INSTRUCCIONESARITMEacuteTICO-LOacuteGICAS
bull bull El tamantildeo de las instrucciones es de 32 bits
bull bull Las instrucciones aritmeacutetico-loacutegicas son codificadas con el formato tipo-R
bull ndash add $rd $rs $rt
bull bull Significado de los campos
bull ndash op 6-bits coacutedigo de operacioacuten
bull ndash rs rt rd 5-bits registro source target destination
bull ndash shamt 5-bits nuacutemero de bits a desplazar (cuando aplicable)
bull ndash funct 6-bits coacutedigo de funcioacuten (extensioacuten del coacutedigo de operacioacuten)
bull op rs rt rd shamt funct Formato de instrucciones aritmeacuteticas
bull 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits Todas las instrucciones MIPS de 32 bits
bull 000000 01010 11111 00011 00000 100000 0x015f1820 add $3$10$31
LENGUAJE MAacuteQUINA ndash INSTRUCCIONESDE ACCESO A MEMORIA
bull bull Principio de disentildeo 3
bull ndash ldquoUn buen disentildeo necesita buenas soluciones de compromisordquo
bull bull Las instrucciones de load y store especifican dos registros y un
bull desplazamiento
bull ndash Formato tipo I (16 bits para el dato inmediato)
bull ndash lw $rt inmediato($rs) sw $rt inmediato($rs
bull ndash lh lhu lb lbu sh sb (load half half unsigned byte byte unsigned store half
bull byte)
bull op rs rt Direccioacuteninmediato Formato de instruciones de carga
bull 6 bits 5 bits 5 bits 16 bits Todas las instrucciones MIPS de 32 bits
bull 100011 00011 00101 0000000000100000 0x8c650020 lw $
TIPO DE OPERACIONES
Transferencia de datosbull Move (transferir) transfiere una palabra o un bloque desde un origen a un destinobull Store (memorizar) Transfiere una palabra desde el procesador a memoriabull Load (cargar o captar) transfiere una palabra desde memoria al procesadorbull Exchange (intercambiar) intercambia los contenidos del origen y el destinobull Clear (reiniciar o poner a 0) Transfiere una palabra de ceros al destinobull Set (poner a 1) transfiere una palabra de unos al destinobull Push (introducir en la pila ldquoapilarrdquo) Transfiere una palabra desde un origen a la cabecera de la pilabull Pop (extraer de la pila ldquodesapilarrdquo) Transfiere una palabra desde la cabecera de la pila a un destinoAritmeacuteticas bull Add (sumar) Calcula la suma de 2 operandosbull Substract (restar) Calcula la diferencia de dos operandosbull Multiply (multiplicar) Calcula el producto de dos operandosbull Divide (dividir) Calcula el cociente de dos operandosbull Absolute (valor absoluto) Sustituye el operando por su valor absolutobull Negate (opuesto) Cambia el signo del operandobull Increment (incrementar) suma 1 al operandobull Decrement (decremenatar) Resta 1 al operandoLoacutegicasbull AND (Producto loacutegico Y) Realiza la operacioacuten loacutegica Y (AND)bull OR (Suma loacutegica O) Realiza la operacioacuten loacutegica o (OR)bull NOT (Complemento) Realiza el complemento (NOT) bit a bit del dato
bull Exclusive-OR (OR-exclusiva) Realiza la operacioacuten loacutegica O-Exclusiva (XOR)bull Test (comprobar) Comprueba la condicioacuten especificada foja los indicadores (flags) en funcioacuten del
resultadobull Compare (comparar) Realiza la operacioacuten loacutegica o aritmeacutetica de dos o mas operandos fija los
indicadores (flags) en funcioacuten del resultadobull Set control variables (fijar variables de control) Instrucciones que fijan controles para proteccioacuten gestioacuten
de interrupciones control de temporizador etcbull Shift (desplazamiento) Desplaza el operando a la izquierda (derecha) introduciendo valores constantes
por el otro extremobull Rotate (rotar) Desplaza el operando a la izquierda (derecha) de forma ciacuteclicaControl de flujobull Jump (bifurcacioacuten o salto) Ruptura incondicional de flujo carga el PC con la direccioacuten especificada bull Jump condicional (salto condicional) Comprueba la condicioacuten especificada dependiendo de la condicioacuten
o carga del PC con la direccioacuten indicada o no hace nadabull Jump to Subrutina (llamada la subrutina) Guarda la informacioacuten de control del programa en una posicioacuten
conocida y salta a la direccioacuten indicadabull Return (retorno) Sustituye el contenido del PC y de otros registros por los de la posicioacuten conocidabull Execute (ejecutar) Capta el operando de la direccioacuten indicada y lo ejecuta como una instruccioacuten no
modifica el PCbull Skip (salto impliacutecito) Incrementa el PC de manera que salte la instruccioacuten siguientebull Skip conditional (salto impliacutecito condicional) Comprueba la condicioacuten indicada realiza el salto impliacutecito
o no hace nada dependiendo de la condicioacutenbull Halt (parar) Detiene la ejecucioacuten del programa
bull Wait (esperar) Detiene la ejecucioacuten del programa comprueba de forma repetitiva la condicioacuten especificada reanuda la ejecucioacuten cuando se satisface la condicioacuten
bull No operation (no operacioacuten) No se ejecuta operacioacuten alguna pero la ejecucioacuten del programa continuaENTRADASALIDAbull InPut (entrada) Transfiera datos desde un puerto o dispositivo de ES al destino (memoria principal o
registro del procesador)bull OutPut (salida) Transfiera datos desde el origen especificado a un puerto o dispositivo de ESbull Start IO (iniciar ES) Transfiere instrucciones al procesador de ES para iniciar operaciones de ESbull Test IO (comprobar ES) Transfiere informacioacuten de estado desde el sistema de ES al destino
especificadoCONVERSIONbull Traslate (traducir) Traduccioacuten de los valores de una seccioacuten de memoria basada en una tabla de
correspondenciabull Convert (convertir) Convierte el contenido de una palabra de un formato a otro (por ejemplo de decimal
empaquetado a binario)
ACCIONES DEL PROCESADOR PARA VARIOS TIPOS DE OPERADORES
TRANSFERENCIA DE DATOS Transfiere datos de una posicioacuten a otra si se implica la memoriabull Determina la direccioacuten de memoriabull Realiza la transformacioacuten de direcciones de memoria virtual a realbull Comprueba la cachebull Inicia la lecturaescritura ende memoriaARITMEacuteTICAbull Puede implicar transferencia de datos antes yo despueacutesbull Realiza la operacioacuten en la ALUbull Actualiza coacutedigos e indicadores de condicioacutenLOacuteGICA Lo mismo que en la aritmeacuteticaCONVERSION Similar a la aritmeacutetica y la loacutegica Puede implicar a loacutegica especial para realizar la conversioacutenCONTRO DEL FLUJO Actualiza el contador del programa En el caso de llamadas y retorno de subrutinas gestiona la transferencia y enlace de paraacutemetrosES bull Cursa una orden en el modulo de ESbull En el caso de ES asignada en memoria determina la direccioacuten de memoria correspondiente
MODOS DE DIRECCIONAMIENTObull InmediatoEn la instruccioacuten estaacute incluido directamente el operandoEn este modo el operando es especificado en la instruccioacuten misma En otras palabras una instruccioacuten de modo inmediato tiene un campo de operando en vez de un campo de direccioacuten El campo del operando contiene el operando actual que se debe utilizar en conjunto con la operacioacuten especificada en la instruccioacuten Las instrucciones de modo inmediato son uacutetiles para inicializar los registros en un valor constanteCuando el campo de direccioacuten especifica un registro del procesador la instruccioacuten se dice que estaacute en el modo de registro
bull DirectoEl campo de operando en la instruccioacuten contiene la direccioacuten en memoria donde se encuentra el operando En este modo la direccioacuten efectiva es igual a la parte de direccioacuten de la instruccioacuten El operando reside en la memoria y su direccioacuten es dada directamente por el campo de direccioacuten de la instruccioacuten En una instruccioacuten de tipo ramificacioacuten el campo de direccioacuten especifica la direccioacuten de la rama actualCon este tipo de direccionamiento la direccioacuten efectiva es contenida en la misma instruccioacuten tal como los valores de datos inmediatos que son contenidos en la instruccioacuten Un procesador de 16 bits suma la direccioacuten efectiva al contenido del segmento de datos previamente desplazado en 4 bits para producir la direccioacuten fiacutesica del operando
bull IndirectoEn este modo de direccionamiento no es necesario poner ninguna direccioacuten de forma expliacutecita ya que en el propio coacutedigo de operacioacuten se conoce la direccioacuten del (de los) operando(s) al (a los) que se desea acceder o con el (los) que se quiere operarUn ejemplo de este tipo de direccionamiento lo podemos encontrar en la arquitectura de acumulador (AC) donde siempre hay un paraacutemetro impliacutecito y este es el ACPara finalizar y dejar este modo de direccionamiento generalizado para las arquitecturas maacutes usuales remarcamos que tambieacuten podemos encontrarlo en la arquitectura con registros de propoacutesito general por ejemplo con oacuterdenes como set c que pone a 1 el registro c (acarreo)
bull De registroSirve para especificar operandos que estaacuten en registros
bull Indirecto mediante registrosEl campo de operando de la instruccioacuten contiene un identificador de registro en el que se encuentra la direccioacuten efectiva del operando En este modo el campo de la direccioacuten de la instruccioacuten da la direccioacuten en donde la direccioacuten efectiva se almacena en la memoria El control localiza la instruccioacuten de la memoria y utiliza su parte de direccioacuten para accesar la memoria de nuevo para leer una direccioacuten efectiva Unos pocos modos de direccionamiento requieren que el campo de direccioacuten de la instruccioacuten sea sumado al control de un registro especificado en el procesadorLa direccioacuten efectiva en este modo se obtiene del siguiente caacutelculoDir Efectiva = Dir de la parte de la instruccioacuten + Contenido del registro del procesador
bull De desplazamientoCombina el modo directo e indirecto mediante registros
bull De pilaSe utiliza cuando el operando estaacute en memoria y en la cabecera de la pilaEste direccionamiento se basa en las estructuras denominadas Pila(tipo LIFO) las cuales estaacuten marcados por el fondo de la pila y el puntero de pila (SP) El puntero de pila apunta a la uacuteltima posicioacuten ocupada Asiacute como puntero de direccionamiento usaremos el SP El desplazamiento maacutes el valor del SP nos daraacute la direccioacuten del objeto al que queramos hacer referencia En ocasiones si no existe C de desplazamiento solo se trabajara con la cima de la pila Este tipo de direccionamiento nos aporta flexibilidad pero por el contrario es mucho maacutes complejo que otros tipos estudiados maacutes arriba
ORGANIZACIOacuteN DEL PROCESADOR
Captar instrucciones el procesador lee una instruccioacuten de memoria (registro cache o memoria principal)Interpretar instruccioacuten la instruccioacuten se codifica para determinar queacute accioacuten es necesarioCaptar datos la ejecucioacuten de una instruccioacuten puede exigir leer datos de memoria o de un moacutedulo de ESProcesar datos la ejecucioacuten e una instruccioacuten puede exigir llevar a cabo alguna operacioacuten aritmeacutetica o loacutegica con los datosEscribir datos los resultados de una ejecucioacuten pueden exigir escribir datos en la memoria o en el moacutedulo de ESPara hacer estas cosas el procesador necesita almacenar instrucciones y datos temporalmente mientras una instruccioacuten esta ejecutaacutendose en otras palabras el procesador necesita una pequentildea memoria interna
ORGANIZACIOacuteN DE REGISTROS
Registros visibles al usuario son utilizados por el programador
Registros de control y estado son utilizados por la UC para controlar la operacioacuten de la CPU (no son visibles por el programador)
REGISTROS VISIBLES AL USUARIObull Pueden ser asignados a una variedad de funciones
bull cualquier registro de propoacutesito general puede contener el operando para cualquier coacutedigo de operacioacuten (verdadero propoacutesito)
bull pueden existir restricciones (ej Registros dedicados a operaciones especificas)
NUacuteMERO DE REGISTROSbull Afecta al tamantildeo de la instruccioacuten
bull Mayor Nordm de registros maacutes bits para especificarlos en la instruccioacuten
bull Pocos registros maacutes referencias a memoria
bull No oacuteptimo entre 8 y 32 reg Maacutes no hay gran mejora (aumenta tamantildeo de la instruccioacuten)
LONGITUD DE LOS REGISTROSbull De direcciones deben ser capaces de almacenar la direccioacuten maacutes grande
bull De datos deben estar habilitados para almacenar la mayoriacutea de los tipos de datos
bull Algunas maacutequinas permiten 2 registros contiguos utilizados como un solo registro para almacenar valores de doble longitud
BITS DE CONDICIOacuteN (BANDERAS)bull Bits establecidos por la CPU como resultado de operaciones
bull Pueden ser utilizados por las instrucciones de bifurcacioacuten condicional
bull Generalmente no son alterados por el programador
REGISTROS DE CONTROL Y ESTADObull Empleados para controlar la operacioacuten de la CPU En la mayoriacutea de las
maacutequinas no son visibles al usuario
bull Los 4 esenciales para la ejecucioacuten de
bull Contador de programa (PC)
bull Registro de instruccioacuten (IR)
bull Registro de direccioacuten de memoria (MAR)
bull Registro buffer de memoria (MBR)bull Los 4 reg recieacuten mencionados se emplean para el movimiento de datos
entre la CPU y memoria
bull Dentro de la CPU los datos se deben presentar a la ALU para procesamiento eacutesta puede acceder al MBR y a los reg visibles por el usuario Puede haber tambieacuten reg temporales adicionales para intercambiar datos con el MBR y demaacutes reg visibles
bull un ciclo de instruccioacuten incluye los siguientes sub ciclos
bull Capitacioacuten es la que lleva la siguiente instruccioacuten de la memoria al procesador
bull Ejecucioacuten interpreta el coacutedigo de operacioacuten y lleva a cabo la operacioacuten indicada
bull Interrupcioacuten si ocurre un problema guarda el estado del proceso actual y atiende la interrupcioacuten
CICLO DE INSTRUCCIOacuteN
CICLO INDIRECTObull Si se usa direccionamiento indirecto es necesario memoria adicional
bull La principal actividad es consiste en alternar las actividades de captacioacuten y ejecucioacuten de instrucciones
bull La instruccioacuten es captada pada determinar si incluye un direccionamiento indirecto
bull Una vez que la instruccioacuten es captada debe identificar sus campos de operando
bull Despueacutes que se ejecuta es un proceso similar para almacenar
bull El resultado en la memoria principal
FLUJO DE DATOS
bull La secuencia de eventos que tienen lugar durante el clico de instruccioacuten depende del procesador
bull El contador de programa contiene la direccioacuten de la siguiente instruccioacuten
bull La unidad de control solicita una lectura de memoria y el resultado se pone en un bus de datos y se lleva al registro de instruccioacuten
bull El ciclo de ejecucioacuten adopta muchas formas ya que se ya que depende del registro de instruccioacuten
bull Este ciclo puede aplicar transferencia de datos entre registros asiacute como lectura y escritura en Es
bull Mientras que el ciclo de interrupcioacuten es simple el contenido de contador de programa debe ser almacenado para que el procesador pueda continuar su actividad
La segmentacioacuten o pipeline es una teacutecnica de realizacioacuten de procesadores por la cual se solapa la ejecucioacuten de las instrucciones Hoy en diacutea es la teacutecnica clave para la realizacioacuten de CPU raacutepidas La idea baacutesica de la segmentacioacuten se puede extraer de una cadena de montaje de coches Los coches no se montan uno a uno si no que su construccioacuten se divide en fases sucesivas y el montaje del coche se realiza tal como este va avanzando por estas fases De esta forma cada fase estaacute trabajando simultaacuteneamente en la construccioacuten de un coche diferente De esta forma la construccioacuten de un coche cuesta el mismo tiempo que antes pero ahora la frecuencia con que salen los coches construidos es mucho mayor (tantos como fases tenga su construccioacuten) Cada uno de estas fases se denomina segmento o etapa de segmentacioacuten Al igual que en los coches la productividad de un computador va a depender del nuacutemero de instrucciones que acaben por unidad de tiempo y no de lo que le cueste a una instruccioacuten individual
SEGMENTACIOacuteN DE INSTRUCCIONES
RISC (del ingleacutes reduced instruction set computer) es un tipo de microprocesador con las siguientes caracteriacutesticas fundamentalesbull Instrucciones de tamantildeo fijo y presentadas en un reducido nuacutemero de formatosbull Soacutelo las instrucciones de carga y almacenamiento acceden a la memoria de datosbull El objetivo de disentildear maacutequinas con esta arquitectura es posibilitar la segmentacioacuten y el
paralelismo en la ejecucioacuten de instrucciones y reducir los accesos a memoria
ARQUITECTURA RISC
CISC (complex instruction set computer) bull Los microprocesadores CISC tienen un conjunto de instrucciones que se caracteriza
por ser muy amplio y permitir operaciones complejas entre operandos situados en la memoria o en los registros internos en contraposicioacuten a la arquitectura RISC
bull Este tipo de arquitectura dificulta el paralelismo entre instrucciones por lo que en la actualidad la mayoriacutea de los sistemas CISC de alto rendimiento implementan un sistema que convierte dichas instrucciones complejas en varias instrucciones simples del tipo RISC llamadas generalmente microinstrucciones
bull Para realizar una sola instruccioacuten un chip CISC requiere de cuatro a diez ciclos de reloj
ARQUITECTURA CISC
ARITMEacuteTICA DE LAS COMPUTADORAS
bull La aritmeacutetica que realiza una computadora es diferente de la aritmeacutetica de los cursos de matemaacuteticas Para cada computadora hay una cifra positiva llamada el eacutepsilon () de la computadora que es la cantidad positiva mas grande tal que 1 + = 1 Su existencia hace que la propiedad de asociatividad de la suma no se cumpla siempre (1 + ) + 6= 1 + ( + )
ARITMEacuteTICA CON ENTEROS
Un entero se puede representar empleando todos los bits de una palabra de computadora con la salvedad de que se debe reservar un bit para el signo Por ejemplo en una maacutequina con longitud de palabra de 32 bits los enteros estaacuten comprendidos entre -(231 - 1) y 231 - 1 = 2147483647 Un nuacutemero representado en formato entero es exacto Las operaciones aritmeacuteticas entre nuacutemeros enteros son tambieacuten exactas siempre y cuando 1
La solucioacuten no esteacute fuera del rango del nuacutemero entero maacutes grande o maacutes pequentildeo que se puede representar (generalmente con signo) En estos casos se dice que se comete un error de desbordamiento por exceso o por defecto (en ingleacutes Overflow y Underflow) y es necesario recurrir a teacutecnicas de escalado para llevar a cabo las operaciones
2 La divisioacuten se interpreta que da lugar a un nuacutemero entero despreciando cualquier resto
ENTEROS
Para representar un nuacutemero entero en la computadora se utiliza el sistema de numeracioacuten binaria o de base 2 debido a la tecnologiacutea que se utiliza para la memoria la cual solo permite el uso de 2 diacutegitos 0 y 1
Los nuacutemeros enteros de acuerdo a la definicioacuten pueden ser positivos o negativos esto hace que la representacioacuten en la computadora se establezcan convenciones (meacutetodo de signo y magnitud o el de Complemento)
ARITMEacuteTICA CON PUNTO FLOTANTE
Representacioacuten de Nuacutemeros RealesUn nuacutemero real en cualquier base (R) puede ser representado como (notacioacuten de punto fijo)
Un meacutetodo alterno que facilita la manipulacioacuten de los nuacutemeros reales es la notacioacuten cientiacutefica o de punto flotante
donde
A = (A A A A A A A A A )n-1n+
R 1 -1 -2 -(m-1)- n-2 0 -m Rhellip hellip
La forma general de un nuacutemero real de base (R) en notacioacuten flotante f f f f x R -2-1
+- -3 -m
Ehellip +-
Es llamada la parte fraccionaria o mantisaEs un nuacutemero entero llamado exponenteEs la base
f f f f-2-1 -3 -mhellip
ER
Signo Exponente Mantisa
Mantisa
Signo Exponente Mantisa
Mantisa
dondeSigno de la mantisa (representa con 0 o 1)Exponente (representa entero en complemento a 2)Mantisa (representa entero en signo y magnitud)
ExponenteMantisa
Signo
Mantisa
Mantisa
Nuacutemero Real
Parte Real
Parte Imaginaria
REPERTORIO DE INSTRUCCIONES
bull Para comandar una computadora se le debe ldquohablarrdquo en su lenguaje Las palabras del lenguaje de una maacutequina son llamadas instrucciones y su vocabulario es llamado repertorio de instrucciones En esta seccioacuten se expone el repertorio de instrucciones de una computadora real considerando una forma entendible para los humanos (ensamblador) y una forma entendible por la computadora (coacutedigo maacutequina)
INSTRUCCIONES bull Es faacutecil ver por meacutetodos loacutegicos formales que existen ciertos [repertorios de instrucciones] que son en
abstracto adecuados para controlar y causar la ejecucioacuten de cualquier secuencia de operaciones Las consideraciones realmente decisivas desde el punto de vista actual en seleccionar un [repertorio de instrucciones] son maacutes de naturaleza praacutectica La simplicidad del equipo demandado por el [repertorio de instrucciones] y la claridad de su aplicacioacuten a problemas realmente importantes junto con la velocidad del manejo de esos problemas
bull Burks Goldstine y von Neumann 1947
bull La ldquosimplicidad del equipordquo es una consideracioacuten tan valiosa para las maacutequinas actuales como lo fue en los 50rsquos La meta de este capiacutetulo es mostrar un repertorio de instrucciones que siga este consejo mostrando como eacuteste es representado en hardware y su relacioacuten con los lenguajes de alto nivel
bull El repertorio de instrucciones bajo estudio es de una arquitectura MIPS usado por NEC Nintendo Silicon Graphics y Sony entre otros Y es un repertorio de instrucciones tiacutepico disentildeado en los 80rsquos
MIPS ndash INSTRUCCIONES aritmeacuteticoloacutegicas
bull bull Principio de disentildeo 1
bull ndash ldquoLa simplicidad favorece la uniformidadrdquo
bull bull Todos los computadores deben ser
bull capaces de realizar caacutelculos aritmeacuteticos y
bull loacutegicos
bull add a b c a 1048773 b + c
bull sub a a d a 1048773 a + d = (b + c) - d
bull or a a e a 1048773 a + e = (b + c + d) OR e
MIPS ndash INSTRUCCIONES DE SALTOCONDICIONAL
bull bull Instrucciones de salto condicional (soacutelo dos)
bull ndash bne $s0 $s1 L1 branch to L1 if no equal
bull ndash beq $s0 $s1 L1 branch to L1 if equal
bull bull Pseudoinstrucciones de salto condicional
bull ndash slt (set si menor que) beq bne y $zero permiten las
bull condiciones restantes
bull blt $s1 $s2 etiqueta salta si menor que
bull slt $at $s1 $s2
bull bne $at $zero etiqueta
bull ndash El ensamblador expande las pseudoinstrucciones
bull bull $at registro utilizado por el programa ensamblador
EJEMPLO DE COMPILACIOacuteN DE UNA SENTENCIA DE SALTO CONDICIONAL
bull bull Coacutedigo fuente de C
bull If (i==j) h = i + j
bull h i y j en $s0 $s1 y $s2
bull bull Compilacioacuten en MIPS
bull bne $s1 $s2 etiqueta
bull add $s0 $s1 $s2
bull etiqueta hellip
LENGUAJE MAacuteQUINA ndash INSTRUCCIONESARITMEacuteTICO-LOacuteGICAS
bull bull El tamantildeo de las instrucciones es de 32 bits
bull bull Las instrucciones aritmeacutetico-loacutegicas son codificadas con el formato tipo-R
bull ndash add $rd $rs $rt
bull bull Significado de los campos
bull ndash op 6-bits coacutedigo de operacioacuten
bull ndash rs rt rd 5-bits registro source target destination
bull ndash shamt 5-bits nuacutemero de bits a desplazar (cuando aplicable)
bull ndash funct 6-bits coacutedigo de funcioacuten (extensioacuten del coacutedigo de operacioacuten)
bull op rs rt rd shamt funct Formato de instrucciones aritmeacuteticas
bull 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits Todas las instrucciones MIPS de 32 bits
bull 000000 01010 11111 00011 00000 100000 0x015f1820 add $3$10$31
LENGUAJE MAacuteQUINA ndash INSTRUCCIONESDE ACCESO A MEMORIA
bull bull Principio de disentildeo 3
bull ndash ldquoUn buen disentildeo necesita buenas soluciones de compromisordquo
bull bull Las instrucciones de load y store especifican dos registros y un
bull desplazamiento
bull ndash Formato tipo I (16 bits para el dato inmediato)
bull ndash lw $rt inmediato($rs) sw $rt inmediato($rs
bull ndash lh lhu lb lbu sh sb (load half half unsigned byte byte unsigned store half
bull byte)
bull op rs rt Direccioacuteninmediato Formato de instruciones de carga
bull 6 bits 5 bits 5 bits 16 bits Todas las instrucciones MIPS de 32 bits
bull 100011 00011 00101 0000000000100000 0x8c650020 lw $
TIPO DE OPERACIONES
Transferencia de datosbull Move (transferir) transfiere una palabra o un bloque desde un origen a un destinobull Store (memorizar) Transfiere una palabra desde el procesador a memoriabull Load (cargar o captar) transfiere una palabra desde memoria al procesadorbull Exchange (intercambiar) intercambia los contenidos del origen y el destinobull Clear (reiniciar o poner a 0) Transfiere una palabra de ceros al destinobull Set (poner a 1) transfiere una palabra de unos al destinobull Push (introducir en la pila ldquoapilarrdquo) Transfiere una palabra desde un origen a la cabecera de la pilabull Pop (extraer de la pila ldquodesapilarrdquo) Transfiere una palabra desde la cabecera de la pila a un destinoAritmeacuteticas bull Add (sumar) Calcula la suma de 2 operandosbull Substract (restar) Calcula la diferencia de dos operandosbull Multiply (multiplicar) Calcula el producto de dos operandosbull Divide (dividir) Calcula el cociente de dos operandosbull Absolute (valor absoluto) Sustituye el operando por su valor absolutobull Negate (opuesto) Cambia el signo del operandobull Increment (incrementar) suma 1 al operandobull Decrement (decremenatar) Resta 1 al operandoLoacutegicasbull AND (Producto loacutegico Y) Realiza la operacioacuten loacutegica Y (AND)bull OR (Suma loacutegica O) Realiza la operacioacuten loacutegica o (OR)bull NOT (Complemento) Realiza el complemento (NOT) bit a bit del dato
bull Exclusive-OR (OR-exclusiva) Realiza la operacioacuten loacutegica O-Exclusiva (XOR)bull Test (comprobar) Comprueba la condicioacuten especificada foja los indicadores (flags) en funcioacuten del
resultadobull Compare (comparar) Realiza la operacioacuten loacutegica o aritmeacutetica de dos o mas operandos fija los
indicadores (flags) en funcioacuten del resultadobull Set control variables (fijar variables de control) Instrucciones que fijan controles para proteccioacuten gestioacuten
de interrupciones control de temporizador etcbull Shift (desplazamiento) Desplaza el operando a la izquierda (derecha) introduciendo valores constantes
por el otro extremobull Rotate (rotar) Desplaza el operando a la izquierda (derecha) de forma ciacuteclicaControl de flujobull Jump (bifurcacioacuten o salto) Ruptura incondicional de flujo carga el PC con la direccioacuten especificada bull Jump condicional (salto condicional) Comprueba la condicioacuten especificada dependiendo de la condicioacuten
o carga del PC con la direccioacuten indicada o no hace nadabull Jump to Subrutina (llamada la subrutina) Guarda la informacioacuten de control del programa en una posicioacuten
conocida y salta a la direccioacuten indicadabull Return (retorno) Sustituye el contenido del PC y de otros registros por los de la posicioacuten conocidabull Execute (ejecutar) Capta el operando de la direccioacuten indicada y lo ejecuta como una instruccioacuten no
modifica el PCbull Skip (salto impliacutecito) Incrementa el PC de manera que salte la instruccioacuten siguientebull Skip conditional (salto impliacutecito condicional) Comprueba la condicioacuten indicada realiza el salto impliacutecito
o no hace nada dependiendo de la condicioacutenbull Halt (parar) Detiene la ejecucioacuten del programa
bull Wait (esperar) Detiene la ejecucioacuten del programa comprueba de forma repetitiva la condicioacuten especificada reanuda la ejecucioacuten cuando se satisface la condicioacuten
bull No operation (no operacioacuten) No se ejecuta operacioacuten alguna pero la ejecucioacuten del programa continuaENTRADASALIDAbull InPut (entrada) Transfiera datos desde un puerto o dispositivo de ES al destino (memoria principal o
registro del procesador)bull OutPut (salida) Transfiera datos desde el origen especificado a un puerto o dispositivo de ESbull Start IO (iniciar ES) Transfiere instrucciones al procesador de ES para iniciar operaciones de ESbull Test IO (comprobar ES) Transfiere informacioacuten de estado desde el sistema de ES al destino
especificadoCONVERSIONbull Traslate (traducir) Traduccioacuten de los valores de una seccioacuten de memoria basada en una tabla de
correspondenciabull Convert (convertir) Convierte el contenido de una palabra de un formato a otro (por ejemplo de decimal
empaquetado a binario)
ACCIONES DEL PROCESADOR PARA VARIOS TIPOS DE OPERADORES
TRANSFERENCIA DE DATOS Transfiere datos de una posicioacuten a otra si se implica la memoriabull Determina la direccioacuten de memoriabull Realiza la transformacioacuten de direcciones de memoria virtual a realbull Comprueba la cachebull Inicia la lecturaescritura ende memoriaARITMEacuteTICAbull Puede implicar transferencia de datos antes yo despueacutesbull Realiza la operacioacuten en la ALUbull Actualiza coacutedigos e indicadores de condicioacutenLOacuteGICA Lo mismo que en la aritmeacuteticaCONVERSION Similar a la aritmeacutetica y la loacutegica Puede implicar a loacutegica especial para realizar la conversioacutenCONTRO DEL FLUJO Actualiza el contador del programa En el caso de llamadas y retorno de subrutinas gestiona la transferencia y enlace de paraacutemetrosES bull Cursa una orden en el modulo de ESbull En el caso de ES asignada en memoria determina la direccioacuten de memoria correspondiente
MODOS DE DIRECCIONAMIENTObull InmediatoEn la instruccioacuten estaacute incluido directamente el operandoEn este modo el operando es especificado en la instruccioacuten misma En otras palabras una instruccioacuten de modo inmediato tiene un campo de operando en vez de un campo de direccioacuten El campo del operando contiene el operando actual que se debe utilizar en conjunto con la operacioacuten especificada en la instruccioacuten Las instrucciones de modo inmediato son uacutetiles para inicializar los registros en un valor constanteCuando el campo de direccioacuten especifica un registro del procesador la instruccioacuten se dice que estaacute en el modo de registro
bull DirectoEl campo de operando en la instruccioacuten contiene la direccioacuten en memoria donde se encuentra el operando En este modo la direccioacuten efectiva es igual a la parte de direccioacuten de la instruccioacuten El operando reside en la memoria y su direccioacuten es dada directamente por el campo de direccioacuten de la instruccioacuten En una instruccioacuten de tipo ramificacioacuten el campo de direccioacuten especifica la direccioacuten de la rama actualCon este tipo de direccionamiento la direccioacuten efectiva es contenida en la misma instruccioacuten tal como los valores de datos inmediatos que son contenidos en la instruccioacuten Un procesador de 16 bits suma la direccioacuten efectiva al contenido del segmento de datos previamente desplazado en 4 bits para producir la direccioacuten fiacutesica del operando
bull IndirectoEn este modo de direccionamiento no es necesario poner ninguna direccioacuten de forma expliacutecita ya que en el propio coacutedigo de operacioacuten se conoce la direccioacuten del (de los) operando(s) al (a los) que se desea acceder o con el (los) que se quiere operarUn ejemplo de este tipo de direccionamiento lo podemos encontrar en la arquitectura de acumulador (AC) donde siempre hay un paraacutemetro impliacutecito y este es el ACPara finalizar y dejar este modo de direccionamiento generalizado para las arquitecturas maacutes usuales remarcamos que tambieacuten podemos encontrarlo en la arquitectura con registros de propoacutesito general por ejemplo con oacuterdenes como set c que pone a 1 el registro c (acarreo)
bull De registroSirve para especificar operandos que estaacuten en registros
bull Indirecto mediante registrosEl campo de operando de la instruccioacuten contiene un identificador de registro en el que se encuentra la direccioacuten efectiva del operando En este modo el campo de la direccioacuten de la instruccioacuten da la direccioacuten en donde la direccioacuten efectiva se almacena en la memoria El control localiza la instruccioacuten de la memoria y utiliza su parte de direccioacuten para accesar la memoria de nuevo para leer una direccioacuten efectiva Unos pocos modos de direccionamiento requieren que el campo de direccioacuten de la instruccioacuten sea sumado al control de un registro especificado en el procesadorLa direccioacuten efectiva en este modo se obtiene del siguiente caacutelculoDir Efectiva = Dir de la parte de la instruccioacuten + Contenido del registro del procesador
bull De desplazamientoCombina el modo directo e indirecto mediante registros
bull De pilaSe utiliza cuando el operando estaacute en memoria y en la cabecera de la pilaEste direccionamiento se basa en las estructuras denominadas Pila(tipo LIFO) las cuales estaacuten marcados por el fondo de la pila y el puntero de pila (SP) El puntero de pila apunta a la uacuteltima posicioacuten ocupada Asiacute como puntero de direccionamiento usaremos el SP El desplazamiento maacutes el valor del SP nos daraacute la direccioacuten del objeto al que queramos hacer referencia En ocasiones si no existe C de desplazamiento solo se trabajara con la cima de la pila Este tipo de direccionamiento nos aporta flexibilidad pero por el contrario es mucho maacutes complejo que otros tipos estudiados maacutes arriba
ORGANIZACIOacuteN DEL PROCESADOR
Captar instrucciones el procesador lee una instruccioacuten de memoria (registro cache o memoria principal)Interpretar instruccioacuten la instruccioacuten se codifica para determinar queacute accioacuten es necesarioCaptar datos la ejecucioacuten de una instruccioacuten puede exigir leer datos de memoria o de un moacutedulo de ESProcesar datos la ejecucioacuten e una instruccioacuten puede exigir llevar a cabo alguna operacioacuten aritmeacutetica o loacutegica con los datosEscribir datos los resultados de una ejecucioacuten pueden exigir escribir datos en la memoria o en el moacutedulo de ESPara hacer estas cosas el procesador necesita almacenar instrucciones y datos temporalmente mientras una instruccioacuten esta ejecutaacutendose en otras palabras el procesador necesita una pequentildea memoria interna
ORGANIZACIOacuteN DE REGISTROS
Registros visibles al usuario son utilizados por el programador
Registros de control y estado son utilizados por la UC para controlar la operacioacuten de la CPU (no son visibles por el programador)
REGISTROS VISIBLES AL USUARIObull Pueden ser asignados a una variedad de funciones
bull cualquier registro de propoacutesito general puede contener el operando para cualquier coacutedigo de operacioacuten (verdadero propoacutesito)
bull pueden existir restricciones (ej Registros dedicados a operaciones especificas)
NUacuteMERO DE REGISTROSbull Afecta al tamantildeo de la instruccioacuten
bull Mayor Nordm de registros maacutes bits para especificarlos en la instruccioacuten
bull Pocos registros maacutes referencias a memoria
bull No oacuteptimo entre 8 y 32 reg Maacutes no hay gran mejora (aumenta tamantildeo de la instruccioacuten)
LONGITUD DE LOS REGISTROSbull De direcciones deben ser capaces de almacenar la direccioacuten maacutes grande
bull De datos deben estar habilitados para almacenar la mayoriacutea de los tipos de datos
bull Algunas maacutequinas permiten 2 registros contiguos utilizados como un solo registro para almacenar valores de doble longitud
BITS DE CONDICIOacuteN (BANDERAS)bull Bits establecidos por la CPU como resultado de operaciones
bull Pueden ser utilizados por las instrucciones de bifurcacioacuten condicional
bull Generalmente no son alterados por el programador
REGISTROS DE CONTROL Y ESTADObull Empleados para controlar la operacioacuten de la CPU En la mayoriacutea de las
maacutequinas no son visibles al usuario
bull Los 4 esenciales para la ejecucioacuten de
bull Contador de programa (PC)
bull Registro de instruccioacuten (IR)
bull Registro de direccioacuten de memoria (MAR)
bull Registro buffer de memoria (MBR)bull Los 4 reg recieacuten mencionados se emplean para el movimiento de datos
entre la CPU y memoria
bull Dentro de la CPU los datos se deben presentar a la ALU para procesamiento eacutesta puede acceder al MBR y a los reg visibles por el usuario Puede haber tambieacuten reg temporales adicionales para intercambiar datos con el MBR y demaacutes reg visibles
bull un ciclo de instruccioacuten incluye los siguientes sub ciclos
bull Capitacioacuten es la que lleva la siguiente instruccioacuten de la memoria al procesador
bull Ejecucioacuten interpreta el coacutedigo de operacioacuten y lleva a cabo la operacioacuten indicada
bull Interrupcioacuten si ocurre un problema guarda el estado del proceso actual y atiende la interrupcioacuten
CICLO DE INSTRUCCIOacuteN
CICLO INDIRECTObull Si se usa direccionamiento indirecto es necesario memoria adicional
bull La principal actividad es consiste en alternar las actividades de captacioacuten y ejecucioacuten de instrucciones
bull La instruccioacuten es captada pada determinar si incluye un direccionamiento indirecto
bull Una vez que la instruccioacuten es captada debe identificar sus campos de operando
bull Despueacutes que se ejecuta es un proceso similar para almacenar
bull El resultado en la memoria principal
FLUJO DE DATOS
bull La secuencia de eventos que tienen lugar durante el clico de instruccioacuten depende del procesador
bull El contador de programa contiene la direccioacuten de la siguiente instruccioacuten
bull La unidad de control solicita una lectura de memoria y el resultado se pone en un bus de datos y se lleva al registro de instruccioacuten
bull El ciclo de ejecucioacuten adopta muchas formas ya que se ya que depende del registro de instruccioacuten
bull Este ciclo puede aplicar transferencia de datos entre registros asiacute como lectura y escritura en Es
bull Mientras que el ciclo de interrupcioacuten es simple el contenido de contador de programa debe ser almacenado para que el procesador pueda continuar su actividad
La segmentacioacuten o pipeline es una teacutecnica de realizacioacuten de procesadores por la cual se solapa la ejecucioacuten de las instrucciones Hoy en diacutea es la teacutecnica clave para la realizacioacuten de CPU raacutepidas La idea baacutesica de la segmentacioacuten se puede extraer de una cadena de montaje de coches Los coches no se montan uno a uno si no que su construccioacuten se divide en fases sucesivas y el montaje del coche se realiza tal como este va avanzando por estas fases De esta forma cada fase estaacute trabajando simultaacuteneamente en la construccioacuten de un coche diferente De esta forma la construccioacuten de un coche cuesta el mismo tiempo que antes pero ahora la frecuencia con que salen los coches construidos es mucho mayor (tantos como fases tenga su construccioacuten) Cada uno de estas fases se denomina segmento o etapa de segmentacioacuten Al igual que en los coches la productividad de un computador va a depender del nuacutemero de instrucciones que acaben por unidad de tiempo y no de lo que le cueste a una instruccioacuten individual
SEGMENTACIOacuteN DE INSTRUCCIONES
RISC (del ingleacutes reduced instruction set computer) es un tipo de microprocesador con las siguientes caracteriacutesticas fundamentalesbull Instrucciones de tamantildeo fijo y presentadas en un reducido nuacutemero de formatosbull Soacutelo las instrucciones de carga y almacenamiento acceden a la memoria de datosbull El objetivo de disentildear maacutequinas con esta arquitectura es posibilitar la segmentacioacuten y el
paralelismo en la ejecucioacuten de instrucciones y reducir los accesos a memoria
ARQUITECTURA RISC
CISC (complex instruction set computer) bull Los microprocesadores CISC tienen un conjunto de instrucciones que se caracteriza
por ser muy amplio y permitir operaciones complejas entre operandos situados en la memoria o en los registros internos en contraposicioacuten a la arquitectura RISC
bull Este tipo de arquitectura dificulta el paralelismo entre instrucciones por lo que en la actualidad la mayoriacutea de los sistemas CISC de alto rendimiento implementan un sistema que convierte dichas instrucciones complejas en varias instrucciones simples del tipo RISC llamadas generalmente microinstrucciones
bull Para realizar una sola instruccioacuten un chip CISC requiere de cuatro a diez ciclos de reloj
ARQUITECTURA CISC
ARITMEacuteTICA CON ENTEROS
Un entero se puede representar empleando todos los bits de una palabra de computadora con la salvedad de que se debe reservar un bit para el signo Por ejemplo en una maacutequina con longitud de palabra de 32 bits los enteros estaacuten comprendidos entre -(231 - 1) y 231 - 1 = 2147483647 Un nuacutemero representado en formato entero es exacto Las operaciones aritmeacuteticas entre nuacutemeros enteros son tambieacuten exactas siempre y cuando 1
La solucioacuten no esteacute fuera del rango del nuacutemero entero maacutes grande o maacutes pequentildeo que se puede representar (generalmente con signo) En estos casos se dice que se comete un error de desbordamiento por exceso o por defecto (en ingleacutes Overflow y Underflow) y es necesario recurrir a teacutecnicas de escalado para llevar a cabo las operaciones
2 La divisioacuten se interpreta que da lugar a un nuacutemero entero despreciando cualquier resto
ENTEROS
Para representar un nuacutemero entero en la computadora se utiliza el sistema de numeracioacuten binaria o de base 2 debido a la tecnologiacutea que se utiliza para la memoria la cual solo permite el uso de 2 diacutegitos 0 y 1
Los nuacutemeros enteros de acuerdo a la definicioacuten pueden ser positivos o negativos esto hace que la representacioacuten en la computadora se establezcan convenciones (meacutetodo de signo y magnitud o el de Complemento)
ARITMEacuteTICA CON PUNTO FLOTANTE
Representacioacuten de Nuacutemeros RealesUn nuacutemero real en cualquier base (R) puede ser representado como (notacioacuten de punto fijo)
Un meacutetodo alterno que facilita la manipulacioacuten de los nuacutemeros reales es la notacioacuten cientiacutefica o de punto flotante
donde
A = (A A A A A A A A A )n-1n+
R 1 -1 -2 -(m-1)- n-2 0 -m Rhellip hellip
La forma general de un nuacutemero real de base (R) en notacioacuten flotante f f f f x R -2-1
+- -3 -m
Ehellip +-
Es llamada la parte fraccionaria o mantisaEs un nuacutemero entero llamado exponenteEs la base
f f f f-2-1 -3 -mhellip
ER
Signo Exponente Mantisa
Mantisa
Signo Exponente Mantisa
Mantisa
dondeSigno de la mantisa (representa con 0 o 1)Exponente (representa entero en complemento a 2)Mantisa (representa entero en signo y magnitud)
ExponenteMantisa
Signo
Mantisa
Mantisa
Nuacutemero Real
Parte Real
Parte Imaginaria
REPERTORIO DE INSTRUCCIONES
bull Para comandar una computadora se le debe ldquohablarrdquo en su lenguaje Las palabras del lenguaje de una maacutequina son llamadas instrucciones y su vocabulario es llamado repertorio de instrucciones En esta seccioacuten se expone el repertorio de instrucciones de una computadora real considerando una forma entendible para los humanos (ensamblador) y una forma entendible por la computadora (coacutedigo maacutequina)
INSTRUCCIONES bull Es faacutecil ver por meacutetodos loacutegicos formales que existen ciertos [repertorios de instrucciones] que son en
abstracto adecuados para controlar y causar la ejecucioacuten de cualquier secuencia de operaciones Las consideraciones realmente decisivas desde el punto de vista actual en seleccionar un [repertorio de instrucciones] son maacutes de naturaleza praacutectica La simplicidad del equipo demandado por el [repertorio de instrucciones] y la claridad de su aplicacioacuten a problemas realmente importantes junto con la velocidad del manejo de esos problemas
bull Burks Goldstine y von Neumann 1947
bull La ldquosimplicidad del equipordquo es una consideracioacuten tan valiosa para las maacutequinas actuales como lo fue en los 50rsquos La meta de este capiacutetulo es mostrar un repertorio de instrucciones que siga este consejo mostrando como eacuteste es representado en hardware y su relacioacuten con los lenguajes de alto nivel
bull El repertorio de instrucciones bajo estudio es de una arquitectura MIPS usado por NEC Nintendo Silicon Graphics y Sony entre otros Y es un repertorio de instrucciones tiacutepico disentildeado en los 80rsquos
MIPS ndash INSTRUCCIONES aritmeacuteticoloacutegicas
bull bull Principio de disentildeo 1
bull ndash ldquoLa simplicidad favorece la uniformidadrdquo
bull bull Todos los computadores deben ser
bull capaces de realizar caacutelculos aritmeacuteticos y
bull loacutegicos
bull add a b c a 1048773 b + c
bull sub a a d a 1048773 a + d = (b + c) - d
bull or a a e a 1048773 a + e = (b + c + d) OR e
MIPS ndash INSTRUCCIONES DE SALTOCONDICIONAL
bull bull Instrucciones de salto condicional (soacutelo dos)
bull ndash bne $s0 $s1 L1 branch to L1 if no equal
bull ndash beq $s0 $s1 L1 branch to L1 if equal
bull bull Pseudoinstrucciones de salto condicional
bull ndash slt (set si menor que) beq bne y $zero permiten las
bull condiciones restantes
bull blt $s1 $s2 etiqueta salta si menor que
bull slt $at $s1 $s2
bull bne $at $zero etiqueta
bull ndash El ensamblador expande las pseudoinstrucciones
bull bull $at registro utilizado por el programa ensamblador
EJEMPLO DE COMPILACIOacuteN DE UNA SENTENCIA DE SALTO CONDICIONAL
bull bull Coacutedigo fuente de C
bull If (i==j) h = i + j
bull h i y j en $s0 $s1 y $s2
bull bull Compilacioacuten en MIPS
bull bne $s1 $s2 etiqueta
bull add $s0 $s1 $s2
bull etiqueta hellip
LENGUAJE MAacuteQUINA ndash INSTRUCCIONESARITMEacuteTICO-LOacuteGICAS
bull bull El tamantildeo de las instrucciones es de 32 bits
bull bull Las instrucciones aritmeacutetico-loacutegicas son codificadas con el formato tipo-R
bull ndash add $rd $rs $rt
bull bull Significado de los campos
bull ndash op 6-bits coacutedigo de operacioacuten
bull ndash rs rt rd 5-bits registro source target destination
bull ndash shamt 5-bits nuacutemero de bits a desplazar (cuando aplicable)
bull ndash funct 6-bits coacutedigo de funcioacuten (extensioacuten del coacutedigo de operacioacuten)
bull op rs rt rd shamt funct Formato de instrucciones aritmeacuteticas
bull 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits Todas las instrucciones MIPS de 32 bits
bull 000000 01010 11111 00011 00000 100000 0x015f1820 add $3$10$31
LENGUAJE MAacuteQUINA ndash INSTRUCCIONESDE ACCESO A MEMORIA
bull bull Principio de disentildeo 3
bull ndash ldquoUn buen disentildeo necesita buenas soluciones de compromisordquo
bull bull Las instrucciones de load y store especifican dos registros y un
bull desplazamiento
bull ndash Formato tipo I (16 bits para el dato inmediato)
bull ndash lw $rt inmediato($rs) sw $rt inmediato($rs
bull ndash lh lhu lb lbu sh sb (load half half unsigned byte byte unsigned store half
bull byte)
bull op rs rt Direccioacuteninmediato Formato de instruciones de carga
bull 6 bits 5 bits 5 bits 16 bits Todas las instrucciones MIPS de 32 bits
bull 100011 00011 00101 0000000000100000 0x8c650020 lw $
TIPO DE OPERACIONES
Transferencia de datosbull Move (transferir) transfiere una palabra o un bloque desde un origen a un destinobull Store (memorizar) Transfiere una palabra desde el procesador a memoriabull Load (cargar o captar) transfiere una palabra desde memoria al procesadorbull Exchange (intercambiar) intercambia los contenidos del origen y el destinobull Clear (reiniciar o poner a 0) Transfiere una palabra de ceros al destinobull Set (poner a 1) transfiere una palabra de unos al destinobull Push (introducir en la pila ldquoapilarrdquo) Transfiere una palabra desde un origen a la cabecera de la pilabull Pop (extraer de la pila ldquodesapilarrdquo) Transfiere una palabra desde la cabecera de la pila a un destinoAritmeacuteticas bull Add (sumar) Calcula la suma de 2 operandosbull Substract (restar) Calcula la diferencia de dos operandosbull Multiply (multiplicar) Calcula el producto de dos operandosbull Divide (dividir) Calcula el cociente de dos operandosbull Absolute (valor absoluto) Sustituye el operando por su valor absolutobull Negate (opuesto) Cambia el signo del operandobull Increment (incrementar) suma 1 al operandobull Decrement (decremenatar) Resta 1 al operandoLoacutegicasbull AND (Producto loacutegico Y) Realiza la operacioacuten loacutegica Y (AND)bull OR (Suma loacutegica O) Realiza la operacioacuten loacutegica o (OR)bull NOT (Complemento) Realiza el complemento (NOT) bit a bit del dato
bull Exclusive-OR (OR-exclusiva) Realiza la operacioacuten loacutegica O-Exclusiva (XOR)bull Test (comprobar) Comprueba la condicioacuten especificada foja los indicadores (flags) en funcioacuten del
resultadobull Compare (comparar) Realiza la operacioacuten loacutegica o aritmeacutetica de dos o mas operandos fija los
indicadores (flags) en funcioacuten del resultadobull Set control variables (fijar variables de control) Instrucciones que fijan controles para proteccioacuten gestioacuten
de interrupciones control de temporizador etcbull Shift (desplazamiento) Desplaza el operando a la izquierda (derecha) introduciendo valores constantes
por el otro extremobull Rotate (rotar) Desplaza el operando a la izquierda (derecha) de forma ciacuteclicaControl de flujobull Jump (bifurcacioacuten o salto) Ruptura incondicional de flujo carga el PC con la direccioacuten especificada bull Jump condicional (salto condicional) Comprueba la condicioacuten especificada dependiendo de la condicioacuten
o carga del PC con la direccioacuten indicada o no hace nadabull Jump to Subrutina (llamada la subrutina) Guarda la informacioacuten de control del programa en una posicioacuten
conocida y salta a la direccioacuten indicadabull Return (retorno) Sustituye el contenido del PC y de otros registros por los de la posicioacuten conocidabull Execute (ejecutar) Capta el operando de la direccioacuten indicada y lo ejecuta como una instruccioacuten no
modifica el PCbull Skip (salto impliacutecito) Incrementa el PC de manera que salte la instruccioacuten siguientebull Skip conditional (salto impliacutecito condicional) Comprueba la condicioacuten indicada realiza el salto impliacutecito
o no hace nada dependiendo de la condicioacutenbull Halt (parar) Detiene la ejecucioacuten del programa
bull Wait (esperar) Detiene la ejecucioacuten del programa comprueba de forma repetitiva la condicioacuten especificada reanuda la ejecucioacuten cuando se satisface la condicioacuten
bull No operation (no operacioacuten) No se ejecuta operacioacuten alguna pero la ejecucioacuten del programa continuaENTRADASALIDAbull InPut (entrada) Transfiera datos desde un puerto o dispositivo de ES al destino (memoria principal o
registro del procesador)bull OutPut (salida) Transfiera datos desde el origen especificado a un puerto o dispositivo de ESbull Start IO (iniciar ES) Transfiere instrucciones al procesador de ES para iniciar operaciones de ESbull Test IO (comprobar ES) Transfiere informacioacuten de estado desde el sistema de ES al destino
especificadoCONVERSIONbull Traslate (traducir) Traduccioacuten de los valores de una seccioacuten de memoria basada en una tabla de
correspondenciabull Convert (convertir) Convierte el contenido de una palabra de un formato a otro (por ejemplo de decimal
empaquetado a binario)
ACCIONES DEL PROCESADOR PARA VARIOS TIPOS DE OPERADORES
TRANSFERENCIA DE DATOS Transfiere datos de una posicioacuten a otra si se implica la memoriabull Determina la direccioacuten de memoriabull Realiza la transformacioacuten de direcciones de memoria virtual a realbull Comprueba la cachebull Inicia la lecturaescritura ende memoriaARITMEacuteTICAbull Puede implicar transferencia de datos antes yo despueacutesbull Realiza la operacioacuten en la ALUbull Actualiza coacutedigos e indicadores de condicioacutenLOacuteGICA Lo mismo que en la aritmeacuteticaCONVERSION Similar a la aritmeacutetica y la loacutegica Puede implicar a loacutegica especial para realizar la conversioacutenCONTRO DEL FLUJO Actualiza el contador del programa En el caso de llamadas y retorno de subrutinas gestiona la transferencia y enlace de paraacutemetrosES bull Cursa una orden en el modulo de ESbull En el caso de ES asignada en memoria determina la direccioacuten de memoria correspondiente
MODOS DE DIRECCIONAMIENTObull InmediatoEn la instruccioacuten estaacute incluido directamente el operandoEn este modo el operando es especificado en la instruccioacuten misma En otras palabras una instruccioacuten de modo inmediato tiene un campo de operando en vez de un campo de direccioacuten El campo del operando contiene el operando actual que se debe utilizar en conjunto con la operacioacuten especificada en la instruccioacuten Las instrucciones de modo inmediato son uacutetiles para inicializar los registros en un valor constanteCuando el campo de direccioacuten especifica un registro del procesador la instruccioacuten se dice que estaacute en el modo de registro
bull DirectoEl campo de operando en la instruccioacuten contiene la direccioacuten en memoria donde se encuentra el operando En este modo la direccioacuten efectiva es igual a la parte de direccioacuten de la instruccioacuten El operando reside en la memoria y su direccioacuten es dada directamente por el campo de direccioacuten de la instruccioacuten En una instruccioacuten de tipo ramificacioacuten el campo de direccioacuten especifica la direccioacuten de la rama actualCon este tipo de direccionamiento la direccioacuten efectiva es contenida en la misma instruccioacuten tal como los valores de datos inmediatos que son contenidos en la instruccioacuten Un procesador de 16 bits suma la direccioacuten efectiva al contenido del segmento de datos previamente desplazado en 4 bits para producir la direccioacuten fiacutesica del operando
bull IndirectoEn este modo de direccionamiento no es necesario poner ninguna direccioacuten de forma expliacutecita ya que en el propio coacutedigo de operacioacuten se conoce la direccioacuten del (de los) operando(s) al (a los) que se desea acceder o con el (los) que se quiere operarUn ejemplo de este tipo de direccionamiento lo podemos encontrar en la arquitectura de acumulador (AC) donde siempre hay un paraacutemetro impliacutecito y este es el ACPara finalizar y dejar este modo de direccionamiento generalizado para las arquitecturas maacutes usuales remarcamos que tambieacuten podemos encontrarlo en la arquitectura con registros de propoacutesito general por ejemplo con oacuterdenes como set c que pone a 1 el registro c (acarreo)
bull De registroSirve para especificar operandos que estaacuten en registros
bull Indirecto mediante registrosEl campo de operando de la instruccioacuten contiene un identificador de registro en el que se encuentra la direccioacuten efectiva del operando En este modo el campo de la direccioacuten de la instruccioacuten da la direccioacuten en donde la direccioacuten efectiva se almacena en la memoria El control localiza la instruccioacuten de la memoria y utiliza su parte de direccioacuten para accesar la memoria de nuevo para leer una direccioacuten efectiva Unos pocos modos de direccionamiento requieren que el campo de direccioacuten de la instruccioacuten sea sumado al control de un registro especificado en el procesadorLa direccioacuten efectiva en este modo se obtiene del siguiente caacutelculoDir Efectiva = Dir de la parte de la instruccioacuten + Contenido del registro del procesador
bull De desplazamientoCombina el modo directo e indirecto mediante registros
bull De pilaSe utiliza cuando el operando estaacute en memoria y en la cabecera de la pilaEste direccionamiento se basa en las estructuras denominadas Pila(tipo LIFO) las cuales estaacuten marcados por el fondo de la pila y el puntero de pila (SP) El puntero de pila apunta a la uacuteltima posicioacuten ocupada Asiacute como puntero de direccionamiento usaremos el SP El desplazamiento maacutes el valor del SP nos daraacute la direccioacuten del objeto al que queramos hacer referencia En ocasiones si no existe C de desplazamiento solo se trabajara con la cima de la pila Este tipo de direccionamiento nos aporta flexibilidad pero por el contrario es mucho maacutes complejo que otros tipos estudiados maacutes arriba
ORGANIZACIOacuteN DEL PROCESADOR
Captar instrucciones el procesador lee una instruccioacuten de memoria (registro cache o memoria principal)Interpretar instruccioacuten la instruccioacuten se codifica para determinar queacute accioacuten es necesarioCaptar datos la ejecucioacuten de una instruccioacuten puede exigir leer datos de memoria o de un moacutedulo de ESProcesar datos la ejecucioacuten e una instruccioacuten puede exigir llevar a cabo alguna operacioacuten aritmeacutetica o loacutegica con los datosEscribir datos los resultados de una ejecucioacuten pueden exigir escribir datos en la memoria o en el moacutedulo de ESPara hacer estas cosas el procesador necesita almacenar instrucciones y datos temporalmente mientras una instruccioacuten esta ejecutaacutendose en otras palabras el procesador necesita una pequentildea memoria interna
ORGANIZACIOacuteN DE REGISTROS
Registros visibles al usuario son utilizados por el programador
Registros de control y estado son utilizados por la UC para controlar la operacioacuten de la CPU (no son visibles por el programador)
REGISTROS VISIBLES AL USUARIObull Pueden ser asignados a una variedad de funciones
bull cualquier registro de propoacutesito general puede contener el operando para cualquier coacutedigo de operacioacuten (verdadero propoacutesito)
bull pueden existir restricciones (ej Registros dedicados a operaciones especificas)
NUacuteMERO DE REGISTROSbull Afecta al tamantildeo de la instruccioacuten
bull Mayor Nordm de registros maacutes bits para especificarlos en la instruccioacuten
bull Pocos registros maacutes referencias a memoria
bull No oacuteptimo entre 8 y 32 reg Maacutes no hay gran mejora (aumenta tamantildeo de la instruccioacuten)
LONGITUD DE LOS REGISTROSbull De direcciones deben ser capaces de almacenar la direccioacuten maacutes grande
bull De datos deben estar habilitados para almacenar la mayoriacutea de los tipos de datos
bull Algunas maacutequinas permiten 2 registros contiguos utilizados como un solo registro para almacenar valores de doble longitud
BITS DE CONDICIOacuteN (BANDERAS)bull Bits establecidos por la CPU como resultado de operaciones
bull Pueden ser utilizados por las instrucciones de bifurcacioacuten condicional
bull Generalmente no son alterados por el programador
REGISTROS DE CONTROL Y ESTADObull Empleados para controlar la operacioacuten de la CPU En la mayoriacutea de las
maacutequinas no son visibles al usuario
bull Los 4 esenciales para la ejecucioacuten de
bull Contador de programa (PC)
bull Registro de instruccioacuten (IR)
bull Registro de direccioacuten de memoria (MAR)
bull Registro buffer de memoria (MBR)bull Los 4 reg recieacuten mencionados se emplean para el movimiento de datos
entre la CPU y memoria
bull Dentro de la CPU los datos se deben presentar a la ALU para procesamiento eacutesta puede acceder al MBR y a los reg visibles por el usuario Puede haber tambieacuten reg temporales adicionales para intercambiar datos con el MBR y demaacutes reg visibles
bull un ciclo de instruccioacuten incluye los siguientes sub ciclos
bull Capitacioacuten es la que lleva la siguiente instruccioacuten de la memoria al procesador
bull Ejecucioacuten interpreta el coacutedigo de operacioacuten y lleva a cabo la operacioacuten indicada
bull Interrupcioacuten si ocurre un problema guarda el estado del proceso actual y atiende la interrupcioacuten
CICLO DE INSTRUCCIOacuteN
CICLO INDIRECTObull Si se usa direccionamiento indirecto es necesario memoria adicional
bull La principal actividad es consiste en alternar las actividades de captacioacuten y ejecucioacuten de instrucciones
bull La instruccioacuten es captada pada determinar si incluye un direccionamiento indirecto
bull Una vez que la instruccioacuten es captada debe identificar sus campos de operando
bull Despueacutes que se ejecuta es un proceso similar para almacenar
bull El resultado en la memoria principal
FLUJO DE DATOS
bull La secuencia de eventos que tienen lugar durante el clico de instruccioacuten depende del procesador
bull El contador de programa contiene la direccioacuten de la siguiente instruccioacuten
bull La unidad de control solicita una lectura de memoria y el resultado se pone en un bus de datos y se lleva al registro de instruccioacuten
bull El ciclo de ejecucioacuten adopta muchas formas ya que se ya que depende del registro de instruccioacuten
bull Este ciclo puede aplicar transferencia de datos entre registros asiacute como lectura y escritura en Es
bull Mientras que el ciclo de interrupcioacuten es simple el contenido de contador de programa debe ser almacenado para que el procesador pueda continuar su actividad
La segmentacioacuten o pipeline es una teacutecnica de realizacioacuten de procesadores por la cual se solapa la ejecucioacuten de las instrucciones Hoy en diacutea es la teacutecnica clave para la realizacioacuten de CPU raacutepidas La idea baacutesica de la segmentacioacuten se puede extraer de una cadena de montaje de coches Los coches no se montan uno a uno si no que su construccioacuten se divide en fases sucesivas y el montaje del coche se realiza tal como este va avanzando por estas fases De esta forma cada fase estaacute trabajando simultaacuteneamente en la construccioacuten de un coche diferente De esta forma la construccioacuten de un coche cuesta el mismo tiempo que antes pero ahora la frecuencia con que salen los coches construidos es mucho mayor (tantos como fases tenga su construccioacuten) Cada uno de estas fases se denomina segmento o etapa de segmentacioacuten Al igual que en los coches la productividad de un computador va a depender del nuacutemero de instrucciones que acaben por unidad de tiempo y no de lo que le cueste a una instruccioacuten individual
SEGMENTACIOacuteN DE INSTRUCCIONES
RISC (del ingleacutes reduced instruction set computer) es un tipo de microprocesador con las siguientes caracteriacutesticas fundamentalesbull Instrucciones de tamantildeo fijo y presentadas en un reducido nuacutemero de formatosbull Soacutelo las instrucciones de carga y almacenamiento acceden a la memoria de datosbull El objetivo de disentildear maacutequinas con esta arquitectura es posibilitar la segmentacioacuten y el
paralelismo en la ejecucioacuten de instrucciones y reducir los accesos a memoria
ARQUITECTURA RISC
CISC (complex instruction set computer) bull Los microprocesadores CISC tienen un conjunto de instrucciones que se caracteriza
por ser muy amplio y permitir operaciones complejas entre operandos situados en la memoria o en los registros internos en contraposicioacuten a la arquitectura RISC
bull Este tipo de arquitectura dificulta el paralelismo entre instrucciones por lo que en la actualidad la mayoriacutea de los sistemas CISC de alto rendimiento implementan un sistema que convierte dichas instrucciones complejas en varias instrucciones simples del tipo RISC llamadas generalmente microinstrucciones
bull Para realizar una sola instruccioacuten un chip CISC requiere de cuatro a diez ciclos de reloj
ARQUITECTURA CISC
ENTEROS
Para representar un nuacutemero entero en la computadora se utiliza el sistema de numeracioacuten binaria o de base 2 debido a la tecnologiacutea que se utiliza para la memoria la cual solo permite el uso de 2 diacutegitos 0 y 1
Los nuacutemeros enteros de acuerdo a la definicioacuten pueden ser positivos o negativos esto hace que la representacioacuten en la computadora se establezcan convenciones (meacutetodo de signo y magnitud o el de Complemento)
ARITMEacuteTICA CON PUNTO FLOTANTE
Representacioacuten de Nuacutemeros RealesUn nuacutemero real en cualquier base (R) puede ser representado como (notacioacuten de punto fijo)
Un meacutetodo alterno que facilita la manipulacioacuten de los nuacutemeros reales es la notacioacuten cientiacutefica o de punto flotante
donde
A = (A A A A A A A A A )n-1n+
R 1 -1 -2 -(m-1)- n-2 0 -m Rhellip hellip
La forma general de un nuacutemero real de base (R) en notacioacuten flotante f f f f x R -2-1
+- -3 -m
Ehellip +-
Es llamada la parte fraccionaria o mantisaEs un nuacutemero entero llamado exponenteEs la base
f f f f-2-1 -3 -mhellip
ER
Signo Exponente Mantisa
Mantisa
Signo Exponente Mantisa
Mantisa
dondeSigno de la mantisa (representa con 0 o 1)Exponente (representa entero en complemento a 2)Mantisa (representa entero en signo y magnitud)
ExponenteMantisa
Signo
Mantisa
Mantisa
Nuacutemero Real
Parte Real
Parte Imaginaria
REPERTORIO DE INSTRUCCIONES
bull Para comandar una computadora se le debe ldquohablarrdquo en su lenguaje Las palabras del lenguaje de una maacutequina son llamadas instrucciones y su vocabulario es llamado repertorio de instrucciones En esta seccioacuten se expone el repertorio de instrucciones de una computadora real considerando una forma entendible para los humanos (ensamblador) y una forma entendible por la computadora (coacutedigo maacutequina)
INSTRUCCIONES bull Es faacutecil ver por meacutetodos loacutegicos formales que existen ciertos [repertorios de instrucciones] que son en
abstracto adecuados para controlar y causar la ejecucioacuten de cualquier secuencia de operaciones Las consideraciones realmente decisivas desde el punto de vista actual en seleccionar un [repertorio de instrucciones] son maacutes de naturaleza praacutectica La simplicidad del equipo demandado por el [repertorio de instrucciones] y la claridad de su aplicacioacuten a problemas realmente importantes junto con la velocidad del manejo de esos problemas
bull Burks Goldstine y von Neumann 1947
bull La ldquosimplicidad del equipordquo es una consideracioacuten tan valiosa para las maacutequinas actuales como lo fue en los 50rsquos La meta de este capiacutetulo es mostrar un repertorio de instrucciones que siga este consejo mostrando como eacuteste es representado en hardware y su relacioacuten con los lenguajes de alto nivel
bull El repertorio de instrucciones bajo estudio es de una arquitectura MIPS usado por NEC Nintendo Silicon Graphics y Sony entre otros Y es un repertorio de instrucciones tiacutepico disentildeado en los 80rsquos
MIPS ndash INSTRUCCIONES aritmeacuteticoloacutegicas
bull bull Principio de disentildeo 1
bull ndash ldquoLa simplicidad favorece la uniformidadrdquo
bull bull Todos los computadores deben ser
bull capaces de realizar caacutelculos aritmeacuteticos y
bull loacutegicos
bull add a b c a 1048773 b + c
bull sub a a d a 1048773 a + d = (b + c) - d
bull or a a e a 1048773 a + e = (b + c + d) OR e
MIPS ndash INSTRUCCIONES DE SALTOCONDICIONAL
bull bull Instrucciones de salto condicional (soacutelo dos)
bull ndash bne $s0 $s1 L1 branch to L1 if no equal
bull ndash beq $s0 $s1 L1 branch to L1 if equal
bull bull Pseudoinstrucciones de salto condicional
bull ndash slt (set si menor que) beq bne y $zero permiten las
bull condiciones restantes
bull blt $s1 $s2 etiqueta salta si menor que
bull slt $at $s1 $s2
bull bne $at $zero etiqueta
bull ndash El ensamblador expande las pseudoinstrucciones
bull bull $at registro utilizado por el programa ensamblador
EJEMPLO DE COMPILACIOacuteN DE UNA SENTENCIA DE SALTO CONDICIONAL
bull bull Coacutedigo fuente de C
bull If (i==j) h = i + j
bull h i y j en $s0 $s1 y $s2
bull bull Compilacioacuten en MIPS
bull bne $s1 $s2 etiqueta
bull add $s0 $s1 $s2
bull etiqueta hellip
LENGUAJE MAacuteQUINA ndash INSTRUCCIONESARITMEacuteTICO-LOacuteGICAS
bull bull El tamantildeo de las instrucciones es de 32 bits
bull bull Las instrucciones aritmeacutetico-loacutegicas son codificadas con el formato tipo-R
bull ndash add $rd $rs $rt
bull bull Significado de los campos
bull ndash op 6-bits coacutedigo de operacioacuten
bull ndash rs rt rd 5-bits registro source target destination
bull ndash shamt 5-bits nuacutemero de bits a desplazar (cuando aplicable)
bull ndash funct 6-bits coacutedigo de funcioacuten (extensioacuten del coacutedigo de operacioacuten)
bull op rs rt rd shamt funct Formato de instrucciones aritmeacuteticas
bull 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits Todas las instrucciones MIPS de 32 bits
bull 000000 01010 11111 00011 00000 100000 0x015f1820 add $3$10$31
LENGUAJE MAacuteQUINA ndash INSTRUCCIONESDE ACCESO A MEMORIA
bull bull Principio de disentildeo 3
bull ndash ldquoUn buen disentildeo necesita buenas soluciones de compromisordquo
bull bull Las instrucciones de load y store especifican dos registros y un
bull desplazamiento
bull ndash Formato tipo I (16 bits para el dato inmediato)
bull ndash lw $rt inmediato($rs) sw $rt inmediato($rs
bull ndash lh lhu lb lbu sh sb (load half half unsigned byte byte unsigned store half
bull byte)
bull op rs rt Direccioacuteninmediato Formato de instruciones de carga
bull 6 bits 5 bits 5 bits 16 bits Todas las instrucciones MIPS de 32 bits
bull 100011 00011 00101 0000000000100000 0x8c650020 lw $
TIPO DE OPERACIONES
Transferencia de datosbull Move (transferir) transfiere una palabra o un bloque desde un origen a un destinobull Store (memorizar) Transfiere una palabra desde el procesador a memoriabull Load (cargar o captar) transfiere una palabra desde memoria al procesadorbull Exchange (intercambiar) intercambia los contenidos del origen y el destinobull Clear (reiniciar o poner a 0) Transfiere una palabra de ceros al destinobull Set (poner a 1) transfiere una palabra de unos al destinobull Push (introducir en la pila ldquoapilarrdquo) Transfiere una palabra desde un origen a la cabecera de la pilabull Pop (extraer de la pila ldquodesapilarrdquo) Transfiere una palabra desde la cabecera de la pila a un destinoAritmeacuteticas bull Add (sumar) Calcula la suma de 2 operandosbull Substract (restar) Calcula la diferencia de dos operandosbull Multiply (multiplicar) Calcula el producto de dos operandosbull Divide (dividir) Calcula el cociente de dos operandosbull Absolute (valor absoluto) Sustituye el operando por su valor absolutobull Negate (opuesto) Cambia el signo del operandobull Increment (incrementar) suma 1 al operandobull Decrement (decremenatar) Resta 1 al operandoLoacutegicasbull AND (Producto loacutegico Y) Realiza la operacioacuten loacutegica Y (AND)bull OR (Suma loacutegica O) Realiza la operacioacuten loacutegica o (OR)bull NOT (Complemento) Realiza el complemento (NOT) bit a bit del dato
bull Exclusive-OR (OR-exclusiva) Realiza la operacioacuten loacutegica O-Exclusiva (XOR)bull Test (comprobar) Comprueba la condicioacuten especificada foja los indicadores (flags) en funcioacuten del
resultadobull Compare (comparar) Realiza la operacioacuten loacutegica o aritmeacutetica de dos o mas operandos fija los
indicadores (flags) en funcioacuten del resultadobull Set control variables (fijar variables de control) Instrucciones que fijan controles para proteccioacuten gestioacuten
de interrupciones control de temporizador etcbull Shift (desplazamiento) Desplaza el operando a la izquierda (derecha) introduciendo valores constantes
por el otro extremobull Rotate (rotar) Desplaza el operando a la izquierda (derecha) de forma ciacuteclicaControl de flujobull Jump (bifurcacioacuten o salto) Ruptura incondicional de flujo carga el PC con la direccioacuten especificada bull Jump condicional (salto condicional) Comprueba la condicioacuten especificada dependiendo de la condicioacuten
o carga del PC con la direccioacuten indicada o no hace nadabull Jump to Subrutina (llamada la subrutina) Guarda la informacioacuten de control del programa en una posicioacuten
conocida y salta a la direccioacuten indicadabull Return (retorno) Sustituye el contenido del PC y de otros registros por los de la posicioacuten conocidabull Execute (ejecutar) Capta el operando de la direccioacuten indicada y lo ejecuta como una instruccioacuten no
modifica el PCbull Skip (salto impliacutecito) Incrementa el PC de manera que salte la instruccioacuten siguientebull Skip conditional (salto impliacutecito condicional) Comprueba la condicioacuten indicada realiza el salto impliacutecito
o no hace nada dependiendo de la condicioacutenbull Halt (parar) Detiene la ejecucioacuten del programa
bull Wait (esperar) Detiene la ejecucioacuten del programa comprueba de forma repetitiva la condicioacuten especificada reanuda la ejecucioacuten cuando se satisface la condicioacuten
bull No operation (no operacioacuten) No se ejecuta operacioacuten alguna pero la ejecucioacuten del programa continuaENTRADASALIDAbull InPut (entrada) Transfiera datos desde un puerto o dispositivo de ES al destino (memoria principal o
registro del procesador)bull OutPut (salida) Transfiera datos desde el origen especificado a un puerto o dispositivo de ESbull Start IO (iniciar ES) Transfiere instrucciones al procesador de ES para iniciar operaciones de ESbull Test IO (comprobar ES) Transfiere informacioacuten de estado desde el sistema de ES al destino
especificadoCONVERSIONbull Traslate (traducir) Traduccioacuten de los valores de una seccioacuten de memoria basada en una tabla de
correspondenciabull Convert (convertir) Convierte el contenido de una palabra de un formato a otro (por ejemplo de decimal
empaquetado a binario)
ACCIONES DEL PROCESADOR PARA VARIOS TIPOS DE OPERADORES
TRANSFERENCIA DE DATOS Transfiere datos de una posicioacuten a otra si se implica la memoriabull Determina la direccioacuten de memoriabull Realiza la transformacioacuten de direcciones de memoria virtual a realbull Comprueba la cachebull Inicia la lecturaescritura ende memoriaARITMEacuteTICAbull Puede implicar transferencia de datos antes yo despueacutesbull Realiza la operacioacuten en la ALUbull Actualiza coacutedigos e indicadores de condicioacutenLOacuteGICA Lo mismo que en la aritmeacuteticaCONVERSION Similar a la aritmeacutetica y la loacutegica Puede implicar a loacutegica especial para realizar la conversioacutenCONTRO DEL FLUJO Actualiza el contador del programa En el caso de llamadas y retorno de subrutinas gestiona la transferencia y enlace de paraacutemetrosES bull Cursa una orden en el modulo de ESbull En el caso de ES asignada en memoria determina la direccioacuten de memoria correspondiente
MODOS DE DIRECCIONAMIENTObull InmediatoEn la instruccioacuten estaacute incluido directamente el operandoEn este modo el operando es especificado en la instruccioacuten misma En otras palabras una instruccioacuten de modo inmediato tiene un campo de operando en vez de un campo de direccioacuten El campo del operando contiene el operando actual que se debe utilizar en conjunto con la operacioacuten especificada en la instruccioacuten Las instrucciones de modo inmediato son uacutetiles para inicializar los registros en un valor constanteCuando el campo de direccioacuten especifica un registro del procesador la instruccioacuten se dice que estaacute en el modo de registro
bull DirectoEl campo de operando en la instruccioacuten contiene la direccioacuten en memoria donde se encuentra el operando En este modo la direccioacuten efectiva es igual a la parte de direccioacuten de la instruccioacuten El operando reside en la memoria y su direccioacuten es dada directamente por el campo de direccioacuten de la instruccioacuten En una instruccioacuten de tipo ramificacioacuten el campo de direccioacuten especifica la direccioacuten de la rama actualCon este tipo de direccionamiento la direccioacuten efectiva es contenida en la misma instruccioacuten tal como los valores de datos inmediatos que son contenidos en la instruccioacuten Un procesador de 16 bits suma la direccioacuten efectiva al contenido del segmento de datos previamente desplazado en 4 bits para producir la direccioacuten fiacutesica del operando
bull IndirectoEn este modo de direccionamiento no es necesario poner ninguna direccioacuten de forma expliacutecita ya que en el propio coacutedigo de operacioacuten se conoce la direccioacuten del (de los) operando(s) al (a los) que se desea acceder o con el (los) que se quiere operarUn ejemplo de este tipo de direccionamiento lo podemos encontrar en la arquitectura de acumulador (AC) donde siempre hay un paraacutemetro impliacutecito y este es el ACPara finalizar y dejar este modo de direccionamiento generalizado para las arquitecturas maacutes usuales remarcamos que tambieacuten podemos encontrarlo en la arquitectura con registros de propoacutesito general por ejemplo con oacuterdenes como set c que pone a 1 el registro c (acarreo)
bull De registroSirve para especificar operandos que estaacuten en registros
bull Indirecto mediante registrosEl campo de operando de la instruccioacuten contiene un identificador de registro en el que se encuentra la direccioacuten efectiva del operando En este modo el campo de la direccioacuten de la instruccioacuten da la direccioacuten en donde la direccioacuten efectiva se almacena en la memoria El control localiza la instruccioacuten de la memoria y utiliza su parte de direccioacuten para accesar la memoria de nuevo para leer una direccioacuten efectiva Unos pocos modos de direccionamiento requieren que el campo de direccioacuten de la instruccioacuten sea sumado al control de un registro especificado en el procesadorLa direccioacuten efectiva en este modo se obtiene del siguiente caacutelculoDir Efectiva = Dir de la parte de la instruccioacuten + Contenido del registro del procesador
bull De desplazamientoCombina el modo directo e indirecto mediante registros
bull De pilaSe utiliza cuando el operando estaacute en memoria y en la cabecera de la pilaEste direccionamiento se basa en las estructuras denominadas Pila(tipo LIFO) las cuales estaacuten marcados por el fondo de la pila y el puntero de pila (SP) El puntero de pila apunta a la uacuteltima posicioacuten ocupada Asiacute como puntero de direccionamiento usaremos el SP El desplazamiento maacutes el valor del SP nos daraacute la direccioacuten del objeto al que queramos hacer referencia En ocasiones si no existe C de desplazamiento solo se trabajara con la cima de la pila Este tipo de direccionamiento nos aporta flexibilidad pero por el contrario es mucho maacutes complejo que otros tipos estudiados maacutes arriba
ORGANIZACIOacuteN DEL PROCESADOR
Captar instrucciones el procesador lee una instruccioacuten de memoria (registro cache o memoria principal)Interpretar instruccioacuten la instruccioacuten se codifica para determinar queacute accioacuten es necesarioCaptar datos la ejecucioacuten de una instruccioacuten puede exigir leer datos de memoria o de un moacutedulo de ESProcesar datos la ejecucioacuten e una instruccioacuten puede exigir llevar a cabo alguna operacioacuten aritmeacutetica o loacutegica con los datosEscribir datos los resultados de una ejecucioacuten pueden exigir escribir datos en la memoria o en el moacutedulo de ESPara hacer estas cosas el procesador necesita almacenar instrucciones y datos temporalmente mientras una instruccioacuten esta ejecutaacutendose en otras palabras el procesador necesita una pequentildea memoria interna
ORGANIZACIOacuteN DE REGISTROS
Registros visibles al usuario son utilizados por el programador
Registros de control y estado son utilizados por la UC para controlar la operacioacuten de la CPU (no son visibles por el programador)
REGISTROS VISIBLES AL USUARIObull Pueden ser asignados a una variedad de funciones
bull cualquier registro de propoacutesito general puede contener el operando para cualquier coacutedigo de operacioacuten (verdadero propoacutesito)
bull pueden existir restricciones (ej Registros dedicados a operaciones especificas)
NUacuteMERO DE REGISTROSbull Afecta al tamantildeo de la instruccioacuten
bull Mayor Nordm de registros maacutes bits para especificarlos en la instruccioacuten
bull Pocos registros maacutes referencias a memoria
bull No oacuteptimo entre 8 y 32 reg Maacutes no hay gran mejora (aumenta tamantildeo de la instruccioacuten)
LONGITUD DE LOS REGISTROSbull De direcciones deben ser capaces de almacenar la direccioacuten maacutes grande
bull De datos deben estar habilitados para almacenar la mayoriacutea de los tipos de datos
bull Algunas maacutequinas permiten 2 registros contiguos utilizados como un solo registro para almacenar valores de doble longitud
BITS DE CONDICIOacuteN (BANDERAS)bull Bits establecidos por la CPU como resultado de operaciones
bull Pueden ser utilizados por las instrucciones de bifurcacioacuten condicional
bull Generalmente no son alterados por el programador
REGISTROS DE CONTROL Y ESTADObull Empleados para controlar la operacioacuten de la CPU En la mayoriacutea de las
maacutequinas no son visibles al usuario
bull Los 4 esenciales para la ejecucioacuten de
bull Contador de programa (PC)
bull Registro de instruccioacuten (IR)
bull Registro de direccioacuten de memoria (MAR)
bull Registro buffer de memoria (MBR)bull Los 4 reg recieacuten mencionados se emplean para el movimiento de datos
entre la CPU y memoria
bull Dentro de la CPU los datos se deben presentar a la ALU para procesamiento eacutesta puede acceder al MBR y a los reg visibles por el usuario Puede haber tambieacuten reg temporales adicionales para intercambiar datos con el MBR y demaacutes reg visibles
bull un ciclo de instruccioacuten incluye los siguientes sub ciclos
bull Capitacioacuten es la que lleva la siguiente instruccioacuten de la memoria al procesador
bull Ejecucioacuten interpreta el coacutedigo de operacioacuten y lleva a cabo la operacioacuten indicada
bull Interrupcioacuten si ocurre un problema guarda el estado del proceso actual y atiende la interrupcioacuten
CICLO DE INSTRUCCIOacuteN
CICLO INDIRECTObull Si se usa direccionamiento indirecto es necesario memoria adicional
bull La principal actividad es consiste en alternar las actividades de captacioacuten y ejecucioacuten de instrucciones
bull La instruccioacuten es captada pada determinar si incluye un direccionamiento indirecto
bull Una vez que la instruccioacuten es captada debe identificar sus campos de operando
bull Despueacutes que se ejecuta es un proceso similar para almacenar
bull El resultado en la memoria principal
FLUJO DE DATOS
bull La secuencia de eventos que tienen lugar durante el clico de instruccioacuten depende del procesador
bull El contador de programa contiene la direccioacuten de la siguiente instruccioacuten
bull La unidad de control solicita una lectura de memoria y el resultado se pone en un bus de datos y se lleva al registro de instruccioacuten
bull El ciclo de ejecucioacuten adopta muchas formas ya que se ya que depende del registro de instruccioacuten
bull Este ciclo puede aplicar transferencia de datos entre registros asiacute como lectura y escritura en Es
bull Mientras que el ciclo de interrupcioacuten es simple el contenido de contador de programa debe ser almacenado para que el procesador pueda continuar su actividad
La segmentacioacuten o pipeline es una teacutecnica de realizacioacuten de procesadores por la cual se solapa la ejecucioacuten de las instrucciones Hoy en diacutea es la teacutecnica clave para la realizacioacuten de CPU raacutepidas La idea baacutesica de la segmentacioacuten se puede extraer de una cadena de montaje de coches Los coches no se montan uno a uno si no que su construccioacuten se divide en fases sucesivas y el montaje del coche se realiza tal como este va avanzando por estas fases De esta forma cada fase estaacute trabajando simultaacuteneamente en la construccioacuten de un coche diferente De esta forma la construccioacuten de un coche cuesta el mismo tiempo que antes pero ahora la frecuencia con que salen los coches construidos es mucho mayor (tantos como fases tenga su construccioacuten) Cada uno de estas fases se denomina segmento o etapa de segmentacioacuten Al igual que en los coches la productividad de un computador va a depender del nuacutemero de instrucciones que acaben por unidad de tiempo y no de lo que le cueste a una instruccioacuten individual
SEGMENTACIOacuteN DE INSTRUCCIONES
RISC (del ingleacutes reduced instruction set computer) es un tipo de microprocesador con las siguientes caracteriacutesticas fundamentalesbull Instrucciones de tamantildeo fijo y presentadas en un reducido nuacutemero de formatosbull Soacutelo las instrucciones de carga y almacenamiento acceden a la memoria de datosbull El objetivo de disentildear maacutequinas con esta arquitectura es posibilitar la segmentacioacuten y el
paralelismo en la ejecucioacuten de instrucciones y reducir los accesos a memoria
ARQUITECTURA RISC
CISC (complex instruction set computer) bull Los microprocesadores CISC tienen un conjunto de instrucciones que se caracteriza
por ser muy amplio y permitir operaciones complejas entre operandos situados en la memoria o en los registros internos en contraposicioacuten a la arquitectura RISC
bull Este tipo de arquitectura dificulta el paralelismo entre instrucciones por lo que en la actualidad la mayoriacutea de los sistemas CISC de alto rendimiento implementan un sistema que convierte dichas instrucciones complejas en varias instrucciones simples del tipo RISC llamadas generalmente microinstrucciones
bull Para realizar una sola instruccioacuten un chip CISC requiere de cuatro a diez ciclos de reloj
ARQUITECTURA CISC
ARITMEacuteTICA CON PUNTO FLOTANTE
Representacioacuten de Nuacutemeros RealesUn nuacutemero real en cualquier base (R) puede ser representado como (notacioacuten de punto fijo)
Un meacutetodo alterno que facilita la manipulacioacuten de los nuacutemeros reales es la notacioacuten cientiacutefica o de punto flotante
donde
A = (A A A A A A A A A )n-1n+
R 1 -1 -2 -(m-1)- n-2 0 -m Rhellip hellip
La forma general de un nuacutemero real de base (R) en notacioacuten flotante f f f f x R -2-1
+- -3 -m
Ehellip +-
Es llamada la parte fraccionaria o mantisaEs un nuacutemero entero llamado exponenteEs la base
f f f f-2-1 -3 -mhellip
ER
Signo Exponente Mantisa
Mantisa
Signo Exponente Mantisa
Mantisa
dondeSigno de la mantisa (representa con 0 o 1)Exponente (representa entero en complemento a 2)Mantisa (representa entero en signo y magnitud)
ExponenteMantisa
Signo
Mantisa
Mantisa
Nuacutemero Real
Parte Real
Parte Imaginaria
REPERTORIO DE INSTRUCCIONES
bull Para comandar una computadora se le debe ldquohablarrdquo en su lenguaje Las palabras del lenguaje de una maacutequina son llamadas instrucciones y su vocabulario es llamado repertorio de instrucciones En esta seccioacuten se expone el repertorio de instrucciones de una computadora real considerando una forma entendible para los humanos (ensamblador) y una forma entendible por la computadora (coacutedigo maacutequina)
INSTRUCCIONES bull Es faacutecil ver por meacutetodos loacutegicos formales que existen ciertos [repertorios de instrucciones] que son en
abstracto adecuados para controlar y causar la ejecucioacuten de cualquier secuencia de operaciones Las consideraciones realmente decisivas desde el punto de vista actual en seleccionar un [repertorio de instrucciones] son maacutes de naturaleza praacutectica La simplicidad del equipo demandado por el [repertorio de instrucciones] y la claridad de su aplicacioacuten a problemas realmente importantes junto con la velocidad del manejo de esos problemas
bull Burks Goldstine y von Neumann 1947
bull La ldquosimplicidad del equipordquo es una consideracioacuten tan valiosa para las maacutequinas actuales como lo fue en los 50rsquos La meta de este capiacutetulo es mostrar un repertorio de instrucciones que siga este consejo mostrando como eacuteste es representado en hardware y su relacioacuten con los lenguajes de alto nivel
bull El repertorio de instrucciones bajo estudio es de una arquitectura MIPS usado por NEC Nintendo Silicon Graphics y Sony entre otros Y es un repertorio de instrucciones tiacutepico disentildeado en los 80rsquos
MIPS ndash INSTRUCCIONES aritmeacuteticoloacutegicas
bull bull Principio de disentildeo 1
bull ndash ldquoLa simplicidad favorece la uniformidadrdquo
bull bull Todos los computadores deben ser
bull capaces de realizar caacutelculos aritmeacuteticos y
bull loacutegicos
bull add a b c a 1048773 b + c
bull sub a a d a 1048773 a + d = (b + c) - d
bull or a a e a 1048773 a + e = (b + c + d) OR e
MIPS ndash INSTRUCCIONES DE SALTOCONDICIONAL
bull bull Instrucciones de salto condicional (soacutelo dos)
bull ndash bne $s0 $s1 L1 branch to L1 if no equal
bull ndash beq $s0 $s1 L1 branch to L1 if equal
bull bull Pseudoinstrucciones de salto condicional
bull ndash slt (set si menor que) beq bne y $zero permiten las
bull condiciones restantes
bull blt $s1 $s2 etiqueta salta si menor que
bull slt $at $s1 $s2
bull bne $at $zero etiqueta
bull ndash El ensamblador expande las pseudoinstrucciones
bull bull $at registro utilizado por el programa ensamblador
EJEMPLO DE COMPILACIOacuteN DE UNA SENTENCIA DE SALTO CONDICIONAL
bull bull Coacutedigo fuente de C
bull If (i==j) h = i + j
bull h i y j en $s0 $s1 y $s2
bull bull Compilacioacuten en MIPS
bull bne $s1 $s2 etiqueta
bull add $s0 $s1 $s2
bull etiqueta hellip
LENGUAJE MAacuteQUINA ndash INSTRUCCIONESARITMEacuteTICO-LOacuteGICAS
bull bull El tamantildeo de las instrucciones es de 32 bits
bull bull Las instrucciones aritmeacutetico-loacutegicas son codificadas con el formato tipo-R
bull ndash add $rd $rs $rt
bull bull Significado de los campos
bull ndash op 6-bits coacutedigo de operacioacuten
bull ndash rs rt rd 5-bits registro source target destination
bull ndash shamt 5-bits nuacutemero de bits a desplazar (cuando aplicable)
bull ndash funct 6-bits coacutedigo de funcioacuten (extensioacuten del coacutedigo de operacioacuten)
bull op rs rt rd shamt funct Formato de instrucciones aritmeacuteticas
bull 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits Todas las instrucciones MIPS de 32 bits
bull 000000 01010 11111 00011 00000 100000 0x015f1820 add $3$10$31
LENGUAJE MAacuteQUINA ndash INSTRUCCIONESDE ACCESO A MEMORIA
bull bull Principio de disentildeo 3
bull ndash ldquoUn buen disentildeo necesita buenas soluciones de compromisordquo
bull bull Las instrucciones de load y store especifican dos registros y un
bull desplazamiento
bull ndash Formato tipo I (16 bits para el dato inmediato)
bull ndash lw $rt inmediato($rs) sw $rt inmediato($rs
bull ndash lh lhu lb lbu sh sb (load half half unsigned byte byte unsigned store half
bull byte)
bull op rs rt Direccioacuteninmediato Formato de instruciones de carga
bull 6 bits 5 bits 5 bits 16 bits Todas las instrucciones MIPS de 32 bits
bull 100011 00011 00101 0000000000100000 0x8c650020 lw $
TIPO DE OPERACIONES
Transferencia de datosbull Move (transferir) transfiere una palabra o un bloque desde un origen a un destinobull Store (memorizar) Transfiere una palabra desde el procesador a memoriabull Load (cargar o captar) transfiere una palabra desde memoria al procesadorbull Exchange (intercambiar) intercambia los contenidos del origen y el destinobull Clear (reiniciar o poner a 0) Transfiere una palabra de ceros al destinobull Set (poner a 1) transfiere una palabra de unos al destinobull Push (introducir en la pila ldquoapilarrdquo) Transfiere una palabra desde un origen a la cabecera de la pilabull Pop (extraer de la pila ldquodesapilarrdquo) Transfiere una palabra desde la cabecera de la pila a un destinoAritmeacuteticas bull Add (sumar) Calcula la suma de 2 operandosbull Substract (restar) Calcula la diferencia de dos operandosbull Multiply (multiplicar) Calcula el producto de dos operandosbull Divide (dividir) Calcula el cociente de dos operandosbull Absolute (valor absoluto) Sustituye el operando por su valor absolutobull Negate (opuesto) Cambia el signo del operandobull Increment (incrementar) suma 1 al operandobull Decrement (decremenatar) Resta 1 al operandoLoacutegicasbull AND (Producto loacutegico Y) Realiza la operacioacuten loacutegica Y (AND)bull OR (Suma loacutegica O) Realiza la operacioacuten loacutegica o (OR)bull NOT (Complemento) Realiza el complemento (NOT) bit a bit del dato
bull Exclusive-OR (OR-exclusiva) Realiza la operacioacuten loacutegica O-Exclusiva (XOR)bull Test (comprobar) Comprueba la condicioacuten especificada foja los indicadores (flags) en funcioacuten del
resultadobull Compare (comparar) Realiza la operacioacuten loacutegica o aritmeacutetica de dos o mas operandos fija los
indicadores (flags) en funcioacuten del resultadobull Set control variables (fijar variables de control) Instrucciones que fijan controles para proteccioacuten gestioacuten
de interrupciones control de temporizador etcbull Shift (desplazamiento) Desplaza el operando a la izquierda (derecha) introduciendo valores constantes
por el otro extremobull Rotate (rotar) Desplaza el operando a la izquierda (derecha) de forma ciacuteclicaControl de flujobull Jump (bifurcacioacuten o salto) Ruptura incondicional de flujo carga el PC con la direccioacuten especificada bull Jump condicional (salto condicional) Comprueba la condicioacuten especificada dependiendo de la condicioacuten
o carga del PC con la direccioacuten indicada o no hace nadabull Jump to Subrutina (llamada la subrutina) Guarda la informacioacuten de control del programa en una posicioacuten
conocida y salta a la direccioacuten indicadabull Return (retorno) Sustituye el contenido del PC y de otros registros por los de la posicioacuten conocidabull Execute (ejecutar) Capta el operando de la direccioacuten indicada y lo ejecuta como una instruccioacuten no
modifica el PCbull Skip (salto impliacutecito) Incrementa el PC de manera que salte la instruccioacuten siguientebull Skip conditional (salto impliacutecito condicional) Comprueba la condicioacuten indicada realiza el salto impliacutecito
o no hace nada dependiendo de la condicioacutenbull Halt (parar) Detiene la ejecucioacuten del programa
bull Wait (esperar) Detiene la ejecucioacuten del programa comprueba de forma repetitiva la condicioacuten especificada reanuda la ejecucioacuten cuando se satisface la condicioacuten
bull No operation (no operacioacuten) No se ejecuta operacioacuten alguna pero la ejecucioacuten del programa continuaENTRADASALIDAbull InPut (entrada) Transfiera datos desde un puerto o dispositivo de ES al destino (memoria principal o
registro del procesador)bull OutPut (salida) Transfiera datos desde el origen especificado a un puerto o dispositivo de ESbull Start IO (iniciar ES) Transfiere instrucciones al procesador de ES para iniciar operaciones de ESbull Test IO (comprobar ES) Transfiere informacioacuten de estado desde el sistema de ES al destino
especificadoCONVERSIONbull Traslate (traducir) Traduccioacuten de los valores de una seccioacuten de memoria basada en una tabla de
correspondenciabull Convert (convertir) Convierte el contenido de una palabra de un formato a otro (por ejemplo de decimal
empaquetado a binario)
ACCIONES DEL PROCESADOR PARA VARIOS TIPOS DE OPERADORES
TRANSFERENCIA DE DATOS Transfiere datos de una posicioacuten a otra si se implica la memoriabull Determina la direccioacuten de memoriabull Realiza la transformacioacuten de direcciones de memoria virtual a realbull Comprueba la cachebull Inicia la lecturaescritura ende memoriaARITMEacuteTICAbull Puede implicar transferencia de datos antes yo despueacutesbull Realiza la operacioacuten en la ALUbull Actualiza coacutedigos e indicadores de condicioacutenLOacuteGICA Lo mismo que en la aritmeacuteticaCONVERSION Similar a la aritmeacutetica y la loacutegica Puede implicar a loacutegica especial para realizar la conversioacutenCONTRO DEL FLUJO Actualiza el contador del programa En el caso de llamadas y retorno de subrutinas gestiona la transferencia y enlace de paraacutemetrosES bull Cursa una orden en el modulo de ESbull En el caso de ES asignada en memoria determina la direccioacuten de memoria correspondiente
MODOS DE DIRECCIONAMIENTObull InmediatoEn la instruccioacuten estaacute incluido directamente el operandoEn este modo el operando es especificado en la instruccioacuten misma En otras palabras una instruccioacuten de modo inmediato tiene un campo de operando en vez de un campo de direccioacuten El campo del operando contiene el operando actual que se debe utilizar en conjunto con la operacioacuten especificada en la instruccioacuten Las instrucciones de modo inmediato son uacutetiles para inicializar los registros en un valor constanteCuando el campo de direccioacuten especifica un registro del procesador la instruccioacuten se dice que estaacute en el modo de registro
bull DirectoEl campo de operando en la instruccioacuten contiene la direccioacuten en memoria donde se encuentra el operando En este modo la direccioacuten efectiva es igual a la parte de direccioacuten de la instruccioacuten El operando reside en la memoria y su direccioacuten es dada directamente por el campo de direccioacuten de la instruccioacuten En una instruccioacuten de tipo ramificacioacuten el campo de direccioacuten especifica la direccioacuten de la rama actualCon este tipo de direccionamiento la direccioacuten efectiva es contenida en la misma instruccioacuten tal como los valores de datos inmediatos que son contenidos en la instruccioacuten Un procesador de 16 bits suma la direccioacuten efectiva al contenido del segmento de datos previamente desplazado en 4 bits para producir la direccioacuten fiacutesica del operando
bull IndirectoEn este modo de direccionamiento no es necesario poner ninguna direccioacuten de forma expliacutecita ya que en el propio coacutedigo de operacioacuten se conoce la direccioacuten del (de los) operando(s) al (a los) que se desea acceder o con el (los) que se quiere operarUn ejemplo de este tipo de direccionamiento lo podemos encontrar en la arquitectura de acumulador (AC) donde siempre hay un paraacutemetro impliacutecito y este es el ACPara finalizar y dejar este modo de direccionamiento generalizado para las arquitecturas maacutes usuales remarcamos que tambieacuten podemos encontrarlo en la arquitectura con registros de propoacutesito general por ejemplo con oacuterdenes como set c que pone a 1 el registro c (acarreo)
bull De registroSirve para especificar operandos que estaacuten en registros
bull Indirecto mediante registrosEl campo de operando de la instruccioacuten contiene un identificador de registro en el que se encuentra la direccioacuten efectiva del operando En este modo el campo de la direccioacuten de la instruccioacuten da la direccioacuten en donde la direccioacuten efectiva se almacena en la memoria El control localiza la instruccioacuten de la memoria y utiliza su parte de direccioacuten para accesar la memoria de nuevo para leer una direccioacuten efectiva Unos pocos modos de direccionamiento requieren que el campo de direccioacuten de la instruccioacuten sea sumado al control de un registro especificado en el procesadorLa direccioacuten efectiva en este modo se obtiene del siguiente caacutelculoDir Efectiva = Dir de la parte de la instruccioacuten + Contenido del registro del procesador
bull De desplazamientoCombina el modo directo e indirecto mediante registros
bull De pilaSe utiliza cuando el operando estaacute en memoria y en la cabecera de la pilaEste direccionamiento se basa en las estructuras denominadas Pila(tipo LIFO) las cuales estaacuten marcados por el fondo de la pila y el puntero de pila (SP) El puntero de pila apunta a la uacuteltima posicioacuten ocupada Asiacute como puntero de direccionamiento usaremos el SP El desplazamiento maacutes el valor del SP nos daraacute la direccioacuten del objeto al que queramos hacer referencia En ocasiones si no existe C de desplazamiento solo se trabajara con la cima de la pila Este tipo de direccionamiento nos aporta flexibilidad pero por el contrario es mucho maacutes complejo que otros tipos estudiados maacutes arriba
ORGANIZACIOacuteN DEL PROCESADOR
Captar instrucciones el procesador lee una instruccioacuten de memoria (registro cache o memoria principal)Interpretar instruccioacuten la instruccioacuten se codifica para determinar queacute accioacuten es necesarioCaptar datos la ejecucioacuten de una instruccioacuten puede exigir leer datos de memoria o de un moacutedulo de ESProcesar datos la ejecucioacuten e una instruccioacuten puede exigir llevar a cabo alguna operacioacuten aritmeacutetica o loacutegica con los datosEscribir datos los resultados de una ejecucioacuten pueden exigir escribir datos en la memoria o en el moacutedulo de ESPara hacer estas cosas el procesador necesita almacenar instrucciones y datos temporalmente mientras una instruccioacuten esta ejecutaacutendose en otras palabras el procesador necesita una pequentildea memoria interna
ORGANIZACIOacuteN DE REGISTROS
Registros visibles al usuario son utilizados por el programador
Registros de control y estado son utilizados por la UC para controlar la operacioacuten de la CPU (no son visibles por el programador)
REGISTROS VISIBLES AL USUARIObull Pueden ser asignados a una variedad de funciones
bull cualquier registro de propoacutesito general puede contener el operando para cualquier coacutedigo de operacioacuten (verdadero propoacutesito)
bull pueden existir restricciones (ej Registros dedicados a operaciones especificas)
NUacuteMERO DE REGISTROSbull Afecta al tamantildeo de la instruccioacuten
bull Mayor Nordm de registros maacutes bits para especificarlos en la instruccioacuten
bull Pocos registros maacutes referencias a memoria
bull No oacuteptimo entre 8 y 32 reg Maacutes no hay gran mejora (aumenta tamantildeo de la instruccioacuten)
LONGITUD DE LOS REGISTROSbull De direcciones deben ser capaces de almacenar la direccioacuten maacutes grande
bull De datos deben estar habilitados para almacenar la mayoriacutea de los tipos de datos
bull Algunas maacutequinas permiten 2 registros contiguos utilizados como un solo registro para almacenar valores de doble longitud
BITS DE CONDICIOacuteN (BANDERAS)bull Bits establecidos por la CPU como resultado de operaciones
bull Pueden ser utilizados por las instrucciones de bifurcacioacuten condicional
bull Generalmente no son alterados por el programador
REGISTROS DE CONTROL Y ESTADObull Empleados para controlar la operacioacuten de la CPU En la mayoriacutea de las
maacutequinas no son visibles al usuario
bull Los 4 esenciales para la ejecucioacuten de
bull Contador de programa (PC)
bull Registro de instruccioacuten (IR)
bull Registro de direccioacuten de memoria (MAR)
bull Registro buffer de memoria (MBR)bull Los 4 reg recieacuten mencionados se emplean para el movimiento de datos
entre la CPU y memoria
bull Dentro de la CPU los datos se deben presentar a la ALU para procesamiento eacutesta puede acceder al MBR y a los reg visibles por el usuario Puede haber tambieacuten reg temporales adicionales para intercambiar datos con el MBR y demaacutes reg visibles
bull un ciclo de instruccioacuten incluye los siguientes sub ciclos
bull Capitacioacuten es la que lleva la siguiente instruccioacuten de la memoria al procesador
bull Ejecucioacuten interpreta el coacutedigo de operacioacuten y lleva a cabo la operacioacuten indicada
bull Interrupcioacuten si ocurre un problema guarda el estado del proceso actual y atiende la interrupcioacuten
CICLO DE INSTRUCCIOacuteN
CICLO INDIRECTObull Si se usa direccionamiento indirecto es necesario memoria adicional
bull La principal actividad es consiste en alternar las actividades de captacioacuten y ejecucioacuten de instrucciones
bull La instruccioacuten es captada pada determinar si incluye un direccionamiento indirecto
bull Una vez que la instruccioacuten es captada debe identificar sus campos de operando
bull Despueacutes que se ejecuta es un proceso similar para almacenar
bull El resultado en la memoria principal
FLUJO DE DATOS
bull La secuencia de eventos que tienen lugar durante el clico de instruccioacuten depende del procesador
bull El contador de programa contiene la direccioacuten de la siguiente instruccioacuten
bull La unidad de control solicita una lectura de memoria y el resultado se pone en un bus de datos y se lleva al registro de instruccioacuten
bull El ciclo de ejecucioacuten adopta muchas formas ya que se ya que depende del registro de instruccioacuten
bull Este ciclo puede aplicar transferencia de datos entre registros asiacute como lectura y escritura en Es
bull Mientras que el ciclo de interrupcioacuten es simple el contenido de contador de programa debe ser almacenado para que el procesador pueda continuar su actividad
La segmentacioacuten o pipeline es una teacutecnica de realizacioacuten de procesadores por la cual se solapa la ejecucioacuten de las instrucciones Hoy en diacutea es la teacutecnica clave para la realizacioacuten de CPU raacutepidas La idea baacutesica de la segmentacioacuten se puede extraer de una cadena de montaje de coches Los coches no se montan uno a uno si no que su construccioacuten se divide en fases sucesivas y el montaje del coche se realiza tal como este va avanzando por estas fases De esta forma cada fase estaacute trabajando simultaacuteneamente en la construccioacuten de un coche diferente De esta forma la construccioacuten de un coche cuesta el mismo tiempo que antes pero ahora la frecuencia con que salen los coches construidos es mucho mayor (tantos como fases tenga su construccioacuten) Cada uno de estas fases se denomina segmento o etapa de segmentacioacuten Al igual que en los coches la productividad de un computador va a depender del nuacutemero de instrucciones que acaben por unidad de tiempo y no de lo que le cueste a una instruccioacuten individual
SEGMENTACIOacuteN DE INSTRUCCIONES
RISC (del ingleacutes reduced instruction set computer) es un tipo de microprocesador con las siguientes caracteriacutesticas fundamentalesbull Instrucciones de tamantildeo fijo y presentadas en un reducido nuacutemero de formatosbull Soacutelo las instrucciones de carga y almacenamiento acceden a la memoria de datosbull El objetivo de disentildear maacutequinas con esta arquitectura es posibilitar la segmentacioacuten y el
paralelismo en la ejecucioacuten de instrucciones y reducir los accesos a memoria
ARQUITECTURA RISC
CISC (complex instruction set computer) bull Los microprocesadores CISC tienen un conjunto de instrucciones que se caracteriza
por ser muy amplio y permitir operaciones complejas entre operandos situados en la memoria o en los registros internos en contraposicioacuten a la arquitectura RISC
bull Este tipo de arquitectura dificulta el paralelismo entre instrucciones por lo que en la actualidad la mayoriacutea de los sistemas CISC de alto rendimiento implementan un sistema que convierte dichas instrucciones complejas en varias instrucciones simples del tipo RISC llamadas generalmente microinstrucciones
bull Para realizar una sola instruccioacuten un chip CISC requiere de cuatro a diez ciclos de reloj
ARQUITECTURA CISC
Signo Exponente Mantisa
Mantisa
Signo Exponente Mantisa
Mantisa
dondeSigno de la mantisa (representa con 0 o 1)Exponente (representa entero en complemento a 2)Mantisa (representa entero en signo y magnitud)
ExponenteMantisa
Signo
Mantisa
Mantisa
Nuacutemero Real
Parte Real
Parte Imaginaria
REPERTORIO DE INSTRUCCIONES
bull Para comandar una computadora se le debe ldquohablarrdquo en su lenguaje Las palabras del lenguaje de una maacutequina son llamadas instrucciones y su vocabulario es llamado repertorio de instrucciones En esta seccioacuten se expone el repertorio de instrucciones de una computadora real considerando una forma entendible para los humanos (ensamblador) y una forma entendible por la computadora (coacutedigo maacutequina)
INSTRUCCIONES bull Es faacutecil ver por meacutetodos loacutegicos formales que existen ciertos [repertorios de instrucciones] que son en
abstracto adecuados para controlar y causar la ejecucioacuten de cualquier secuencia de operaciones Las consideraciones realmente decisivas desde el punto de vista actual en seleccionar un [repertorio de instrucciones] son maacutes de naturaleza praacutectica La simplicidad del equipo demandado por el [repertorio de instrucciones] y la claridad de su aplicacioacuten a problemas realmente importantes junto con la velocidad del manejo de esos problemas
bull Burks Goldstine y von Neumann 1947
bull La ldquosimplicidad del equipordquo es una consideracioacuten tan valiosa para las maacutequinas actuales como lo fue en los 50rsquos La meta de este capiacutetulo es mostrar un repertorio de instrucciones que siga este consejo mostrando como eacuteste es representado en hardware y su relacioacuten con los lenguajes de alto nivel
bull El repertorio de instrucciones bajo estudio es de una arquitectura MIPS usado por NEC Nintendo Silicon Graphics y Sony entre otros Y es un repertorio de instrucciones tiacutepico disentildeado en los 80rsquos
MIPS ndash INSTRUCCIONES aritmeacuteticoloacutegicas
bull bull Principio de disentildeo 1
bull ndash ldquoLa simplicidad favorece la uniformidadrdquo
bull bull Todos los computadores deben ser
bull capaces de realizar caacutelculos aritmeacuteticos y
bull loacutegicos
bull add a b c a 1048773 b + c
bull sub a a d a 1048773 a + d = (b + c) - d
bull or a a e a 1048773 a + e = (b + c + d) OR e
MIPS ndash INSTRUCCIONES DE SALTOCONDICIONAL
bull bull Instrucciones de salto condicional (soacutelo dos)
bull ndash bne $s0 $s1 L1 branch to L1 if no equal
bull ndash beq $s0 $s1 L1 branch to L1 if equal
bull bull Pseudoinstrucciones de salto condicional
bull ndash slt (set si menor que) beq bne y $zero permiten las
bull condiciones restantes
bull blt $s1 $s2 etiqueta salta si menor que
bull slt $at $s1 $s2
bull bne $at $zero etiqueta
bull ndash El ensamblador expande las pseudoinstrucciones
bull bull $at registro utilizado por el programa ensamblador
EJEMPLO DE COMPILACIOacuteN DE UNA SENTENCIA DE SALTO CONDICIONAL
bull bull Coacutedigo fuente de C
bull If (i==j) h = i + j
bull h i y j en $s0 $s1 y $s2
bull bull Compilacioacuten en MIPS
bull bne $s1 $s2 etiqueta
bull add $s0 $s1 $s2
bull etiqueta hellip
LENGUAJE MAacuteQUINA ndash INSTRUCCIONESARITMEacuteTICO-LOacuteGICAS
bull bull El tamantildeo de las instrucciones es de 32 bits
bull bull Las instrucciones aritmeacutetico-loacutegicas son codificadas con el formato tipo-R
bull ndash add $rd $rs $rt
bull bull Significado de los campos
bull ndash op 6-bits coacutedigo de operacioacuten
bull ndash rs rt rd 5-bits registro source target destination
bull ndash shamt 5-bits nuacutemero de bits a desplazar (cuando aplicable)
bull ndash funct 6-bits coacutedigo de funcioacuten (extensioacuten del coacutedigo de operacioacuten)
bull op rs rt rd shamt funct Formato de instrucciones aritmeacuteticas
bull 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits Todas las instrucciones MIPS de 32 bits
bull 000000 01010 11111 00011 00000 100000 0x015f1820 add $3$10$31
LENGUAJE MAacuteQUINA ndash INSTRUCCIONESDE ACCESO A MEMORIA
bull bull Principio de disentildeo 3
bull ndash ldquoUn buen disentildeo necesita buenas soluciones de compromisordquo
bull bull Las instrucciones de load y store especifican dos registros y un
bull desplazamiento
bull ndash Formato tipo I (16 bits para el dato inmediato)
bull ndash lw $rt inmediato($rs) sw $rt inmediato($rs
bull ndash lh lhu lb lbu sh sb (load half half unsigned byte byte unsigned store half
bull byte)
bull op rs rt Direccioacuteninmediato Formato de instruciones de carga
bull 6 bits 5 bits 5 bits 16 bits Todas las instrucciones MIPS de 32 bits
bull 100011 00011 00101 0000000000100000 0x8c650020 lw $
TIPO DE OPERACIONES
Transferencia de datosbull Move (transferir) transfiere una palabra o un bloque desde un origen a un destinobull Store (memorizar) Transfiere una palabra desde el procesador a memoriabull Load (cargar o captar) transfiere una palabra desde memoria al procesadorbull Exchange (intercambiar) intercambia los contenidos del origen y el destinobull Clear (reiniciar o poner a 0) Transfiere una palabra de ceros al destinobull Set (poner a 1) transfiere una palabra de unos al destinobull Push (introducir en la pila ldquoapilarrdquo) Transfiere una palabra desde un origen a la cabecera de la pilabull Pop (extraer de la pila ldquodesapilarrdquo) Transfiere una palabra desde la cabecera de la pila a un destinoAritmeacuteticas bull Add (sumar) Calcula la suma de 2 operandosbull Substract (restar) Calcula la diferencia de dos operandosbull Multiply (multiplicar) Calcula el producto de dos operandosbull Divide (dividir) Calcula el cociente de dos operandosbull Absolute (valor absoluto) Sustituye el operando por su valor absolutobull Negate (opuesto) Cambia el signo del operandobull Increment (incrementar) suma 1 al operandobull Decrement (decremenatar) Resta 1 al operandoLoacutegicasbull AND (Producto loacutegico Y) Realiza la operacioacuten loacutegica Y (AND)bull OR (Suma loacutegica O) Realiza la operacioacuten loacutegica o (OR)bull NOT (Complemento) Realiza el complemento (NOT) bit a bit del dato
bull Exclusive-OR (OR-exclusiva) Realiza la operacioacuten loacutegica O-Exclusiva (XOR)bull Test (comprobar) Comprueba la condicioacuten especificada foja los indicadores (flags) en funcioacuten del
resultadobull Compare (comparar) Realiza la operacioacuten loacutegica o aritmeacutetica de dos o mas operandos fija los
indicadores (flags) en funcioacuten del resultadobull Set control variables (fijar variables de control) Instrucciones que fijan controles para proteccioacuten gestioacuten
de interrupciones control de temporizador etcbull Shift (desplazamiento) Desplaza el operando a la izquierda (derecha) introduciendo valores constantes
por el otro extremobull Rotate (rotar) Desplaza el operando a la izquierda (derecha) de forma ciacuteclicaControl de flujobull Jump (bifurcacioacuten o salto) Ruptura incondicional de flujo carga el PC con la direccioacuten especificada bull Jump condicional (salto condicional) Comprueba la condicioacuten especificada dependiendo de la condicioacuten
o carga del PC con la direccioacuten indicada o no hace nadabull Jump to Subrutina (llamada la subrutina) Guarda la informacioacuten de control del programa en una posicioacuten
conocida y salta a la direccioacuten indicadabull Return (retorno) Sustituye el contenido del PC y de otros registros por los de la posicioacuten conocidabull Execute (ejecutar) Capta el operando de la direccioacuten indicada y lo ejecuta como una instruccioacuten no
modifica el PCbull Skip (salto impliacutecito) Incrementa el PC de manera que salte la instruccioacuten siguientebull Skip conditional (salto impliacutecito condicional) Comprueba la condicioacuten indicada realiza el salto impliacutecito
o no hace nada dependiendo de la condicioacutenbull Halt (parar) Detiene la ejecucioacuten del programa
bull Wait (esperar) Detiene la ejecucioacuten del programa comprueba de forma repetitiva la condicioacuten especificada reanuda la ejecucioacuten cuando se satisface la condicioacuten
bull No operation (no operacioacuten) No se ejecuta operacioacuten alguna pero la ejecucioacuten del programa continuaENTRADASALIDAbull InPut (entrada) Transfiera datos desde un puerto o dispositivo de ES al destino (memoria principal o
registro del procesador)bull OutPut (salida) Transfiera datos desde el origen especificado a un puerto o dispositivo de ESbull Start IO (iniciar ES) Transfiere instrucciones al procesador de ES para iniciar operaciones de ESbull Test IO (comprobar ES) Transfiere informacioacuten de estado desde el sistema de ES al destino
especificadoCONVERSIONbull Traslate (traducir) Traduccioacuten de los valores de una seccioacuten de memoria basada en una tabla de
correspondenciabull Convert (convertir) Convierte el contenido de una palabra de un formato a otro (por ejemplo de decimal
empaquetado a binario)
ACCIONES DEL PROCESADOR PARA VARIOS TIPOS DE OPERADORES
TRANSFERENCIA DE DATOS Transfiere datos de una posicioacuten a otra si se implica la memoriabull Determina la direccioacuten de memoriabull Realiza la transformacioacuten de direcciones de memoria virtual a realbull Comprueba la cachebull Inicia la lecturaescritura ende memoriaARITMEacuteTICAbull Puede implicar transferencia de datos antes yo despueacutesbull Realiza la operacioacuten en la ALUbull Actualiza coacutedigos e indicadores de condicioacutenLOacuteGICA Lo mismo que en la aritmeacuteticaCONVERSION Similar a la aritmeacutetica y la loacutegica Puede implicar a loacutegica especial para realizar la conversioacutenCONTRO DEL FLUJO Actualiza el contador del programa En el caso de llamadas y retorno de subrutinas gestiona la transferencia y enlace de paraacutemetrosES bull Cursa una orden en el modulo de ESbull En el caso de ES asignada en memoria determina la direccioacuten de memoria correspondiente
MODOS DE DIRECCIONAMIENTObull InmediatoEn la instruccioacuten estaacute incluido directamente el operandoEn este modo el operando es especificado en la instruccioacuten misma En otras palabras una instruccioacuten de modo inmediato tiene un campo de operando en vez de un campo de direccioacuten El campo del operando contiene el operando actual que se debe utilizar en conjunto con la operacioacuten especificada en la instruccioacuten Las instrucciones de modo inmediato son uacutetiles para inicializar los registros en un valor constanteCuando el campo de direccioacuten especifica un registro del procesador la instruccioacuten se dice que estaacute en el modo de registro
bull DirectoEl campo de operando en la instruccioacuten contiene la direccioacuten en memoria donde se encuentra el operando En este modo la direccioacuten efectiva es igual a la parte de direccioacuten de la instruccioacuten El operando reside en la memoria y su direccioacuten es dada directamente por el campo de direccioacuten de la instruccioacuten En una instruccioacuten de tipo ramificacioacuten el campo de direccioacuten especifica la direccioacuten de la rama actualCon este tipo de direccionamiento la direccioacuten efectiva es contenida en la misma instruccioacuten tal como los valores de datos inmediatos que son contenidos en la instruccioacuten Un procesador de 16 bits suma la direccioacuten efectiva al contenido del segmento de datos previamente desplazado en 4 bits para producir la direccioacuten fiacutesica del operando
bull IndirectoEn este modo de direccionamiento no es necesario poner ninguna direccioacuten de forma expliacutecita ya que en el propio coacutedigo de operacioacuten se conoce la direccioacuten del (de los) operando(s) al (a los) que se desea acceder o con el (los) que se quiere operarUn ejemplo de este tipo de direccionamiento lo podemos encontrar en la arquitectura de acumulador (AC) donde siempre hay un paraacutemetro impliacutecito y este es el ACPara finalizar y dejar este modo de direccionamiento generalizado para las arquitecturas maacutes usuales remarcamos que tambieacuten podemos encontrarlo en la arquitectura con registros de propoacutesito general por ejemplo con oacuterdenes como set c que pone a 1 el registro c (acarreo)
bull De registroSirve para especificar operandos que estaacuten en registros
bull Indirecto mediante registrosEl campo de operando de la instruccioacuten contiene un identificador de registro en el que se encuentra la direccioacuten efectiva del operando En este modo el campo de la direccioacuten de la instruccioacuten da la direccioacuten en donde la direccioacuten efectiva se almacena en la memoria El control localiza la instruccioacuten de la memoria y utiliza su parte de direccioacuten para accesar la memoria de nuevo para leer una direccioacuten efectiva Unos pocos modos de direccionamiento requieren que el campo de direccioacuten de la instruccioacuten sea sumado al control de un registro especificado en el procesadorLa direccioacuten efectiva en este modo se obtiene del siguiente caacutelculoDir Efectiva = Dir de la parte de la instruccioacuten + Contenido del registro del procesador
bull De desplazamientoCombina el modo directo e indirecto mediante registros
bull De pilaSe utiliza cuando el operando estaacute en memoria y en la cabecera de la pilaEste direccionamiento se basa en las estructuras denominadas Pila(tipo LIFO) las cuales estaacuten marcados por el fondo de la pila y el puntero de pila (SP) El puntero de pila apunta a la uacuteltima posicioacuten ocupada Asiacute como puntero de direccionamiento usaremos el SP El desplazamiento maacutes el valor del SP nos daraacute la direccioacuten del objeto al que queramos hacer referencia En ocasiones si no existe C de desplazamiento solo se trabajara con la cima de la pila Este tipo de direccionamiento nos aporta flexibilidad pero por el contrario es mucho maacutes complejo que otros tipos estudiados maacutes arriba
ORGANIZACIOacuteN DEL PROCESADOR
Captar instrucciones el procesador lee una instruccioacuten de memoria (registro cache o memoria principal)Interpretar instruccioacuten la instruccioacuten se codifica para determinar queacute accioacuten es necesarioCaptar datos la ejecucioacuten de una instruccioacuten puede exigir leer datos de memoria o de un moacutedulo de ESProcesar datos la ejecucioacuten e una instruccioacuten puede exigir llevar a cabo alguna operacioacuten aritmeacutetica o loacutegica con los datosEscribir datos los resultados de una ejecucioacuten pueden exigir escribir datos en la memoria o en el moacutedulo de ESPara hacer estas cosas el procesador necesita almacenar instrucciones y datos temporalmente mientras una instruccioacuten esta ejecutaacutendose en otras palabras el procesador necesita una pequentildea memoria interna
ORGANIZACIOacuteN DE REGISTROS
Registros visibles al usuario son utilizados por el programador
Registros de control y estado son utilizados por la UC para controlar la operacioacuten de la CPU (no son visibles por el programador)
REGISTROS VISIBLES AL USUARIObull Pueden ser asignados a una variedad de funciones
bull cualquier registro de propoacutesito general puede contener el operando para cualquier coacutedigo de operacioacuten (verdadero propoacutesito)
bull pueden existir restricciones (ej Registros dedicados a operaciones especificas)
NUacuteMERO DE REGISTROSbull Afecta al tamantildeo de la instruccioacuten
bull Mayor Nordm de registros maacutes bits para especificarlos en la instruccioacuten
bull Pocos registros maacutes referencias a memoria
bull No oacuteptimo entre 8 y 32 reg Maacutes no hay gran mejora (aumenta tamantildeo de la instruccioacuten)
LONGITUD DE LOS REGISTROSbull De direcciones deben ser capaces de almacenar la direccioacuten maacutes grande
bull De datos deben estar habilitados para almacenar la mayoriacutea de los tipos de datos
bull Algunas maacutequinas permiten 2 registros contiguos utilizados como un solo registro para almacenar valores de doble longitud
BITS DE CONDICIOacuteN (BANDERAS)bull Bits establecidos por la CPU como resultado de operaciones
bull Pueden ser utilizados por las instrucciones de bifurcacioacuten condicional
bull Generalmente no son alterados por el programador
REGISTROS DE CONTROL Y ESTADObull Empleados para controlar la operacioacuten de la CPU En la mayoriacutea de las
maacutequinas no son visibles al usuario
bull Los 4 esenciales para la ejecucioacuten de
bull Contador de programa (PC)
bull Registro de instruccioacuten (IR)
bull Registro de direccioacuten de memoria (MAR)
bull Registro buffer de memoria (MBR)bull Los 4 reg recieacuten mencionados se emplean para el movimiento de datos
entre la CPU y memoria
bull Dentro de la CPU los datos se deben presentar a la ALU para procesamiento eacutesta puede acceder al MBR y a los reg visibles por el usuario Puede haber tambieacuten reg temporales adicionales para intercambiar datos con el MBR y demaacutes reg visibles
bull un ciclo de instruccioacuten incluye los siguientes sub ciclos
bull Capitacioacuten es la que lleva la siguiente instruccioacuten de la memoria al procesador
bull Ejecucioacuten interpreta el coacutedigo de operacioacuten y lleva a cabo la operacioacuten indicada
bull Interrupcioacuten si ocurre un problema guarda el estado del proceso actual y atiende la interrupcioacuten
CICLO DE INSTRUCCIOacuteN
CICLO INDIRECTObull Si se usa direccionamiento indirecto es necesario memoria adicional
bull La principal actividad es consiste en alternar las actividades de captacioacuten y ejecucioacuten de instrucciones
bull La instruccioacuten es captada pada determinar si incluye un direccionamiento indirecto
bull Una vez que la instruccioacuten es captada debe identificar sus campos de operando
bull Despueacutes que se ejecuta es un proceso similar para almacenar
bull El resultado en la memoria principal
FLUJO DE DATOS
bull La secuencia de eventos que tienen lugar durante el clico de instruccioacuten depende del procesador
bull El contador de programa contiene la direccioacuten de la siguiente instruccioacuten
bull La unidad de control solicita una lectura de memoria y el resultado se pone en un bus de datos y se lleva al registro de instruccioacuten
bull El ciclo de ejecucioacuten adopta muchas formas ya que se ya que depende del registro de instruccioacuten
bull Este ciclo puede aplicar transferencia de datos entre registros asiacute como lectura y escritura en Es
bull Mientras que el ciclo de interrupcioacuten es simple el contenido de contador de programa debe ser almacenado para que el procesador pueda continuar su actividad
La segmentacioacuten o pipeline es una teacutecnica de realizacioacuten de procesadores por la cual se solapa la ejecucioacuten de las instrucciones Hoy en diacutea es la teacutecnica clave para la realizacioacuten de CPU raacutepidas La idea baacutesica de la segmentacioacuten se puede extraer de una cadena de montaje de coches Los coches no se montan uno a uno si no que su construccioacuten se divide en fases sucesivas y el montaje del coche se realiza tal como este va avanzando por estas fases De esta forma cada fase estaacute trabajando simultaacuteneamente en la construccioacuten de un coche diferente De esta forma la construccioacuten de un coche cuesta el mismo tiempo que antes pero ahora la frecuencia con que salen los coches construidos es mucho mayor (tantos como fases tenga su construccioacuten) Cada uno de estas fases se denomina segmento o etapa de segmentacioacuten Al igual que en los coches la productividad de un computador va a depender del nuacutemero de instrucciones que acaben por unidad de tiempo y no de lo que le cueste a una instruccioacuten individual
SEGMENTACIOacuteN DE INSTRUCCIONES
RISC (del ingleacutes reduced instruction set computer) es un tipo de microprocesador con las siguientes caracteriacutesticas fundamentalesbull Instrucciones de tamantildeo fijo y presentadas en un reducido nuacutemero de formatosbull Soacutelo las instrucciones de carga y almacenamiento acceden a la memoria de datosbull El objetivo de disentildear maacutequinas con esta arquitectura es posibilitar la segmentacioacuten y el
paralelismo en la ejecucioacuten de instrucciones y reducir los accesos a memoria
ARQUITECTURA RISC
CISC (complex instruction set computer) bull Los microprocesadores CISC tienen un conjunto de instrucciones que se caracteriza
por ser muy amplio y permitir operaciones complejas entre operandos situados en la memoria o en los registros internos en contraposicioacuten a la arquitectura RISC
bull Este tipo de arquitectura dificulta el paralelismo entre instrucciones por lo que en la actualidad la mayoriacutea de los sistemas CISC de alto rendimiento implementan un sistema que convierte dichas instrucciones complejas en varias instrucciones simples del tipo RISC llamadas generalmente microinstrucciones
bull Para realizar una sola instruccioacuten un chip CISC requiere de cuatro a diez ciclos de reloj
ARQUITECTURA CISC
REPERTORIO DE INSTRUCCIONES
bull Para comandar una computadora se le debe ldquohablarrdquo en su lenguaje Las palabras del lenguaje de una maacutequina son llamadas instrucciones y su vocabulario es llamado repertorio de instrucciones En esta seccioacuten se expone el repertorio de instrucciones de una computadora real considerando una forma entendible para los humanos (ensamblador) y una forma entendible por la computadora (coacutedigo maacutequina)
INSTRUCCIONES bull Es faacutecil ver por meacutetodos loacutegicos formales que existen ciertos [repertorios de instrucciones] que son en
abstracto adecuados para controlar y causar la ejecucioacuten de cualquier secuencia de operaciones Las consideraciones realmente decisivas desde el punto de vista actual en seleccionar un [repertorio de instrucciones] son maacutes de naturaleza praacutectica La simplicidad del equipo demandado por el [repertorio de instrucciones] y la claridad de su aplicacioacuten a problemas realmente importantes junto con la velocidad del manejo de esos problemas
bull Burks Goldstine y von Neumann 1947
bull La ldquosimplicidad del equipordquo es una consideracioacuten tan valiosa para las maacutequinas actuales como lo fue en los 50rsquos La meta de este capiacutetulo es mostrar un repertorio de instrucciones que siga este consejo mostrando como eacuteste es representado en hardware y su relacioacuten con los lenguajes de alto nivel
bull El repertorio de instrucciones bajo estudio es de una arquitectura MIPS usado por NEC Nintendo Silicon Graphics y Sony entre otros Y es un repertorio de instrucciones tiacutepico disentildeado en los 80rsquos
MIPS ndash INSTRUCCIONES aritmeacuteticoloacutegicas
bull bull Principio de disentildeo 1
bull ndash ldquoLa simplicidad favorece la uniformidadrdquo
bull bull Todos los computadores deben ser
bull capaces de realizar caacutelculos aritmeacuteticos y
bull loacutegicos
bull add a b c a 1048773 b + c
bull sub a a d a 1048773 a + d = (b + c) - d
bull or a a e a 1048773 a + e = (b + c + d) OR e
MIPS ndash INSTRUCCIONES DE SALTOCONDICIONAL
bull bull Instrucciones de salto condicional (soacutelo dos)
bull ndash bne $s0 $s1 L1 branch to L1 if no equal
bull ndash beq $s0 $s1 L1 branch to L1 if equal
bull bull Pseudoinstrucciones de salto condicional
bull ndash slt (set si menor que) beq bne y $zero permiten las
bull condiciones restantes
bull blt $s1 $s2 etiqueta salta si menor que
bull slt $at $s1 $s2
bull bne $at $zero etiqueta
bull ndash El ensamblador expande las pseudoinstrucciones
bull bull $at registro utilizado por el programa ensamblador
EJEMPLO DE COMPILACIOacuteN DE UNA SENTENCIA DE SALTO CONDICIONAL
bull bull Coacutedigo fuente de C
bull If (i==j) h = i + j
bull h i y j en $s0 $s1 y $s2
bull bull Compilacioacuten en MIPS
bull bne $s1 $s2 etiqueta
bull add $s0 $s1 $s2
bull etiqueta hellip
LENGUAJE MAacuteQUINA ndash INSTRUCCIONESARITMEacuteTICO-LOacuteGICAS
bull bull El tamantildeo de las instrucciones es de 32 bits
bull bull Las instrucciones aritmeacutetico-loacutegicas son codificadas con el formato tipo-R
bull ndash add $rd $rs $rt
bull bull Significado de los campos
bull ndash op 6-bits coacutedigo de operacioacuten
bull ndash rs rt rd 5-bits registro source target destination
bull ndash shamt 5-bits nuacutemero de bits a desplazar (cuando aplicable)
bull ndash funct 6-bits coacutedigo de funcioacuten (extensioacuten del coacutedigo de operacioacuten)
bull op rs rt rd shamt funct Formato de instrucciones aritmeacuteticas
bull 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits Todas las instrucciones MIPS de 32 bits
bull 000000 01010 11111 00011 00000 100000 0x015f1820 add $3$10$31
LENGUAJE MAacuteQUINA ndash INSTRUCCIONESDE ACCESO A MEMORIA
bull bull Principio de disentildeo 3
bull ndash ldquoUn buen disentildeo necesita buenas soluciones de compromisordquo
bull bull Las instrucciones de load y store especifican dos registros y un
bull desplazamiento
bull ndash Formato tipo I (16 bits para el dato inmediato)
bull ndash lw $rt inmediato($rs) sw $rt inmediato($rs
bull ndash lh lhu lb lbu sh sb (load half half unsigned byte byte unsigned store half
bull byte)
bull op rs rt Direccioacuteninmediato Formato de instruciones de carga
bull 6 bits 5 bits 5 bits 16 bits Todas las instrucciones MIPS de 32 bits
bull 100011 00011 00101 0000000000100000 0x8c650020 lw $
TIPO DE OPERACIONES
Transferencia de datosbull Move (transferir) transfiere una palabra o un bloque desde un origen a un destinobull Store (memorizar) Transfiere una palabra desde el procesador a memoriabull Load (cargar o captar) transfiere una palabra desde memoria al procesadorbull Exchange (intercambiar) intercambia los contenidos del origen y el destinobull Clear (reiniciar o poner a 0) Transfiere una palabra de ceros al destinobull Set (poner a 1) transfiere una palabra de unos al destinobull Push (introducir en la pila ldquoapilarrdquo) Transfiere una palabra desde un origen a la cabecera de la pilabull Pop (extraer de la pila ldquodesapilarrdquo) Transfiere una palabra desde la cabecera de la pila a un destinoAritmeacuteticas bull Add (sumar) Calcula la suma de 2 operandosbull Substract (restar) Calcula la diferencia de dos operandosbull Multiply (multiplicar) Calcula el producto de dos operandosbull Divide (dividir) Calcula el cociente de dos operandosbull Absolute (valor absoluto) Sustituye el operando por su valor absolutobull Negate (opuesto) Cambia el signo del operandobull Increment (incrementar) suma 1 al operandobull Decrement (decremenatar) Resta 1 al operandoLoacutegicasbull AND (Producto loacutegico Y) Realiza la operacioacuten loacutegica Y (AND)bull OR (Suma loacutegica O) Realiza la operacioacuten loacutegica o (OR)bull NOT (Complemento) Realiza el complemento (NOT) bit a bit del dato
bull Exclusive-OR (OR-exclusiva) Realiza la operacioacuten loacutegica O-Exclusiva (XOR)bull Test (comprobar) Comprueba la condicioacuten especificada foja los indicadores (flags) en funcioacuten del
resultadobull Compare (comparar) Realiza la operacioacuten loacutegica o aritmeacutetica de dos o mas operandos fija los
indicadores (flags) en funcioacuten del resultadobull Set control variables (fijar variables de control) Instrucciones que fijan controles para proteccioacuten gestioacuten
de interrupciones control de temporizador etcbull Shift (desplazamiento) Desplaza el operando a la izquierda (derecha) introduciendo valores constantes
por el otro extremobull Rotate (rotar) Desplaza el operando a la izquierda (derecha) de forma ciacuteclicaControl de flujobull Jump (bifurcacioacuten o salto) Ruptura incondicional de flujo carga el PC con la direccioacuten especificada bull Jump condicional (salto condicional) Comprueba la condicioacuten especificada dependiendo de la condicioacuten
o carga del PC con la direccioacuten indicada o no hace nadabull Jump to Subrutina (llamada la subrutina) Guarda la informacioacuten de control del programa en una posicioacuten
conocida y salta a la direccioacuten indicadabull Return (retorno) Sustituye el contenido del PC y de otros registros por los de la posicioacuten conocidabull Execute (ejecutar) Capta el operando de la direccioacuten indicada y lo ejecuta como una instruccioacuten no
modifica el PCbull Skip (salto impliacutecito) Incrementa el PC de manera que salte la instruccioacuten siguientebull Skip conditional (salto impliacutecito condicional) Comprueba la condicioacuten indicada realiza el salto impliacutecito
o no hace nada dependiendo de la condicioacutenbull Halt (parar) Detiene la ejecucioacuten del programa
bull Wait (esperar) Detiene la ejecucioacuten del programa comprueba de forma repetitiva la condicioacuten especificada reanuda la ejecucioacuten cuando se satisface la condicioacuten
bull No operation (no operacioacuten) No se ejecuta operacioacuten alguna pero la ejecucioacuten del programa continuaENTRADASALIDAbull InPut (entrada) Transfiera datos desde un puerto o dispositivo de ES al destino (memoria principal o
registro del procesador)bull OutPut (salida) Transfiera datos desde el origen especificado a un puerto o dispositivo de ESbull Start IO (iniciar ES) Transfiere instrucciones al procesador de ES para iniciar operaciones de ESbull Test IO (comprobar ES) Transfiere informacioacuten de estado desde el sistema de ES al destino
especificadoCONVERSIONbull Traslate (traducir) Traduccioacuten de los valores de una seccioacuten de memoria basada en una tabla de
correspondenciabull Convert (convertir) Convierte el contenido de una palabra de un formato a otro (por ejemplo de decimal
empaquetado a binario)
ACCIONES DEL PROCESADOR PARA VARIOS TIPOS DE OPERADORES
TRANSFERENCIA DE DATOS Transfiere datos de una posicioacuten a otra si se implica la memoriabull Determina la direccioacuten de memoriabull Realiza la transformacioacuten de direcciones de memoria virtual a realbull Comprueba la cachebull Inicia la lecturaescritura ende memoriaARITMEacuteTICAbull Puede implicar transferencia de datos antes yo despueacutesbull Realiza la operacioacuten en la ALUbull Actualiza coacutedigos e indicadores de condicioacutenLOacuteGICA Lo mismo que en la aritmeacuteticaCONVERSION Similar a la aritmeacutetica y la loacutegica Puede implicar a loacutegica especial para realizar la conversioacutenCONTRO DEL FLUJO Actualiza el contador del programa En el caso de llamadas y retorno de subrutinas gestiona la transferencia y enlace de paraacutemetrosES bull Cursa una orden en el modulo de ESbull En el caso de ES asignada en memoria determina la direccioacuten de memoria correspondiente
MODOS DE DIRECCIONAMIENTObull InmediatoEn la instruccioacuten estaacute incluido directamente el operandoEn este modo el operando es especificado en la instruccioacuten misma En otras palabras una instruccioacuten de modo inmediato tiene un campo de operando en vez de un campo de direccioacuten El campo del operando contiene el operando actual que se debe utilizar en conjunto con la operacioacuten especificada en la instruccioacuten Las instrucciones de modo inmediato son uacutetiles para inicializar los registros en un valor constanteCuando el campo de direccioacuten especifica un registro del procesador la instruccioacuten se dice que estaacute en el modo de registro
bull DirectoEl campo de operando en la instruccioacuten contiene la direccioacuten en memoria donde se encuentra el operando En este modo la direccioacuten efectiva es igual a la parte de direccioacuten de la instruccioacuten El operando reside en la memoria y su direccioacuten es dada directamente por el campo de direccioacuten de la instruccioacuten En una instruccioacuten de tipo ramificacioacuten el campo de direccioacuten especifica la direccioacuten de la rama actualCon este tipo de direccionamiento la direccioacuten efectiva es contenida en la misma instruccioacuten tal como los valores de datos inmediatos que son contenidos en la instruccioacuten Un procesador de 16 bits suma la direccioacuten efectiva al contenido del segmento de datos previamente desplazado en 4 bits para producir la direccioacuten fiacutesica del operando
bull IndirectoEn este modo de direccionamiento no es necesario poner ninguna direccioacuten de forma expliacutecita ya que en el propio coacutedigo de operacioacuten se conoce la direccioacuten del (de los) operando(s) al (a los) que se desea acceder o con el (los) que se quiere operarUn ejemplo de este tipo de direccionamiento lo podemos encontrar en la arquitectura de acumulador (AC) donde siempre hay un paraacutemetro impliacutecito y este es el ACPara finalizar y dejar este modo de direccionamiento generalizado para las arquitecturas maacutes usuales remarcamos que tambieacuten podemos encontrarlo en la arquitectura con registros de propoacutesito general por ejemplo con oacuterdenes como set c que pone a 1 el registro c (acarreo)
bull De registroSirve para especificar operandos que estaacuten en registros
bull Indirecto mediante registrosEl campo de operando de la instruccioacuten contiene un identificador de registro en el que se encuentra la direccioacuten efectiva del operando En este modo el campo de la direccioacuten de la instruccioacuten da la direccioacuten en donde la direccioacuten efectiva se almacena en la memoria El control localiza la instruccioacuten de la memoria y utiliza su parte de direccioacuten para accesar la memoria de nuevo para leer una direccioacuten efectiva Unos pocos modos de direccionamiento requieren que el campo de direccioacuten de la instruccioacuten sea sumado al control de un registro especificado en el procesadorLa direccioacuten efectiva en este modo se obtiene del siguiente caacutelculoDir Efectiva = Dir de la parte de la instruccioacuten + Contenido del registro del procesador
bull De desplazamientoCombina el modo directo e indirecto mediante registros
bull De pilaSe utiliza cuando el operando estaacute en memoria y en la cabecera de la pilaEste direccionamiento se basa en las estructuras denominadas Pila(tipo LIFO) las cuales estaacuten marcados por el fondo de la pila y el puntero de pila (SP) El puntero de pila apunta a la uacuteltima posicioacuten ocupada Asiacute como puntero de direccionamiento usaremos el SP El desplazamiento maacutes el valor del SP nos daraacute la direccioacuten del objeto al que queramos hacer referencia En ocasiones si no existe C de desplazamiento solo se trabajara con la cima de la pila Este tipo de direccionamiento nos aporta flexibilidad pero por el contrario es mucho maacutes complejo que otros tipos estudiados maacutes arriba
ORGANIZACIOacuteN DEL PROCESADOR
Captar instrucciones el procesador lee una instruccioacuten de memoria (registro cache o memoria principal)Interpretar instruccioacuten la instruccioacuten se codifica para determinar queacute accioacuten es necesarioCaptar datos la ejecucioacuten de una instruccioacuten puede exigir leer datos de memoria o de un moacutedulo de ESProcesar datos la ejecucioacuten e una instruccioacuten puede exigir llevar a cabo alguna operacioacuten aritmeacutetica o loacutegica con los datosEscribir datos los resultados de una ejecucioacuten pueden exigir escribir datos en la memoria o en el moacutedulo de ESPara hacer estas cosas el procesador necesita almacenar instrucciones y datos temporalmente mientras una instruccioacuten esta ejecutaacutendose en otras palabras el procesador necesita una pequentildea memoria interna
ORGANIZACIOacuteN DE REGISTROS
Registros visibles al usuario son utilizados por el programador
Registros de control y estado son utilizados por la UC para controlar la operacioacuten de la CPU (no son visibles por el programador)
REGISTROS VISIBLES AL USUARIObull Pueden ser asignados a una variedad de funciones
bull cualquier registro de propoacutesito general puede contener el operando para cualquier coacutedigo de operacioacuten (verdadero propoacutesito)
bull pueden existir restricciones (ej Registros dedicados a operaciones especificas)
NUacuteMERO DE REGISTROSbull Afecta al tamantildeo de la instruccioacuten
bull Mayor Nordm de registros maacutes bits para especificarlos en la instruccioacuten
bull Pocos registros maacutes referencias a memoria
bull No oacuteptimo entre 8 y 32 reg Maacutes no hay gran mejora (aumenta tamantildeo de la instruccioacuten)
LONGITUD DE LOS REGISTROSbull De direcciones deben ser capaces de almacenar la direccioacuten maacutes grande
bull De datos deben estar habilitados para almacenar la mayoriacutea de los tipos de datos
bull Algunas maacutequinas permiten 2 registros contiguos utilizados como un solo registro para almacenar valores de doble longitud
BITS DE CONDICIOacuteN (BANDERAS)bull Bits establecidos por la CPU como resultado de operaciones
bull Pueden ser utilizados por las instrucciones de bifurcacioacuten condicional
bull Generalmente no son alterados por el programador
REGISTROS DE CONTROL Y ESTADObull Empleados para controlar la operacioacuten de la CPU En la mayoriacutea de las
maacutequinas no son visibles al usuario
bull Los 4 esenciales para la ejecucioacuten de
bull Contador de programa (PC)
bull Registro de instruccioacuten (IR)
bull Registro de direccioacuten de memoria (MAR)
bull Registro buffer de memoria (MBR)bull Los 4 reg recieacuten mencionados se emplean para el movimiento de datos
entre la CPU y memoria
bull Dentro de la CPU los datos se deben presentar a la ALU para procesamiento eacutesta puede acceder al MBR y a los reg visibles por el usuario Puede haber tambieacuten reg temporales adicionales para intercambiar datos con el MBR y demaacutes reg visibles
bull un ciclo de instruccioacuten incluye los siguientes sub ciclos
bull Capitacioacuten es la que lleva la siguiente instruccioacuten de la memoria al procesador
bull Ejecucioacuten interpreta el coacutedigo de operacioacuten y lleva a cabo la operacioacuten indicada
bull Interrupcioacuten si ocurre un problema guarda el estado del proceso actual y atiende la interrupcioacuten
CICLO DE INSTRUCCIOacuteN
CICLO INDIRECTObull Si se usa direccionamiento indirecto es necesario memoria adicional
bull La principal actividad es consiste en alternar las actividades de captacioacuten y ejecucioacuten de instrucciones
bull La instruccioacuten es captada pada determinar si incluye un direccionamiento indirecto
bull Una vez que la instruccioacuten es captada debe identificar sus campos de operando
bull Despueacutes que se ejecuta es un proceso similar para almacenar
bull El resultado en la memoria principal
FLUJO DE DATOS
bull La secuencia de eventos que tienen lugar durante el clico de instruccioacuten depende del procesador
bull El contador de programa contiene la direccioacuten de la siguiente instruccioacuten
bull La unidad de control solicita una lectura de memoria y el resultado se pone en un bus de datos y se lleva al registro de instruccioacuten
bull El ciclo de ejecucioacuten adopta muchas formas ya que se ya que depende del registro de instruccioacuten
bull Este ciclo puede aplicar transferencia de datos entre registros asiacute como lectura y escritura en Es
bull Mientras que el ciclo de interrupcioacuten es simple el contenido de contador de programa debe ser almacenado para que el procesador pueda continuar su actividad
La segmentacioacuten o pipeline es una teacutecnica de realizacioacuten de procesadores por la cual se solapa la ejecucioacuten de las instrucciones Hoy en diacutea es la teacutecnica clave para la realizacioacuten de CPU raacutepidas La idea baacutesica de la segmentacioacuten se puede extraer de una cadena de montaje de coches Los coches no se montan uno a uno si no que su construccioacuten se divide en fases sucesivas y el montaje del coche se realiza tal como este va avanzando por estas fases De esta forma cada fase estaacute trabajando simultaacuteneamente en la construccioacuten de un coche diferente De esta forma la construccioacuten de un coche cuesta el mismo tiempo que antes pero ahora la frecuencia con que salen los coches construidos es mucho mayor (tantos como fases tenga su construccioacuten) Cada uno de estas fases se denomina segmento o etapa de segmentacioacuten Al igual que en los coches la productividad de un computador va a depender del nuacutemero de instrucciones que acaben por unidad de tiempo y no de lo que le cueste a una instruccioacuten individual
SEGMENTACIOacuteN DE INSTRUCCIONES
RISC (del ingleacutes reduced instruction set computer) es un tipo de microprocesador con las siguientes caracteriacutesticas fundamentalesbull Instrucciones de tamantildeo fijo y presentadas en un reducido nuacutemero de formatosbull Soacutelo las instrucciones de carga y almacenamiento acceden a la memoria de datosbull El objetivo de disentildear maacutequinas con esta arquitectura es posibilitar la segmentacioacuten y el
paralelismo en la ejecucioacuten de instrucciones y reducir los accesos a memoria
ARQUITECTURA RISC
CISC (complex instruction set computer) bull Los microprocesadores CISC tienen un conjunto de instrucciones que se caracteriza
por ser muy amplio y permitir operaciones complejas entre operandos situados en la memoria o en los registros internos en contraposicioacuten a la arquitectura RISC
bull Este tipo de arquitectura dificulta el paralelismo entre instrucciones por lo que en la actualidad la mayoriacutea de los sistemas CISC de alto rendimiento implementan un sistema que convierte dichas instrucciones complejas en varias instrucciones simples del tipo RISC llamadas generalmente microinstrucciones
bull Para realizar una sola instruccioacuten un chip CISC requiere de cuatro a diez ciclos de reloj
ARQUITECTURA CISC
INSTRUCCIONES bull Es faacutecil ver por meacutetodos loacutegicos formales que existen ciertos [repertorios de instrucciones] que son en
abstracto adecuados para controlar y causar la ejecucioacuten de cualquier secuencia de operaciones Las consideraciones realmente decisivas desde el punto de vista actual en seleccionar un [repertorio de instrucciones] son maacutes de naturaleza praacutectica La simplicidad del equipo demandado por el [repertorio de instrucciones] y la claridad de su aplicacioacuten a problemas realmente importantes junto con la velocidad del manejo de esos problemas
bull Burks Goldstine y von Neumann 1947
bull La ldquosimplicidad del equipordquo es una consideracioacuten tan valiosa para las maacutequinas actuales como lo fue en los 50rsquos La meta de este capiacutetulo es mostrar un repertorio de instrucciones que siga este consejo mostrando como eacuteste es representado en hardware y su relacioacuten con los lenguajes de alto nivel
bull El repertorio de instrucciones bajo estudio es de una arquitectura MIPS usado por NEC Nintendo Silicon Graphics y Sony entre otros Y es un repertorio de instrucciones tiacutepico disentildeado en los 80rsquos
MIPS ndash INSTRUCCIONES aritmeacuteticoloacutegicas
bull bull Principio de disentildeo 1
bull ndash ldquoLa simplicidad favorece la uniformidadrdquo
bull bull Todos los computadores deben ser
bull capaces de realizar caacutelculos aritmeacuteticos y
bull loacutegicos
bull add a b c a 1048773 b + c
bull sub a a d a 1048773 a + d = (b + c) - d
bull or a a e a 1048773 a + e = (b + c + d) OR e
MIPS ndash INSTRUCCIONES DE SALTOCONDICIONAL
bull bull Instrucciones de salto condicional (soacutelo dos)
bull ndash bne $s0 $s1 L1 branch to L1 if no equal
bull ndash beq $s0 $s1 L1 branch to L1 if equal
bull bull Pseudoinstrucciones de salto condicional
bull ndash slt (set si menor que) beq bne y $zero permiten las
bull condiciones restantes
bull blt $s1 $s2 etiqueta salta si menor que
bull slt $at $s1 $s2
bull bne $at $zero etiqueta
bull ndash El ensamblador expande las pseudoinstrucciones
bull bull $at registro utilizado por el programa ensamblador
EJEMPLO DE COMPILACIOacuteN DE UNA SENTENCIA DE SALTO CONDICIONAL
bull bull Coacutedigo fuente de C
bull If (i==j) h = i + j
bull h i y j en $s0 $s1 y $s2
bull bull Compilacioacuten en MIPS
bull bne $s1 $s2 etiqueta
bull add $s0 $s1 $s2
bull etiqueta hellip
LENGUAJE MAacuteQUINA ndash INSTRUCCIONESARITMEacuteTICO-LOacuteGICAS
bull bull El tamantildeo de las instrucciones es de 32 bits
bull bull Las instrucciones aritmeacutetico-loacutegicas son codificadas con el formato tipo-R
bull ndash add $rd $rs $rt
bull bull Significado de los campos
bull ndash op 6-bits coacutedigo de operacioacuten
bull ndash rs rt rd 5-bits registro source target destination
bull ndash shamt 5-bits nuacutemero de bits a desplazar (cuando aplicable)
bull ndash funct 6-bits coacutedigo de funcioacuten (extensioacuten del coacutedigo de operacioacuten)
bull op rs rt rd shamt funct Formato de instrucciones aritmeacuteticas
bull 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits Todas las instrucciones MIPS de 32 bits
bull 000000 01010 11111 00011 00000 100000 0x015f1820 add $3$10$31
LENGUAJE MAacuteQUINA ndash INSTRUCCIONESDE ACCESO A MEMORIA
bull bull Principio de disentildeo 3
bull ndash ldquoUn buen disentildeo necesita buenas soluciones de compromisordquo
bull bull Las instrucciones de load y store especifican dos registros y un
bull desplazamiento
bull ndash Formato tipo I (16 bits para el dato inmediato)
bull ndash lw $rt inmediato($rs) sw $rt inmediato($rs
bull ndash lh lhu lb lbu sh sb (load half half unsigned byte byte unsigned store half
bull byte)
bull op rs rt Direccioacuteninmediato Formato de instruciones de carga
bull 6 bits 5 bits 5 bits 16 bits Todas las instrucciones MIPS de 32 bits
bull 100011 00011 00101 0000000000100000 0x8c650020 lw $
TIPO DE OPERACIONES
Transferencia de datosbull Move (transferir) transfiere una palabra o un bloque desde un origen a un destinobull Store (memorizar) Transfiere una palabra desde el procesador a memoriabull Load (cargar o captar) transfiere una palabra desde memoria al procesadorbull Exchange (intercambiar) intercambia los contenidos del origen y el destinobull Clear (reiniciar o poner a 0) Transfiere una palabra de ceros al destinobull Set (poner a 1) transfiere una palabra de unos al destinobull Push (introducir en la pila ldquoapilarrdquo) Transfiere una palabra desde un origen a la cabecera de la pilabull Pop (extraer de la pila ldquodesapilarrdquo) Transfiere una palabra desde la cabecera de la pila a un destinoAritmeacuteticas bull Add (sumar) Calcula la suma de 2 operandosbull Substract (restar) Calcula la diferencia de dos operandosbull Multiply (multiplicar) Calcula el producto de dos operandosbull Divide (dividir) Calcula el cociente de dos operandosbull Absolute (valor absoluto) Sustituye el operando por su valor absolutobull Negate (opuesto) Cambia el signo del operandobull Increment (incrementar) suma 1 al operandobull Decrement (decremenatar) Resta 1 al operandoLoacutegicasbull AND (Producto loacutegico Y) Realiza la operacioacuten loacutegica Y (AND)bull OR (Suma loacutegica O) Realiza la operacioacuten loacutegica o (OR)bull NOT (Complemento) Realiza el complemento (NOT) bit a bit del dato
bull Exclusive-OR (OR-exclusiva) Realiza la operacioacuten loacutegica O-Exclusiva (XOR)bull Test (comprobar) Comprueba la condicioacuten especificada foja los indicadores (flags) en funcioacuten del
resultadobull Compare (comparar) Realiza la operacioacuten loacutegica o aritmeacutetica de dos o mas operandos fija los
indicadores (flags) en funcioacuten del resultadobull Set control variables (fijar variables de control) Instrucciones que fijan controles para proteccioacuten gestioacuten
de interrupciones control de temporizador etcbull Shift (desplazamiento) Desplaza el operando a la izquierda (derecha) introduciendo valores constantes
por el otro extremobull Rotate (rotar) Desplaza el operando a la izquierda (derecha) de forma ciacuteclicaControl de flujobull Jump (bifurcacioacuten o salto) Ruptura incondicional de flujo carga el PC con la direccioacuten especificada bull Jump condicional (salto condicional) Comprueba la condicioacuten especificada dependiendo de la condicioacuten
o carga del PC con la direccioacuten indicada o no hace nadabull Jump to Subrutina (llamada la subrutina) Guarda la informacioacuten de control del programa en una posicioacuten
conocida y salta a la direccioacuten indicadabull Return (retorno) Sustituye el contenido del PC y de otros registros por los de la posicioacuten conocidabull Execute (ejecutar) Capta el operando de la direccioacuten indicada y lo ejecuta como una instruccioacuten no
modifica el PCbull Skip (salto impliacutecito) Incrementa el PC de manera que salte la instruccioacuten siguientebull Skip conditional (salto impliacutecito condicional) Comprueba la condicioacuten indicada realiza el salto impliacutecito
o no hace nada dependiendo de la condicioacutenbull Halt (parar) Detiene la ejecucioacuten del programa
bull Wait (esperar) Detiene la ejecucioacuten del programa comprueba de forma repetitiva la condicioacuten especificada reanuda la ejecucioacuten cuando se satisface la condicioacuten
bull No operation (no operacioacuten) No se ejecuta operacioacuten alguna pero la ejecucioacuten del programa continuaENTRADASALIDAbull InPut (entrada) Transfiera datos desde un puerto o dispositivo de ES al destino (memoria principal o
registro del procesador)bull OutPut (salida) Transfiera datos desde el origen especificado a un puerto o dispositivo de ESbull Start IO (iniciar ES) Transfiere instrucciones al procesador de ES para iniciar operaciones de ESbull Test IO (comprobar ES) Transfiere informacioacuten de estado desde el sistema de ES al destino
especificadoCONVERSIONbull Traslate (traducir) Traduccioacuten de los valores de una seccioacuten de memoria basada en una tabla de
correspondenciabull Convert (convertir) Convierte el contenido de una palabra de un formato a otro (por ejemplo de decimal
empaquetado a binario)
ACCIONES DEL PROCESADOR PARA VARIOS TIPOS DE OPERADORES
TRANSFERENCIA DE DATOS Transfiere datos de una posicioacuten a otra si se implica la memoriabull Determina la direccioacuten de memoriabull Realiza la transformacioacuten de direcciones de memoria virtual a realbull Comprueba la cachebull Inicia la lecturaescritura ende memoriaARITMEacuteTICAbull Puede implicar transferencia de datos antes yo despueacutesbull Realiza la operacioacuten en la ALUbull Actualiza coacutedigos e indicadores de condicioacutenLOacuteGICA Lo mismo que en la aritmeacuteticaCONVERSION Similar a la aritmeacutetica y la loacutegica Puede implicar a loacutegica especial para realizar la conversioacutenCONTRO DEL FLUJO Actualiza el contador del programa En el caso de llamadas y retorno de subrutinas gestiona la transferencia y enlace de paraacutemetrosES bull Cursa una orden en el modulo de ESbull En el caso de ES asignada en memoria determina la direccioacuten de memoria correspondiente
MODOS DE DIRECCIONAMIENTObull InmediatoEn la instruccioacuten estaacute incluido directamente el operandoEn este modo el operando es especificado en la instruccioacuten misma En otras palabras una instruccioacuten de modo inmediato tiene un campo de operando en vez de un campo de direccioacuten El campo del operando contiene el operando actual que se debe utilizar en conjunto con la operacioacuten especificada en la instruccioacuten Las instrucciones de modo inmediato son uacutetiles para inicializar los registros en un valor constanteCuando el campo de direccioacuten especifica un registro del procesador la instruccioacuten se dice que estaacute en el modo de registro
bull DirectoEl campo de operando en la instruccioacuten contiene la direccioacuten en memoria donde se encuentra el operando En este modo la direccioacuten efectiva es igual a la parte de direccioacuten de la instruccioacuten El operando reside en la memoria y su direccioacuten es dada directamente por el campo de direccioacuten de la instruccioacuten En una instruccioacuten de tipo ramificacioacuten el campo de direccioacuten especifica la direccioacuten de la rama actualCon este tipo de direccionamiento la direccioacuten efectiva es contenida en la misma instruccioacuten tal como los valores de datos inmediatos que son contenidos en la instruccioacuten Un procesador de 16 bits suma la direccioacuten efectiva al contenido del segmento de datos previamente desplazado en 4 bits para producir la direccioacuten fiacutesica del operando
bull IndirectoEn este modo de direccionamiento no es necesario poner ninguna direccioacuten de forma expliacutecita ya que en el propio coacutedigo de operacioacuten se conoce la direccioacuten del (de los) operando(s) al (a los) que se desea acceder o con el (los) que se quiere operarUn ejemplo de este tipo de direccionamiento lo podemos encontrar en la arquitectura de acumulador (AC) donde siempre hay un paraacutemetro impliacutecito y este es el ACPara finalizar y dejar este modo de direccionamiento generalizado para las arquitecturas maacutes usuales remarcamos que tambieacuten podemos encontrarlo en la arquitectura con registros de propoacutesito general por ejemplo con oacuterdenes como set c que pone a 1 el registro c (acarreo)
bull De registroSirve para especificar operandos que estaacuten en registros
bull Indirecto mediante registrosEl campo de operando de la instruccioacuten contiene un identificador de registro en el que se encuentra la direccioacuten efectiva del operando En este modo el campo de la direccioacuten de la instruccioacuten da la direccioacuten en donde la direccioacuten efectiva se almacena en la memoria El control localiza la instruccioacuten de la memoria y utiliza su parte de direccioacuten para accesar la memoria de nuevo para leer una direccioacuten efectiva Unos pocos modos de direccionamiento requieren que el campo de direccioacuten de la instruccioacuten sea sumado al control de un registro especificado en el procesadorLa direccioacuten efectiva en este modo se obtiene del siguiente caacutelculoDir Efectiva = Dir de la parte de la instruccioacuten + Contenido del registro del procesador
bull De desplazamientoCombina el modo directo e indirecto mediante registros
bull De pilaSe utiliza cuando el operando estaacute en memoria y en la cabecera de la pilaEste direccionamiento se basa en las estructuras denominadas Pila(tipo LIFO) las cuales estaacuten marcados por el fondo de la pila y el puntero de pila (SP) El puntero de pila apunta a la uacuteltima posicioacuten ocupada Asiacute como puntero de direccionamiento usaremos el SP El desplazamiento maacutes el valor del SP nos daraacute la direccioacuten del objeto al que queramos hacer referencia En ocasiones si no existe C de desplazamiento solo se trabajara con la cima de la pila Este tipo de direccionamiento nos aporta flexibilidad pero por el contrario es mucho maacutes complejo que otros tipos estudiados maacutes arriba
ORGANIZACIOacuteN DEL PROCESADOR
Captar instrucciones el procesador lee una instruccioacuten de memoria (registro cache o memoria principal)Interpretar instruccioacuten la instruccioacuten se codifica para determinar queacute accioacuten es necesarioCaptar datos la ejecucioacuten de una instruccioacuten puede exigir leer datos de memoria o de un moacutedulo de ESProcesar datos la ejecucioacuten e una instruccioacuten puede exigir llevar a cabo alguna operacioacuten aritmeacutetica o loacutegica con los datosEscribir datos los resultados de una ejecucioacuten pueden exigir escribir datos en la memoria o en el moacutedulo de ESPara hacer estas cosas el procesador necesita almacenar instrucciones y datos temporalmente mientras una instruccioacuten esta ejecutaacutendose en otras palabras el procesador necesita una pequentildea memoria interna
ORGANIZACIOacuteN DE REGISTROS
Registros visibles al usuario son utilizados por el programador
Registros de control y estado son utilizados por la UC para controlar la operacioacuten de la CPU (no son visibles por el programador)
REGISTROS VISIBLES AL USUARIObull Pueden ser asignados a una variedad de funciones
bull cualquier registro de propoacutesito general puede contener el operando para cualquier coacutedigo de operacioacuten (verdadero propoacutesito)
bull pueden existir restricciones (ej Registros dedicados a operaciones especificas)
NUacuteMERO DE REGISTROSbull Afecta al tamantildeo de la instruccioacuten
bull Mayor Nordm de registros maacutes bits para especificarlos en la instruccioacuten
bull Pocos registros maacutes referencias a memoria
bull No oacuteptimo entre 8 y 32 reg Maacutes no hay gran mejora (aumenta tamantildeo de la instruccioacuten)
LONGITUD DE LOS REGISTROSbull De direcciones deben ser capaces de almacenar la direccioacuten maacutes grande
bull De datos deben estar habilitados para almacenar la mayoriacutea de los tipos de datos
bull Algunas maacutequinas permiten 2 registros contiguos utilizados como un solo registro para almacenar valores de doble longitud
BITS DE CONDICIOacuteN (BANDERAS)bull Bits establecidos por la CPU como resultado de operaciones
bull Pueden ser utilizados por las instrucciones de bifurcacioacuten condicional
bull Generalmente no son alterados por el programador
REGISTROS DE CONTROL Y ESTADObull Empleados para controlar la operacioacuten de la CPU En la mayoriacutea de las
maacutequinas no son visibles al usuario
bull Los 4 esenciales para la ejecucioacuten de
bull Contador de programa (PC)
bull Registro de instruccioacuten (IR)
bull Registro de direccioacuten de memoria (MAR)
bull Registro buffer de memoria (MBR)bull Los 4 reg recieacuten mencionados se emplean para el movimiento de datos
entre la CPU y memoria
bull Dentro de la CPU los datos se deben presentar a la ALU para procesamiento eacutesta puede acceder al MBR y a los reg visibles por el usuario Puede haber tambieacuten reg temporales adicionales para intercambiar datos con el MBR y demaacutes reg visibles
bull un ciclo de instruccioacuten incluye los siguientes sub ciclos
bull Capitacioacuten es la que lleva la siguiente instruccioacuten de la memoria al procesador
bull Ejecucioacuten interpreta el coacutedigo de operacioacuten y lleva a cabo la operacioacuten indicada
bull Interrupcioacuten si ocurre un problema guarda el estado del proceso actual y atiende la interrupcioacuten
CICLO DE INSTRUCCIOacuteN
CICLO INDIRECTObull Si se usa direccionamiento indirecto es necesario memoria adicional
bull La principal actividad es consiste en alternar las actividades de captacioacuten y ejecucioacuten de instrucciones
bull La instruccioacuten es captada pada determinar si incluye un direccionamiento indirecto
bull Una vez que la instruccioacuten es captada debe identificar sus campos de operando
bull Despueacutes que se ejecuta es un proceso similar para almacenar
bull El resultado en la memoria principal
FLUJO DE DATOS
bull La secuencia de eventos que tienen lugar durante el clico de instruccioacuten depende del procesador
bull El contador de programa contiene la direccioacuten de la siguiente instruccioacuten
bull La unidad de control solicita una lectura de memoria y el resultado se pone en un bus de datos y se lleva al registro de instruccioacuten
bull El ciclo de ejecucioacuten adopta muchas formas ya que se ya que depende del registro de instruccioacuten
bull Este ciclo puede aplicar transferencia de datos entre registros asiacute como lectura y escritura en Es
bull Mientras que el ciclo de interrupcioacuten es simple el contenido de contador de programa debe ser almacenado para que el procesador pueda continuar su actividad
La segmentacioacuten o pipeline es una teacutecnica de realizacioacuten de procesadores por la cual se solapa la ejecucioacuten de las instrucciones Hoy en diacutea es la teacutecnica clave para la realizacioacuten de CPU raacutepidas La idea baacutesica de la segmentacioacuten se puede extraer de una cadena de montaje de coches Los coches no se montan uno a uno si no que su construccioacuten se divide en fases sucesivas y el montaje del coche se realiza tal como este va avanzando por estas fases De esta forma cada fase estaacute trabajando simultaacuteneamente en la construccioacuten de un coche diferente De esta forma la construccioacuten de un coche cuesta el mismo tiempo que antes pero ahora la frecuencia con que salen los coches construidos es mucho mayor (tantos como fases tenga su construccioacuten) Cada uno de estas fases se denomina segmento o etapa de segmentacioacuten Al igual que en los coches la productividad de un computador va a depender del nuacutemero de instrucciones que acaben por unidad de tiempo y no de lo que le cueste a una instruccioacuten individual
SEGMENTACIOacuteN DE INSTRUCCIONES
RISC (del ingleacutes reduced instruction set computer) es un tipo de microprocesador con las siguientes caracteriacutesticas fundamentalesbull Instrucciones de tamantildeo fijo y presentadas en un reducido nuacutemero de formatosbull Soacutelo las instrucciones de carga y almacenamiento acceden a la memoria de datosbull El objetivo de disentildear maacutequinas con esta arquitectura es posibilitar la segmentacioacuten y el
paralelismo en la ejecucioacuten de instrucciones y reducir los accesos a memoria
ARQUITECTURA RISC
CISC (complex instruction set computer) bull Los microprocesadores CISC tienen un conjunto de instrucciones que se caracteriza
por ser muy amplio y permitir operaciones complejas entre operandos situados en la memoria o en los registros internos en contraposicioacuten a la arquitectura RISC
bull Este tipo de arquitectura dificulta el paralelismo entre instrucciones por lo que en la actualidad la mayoriacutea de los sistemas CISC de alto rendimiento implementan un sistema que convierte dichas instrucciones complejas en varias instrucciones simples del tipo RISC llamadas generalmente microinstrucciones
bull Para realizar una sola instruccioacuten un chip CISC requiere de cuatro a diez ciclos de reloj
ARQUITECTURA CISC
MIPS ndash INSTRUCCIONES aritmeacuteticoloacutegicas
bull bull Principio de disentildeo 1
bull ndash ldquoLa simplicidad favorece la uniformidadrdquo
bull bull Todos los computadores deben ser
bull capaces de realizar caacutelculos aritmeacuteticos y
bull loacutegicos
bull add a b c a 1048773 b + c
bull sub a a d a 1048773 a + d = (b + c) - d
bull or a a e a 1048773 a + e = (b + c + d) OR e
MIPS ndash INSTRUCCIONES DE SALTOCONDICIONAL
bull bull Instrucciones de salto condicional (soacutelo dos)
bull ndash bne $s0 $s1 L1 branch to L1 if no equal
bull ndash beq $s0 $s1 L1 branch to L1 if equal
bull bull Pseudoinstrucciones de salto condicional
bull ndash slt (set si menor que) beq bne y $zero permiten las
bull condiciones restantes
bull blt $s1 $s2 etiqueta salta si menor que
bull slt $at $s1 $s2
bull bne $at $zero etiqueta
bull ndash El ensamblador expande las pseudoinstrucciones
bull bull $at registro utilizado por el programa ensamblador
EJEMPLO DE COMPILACIOacuteN DE UNA SENTENCIA DE SALTO CONDICIONAL
bull bull Coacutedigo fuente de C
bull If (i==j) h = i + j
bull h i y j en $s0 $s1 y $s2
bull bull Compilacioacuten en MIPS
bull bne $s1 $s2 etiqueta
bull add $s0 $s1 $s2
bull etiqueta hellip
LENGUAJE MAacuteQUINA ndash INSTRUCCIONESARITMEacuteTICO-LOacuteGICAS
bull bull El tamantildeo de las instrucciones es de 32 bits
bull bull Las instrucciones aritmeacutetico-loacutegicas son codificadas con el formato tipo-R
bull ndash add $rd $rs $rt
bull bull Significado de los campos
bull ndash op 6-bits coacutedigo de operacioacuten
bull ndash rs rt rd 5-bits registro source target destination
bull ndash shamt 5-bits nuacutemero de bits a desplazar (cuando aplicable)
bull ndash funct 6-bits coacutedigo de funcioacuten (extensioacuten del coacutedigo de operacioacuten)
bull op rs rt rd shamt funct Formato de instrucciones aritmeacuteticas
bull 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits Todas las instrucciones MIPS de 32 bits
bull 000000 01010 11111 00011 00000 100000 0x015f1820 add $3$10$31
LENGUAJE MAacuteQUINA ndash INSTRUCCIONESDE ACCESO A MEMORIA
bull bull Principio de disentildeo 3
bull ndash ldquoUn buen disentildeo necesita buenas soluciones de compromisordquo
bull bull Las instrucciones de load y store especifican dos registros y un
bull desplazamiento
bull ndash Formato tipo I (16 bits para el dato inmediato)
bull ndash lw $rt inmediato($rs) sw $rt inmediato($rs
bull ndash lh lhu lb lbu sh sb (load half half unsigned byte byte unsigned store half
bull byte)
bull op rs rt Direccioacuteninmediato Formato de instruciones de carga
bull 6 bits 5 bits 5 bits 16 bits Todas las instrucciones MIPS de 32 bits
bull 100011 00011 00101 0000000000100000 0x8c650020 lw $
TIPO DE OPERACIONES
Transferencia de datosbull Move (transferir) transfiere una palabra o un bloque desde un origen a un destinobull Store (memorizar) Transfiere una palabra desde el procesador a memoriabull Load (cargar o captar) transfiere una palabra desde memoria al procesadorbull Exchange (intercambiar) intercambia los contenidos del origen y el destinobull Clear (reiniciar o poner a 0) Transfiere una palabra de ceros al destinobull Set (poner a 1) transfiere una palabra de unos al destinobull Push (introducir en la pila ldquoapilarrdquo) Transfiere una palabra desde un origen a la cabecera de la pilabull Pop (extraer de la pila ldquodesapilarrdquo) Transfiere una palabra desde la cabecera de la pila a un destinoAritmeacuteticas bull Add (sumar) Calcula la suma de 2 operandosbull Substract (restar) Calcula la diferencia de dos operandosbull Multiply (multiplicar) Calcula el producto de dos operandosbull Divide (dividir) Calcula el cociente de dos operandosbull Absolute (valor absoluto) Sustituye el operando por su valor absolutobull Negate (opuesto) Cambia el signo del operandobull Increment (incrementar) suma 1 al operandobull Decrement (decremenatar) Resta 1 al operandoLoacutegicasbull AND (Producto loacutegico Y) Realiza la operacioacuten loacutegica Y (AND)bull OR (Suma loacutegica O) Realiza la operacioacuten loacutegica o (OR)bull NOT (Complemento) Realiza el complemento (NOT) bit a bit del dato
bull Exclusive-OR (OR-exclusiva) Realiza la operacioacuten loacutegica O-Exclusiva (XOR)bull Test (comprobar) Comprueba la condicioacuten especificada foja los indicadores (flags) en funcioacuten del
resultadobull Compare (comparar) Realiza la operacioacuten loacutegica o aritmeacutetica de dos o mas operandos fija los
indicadores (flags) en funcioacuten del resultadobull Set control variables (fijar variables de control) Instrucciones que fijan controles para proteccioacuten gestioacuten
de interrupciones control de temporizador etcbull Shift (desplazamiento) Desplaza el operando a la izquierda (derecha) introduciendo valores constantes
por el otro extremobull Rotate (rotar) Desplaza el operando a la izquierda (derecha) de forma ciacuteclicaControl de flujobull Jump (bifurcacioacuten o salto) Ruptura incondicional de flujo carga el PC con la direccioacuten especificada bull Jump condicional (salto condicional) Comprueba la condicioacuten especificada dependiendo de la condicioacuten
o carga del PC con la direccioacuten indicada o no hace nadabull Jump to Subrutina (llamada la subrutina) Guarda la informacioacuten de control del programa en una posicioacuten
conocida y salta a la direccioacuten indicadabull Return (retorno) Sustituye el contenido del PC y de otros registros por los de la posicioacuten conocidabull Execute (ejecutar) Capta el operando de la direccioacuten indicada y lo ejecuta como una instruccioacuten no
modifica el PCbull Skip (salto impliacutecito) Incrementa el PC de manera que salte la instruccioacuten siguientebull Skip conditional (salto impliacutecito condicional) Comprueba la condicioacuten indicada realiza el salto impliacutecito
o no hace nada dependiendo de la condicioacutenbull Halt (parar) Detiene la ejecucioacuten del programa
bull Wait (esperar) Detiene la ejecucioacuten del programa comprueba de forma repetitiva la condicioacuten especificada reanuda la ejecucioacuten cuando se satisface la condicioacuten
bull No operation (no operacioacuten) No se ejecuta operacioacuten alguna pero la ejecucioacuten del programa continuaENTRADASALIDAbull InPut (entrada) Transfiera datos desde un puerto o dispositivo de ES al destino (memoria principal o
registro del procesador)bull OutPut (salida) Transfiera datos desde el origen especificado a un puerto o dispositivo de ESbull Start IO (iniciar ES) Transfiere instrucciones al procesador de ES para iniciar operaciones de ESbull Test IO (comprobar ES) Transfiere informacioacuten de estado desde el sistema de ES al destino
especificadoCONVERSIONbull Traslate (traducir) Traduccioacuten de los valores de una seccioacuten de memoria basada en una tabla de
correspondenciabull Convert (convertir) Convierte el contenido de una palabra de un formato a otro (por ejemplo de decimal
empaquetado a binario)
ACCIONES DEL PROCESADOR PARA VARIOS TIPOS DE OPERADORES
TRANSFERENCIA DE DATOS Transfiere datos de una posicioacuten a otra si se implica la memoriabull Determina la direccioacuten de memoriabull Realiza la transformacioacuten de direcciones de memoria virtual a realbull Comprueba la cachebull Inicia la lecturaescritura ende memoriaARITMEacuteTICAbull Puede implicar transferencia de datos antes yo despueacutesbull Realiza la operacioacuten en la ALUbull Actualiza coacutedigos e indicadores de condicioacutenLOacuteGICA Lo mismo que en la aritmeacuteticaCONVERSION Similar a la aritmeacutetica y la loacutegica Puede implicar a loacutegica especial para realizar la conversioacutenCONTRO DEL FLUJO Actualiza el contador del programa En el caso de llamadas y retorno de subrutinas gestiona la transferencia y enlace de paraacutemetrosES bull Cursa una orden en el modulo de ESbull En el caso de ES asignada en memoria determina la direccioacuten de memoria correspondiente
MODOS DE DIRECCIONAMIENTObull InmediatoEn la instruccioacuten estaacute incluido directamente el operandoEn este modo el operando es especificado en la instruccioacuten misma En otras palabras una instruccioacuten de modo inmediato tiene un campo de operando en vez de un campo de direccioacuten El campo del operando contiene el operando actual que se debe utilizar en conjunto con la operacioacuten especificada en la instruccioacuten Las instrucciones de modo inmediato son uacutetiles para inicializar los registros en un valor constanteCuando el campo de direccioacuten especifica un registro del procesador la instruccioacuten se dice que estaacute en el modo de registro
bull DirectoEl campo de operando en la instruccioacuten contiene la direccioacuten en memoria donde se encuentra el operando En este modo la direccioacuten efectiva es igual a la parte de direccioacuten de la instruccioacuten El operando reside en la memoria y su direccioacuten es dada directamente por el campo de direccioacuten de la instruccioacuten En una instruccioacuten de tipo ramificacioacuten el campo de direccioacuten especifica la direccioacuten de la rama actualCon este tipo de direccionamiento la direccioacuten efectiva es contenida en la misma instruccioacuten tal como los valores de datos inmediatos que son contenidos en la instruccioacuten Un procesador de 16 bits suma la direccioacuten efectiva al contenido del segmento de datos previamente desplazado en 4 bits para producir la direccioacuten fiacutesica del operando
bull IndirectoEn este modo de direccionamiento no es necesario poner ninguna direccioacuten de forma expliacutecita ya que en el propio coacutedigo de operacioacuten se conoce la direccioacuten del (de los) operando(s) al (a los) que se desea acceder o con el (los) que se quiere operarUn ejemplo de este tipo de direccionamiento lo podemos encontrar en la arquitectura de acumulador (AC) donde siempre hay un paraacutemetro impliacutecito y este es el ACPara finalizar y dejar este modo de direccionamiento generalizado para las arquitecturas maacutes usuales remarcamos que tambieacuten podemos encontrarlo en la arquitectura con registros de propoacutesito general por ejemplo con oacuterdenes como set c que pone a 1 el registro c (acarreo)
bull De registroSirve para especificar operandos que estaacuten en registros
bull Indirecto mediante registrosEl campo de operando de la instruccioacuten contiene un identificador de registro en el que se encuentra la direccioacuten efectiva del operando En este modo el campo de la direccioacuten de la instruccioacuten da la direccioacuten en donde la direccioacuten efectiva se almacena en la memoria El control localiza la instruccioacuten de la memoria y utiliza su parte de direccioacuten para accesar la memoria de nuevo para leer una direccioacuten efectiva Unos pocos modos de direccionamiento requieren que el campo de direccioacuten de la instruccioacuten sea sumado al control de un registro especificado en el procesadorLa direccioacuten efectiva en este modo se obtiene del siguiente caacutelculoDir Efectiva = Dir de la parte de la instruccioacuten + Contenido del registro del procesador
bull De desplazamientoCombina el modo directo e indirecto mediante registros
bull De pilaSe utiliza cuando el operando estaacute en memoria y en la cabecera de la pilaEste direccionamiento se basa en las estructuras denominadas Pila(tipo LIFO) las cuales estaacuten marcados por el fondo de la pila y el puntero de pila (SP) El puntero de pila apunta a la uacuteltima posicioacuten ocupada Asiacute como puntero de direccionamiento usaremos el SP El desplazamiento maacutes el valor del SP nos daraacute la direccioacuten del objeto al que queramos hacer referencia En ocasiones si no existe C de desplazamiento solo se trabajara con la cima de la pila Este tipo de direccionamiento nos aporta flexibilidad pero por el contrario es mucho maacutes complejo que otros tipos estudiados maacutes arriba
ORGANIZACIOacuteN DEL PROCESADOR
Captar instrucciones el procesador lee una instruccioacuten de memoria (registro cache o memoria principal)Interpretar instruccioacuten la instruccioacuten se codifica para determinar queacute accioacuten es necesarioCaptar datos la ejecucioacuten de una instruccioacuten puede exigir leer datos de memoria o de un moacutedulo de ESProcesar datos la ejecucioacuten e una instruccioacuten puede exigir llevar a cabo alguna operacioacuten aritmeacutetica o loacutegica con los datosEscribir datos los resultados de una ejecucioacuten pueden exigir escribir datos en la memoria o en el moacutedulo de ESPara hacer estas cosas el procesador necesita almacenar instrucciones y datos temporalmente mientras una instruccioacuten esta ejecutaacutendose en otras palabras el procesador necesita una pequentildea memoria interna
ORGANIZACIOacuteN DE REGISTROS
Registros visibles al usuario son utilizados por el programador
Registros de control y estado son utilizados por la UC para controlar la operacioacuten de la CPU (no son visibles por el programador)
REGISTROS VISIBLES AL USUARIObull Pueden ser asignados a una variedad de funciones
bull cualquier registro de propoacutesito general puede contener el operando para cualquier coacutedigo de operacioacuten (verdadero propoacutesito)
bull pueden existir restricciones (ej Registros dedicados a operaciones especificas)
NUacuteMERO DE REGISTROSbull Afecta al tamantildeo de la instruccioacuten
bull Mayor Nordm de registros maacutes bits para especificarlos en la instruccioacuten
bull Pocos registros maacutes referencias a memoria
bull No oacuteptimo entre 8 y 32 reg Maacutes no hay gran mejora (aumenta tamantildeo de la instruccioacuten)
LONGITUD DE LOS REGISTROSbull De direcciones deben ser capaces de almacenar la direccioacuten maacutes grande
bull De datos deben estar habilitados para almacenar la mayoriacutea de los tipos de datos
bull Algunas maacutequinas permiten 2 registros contiguos utilizados como un solo registro para almacenar valores de doble longitud
BITS DE CONDICIOacuteN (BANDERAS)bull Bits establecidos por la CPU como resultado de operaciones
bull Pueden ser utilizados por las instrucciones de bifurcacioacuten condicional
bull Generalmente no son alterados por el programador
REGISTROS DE CONTROL Y ESTADObull Empleados para controlar la operacioacuten de la CPU En la mayoriacutea de las
maacutequinas no son visibles al usuario
bull Los 4 esenciales para la ejecucioacuten de
bull Contador de programa (PC)
bull Registro de instruccioacuten (IR)
bull Registro de direccioacuten de memoria (MAR)
bull Registro buffer de memoria (MBR)bull Los 4 reg recieacuten mencionados se emplean para el movimiento de datos
entre la CPU y memoria
bull Dentro de la CPU los datos se deben presentar a la ALU para procesamiento eacutesta puede acceder al MBR y a los reg visibles por el usuario Puede haber tambieacuten reg temporales adicionales para intercambiar datos con el MBR y demaacutes reg visibles
bull un ciclo de instruccioacuten incluye los siguientes sub ciclos
bull Capitacioacuten es la que lleva la siguiente instruccioacuten de la memoria al procesador
bull Ejecucioacuten interpreta el coacutedigo de operacioacuten y lleva a cabo la operacioacuten indicada
bull Interrupcioacuten si ocurre un problema guarda el estado del proceso actual y atiende la interrupcioacuten
CICLO DE INSTRUCCIOacuteN
CICLO INDIRECTObull Si se usa direccionamiento indirecto es necesario memoria adicional
bull La principal actividad es consiste en alternar las actividades de captacioacuten y ejecucioacuten de instrucciones
bull La instruccioacuten es captada pada determinar si incluye un direccionamiento indirecto
bull Una vez que la instruccioacuten es captada debe identificar sus campos de operando
bull Despueacutes que se ejecuta es un proceso similar para almacenar
bull El resultado en la memoria principal
FLUJO DE DATOS
bull La secuencia de eventos que tienen lugar durante el clico de instruccioacuten depende del procesador
bull El contador de programa contiene la direccioacuten de la siguiente instruccioacuten
bull La unidad de control solicita una lectura de memoria y el resultado se pone en un bus de datos y se lleva al registro de instruccioacuten
bull El ciclo de ejecucioacuten adopta muchas formas ya que se ya que depende del registro de instruccioacuten
bull Este ciclo puede aplicar transferencia de datos entre registros asiacute como lectura y escritura en Es
bull Mientras que el ciclo de interrupcioacuten es simple el contenido de contador de programa debe ser almacenado para que el procesador pueda continuar su actividad
La segmentacioacuten o pipeline es una teacutecnica de realizacioacuten de procesadores por la cual se solapa la ejecucioacuten de las instrucciones Hoy en diacutea es la teacutecnica clave para la realizacioacuten de CPU raacutepidas La idea baacutesica de la segmentacioacuten se puede extraer de una cadena de montaje de coches Los coches no se montan uno a uno si no que su construccioacuten se divide en fases sucesivas y el montaje del coche se realiza tal como este va avanzando por estas fases De esta forma cada fase estaacute trabajando simultaacuteneamente en la construccioacuten de un coche diferente De esta forma la construccioacuten de un coche cuesta el mismo tiempo que antes pero ahora la frecuencia con que salen los coches construidos es mucho mayor (tantos como fases tenga su construccioacuten) Cada uno de estas fases se denomina segmento o etapa de segmentacioacuten Al igual que en los coches la productividad de un computador va a depender del nuacutemero de instrucciones que acaben por unidad de tiempo y no de lo que le cueste a una instruccioacuten individual
SEGMENTACIOacuteN DE INSTRUCCIONES
RISC (del ingleacutes reduced instruction set computer) es un tipo de microprocesador con las siguientes caracteriacutesticas fundamentalesbull Instrucciones de tamantildeo fijo y presentadas en un reducido nuacutemero de formatosbull Soacutelo las instrucciones de carga y almacenamiento acceden a la memoria de datosbull El objetivo de disentildear maacutequinas con esta arquitectura es posibilitar la segmentacioacuten y el
paralelismo en la ejecucioacuten de instrucciones y reducir los accesos a memoria
ARQUITECTURA RISC
CISC (complex instruction set computer) bull Los microprocesadores CISC tienen un conjunto de instrucciones que se caracteriza
por ser muy amplio y permitir operaciones complejas entre operandos situados en la memoria o en los registros internos en contraposicioacuten a la arquitectura RISC
bull Este tipo de arquitectura dificulta el paralelismo entre instrucciones por lo que en la actualidad la mayoriacutea de los sistemas CISC de alto rendimiento implementan un sistema que convierte dichas instrucciones complejas en varias instrucciones simples del tipo RISC llamadas generalmente microinstrucciones
bull Para realizar una sola instruccioacuten un chip CISC requiere de cuatro a diez ciclos de reloj
ARQUITECTURA CISC
MIPS ndash INSTRUCCIONES DE SALTOCONDICIONAL
bull bull Instrucciones de salto condicional (soacutelo dos)
bull ndash bne $s0 $s1 L1 branch to L1 if no equal
bull ndash beq $s0 $s1 L1 branch to L1 if equal
bull bull Pseudoinstrucciones de salto condicional
bull ndash slt (set si menor que) beq bne y $zero permiten las
bull condiciones restantes
bull blt $s1 $s2 etiqueta salta si menor que
bull slt $at $s1 $s2
bull bne $at $zero etiqueta
bull ndash El ensamblador expande las pseudoinstrucciones
bull bull $at registro utilizado por el programa ensamblador
EJEMPLO DE COMPILACIOacuteN DE UNA SENTENCIA DE SALTO CONDICIONAL
bull bull Coacutedigo fuente de C
bull If (i==j) h = i + j
bull h i y j en $s0 $s1 y $s2
bull bull Compilacioacuten en MIPS
bull bne $s1 $s2 etiqueta
bull add $s0 $s1 $s2
bull etiqueta hellip
LENGUAJE MAacuteQUINA ndash INSTRUCCIONESARITMEacuteTICO-LOacuteGICAS
bull bull El tamantildeo de las instrucciones es de 32 bits
bull bull Las instrucciones aritmeacutetico-loacutegicas son codificadas con el formato tipo-R
bull ndash add $rd $rs $rt
bull bull Significado de los campos
bull ndash op 6-bits coacutedigo de operacioacuten
bull ndash rs rt rd 5-bits registro source target destination
bull ndash shamt 5-bits nuacutemero de bits a desplazar (cuando aplicable)
bull ndash funct 6-bits coacutedigo de funcioacuten (extensioacuten del coacutedigo de operacioacuten)
bull op rs rt rd shamt funct Formato de instrucciones aritmeacuteticas
bull 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits Todas las instrucciones MIPS de 32 bits
bull 000000 01010 11111 00011 00000 100000 0x015f1820 add $3$10$31
LENGUAJE MAacuteQUINA ndash INSTRUCCIONESDE ACCESO A MEMORIA
bull bull Principio de disentildeo 3
bull ndash ldquoUn buen disentildeo necesita buenas soluciones de compromisordquo
bull bull Las instrucciones de load y store especifican dos registros y un
bull desplazamiento
bull ndash Formato tipo I (16 bits para el dato inmediato)
bull ndash lw $rt inmediato($rs) sw $rt inmediato($rs
bull ndash lh lhu lb lbu sh sb (load half half unsigned byte byte unsigned store half
bull byte)
bull op rs rt Direccioacuteninmediato Formato de instruciones de carga
bull 6 bits 5 bits 5 bits 16 bits Todas las instrucciones MIPS de 32 bits
bull 100011 00011 00101 0000000000100000 0x8c650020 lw $
TIPO DE OPERACIONES
Transferencia de datosbull Move (transferir) transfiere una palabra o un bloque desde un origen a un destinobull Store (memorizar) Transfiere una palabra desde el procesador a memoriabull Load (cargar o captar) transfiere una palabra desde memoria al procesadorbull Exchange (intercambiar) intercambia los contenidos del origen y el destinobull Clear (reiniciar o poner a 0) Transfiere una palabra de ceros al destinobull Set (poner a 1) transfiere una palabra de unos al destinobull Push (introducir en la pila ldquoapilarrdquo) Transfiere una palabra desde un origen a la cabecera de la pilabull Pop (extraer de la pila ldquodesapilarrdquo) Transfiere una palabra desde la cabecera de la pila a un destinoAritmeacuteticas bull Add (sumar) Calcula la suma de 2 operandosbull Substract (restar) Calcula la diferencia de dos operandosbull Multiply (multiplicar) Calcula el producto de dos operandosbull Divide (dividir) Calcula el cociente de dos operandosbull Absolute (valor absoluto) Sustituye el operando por su valor absolutobull Negate (opuesto) Cambia el signo del operandobull Increment (incrementar) suma 1 al operandobull Decrement (decremenatar) Resta 1 al operandoLoacutegicasbull AND (Producto loacutegico Y) Realiza la operacioacuten loacutegica Y (AND)bull OR (Suma loacutegica O) Realiza la operacioacuten loacutegica o (OR)bull NOT (Complemento) Realiza el complemento (NOT) bit a bit del dato
bull Exclusive-OR (OR-exclusiva) Realiza la operacioacuten loacutegica O-Exclusiva (XOR)bull Test (comprobar) Comprueba la condicioacuten especificada foja los indicadores (flags) en funcioacuten del
resultadobull Compare (comparar) Realiza la operacioacuten loacutegica o aritmeacutetica de dos o mas operandos fija los
indicadores (flags) en funcioacuten del resultadobull Set control variables (fijar variables de control) Instrucciones que fijan controles para proteccioacuten gestioacuten
de interrupciones control de temporizador etcbull Shift (desplazamiento) Desplaza el operando a la izquierda (derecha) introduciendo valores constantes
por el otro extremobull Rotate (rotar) Desplaza el operando a la izquierda (derecha) de forma ciacuteclicaControl de flujobull Jump (bifurcacioacuten o salto) Ruptura incondicional de flujo carga el PC con la direccioacuten especificada bull Jump condicional (salto condicional) Comprueba la condicioacuten especificada dependiendo de la condicioacuten
o carga del PC con la direccioacuten indicada o no hace nadabull Jump to Subrutina (llamada la subrutina) Guarda la informacioacuten de control del programa en una posicioacuten
conocida y salta a la direccioacuten indicadabull Return (retorno) Sustituye el contenido del PC y de otros registros por los de la posicioacuten conocidabull Execute (ejecutar) Capta el operando de la direccioacuten indicada y lo ejecuta como una instruccioacuten no
modifica el PCbull Skip (salto impliacutecito) Incrementa el PC de manera que salte la instruccioacuten siguientebull Skip conditional (salto impliacutecito condicional) Comprueba la condicioacuten indicada realiza el salto impliacutecito
o no hace nada dependiendo de la condicioacutenbull Halt (parar) Detiene la ejecucioacuten del programa
bull Wait (esperar) Detiene la ejecucioacuten del programa comprueba de forma repetitiva la condicioacuten especificada reanuda la ejecucioacuten cuando se satisface la condicioacuten
bull No operation (no operacioacuten) No se ejecuta operacioacuten alguna pero la ejecucioacuten del programa continuaENTRADASALIDAbull InPut (entrada) Transfiera datos desde un puerto o dispositivo de ES al destino (memoria principal o
registro del procesador)bull OutPut (salida) Transfiera datos desde el origen especificado a un puerto o dispositivo de ESbull Start IO (iniciar ES) Transfiere instrucciones al procesador de ES para iniciar operaciones de ESbull Test IO (comprobar ES) Transfiere informacioacuten de estado desde el sistema de ES al destino
especificadoCONVERSIONbull Traslate (traducir) Traduccioacuten de los valores de una seccioacuten de memoria basada en una tabla de
correspondenciabull Convert (convertir) Convierte el contenido de una palabra de un formato a otro (por ejemplo de decimal
empaquetado a binario)
ACCIONES DEL PROCESADOR PARA VARIOS TIPOS DE OPERADORES
TRANSFERENCIA DE DATOS Transfiere datos de una posicioacuten a otra si se implica la memoriabull Determina la direccioacuten de memoriabull Realiza la transformacioacuten de direcciones de memoria virtual a realbull Comprueba la cachebull Inicia la lecturaescritura ende memoriaARITMEacuteTICAbull Puede implicar transferencia de datos antes yo despueacutesbull Realiza la operacioacuten en la ALUbull Actualiza coacutedigos e indicadores de condicioacutenLOacuteGICA Lo mismo que en la aritmeacuteticaCONVERSION Similar a la aritmeacutetica y la loacutegica Puede implicar a loacutegica especial para realizar la conversioacutenCONTRO DEL FLUJO Actualiza el contador del programa En el caso de llamadas y retorno de subrutinas gestiona la transferencia y enlace de paraacutemetrosES bull Cursa una orden en el modulo de ESbull En el caso de ES asignada en memoria determina la direccioacuten de memoria correspondiente
MODOS DE DIRECCIONAMIENTObull InmediatoEn la instruccioacuten estaacute incluido directamente el operandoEn este modo el operando es especificado en la instruccioacuten misma En otras palabras una instruccioacuten de modo inmediato tiene un campo de operando en vez de un campo de direccioacuten El campo del operando contiene el operando actual que se debe utilizar en conjunto con la operacioacuten especificada en la instruccioacuten Las instrucciones de modo inmediato son uacutetiles para inicializar los registros en un valor constanteCuando el campo de direccioacuten especifica un registro del procesador la instruccioacuten se dice que estaacute en el modo de registro
bull DirectoEl campo de operando en la instruccioacuten contiene la direccioacuten en memoria donde se encuentra el operando En este modo la direccioacuten efectiva es igual a la parte de direccioacuten de la instruccioacuten El operando reside en la memoria y su direccioacuten es dada directamente por el campo de direccioacuten de la instruccioacuten En una instruccioacuten de tipo ramificacioacuten el campo de direccioacuten especifica la direccioacuten de la rama actualCon este tipo de direccionamiento la direccioacuten efectiva es contenida en la misma instruccioacuten tal como los valores de datos inmediatos que son contenidos en la instruccioacuten Un procesador de 16 bits suma la direccioacuten efectiva al contenido del segmento de datos previamente desplazado en 4 bits para producir la direccioacuten fiacutesica del operando
bull IndirectoEn este modo de direccionamiento no es necesario poner ninguna direccioacuten de forma expliacutecita ya que en el propio coacutedigo de operacioacuten se conoce la direccioacuten del (de los) operando(s) al (a los) que se desea acceder o con el (los) que se quiere operarUn ejemplo de este tipo de direccionamiento lo podemos encontrar en la arquitectura de acumulador (AC) donde siempre hay un paraacutemetro impliacutecito y este es el ACPara finalizar y dejar este modo de direccionamiento generalizado para las arquitecturas maacutes usuales remarcamos que tambieacuten podemos encontrarlo en la arquitectura con registros de propoacutesito general por ejemplo con oacuterdenes como set c que pone a 1 el registro c (acarreo)
bull De registroSirve para especificar operandos que estaacuten en registros
bull Indirecto mediante registrosEl campo de operando de la instruccioacuten contiene un identificador de registro en el que se encuentra la direccioacuten efectiva del operando En este modo el campo de la direccioacuten de la instruccioacuten da la direccioacuten en donde la direccioacuten efectiva se almacena en la memoria El control localiza la instruccioacuten de la memoria y utiliza su parte de direccioacuten para accesar la memoria de nuevo para leer una direccioacuten efectiva Unos pocos modos de direccionamiento requieren que el campo de direccioacuten de la instruccioacuten sea sumado al control de un registro especificado en el procesadorLa direccioacuten efectiva en este modo se obtiene del siguiente caacutelculoDir Efectiva = Dir de la parte de la instruccioacuten + Contenido del registro del procesador
bull De desplazamientoCombina el modo directo e indirecto mediante registros
bull De pilaSe utiliza cuando el operando estaacute en memoria y en la cabecera de la pilaEste direccionamiento se basa en las estructuras denominadas Pila(tipo LIFO) las cuales estaacuten marcados por el fondo de la pila y el puntero de pila (SP) El puntero de pila apunta a la uacuteltima posicioacuten ocupada Asiacute como puntero de direccionamiento usaremos el SP El desplazamiento maacutes el valor del SP nos daraacute la direccioacuten del objeto al que queramos hacer referencia En ocasiones si no existe C de desplazamiento solo se trabajara con la cima de la pila Este tipo de direccionamiento nos aporta flexibilidad pero por el contrario es mucho maacutes complejo que otros tipos estudiados maacutes arriba
ORGANIZACIOacuteN DEL PROCESADOR
Captar instrucciones el procesador lee una instruccioacuten de memoria (registro cache o memoria principal)Interpretar instruccioacuten la instruccioacuten se codifica para determinar queacute accioacuten es necesarioCaptar datos la ejecucioacuten de una instruccioacuten puede exigir leer datos de memoria o de un moacutedulo de ESProcesar datos la ejecucioacuten e una instruccioacuten puede exigir llevar a cabo alguna operacioacuten aritmeacutetica o loacutegica con los datosEscribir datos los resultados de una ejecucioacuten pueden exigir escribir datos en la memoria o en el moacutedulo de ESPara hacer estas cosas el procesador necesita almacenar instrucciones y datos temporalmente mientras una instruccioacuten esta ejecutaacutendose en otras palabras el procesador necesita una pequentildea memoria interna
ORGANIZACIOacuteN DE REGISTROS
Registros visibles al usuario son utilizados por el programador
Registros de control y estado son utilizados por la UC para controlar la operacioacuten de la CPU (no son visibles por el programador)
REGISTROS VISIBLES AL USUARIObull Pueden ser asignados a una variedad de funciones
bull cualquier registro de propoacutesito general puede contener el operando para cualquier coacutedigo de operacioacuten (verdadero propoacutesito)
bull pueden existir restricciones (ej Registros dedicados a operaciones especificas)
NUacuteMERO DE REGISTROSbull Afecta al tamantildeo de la instruccioacuten
bull Mayor Nordm de registros maacutes bits para especificarlos en la instruccioacuten
bull Pocos registros maacutes referencias a memoria
bull No oacuteptimo entre 8 y 32 reg Maacutes no hay gran mejora (aumenta tamantildeo de la instruccioacuten)
LONGITUD DE LOS REGISTROSbull De direcciones deben ser capaces de almacenar la direccioacuten maacutes grande
bull De datos deben estar habilitados para almacenar la mayoriacutea de los tipos de datos
bull Algunas maacutequinas permiten 2 registros contiguos utilizados como un solo registro para almacenar valores de doble longitud
BITS DE CONDICIOacuteN (BANDERAS)bull Bits establecidos por la CPU como resultado de operaciones
bull Pueden ser utilizados por las instrucciones de bifurcacioacuten condicional
bull Generalmente no son alterados por el programador
REGISTROS DE CONTROL Y ESTADObull Empleados para controlar la operacioacuten de la CPU En la mayoriacutea de las
maacutequinas no son visibles al usuario
bull Los 4 esenciales para la ejecucioacuten de
bull Contador de programa (PC)
bull Registro de instruccioacuten (IR)
bull Registro de direccioacuten de memoria (MAR)
bull Registro buffer de memoria (MBR)bull Los 4 reg recieacuten mencionados se emplean para el movimiento de datos
entre la CPU y memoria
bull Dentro de la CPU los datos se deben presentar a la ALU para procesamiento eacutesta puede acceder al MBR y a los reg visibles por el usuario Puede haber tambieacuten reg temporales adicionales para intercambiar datos con el MBR y demaacutes reg visibles
bull un ciclo de instruccioacuten incluye los siguientes sub ciclos
bull Capitacioacuten es la que lleva la siguiente instruccioacuten de la memoria al procesador
bull Ejecucioacuten interpreta el coacutedigo de operacioacuten y lleva a cabo la operacioacuten indicada
bull Interrupcioacuten si ocurre un problema guarda el estado del proceso actual y atiende la interrupcioacuten
CICLO DE INSTRUCCIOacuteN
CICLO INDIRECTObull Si se usa direccionamiento indirecto es necesario memoria adicional
bull La principal actividad es consiste en alternar las actividades de captacioacuten y ejecucioacuten de instrucciones
bull La instruccioacuten es captada pada determinar si incluye un direccionamiento indirecto
bull Una vez que la instruccioacuten es captada debe identificar sus campos de operando
bull Despueacutes que se ejecuta es un proceso similar para almacenar
bull El resultado en la memoria principal
FLUJO DE DATOS
bull La secuencia de eventos que tienen lugar durante el clico de instruccioacuten depende del procesador
bull El contador de programa contiene la direccioacuten de la siguiente instruccioacuten
bull La unidad de control solicita una lectura de memoria y el resultado se pone en un bus de datos y se lleva al registro de instruccioacuten
bull El ciclo de ejecucioacuten adopta muchas formas ya que se ya que depende del registro de instruccioacuten
bull Este ciclo puede aplicar transferencia de datos entre registros asiacute como lectura y escritura en Es
bull Mientras que el ciclo de interrupcioacuten es simple el contenido de contador de programa debe ser almacenado para que el procesador pueda continuar su actividad
La segmentacioacuten o pipeline es una teacutecnica de realizacioacuten de procesadores por la cual se solapa la ejecucioacuten de las instrucciones Hoy en diacutea es la teacutecnica clave para la realizacioacuten de CPU raacutepidas La idea baacutesica de la segmentacioacuten se puede extraer de una cadena de montaje de coches Los coches no se montan uno a uno si no que su construccioacuten se divide en fases sucesivas y el montaje del coche se realiza tal como este va avanzando por estas fases De esta forma cada fase estaacute trabajando simultaacuteneamente en la construccioacuten de un coche diferente De esta forma la construccioacuten de un coche cuesta el mismo tiempo que antes pero ahora la frecuencia con que salen los coches construidos es mucho mayor (tantos como fases tenga su construccioacuten) Cada uno de estas fases se denomina segmento o etapa de segmentacioacuten Al igual que en los coches la productividad de un computador va a depender del nuacutemero de instrucciones que acaben por unidad de tiempo y no de lo que le cueste a una instruccioacuten individual
SEGMENTACIOacuteN DE INSTRUCCIONES
RISC (del ingleacutes reduced instruction set computer) es un tipo de microprocesador con las siguientes caracteriacutesticas fundamentalesbull Instrucciones de tamantildeo fijo y presentadas en un reducido nuacutemero de formatosbull Soacutelo las instrucciones de carga y almacenamiento acceden a la memoria de datosbull El objetivo de disentildear maacutequinas con esta arquitectura es posibilitar la segmentacioacuten y el
paralelismo en la ejecucioacuten de instrucciones y reducir los accesos a memoria
ARQUITECTURA RISC
CISC (complex instruction set computer) bull Los microprocesadores CISC tienen un conjunto de instrucciones que se caracteriza
por ser muy amplio y permitir operaciones complejas entre operandos situados en la memoria o en los registros internos en contraposicioacuten a la arquitectura RISC
bull Este tipo de arquitectura dificulta el paralelismo entre instrucciones por lo que en la actualidad la mayoriacutea de los sistemas CISC de alto rendimiento implementan un sistema que convierte dichas instrucciones complejas en varias instrucciones simples del tipo RISC llamadas generalmente microinstrucciones
bull Para realizar una sola instruccioacuten un chip CISC requiere de cuatro a diez ciclos de reloj
ARQUITECTURA CISC
EJEMPLO DE COMPILACIOacuteN DE UNA SENTENCIA DE SALTO CONDICIONAL
bull bull Coacutedigo fuente de C
bull If (i==j) h = i + j
bull h i y j en $s0 $s1 y $s2
bull bull Compilacioacuten en MIPS
bull bne $s1 $s2 etiqueta
bull add $s0 $s1 $s2
bull etiqueta hellip
LENGUAJE MAacuteQUINA ndash INSTRUCCIONESARITMEacuteTICO-LOacuteGICAS
bull bull El tamantildeo de las instrucciones es de 32 bits
bull bull Las instrucciones aritmeacutetico-loacutegicas son codificadas con el formato tipo-R
bull ndash add $rd $rs $rt
bull bull Significado de los campos
bull ndash op 6-bits coacutedigo de operacioacuten
bull ndash rs rt rd 5-bits registro source target destination
bull ndash shamt 5-bits nuacutemero de bits a desplazar (cuando aplicable)
bull ndash funct 6-bits coacutedigo de funcioacuten (extensioacuten del coacutedigo de operacioacuten)
bull op rs rt rd shamt funct Formato de instrucciones aritmeacuteticas
bull 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits Todas las instrucciones MIPS de 32 bits
bull 000000 01010 11111 00011 00000 100000 0x015f1820 add $3$10$31
LENGUAJE MAacuteQUINA ndash INSTRUCCIONESDE ACCESO A MEMORIA
bull bull Principio de disentildeo 3
bull ndash ldquoUn buen disentildeo necesita buenas soluciones de compromisordquo
bull bull Las instrucciones de load y store especifican dos registros y un
bull desplazamiento
bull ndash Formato tipo I (16 bits para el dato inmediato)
bull ndash lw $rt inmediato($rs) sw $rt inmediato($rs
bull ndash lh lhu lb lbu sh sb (load half half unsigned byte byte unsigned store half
bull byte)
bull op rs rt Direccioacuteninmediato Formato de instruciones de carga
bull 6 bits 5 bits 5 bits 16 bits Todas las instrucciones MIPS de 32 bits
bull 100011 00011 00101 0000000000100000 0x8c650020 lw $
TIPO DE OPERACIONES
Transferencia de datosbull Move (transferir) transfiere una palabra o un bloque desde un origen a un destinobull Store (memorizar) Transfiere una palabra desde el procesador a memoriabull Load (cargar o captar) transfiere una palabra desde memoria al procesadorbull Exchange (intercambiar) intercambia los contenidos del origen y el destinobull Clear (reiniciar o poner a 0) Transfiere una palabra de ceros al destinobull Set (poner a 1) transfiere una palabra de unos al destinobull Push (introducir en la pila ldquoapilarrdquo) Transfiere una palabra desde un origen a la cabecera de la pilabull Pop (extraer de la pila ldquodesapilarrdquo) Transfiere una palabra desde la cabecera de la pila a un destinoAritmeacuteticas bull Add (sumar) Calcula la suma de 2 operandosbull Substract (restar) Calcula la diferencia de dos operandosbull Multiply (multiplicar) Calcula el producto de dos operandosbull Divide (dividir) Calcula el cociente de dos operandosbull Absolute (valor absoluto) Sustituye el operando por su valor absolutobull Negate (opuesto) Cambia el signo del operandobull Increment (incrementar) suma 1 al operandobull Decrement (decremenatar) Resta 1 al operandoLoacutegicasbull AND (Producto loacutegico Y) Realiza la operacioacuten loacutegica Y (AND)bull OR (Suma loacutegica O) Realiza la operacioacuten loacutegica o (OR)bull NOT (Complemento) Realiza el complemento (NOT) bit a bit del dato
bull Exclusive-OR (OR-exclusiva) Realiza la operacioacuten loacutegica O-Exclusiva (XOR)bull Test (comprobar) Comprueba la condicioacuten especificada foja los indicadores (flags) en funcioacuten del
resultadobull Compare (comparar) Realiza la operacioacuten loacutegica o aritmeacutetica de dos o mas operandos fija los
indicadores (flags) en funcioacuten del resultadobull Set control variables (fijar variables de control) Instrucciones que fijan controles para proteccioacuten gestioacuten
de interrupciones control de temporizador etcbull Shift (desplazamiento) Desplaza el operando a la izquierda (derecha) introduciendo valores constantes
por el otro extremobull Rotate (rotar) Desplaza el operando a la izquierda (derecha) de forma ciacuteclicaControl de flujobull Jump (bifurcacioacuten o salto) Ruptura incondicional de flujo carga el PC con la direccioacuten especificada bull Jump condicional (salto condicional) Comprueba la condicioacuten especificada dependiendo de la condicioacuten
o carga del PC con la direccioacuten indicada o no hace nadabull Jump to Subrutina (llamada la subrutina) Guarda la informacioacuten de control del programa en una posicioacuten
conocida y salta a la direccioacuten indicadabull Return (retorno) Sustituye el contenido del PC y de otros registros por los de la posicioacuten conocidabull Execute (ejecutar) Capta el operando de la direccioacuten indicada y lo ejecuta como una instruccioacuten no
modifica el PCbull Skip (salto impliacutecito) Incrementa el PC de manera que salte la instruccioacuten siguientebull Skip conditional (salto impliacutecito condicional) Comprueba la condicioacuten indicada realiza el salto impliacutecito
o no hace nada dependiendo de la condicioacutenbull Halt (parar) Detiene la ejecucioacuten del programa
bull Wait (esperar) Detiene la ejecucioacuten del programa comprueba de forma repetitiva la condicioacuten especificada reanuda la ejecucioacuten cuando se satisface la condicioacuten
bull No operation (no operacioacuten) No se ejecuta operacioacuten alguna pero la ejecucioacuten del programa continuaENTRADASALIDAbull InPut (entrada) Transfiera datos desde un puerto o dispositivo de ES al destino (memoria principal o
registro del procesador)bull OutPut (salida) Transfiera datos desde el origen especificado a un puerto o dispositivo de ESbull Start IO (iniciar ES) Transfiere instrucciones al procesador de ES para iniciar operaciones de ESbull Test IO (comprobar ES) Transfiere informacioacuten de estado desde el sistema de ES al destino
especificadoCONVERSIONbull Traslate (traducir) Traduccioacuten de los valores de una seccioacuten de memoria basada en una tabla de
correspondenciabull Convert (convertir) Convierte el contenido de una palabra de un formato a otro (por ejemplo de decimal
empaquetado a binario)
ACCIONES DEL PROCESADOR PARA VARIOS TIPOS DE OPERADORES
TRANSFERENCIA DE DATOS Transfiere datos de una posicioacuten a otra si se implica la memoriabull Determina la direccioacuten de memoriabull Realiza la transformacioacuten de direcciones de memoria virtual a realbull Comprueba la cachebull Inicia la lecturaescritura ende memoriaARITMEacuteTICAbull Puede implicar transferencia de datos antes yo despueacutesbull Realiza la operacioacuten en la ALUbull Actualiza coacutedigos e indicadores de condicioacutenLOacuteGICA Lo mismo que en la aritmeacuteticaCONVERSION Similar a la aritmeacutetica y la loacutegica Puede implicar a loacutegica especial para realizar la conversioacutenCONTRO DEL FLUJO Actualiza el contador del programa En el caso de llamadas y retorno de subrutinas gestiona la transferencia y enlace de paraacutemetrosES bull Cursa una orden en el modulo de ESbull En el caso de ES asignada en memoria determina la direccioacuten de memoria correspondiente
MODOS DE DIRECCIONAMIENTObull InmediatoEn la instruccioacuten estaacute incluido directamente el operandoEn este modo el operando es especificado en la instruccioacuten misma En otras palabras una instruccioacuten de modo inmediato tiene un campo de operando en vez de un campo de direccioacuten El campo del operando contiene el operando actual que se debe utilizar en conjunto con la operacioacuten especificada en la instruccioacuten Las instrucciones de modo inmediato son uacutetiles para inicializar los registros en un valor constanteCuando el campo de direccioacuten especifica un registro del procesador la instruccioacuten se dice que estaacute en el modo de registro
bull DirectoEl campo de operando en la instruccioacuten contiene la direccioacuten en memoria donde se encuentra el operando En este modo la direccioacuten efectiva es igual a la parte de direccioacuten de la instruccioacuten El operando reside en la memoria y su direccioacuten es dada directamente por el campo de direccioacuten de la instruccioacuten En una instruccioacuten de tipo ramificacioacuten el campo de direccioacuten especifica la direccioacuten de la rama actualCon este tipo de direccionamiento la direccioacuten efectiva es contenida en la misma instruccioacuten tal como los valores de datos inmediatos que son contenidos en la instruccioacuten Un procesador de 16 bits suma la direccioacuten efectiva al contenido del segmento de datos previamente desplazado en 4 bits para producir la direccioacuten fiacutesica del operando
bull IndirectoEn este modo de direccionamiento no es necesario poner ninguna direccioacuten de forma expliacutecita ya que en el propio coacutedigo de operacioacuten se conoce la direccioacuten del (de los) operando(s) al (a los) que se desea acceder o con el (los) que se quiere operarUn ejemplo de este tipo de direccionamiento lo podemos encontrar en la arquitectura de acumulador (AC) donde siempre hay un paraacutemetro impliacutecito y este es el ACPara finalizar y dejar este modo de direccionamiento generalizado para las arquitecturas maacutes usuales remarcamos que tambieacuten podemos encontrarlo en la arquitectura con registros de propoacutesito general por ejemplo con oacuterdenes como set c que pone a 1 el registro c (acarreo)
bull De registroSirve para especificar operandos que estaacuten en registros
bull Indirecto mediante registrosEl campo de operando de la instruccioacuten contiene un identificador de registro en el que se encuentra la direccioacuten efectiva del operando En este modo el campo de la direccioacuten de la instruccioacuten da la direccioacuten en donde la direccioacuten efectiva se almacena en la memoria El control localiza la instruccioacuten de la memoria y utiliza su parte de direccioacuten para accesar la memoria de nuevo para leer una direccioacuten efectiva Unos pocos modos de direccionamiento requieren que el campo de direccioacuten de la instruccioacuten sea sumado al control de un registro especificado en el procesadorLa direccioacuten efectiva en este modo se obtiene del siguiente caacutelculoDir Efectiva = Dir de la parte de la instruccioacuten + Contenido del registro del procesador
bull De desplazamientoCombina el modo directo e indirecto mediante registros
bull De pilaSe utiliza cuando el operando estaacute en memoria y en la cabecera de la pilaEste direccionamiento se basa en las estructuras denominadas Pila(tipo LIFO) las cuales estaacuten marcados por el fondo de la pila y el puntero de pila (SP) El puntero de pila apunta a la uacuteltima posicioacuten ocupada Asiacute como puntero de direccionamiento usaremos el SP El desplazamiento maacutes el valor del SP nos daraacute la direccioacuten del objeto al que queramos hacer referencia En ocasiones si no existe C de desplazamiento solo se trabajara con la cima de la pila Este tipo de direccionamiento nos aporta flexibilidad pero por el contrario es mucho maacutes complejo que otros tipos estudiados maacutes arriba
ORGANIZACIOacuteN DEL PROCESADOR
Captar instrucciones el procesador lee una instruccioacuten de memoria (registro cache o memoria principal)Interpretar instruccioacuten la instruccioacuten se codifica para determinar queacute accioacuten es necesarioCaptar datos la ejecucioacuten de una instruccioacuten puede exigir leer datos de memoria o de un moacutedulo de ESProcesar datos la ejecucioacuten e una instruccioacuten puede exigir llevar a cabo alguna operacioacuten aritmeacutetica o loacutegica con los datosEscribir datos los resultados de una ejecucioacuten pueden exigir escribir datos en la memoria o en el moacutedulo de ESPara hacer estas cosas el procesador necesita almacenar instrucciones y datos temporalmente mientras una instruccioacuten esta ejecutaacutendose en otras palabras el procesador necesita una pequentildea memoria interna
ORGANIZACIOacuteN DE REGISTROS
Registros visibles al usuario son utilizados por el programador
Registros de control y estado son utilizados por la UC para controlar la operacioacuten de la CPU (no son visibles por el programador)
REGISTROS VISIBLES AL USUARIObull Pueden ser asignados a una variedad de funciones
bull cualquier registro de propoacutesito general puede contener el operando para cualquier coacutedigo de operacioacuten (verdadero propoacutesito)
bull pueden existir restricciones (ej Registros dedicados a operaciones especificas)
NUacuteMERO DE REGISTROSbull Afecta al tamantildeo de la instruccioacuten
bull Mayor Nordm de registros maacutes bits para especificarlos en la instruccioacuten
bull Pocos registros maacutes referencias a memoria
bull No oacuteptimo entre 8 y 32 reg Maacutes no hay gran mejora (aumenta tamantildeo de la instruccioacuten)
LONGITUD DE LOS REGISTROSbull De direcciones deben ser capaces de almacenar la direccioacuten maacutes grande
bull De datos deben estar habilitados para almacenar la mayoriacutea de los tipos de datos
bull Algunas maacutequinas permiten 2 registros contiguos utilizados como un solo registro para almacenar valores de doble longitud
BITS DE CONDICIOacuteN (BANDERAS)bull Bits establecidos por la CPU como resultado de operaciones
bull Pueden ser utilizados por las instrucciones de bifurcacioacuten condicional
bull Generalmente no son alterados por el programador
REGISTROS DE CONTROL Y ESTADObull Empleados para controlar la operacioacuten de la CPU En la mayoriacutea de las
maacutequinas no son visibles al usuario
bull Los 4 esenciales para la ejecucioacuten de
bull Contador de programa (PC)
bull Registro de instruccioacuten (IR)
bull Registro de direccioacuten de memoria (MAR)
bull Registro buffer de memoria (MBR)bull Los 4 reg recieacuten mencionados se emplean para el movimiento de datos
entre la CPU y memoria
bull Dentro de la CPU los datos se deben presentar a la ALU para procesamiento eacutesta puede acceder al MBR y a los reg visibles por el usuario Puede haber tambieacuten reg temporales adicionales para intercambiar datos con el MBR y demaacutes reg visibles
bull un ciclo de instruccioacuten incluye los siguientes sub ciclos
bull Capitacioacuten es la que lleva la siguiente instruccioacuten de la memoria al procesador
bull Ejecucioacuten interpreta el coacutedigo de operacioacuten y lleva a cabo la operacioacuten indicada
bull Interrupcioacuten si ocurre un problema guarda el estado del proceso actual y atiende la interrupcioacuten
CICLO DE INSTRUCCIOacuteN
CICLO INDIRECTObull Si se usa direccionamiento indirecto es necesario memoria adicional
bull La principal actividad es consiste en alternar las actividades de captacioacuten y ejecucioacuten de instrucciones
bull La instruccioacuten es captada pada determinar si incluye un direccionamiento indirecto
bull Una vez que la instruccioacuten es captada debe identificar sus campos de operando
bull Despueacutes que se ejecuta es un proceso similar para almacenar
bull El resultado en la memoria principal
FLUJO DE DATOS
bull La secuencia de eventos que tienen lugar durante el clico de instruccioacuten depende del procesador
bull El contador de programa contiene la direccioacuten de la siguiente instruccioacuten
bull La unidad de control solicita una lectura de memoria y el resultado se pone en un bus de datos y se lleva al registro de instruccioacuten
bull El ciclo de ejecucioacuten adopta muchas formas ya que se ya que depende del registro de instruccioacuten
bull Este ciclo puede aplicar transferencia de datos entre registros asiacute como lectura y escritura en Es
bull Mientras que el ciclo de interrupcioacuten es simple el contenido de contador de programa debe ser almacenado para que el procesador pueda continuar su actividad
La segmentacioacuten o pipeline es una teacutecnica de realizacioacuten de procesadores por la cual se solapa la ejecucioacuten de las instrucciones Hoy en diacutea es la teacutecnica clave para la realizacioacuten de CPU raacutepidas La idea baacutesica de la segmentacioacuten se puede extraer de una cadena de montaje de coches Los coches no se montan uno a uno si no que su construccioacuten se divide en fases sucesivas y el montaje del coche se realiza tal como este va avanzando por estas fases De esta forma cada fase estaacute trabajando simultaacuteneamente en la construccioacuten de un coche diferente De esta forma la construccioacuten de un coche cuesta el mismo tiempo que antes pero ahora la frecuencia con que salen los coches construidos es mucho mayor (tantos como fases tenga su construccioacuten) Cada uno de estas fases se denomina segmento o etapa de segmentacioacuten Al igual que en los coches la productividad de un computador va a depender del nuacutemero de instrucciones que acaben por unidad de tiempo y no de lo que le cueste a una instruccioacuten individual
SEGMENTACIOacuteN DE INSTRUCCIONES
RISC (del ingleacutes reduced instruction set computer) es un tipo de microprocesador con las siguientes caracteriacutesticas fundamentalesbull Instrucciones de tamantildeo fijo y presentadas en un reducido nuacutemero de formatosbull Soacutelo las instrucciones de carga y almacenamiento acceden a la memoria de datosbull El objetivo de disentildear maacutequinas con esta arquitectura es posibilitar la segmentacioacuten y el
paralelismo en la ejecucioacuten de instrucciones y reducir los accesos a memoria
ARQUITECTURA RISC
CISC (complex instruction set computer) bull Los microprocesadores CISC tienen un conjunto de instrucciones que se caracteriza
por ser muy amplio y permitir operaciones complejas entre operandos situados en la memoria o en los registros internos en contraposicioacuten a la arquitectura RISC
bull Este tipo de arquitectura dificulta el paralelismo entre instrucciones por lo que en la actualidad la mayoriacutea de los sistemas CISC de alto rendimiento implementan un sistema que convierte dichas instrucciones complejas en varias instrucciones simples del tipo RISC llamadas generalmente microinstrucciones
bull Para realizar una sola instruccioacuten un chip CISC requiere de cuatro a diez ciclos de reloj
ARQUITECTURA CISC
LENGUAJE MAacuteQUINA ndash INSTRUCCIONESARITMEacuteTICO-LOacuteGICAS
bull bull El tamantildeo de las instrucciones es de 32 bits
bull bull Las instrucciones aritmeacutetico-loacutegicas son codificadas con el formato tipo-R
bull ndash add $rd $rs $rt
bull bull Significado de los campos
bull ndash op 6-bits coacutedigo de operacioacuten
bull ndash rs rt rd 5-bits registro source target destination
bull ndash shamt 5-bits nuacutemero de bits a desplazar (cuando aplicable)
bull ndash funct 6-bits coacutedigo de funcioacuten (extensioacuten del coacutedigo de operacioacuten)
bull op rs rt rd shamt funct Formato de instrucciones aritmeacuteticas
bull 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits Todas las instrucciones MIPS de 32 bits
bull 000000 01010 11111 00011 00000 100000 0x015f1820 add $3$10$31
LENGUAJE MAacuteQUINA ndash INSTRUCCIONESDE ACCESO A MEMORIA
bull bull Principio de disentildeo 3
bull ndash ldquoUn buen disentildeo necesita buenas soluciones de compromisordquo
bull bull Las instrucciones de load y store especifican dos registros y un
bull desplazamiento
bull ndash Formato tipo I (16 bits para el dato inmediato)
bull ndash lw $rt inmediato($rs) sw $rt inmediato($rs
bull ndash lh lhu lb lbu sh sb (load half half unsigned byte byte unsigned store half
bull byte)
bull op rs rt Direccioacuteninmediato Formato de instruciones de carga
bull 6 bits 5 bits 5 bits 16 bits Todas las instrucciones MIPS de 32 bits
bull 100011 00011 00101 0000000000100000 0x8c650020 lw $
TIPO DE OPERACIONES
Transferencia de datosbull Move (transferir) transfiere una palabra o un bloque desde un origen a un destinobull Store (memorizar) Transfiere una palabra desde el procesador a memoriabull Load (cargar o captar) transfiere una palabra desde memoria al procesadorbull Exchange (intercambiar) intercambia los contenidos del origen y el destinobull Clear (reiniciar o poner a 0) Transfiere una palabra de ceros al destinobull Set (poner a 1) transfiere una palabra de unos al destinobull Push (introducir en la pila ldquoapilarrdquo) Transfiere una palabra desde un origen a la cabecera de la pilabull Pop (extraer de la pila ldquodesapilarrdquo) Transfiere una palabra desde la cabecera de la pila a un destinoAritmeacuteticas bull Add (sumar) Calcula la suma de 2 operandosbull Substract (restar) Calcula la diferencia de dos operandosbull Multiply (multiplicar) Calcula el producto de dos operandosbull Divide (dividir) Calcula el cociente de dos operandosbull Absolute (valor absoluto) Sustituye el operando por su valor absolutobull Negate (opuesto) Cambia el signo del operandobull Increment (incrementar) suma 1 al operandobull Decrement (decremenatar) Resta 1 al operandoLoacutegicasbull AND (Producto loacutegico Y) Realiza la operacioacuten loacutegica Y (AND)bull OR (Suma loacutegica O) Realiza la operacioacuten loacutegica o (OR)bull NOT (Complemento) Realiza el complemento (NOT) bit a bit del dato
bull Exclusive-OR (OR-exclusiva) Realiza la operacioacuten loacutegica O-Exclusiva (XOR)bull Test (comprobar) Comprueba la condicioacuten especificada foja los indicadores (flags) en funcioacuten del
resultadobull Compare (comparar) Realiza la operacioacuten loacutegica o aritmeacutetica de dos o mas operandos fija los
indicadores (flags) en funcioacuten del resultadobull Set control variables (fijar variables de control) Instrucciones que fijan controles para proteccioacuten gestioacuten
de interrupciones control de temporizador etcbull Shift (desplazamiento) Desplaza el operando a la izquierda (derecha) introduciendo valores constantes
por el otro extremobull Rotate (rotar) Desplaza el operando a la izquierda (derecha) de forma ciacuteclicaControl de flujobull Jump (bifurcacioacuten o salto) Ruptura incondicional de flujo carga el PC con la direccioacuten especificada bull Jump condicional (salto condicional) Comprueba la condicioacuten especificada dependiendo de la condicioacuten
o carga del PC con la direccioacuten indicada o no hace nadabull Jump to Subrutina (llamada la subrutina) Guarda la informacioacuten de control del programa en una posicioacuten
conocida y salta a la direccioacuten indicadabull Return (retorno) Sustituye el contenido del PC y de otros registros por los de la posicioacuten conocidabull Execute (ejecutar) Capta el operando de la direccioacuten indicada y lo ejecuta como una instruccioacuten no
modifica el PCbull Skip (salto impliacutecito) Incrementa el PC de manera que salte la instruccioacuten siguientebull Skip conditional (salto impliacutecito condicional) Comprueba la condicioacuten indicada realiza el salto impliacutecito
o no hace nada dependiendo de la condicioacutenbull Halt (parar) Detiene la ejecucioacuten del programa
bull Wait (esperar) Detiene la ejecucioacuten del programa comprueba de forma repetitiva la condicioacuten especificada reanuda la ejecucioacuten cuando se satisface la condicioacuten
bull No operation (no operacioacuten) No se ejecuta operacioacuten alguna pero la ejecucioacuten del programa continuaENTRADASALIDAbull InPut (entrada) Transfiera datos desde un puerto o dispositivo de ES al destino (memoria principal o
registro del procesador)bull OutPut (salida) Transfiera datos desde el origen especificado a un puerto o dispositivo de ESbull Start IO (iniciar ES) Transfiere instrucciones al procesador de ES para iniciar operaciones de ESbull Test IO (comprobar ES) Transfiere informacioacuten de estado desde el sistema de ES al destino
especificadoCONVERSIONbull Traslate (traducir) Traduccioacuten de los valores de una seccioacuten de memoria basada en una tabla de
correspondenciabull Convert (convertir) Convierte el contenido de una palabra de un formato a otro (por ejemplo de decimal
empaquetado a binario)
ACCIONES DEL PROCESADOR PARA VARIOS TIPOS DE OPERADORES
TRANSFERENCIA DE DATOS Transfiere datos de una posicioacuten a otra si se implica la memoriabull Determina la direccioacuten de memoriabull Realiza la transformacioacuten de direcciones de memoria virtual a realbull Comprueba la cachebull Inicia la lecturaescritura ende memoriaARITMEacuteTICAbull Puede implicar transferencia de datos antes yo despueacutesbull Realiza la operacioacuten en la ALUbull Actualiza coacutedigos e indicadores de condicioacutenLOacuteGICA Lo mismo que en la aritmeacuteticaCONVERSION Similar a la aritmeacutetica y la loacutegica Puede implicar a loacutegica especial para realizar la conversioacutenCONTRO DEL FLUJO Actualiza el contador del programa En el caso de llamadas y retorno de subrutinas gestiona la transferencia y enlace de paraacutemetrosES bull Cursa una orden en el modulo de ESbull En el caso de ES asignada en memoria determina la direccioacuten de memoria correspondiente
MODOS DE DIRECCIONAMIENTObull InmediatoEn la instruccioacuten estaacute incluido directamente el operandoEn este modo el operando es especificado en la instruccioacuten misma En otras palabras una instruccioacuten de modo inmediato tiene un campo de operando en vez de un campo de direccioacuten El campo del operando contiene el operando actual que se debe utilizar en conjunto con la operacioacuten especificada en la instruccioacuten Las instrucciones de modo inmediato son uacutetiles para inicializar los registros en un valor constanteCuando el campo de direccioacuten especifica un registro del procesador la instruccioacuten se dice que estaacute en el modo de registro
bull DirectoEl campo de operando en la instruccioacuten contiene la direccioacuten en memoria donde se encuentra el operando En este modo la direccioacuten efectiva es igual a la parte de direccioacuten de la instruccioacuten El operando reside en la memoria y su direccioacuten es dada directamente por el campo de direccioacuten de la instruccioacuten En una instruccioacuten de tipo ramificacioacuten el campo de direccioacuten especifica la direccioacuten de la rama actualCon este tipo de direccionamiento la direccioacuten efectiva es contenida en la misma instruccioacuten tal como los valores de datos inmediatos que son contenidos en la instruccioacuten Un procesador de 16 bits suma la direccioacuten efectiva al contenido del segmento de datos previamente desplazado en 4 bits para producir la direccioacuten fiacutesica del operando
bull IndirectoEn este modo de direccionamiento no es necesario poner ninguna direccioacuten de forma expliacutecita ya que en el propio coacutedigo de operacioacuten se conoce la direccioacuten del (de los) operando(s) al (a los) que se desea acceder o con el (los) que se quiere operarUn ejemplo de este tipo de direccionamiento lo podemos encontrar en la arquitectura de acumulador (AC) donde siempre hay un paraacutemetro impliacutecito y este es el ACPara finalizar y dejar este modo de direccionamiento generalizado para las arquitecturas maacutes usuales remarcamos que tambieacuten podemos encontrarlo en la arquitectura con registros de propoacutesito general por ejemplo con oacuterdenes como set c que pone a 1 el registro c (acarreo)
bull De registroSirve para especificar operandos que estaacuten en registros
bull Indirecto mediante registrosEl campo de operando de la instruccioacuten contiene un identificador de registro en el que se encuentra la direccioacuten efectiva del operando En este modo el campo de la direccioacuten de la instruccioacuten da la direccioacuten en donde la direccioacuten efectiva se almacena en la memoria El control localiza la instruccioacuten de la memoria y utiliza su parte de direccioacuten para accesar la memoria de nuevo para leer una direccioacuten efectiva Unos pocos modos de direccionamiento requieren que el campo de direccioacuten de la instruccioacuten sea sumado al control de un registro especificado en el procesadorLa direccioacuten efectiva en este modo se obtiene del siguiente caacutelculoDir Efectiva = Dir de la parte de la instruccioacuten + Contenido del registro del procesador
bull De desplazamientoCombina el modo directo e indirecto mediante registros
bull De pilaSe utiliza cuando el operando estaacute en memoria y en la cabecera de la pilaEste direccionamiento se basa en las estructuras denominadas Pila(tipo LIFO) las cuales estaacuten marcados por el fondo de la pila y el puntero de pila (SP) El puntero de pila apunta a la uacuteltima posicioacuten ocupada Asiacute como puntero de direccionamiento usaremos el SP El desplazamiento maacutes el valor del SP nos daraacute la direccioacuten del objeto al que queramos hacer referencia En ocasiones si no existe C de desplazamiento solo se trabajara con la cima de la pila Este tipo de direccionamiento nos aporta flexibilidad pero por el contrario es mucho maacutes complejo que otros tipos estudiados maacutes arriba
ORGANIZACIOacuteN DEL PROCESADOR
Captar instrucciones el procesador lee una instruccioacuten de memoria (registro cache o memoria principal)Interpretar instruccioacuten la instruccioacuten se codifica para determinar queacute accioacuten es necesarioCaptar datos la ejecucioacuten de una instruccioacuten puede exigir leer datos de memoria o de un moacutedulo de ESProcesar datos la ejecucioacuten e una instruccioacuten puede exigir llevar a cabo alguna operacioacuten aritmeacutetica o loacutegica con los datosEscribir datos los resultados de una ejecucioacuten pueden exigir escribir datos en la memoria o en el moacutedulo de ESPara hacer estas cosas el procesador necesita almacenar instrucciones y datos temporalmente mientras una instruccioacuten esta ejecutaacutendose en otras palabras el procesador necesita una pequentildea memoria interna
ORGANIZACIOacuteN DE REGISTROS
Registros visibles al usuario son utilizados por el programador
Registros de control y estado son utilizados por la UC para controlar la operacioacuten de la CPU (no son visibles por el programador)
REGISTROS VISIBLES AL USUARIObull Pueden ser asignados a una variedad de funciones
bull cualquier registro de propoacutesito general puede contener el operando para cualquier coacutedigo de operacioacuten (verdadero propoacutesito)
bull pueden existir restricciones (ej Registros dedicados a operaciones especificas)
NUacuteMERO DE REGISTROSbull Afecta al tamantildeo de la instruccioacuten
bull Mayor Nordm de registros maacutes bits para especificarlos en la instruccioacuten
bull Pocos registros maacutes referencias a memoria
bull No oacuteptimo entre 8 y 32 reg Maacutes no hay gran mejora (aumenta tamantildeo de la instruccioacuten)
LONGITUD DE LOS REGISTROSbull De direcciones deben ser capaces de almacenar la direccioacuten maacutes grande
bull De datos deben estar habilitados para almacenar la mayoriacutea de los tipos de datos
bull Algunas maacutequinas permiten 2 registros contiguos utilizados como un solo registro para almacenar valores de doble longitud
BITS DE CONDICIOacuteN (BANDERAS)bull Bits establecidos por la CPU como resultado de operaciones
bull Pueden ser utilizados por las instrucciones de bifurcacioacuten condicional
bull Generalmente no son alterados por el programador
REGISTROS DE CONTROL Y ESTADObull Empleados para controlar la operacioacuten de la CPU En la mayoriacutea de las
maacutequinas no son visibles al usuario
bull Los 4 esenciales para la ejecucioacuten de
bull Contador de programa (PC)
bull Registro de instruccioacuten (IR)
bull Registro de direccioacuten de memoria (MAR)
bull Registro buffer de memoria (MBR)bull Los 4 reg recieacuten mencionados se emplean para el movimiento de datos
entre la CPU y memoria
bull Dentro de la CPU los datos se deben presentar a la ALU para procesamiento eacutesta puede acceder al MBR y a los reg visibles por el usuario Puede haber tambieacuten reg temporales adicionales para intercambiar datos con el MBR y demaacutes reg visibles
bull un ciclo de instruccioacuten incluye los siguientes sub ciclos
bull Capitacioacuten es la que lleva la siguiente instruccioacuten de la memoria al procesador
bull Ejecucioacuten interpreta el coacutedigo de operacioacuten y lleva a cabo la operacioacuten indicada
bull Interrupcioacuten si ocurre un problema guarda el estado del proceso actual y atiende la interrupcioacuten
CICLO DE INSTRUCCIOacuteN
CICLO INDIRECTObull Si se usa direccionamiento indirecto es necesario memoria adicional
bull La principal actividad es consiste en alternar las actividades de captacioacuten y ejecucioacuten de instrucciones
bull La instruccioacuten es captada pada determinar si incluye un direccionamiento indirecto
bull Una vez que la instruccioacuten es captada debe identificar sus campos de operando
bull Despueacutes que se ejecuta es un proceso similar para almacenar
bull El resultado en la memoria principal
FLUJO DE DATOS
bull La secuencia de eventos que tienen lugar durante el clico de instruccioacuten depende del procesador
bull El contador de programa contiene la direccioacuten de la siguiente instruccioacuten
bull La unidad de control solicita una lectura de memoria y el resultado se pone en un bus de datos y se lleva al registro de instruccioacuten
bull El ciclo de ejecucioacuten adopta muchas formas ya que se ya que depende del registro de instruccioacuten
bull Este ciclo puede aplicar transferencia de datos entre registros asiacute como lectura y escritura en Es
bull Mientras que el ciclo de interrupcioacuten es simple el contenido de contador de programa debe ser almacenado para que el procesador pueda continuar su actividad
La segmentacioacuten o pipeline es una teacutecnica de realizacioacuten de procesadores por la cual se solapa la ejecucioacuten de las instrucciones Hoy en diacutea es la teacutecnica clave para la realizacioacuten de CPU raacutepidas La idea baacutesica de la segmentacioacuten se puede extraer de una cadena de montaje de coches Los coches no se montan uno a uno si no que su construccioacuten se divide en fases sucesivas y el montaje del coche se realiza tal como este va avanzando por estas fases De esta forma cada fase estaacute trabajando simultaacuteneamente en la construccioacuten de un coche diferente De esta forma la construccioacuten de un coche cuesta el mismo tiempo que antes pero ahora la frecuencia con que salen los coches construidos es mucho mayor (tantos como fases tenga su construccioacuten) Cada uno de estas fases se denomina segmento o etapa de segmentacioacuten Al igual que en los coches la productividad de un computador va a depender del nuacutemero de instrucciones que acaben por unidad de tiempo y no de lo que le cueste a una instruccioacuten individual
SEGMENTACIOacuteN DE INSTRUCCIONES
RISC (del ingleacutes reduced instruction set computer) es un tipo de microprocesador con las siguientes caracteriacutesticas fundamentalesbull Instrucciones de tamantildeo fijo y presentadas en un reducido nuacutemero de formatosbull Soacutelo las instrucciones de carga y almacenamiento acceden a la memoria de datosbull El objetivo de disentildear maacutequinas con esta arquitectura es posibilitar la segmentacioacuten y el
paralelismo en la ejecucioacuten de instrucciones y reducir los accesos a memoria
ARQUITECTURA RISC
CISC (complex instruction set computer) bull Los microprocesadores CISC tienen un conjunto de instrucciones que se caracteriza
por ser muy amplio y permitir operaciones complejas entre operandos situados en la memoria o en los registros internos en contraposicioacuten a la arquitectura RISC
bull Este tipo de arquitectura dificulta el paralelismo entre instrucciones por lo que en la actualidad la mayoriacutea de los sistemas CISC de alto rendimiento implementan un sistema que convierte dichas instrucciones complejas en varias instrucciones simples del tipo RISC llamadas generalmente microinstrucciones
bull Para realizar una sola instruccioacuten un chip CISC requiere de cuatro a diez ciclos de reloj
ARQUITECTURA CISC
LENGUAJE MAacuteQUINA ndash INSTRUCCIONESDE ACCESO A MEMORIA
bull bull Principio de disentildeo 3
bull ndash ldquoUn buen disentildeo necesita buenas soluciones de compromisordquo
bull bull Las instrucciones de load y store especifican dos registros y un
bull desplazamiento
bull ndash Formato tipo I (16 bits para el dato inmediato)
bull ndash lw $rt inmediato($rs) sw $rt inmediato($rs
bull ndash lh lhu lb lbu sh sb (load half half unsigned byte byte unsigned store half
bull byte)
bull op rs rt Direccioacuteninmediato Formato de instruciones de carga
bull 6 bits 5 bits 5 bits 16 bits Todas las instrucciones MIPS de 32 bits
bull 100011 00011 00101 0000000000100000 0x8c650020 lw $
TIPO DE OPERACIONES
Transferencia de datosbull Move (transferir) transfiere una palabra o un bloque desde un origen a un destinobull Store (memorizar) Transfiere una palabra desde el procesador a memoriabull Load (cargar o captar) transfiere una palabra desde memoria al procesadorbull Exchange (intercambiar) intercambia los contenidos del origen y el destinobull Clear (reiniciar o poner a 0) Transfiere una palabra de ceros al destinobull Set (poner a 1) transfiere una palabra de unos al destinobull Push (introducir en la pila ldquoapilarrdquo) Transfiere una palabra desde un origen a la cabecera de la pilabull Pop (extraer de la pila ldquodesapilarrdquo) Transfiere una palabra desde la cabecera de la pila a un destinoAritmeacuteticas bull Add (sumar) Calcula la suma de 2 operandosbull Substract (restar) Calcula la diferencia de dos operandosbull Multiply (multiplicar) Calcula el producto de dos operandosbull Divide (dividir) Calcula el cociente de dos operandosbull Absolute (valor absoluto) Sustituye el operando por su valor absolutobull Negate (opuesto) Cambia el signo del operandobull Increment (incrementar) suma 1 al operandobull Decrement (decremenatar) Resta 1 al operandoLoacutegicasbull AND (Producto loacutegico Y) Realiza la operacioacuten loacutegica Y (AND)bull OR (Suma loacutegica O) Realiza la operacioacuten loacutegica o (OR)bull NOT (Complemento) Realiza el complemento (NOT) bit a bit del dato
bull Exclusive-OR (OR-exclusiva) Realiza la operacioacuten loacutegica O-Exclusiva (XOR)bull Test (comprobar) Comprueba la condicioacuten especificada foja los indicadores (flags) en funcioacuten del
resultadobull Compare (comparar) Realiza la operacioacuten loacutegica o aritmeacutetica de dos o mas operandos fija los
indicadores (flags) en funcioacuten del resultadobull Set control variables (fijar variables de control) Instrucciones que fijan controles para proteccioacuten gestioacuten
de interrupciones control de temporizador etcbull Shift (desplazamiento) Desplaza el operando a la izquierda (derecha) introduciendo valores constantes
por el otro extremobull Rotate (rotar) Desplaza el operando a la izquierda (derecha) de forma ciacuteclicaControl de flujobull Jump (bifurcacioacuten o salto) Ruptura incondicional de flujo carga el PC con la direccioacuten especificada bull Jump condicional (salto condicional) Comprueba la condicioacuten especificada dependiendo de la condicioacuten
o carga del PC con la direccioacuten indicada o no hace nadabull Jump to Subrutina (llamada la subrutina) Guarda la informacioacuten de control del programa en una posicioacuten
conocida y salta a la direccioacuten indicadabull Return (retorno) Sustituye el contenido del PC y de otros registros por los de la posicioacuten conocidabull Execute (ejecutar) Capta el operando de la direccioacuten indicada y lo ejecuta como una instruccioacuten no
modifica el PCbull Skip (salto impliacutecito) Incrementa el PC de manera que salte la instruccioacuten siguientebull Skip conditional (salto impliacutecito condicional) Comprueba la condicioacuten indicada realiza el salto impliacutecito
o no hace nada dependiendo de la condicioacutenbull Halt (parar) Detiene la ejecucioacuten del programa
bull Wait (esperar) Detiene la ejecucioacuten del programa comprueba de forma repetitiva la condicioacuten especificada reanuda la ejecucioacuten cuando se satisface la condicioacuten
bull No operation (no operacioacuten) No se ejecuta operacioacuten alguna pero la ejecucioacuten del programa continuaENTRADASALIDAbull InPut (entrada) Transfiera datos desde un puerto o dispositivo de ES al destino (memoria principal o
registro del procesador)bull OutPut (salida) Transfiera datos desde el origen especificado a un puerto o dispositivo de ESbull Start IO (iniciar ES) Transfiere instrucciones al procesador de ES para iniciar operaciones de ESbull Test IO (comprobar ES) Transfiere informacioacuten de estado desde el sistema de ES al destino
especificadoCONVERSIONbull Traslate (traducir) Traduccioacuten de los valores de una seccioacuten de memoria basada en una tabla de
correspondenciabull Convert (convertir) Convierte el contenido de una palabra de un formato a otro (por ejemplo de decimal
empaquetado a binario)
ACCIONES DEL PROCESADOR PARA VARIOS TIPOS DE OPERADORES
TRANSFERENCIA DE DATOS Transfiere datos de una posicioacuten a otra si se implica la memoriabull Determina la direccioacuten de memoriabull Realiza la transformacioacuten de direcciones de memoria virtual a realbull Comprueba la cachebull Inicia la lecturaescritura ende memoriaARITMEacuteTICAbull Puede implicar transferencia de datos antes yo despueacutesbull Realiza la operacioacuten en la ALUbull Actualiza coacutedigos e indicadores de condicioacutenLOacuteGICA Lo mismo que en la aritmeacuteticaCONVERSION Similar a la aritmeacutetica y la loacutegica Puede implicar a loacutegica especial para realizar la conversioacutenCONTRO DEL FLUJO Actualiza el contador del programa En el caso de llamadas y retorno de subrutinas gestiona la transferencia y enlace de paraacutemetrosES bull Cursa una orden en el modulo de ESbull En el caso de ES asignada en memoria determina la direccioacuten de memoria correspondiente
MODOS DE DIRECCIONAMIENTObull InmediatoEn la instruccioacuten estaacute incluido directamente el operandoEn este modo el operando es especificado en la instruccioacuten misma En otras palabras una instruccioacuten de modo inmediato tiene un campo de operando en vez de un campo de direccioacuten El campo del operando contiene el operando actual que se debe utilizar en conjunto con la operacioacuten especificada en la instruccioacuten Las instrucciones de modo inmediato son uacutetiles para inicializar los registros en un valor constanteCuando el campo de direccioacuten especifica un registro del procesador la instruccioacuten se dice que estaacute en el modo de registro
bull DirectoEl campo de operando en la instruccioacuten contiene la direccioacuten en memoria donde se encuentra el operando En este modo la direccioacuten efectiva es igual a la parte de direccioacuten de la instruccioacuten El operando reside en la memoria y su direccioacuten es dada directamente por el campo de direccioacuten de la instruccioacuten En una instruccioacuten de tipo ramificacioacuten el campo de direccioacuten especifica la direccioacuten de la rama actualCon este tipo de direccionamiento la direccioacuten efectiva es contenida en la misma instruccioacuten tal como los valores de datos inmediatos que son contenidos en la instruccioacuten Un procesador de 16 bits suma la direccioacuten efectiva al contenido del segmento de datos previamente desplazado en 4 bits para producir la direccioacuten fiacutesica del operando
bull IndirectoEn este modo de direccionamiento no es necesario poner ninguna direccioacuten de forma expliacutecita ya que en el propio coacutedigo de operacioacuten se conoce la direccioacuten del (de los) operando(s) al (a los) que se desea acceder o con el (los) que se quiere operarUn ejemplo de este tipo de direccionamiento lo podemos encontrar en la arquitectura de acumulador (AC) donde siempre hay un paraacutemetro impliacutecito y este es el ACPara finalizar y dejar este modo de direccionamiento generalizado para las arquitecturas maacutes usuales remarcamos que tambieacuten podemos encontrarlo en la arquitectura con registros de propoacutesito general por ejemplo con oacuterdenes como set c que pone a 1 el registro c (acarreo)
bull De registroSirve para especificar operandos que estaacuten en registros
bull Indirecto mediante registrosEl campo de operando de la instruccioacuten contiene un identificador de registro en el que se encuentra la direccioacuten efectiva del operando En este modo el campo de la direccioacuten de la instruccioacuten da la direccioacuten en donde la direccioacuten efectiva se almacena en la memoria El control localiza la instruccioacuten de la memoria y utiliza su parte de direccioacuten para accesar la memoria de nuevo para leer una direccioacuten efectiva Unos pocos modos de direccionamiento requieren que el campo de direccioacuten de la instruccioacuten sea sumado al control de un registro especificado en el procesadorLa direccioacuten efectiva en este modo se obtiene del siguiente caacutelculoDir Efectiva = Dir de la parte de la instruccioacuten + Contenido del registro del procesador
bull De desplazamientoCombina el modo directo e indirecto mediante registros
bull De pilaSe utiliza cuando el operando estaacute en memoria y en la cabecera de la pilaEste direccionamiento se basa en las estructuras denominadas Pila(tipo LIFO) las cuales estaacuten marcados por el fondo de la pila y el puntero de pila (SP) El puntero de pila apunta a la uacuteltima posicioacuten ocupada Asiacute como puntero de direccionamiento usaremos el SP El desplazamiento maacutes el valor del SP nos daraacute la direccioacuten del objeto al que queramos hacer referencia En ocasiones si no existe C de desplazamiento solo se trabajara con la cima de la pila Este tipo de direccionamiento nos aporta flexibilidad pero por el contrario es mucho maacutes complejo que otros tipos estudiados maacutes arriba
ORGANIZACIOacuteN DEL PROCESADOR
Captar instrucciones el procesador lee una instruccioacuten de memoria (registro cache o memoria principal)Interpretar instruccioacuten la instruccioacuten se codifica para determinar queacute accioacuten es necesarioCaptar datos la ejecucioacuten de una instruccioacuten puede exigir leer datos de memoria o de un moacutedulo de ESProcesar datos la ejecucioacuten e una instruccioacuten puede exigir llevar a cabo alguna operacioacuten aritmeacutetica o loacutegica con los datosEscribir datos los resultados de una ejecucioacuten pueden exigir escribir datos en la memoria o en el moacutedulo de ESPara hacer estas cosas el procesador necesita almacenar instrucciones y datos temporalmente mientras una instruccioacuten esta ejecutaacutendose en otras palabras el procesador necesita una pequentildea memoria interna
ORGANIZACIOacuteN DE REGISTROS
Registros visibles al usuario son utilizados por el programador
Registros de control y estado son utilizados por la UC para controlar la operacioacuten de la CPU (no son visibles por el programador)
REGISTROS VISIBLES AL USUARIObull Pueden ser asignados a una variedad de funciones
bull cualquier registro de propoacutesito general puede contener el operando para cualquier coacutedigo de operacioacuten (verdadero propoacutesito)
bull pueden existir restricciones (ej Registros dedicados a operaciones especificas)
NUacuteMERO DE REGISTROSbull Afecta al tamantildeo de la instruccioacuten
bull Mayor Nordm de registros maacutes bits para especificarlos en la instruccioacuten
bull Pocos registros maacutes referencias a memoria
bull No oacuteptimo entre 8 y 32 reg Maacutes no hay gran mejora (aumenta tamantildeo de la instruccioacuten)
LONGITUD DE LOS REGISTROSbull De direcciones deben ser capaces de almacenar la direccioacuten maacutes grande
bull De datos deben estar habilitados para almacenar la mayoriacutea de los tipos de datos
bull Algunas maacutequinas permiten 2 registros contiguos utilizados como un solo registro para almacenar valores de doble longitud
BITS DE CONDICIOacuteN (BANDERAS)bull Bits establecidos por la CPU como resultado de operaciones
bull Pueden ser utilizados por las instrucciones de bifurcacioacuten condicional
bull Generalmente no son alterados por el programador
REGISTROS DE CONTROL Y ESTADObull Empleados para controlar la operacioacuten de la CPU En la mayoriacutea de las
maacutequinas no son visibles al usuario
bull Los 4 esenciales para la ejecucioacuten de
bull Contador de programa (PC)
bull Registro de instruccioacuten (IR)
bull Registro de direccioacuten de memoria (MAR)
bull Registro buffer de memoria (MBR)bull Los 4 reg recieacuten mencionados se emplean para el movimiento de datos
entre la CPU y memoria
bull Dentro de la CPU los datos se deben presentar a la ALU para procesamiento eacutesta puede acceder al MBR y a los reg visibles por el usuario Puede haber tambieacuten reg temporales adicionales para intercambiar datos con el MBR y demaacutes reg visibles
bull un ciclo de instruccioacuten incluye los siguientes sub ciclos
bull Capitacioacuten es la que lleva la siguiente instruccioacuten de la memoria al procesador
bull Ejecucioacuten interpreta el coacutedigo de operacioacuten y lleva a cabo la operacioacuten indicada
bull Interrupcioacuten si ocurre un problema guarda el estado del proceso actual y atiende la interrupcioacuten
CICLO DE INSTRUCCIOacuteN
CICLO INDIRECTObull Si se usa direccionamiento indirecto es necesario memoria adicional
bull La principal actividad es consiste en alternar las actividades de captacioacuten y ejecucioacuten de instrucciones
bull La instruccioacuten es captada pada determinar si incluye un direccionamiento indirecto
bull Una vez que la instruccioacuten es captada debe identificar sus campos de operando
bull Despueacutes que se ejecuta es un proceso similar para almacenar
bull El resultado en la memoria principal
FLUJO DE DATOS
bull La secuencia de eventos que tienen lugar durante el clico de instruccioacuten depende del procesador
bull El contador de programa contiene la direccioacuten de la siguiente instruccioacuten
bull La unidad de control solicita una lectura de memoria y el resultado se pone en un bus de datos y se lleva al registro de instruccioacuten
bull El ciclo de ejecucioacuten adopta muchas formas ya que se ya que depende del registro de instruccioacuten
bull Este ciclo puede aplicar transferencia de datos entre registros asiacute como lectura y escritura en Es
bull Mientras que el ciclo de interrupcioacuten es simple el contenido de contador de programa debe ser almacenado para que el procesador pueda continuar su actividad
La segmentacioacuten o pipeline es una teacutecnica de realizacioacuten de procesadores por la cual se solapa la ejecucioacuten de las instrucciones Hoy en diacutea es la teacutecnica clave para la realizacioacuten de CPU raacutepidas La idea baacutesica de la segmentacioacuten se puede extraer de una cadena de montaje de coches Los coches no se montan uno a uno si no que su construccioacuten se divide en fases sucesivas y el montaje del coche se realiza tal como este va avanzando por estas fases De esta forma cada fase estaacute trabajando simultaacuteneamente en la construccioacuten de un coche diferente De esta forma la construccioacuten de un coche cuesta el mismo tiempo que antes pero ahora la frecuencia con que salen los coches construidos es mucho mayor (tantos como fases tenga su construccioacuten) Cada uno de estas fases se denomina segmento o etapa de segmentacioacuten Al igual que en los coches la productividad de un computador va a depender del nuacutemero de instrucciones que acaben por unidad de tiempo y no de lo que le cueste a una instruccioacuten individual
SEGMENTACIOacuteN DE INSTRUCCIONES
RISC (del ingleacutes reduced instruction set computer) es un tipo de microprocesador con las siguientes caracteriacutesticas fundamentalesbull Instrucciones de tamantildeo fijo y presentadas en un reducido nuacutemero de formatosbull Soacutelo las instrucciones de carga y almacenamiento acceden a la memoria de datosbull El objetivo de disentildear maacutequinas con esta arquitectura es posibilitar la segmentacioacuten y el
paralelismo en la ejecucioacuten de instrucciones y reducir los accesos a memoria
ARQUITECTURA RISC
CISC (complex instruction set computer) bull Los microprocesadores CISC tienen un conjunto de instrucciones que se caracteriza
por ser muy amplio y permitir operaciones complejas entre operandos situados en la memoria o en los registros internos en contraposicioacuten a la arquitectura RISC
bull Este tipo de arquitectura dificulta el paralelismo entre instrucciones por lo que en la actualidad la mayoriacutea de los sistemas CISC de alto rendimiento implementan un sistema que convierte dichas instrucciones complejas en varias instrucciones simples del tipo RISC llamadas generalmente microinstrucciones
bull Para realizar una sola instruccioacuten un chip CISC requiere de cuatro a diez ciclos de reloj
ARQUITECTURA CISC
TIPO DE OPERACIONES
Transferencia de datosbull Move (transferir) transfiere una palabra o un bloque desde un origen a un destinobull Store (memorizar) Transfiere una palabra desde el procesador a memoriabull Load (cargar o captar) transfiere una palabra desde memoria al procesadorbull Exchange (intercambiar) intercambia los contenidos del origen y el destinobull Clear (reiniciar o poner a 0) Transfiere una palabra de ceros al destinobull Set (poner a 1) transfiere una palabra de unos al destinobull Push (introducir en la pila ldquoapilarrdquo) Transfiere una palabra desde un origen a la cabecera de la pilabull Pop (extraer de la pila ldquodesapilarrdquo) Transfiere una palabra desde la cabecera de la pila a un destinoAritmeacuteticas bull Add (sumar) Calcula la suma de 2 operandosbull Substract (restar) Calcula la diferencia de dos operandosbull Multiply (multiplicar) Calcula el producto de dos operandosbull Divide (dividir) Calcula el cociente de dos operandosbull Absolute (valor absoluto) Sustituye el operando por su valor absolutobull Negate (opuesto) Cambia el signo del operandobull Increment (incrementar) suma 1 al operandobull Decrement (decremenatar) Resta 1 al operandoLoacutegicasbull AND (Producto loacutegico Y) Realiza la operacioacuten loacutegica Y (AND)bull OR (Suma loacutegica O) Realiza la operacioacuten loacutegica o (OR)bull NOT (Complemento) Realiza el complemento (NOT) bit a bit del dato
bull Exclusive-OR (OR-exclusiva) Realiza la operacioacuten loacutegica O-Exclusiva (XOR)bull Test (comprobar) Comprueba la condicioacuten especificada foja los indicadores (flags) en funcioacuten del
resultadobull Compare (comparar) Realiza la operacioacuten loacutegica o aritmeacutetica de dos o mas operandos fija los
indicadores (flags) en funcioacuten del resultadobull Set control variables (fijar variables de control) Instrucciones que fijan controles para proteccioacuten gestioacuten
de interrupciones control de temporizador etcbull Shift (desplazamiento) Desplaza el operando a la izquierda (derecha) introduciendo valores constantes
por el otro extremobull Rotate (rotar) Desplaza el operando a la izquierda (derecha) de forma ciacuteclicaControl de flujobull Jump (bifurcacioacuten o salto) Ruptura incondicional de flujo carga el PC con la direccioacuten especificada bull Jump condicional (salto condicional) Comprueba la condicioacuten especificada dependiendo de la condicioacuten
o carga del PC con la direccioacuten indicada o no hace nadabull Jump to Subrutina (llamada la subrutina) Guarda la informacioacuten de control del programa en una posicioacuten
conocida y salta a la direccioacuten indicadabull Return (retorno) Sustituye el contenido del PC y de otros registros por los de la posicioacuten conocidabull Execute (ejecutar) Capta el operando de la direccioacuten indicada y lo ejecuta como una instruccioacuten no
modifica el PCbull Skip (salto impliacutecito) Incrementa el PC de manera que salte la instruccioacuten siguientebull Skip conditional (salto impliacutecito condicional) Comprueba la condicioacuten indicada realiza el salto impliacutecito
o no hace nada dependiendo de la condicioacutenbull Halt (parar) Detiene la ejecucioacuten del programa
bull Wait (esperar) Detiene la ejecucioacuten del programa comprueba de forma repetitiva la condicioacuten especificada reanuda la ejecucioacuten cuando se satisface la condicioacuten
bull No operation (no operacioacuten) No se ejecuta operacioacuten alguna pero la ejecucioacuten del programa continuaENTRADASALIDAbull InPut (entrada) Transfiera datos desde un puerto o dispositivo de ES al destino (memoria principal o
registro del procesador)bull OutPut (salida) Transfiera datos desde el origen especificado a un puerto o dispositivo de ESbull Start IO (iniciar ES) Transfiere instrucciones al procesador de ES para iniciar operaciones de ESbull Test IO (comprobar ES) Transfiere informacioacuten de estado desde el sistema de ES al destino
especificadoCONVERSIONbull Traslate (traducir) Traduccioacuten de los valores de una seccioacuten de memoria basada en una tabla de
correspondenciabull Convert (convertir) Convierte el contenido de una palabra de un formato a otro (por ejemplo de decimal
empaquetado a binario)
ACCIONES DEL PROCESADOR PARA VARIOS TIPOS DE OPERADORES
TRANSFERENCIA DE DATOS Transfiere datos de una posicioacuten a otra si se implica la memoriabull Determina la direccioacuten de memoriabull Realiza la transformacioacuten de direcciones de memoria virtual a realbull Comprueba la cachebull Inicia la lecturaescritura ende memoriaARITMEacuteTICAbull Puede implicar transferencia de datos antes yo despueacutesbull Realiza la operacioacuten en la ALUbull Actualiza coacutedigos e indicadores de condicioacutenLOacuteGICA Lo mismo que en la aritmeacuteticaCONVERSION Similar a la aritmeacutetica y la loacutegica Puede implicar a loacutegica especial para realizar la conversioacutenCONTRO DEL FLUJO Actualiza el contador del programa En el caso de llamadas y retorno de subrutinas gestiona la transferencia y enlace de paraacutemetrosES bull Cursa una orden en el modulo de ESbull En el caso de ES asignada en memoria determina la direccioacuten de memoria correspondiente
MODOS DE DIRECCIONAMIENTObull InmediatoEn la instruccioacuten estaacute incluido directamente el operandoEn este modo el operando es especificado en la instruccioacuten misma En otras palabras una instruccioacuten de modo inmediato tiene un campo de operando en vez de un campo de direccioacuten El campo del operando contiene el operando actual que se debe utilizar en conjunto con la operacioacuten especificada en la instruccioacuten Las instrucciones de modo inmediato son uacutetiles para inicializar los registros en un valor constanteCuando el campo de direccioacuten especifica un registro del procesador la instruccioacuten se dice que estaacute en el modo de registro
bull DirectoEl campo de operando en la instruccioacuten contiene la direccioacuten en memoria donde se encuentra el operando En este modo la direccioacuten efectiva es igual a la parte de direccioacuten de la instruccioacuten El operando reside en la memoria y su direccioacuten es dada directamente por el campo de direccioacuten de la instruccioacuten En una instruccioacuten de tipo ramificacioacuten el campo de direccioacuten especifica la direccioacuten de la rama actualCon este tipo de direccionamiento la direccioacuten efectiva es contenida en la misma instruccioacuten tal como los valores de datos inmediatos que son contenidos en la instruccioacuten Un procesador de 16 bits suma la direccioacuten efectiva al contenido del segmento de datos previamente desplazado en 4 bits para producir la direccioacuten fiacutesica del operando
bull IndirectoEn este modo de direccionamiento no es necesario poner ninguna direccioacuten de forma expliacutecita ya que en el propio coacutedigo de operacioacuten se conoce la direccioacuten del (de los) operando(s) al (a los) que se desea acceder o con el (los) que se quiere operarUn ejemplo de este tipo de direccionamiento lo podemos encontrar en la arquitectura de acumulador (AC) donde siempre hay un paraacutemetro impliacutecito y este es el ACPara finalizar y dejar este modo de direccionamiento generalizado para las arquitecturas maacutes usuales remarcamos que tambieacuten podemos encontrarlo en la arquitectura con registros de propoacutesito general por ejemplo con oacuterdenes como set c que pone a 1 el registro c (acarreo)
bull De registroSirve para especificar operandos que estaacuten en registros
bull Indirecto mediante registrosEl campo de operando de la instruccioacuten contiene un identificador de registro en el que se encuentra la direccioacuten efectiva del operando En este modo el campo de la direccioacuten de la instruccioacuten da la direccioacuten en donde la direccioacuten efectiva se almacena en la memoria El control localiza la instruccioacuten de la memoria y utiliza su parte de direccioacuten para accesar la memoria de nuevo para leer una direccioacuten efectiva Unos pocos modos de direccionamiento requieren que el campo de direccioacuten de la instruccioacuten sea sumado al control de un registro especificado en el procesadorLa direccioacuten efectiva en este modo se obtiene del siguiente caacutelculoDir Efectiva = Dir de la parte de la instruccioacuten + Contenido del registro del procesador
bull De desplazamientoCombina el modo directo e indirecto mediante registros
bull De pilaSe utiliza cuando el operando estaacute en memoria y en la cabecera de la pilaEste direccionamiento se basa en las estructuras denominadas Pila(tipo LIFO) las cuales estaacuten marcados por el fondo de la pila y el puntero de pila (SP) El puntero de pila apunta a la uacuteltima posicioacuten ocupada Asiacute como puntero de direccionamiento usaremos el SP El desplazamiento maacutes el valor del SP nos daraacute la direccioacuten del objeto al que queramos hacer referencia En ocasiones si no existe C de desplazamiento solo se trabajara con la cima de la pila Este tipo de direccionamiento nos aporta flexibilidad pero por el contrario es mucho maacutes complejo que otros tipos estudiados maacutes arriba
ORGANIZACIOacuteN DEL PROCESADOR
Captar instrucciones el procesador lee una instruccioacuten de memoria (registro cache o memoria principal)Interpretar instruccioacuten la instruccioacuten se codifica para determinar queacute accioacuten es necesarioCaptar datos la ejecucioacuten de una instruccioacuten puede exigir leer datos de memoria o de un moacutedulo de ESProcesar datos la ejecucioacuten e una instruccioacuten puede exigir llevar a cabo alguna operacioacuten aritmeacutetica o loacutegica con los datosEscribir datos los resultados de una ejecucioacuten pueden exigir escribir datos en la memoria o en el moacutedulo de ESPara hacer estas cosas el procesador necesita almacenar instrucciones y datos temporalmente mientras una instruccioacuten esta ejecutaacutendose en otras palabras el procesador necesita una pequentildea memoria interna
ORGANIZACIOacuteN DE REGISTROS
Registros visibles al usuario son utilizados por el programador
Registros de control y estado son utilizados por la UC para controlar la operacioacuten de la CPU (no son visibles por el programador)
REGISTROS VISIBLES AL USUARIObull Pueden ser asignados a una variedad de funciones
bull cualquier registro de propoacutesito general puede contener el operando para cualquier coacutedigo de operacioacuten (verdadero propoacutesito)
bull pueden existir restricciones (ej Registros dedicados a operaciones especificas)
NUacuteMERO DE REGISTROSbull Afecta al tamantildeo de la instruccioacuten
bull Mayor Nordm de registros maacutes bits para especificarlos en la instruccioacuten
bull Pocos registros maacutes referencias a memoria
bull No oacuteptimo entre 8 y 32 reg Maacutes no hay gran mejora (aumenta tamantildeo de la instruccioacuten)
LONGITUD DE LOS REGISTROSbull De direcciones deben ser capaces de almacenar la direccioacuten maacutes grande
bull De datos deben estar habilitados para almacenar la mayoriacutea de los tipos de datos
bull Algunas maacutequinas permiten 2 registros contiguos utilizados como un solo registro para almacenar valores de doble longitud
BITS DE CONDICIOacuteN (BANDERAS)bull Bits establecidos por la CPU como resultado de operaciones
bull Pueden ser utilizados por las instrucciones de bifurcacioacuten condicional
bull Generalmente no son alterados por el programador
REGISTROS DE CONTROL Y ESTADObull Empleados para controlar la operacioacuten de la CPU En la mayoriacutea de las
maacutequinas no son visibles al usuario
bull Los 4 esenciales para la ejecucioacuten de
bull Contador de programa (PC)
bull Registro de instruccioacuten (IR)
bull Registro de direccioacuten de memoria (MAR)
bull Registro buffer de memoria (MBR)bull Los 4 reg recieacuten mencionados se emplean para el movimiento de datos
entre la CPU y memoria
bull Dentro de la CPU los datos se deben presentar a la ALU para procesamiento eacutesta puede acceder al MBR y a los reg visibles por el usuario Puede haber tambieacuten reg temporales adicionales para intercambiar datos con el MBR y demaacutes reg visibles
bull un ciclo de instruccioacuten incluye los siguientes sub ciclos
bull Capitacioacuten es la que lleva la siguiente instruccioacuten de la memoria al procesador
bull Ejecucioacuten interpreta el coacutedigo de operacioacuten y lleva a cabo la operacioacuten indicada
bull Interrupcioacuten si ocurre un problema guarda el estado del proceso actual y atiende la interrupcioacuten
CICLO DE INSTRUCCIOacuteN
CICLO INDIRECTObull Si se usa direccionamiento indirecto es necesario memoria adicional
bull La principal actividad es consiste en alternar las actividades de captacioacuten y ejecucioacuten de instrucciones
bull La instruccioacuten es captada pada determinar si incluye un direccionamiento indirecto
bull Una vez que la instruccioacuten es captada debe identificar sus campos de operando
bull Despueacutes que se ejecuta es un proceso similar para almacenar
bull El resultado en la memoria principal
FLUJO DE DATOS
bull La secuencia de eventos que tienen lugar durante el clico de instruccioacuten depende del procesador
bull El contador de programa contiene la direccioacuten de la siguiente instruccioacuten
bull La unidad de control solicita una lectura de memoria y el resultado se pone en un bus de datos y se lleva al registro de instruccioacuten
bull El ciclo de ejecucioacuten adopta muchas formas ya que se ya que depende del registro de instruccioacuten
bull Este ciclo puede aplicar transferencia de datos entre registros asiacute como lectura y escritura en Es
bull Mientras que el ciclo de interrupcioacuten es simple el contenido de contador de programa debe ser almacenado para que el procesador pueda continuar su actividad
La segmentacioacuten o pipeline es una teacutecnica de realizacioacuten de procesadores por la cual se solapa la ejecucioacuten de las instrucciones Hoy en diacutea es la teacutecnica clave para la realizacioacuten de CPU raacutepidas La idea baacutesica de la segmentacioacuten se puede extraer de una cadena de montaje de coches Los coches no se montan uno a uno si no que su construccioacuten se divide en fases sucesivas y el montaje del coche se realiza tal como este va avanzando por estas fases De esta forma cada fase estaacute trabajando simultaacuteneamente en la construccioacuten de un coche diferente De esta forma la construccioacuten de un coche cuesta el mismo tiempo que antes pero ahora la frecuencia con que salen los coches construidos es mucho mayor (tantos como fases tenga su construccioacuten) Cada uno de estas fases se denomina segmento o etapa de segmentacioacuten Al igual que en los coches la productividad de un computador va a depender del nuacutemero de instrucciones que acaben por unidad de tiempo y no de lo que le cueste a una instruccioacuten individual
SEGMENTACIOacuteN DE INSTRUCCIONES
RISC (del ingleacutes reduced instruction set computer) es un tipo de microprocesador con las siguientes caracteriacutesticas fundamentalesbull Instrucciones de tamantildeo fijo y presentadas en un reducido nuacutemero de formatosbull Soacutelo las instrucciones de carga y almacenamiento acceden a la memoria de datosbull El objetivo de disentildear maacutequinas con esta arquitectura es posibilitar la segmentacioacuten y el
paralelismo en la ejecucioacuten de instrucciones y reducir los accesos a memoria
ARQUITECTURA RISC
CISC (complex instruction set computer) bull Los microprocesadores CISC tienen un conjunto de instrucciones que se caracteriza
por ser muy amplio y permitir operaciones complejas entre operandos situados en la memoria o en los registros internos en contraposicioacuten a la arquitectura RISC
bull Este tipo de arquitectura dificulta el paralelismo entre instrucciones por lo que en la actualidad la mayoriacutea de los sistemas CISC de alto rendimiento implementan un sistema que convierte dichas instrucciones complejas en varias instrucciones simples del tipo RISC llamadas generalmente microinstrucciones
bull Para realizar una sola instruccioacuten un chip CISC requiere de cuatro a diez ciclos de reloj
ARQUITECTURA CISC
bull Exclusive-OR (OR-exclusiva) Realiza la operacioacuten loacutegica O-Exclusiva (XOR)bull Test (comprobar) Comprueba la condicioacuten especificada foja los indicadores (flags) en funcioacuten del
resultadobull Compare (comparar) Realiza la operacioacuten loacutegica o aritmeacutetica de dos o mas operandos fija los
indicadores (flags) en funcioacuten del resultadobull Set control variables (fijar variables de control) Instrucciones que fijan controles para proteccioacuten gestioacuten
de interrupciones control de temporizador etcbull Shift (desplazamiento) Desplaza el operando a la izquierda (derecha) introduciendo valores constantes
por el otro extremobull Rotate (rotar) Desplaza el operando a la izquierda (derecha) de forma ciacuteclicaControl de flujobull Jump (bifurcacioacuten o salto) Ruptura incondicional de flujo carga el PC con la direccioacuten especificada bull Jump condicional (salto condicional) Comprueba la condicioacuten especificada dependiendo de la condicioacuten
o carga del PC con la direccioacuten indicada o no hace nadabull Jump to Subrutina (llamada la subrutina) Guarda la informacioacuten de control del programa en una posicioacuten
conocida y salta a la direccioacuten indicadabull Return (retorno) Sustituye el contenido del PC y de otros registros por los de la posicioacuten conocidabull Execute (ejecutar) Capta el operando de la direccioacuten indicada y lo ejecuta como una instruccioacuten no
modifica el PCbull Skip (salto impliacutecito) Incrementa el PC de manera que salte la instruccioacuten siguientebull Skip conditional (salto impliacutecito condicional) Comprueba la condicioacuten indicada realiza el salto impliacutecito
o no hace nada dependiendo de la condicioacutenbull Halt (parar) Detiene la ejecucioacuten del programa
bull Wait (esperar) Detiene la ejecucioacuten del programa comprueba de forma repetitiva la condicioacuten especificada reanuda la ejecucioacuten cuando se satisface la condicioacuten
bull No operation (no operacioacuten) No se ejecuta operacioacuten alguna pero la ejecucioacuten del programa continuaENTRADASALIDAbull InPut (entrada) Transfiera datos desde un puerto o dispositivo de ES al destino (memoria principal o
registro del procesador)bull OutPut (salida) Transfiera datos desde el origen especificado a un puerto o dispositivo de ESbull Start IO (iniciar ES) Transfiere instrucciones al procesador de ES para iniciar operaciones de ESbull Test IO (comprobar ES) Transfiere informacioacuten de estado desde el sistema de ES al destino
especificadoCONVERSIONbull Traslate (traducir) Traduccioacuten de los valores de una seccioacuten de memoria basada en una tabla de
correspondenciabull Convert (convertir) Convierte el contenido de una palabra de un formato a otro (por ejemplo de decimal
empaquetado a binario)
ACCIONES DEL PROCESADOR PARA VARIOS TIPOS DE OPERADORES
TRANSFERENCIA DE DATOS Transfiere datos de una posicioacuten a otra si se implica la memoriabull Determina la direccioacuten de memoriabull Realiza la transformacioacuten de direcciones de memoria virtual a realbull Comprueba la cachebull Inicia la lecturaescritura ende memoriaARITMEacuteTICAbull Puede implicar transferencia de datos antes yo despueacutesbull Realiza la operacioacuten en la ALUbull Actualiza coacutedigos e indicadores de condicioacutenLOacuteGICA Lo mismo que en la aritmeacuteticaCONVERSION Similar a la aritmeacutetica y la loacutegica Puede implicar a loacutegica especial para realizar la conversioacutenCONTRO DEL FLUJO Actualiza el contador del programa En el caso de llamadas y retorno de subrutinas gestiona la transferencia y enlace de paraacutemetrosES bull Cursa una orden en el modulo de ESbull En el caso de ES asignada en memoria determina la direccioacuten de memoria correspondiente
MODOS DE DIRECCIONAMIENTObull InmediatoEn la instruccioacuten estaacute incluido directamente el operandoEn este modo el operando es especificado en la instruccioacuten misma En otras palabras una instruccioacuten de modo inmediato tiene un campo de operando en vez de un campo de direccioacuten El campo del operando contiene el operando actual que se debe utilizar en conjunto con la operacioacuten especificada en la instruccioacuten Las instrucciones de modo inmediato son uacutetiles para inicializar los registros en un valor constanteCuando el campo de direccioacuten especifica un registro del procesador la instruccioacuten se dice que estaacute en el modo de registro
bull DirectoEl campo de operando en la instruccioacuten contiene la direccioacuten en memoria donde se encuentra el operando En este modo la direccioacuten efectiva es igual a la parte de direccioacuten de la instruccioacuten El operando reside en la memoria y su direccioacuten es dada directamente por el campo de direccioacuten de la instruccioacuten En una instruccioacuten de tipo ramificacioacuten el campo de direccioacuten especifica la direccioacuten de la rama actualCon este tipo de direccionamiento la direccioacuten efectiva es contenida en la misma instruccioacuten tal como los valores de datos inmediatos que son contenidos en la instruccioacuten Un procesador de 16 bits suma la direccioacuten efectiva al contenido del segmento de datos previamente desplazado en 4 bits para producir la direccioacuten fiacutesica del operando
bull IndirectoEn este modo de direccionamiento no es necesario poner ninguna direccioacuten de forma expliacutecita ya que en el propio coacutedigo de operacioacuten se conoce la direccioacuten del (de los) operando(s) al (a los) que se desea acceder o con el (los) que se quiere operarUn ejemplo de este tipo de direccionamiento lo podemos encontrar en la arquitectura de acumulador (AC) donde siempre hay un paraacutemetro impliacutecito y este es el ACPara finalizar y dejar este modo de direccionamiento generalizado para las arquitecturas maacutes usuales remarcamos que tambieacuten podemos encontrarlo en la arquitectura con registros de propoacutesito general por ejemplo con oacuterdenes como set c que pone a 1 el registro c (acarreo)
bull De registroSirve para especificar operandos que estaacuten en registros
bull Indirecto mediante registrosEl campo de operando de la instruccioacuten contiene un identificador de registro en el que se encuentra la direccioacuten efectiva del operando En este modo el campo de la direccioacuten de la instruccioacuten da la direccioacuten en donde la direccioacuten efectiva se almacena en la memoria El control localiza la instruccioacuten de la memoria y utiliza su parte de direccioacuten para accesar la memoria de nuevo para leer una direccioacuten efectiva Unos pocos modos de direccionamiento requieren que el campo de direccioacuten de la instruccioacuten sea sumado al control de un registro especificado en el procesadorLa direccioacuten efectiva en este modo se obtiene del siguiente caacutelculoDir Efectiva = Dir de la parte de la instruccioacuten + Contenido del registro del procesador
bull De desplazamientoCombina el modo directo e indirecto mediante registros
bull De pilaSe utiliza cuando el operando estaacute en memoria y en la cabecera de la pilaEste direccionamiento se basa en las estructuras denominadas Pila(tipo LIFO) las cuales estaacuten marcados por el fondo de la pila y el puntero de pila (SP) El puntero de pila apunta a la uacuteltima posicioacuten ocupada Asiacute como puntero de direccionamiento usaremos el SP El desplazamiento maacutes el valor del SP nos daraacute la direccioacuten del objeto al que queramos hacer referencia En ocasiones si no existe C de desplazamiento solo se trabajara con la cima de la pila Este tipo de direccionamiento nos aporta flexibilidad pero por el contrario es mucho maacutes complejo que otros tipos estudiados maacutes arriba
ORGANIZACIOacuteN DEL PROCESADOR
Captar instrucciones el procesador lee una instruccioacuten de memoria (registro cache o memoria principal)Interpretar instruccioacuten la instruccioacuten se codifica para determinar queacute accioacuten es necesarioCaptar datos la ejecucioacuten de una instruccioacuten puede exigir leer datos de memoria o de un moacutedulo de ESProcesar datos la ejecucioacuten e una instruccioacuten puede exigir llevar a cabo alguna operacioacuten aritmeacutetica o loacutegica con los datosEscribir datos los resultados de una ejecucioacuten pueden exigir escribir datos en la memoria o en el moacutedulo de ESPara hacer estas cosas el procesador necesita almacenar instrucciones y datos temporalmente mientras una instruccioacuten esta ejecutaacutendose en otras palabras el procesador necesita una pequentildea memoria interna
ORGANIZACIOacuteN DE REGISTROS
Registros visibles al usuario son utilizados por el programador
Registros de control y estado son utilizados por la UC para controlar la operacioacuten de la CPU (no son visibles por el programador)
REGISTROS VISIBLES AL USUARIObull Pueden ser asignados a una variedad de funciones
bull cualquier registro de propoacutesito general puede contener el operando para cualquier coacutedigo de operacioacuten (verdadero propoacutesito)
bull pueden existir restricciones (ej Registros dedicados a operaciones especificas)
NUacuteMERO DE REGISTROSbull Afecta al tamantildeo de la instruccioacuten
bull Mayor Nordm de registros maacutes bits para especificarlos en la instruccioacuten
bull Pocos registros maacutes referencias a memoria
bull No oacuteptimo entre 8 y 32 reg Maacutes no hay gran mejora (aumenta tamantildeo de la instruccioacuten)
LONGITUD DE LOS REGISTROSbull De direcciones deben ser capaces de almacenar la direccioacuten maacutes grande
bull De datos deben estar habilitados para almacenar la mayoriacutea de los tipos de datos
bull Algunas maacutequinas permiten 2 registros contiguos utilizados como un solo registro para almacenar valores de doble longitud
BITS DE CONDICIOacuteN (BANDERAS)bull Bits establecidos por la CPU como resultado de operaciones
bull Pueden ser utilizados por las instrucciones de bifurcacioacuten condicional
bull Generalmente no son alterados por el programador
REGISTROS DE CONTROL Y ESTADObull Empleados para controlar la operacioacuten de la CPU En la mayoriacutea de las
maacutequinas no son visibles al usuario
bull Los 4 esenciales para la ejecucioacuten de
bull Contador de programa (PC)
bull Registro de instruccioacuten (IR)
bull Registro de direccioacuten de memoria (MAR)
bull Registro buffer de memoria (MBR)bull Los 4 reg recieacuten mencionados se emplean para el movimiento de datos
entre la CPU y memoria
bull Dentro de la CPU los datos se deben presentar a la ALU para procesamiento eacutesta puede acceder al MBR y a los reg visibles por el usuario Puede haber tambieacuten reg temporales adicionales para intercambiar datos con el MBR y demaacutes reg visibles
bull un ciclo de instruccioacuten incluye los siguientes sub ciclos
bull Capitacioacuten es la que lleva la siguiente instruccioacuten de la memoria al procesador
bull Ejecucioacuten interpreta el coacutedigo de operacioacuten y lleva a cabo la operacioacuten indicada
bull Interrupcioacuten si ocurre un problema guarda el estado del proceso actual y atiende la interrupcioacuten
CICLO DE INSTRUCCIOacuteN
CICLO INDIRECTObull Si se usa direccionamiento indirecto es necesario memoria adicional
bull La principal actividad es consiste en alternar las actividades de captacioacuten y ejecucioacuten de instrucciones
bull La instruccioacuten es captada pada determinar si incluye un direccionamiento indirecto
bull Una vez que la instruccioacuten es captada debe identificar sus campos de operando
bull Despueacutes que se ejecuta es un proceso similar para almacenar
bull El resultado en la memoria principal
FLUJO DE DATOS
bull La secuencia de eventos que tienen lugar durante el clico de instruccioacuten depende del procesador
bull El contador de programa contiene la direccioacuten de la siguiente instruccioacuten
bull La unidad de control solicita una lectura de memoria y el resultado se pone en un bus de datos y se lleva al registro de instruccioacuten
bull El ciclo de ejecucioacuten adopta muchas formas ya que se ya que depende del registro de instruccioacuten
bull Este ciclo puede aplicar transferencia de datos entre registros asiacute como lectura y escritura en Es
bull Mientras que el ciclo de interrupcioacuten es simple el contenido de contador de programa debe ser almacenado para que el procesador pueda continuar su actividad
La segmentacioacuten o pipeline es una teacutecnica de realizacioacuten de procesadores por la cual se solapa la ejecucioacuten de las instrucciones Hoy en diacutea es la teacutecnica clave para la realizacioacuten de CPU raacutepidas La idea baacutesica de la segmentacioacuten se puede extraer de una cadena de montaje de coches Los coches no se montan uno a uno si no que su construccioacuten se divide en fases sucesivas y el montaje del coche se realiza tal como este va avanzando por estas fases De esta forma cada fase estaacute trabajando simultaacuteneamente en la construccioacuten de un coche diferente De esta forma la construccioacuten de un coche cuesta el mismo tiempo que antes pero ahora la frecuencia con que salen los coches construidos es mucho mayor (tantos como fases tenga su construccioacuten) Cada uno de estas fases se denomina segmento o etapa de segmentacioacuten Al igual que en los coches la productividad de un computador va a depender del nuacutemero de instrucciones que acaben por unidad de tiempo y no de lo que le cueste a una instruccioacuten individual
SEGMENTACIOacuteN DE INSTRUCCIONES
RISC (del ingleacutes reduced instruction set computer) es un tipo de microprocesador con las siguientes caracteriacutesticas fundamentalesbull Instrucciones de tamantildeo fijo y presentadas en un reducido nuacutemero de formatosbull Soacutelo las instrucciones de carga y almacenamiento acceden a la memoria de datosbull El objetivo de disentildear maacutequinas con esta arquitectura es posibilitar la segmentacioacuten y el
paralelismo en la ejecucioacuten de instrucciones y reducir los accesos a memoria
ARQUITECTURA RISC
CISC (complex instruction set computer) bull Los microprocesadores CISC tienen un conjunto de instrucciones que se caracteriza
por ser muy amplio y permitir operaciones complejas entre operandos situados en la memoria o en los registros internos en contraposicioacuten a la arquitectura RISC
bull Este tipo de arquitectura dificulta el paralelismo entre instrucciones por lo que en la actualidad la mayoriacutea de los sistemas CISC de alto rendimiento implementan un sistema que convierte dichas instrucciones complejas en varias instrucciones simples del tipo RISC llamadas generalmente microinstrucciones
bull Para realizar una sola instruccioacuten un chip CISC requiere de cuatro a diez ciclos de reloj
ARQUITECTURA CISC
bull Wait (esperar) Detiene la ejecucioacuten del programa comprueba de forma repetitiva la condicioacuten especificada reanuda la ejecucioacuten cuando se satisface la condicioacuten
bull No operation (no operacioacuten) No se ejecuta operacioacuten alguna pero la ejecucioacuten del programa continuaENTRADASALIDAbull InPut (entrada) Transfiera datos desde un puerto o dispositivo de ES al destino (memoria principal o
registro del procesador)bull OutPut (salida) Transfiera datos desde el origen especificado a un puerto o dispositivo de ESbull Start IO (iniciar ES) Transfiere instrucciones al procesador de ES para iniciar operaciones de ESbull Test IO (comprobar ES) Transfiere informacioacuten de estado desde el sistema de ES al destino
especificadoCONVERSIONbull Traslate (traducir) Traduccioacuten de los valores de una seccioacuten de memoria basada en una tabla de
correspondenciabull Convert (convertir) Convierte el contenido de una palabra de un formato a otro (por ejemplo de decimal
empaquetado a binario)
ACCIONES DEL PROCESADOR PARA VARIOS TIPOS DE OPERADORES
TRANSFERENCIA DE DATOS Transfiere datos de una posicioacuten a otra si se implica la memoriabull Determina la direccioacuten de memoriabull Realiza la transformacioacuten de direcciones de memoria virtual a realbull Comprueba la cachebull Inicia la lecturaescritura ende memoriaARITMEacuteTICAbull Puede implicar transferencia de datos antes yo despueacutesbull Realiza la operacioacuten en la ALUbull Actualiza coacutedigos e indicadores de condicioacutenLOacuteGICA Lo mismo que en la aritmeacuteticaCONVERSION Similar a la aritmeacutetica y la loacutegica Puede implicar a loacutegica especial para realizar la conversioacutenCONTRO DEL FLUJO Actualiza el contador del programa En el caso de llamadas y retorno de subrutinas gestiona la transferencia y enlace de paraacutemetrosES bull Cursa una orden en el modulo de ESbull En el caso de ES asignada en memoria determina la direccioacuten de memoria correspondiente
MODOS DE DIRECCIONAMIENTObull InmediatoEn la instruccioacuten estaacute incluido directamente el operandoEn este modo el operando es especificado en la instruccioacuten misma En otras palabras una instruccioacuten de modo inmediato tiene un campo de operando en vez de un campo de direccioacuten El campo del operando contiene el operando actual que se debe utilizar en conjunto con la operacioacuten especificada en la instruccioacuten Las instrucciones de modo inmediato son uacutetiles para inicializar los registros en un valor constanteCuando el campo de direccioacuten especifica un registro del procesador la instruccioacuten se dice que estaacute en el modo de registro
bull DirectoEl campo de operando en la instruccioacuten contiene la direccioacuten en memoria donde se encuentra el operando En este modo la direccioacuten efectiva es igual a la parte de direccioacuten de la instruccioacuten El operando reside en la memoria y su direccioacuten es dada directamente por el campo de direccioacuten de la instruccioacuten En una instruccioacuten de tipo ramificacioacuten el campo de direccioacuten especifica la direccioacuten de la rama actualCon este tipo de direccionamiento la direccioacuten efectiva es contenida en la misma instruccioacuten tal como los valores de datos inmediatos que son contenidos en la instruccioacuten Un procesador de 16 bits suma la direccioacuten efectiva al contenido del segmento de datos previamente desplazado en 4 bits para producir la direccioacuten fiacutesica del operando
bull IndirectoEn este modo de direccionamiento no es necesario poner ninguna direccioacuten de forma expliacutecita ya que en el propio coacutedigo de operacioacuten se conoce la direccioacuten del (de los) operando(s) al (a los) que se desea acceder o con el (los) que se quiere operarUn ejemplo de este tipo de direccionamiento lo podemos encontrar en la arquitectura de acumulador (AC) donde siempre hay un paraacutemetro impliacutecito y este es el ACPara finalizar y dejar este modo de direccionamiento generalizado para las arquitecturas maacutes usuales remarcamos que tambieacuten podemos encontrarlo en la arquitectura con registros de propoacutesito general por ejemplo con oacuterdenes como set c que pone a 1 el registro c (acarreo)
bull De registroSirve para especificar operandos que estaacuten en registros
bull Indirecto mediante registrosEl campo de operando de la instruccioacuten contiene un identificador de registro en el que se encuentra la direccioacuten efectiva del operando En este modo el campo de la direccioacuten de la instruccioacuten da la direccioacuten en donde la direccioacuten efectiva se almacena en la memoria El control localiza la instruccioacuten de la memoria y utiliza su parte de direccioacuten para accesar la memoria de nuevo para leer una direccioacuten efectiva Unos pocos modos de direccionamiento requieren que el campo de direccioacuten de la instruccioacuten sea sumado al control de un registro especificado en el procesadorLa direccioacuten efectiva en este modo se obtiene del siguiente caacutelculoDir Efectiva = Dir de la parte de la instruccioacuten + Contenido del registro del procesador
bull De desplazamientoCombina el modo directo e indirecto mediante registros
bull De pilaSe utiliza cuando el operando estaacute en memoria y en la cabecera de la pilaEste direccionamiento se basa en las estructuras denominadas Pila(tipo LIFO) las cuales estaacuten marcados por el fondo de la pila y el puntero de pila (SP) El puntero de pila apunta a la uacuteltima posicioacuten ocupada Asiacute como puntero de direccionamiento usaremos el SP El desplazamiento maacutes el valor del SP nos daraacute la direccioacuten del objeto al que queramos hacer referencia En ocasiones si no existe C de desplazamiento solo se trabajara con la cima de la pila Este tipo de direccionamiento nos aporta flexibilidad pero por el contrario es mucho maacutes complejo que otros tipos estudiados maacutes arriba
ORGANIZACIOacuteN DEL PROCESADOR
Captar instrucciones el procesador lee una instruccioacuten de memoria (registro cache o memoria principal)Interpretar instruccioacuten la instruccioacuten se codifica para determinar queacute accioacuten es necesarioCaptar datos la ejecucioacuten de una instruccioacuten puede exigir leer datos de memoria o de un moacutedulo de ESProcesar datos la ejecucioacuten e una instruccioacuten puede exigir llevar a cabo alguna operacioacuten aritmeacutetica o loacutegica con los datosEscribir datos los resultados de una ejecucioacuten pueden exigir escribir datos en la memoria o en el moacutedulo de ESPara hacer estas cosas el procesador necesita almacenar instrucciones y datos temporalmente mientras una instruccioacuten esta ejecutaacutendose en otras palabras el procesador necesita una pequentildea memoria interna
ORGANIZACIOacuteN DE REGISTROS
Registros visibles al usuario son utilizados por el programador
Registros de control y estado son utilizados por la UC para controlar la operacioacuten de la CPU (no son visibles por el programador)
REGISTROS VISIBLES AL USUARIObull Pueden ser asignados a una variedad de funciones
bull cualquier registro de propoacutesito general puede contener el operando para cualquier coacutedigo de operacioacuten (verdadero propoacutesito)
bull pueden existir restricciones (ej Registros dedicados a operaciones especificas)
NUacuteMERO DE REGISTROSbull Afecta al tamantildeo de la instruccioacuten
bull Mayor Nordm de registros maacutes bits para especificarlos en la instruccioacuten
bull Pocos registros maacutes referencias a memoria
bull No oacuteptimo entre 8 y 32 reg Maacutes no hay gran mejora (aumenta tamantildeo de la instruccioacuten)
LONGITUD DE LOS REGISTROSbull De direcciones deben ser capaces de almacenar la direccioacuten maacutes grande
bull De datos deben estar habilitados para almacenar la mayoriacutea de los tipos de datos
bull Algunas maacutequinas permiten 2 registros contiguos utilizados como un solo registro para almacenar valores de doble longitud
BITS DE CONDICIOacuteN (BANDERAS)bull Bits establecidos por la CPU como resultado de operaciones
bull Pueden ser utilizados por las instrucciones de bifurcacioacuten condicional
bull Generalmente no son alterados por el programador
REGISTROS DE CONTROL Y ESTADObull Empleados para controlar la operacioacuten de la CPU En la mayoriacutea de las
maacutequinas no son visibles al usuario
bull Los 4 esenciales para la ejecucioacuten de
bull Contador de programa (PC)
bull Registro de instruccioacuten (IR)
bull Registro de direccioacuten de memoria (MAR)
bull Registro buffer de memoria (MBR)bull Los 4 reg recieacuten mencionados se emplean para el movimiento de datos
entre la CPU y memoria
bull Dentro de la CPU los datos se deben presentar a la ALU para procesamiento eacutesta puede acceder al MBR y a los reg visibles por el usuario Puede haber tambieacuten reg temporales adicionales para intercambiar datos con el MBR y demaacutes reg visibles
bull un ciclo de instruccioacuten incluye los siguientes sub ciclos
bull Capitacioacuten es la que lleva la siguiente instruccioacuten de la memoria al procesador
bull Ejecucioacuten interpreta el coacutedigo de operacioacuten y lleva a cabo la operacioacuten indicada
bull Interrupcioacuten si ocurre un problema guarda el estado del proceso actual y atiende la interrupcioacuten
CICLO DE INSTRUCCIOacuteN
CICLO INDIRECTObull Si se usa direccionamiento indirecto es necesario memoria adicional
bull La principal actividad es consiste en alternar las actividades de captacioacuten y ejecucioacuten de instrucciones
bull La instruccioacuten es captada pada determinar si incluye un direccionamiento indirecto
bull Una vez que la instruccioacuten es captada debe identificar sus campos de operando
bull Despueacutes que se ejecuta es un proceso similar para almacenar
bull El resultado en la memoria principal
FLUJO DE DATOS
bull La secuencia de eventos que tienen lugar durante el clico de instruccioacuten depende del procesador
bull El contador de programa contiene la direccioacuten de la siguiente instruccioacuten
bull La unidad de control solicita una lectura de memoria y el resultado se pone en un bus de datos y se lleva al registro de instruccioacuten
bull El ciclo de ejecucioacuten adopta muchas formas ya que se ya que depende del registro de instruccioacuten
bull Este ciclo puede aplicar transferencia de datos entre registros asiacute como lectura y escritura en Es
bull Mientras que el ciclo de interrupcioacuten es simple el contenido de contador de programa debe ser almacenado para que el procesador pueda continuar su actividad
La segmentacioacuten o pipeline es una teacutecnica de realizacioacuten de procesadores por la cual se solapa la ejecucioacuten de las instrucciones Hoy en diacutea es la teacutecnica clave para la realizacioacuten de CPU raacutepidas La idea baacutesica de la segmentacioacuten se puede extraer de una cadena de montaje de coches Los coches no se montan uno a uno si no que su construccioacuten se divide en fases sucesivas y el montaje del coche se realiza tal como este va avanzando por estas fases De esta forma cada fase estaacute trabajando simultaacuteneamente en la construccioacuten de un coche diferente De esta forma la construccioacuten de un coche cuesta el mismo tiempo que antes pero ahora la frecuencia con que salen los coches construidos es mucho mayor (tantos como fases tenga su construccioacuten) Cada uno de estas fases se denomina segmento o etapa de segmentacioacuten Al igual que en los coches la productividad de un computador va a depender del nuacutemero de instrucciones que acaben por unidad de tiempo y no de lo que le cueste a una instruccioacuten individual
SEGMENTACIOacuteN DE INSTRUCCIONES
RISC (del ingleacutes reduced instruction set computer) es un tipo de microprocesador con las siguientes caracteriacutesticas fundamentalesbull Instrucciones de tamantildeo fijo y presentadas en un reducido nuacutemero de formatosbull Soacutelo las instrucciones de carga y almacenamiento acceden a la memoria de datosbull El objetivo de disentildear maacutequinas con esta arquitectura es posibilitar la segmentacioacuten y el
paralelismo en la ejecucioacuten de instrucciones y reducir los accesos a memoria
ARQUITECTURA RISC
CISC (complex instruction set computer) bull Los microprocesadores CISC tienen un conjunto de instrucciones que se caracteriza
por ser muy amplio y permitir operaciones complejas entre operandos situados en la memoria o en los registros internos en contraposicioacuten a la arquitectura RISC
bull Este tipo de arquitectura dificulta el paralelismo entre instrucciones por lo que en la actualidad la mayoriacutea de los sistemas CISC de alto rendimiento implementan un sistema que convierte dichas instrucciones complejas en varias instrucciones simples del tipo RISC llamadas generalmente microinstrucciones
bull Para realizar una sola instruccioacuten un chip CISC requiere de cuatro a diez ciclos de reloj
ARQUITECTURA CISC
ACCIONES DEL PROCESADOR PARA VARIOS TIPOS DE OPERADORES
TRANSFERENCIA DE DATOS Transfiere datos de una posicioacuten a otra si se implica la memoriabull Determina la direccioacuten de memoriabull Realiza la transformacioacuten de direcciones de memoria virtual a realbull Comprueba la cachebull Inicia la lecturaescritura ende memoriaARITMEacuteTICAbull Puede implicar transferencia de datos antes yo despueacutesbull Realiza la operacioacuten en la ALUbull Actualiza coacutedigos e indicadores de condicioacutenLOacuteGICA Lo mismo que en la aritmeacuteticaCONVERSION Similar a la aritmeacutetica y la loacutegica Puede implicar a loacutegica especial para realizar la conversioacutenCONTRO DEL FLUJO Actualiza el contador del programa En el caso de llamadas y retorno de subrutinas gestiona la transferencia y enlace de paraacutemetrosES bull Cursa una orden en el modulo de ESbull En el caso de ES asignada en memoria determina la direccioacuten de memoria correspondiente
MODOS DE DIRECCIONAMIENTObull InmediatoEn la instruccioacuten estaacute incluido directamente el operandoEn este modo el operando es especificado en la instruccioacuten misma En otras palabras una instruccioacuten de modo inmediato tiene un campo de operando en vez de un campo de direccioacuten El campo del operando contiene el operando actual que se debe utilizar en conjunto con la operacioacuten especificada en la instruccioacuten Las instrucciones de modo inmediato son uacutetiles para inicializar los registros en un valor constanteCuando el campo de direccioacuten especifica un registro del procesador la instruccioacuten se dice que estaacute en el modo de registro
bull DirectoEl campo de operando en la instruccioacuten contiene la direccioacuten en memoria donde se encuentra el operando En este modo la direccioacuten efectiva es igual a la parte de direccioacuten de la instruccioacuten El operando reside en la memoria y su direccioacuten es dada directamente por el campo de direccioacuten de la instruccioacuten En una instruccioacuten de tipo ramificacioacuten el campo de direccioacuten especifica la direccioacuten de la rama actualCon este tipo de direccionamiento la direccioacuten efectiva es contenida en la misma instruccioacuten tal como los valores de datos inmediatos que son contenidos en la instruccioacuten Un procesador de 16 bits suma la direccioacuten efectiva al contenido del segmento de datos previamente desplazado en 4 bits para producir la direccioacuten fiacutesica del operando
bull IndirectoEn este modo de direccionamiento no es necesario poner ninguna direccioacuten de forma expliacutecita ya que en el propio coacutedigo de operacioacuten se conoce la direccioacuten del (de los) operando(s) al (a los) que se desea acceder o con el (los) que se quiere operarUn ejemplo de este tipo de direccionamiento lo podemos encontrar en la arquitectura de acumulador (AC) donde siempre hay un paraacutemetro impliacutecito y este es el ACPara finalizar y dejar este modo de direccionamiento generalizado para las arquitecturas maacutes usuales remarcamos que tambieacuten podemos encontrarlo en la arquitectura con registros de propoacutesito general por ejemplo con oacuterdenes como set c que pone a 1 el registro c (acarreo)
bull De registroSirve para especificar operandos que estaacuten en registros
bull Indirecto mediante registrosEl campo de operando de la instruccioacuten contiene un identificador de registro en el que se encuentra la direccioacuten efectiva del operando En este modo el campo de la direccioacuten de la instruccioacuten da la direccioacuten en donde la direccioacuten efectiva se almacena en la memoria El control localiza la instruccioacuten de la memoria y utiliza su parte de direccioacuten para accesar la memoria de nuevo para leer una direccioacuten efectiva Unos pocos modos de direccionamiento requieren que el campo de direccioacuten de la instruccioacuten sea sumado al control de un registro especificado en el procesadorLa direccioacuten efectiva en este modo se obtiene del siguiente caacutelculoDir Efectiva = Dir de la parte de la instruccioacuten + Contenido del registro del procesador
bull De desplazamientoCombina el modo directo e indirecto mediante registros
bull De pilaSe utiliza cuando el operando estaacute en memoria y en la cabecera de la pilaEste direccionamiento se basa en las estructuras denominadas Pila(tipo LIFO) las cuales estaacuten marcados por el fondo de la pila y el puntero de pila (SP) El puntero de pila apunta a la uacuteltima posicioacuten ocupada Asiacute como puntero de direccionamiento usaremos el SP El desplazamiento maacutes el valor del SP nos daraacute la direccioacuten del objeto al que queramos hacer referencia En ocasiones si no existe C de desplazamiento solo se trabajara con la cima de la pila Este tipo de direccionamiento nos aporta flexibilidad pero por el contrario es mucho maacutes complejo que otros tipos estudiados maacutes arriba
ORGANIZACIOacuteN DEL PROCESADOR
Captar instrucciones el procesador lee una instruccioacuten de memoria (registro cache o memoria principal)Interpretar instruccioacuten la instruccioacuten se codifica para determinar queacute accioacuten es necesarioCaptar datos la ejecucioacuten de una instruccioacuten puede exigir leer datos de memoria o de un moacutedulo de ESProcesar datos la ejecucioacuten e una instruccioacuten puede exigir llevar a cabo alguna operacioacuten aritmeacutetica o loacutegica con los datosEscribir datos los resultados de una ejecucioacuten pueden exigir escribir datos en la memoria o en el moacutedulo de ESPara hacer estas cosas el procesador necesita almacenar instrucciones y datos temporalmente mientras una instruccioacuten esta ejecutaacutendose en otras palabras el procesador necesita una pequentildea memoria interna
ORGANIZACIOacuteN DE REGISTROS
Registros visibles al usuario son utilizados por el programador
Registros de control y estado son utilizados por la UC para controlar la operacioacuten de la CPU (no son visibles por el programador)
REGISTROS VISIBLES AL USUARIObull Pueden ser asignados a una variedad de funciones
bull cualquier registro de propoacutesito general puede contener el operando para cualquier coacutedigo de operacioacuten (verdadero propoacutesito)
bull pueden existir restricciones (ej Registros dedicados a operaciones especificas)
NUacuteMERO DE REGISTROSbull Afecta al tamantildeo de la instruccioacuten
bull Mayor Nordm de registros maacutes bits para especificarlos en la instruccioacuten
bull Pocos registros maacutes referencias a memoria
bull No oacuteptimo entre 8 y 32 reg Maacutes no hay gran mejora (aumenta tamantildeo de la instruccioacuten)
LONGITUD DE LOS REGISTROSbull De direcciones deben ser capaces de almacenar la direccioacuten maacutes grande
bull De datos deben estar habilitados para almacenar la mayoriacutea de los tipos de datos
bull Algunas maacutequinas permiten 2 registros contiguos utilizados como un solo registro para almacenar valores de doble longitud
BITS DE CONDICIOacuteN (BANDERAS)bull Bits establecidos por la CPU como resultado de operaciones
bull Pueden ser utilizados por las instrucciones de bifurcacioacuten condicional
bull Generalmente no son alterados por el programador
REGISTROS DE CONTROL Y ESTADObull Empleados para controlar la operacioacuten de la CPU En la mayoriacutea de las
maacutequinas no son visibles al usuario
bull Los 4 esenciales para la ejecucioacuten de
bull Contador de programa (PC)
bull Registro de instruccioacuten (IR)
bull Registro de direccioacuten de memoria (MAR)
bull Registro buffer de memoria (MBR)bull Los 4 reg recieacuten mencionados se emplean para el movimiento de datos
entre la CPU y memoria
bull Dentro de la CPU los datos se deben presentar a la ALU para procesamiento eacutesta puede acceder al MBR y a los reg visibles por el usuario Puede haber tambieacuten reg temporales adicionales para intercambiar datos con el MBR y demaacutes reg visibles
bull un ciclo de instruccioacuten incluye los siguientes sub ciclos
bull Capitacioacuten es la que lleva la siguiente instruccioacuten de la memoria al procesador
bull Ejecucioacuten interpreta el coacutedigo de operacioacuten y lleva a cabo la operacioacuten indicada
bull Interrupcioacuten si ocurre un problema guarda el estado del proceso actual y atiende la interrupcioacuten
CICLO DE INSTRUCCIOacuteN
CICLO INDIRECTObull Si se usa direccionamiento indirecto es necesario memoria adicional
bull La principal actividad es consiste en alternar las actividades de captacioacuten y ejecucioacuten de instrucciones
bull La instruccioacuten es captada pada determinar si incluye un direccionamiento indirecto
bull Una vez que la instruccioacuten es captada debe identificar sus campos de operando
bull Despueacutes que se ejecuta es un proceso similar para almacenar
bull El resultado en la memoria principal
FLUJO DE DATOS
bull La secuencia de eventos que tienen lugar durante el clico de instruccioacuten depende del procesador
bull El contador de programa contiene la direccioacuten de la siguiente instruccioacuten
bull La unidad de control solicita una lectura de memoria y el resultado se pone en un bus de datos y se lleva al registro de instruccioacuten
bull El ciclo de ejecucioacuten adopta muchas formas ya que se ya que depende del registro de instruccioacuten
bull Este ciclo puede aplicar transferencia de datos entre registros asiacute como lectura y escritura en Es
bull Mientras que el ciclo de interrupcioacuten es simple el contenido de contador de programa debe ser almacenado para que el procesador pueda continuar su actividad
La segmentacioacuten o pipeline es una teacutecnica de realizacioacuten de procesadores por la cual se solapa la ejecucioacuten de las instrucciones Hoy en diacutea es la teacutecnica clave para la realizacioacuten de CPU raacutepidas La idea baacutesica de la segmentacioacuten se puede extraer de una cadena de montaje de coches Los coches no se montan uno a uno si no que su construccioacuten se divide en fases sucesivas y el montaje del coche se realiza tal como este va avanzando por estas fases De esta forma cada fase estaacute trabajando simultaacuteneamente en la construccioacuten de un coche diferente De esta forma la construccioacuten de un coche cuesta el mismo tiempo que antes pero ahora la frecuencia con que salen los coches construidos es mucho mayor (tantos como fases tenga su construccioacuten) Cada uno de estas fases se denomina segmento o etapa de segmentacioacuten Al igual que en los coches la productividad de un computador va a depender del nuacutemero de instrucciones que acaben por unidad de tiempo y no de lo que le cueste a una instruccioacuten individual
SEGMENTACIOacuteN DE INSTRUCCIONES
RISC (del ingleacutes reduced instruction set computer) es un tipo de microprocesador con las siguientes caracteriacutesticas fundamentalesbull Instrucciones de tamantildeo fijo y presentadas en un reducido nuacutemero de formatosbull Soacutelo las instrucciones de carga y almacenamiento acceden a la memoria de datosbull El objetivo de disentildear maacutequinas con esta arquitectura es posibilitar la segmentacioacuten y el
paralelismo en la ejecucioacuten de instrucciones y reducir los accesos a memoria
ARQUITECTURA RISC
CISC (complex instruction set computer) bull Los microprocesadores CISC tienen un conjunto de instrucciones que se caracteriza
por ser muy amplio y permitir operaciones complejas entre operandos situados en la memoria o en los registros internos en contraposicioacuten a la arquitectura RISC
bull Este tipo de arquitectura dificulta el paralelismo entre instrucciones por lo que en la actualidad la mayoriacutea de los sistemas CISC de alto rendimiento implementan un sistema que convierte dichas instrucciones complejas en varias instrucciones simples del tipo RISC llamadas generalmente microinstrucciones
bull Para realizar una sola instruccioacuten un chip CISC requiere de cuatro a diez ciclos de reloj
ARQUITECTURA CISC
MODOS DE DIRECCIONAMIENTObull InmediatoEn la instruccioacuten estaacute incluido directamente el operandoEn este modo el operando es especificado en la instruccioacuten misma En otras palabras una instruccioacuten de modo inmediato tiene un campo de operando en vez de un campo de direccioacuten El campo del operando contiene el operando actual que se debe utilizar en conjunto con la operacioacuten especificada en la instruccioacuten Las instrucciones de modo inmediato son uacutetiles para inicializar los registros en un valor constanteCuando el campo de direccioacuten especifica un registro del procesador la instruccioacuten se dice que estaacute en el modo de registro
bull DirectoEl campo de operando en la instruccioacuten contiene la direccioacuten en memoria donde se encuentra el operando En este modo la direccioacuten efectiva es igual a la parte de direccioacuten de la instruccioacuten El operando reside en la memoria y su direccioacuten es dada directamente por el campo de direccioacuten de la instruccioacuten En una instruccioacuten de tipo ramificacioacuten el campo de direccioacuten especifica la direccioacuten de la rama actualCon este tipo de direccionamiento la direccioacuten efectiva es contenida en la misma instruccioacuten tal como los valores de datos inmediatos que son contenidos en la instruccioacuten Un procesador de 16 bits suma la direccioacuten efectiva al contenido del segmento de datos previamente desplazado en 4 bits para producir la direccioacuten fiacutesica del operando
bull IndirectoEn este modo de direccionamiento no es necesario poner ninguna direccioacuten de forma expliacutecita ya que en el propio coacutedigo de operacioacuten se conoce la direccioacuten del (de los) operando(s) al (a los) que se desea acceder o con el (los) que se quiere operarUn ejemplo de este tipo de direccionamiento lo podemos encontrar en la arquitectura de acumulador (AC) donde siempre hay un paraacutemetro impliacutecito y este es el ACPara finalizar y dejar este modo de direccionamiento generalizado para las arquitecturas maacutes usuales remarcamos que tambieacuten podemos encontrarlo en la arquitectura con registros de propoacutesito general por ejemplo con oacuterdenes como set c que pone a 1 el registro c (acarreo)
bull De registroSirve para especificar operandos que estaacuten en registros
bull Indirecto mediante registrosEl campo de operando de la instruccioacuten contiene un identificador de registro en el que se encuentra la direccioacuten efectiva del operando En este modo el campo de la direccioacuten de la instruccioacuten da la direccioacuten en donde la direccioacuten efectiva se almacena en la memoria El control localiza la instruccioacuten de la memoria y utiliza su parte de direccioacuten para accesar la memoria de nuevo para leer una direccioacuten efectiva Unos pocos modos de direccionamiento requieren que el campo de direccioacuten de la instruccioacuten sea sumado al control de un registro especificado en el procesadorLa direccioacuten efectiva en este modo se obtiene del siguiente caacutelculoDir Efectiva = Dir de la parte de la instruccioacuten + Contenido del registro del procesador
bull De desplazamientoCombina el modo directo e indirecto mediante registros
bull De pilaSe utiliza cuando el operando estaacute en memoria y en la cabecera de la pilaEste direccionamiento se basa en las estructuras denominadas Pila(tipo LIFO) las cuales estaacuten marcados por el fondo de la pila y el puntero de pila (SP) El puntero de pila apunta a la uacuteltima posicioacuten ocupada Asiacute como puntero de direccionamiento usaremos el SP El desplazamiento maacutes el valor del SP nos daraacute la direccioacuten del objeto al que queramos hacer referencia En ocasiones si no existe C de desplazamiento solo se trabajara con la cima de la pila Este tipo de direccionamiento nos aporta flexibilidad pero por el contrario es mucho maacutes complejo que otros tipos estudiados maacutes arriba
ORGANIZACIOacuteN DEL PROCESADOR
Captar instrucciones el procesador lee una instruccioacuten de memoria (registro cache o memoria principal)Interpretar instruccioacuten la instruccioacuten se codifica para determinar queacute accioacuten es necesarioCaptar datos la ejecucioacuten de una instruccioacuten puede exigir leer datos de memoria o de un moacutedulo de ESProcesar datos la ejecucioacuten e una instruccioacuten puede exigir llevar a cabo alguna operacioacuten aritmeacutetica o loacutegica con los datosEscribir datos los resultados de una ejecucioacuten pueden exigir escribir datos en la memoria o en el moacutedulo de ESPara hacer estas cosas el procesador necesita almacenar instrucciones y datos temporalmente mientras una instruccioacuten esta ejecutaacutendose en otras palabras el procesador necesita una pequentildea memoria interna
ORGANIZACIOacuteN DE REGISTROS
Registros visibles al usuario son utilizados por el programador
Registros de control y estado son utilizados por la UC para controlar la operacioacuten de la CPU (no son visibles por el programador)
REGISTROS VISIBLES AL USUARIObull Pueden ser asignados a una variedad de funciones
bull cualquier registro de propoacutesito general puede contener el operando para cualquier coacutedigo de operacioacuten (verdadero propoacutesito)
bull pueden existir restricciones (ej Registros dedicados a operaciones especificas)
NUacuteMERO DE REGISTROSbull Afecta al tamantildeo de la instruccioacuten
bull Mayor Nordm de registros maacutes bits para especificarlos en la instruccioacuten
bull Pocos registros maacutes referencias a memoria
bull No oacuteptimo entre 8 y 32 reg Maacutes no hay gran mejora (aumenta tamantildeo de la instruccioacuten)
LONGITUD DE LOS REGISTROSbull De direcciones deben ser capaces de almacenar la direccioacuten maacutes grande
bull De datos deben estar habilitados para almacenar la mayoriacutea de los tipos de datos
bull Algunas maacutequinas permiten 2 registros contiguos utilizados como un solo registro para almacenar valores de doble longitud
BITS DE CONDICIOacuteN (BANDERAS)bull Bits establecidos por la CPU como resultado de operaciones
bull Pueden ser utilizados por las instrucciones de bifurcacioacuten condicional
bull Generalmente no son alterados por el programador
REGISTROS DE CONTROL Y ESTADObull Empleados para controlar la operacioacuten de la CPU En la mayoriacutea de las
maacutequinas no son visibles al usuario
bull Los 4 esenciales para la ejecucioacuten de
bull Contador de programa (PC)
bull Registro de instruccioacuten (IR)
bull Registro de direccioacuten de memoria (MAR)
bull Registro buffer de memoria (MBR)bull Los 4 reg recieacuten mencionados se emplean para el movimiento de datos
entre la CPU y memoria
bull Dentro de la CPU los datos se deben presentar a la ALU para procesamiento eacutesta puede acceder al MBR y a los reg visibles por el usuario Puede haber tambieacuten reg temporales adicionales para intercambiar datos con el MBR y demaacutes reg visibles
bull un ciclo de instruccioacuten incluye los siguientes sub ciclos
bull Capitacioacuten es la que lleva la siguiente instruccioacuten de la memoria al procesador
bull Ejecucioacuten interpreta el coacutedigo de operacioacuten y lleva a cabo la operacioacuten indicada
bull Interrupcioacuten si ocurre un problema guarda el estado del proceso actual y atiende la interrupcioacuten
CICLO DE INSTRUCCIOacuteN
CICLO INDIRECTObull Si se usa direccionamiento indirecto es necesario memoria adicional
bull La principal actividad es consiste en alternar las actividades de captacioacuten y ejecucioacuten de instrucciones
bull La instruccioacuten es captada pada determinar si incluye un direccionamiento indirecto
bull Una vez que la instruccioacuten es captada debe identificar sus campos de operando
bull Despueacutes que se ejecuta es un proceso similar para almacenar
bull El resultado en la memoria principal
FLUJO DE DATOS
bull La secuencia de eventos que tienen lugar durante el clico de instruccioacuten depende del procesador
bull El contador de programa contiene la direccioacuten de la siguiente instruccioacuten
bull La unidad de control solicita una lectura de memoria y el resultado se pone en un bus de datos y se lleva al registro de instruccioacuten
bull El ciclo de ejecucioacuten adopta muchas formas ya que se ya que depende del registro de instruccioacuten
bull Este ciclo puede aplicar transferencia de datos entre registros asiacute como lectura y escritura en Es
bull Mientras que el ciclo de interrupcioacuten es simple el contenido de contador de programa debe ser almacenado para que el procesador pueda continuar su actividad
La segmentacioacuten o pipeline es una teacutecnica de realizacioacuten de procesadores por la cual se solapa la ejecucioacuten de las instrucciones Hoy en diacutea es la teacutecnica clave para la realizacioacuten de CPU raacutepidas La idea baacutesica de la segmentacioacuten se puede extraer de una cadena de montaje de coches Los coches no se montan uno a uno si no que su construccioacuten se divide en fases sucesivas y el montaje del coche se realiza tal como este va avanzando por estas fases De esta forma cada fase estaacute trabajando simultaacuteneamente en la construccioacuten de un coche diferente De esta forma la construccioacuten de un coche cuesta el mismo tiempo que antes pero ahora la frecuencia con que salen los coches construidos es mucho mayor (tantos como fases tenga su construccioacuten) Cada uno de estas fases se denomina segmento o etapa de segmentacioacuten Al igual que en los coches la productividad de un computador va a depender del nuacutemero de instrucciones que acaben por unidad de tiempo y no de lo que le cueste a una instruccioacuten individual
SEGMENTACIOacuteN DE INSTRUCCIONES
RISC (del ingleacutes reduced instruction set computer) es un tipo de microprocesador con las siguientes caracteriacutesticas fundamentalesbull Instrucciones de tamantildeo fijo y presentadas en un reducido nuacutemero de formatosbull Soacutelo las instrucciones de carga y almacenamiento acceden a la memoria de datosbull El objetivo de disentildear maacutequinas con esta arquitectura es posibilitar la segmentacioacuten y el
paralelismo en la ejecucioacuten de instrucciones y reducir los accesos a memoria
ARQUITECTURA RISC
CISC (complex instruction set computer) bull Los microprocesadores CISC tienen un conjunto de instrucciones que se caracteriza
por ser muy amplio y permitir operaciones complejas entre operandos situados en la memoria o en los registros internos en contraposicioacuten a la arquitectura RISC
bull Este tipo de arquitectura dificulta el paralelismo entre instrucciones por lo que en la actualidad la mayoriacutea de los sistemas CISC de alto rendimiento implementan un sistema que convierte dichas instrucciones complejas en varias instrucciones simples del tipo RISC llamadas generalmente microinstrucciones
bull Para realizar una sola instruccioacuten un chip CISC requiere de cuatro a diez ciclos de reloj
ARQUITECTURA CISC
bull DirectoEl campo de operando en la instruccioacuten contiene la direccioacuten en memoria donde se encuentra el operando En este modo la direccioacuten efectiva es igual a la parte de direccioacuten de la instruccioacuten El operando reside en la memoria y su direccioacuten es dada directamente por el campo de direccioacuten de la instruccioacuten En una instruccioacuten de tipo ramificacioacuten el campo de direccioacuten especifica la direccioacuten de la rama actualCon este tipo de direccionamiento la direccioacuten efectiva es contenida en la misma instruccioacuten tal como los valores de datos inmediatos que son contenidos en la instruccioacuten Un procesador de 16 bits suma la direccioacuten efectiva al contenido del segmento de datos previamente desplazado en 4 bits para producir la direccioacuten fiacutesica del operando
bull IndirectoEn este modo de direccionamiento no es necesario poner ninguna direccioacuten de forma expliacutecita ya que en el propio coacutedigo de operacioacuten se conoce la direccioacuten del (de los) operando(s) al (a los) que se desea acceder o con el (los) que se quiere operarUn ejemplo de este tipo de direccionamiento lo podemos encontrar en la arquitectura de acumulador (AC) donde siempre hay un paraacutemetro impliacutecito y este es el ACPara finalizar y dejar este modo de direccionamiento generalizado para las arquitecturas maacutes usuales remarcamos que tambieacuten podemos encontrarlo en la arquitectura con registros de propoacutesito general por ejemplo con oacuterdenes como set c que pone a 1 el registro c (acarreo)
bull De registroSirve para especificar operandos que estaacuten en registros
bull Indirecto mediante registrosEl campo de operando de la instruccioacuten contiene un identificador de registro en el que se encuentra la direccioacuten efectiva del operando En este modo el campo de la direccioacuten de la instruccioacuten da la direccioacuten en donde la direccioacuten efectiva se almacena en la memoria El control localiza la instruccioacuten de la memoria y utiliza su parte de direccioacuten para accesar la memoria de nuevo para leer una direccioacuten efectiva Unos pocos modos de direccionamiento requieren que el campo de direccioacuten de la instruccioacuten sea sumado al control de un registro especificado en el procesadorLa direccioacuten efectiva en este modo se obtiene del siguiente caacutelculoDir Efectiva = Dir de la parte de la instruccioacuten + Contenido del registro del procesador
bull De desplazamientoCombina el modo directo e indirecto mediante registros
bull De pilaSe utiliza cuando el operando estaacute en memoria y en la cabecera de la pilaEste direccionamiento se basa en las estructuras denominadas Pila(tipo LIFO) las cuales estaacuten marcados por el fondo de la pila y el puntero de pila (SP) El puntero de pila apunta a la uacuteltima posicioacuten ocupada Asiacute como puntero de direccionamiento usaremos el SP El desplazamiento maacutes el valor del SP nos daraacute la direccioacuten del objeto al que queramos hacer referencia En ocasiones si no existe C de desplazamiento solo se trabajara con la cima de la pila Este tipo de direccionamiento nos aporta flexibilidad pero por el contrario es mucho maacutes complejo que otros tipos estudiados maacutes arriba
ORGANIZACIOacuteN DEL PROCESADOR
Captar instrucciones el procesador lee una instruccioacuten de memoria (registro cache o memoria principal)Interpretar instruccioacuten la instruccioacuten se codifica para determinar queacute accioacuten es necesarioCaptar datos la ejecucioacuten de una instruccioacuten puede exigir leer datos de memoria o de un moacutedulo de ESProcesar datos la ejecucioacuten e una instruccioacuten puede exigir llevar a cabo alguna operacioacuten aritmeacutetica o loacutegica con los datosEscribir datos los resultados de una ejecucioacuten pueden exigir escribir datos en la memoria o en el moacutedulo de ESPara hacer estas cosas el procesador necesita almacenar instrucciones y datos temporalmente mientras una instruccioacuten esta ejecutaacutendose en otras palabras el procesador necesita una pequentildea memoria interna
ORGANIZACIOacuteN DE REGISTROS
Registros visibles al usuario son utilizados por el programador
Registros de control y estado son utilizados por la UC para controlar la operacioacuten de la CPU (no son visibles por el programador)
REGISTROS VISIBLES AL USUARIObull Pueden ser asignados a una variedad de funciones
bull cualquier registro de propoacutesito general puede contener el operando para cualquier coacutedigo de operacioacuten (verdadero propoacutesito)
bull pueden existir restricciones (ej Registros dedicados a operaciones especificas)
NUacuteMERO DE REGISTROSbull Afecta al tamantildeo de la instruccioacuten
bull Mayor Nordm de registros maacutes bits para especificarlos en la instruccioacuten
bull Pocos registros maacutes referencias a memoria
bull No oacuteptimo entre 8 y 32 reg Maacutes no hay gran mejora (aumenta tamantildeo de la instruccioacuten)
LONGITUD DE LOS REGISTROSbull De direcciones deben ser capaces de almacenar la direccioacuten maacutes grande
bull De datos deben estar habilitados para almacenar la mayoriacutea de los tipos de datos
bull Algunas maacutequinas permiten 2 registros contiguos utilizados como un solo registro para almacenar valores de doble longitud
BITS DE CONDICIOacuteN (BANDERAS)bull Bits establecidos por la CPU como resultado de operaciones
bull Pueden ser utilizados por las instrucciones de bifurcacioacuten condicional
bull Generalmente no son alterados por el programador
REGISTROS DE CONTROL Y ESTADObull Empleados para controlar la operacioacuten de la CPU En la mayoriacutea de las
maacutequinas no son visibles al usuario
bull Los 4 esenciales para la ejecucioacuten de
bull Contador de programa (PC)
bull Registro de instruccioacuten (IR)
bull Registro de direccioacuten de memoria (MAR)
bull Registro buffer de memoria (MBR)bull Los 4 reg recieacuten mencionados se emplean para el movimiento de datos
entre la CPU y memoria
bull Dentro de la CPU los datos se deben presentar a la ALU para procesamiento eacutesta puede acceder al MBR y a los reg visibles por el usuario Puede haber tambieacuten reg temporales adicionales para intercambiar datos con el MBR y demaacutes reg visibles
bull un ciclo de instruccioacuten incluye los siguientes sub ciclos
bull Capitacioacuten es la que lleva la siguiente instruccioacuten de la memoria al procesador
bull Ejecucioacuten interpreta el coacutedigo de operacioacuten y lleva a cabo la operacioacuten indicada
bull Interrupcioacuten si ocurre un problema guarda el estado del proceso actual y atiende la interrupcioacuten
CICLO DE INSTRUCCIOacuteN
CICLO INDIRECTObull Si se usa direccionamiento indirecto es necesario memoria adicional
bull La principal actividad es consiste en alternar las actividades de captacioacuten y ejecucioacuten de instrucciones
bull La instruccioacuten es captada pada determinar si incluye un direccionamiento indirecto
bull Una vez que la instruccioacuten es captada debe identificar sus campos de operando
bull Despueacutes que se ejecuta es un proceso similar para almacenar
bull El resultado en la memoria principal
FLUJO DE DATOS
bull La secuencia de eventos que tienen lugar durante el clico de instruccioacuten depende del procesador
bull El contador de programa contiene la direccioacuten de la siguiente instruccioacuten
bull La unidad de control solicita una lectura de memoria y el resultado se pone en un bus de datos y se lleva al registro de instruccioacuten
bull El ciclo de ejecucioacuten adopta muchas formas ya que se ya que depende del registro de instruccioacuten
bull Este ciclo puede aplicar transferencia de datos entre registros asiacute como lectura y escritura en Es
bull Mientras que el ciclo de interrupcioacuten es simple el contenido de contador de programa debe ser almacenado para que el procesador pueda continuar su actividad
La segmentacioacuten o pipeline es una teacutecnica de realizacioacuten de procesadores por la cual se solapa la ejecucioacuten de las instrucciones Hoy en diacutea es la teacutecnica clave para la realizacioacuten de CPU raacutepidas La idea baacutesica de la segmentacioacuten se puede extraer de una cadena de montaje de coches Los coches no se montan uno a uno si no que su construccioacuten se divide en fases sucesivas y el montaje del coche se realiza tal como este va avanzando por estas fases De esta forma cada fase estaacute trabajando simultaacuteneamente en la construccioacuten de un coche diferente De esta forma la construccioacuten de un coche cuesta el mismo tiempo que antes pero ahora la frecuencia con que salen los coches construidos es mucho mayor (tantos como fases tenga su construccioacuten) Cada uno de estas fases se denomina segmento o etapa de segmentacioacuten Al igual que en los coches la productividad de un computador va a depender del nuacutemero de instrucciones que acaben por unidad de tiempo y no de lo que le cueste a una instruccioacuten individual
SEGMENTACIOacuteN DE INSTRUCCIONES
RISC (del ingleacutes reduced instruction set computer) es un tipo de microprocesador con las siguientes caracteriacutesticas fundamentalesbull Instrucciones de tamantildeo fijo y presentadas en un reducido nuacutemero de formatosbull Soacutelo las instrucciones de carga y almacenamiento acceden a la memoria de datosbull El objetivo de disentildear maacutequinas con esta arquitectura es posibilitar la segmentacioacuten y el
paralelismo en la ejecucioacuten de instrucciones y reducir los accesos a memoria
ARQUITECTURA RISC
CISC (complex instruction set computer) bull Los microprocesadores CISC tienen un conjunto de instrucciones que se caracteriza
por ser muy amplio y permitir operaciones complejas entre operandos situados en la memoria o en los registros internos en contraposicioacuten a la arquitectura RISC
bull Este tipo de arquitectura dificulta el paralelismo entre instrucciones por lo que en la actualidad la mayoriacutea de los sistemas CISC de alto rendimiento implementan un sistema que convierte dichas instrucciones complejas en varias instrucciones simples del tipo RISC llamadas generalmente microinstrucciones
bull Para realizar una sola instruccioacuten un chip CISC requiere de cuatro a diez ciclos de reloj
ARQUITECTURA CISC
bull IndirectoEn este modo de direccionamiento no es necesario poner ninguna direccioacuten de forma expliacutecita ya que en el propio coacutedigo de operacioacuten se conoce la direccioacuten del (de los) operando(s) al (a los) que se desea acceder o con el (los) que se quiere operarUn ejemplo de este tipo de direccionamiento lo podemos encontrar en la arquitectura de acumulador (AC) donde siempre hay un paraacutemetro impliacutecito y este es el ACPara finalizar y dejar este modo de direccionamiento generalizado para las arquitecturas maacutes usuales remarcamos que tambieacuten podemos encontrarlo en la arquitectura con registros de propoacutesito general por ejemplo con oacuterdenes como set c que pone a 1 el registro c (acarreo)
bull De registroSirve para especificar operandos que estaacuten en registros
bull Indirecto mediante registrosEl campo de operando de la instruccioacuten contiene un identificador de registro en el que se encuentra la direccioacuten efectiva del operando En este modo el campo de la direccioacuten de la instruccioacuten da la direccioacuten en donde la direccioacuten efectiva se almacena en la memoria El control localiza la instruccioacuten de la memoria y utiliza su parte de direccioacuten para accesar la memoria de nuevo para leer una direccioacuten efectiva Unos pocos modos de direccionamiento requieren que el campo de direccioacuten de la instruccioacuten sea sumado al control de un registro especificado en el procesadorLa direccioacuten efectiva en este modo se obtiene del siguiente caacutelculoDir Efectiva = Dir de la parte de la instruccioacuten + Contenido del registro del procesador
bull De desplazamientoCombina el modo directo e indirecto mediante registros
bull De pilaSe utiliza cuando el operando estaacute en memoria y en la cabecera de la pilaEste direccionamiento se basa en las estructuras denominadas Pila(tipo LIFO) las cuales estaacuten marcados por el fondo de la pila y el puntero de pila (SP) El puntero de pila apunta a la uacuteltima posicioacuten ocupada Asiacute como puntero de direccionamiento usaremos el SP El desplazamiento maacutes el valor del SP nos daraacute la direccioacuten del objeto al que queramos hacer referencia En ocasiones si no existe C de desplazamiento solo se trabajara con la cima de la pila Este tipo de direccionamiento nos aporta flexibilidad pero por el contrario es mucho maacutes complejo que otros tipos estudiados maacutes arriba
ORGANIZACIOacuteN DEL PROCESADOR
Captar instrucciones el procesador lee una instruccioacuten de memoria (registro cache o memoria principal)Interpretar instruccioacuten la instruccioacuten se codifica para determinar queacute accioacuten es necesarioCaptar datos la ejecucioacuten de una instruccioacuten puede exigir leer datos de memoria o de un moacutedulo de ESProcesar datos la ejecucioacuten e una instruccioacuten puede exigir llevar a cabo alguna operacioacuten aritmeacutetica o loacutegica con los datosEscribir datos los resultados de una ejecucioacuten pueden exigir escribir datos en la memoria o en el moacutedulo de ESPara hacer estas cosas el procesador necesita almacenar instrucciones y datos temporalmente mientras una instruccioacuten esta ejecutaacutendose en otras palabras el procesador necesita una pequentildea memoria interna
ORGANIZACIOacuteN DE REGISTROS
Registros visibles al usuario son utilizados por el programador
Registros de control y estado son utilizados por la UC para controlar la operacioacuten de la CPU (no son visibles por el programador)
REGISTROS VISIBLES AL USUARIObull Pueden ser asignados a una variedad de funciones
bull cualquier registro de propoacutesito general puede contener el operando para cualquier coacutedigo de operacioacuten (verdadero propoacutesito)
bull pueden existir restricciones (ej Registros dedicados a operaciones especificas)
NUacuteMERO DE REGISTROSbull Afecta al tamantildeo de la instruccioacuten
bull Mayor Nordm de registros maacutes bits para especificarlos en la instruccioacuten
bull Pocos registros maacutes referencias a memoria
bull No oacuteptimo entre 8 y 32 reg Maacutes no hay gran mejora (aumenta tamantildeo de la instruccioacuten)
LONGITUD DE LOS REGISTROSbull De direcciones deben ser capaces de almacenar la direccioacuten maacutes grande
bull De datos deben estar habilitados para almacenar la mayoriacutea de los tipos de datos
bull Algunas maacutequinas permiten 2 registros contiguos utilizados como un solo registro para almacenar valores de doble longitud
BITS DE CONDICIOacuteN (BANDERAS)bull Bits establecidos por la CPU como resultado de operaciones
bull Pueden ser utilizados por las instrucciones de bifurcacioacuten condicional
bull Generalmente no son alterados por el programador
REGISTROS DE CONTROL Y ESTADObull Empleados para controlar la operacioacuten de la CPU En la mayoriacutea de las
maacutequinas no son visibles al usuario
bull Los 4 esenciales para la ejecucioacuten de
bull Contador de programa (PC)
bull Registro de instruccioacuten (IR)
bull Registro de direccioacuten de memoria (MAR)
bull Registro buffer de memoria (MBR)bull Los 4 reg recieacuten mencionados se emplean para el movimiento de datos
entre la CPU y memoria
bull Dentro de la CPU los datos se deben presentar a la ALU para procesamiento eacutesta puede acceder al MBR y a los reg visibles por el usuario Puede haber tambieacuten reg temporales adicionales para intercambiar datos con el MBR y demaacutes reg visibles
bull un ciclo de instruccioacuten incluye los siguientes sub ciclos
bull Capitacioacuten es la que lleva la siguiente instruccioacuten de la memoria al procesador
bull Ejecucioacuten interpreta el coacutedigo de operacioacuten y lleva a cabo la operacioacuten indicada
bull Interrupcioacuten si ocurre un problema guarda el estado del proceso actual y atiende la interrupcioacuten
CICLO DE INSTRUCCIOacuteN
CICLO INDIRECTObull Si se usa direccionamiento indirecto es necesario memoria adicional
bull La principal actividad es consiste en alternar las actividades de captacioacuten y ejecucioacuten de instrucciones
bull La instruccioacuten es captada pada determinar si incluye un direccionamiento indirecto
bull Una vez que la instruccioacuten es captada debe identificar sus campos de operando
bull Despueacutes que se ejecuta es un proceso similar para almacenar
bull El resultado en la memoria principal
FLUJO DE DATOS
bull La secuencia de eventos que tienen lugar durante el clico de instruccioacuten depende del procesador
bull El contador de programa contiene la direccioacuten de la siguiente instruccioacuten
bull La unidad de control solicita una lectura de memoria y el resultado se pone en un bus de datos y se lleva al registro de instruccioacuten
bull El ciclo de ejecucioacuten adopta muchas formas ya que se ya que depende del registro de instruccioacuten
bull Este ciclo puede aplicar transferencia de datos entre registros asiacute como lectura y escritura en Es
bull Mientras que el ciclo de interrupcioacuten es simple el contenido de contador de programa debe ser almacenado para que el procesador pueda continuar su actividad
La segmentacioacuten o pipeline es una teacutecnica de realizacioacuten de procesadores por la cual se solapa la ejecucioacuten de las instrucciones Hoy en diacutea es la teacutecnica clave para la realizacioacuten de CPU raacutepidas La idea baacutesica de la segmentacioacuten se puede extraer de una cadena de montaje de coches Los coches no se montan uno a uno si no que su construccioacuten se divide en fases sucesivas y el montaje del coche se realiza tal como este va avanzando por estas fases De esta forma cada fase estaacute trabajando simultaacuteneamente en la construccioacuten de un coche diferente De esta forma la construccioacuten de un coche cuesta el mismo tiempo que antes pero ahora la frecuencia con que salen los coches construidos es mucho mayor (tantos como fases tenga su construccioacuten) Cada uno de estas fases se denomina segmento o etapa de segmentacioacuten Al igual que en los coches la productividad de un computador va a depender del nuacutemero de instrucciones que acaben por unidad de tiempo y no de lo que le cueste a una instruccioacuten individual
SEGMENTACIOacuteN DE INSTRUCCIONES
RISC (del ingleacutes reduced instruction set computer) es un tipo de microprocesador con las siguientes caracteriacutesticas fundamentalesbull Instrucciones de tamantildeo fijo y presentadas en un reducido nuacutemero de formatosbull Soacutelo las instrucciones de carga y almacenamiento acceden a la memoria de datosbull El objetivo de disentildear maacutequinas con esta arquitectura es posibilitar la segmentacioacuten y el
paralelismo en la ejecucioacuten de instrucciones y reducir los accesos a memoria
ARQUITECTURA RISC
CISC (complex instruction set computer) bull Los microprocesadores CISC tienen un conjunto de instrucciones que se caracteriza
por ser muy amplio y permitir operaciones complejas entre operandos situados en la memoria o en los registros internos en contraposicioacuten a la arquitectura RISC
bull Este tipo de arquitectura dificulta el paralelismo entre instrucciones por lo que en la actualidad la mayoriacutea de los sistemas CISC de alto rendimiento implementan un sistema que convierte dichas instrucciones complejas en varias instrucciones simples del tipo RISC llamadas generalmente microinstrucciones
bull Para realizar una sola instruccioacuten un chip CISC requiere de cuatro a diez ciclos de reloj
ARQUITECTURA CISC
bull De registroSirve para especificar operandos que estaacuten en registros
bull Indirecto mediante registrosEl campo de operando de la instruccioacuten contiene un identificador de registro en el que se encuentra la direccioacuten efectiva del operando En este modo el campo de la direccioacuten de la instruccioacuten da la direccioacuten en donde la direccioacuten efectiva se almacena en la memoria El control localiza la instruccioacuten de la memoria y utiliza su parte de direccioacuten para accesar la memoria de nuevo para leer una direccioacuten efectiva Unos pocos modos de direccionamiento requieren que el campo de direccioacuten de la instruccioacuten sea sumado al control de un registro especificado en el procesadorLa direccioacuten efectiva en este modo se obtiene del siguiente caacutelculoDir Efectiva = Dir de la parte de la instruccioacuten + Contenido del registro del procesador
bull De desplazamientoCombina el modo directo e indirecto mediante registros
bull De pilaSe utiliza cuando el operando estaacute en memoria y en la cabecera de la pilaEste direccionamiento se basa en las estructuras denominadas Pila(tipo LIFO) las cuales estaacuten marcados por el fondo de la pila y el puntero de pila (SP) El puntero de pila apunta a la uacuteltima posicioacuten ocupada Asiacute como puntero de direccionamiento usaremos el SP El desplazamiento maacutes el valor del SP nos daraacute la direccioacuten del objeto al que queramos hacer referencia En ocasiones si no existe C de desplazamiento solo se trabajara con la cima de la pila Este tipo de direccionamiento nos aporta flexibilidad pero por el contrario es mucho maacutes complejo que otros tipos estudiados maacutes arriba
ORGANIZACIOacuteN DEL PROCESADOR
Captar instrucciones el procesador lee una instruccioacuten de memoria (registro cache o memoria principal)Interpretar instruccioacuten la instruccioacuten se codifica para determinar queacute accioacuten es necesarioCaptar datos la ejecucioacuten de una instruccioacuten puede exigir leer datos de memoria o de un moacutedulo de ESProcesar datos la ejecucioacuten e una instruccioacuten puede exigir llevar a cabo alguna operacioacuten aritmeacutetica o loacutegica con los datosEscribir datos los resultados de una ejecucioacuten pueden exigir escribir datos en la memoria o en el moacutedulo de ESPara hacer estas cosas el procesador necesita almacenar instrucciones y datos temporalmente mientras una instruccioacuten esta ejecutaacutendose en otras palabras el procesador necesita una pequentildea memoria interna
ORGANIZACIOacuteN DE REGISTROS
Registros visibles al usuario son utilizados por el programador
Registros de control y estado son utilizados por la UC para controlar la operacioacuten de la CPU (no son visibles por el programador)
REGISTROS VISIBLES AL USUARIObull Pueden ser asignados a una variedad de funciones
bull cualquier registro de propoacutesito general puede contener el operando para cualquier coacutedigo de operacioacuten (verdadero propoacutesito)
bull pueden existir restricciones (ej Registros dedicados a operaciones especificas)
NUacuteMERO DE REGISTROSbull Afecta al tamantildeo de la instruccioacuten
bull Mayor Nordm de registros maacutes bits para especificarlos en la instruccioacuten
bull Pocos registros maacutes referencias a memoria
bull No oacuteptimo entre 8 y 32 reg Maacutes no hay gran mejora (aumenta tamantildeo de la instruccioacuten)
LONGITUD DE LOS REGISTROSbull De direcciones deben ser capaces de almacenar la direccioacuten maacutes grande
bull De datos deben estar habilitados para almacenar la mayoriacutea de los tipos de datos
bull Algunas maacutequinas permiten 2 registros contiguos utilizados como un solo registro para almacenar valores de doble longitud
BITS DE CONDICIOacuteN (BANDERAS)bull Bits establecidos por la CPU como resultado de operaciones
bull Pueden ser utilizados por las instrucciones de bifurcacioacuten condicional
bull Generalmente no son alterados por el programador
REGISTROS DE CONTROL Y ESTADObull Empleados para controlar la operacioacuten de la CPU En la mayoriacutea de las
maacutequinas no son visibles al usuario
bull Los 4 esenciales para la ejecucioacuten de
bull Contador de programa (PC)
bull Registro de instruccioacuten (IR)
bull Registro de direccioacuten de memoria (MAR)
bull Registro buffer de memoria (MBR)bull Los 4 reg recieacuten mencionados se emplean para el movimiento de datos
entre la CPU y memoria
bull Dentro de la CPU los datos se deben presentar a la ALU para procesamiento eacutesta puede acceder al MBR y a los reg visibles por el usuario Puede haber tambieacuten reg temporales adicionales para intercambiar datos con el MBR y demaacutes reg visibles
bull un ciclo de instruccioacuten incluye los siguientes sub ciclos
bull Capitacioacuten es la que lleva la siguiente instruccioacuten de la memoria al procesador
bull Ejecucioacuten interpreta el coacutedigo de operacioacuten y lleva a cabo la operacioacuten indicada
bull Interrupcioacuten si ocurre un problema guarda el estado del proceso actual y atiende la interrupcioacuten
CICLO DE INSTRUCCIOacuteN
CICLO INDIRECTObull Si se usa direccionamiento indirecto es necesario memoria adicional
bull La principal actividad es consiste en alternar las actividades de captacioacuten y ejecucioacuten de instrucciones
bull La instruccioacuten es captada pada determinar si incluye un direccionamiento indirecto
bull Una vez que la instruccioacuten es captada debe identificar sus campos de operando
bull Despueacutes que se ejecuta es un proceso similar para almacenar
bull El resultado en la memoria principal
FLUJO DE DATOS
bull La secuencia de eventos que tienen lugar durante el clico de instruccioacuten depende del procesador
bull El contador de programa contiene la direccioacuten de la siguiente instruccioacuten
bull La unidad de control solicita una lectura de memoria y el resultado se pone en un bus de datos y se lleva al registro de instruccioacuten
bull El ciclo de ejecucioacuten adopta muchas formas ya que se ya que depende del registro de instruccioacuten
bull Este ciclo puede aplicar transferencia de datos entre registros asiacute como lectura y escritura en Es
bull Mientras que el ciclo de interrupcioacuten es simple el contenido de contador de programa debe ser almacenado para que el procesador pueda continuar su actividad
La segmentacioacuten o pipeline es una teacutecnica de realizacioacuten de procesadores por la cual se solapa la ejecucioacuten de las instrucciones Hoy en diacutea es la teacutecnica clave para la realizacioacuten de CPU raacutepidas La idea baacutesica de la segmentacioacuten se puede extraer de una cadena de montaje de coches Los coches no se montan uno a uno si no que su construccioacuten se divide en fases sucesivas y el montaje del coche se realiza tal como este va avanzando por estas fases De esta forma cada fase estaacute trabajando simultaacuteneamente en la construccioacuten de un coche diferente De esta forma la construccioacuten de un coche cuesta el mismo tiempo que antes pero ahora la frecuencia con que salen los coches construidos es mucho mayor (tantos como fases tenga su construccioacuten) Cada uno de estas fases se denomina segmento o etapa de segmentacioacuten Al igual que en los coches la productividad de un computador va a depender del nuacutemero de instrucciones que acaben por unidad de tiempo y no de lo que le cueste a una instruccioacuten individual
SEGMENTACIOacuteN DE INSTRUCCIONES
RISC (del ingleacutes reduced instruction set computer) es un tipo de microprocesador con las siguientes caracteriacutesticas fundamentalesbull Instrucciones de tamantildeo fijo y presentadas en un reducido nuacutemero de formatosbull Soacutelo las instrucciones de carga y almacenamiento acceden a la memoria de datosbull El objetivo de disentildear maacutequinas con esta arquitectura es posibilitar la segmentacioacuten y el
paralelismo en la ejecucioacuten de instrucciones y reducir los accesos a memoria
ARQUITECTURA RISC
CISC (complex instruction set computer) bull Los microprocesadores CISC tienen un conjunto de instrucciones que se caracteriza
por ser muy amplio y permitir operaciones complejas entre operandos situados en la memoria o en los registros internos en contraposicioacuten a la arquitectura RISC
bull Este tipo de arquitectura dificulta el paralelismo entre instrucciones por lo que en la actualidad la mayoriacutea de los sistemas CISC de alto rendimiento implementan un sistema que convierte dichas instrucciones complejas en varias instrucciones simples del tipo RISC llamadas generalmente microinstrucciones
bull Para realizar una sola instruccioacuten un chip CISC requiere de cuatro a diez ciclos de reloj
ARQUITECTURA CISC
bull De desplazamientoCombina el modo directo e indirecto mediante registros
bull De pilaSe utiliza cuando el operando estaacute en memoria y en la cabecera de la pilaEste direccionamiento se basa en las estructuras denominadas Pila(tipo LIFO) las cuales estaacuten marcados por el fondo de la pila y el puntero de pila (SP) El puntero de pila apunta a la uacuteltima posicioacuten ocupada Asiacute como puntero de direccionamiento usaremos el SP El desplazamiento maacutes el valor del SP nos daraacute la direccioacuten del objeto al que queramos hacer referencia En ocasiones si no existe C de desplazamiento solo se trabajara con la cima de la pila Este tipo de direccionamiento nos aporta flexibilidad pero por el contrario es mucho maacutes complejo que otros tipos estudiados maacutes arriba
ORGANIZACIOacuteN DEL PROCESADOR
Captar instrucciones el procesador lee una instruccioacuten de memoria (registro cache o memoria principal)Interpretar instruccioacuten la instruccioacuten se codifica para determinar queacute accioacuten es necesarioCaptar datos la ejecucioacuten de una instruccioacuten puede exigir leer datos de memoria o de un moacutedulo de ESProcesar datos la ejecucioacuten e una instruccioacuten puede exigir llevar a cabo alguna operacioacuten aritmeacutetica o loacutegica con los datosEscribir datos los resultados de una ejecucioacuten pueden exigir escribir datos en la memoria o en el moacutedulo de ESPara hacer estas cosas el procesador necesita almacenar instrucciones y datos temporalmente mientras una instruccioacuten esta ejecutaacutendose en otras palabras el procesador necesita una pequentildea memoria interna
ORGANIZACIOacuteN DE REGISTROS
Registros visibles al usuario son utilizados por el programador
Registros de control y estado son utilizados por la UC para controlar la operacioacuten de la CPU (no son visibles por el programador)
REGISTROS VISIBLES AL USUARIObull Pueden ser asignados a una variedad de funciones
bull cualquier registro de propoacutesito general puede contener el operando para cualquier coacutedigo de operacioacuten (verdadero propoacutesito)
bull pueden existir restricciones (ej Registros dedicados a operaciones especificas)
NUacuteMERO DE REGISTROSbull Afecta al tamantildeo de la instruccioacuten
bull Mayor Nordm de registros maacutes bits para especificarlos en la instruccioacuten
bull Pocos registros maacutes referencias a memoria
bull No oacuteptimo entre 8 y 32 reg Maacutes no hay gran mejora (aumenta tamantildeo de la instruccioacuten)
LONGITUD DE LOS REGISTROSbull De direcciones deben ser capaces de almacenar la direccioacuten maacutes grande
bull De datos deben estar habilitados para almacenar la mayoriacutea de los tipos de datos
bull Algunas maacutequinas permiten 2 registros contiguos utilizados como un solo registro para almacenar valores de doble longitud
BITS DE CONDICIOacuteN (BANDERAS)bull Bits establecidos por la CPU como resultado de operaciones
bull Pueden ser utilizados por las instrucciones de bifurcacioacuten condicional
bull Generalmente no son alterados por el programador
REGISTROS DE CONTROL Y ESTADObull Empleados para controlar la operacioacuten de la CPU En la mayoriacutea de las
maacutequinas no son visibles al usuario
bull Los 4 esenciales para la ejecucioacuten de
bull Contador de programa (PC)
bull Registro de instruccioacuten (IR)
bull Registro de direccioacuten de memoria (MAR)
bull Registro buffer de memoria (MBR)bull Los 4 reg recieacuten mencionados se emplean para el movimiento de datos
entre la CPU y memoria
bull Dentro de la CPU los datos se deben presentar a la ALU para procesamiento eacutesta puede acceder al MBR y a los reg visibles por el usuario Puede haber tambieacuten reg temporales adicionales para intercambiar datos con el MBR y demaacutes reg visibles
bull un ciclo de instruccioacuten incluye los siguientes sub ciclos
bull Capitacioacuten es la que lleva la siguiente instruccioacuten de la memoria al procesador
bull Ejecucioacuten interpreta el coacutedigo de operacioacuten y lleva a cabo la operacioacuten indicada
bull Interrupcioacuten si ocurre un problema guarda el estado del proceso actual y atiende la interrupcioacuten
CICLO DE INSTRUCCIOacuteN
CICLO INDIRECTObull Si se usa direccionamiento indirecto es necesario memoria adicional
bull La principal actividad es consiste en alternar las actividades de captacioacuten y ejecucioacuten de instrucciones
bull La instruccioacuten es captada pada determinar si incluye un direccionamiento indirecto
bull Una vez que la instruccioacuten es captada debe identificar sus campos de operando
bull Despueacutes que se ejecuta es un proceso similar para almacenar
bull El resultado en la memoria principal
FLUJO DE DATOS
bull La secuencia de eventos que tienen lugar durante el clico de instruccioacuten depende del procesador
bull El contador de programa contiene la direccioacuten de la siguiente instruccioacuten
bull La unidad de control solicita una lectura de memoria y el resultado se pone en un bus de datos y se lleva al registro de instruccioacuten
bull El ciclo de ejecucioacuten adopta muchas formas ya que se ya que depende del registro de instruccioacuten
bull Este ciclo puede aplicar transferencia de datos entre registros asiacute como lectura y escritura en Es
bull Mientras que el ciclo de interrupcioacuten es simple el contenido de contador de programa debe ser almacenado para que el procesador pueda continuar su actividad
La segmentacioacuten o pipeline es una teacutecnica de realizacioacuten de procesadores por la cual se solapa la ejecucioacuten de las instrucciones Hoy en diacutea es la teacutecnica clave para la realizacioacuten de CPU raacutepidas La idea baacutesica de la segmentacioacuten se puede extraer de una cadena de montaje de coches Los coches no se montan uno a uno si no que su construccioacuten se divide en fases sucesivas y el montaje del coche se realiza tal como este va avanzando por estas fases De esta forma cada fase estaacute trabajando simultaacuteneamente en la construccioacuten de un coche diferente De esta forma la construccioacuten de un coche cuesta el mismo tiempo que antes pero ahora la frecuencia con que salen los coches construidos es mucho mayor (tantos como fases tenga su construccioacuten) Cada uno de estas fases se denomina segmento o etapa de segmentacioacuten Al igual que en los coches la productividad de un computador va a depender del nuacutemero de instrucciones que acaben por unidad de tiempo y no de lo que le cueste a una instruccioacuten individual
SEGMENTACIOacuteN DE INSTRUCCIONES
RISC (del ingleacutes reduced instruction set computer) es un tipo de microprocesador con las siguientes caracteriacutesticas fundamentalesbull Instrucciones de tamantildeo fijo y presentadas en un reducido nuacutemero de formatosbull Soacutelo las instrucciones de carga y almacenamiento acceden a la memoria de datosbull El objetivo de disentildear maacutequinas con esta arquitectura es posibilitar la segmentacioacuten y el
paralelismo en la ejecucioacuten de instrucciones y reducir los accesos a memoria
ARQUITECTURA RISC
CISC (complex instruction set computer) bull Los microprocesadores CISC tienen un conjunto de instrucciones que se caracteriza
por ser muy amplio y permitir operaciones complejas entre operandos situados en la memoria o en los registros internos en contraposicioacuten a la arquitectura RISC
bull Este tipo de arquitectura dificulta el paralelismo entre instrucciones por lo que en la actualidad la mayoriacutea de los sistemas CISC de alto rendimiento implementan un sistema que convierte dichas instrucciones complejas en varias instrucciones simples del tipo RISC llamadas generalmente microinstrucciones
bull Para realizar una sola instruccioacuten un chip CISC requiere de cuatro a diez ciclos de reloj
ARQUITECTURA CISC
ORGANIZACIOacuteN DEL PROCESADOR
Captar instrucciones el procesador lee una instruccioacuten de memoria (registro cache o memoria principal)Interpretar instruccioacuten la instruccioacuten se codifica para determinar queacute accioacuten es necesarioCaptar datos la ejecucioacuten de una instruccioacuten puede exigir leer datos de memoria o de un moacutedulo de ESProcesar datos la ejecucioacuten e una instruccioacuten puede exigir llevar a cabo alguna operacioacuten aritmeacutetica o loacutegica con los datosEscribir datos los resultados de una ejecucioacuten pueden exigir escribir datos en la memoria o en el moacutedulo de ESPara hacer estas cosas el procesador necesita almacenar instrucciones y datos temporalmente mientras una instruccioacuten esta ejecutaacutendose en otras palabras el procesador necesita una pequentildea memoria interna
ORGANIZACIOacuteN DE REGISTROS
Registros visibles al usuario son utilizados por el programador
Registros de control y estado son utilizados por la UC para controlar la operacioacuten de la CPU (no son visibles por el programador)
REGISTROS VISIBLES AL USUARIObull Pueden ser asignados a una variedad de funciones
bull cualquier registro de propoacutesito general puede contener el operando para cualquier coacutedigo de operacioacuten (verdadero propoacutesito)
bull pueden existir restricciones (ej Registros dedicados a operaciones especificas)
NUacuteMERO DE REGISTROSbull Afecta al tamantildeo de la instruccioacuten
bull Mayor Nordm de registros maacutes bits para especificarlos en la instruccioacuten
bull Pocos registros maacutes referencias a memoria
bull No oacuteptimo entre 8 y 32 reg Maacutes no hay gran mejora (aumenta tamantildeo de la instruccioacuten)
LONGITUD DE LOS REGISTROSbull De direcciones deben ser capaces de almacenar la direccioacuten maacutes grande
bull De datos deben estar habilitados para almacenar la mayoriacutea de los tipos de datos
bull Algunas maacutequinas permiten 2 registros contiguos utilizados como un solo registro para almacenar valores de doble longitud
BITS DE CONDICIOacuteN (BANDERAS)bull Bits establecidos por la CPU como resultado de operaciones
bull Pueden ser utilizados por las instrucciones de bifurcacioacuten condicional
bull Generalmente no son alterados por el programador
REGISTROS DE CONTROL Y ESTADObull Empleados para controlar la operacioacuten de la CPU En la mayoriacutea de las
maacutequinas no son visibles al usuario
bull Los 4 esenciales para la ejecucioacuten de
bull Contador de programa (PC)
bull Registro de instruccioacuten (IR)
bull Registro de direccioacuten de memoria (MAR)
bull Registro buffer de memoria (MBR)bull Los 4 reg recieacuten mencionados se emplean para el movimiento de datos
entre la CPU y memoria
bull Dentro de la CPU los datos se deben presentar a la ALU para procesamiento eacutesta puede acceder al MBR y a los reg visibles por el usuario Puede haber tambieacuten reg temporales adicionales para intercambiar datos con el MBR y demaacutes reg visibles
bull un ciclo de instruccioacuten incluye los siguientes sub ciclos
bull Capitacioacuten es la que lleva la siguiente instruccioacuten de la memoria al procesador
bull Ejecucioacuten interpreta el coacutedigo de operacioacuten y lleva a cabo la operacioacuten indicada
bull Interrupcioacuten si ocurre un problema guarda el estado del proceso actual y atiende la interrupcioacuten
CICLO DE INSTRUCCIOacuteN
CICLO INDIRECTObull Si se usa direccionamiento indirecto es necesario memoria adicional
bull La principal actividad es consiste en alternar las actividades de captacioacuten y ejecucioacuten de instrucciones
bull La instruccioacuten es captada pada determinar si incluye un direccionamiento indirecto
bull Una vez que la instruccioacuten es captada debe identificar sus campos de operando
bull Despueacutes que se ejecuta es un proceso similar para almacenar
bull El resultado en la memoria principal
FLUJO DE DATOS
bull La secuencia de eventos que tienen lugar durante el clico de instruccioacuten depende del procesador
bull El contador de programa contiene la direccioacuten de la siguiente instruccioacuten
bull La unidad de control solicita una lectura de memoria y el resultado se pone en un bus de datos y se lleva al registro de instruccioacuten
bull El ciclo de ejecucioacuten adopta muchas formas ya que se ya que depende del registro de instruccioacuten
bull Este ciclo puede aplicar transferencia de datos entre registros asiacute como lectura y escritura en Es
bull Mientras que el ciclo de interrupcioacuten es simple el contenido de contador de programa debe ser almacenado para que el procesador pueda continuar su actividad
La segmentacioacuten o pipeline es una teacutecnica de realizacioacuten de procesadores por la cual se solapa la ejecucioacuten de las instrucciones Hoy en diacutea es la teacutecnica clave para la realizacioacuten de CPU raacutepidas La idea baacutesica de la segmentacioacuten se puede extraer de una cadena de montaje de coches Los coches no se montan uno a uno si no que su construccioacuten se divide en fases sucesivas y el montaje del coche se realiza tal como este va avanzando por estas fases De esta forma cada fase estaacute trabajando simultaacuteneamente en la construccioacuten de un coche diferente De esta forma la construccioacuten de un coche cuesta el mismo tiempo que antes pero ahora la frecuencia con que salen los coches construidos es mucho mayor (tantos como fases tenga su construccioacuten) Cada uno de estas fases se denomina segmento o etapa de segmentacioacuten Al igual que en los coches la productividad de un computador va a depender del nuacutemero de instrucciones que acaben por unidad de tiempo y no de lo que le cueste a una instruccioacuten individual
SEGMENTACIOacuteN DE INSTRUCCIONES
RISC (del ingleacutes reduced instruction set computer) es un tipo de microprocesador con las siguientes caracteriacutesticas fundamentalesbull Instrucciones de tamantildeo fijo y presentadas en un reducido nuacutemero de formatosbull Soacutelo las instrucciones de carga y almacenamiento acceden a la memoria de datosbull El objetivo de disentildear maacutequinas con esta arquitectura es posibilitar la segmentacioacuten y el
paralelismo en la ejecucioacuten de instrucciones y reducir los accesos a memoria
ARQUITECTURA RISC
CISC (complex instruction set computer) bull Los microprocesadores CISC tienen un conjunto de instrucciones que se caracteriza
por ser muy amplio y permitir operaciones complejas entre operandos situados en la memoria o en los registros internos en contraposicioacuten a la arquitectura RISC
bull Este tipo de arquitectura dificulta el paralelismo entre instrucciones por lo que en la actualidad la mayoriacutea de los sistemas CISC de alto rendimiento implementan un sistema que convierte dichas instrucciones complejas en varias instrucciones simples del tipo RISC llamadas generalmente microinstrucciones
bull Para realizar una sola instruccioacuten un chip CISC requiere de cuatro a diez ciclos de reloj
ARQUITECTURA CISC
ORGANIZACIOacuteN DE REGISTROS
Registros visibles al usuario son utilizados por el programador
Registros de control y estado son utilizados por la UC para controlar la operacioacuten de la CPU (no son visibles por el programador)
REGISTROS VISIBLES AL USUARIObull Pueden ser asignados a una variedad de funciones
bull cualquier registro de propoacutesito general puede contener el operando para cualquier coacutedigo de operacioacuten (verdadero propoacutesito)
bull pueden existir restricciones (ej Registros dedicados a operaciones especificas)
NUacuteMERO DE REGISTROSbull Afecta al tamantildeo de la instruccioacuten
bull Mayor Nordm de registros maacutes bits para especificarlos en la instruccioacuten
bull Pocos registros maacutes referencias a memoria
bull No oacuteptimo entre 8 y 32 reg Maacutes no hay gran mejora (aumenta tamantildeo de la instruccioacuten)
LONGITUD DE LOS REGISTROSbull De direcciones deben ser capaces de almacenar la direccioacuten maacutes grande
bull De datos deben estar habilitados para almacenar la mayoriacutea de los tipos de datos
bull Algunas maacutequinas permiten 2 registros contiguos utilizados como un solo registro para almacenar valores de doble longitud
BITS DE CONDICIOacuteN (BANDERAS)bull Bits establecidos por la CPU como resultado de operaciones
bull Pueden ser utilizados por las instrucciones de bifurcacioacuten condicional
bull Generalmente no son alterados por el programador
REGISTROS DE CONTROL Y ESTADObull Empleados para controlar la operacioacuten de la CPU En la mayoriacutea de las
maacutequinas no son visibles al usuario
bull Los 4 esenciales para la ejecucioacuten de
bull Contador de programa (PC)
bull Registro de instruccioacuten (IR)
bull Registro de direccioacuten de memoria (MAR)
bull Registro buffer de memoria (MBR)bull Los 4 reg recieacuten mencionados se emplean para el movimiento de datos
entre la CPU y memoria
bull Dentro de la CPU los datos se deben presentar a la ALU para procesamiento eacutesta puede acceder al MBR y a los reg visibles por el usuario Puede haber tambieacuten reg temporales adicionales para intercambiar datos con el MBR y demaacutes reg visibles
bull un ciclo de instruccioacuten incluye los siguientes sub ciclos
bull Capitacioacuten es la que lleva la siguiente instruccioacuten de la memoria al procesador
bull Ejecucioacuten interpreta el coacutedigo de operacioacuten y lleva a cabo la operacioacuten indicada
bull Interrupcioacuten si ocurre un problema guarda el estado del proceso actual y atiende la interrupcioacuten
CICLO DE INSTRUCCIOacuteN
CICLO INDIRECTObull Si se usa direccionamiento indirecto es necesario memoria adicional
bull La principal actividad es consiste en alternar las actividades de captacioacuten y ejecucioacuten de instrucciones
bull La instruccioacuten es captada pada determinar si incluye un direccionamiento indirecto
bull Una vez que la instruccioacuten es captada debe identificar sus campos de operando
bull Despueacutes que se ejecuta es un proceso similar para almacenar
bull El resultado en la memoria principal
FLUJO DE DATOS
bull La secuencia de eventos que tienen lugar durante el clico de instruccioacuten depende del procesador
bull El contador de programa contiene la direccioacuten de la siguiente instruccioacuten
bull La unidad de control solicita una lectura de memoria y el resultado se pone en un bus de datos y se lleva al registro de instruccioacuten
bull El ciclo de ejecucioacuten adopta muchas formas ya que se ya que depende del registro de instruccioacuten
bull Este ciclo puede aplicar transferencia de datos entre registros asiacute como lectura y escritura en Es
bull Mientras que el ciclo de interrupcioacuten es simple el contenido de contador de programa debe ser almacenado para que el procesador pueda continuar su actividad
La segmentacioacuten o pipeline es una teacutecnica de realizacioacuten de procesadores por la cual se solapa la ejecucioacuten de las instrucciones Hoy en diacutea es la teacutecnica clave para la realizacioacuten de CPU raacutepidas La idea baacutesica de la segmentacioacuten se puede extraer de una cadena de montaje de coches Los coches no se montan uno a uno si no que su construccioacuten se divide en fases sucesivas y el montaje del coche se realiza tal como este va avanzando por estas fases De esta forma cada fase estaacute trabajando simultaacuteneamente en la construccioacuten de un coche diferente De esta forma la construccioacuten de un coche cuesta el mismo tiempo que antes pero ahora la frecuencia con que salen los coches construidos es mucho mayor (tantos como fases tenga su construccioacuten) Cada uno de estas fases se denomina segmento o etapa de segmentacioacuten Al igual que en los coches la productividad de un computador va a depender del nuacutemero de instrucciones que acaben por unidad de tiempo y no de lo que le cueste a una instruccioacuten individual
SEGMENTACIOacuteN DE INSTRUCCIONES
RISC (del ingleacutes reduced instruction set computer) es un tipo de microprocesador con las siguientes caracteriacutesticas fundamentalesbull Instrucciones de tamantildeo fijo y presentadas en un reducido nuacutemero de formatosbull Soacutelo las instrucciones de carga y almacenamiento acceden a la memoria de datosbull El objetivo de disentildear maacutequinas con esta arquitectura es posibilitar la segmentacioacuten y el
paralelismo en la ejecucioacuten de instrucciones y reducir los accesos a memoria
ARQUITECTURA RISC
CISC (complex instruction set computer) bull Los microprocesadores CISC tienen un conjunto de instrucciones que se caracteriza
por ser muy amplio y permitir operaciones complejas entre operandos situados en la memoria o en los registros internos en contraposicioacuten a la arquitectura RISC
bull Este tipo de arquitectura dificulta el paralelismo entre instrucciones por lo que en la actualidad la mayoriacutea de los sistemas CISC de alto rendimiento implementan un sistema que convierte dichas instrucciones complejas en varias instrucciones simples del tipo RISC llamadas generalmente microinstrucciones
bull Para realizar una sola instruccioacuten un chip CISC requiere de cuatro a diez ciclos de reloj
ARQUITECTURA CISC
REGISTROS VISIBLES AL USUARIObull Pueden ser asignados a una variedad de funciones
bull cualquier registro de propoacutesito general puede contener el operando para cualquier coacutedigo de operacioacuten (verdadero propoacutesito)
bull pueden existir restricciones (ej Registros dedicados a operaciones especificas)
NUacuteMERO DE REGISTROSbull Afecta al tamantildeo de la instruccioacuten
bull Mayor Nordm de registros maacutes bits para especificarlos en la instruccioacuten
bull Pocos registros maacutes referencias a memoria
bull No oacuteptimo entre 8 y 32 reg Maacutes no hay gran mejora (aumenta tamantildeo de la instruccioacuten)
LONGITUD DE LOS REGISTROSbull De direcciones deben ser capaces de almacenar la direccioacuten maacutes grande
bull De datos deben estar habilitados para almacenar la mayoriacutea de los tipos de datos
bull Algunas maacutequinas permiten 2 registros contiguos utilizados como un solo registro para almacenar valores de doble longitud
BITS DE CONDICIOacuteN (BANDERAS)bull Bits establecidos por la CPU como resultado de operaciones
bull Pueden ser utilizados por las instrucciones de bifurcacioacuten condicional
bull Generalmente no son alterados por el programador
REGISTROS DE CONTROL Y ESTADObull Empleados para controlar la operacioacuten de la CPU En la mayoriacutea de las
maacutequinas no son visibles al usuario
bull Los 4 esenciales para la ejecucioacuten de
bull Contador de programa (PC)
bull Registro de instruccioacuten (IR)
bull Registro de direccioacuten de memoria (MAR)
bull Registro buffer de memoria (MBR)bull Los 4 reg recieacuten mencionados se emplean para el movimiento de datos
entre la CPU y memoria
bull Dentro de la CPU los datos se deben presentar a la ALU para procesamiento eacutesta puede acceder al MBR y a los reg visibles por el usuario Puede haber tambieacuten reg temporales adicionales para intercambiar datos con el MBR y demaacutes reg visibles
bull un ciclo de instruccioacuten incluye los siguientes sub ciclos
bull Capitacioacuten es la que lleva la siguiente instruccioacuten de la memoria al procesador
bull Ejecucioacuten interpreta el coacutedigo de operacioacuten y lleva a cabo la operacioacuten indicada
bull Interrupcioacuten si ocurre un problema guarda el estado del proceso actual y atiende la interrupcioacuten
CICLO DE INSTRUCCIOacuteN
CICLO INDIRECTObull Si se usa direccionamiento indirecto es necesario memoria adicional
bull La principal actividad es consiste en alternar las actividades de captacioacuten y ejecucioacuten de instrucciones
bull La instruccioacuten es captada pada determinar si incluye un direccionamiento indirecto
bull Una vez que la instruccioacuten es captada debe identificar sus campos de operando
bull Despueacutes que se ejecuta es un proceso similar para almacenar
bull El resultado en la memoria principal
FLUJO DE DATOS
bull La secuencia de eventos que tienen lugar durante el clico de instruccioacuten depende del procesador
bull El contador de programa contiene la direccioacuten de la siguiente instruccioacuten
bull La unidad de control solicita una lectura de memoria y el resultado se pone en un bus de datos y se lleva al registro de instruccioacuten
bull El ciclo de ejecucioacuten adopta muchas formas ya que se ya que depende del registro de instruccioacuten
bull Este ciclo puede aplicar transferencia de datos entre registros asiacute como lectura y escritura en Es
bull Mientras que el ciclo de interrupcioacuten es simple el contenido de contador de programa debe ser almacenado para que el procesador pueda continuar su actividad
La segmentacioacuten o pipeline es una teacutecnica de realizacioacuten de procesadores por la cual se solapa la ejecucioacuten de las instrucciones Hoy en diacutea es la teacutecnica clave para la realizacioacuten de CPU raacutepidas La idea baacutesica de la segmentacioacuten se puede extraer de una cadena de montaje de coches Los coches no se montan uno a uno si no que su construccioacuten se divide en fases sucesivas y el montaje del coche se realiza tal como este va avanzando por estas fases De esta forma cada fase estaacute trabajando simultaacuteneamente en la construccioacuten de un coche diferente De esta forma la construccioacuten de un coche cuesta el mismo tiempo que antes pero ahora la frecuencia con que salen los coches construidos es mucho mayor (tantos como fases tenga su construccioacuten) Cada uno de estas fases se denomina segmento o etapa de segmentacioacuten Al igual que en los coches la productividad de un computador va a depender del nuacutemero de instrucciones que acaben por unidad de tiempo y no de lo que le cueste a una instruccioacuten individual
SEGMENTACIOacuteN DE INSTRUCCIONES
RISC (del ingleacutes reduced instruction set computer) es un tipo de microprocesador con las siguientes caracteriacutesticas fundamentalesbull Instrucciones de tamantildeo fijo y presentadas en un reducido nuacutemero de formatosbull Soacutelo las instrucciones de carga y almacenamiento acceden a la memoria de datosbull El objetivo de disentildear maacutequinas con esta arquitectura es posibilitar la segmentacioacuten y el
paralelismo en la ejecucioacuten de instrucciones y reducir los accesos a memoria
ARQUITECTURA RISC
CISC (complex instruction set computer) bull Los microprocesadores CISC tienen un conjunto de instrucciones que se caracteriza
por ser muy amplio y permitir operaciones complejas entre operandos situados en la memoria o en los registros internos en contraposicioacuten a la arquitectura RISC
bull Este tipo de arquitectura dificulta el paralelismo entre instrucciones por lo que en la actualidad la mayoriacutea de los sistemas CISC de alto rendimiento implementan un sistema que convierte dichas instrucciones complejas en varias instrucciones simples del tipo RISC llamadas generalmente microinstrucciones
bull Para realizar una sola instruccioacuten un chip CISC requiere de cuatro a diez ciclos de reloj
ARQUITECTURA CISC
LONGITUD DE LOS REGISTROSbull De direcciones deben ser capaces de almacenar la direccioacuten maacutes grande
bull De datos deben estar habilitados para almacenar la mayoriacutea de los tipos de datos
bull Algunas maacutequinas permiten 2 registros contiguos utilizados como un solo registro para almacenar valores de doble longitud
BITS DE CONDICIOacuteN (BANDERAS)bull Bits establecidos por la CPU como resultado de operaciones
bull Pueden ser utilizados por las instrucciones de bifurcacioacuten condicional
bull Generalmente no son alterados por el programador
REGISTROS DE CONTROL Y ESTADObull Empleados para controlar la operacioacuten de la CPU En la mayoriacutea de las
maacutequinas no son visibles al usuario
bull Los 4 esenciales para la ejecucioacuten de
bull Contador de programa (PC)
bull Registro de instruccioacuten (IR)
bull Registro de direccioacuten de memoria (MAR)
bull Registro buffer de memoria (MBR)bull Los 4 reg recieacuten mencionados se emplean para el movimiento de datos
entre la CPU y memoria
bull Dentro de la CPU los datos se deben presentar a la ALU para procesamiento eacutesta puede acceder al MBR y a los reg visibles por el usuario Puede haber tambieacuten reg temporales adicionales para intercambiar datos con el MBR y demaacutes reg visibles
bull un ciclo de instruccioacuten incluye los siguientes sub ciclos
bull Capitacioacuten es la que lleva la siguiente instruccioacuten de la memoria al procesador
bull Ejecucioacuten interpreta el coacutedigo de operacioacuten y lleva a cabo la operacioacuten indicada
bull Interrupcioacuten si ocurre un problema guarda el estado del proceso actual y atiende la interrupcioacuten
CICLO DE INSTRUCCIOacuteN
CICLO INDIRECTObull Si se usa direccionamiento indirecto es necesario memoria adicional
bull La principal actividad es consiste en alternar las actividades de captacioacuten y ejecucioacuten de instrucciones
bull La instruccioacuten es captada pada determinar si incluye un direccionamiento indirecto
bull Una vez que la instruccioacuten es captada debe identificar sus campos de operando
bull Despueacutes que se ejecuta es un proceso similar para almacenar
bull El resultado en la memoria principal
FLUJO DE DATOS
bull La secuencia de eventos que tienen lugar durante el clico de instruccioacuten depende del procesador
bull El contador de programa contiene la direccioacuten de la siguiente instruccioacuten
bull La unidad de control solicita una lectura de memoria y el resultado se pone en un bus de datos y se lleva al registro de instruccioacuten
bull El ciclo de ejecucioacuten adopta muchas formas ya que se ya que depende del registro de instruccioacuten
bull Este ciclo puede aplicar transferencia de datos entre registros asiacute como lectura y escritura en Es
bull Mientras que el ciclo de interrupcioacuten es simple el contenido de contador de programa debe ser almacenado para que el procesador pueda continuar su actividad
La segmentacioacuten o pipeline es una teacutecnica de realizacioacuten de procesadores por la cual se solapa la ejecucioacuten de las instrucciones Hoy en diacutea es la teacutecnica clave para la realizacioacuten de CPU raacutepidas La idea baacutesica de la segmentacioacuten se puede extraer de una cadena de montaje de coches Los coches no se montan uno a uno si no que su construccioacuten se divide en fases sucesivas y el montaje del coche se realiza tal como este va avanzando por estas fases De esta forma cada fase estaacute trabajando simultaacuteneamente en la construccioacuten de un coche diferente De esta forma la construccioacuten de un coche cuesta el mismo tiempo que antes pero ahora la frecuencia con que salen los coches construidos es mucho mayor (tantos como fases tenga su construccioacuten) Cada uno de estas fases se denomina segmento o etapa de segmentacioacuten Al igual que en los coches la productividad de un computador va a depender del nuacutemero de instrucciones que acaben por unidad de tiempo y no de lo que le cueste a una instruccioacuten individual
SEGMENTACIOacuteN DE INSTRUCCIONES
RISC (del ingleacutes reduced instruction set computer) es un tipo de microprocesador con las siguientes caracteriacutesticas fundamentalesbull Instrucciones de tamantildeo fijo y presentadas en un reducido nuacutemero de formatosbull Soacutelo las instrucciones de carga y almacenamiento acceden a la memoria de datosbull El objetivo de disentildear maacutequinas con esta arquitectura es posibilitar la segmentacioacuten y el
paralelismo en la ejecucioacuten de instrucciones y reducir los accesos a memoria
ARQUITECTURA RISC
CISC (complex instruction set computer) bull Los microprocesadores CISC tienen un conjunto de instrucciones que se caracteriza
por ser muy amplio y permitir operaciones complejas entre operandos situados en la memoria o en los registros internos en contraposicioacuten a la arquitectura RISC
bull Este tipo de arquitectura dificulta el paralelismo entre instrucciones por lo que en la actualidad la mayoriacutea de los sistemas CISC de alto rendimiento implementan un sistema que convierte dichas instrucciones complejas en varias instrucciones simples del tipo RISC llamadas generalmente microinstrucciones
bull Para realizar una sola instruccioacuten un chip CISC requiere de cuatro a diez ciclos de reloj
ARQUITECTURA CISC
REGISTROS DE CONTROL Y ESTADObull Empleados para controlar la operacioacuten de la CPU En la mayoriacutea de las
maacutequinas no son visibles al usuario
bull Los 4 esenciales para la ejecucioacuten de
bull Contador de programa (PC)
bull Registro de instruccioacuten (IR)
bull Registro de direccioacuten de memoria (MAR)
bull Registro buffer de memoria (MBR)bull Los 4 reg recieacuten mencionados se emplean para el movimiento de datos
entre la CPU y memoria
bull Dentro de la CPU los datos se deben presentar a la ALU para procesamiento eacutesta puede acceder al MBR y a los reg visibles por el usuario Puede haber tambieacuten reg temporales adicionales para intercambiar datos con el MBR y demaacutes reg visibles
bull un ciclo de instruccioacuten incluye los siguientes sub ciclos
bull Capitacioacuten es la que lleva la siguiente instruccioacuten de la memoria al procesador
bull Ejecucioacuten interpreta el coacutedigo de operacioacuten y lleva a cabo la operacioacuten indicada
bull Interrupcioacuten si ocurre un problema guarda el estado del proceso actual y atiende la interrupcioacuten
CICLO DE INSTRUCCIOacuteN
CICLO INDIRECTObull Si se usa direccionamiento indirecto es necesario memoria adicional
bull La principal actividad es consiste en alternar las actividades de captacioacuten y ejecucioacuten de instrucciones
bull La instruccioacuten es captada pada determinar si incluye un direccionamiento indirecto
bull Una vez que la instruccioacuten es captada debe identificar sus campos de operando
bull Despueacutes que se ejecuta es un proceso similar para almacenar
bull El resultado en la memoria principal
FLUJO DE DATOS
bull La secuencia de eventos que tienen lugar durante el clico de instruccioacuten depende del procesador
bull El contador de programa contiene la direccioacuten de la siguiente instruccioacuten
bull La unidad de control solicita una lectura de memoria y el resultado se pone en un bus de datos y se lleva al registro de instruccioacuten
bull El ciclo de ejecucioacuten adopta muchas formas ya que se ya que depende del registro de instruccioacuten
bull Este ciclo puede aplicar transferencia de datos entre registros asiacute como lectura y escritura en Es
bull Mientras que el ciclo de interrupcioacuten es simple el contenido de contador de programa debe ser almacenado para que el procesador pueda continuar su actividad
La segmentacioacuten o pipeline es una teacutecnica de realizacioacuten de procesadores por la cual se solapa la ejecucioacuten de las instrucciones Hoy en diacutea es la teacutecnica clave para la realizacioacuten de CPU raacutepidas La idea baacutesica de la segmentacioacuten se puede extraer de una cadena de montaje de coches Los coches no se montan uno a uno si no que su construccioacuten se divide en fases sucesivas y el montaje del coche se realiza tal como este va avanzando por estas fases De esta forma cada fase estaacute trabajando simultaacuteneamente en la construccioacuten de un coche diferente De esta forma la construccioacuten de un coche cuesta el mismo tiempo que antes pero ahora la frecuencia con que salen los coches construidos es mucho mayor (tantos como fases tenga su construccioacuten) Cada uno de estas fases se denomina segmento o etapa de segmentacioacuten Al igual que en los coches la productividad de un computador va a depender del nuacutemero de instrucciones que acaben por unidad de tiempo y no de lo que le cueste a una instruccioacuten individual
SEGMENTACIOacuteN DE INSTRUCCIONES
RISC (del ingleacutes reduced instruction set computer) es un tipo de microprocesador con las siguientes caracteriacutesticas fundamentalesbull Instrucciones de tamantildeo fijo y presentadas en un reducido nuacutemero de formatosbull Soacutelo las instrucciones de carga y almacenamiento acceden a la memoria de datosbull El objetivo de disentildear maacutequinas con esta arquitectura es posibilitar la segmentacioacuten y el
paralelismo en la ejecucioacuten de instrucciones y reducir los accesos a memoria
ARQUITECTURA RISC
CISC (complex instruction set computer) bull Los microprocesadores CISC tienen un conjunto de instrucciones que se caracteriza
por ser muy amplio y permitir operaciones complejas entre operandos situados en la memoria o en los registros internos en contraposicioacuten a la arquitectura RISC
bull Este tipo de arquitectura dificulta el paralelismo entre instrucciones por lo que en la actualidad la mayoriacutea de los sistemas CISC de alto rendimiento implementan un sistema que convierte dichas instrucciones complejas en varias instrucciones simples del tipo RISC llamadas generalmente microinstrucciones
bull Para realizar una sola instruccioacuten un chip CISC requiere de cuatro a diez ciclos de reloj
ARQUITECTURA CISC
bull un ciclo de instruccioacuten incluye los siguientes sub ciclos
bull Capitacioacuten es la que lleva la siguiente instruccioacuten de la memoria al procesador
bull Ejecucioacuten interpreta el coacutedigo de operacioacuten y lleva a cabo la operacioacuten indicada
bull Interrupcioacuten si ocurre un problema guarda el estado del proceso actual y atiende la interrupcioacuten
CICLO DE INSTRUCCIOacuteN
CICLO INDIRECTObull Si se usa direccionamiento indirecto es necesario memoria adicional
bull La principal actividad es consiste en alternar las actividades de captacioacuten y ejecucioacuten de instrucciones
bull La instruccioacuten es captada pada determinar si incluye un direccionamiento indirecto
bull Una vez que la instruccioacuten es captada debe identificar sus campos de operando
bull Despueacutes que se ejecuta es un proceso similar para almacenar
bull El resultado en la memoria principal
FLUJO DE DATOS
bull La secuencia de eventos que tienen lugar durante el clico de instruccioacuten depende del procesador
bull El contador de programa contiene la direccioacuten de la siguiente instruccioacuten
bull La unidad de control solicita una lectura de memoria y el resultado se pone en un bus de datos y se lleva al registro de instruccioacuten
bull El ciclo de ejecucioacuten adopta muchas formas ya que se ya que depende del registro de instruccioacuten
bull Este ciclo puede aplicar transferencia de datos entre registros asiacute como lectura y escritura en Es
bull Mientras que el ciclo de interrupcioacuten es simple el contenido de contador de programa debe ser almacenado para que el procesador pueda continuar su actividad
La segmentacioacuten o pipeline es una teacutecnica de realizacioacuten de procesadores por la cual se solapa la ejecucioacuten de las instrucciones Hoy en diacutea es la teacutecnica clave para la realizacioacuten de CPU raacutepidas La idea baacutesica de la segmentacioacuten se puede extraer de una cadena de montaje de coches Los coches no se montan uno a uno si no que su construccioacuten se divide en fases sucesivas y el montaje del coche se realiza tal como este va avanzando por estas fases De esta forma cada fase estaacute trabajando simultaacuteneamente en la construccioacuten de un coche diferente De esta forma la construccioacuten de un coche cuesta el mismo tiempo que antes pero ahora la frecuencia con que salen los coches construidos es mucho mayor (tantos como fases tenga su construccioacuten) Cada uno de estas fases se denomina segmento o etapa de segmentacioacuten Al igual que en los coches la productividad de un computador va a depender del nuacutemero de instrucciones que acaben por unidad de tiempo y no de lo que le cueste a una instruccioacuten individual
SEGMENTACIOacuteN DE INSTRUCCIONES
RISC (del ingleacutes reduced instruction set computer) es un tipo de microprocesador con las siguientes caracteriacutesticas fundamentalesbull Instrucciones de tamantildeo fijo y presentadas en un reducido nuacutemero de formatosbull Soacutelo las instrucciones de carga y almacenamiento acceden a la memoria de datosbull El objetivo de disentildear maacutequinas con esta arquitectura es posibilitar la segmentacioacuten y el
paralelismo en la ejecucioacuten de instrucciones y reducir los accesos a memoria
ARQUITECTURA RISC
CISC (complex instruction set computer) bull Los microprocesadores CISC tienen un conjunto de instrucciones que se caracteriza
por ser muy amplio y permitir operaciones complejas entre operandos situados en la memoria o en los registros internos en contraposicioacuten a la arquitectura RISC
bull Este tipo de arquitectura dificulta el paralelismo entre instrucciones por lo que en la actualidad la mayoriacutea de los sistemas CISC de alto rendimiento implementan un sistema que convierte dichas instrucciones complejas en varias instrucciones simples del tipo RISC llamadas generalmente microinstrucciones
bull Para realizar una sola instruccioacuten un chip CISC requiere de cuatro a diez ciclos de reloj
ARQUITECTURA CISC
CICLO INDIRECTObull Si se usa direccionamiento indirecto es necesario memoria adicional
bull La principal actividad es consiste en alternar las actividades de captacioacuten y ejecucioacuten de instrucciones
bull La instruccioacuten es captada pada determinar si incluye un direccionamiento indirecto
bull Una vez que la instruccioacuten es captada debe identificar sus campos de operando
bull Despueacutes que se ejecuta es un proceso similar para almacenar
bull El resultado en la memoria principal
FLUJO DE DATOS
bull La secuencia de eventos que tienen lugar durante el clico de instruccioacuten depende del procesador
bull El contador de programa contiene la direccioacuten de la siguiente instruccioacuten
bull La unidad de control solicita una lectura de memoria y el resultado se pone en un bus de datos y se lleva al registro de instruccioacuten
bull El ciclo de ejecucioacuten adopta muchas formas ya que se ya que depende del registro de instruccioacuten
bull Este ciclo puede aplicar transferencia de datos entre registros asiacute como lectura y escritura en Es
bull Mientras que el ciclo de interrupcioacuten es simple el contenido de contador de programa debe ser almacenado para que el procesador pueda continuar su actividad
La segmentacioacuten o pipeline es una teacutecnica de realizacioacuten de procesadores por la cual se solapa la ejecucioacuten de las instrucciones Hoy en diacutea es la teacutecnica clave para la realizacioacuten de CPU raacutepidas La idea baacutesica de la segmentacioacuten se puede extraer de una cadena de montaje de coches Los coches no se montan uno a uno si no que su construccioacuten se divide en fases sucesivas y el montaje del coche se realiza tal como este va avanzando por estas fases De esta forma cada fase estaacute trabajando simultaacuteneamente en la construccioacuten de un coche diferente De esta forma la construccioacuten de un coche cuesta el mismo tiempo que antes pero ahora la frecuencia con que salen los coches construidos es mucho mayor (tantos como fases tenga su construccioacuten) Cada uno de estas fases se denomina segmento o etapa de segmentacioacuten Al igual que en los coches la productividad de un computador va a depender del nuacutemero de instrucciones que acaben por unidad de tiempo y no de lo que le cueste a una instruccioacuten individual
SEGMENTACIOacuteN DE INSTRUCCIONES
RISC (del ingleacutes reduced instruction set computer) es un tipo de microprocesador con las siguientes caracteriacutesticas fundamentalesbull Instrucciones de tamantildeo fijo y presentadas en un reducido nuacutemero de formatosbull Soacutelo las instrucciones de carga y almacenamiento acceden a la memoria de datosbull El objetivo de disentildear maacutequinas con esta arquitectura es posibilitar la segmentacioacuten y el
paralelismo en la ejecucioacuten de instrucciones y reducir los accesos a memoria
ARQUITECTURA RISC
CISC (complex instruction set computer) bull Los microprocesadores CISC tienen un conjunto de instrucciones que se caracteriza
por ser muy amplio y permitir operaciones complejas entre operandos situados en la memoria o en los registros internos en contraposicioacuten a la arquitectura RISC
bull Este tipo de arquitectura dificulta el paralelismo entre instrucciones por lo que en la actualidad la mayoriacutea de los sistemas CISC de alto rendimiento implementan un sistema que convierte dichas instrucciones complejas en varias instrucciones simples del tipo RISC llamadas generalmente microinstrucciones
bull Para realizar una sola instruccioacuten un chip CISC requiere de cuatro a diez ciclos de reloj
ARQUITECTURA CISC
FLUJO DE DATOS
bull La secuencia de eventos que tienen lugar durante el clico de instruccioacuten depende del procesador
bull El contador de programa contiene la direccioacuten de la siguiente instruccioacuten
bull La unidad de control solicita una lectura de memoria y el resultado se pone en un bus de datos y se lleva al registro de instruccioacuten
bull El ciclo de ejecucioacuten adopta muchas formas ya que se ya que depende del registro de instruccioacuten
bull Este ciclo puede aplicar transferencia de datos entre registros asiacute como lectura y escritura en Es
bull Mientras que el ciclo de interrupcioacuten es simple el contenido de contador de programa debe ser almacenado para que el procesador pueda continuar su actividad
La segmentacioacuten o pipeline es una teacutecnica de realizacioacuten de procesadores por la cual se solapa la ejecucioacuten de las instrucciones Hoy en diacutea es la teacutecnica clave para la realizacioacuten de CPU raacutepidas La idea baacutesica de la segmentacioacuten se puede extraer de una cadena de montaje de coches Los coches no se montan uno a uno si no que su construccioacuten se divide en fases sucesivas y el montaje del coche se realiza tal como este va avanzando por estas fases De esta forma cada fase estaacute trabajando simultaacuteneamente en la construccioacuten de un coche diferente De esta forma la construccioacuten de un coche cuesta el mismo tiempo que antes pero ahora la frecuencia con que salen los coches construidos es mucho mayor (tantos como fases tenga su construccioacuten) Cada uno de estas fases se denomina segmento o etapa de segmentacioacuten Al igual que en los coches la productividad de un computador va a depender del nuacutemero de instrucciones que acaben por unidad de tiempo y no de lo que le cueste a una instruccioacuten individual
SEGMENTACIOacuteN DE INSTRUCCIONES
RISC (del ingleacutes reduced instruction set computer) es un tipo de microprocesador con las siguientes caracteriacutesticas fundamentalesbull Instrucciones de tamantildeo fijo y presentadas en un reducido nuacutemero de formatosbull Soacutelo las instrucciones de carga y almacenamiento acceden a la memoria de datosbull El objetivo de disentildear maacutequinas con esta arquitectura es posibilitar la segmentacioacuten y el
paralelismo en la ejecucioacuten de instrucciones y reducir los accesos a memoria
ARQUITECTURA RISC
CISC (complex instruction set computer) bull Los microprocesadores CISC tienen un conjunto de instrucciones que se caracteriza
por ser muy amplio y permitir operaciones complejas entre operandos situados en la memoria o en los registros internos en contraposicioacuten a la arquitectura RISC
bull Este tipo de arquitectura dificulta el paralelismo entre instrucciones por lo que en la actualidad la mayoriacutea de los sistemas CISC de alto rendimiento implementan un sistema que convierte dichas instrucciones complejas en varias instrucciones simples del tipo RISC llamadas generalmente microinstrucciones
bull Para realizar una sola instruccioacuten un chip CISC requiere de cuatro a diez ciclos de reloj
ARQUITECTURA CISC
La segmentacioacuten o pipeline es una teacutecnica de realizacioacuten de procesadores por la cual se solapa la ejecucioacuten de las instrucciones Hoy en diacutea es la teacutecnica clave para la realizacioacuten de CPU raacutepidas La idea baacutesica de la segmentacioacuten se puede extraer de una cadena de montaje de coches Los coches no se montan uno a uno si no que su construccioacuten se divide en fases sucesivas y el montaje del coche se realiza tal como este va avanzando por estas fases De esta forma cada fase estaacute trabajando simultaacuteneamente en la construccioacuten de un coche diferente De esta forma la construccioacuten de un coche cuesta el mismo tiempo que antes pero ahora la frecuencia con que salen los coches construidos es mucho mayor (tantos como fases tenga su construccioacuten) Cada uno de estas fases se denomina segmento o etapa de segmentacioacuten Al igual que en los coches la productividad de un computador va a depender del nuacutemero de instrucciones que acaben por unidad de tiempo y no de lo que le cueste a una instruccioacuten individual
SEGMENTACIOacuteN DE INSTRUCCIONES
RISC (del ingleacutes reduced instruction set computer) es un tipo de microprocesador con las siguientes caracteriacutesticas fundamentalesbull Instrucciones de tamantildeo fijo y presentadas en un reducido nuacutemero de formatosbull Soacutelo las instrucciones de carga y almacenamiento acceden a la memoria de datosbull El objetivo de disentildear maacutequinas con esta arquitectura es posibilitar la segmentacioacuten y el
paralelismo en la ejecucioacuten de instrucciones y reducir los accesos a memoria
ARQUITECTURA RISC
CISC (complex instruction set computer) bull Los microprocesadores CISC tienen un conjunto de instrucciones que se caracteriza
por ser muy amplio y permitir operaciones complejas entre operandos situados en la memoria o en los registros internos en contraposicioacuten a la arquitectura RISC
bull Este tipo de arquitectura dificulta el paralelismo entre instrucciones por lo que en la actualidad la mayoriacutea de los sistemas CISC de alto rendimiento implementan un sistema que convierte dichas instrucciones complejas en varias instrucciones simples del tipo RISC llamadas generalmente microinstrucciones
bull Para realizar una sola instruccioacuten un chip CISC requiere de cuatro a diez ciclos de reloj
ARQUITECTURA CISC
RISC (del ingleacutes reduced instruction set computer) es un tipo de microprocesador con las siguientes caracteriacutesticas fundamentalesbull Instrucciones de tamantildeo fijo y presentadas en un reducido nuacutemero de formatosbull Soacutelo las instrucciones de carga y almacenamiento acceden a la memoria de datosbull El objetivo de disentildear maacutequinas con esta arquitectura es posibilitar la segmentacioacuten y el
paralelismo en la ejecucioacuten de instrucciones y reducir los accesos a memoria
ARQUITECTURA RISC
CISC (complex instruction set computer) bull Los microprocesadores CISC tienen un conjunto de instrucciones que se caracteriza
por ser muy amplio y permitir operaciones complejas entre operandos situados en la memoria o en los registros internos en contraposicioacuten a la arquitectura RISC
bull Este tipo de arquitectura dificulta el paralelismo entre instrucciones por lo que en la actualidad la mayoriacutea de los sistemas CISC de alto rendimiento implementan un sistema que convierte dichas instrucciones complejas en varias instrucciones simples del tipo RISC llamadas generalmente microinstrucciones
bull Para realizar una sola instruccioacuten un chip CISC requiere de cuatro a diez ciclos de reloj
ARQUITECTURA CISC
CISC (complex instruction set computer) bull Los microprocesadores CISC tienen un conjunto de instrucciones que se caracteriza
por ser muy amplio y permitir operaciones complejas entre operandos situados en la memoria o en los registros internos en contraposicioacuten a la arquitectura RISC
bull Este tipo de arquitectura dificulta el paralelismo entre instrucciones por lo que en la actualidad la mayoriacutea de los sistemas CISC de alto rendimiento implementan un sistema que convierte dichas instrucciones complejas en varias instrucciones simples del tipo RISC llamadas generalmente microinstrucciones
bull Para realizar una sola instruccioacuten un chip CISC requiere de cuatro a diez ciclos de reloj
ARQUITECTURA CISC
Recommended