alu y procesadores

35
UNIDAD ARITMETICA Y LOGICA Una unidad aritmética y lógica (ALU) es un circuito combinacional que desarrolla micro operaciones lógicas y aritméticas 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 selección de función.

Upload: jesus-gomez

Post on 05-Jan-2016

219 views

Category:

Documents


0 download

DESCRIPTION

ALU y procesadores

TRANSCRIPT

Page 1: Alu y Procesadores

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

  • Slide 1
  • UNIDAD ARITMEacuteTICA LOacuteGICA
  • ARITMEacuteTICA DE LAS COMPUTADORAS
  • ARITMEacuteTICA CON ENTEROS
  • ENTEROS
  • ARITMEacuteTICA CON PUNTO FLOTANTE
  • Slide 7
  • REPERTORIO DE INSTRUCCIONES
  • INSTRUCCIONES
  • MIPS ndash INSTRUCCIONES aritmeacuteticoloacutegicas
  • MIPS ndash INSTRUCCIONES DE SALTO CONDICIONAL
  • EJEMPLO DE COMPILACIOacuteN DE UNA SENTENCIA DE SALTO CONDICIONAL
  • LENGUAJE MAacuteQUINA ndash INSTRUCCIONES ARITMEacuteTICO-LOacuteGICAS
  • LENGUAJE MAacuteQUINA ndash INSTRUCCIONES DE ACCESO A MEMORIA
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • REGISTROS VISIBLES AL USUARIO
  • LONGITUD DE LOS REGISTROS
  • REGISTROS DE CONTROL Y ESTADO
  • CICLO DE INSTRUCCIOacuteN
  • CICLO INDIRECTO
  • FLUJO DE DATOS
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
Page 2: Alu y Procesadores

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

  • Slide 1
  • UNIDAD ARITMEacuteTICA LOacuteGICA
  • ARITMEacuteTICA DE LAS COMPUTADORAS
  • ARITMEacuteTICA CON ENTEROS
  • ENTEROS
  • ARITMEacuteTICA CON PUNTO FLOTANTE
  • Slide 7
  • REPERTORIO DE INSTRUCCIONES
  • INSTRUCCIONES
  • MIPS ndash INSTRUCCIONES aritmeacuteticoloacutegicas
  • MIPS ndash INSTRUCCIONES DE SALTO CONDICIONAL
  • EJEMPLO DE COMPILACIOacuteN DE UNA SENTENCIA DE SALTO CONDICIONAL
  • LENGUAJE MAacuteQUINA ndash INSTRUCCIONES ARITMEacuteTICO-LOacuteGICAS
  • LENGUAJE MAacuteQUINA ndash INSTRUCCIONES DE ACCESO A MEMORIA
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • REGISTROS VISIBLES AL USUARIO
  • LONGITUD DE LOS REGISTROS
  • REGISTROS DE CONTROL Y ESTADO
  • CICLO DE INSTRUCCIOacuteN
  • CICLO INDIRECTO
  • FLUJO DE DATOS
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
Page 3: Alu y Procesadores

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

  • Slide 1
  • UNIDAD ARITMEacuteTICA LOacuteGICA
  • ARITMEacuteTICA DE LAS COMPUTADORAS
  • ARITMEacuteTICA CON ENTEROS
  • ENTEROS
  • ARITMEacuteTICA CON PUNTO FLOTANTE
  • Slide 7
  • REPERTORIO DE INSTRUCCIONES
  • INSTRUCCIONES
  • MIPS ndash INSTRUCCIONES aritmeacuteticoloacutegicas
  • MIPS ndash INSTRUCCIONES DE SALTO CONDICIONAL
  • EJEMPLO DE COMPILACIOacuteN DE UNA SENTENCIA DE SALTO CONDICIONAL
  • LENGUAJE MAacuteQUINA ndash INSTRUCCIONES ARITMEacuteTICO-LOacuteGICAS
  • LENGUAJE MAacuteQUINA ndash INSTRUCCIONES DE ACCESO A MEMORIA
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • REGISTROS VISIBLES AL USUARIO
  • LONGITUD DE LOS REGISTROS
  • REGISTROS DE CONTROL Y ESTADO
  • CICLO DE INSTRUCCIOacuteN
  • CICLO INDIRECTO
  • FLUJO DE DATOS
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
Page 4: Alu y Procesadores

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

  • Slide 1
  • UNIDAD ARITMEacuteTICA LOacuteGICA
  • ARITMEacuteTICA DE LAS COMPUTADORAS
  • ARITMEacuteTICA CON ENTEROS
  • ENTEROS
  • ARITMEacuteTICA CON PUNTO FLOTANTE
  • Slide 7
  • REPERTORIO DE INSTRUCCIONES
  • INSTRUCCIONES
  • MIPS ndash INSTRUCCIONES aritmeacuteticoloacutegicas
  • MIPS ndash INSTRUCCIONES DE SALTO CONDICIONAL
  • EJEMPLO DE COMPILACIOacuteN DE UNA SENTENCIA DE SALTO CONDICIONAL
  • LENGUAJE MAacuteQUINA ndash INSTRUCCIONES ARITMEacuteTICO-LOacuteGICAS
  • LENGUAJE MAacuteQUINA ndash INSTRUCCIONES DE ACCESO A MEMORIA
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • REGISTROS VISIBLES AL USUARIO
  • LONGITUD DE LOS REGISTROS
  • REGISTROS DE CONTROL Y ESTADO
  • CICLO DE INSTRUCCIOacuteN
  • CICLO INDIRECTO
  • FLUJO DE DATOS
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
Page 5: Alu y Procesadores

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

  • Slide 1
  • UNIDAD ARITMEacuteTICA LOacuteGICA
  • ARITMEacuteTICA DE LAS COMPUTADORAS
  • ARITMEacuteTICA CON ENTEROS
  • ENTEROS
  • ARITMEacuteTICA CON PUNTO FLOTANTE
  • Slide 7
  • REPERTORIO DE INSTRUCCIONES
  • INSTRUCCIONES
  • MIPS ndash INSTRUCCIONES aritmeacuteticoloacutegicas
  • MIPS ndash INSTRUCCIONES DE SALTO CONDICIONAL
  • EJEMPLO DE COMPILACIOacuteN DE UNA SENTENCIA DE SALTO CONDICIONAL
  • LENGUAJE MAacuteQUINA ndash INSTRUCCIONES ARITMEacuteTICO-LOacuteGICAS
  • LENGUAJE MAacuteQUINA ndash INSTRUCCIONES DE ACCESO A MEMORIA
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • REGISTROS VISIBLES AL USUARIO
  • LONGITUD DE LOS REGISTROS
  • REGISTROS DE CONTROL Y ESTADO
  • CICLO DE INSTRUCCIOacuteN
  • CICLO INDIRECTO
  • FLUJO DE DATOS
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
Page 6: Alu y Procesadores

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

  • Slide 1
  • UNIDAD ARITMEacuteTICA LOacuteGICA
  • ARITMEacuteTICA DE LAS COMPUTADORAS
  • ARITMEacuteTICA CON ENTEROS
  • ENTEROS
  • ARITMEacuteTICA CON PUNTO FLOTANTE
  • Slide 7
  • REPERTORIO DE INSTRUCCIONES
  • INSTRUCCIONES
  • MIPS ndash INSTRUCCIONES aritmeacuteticoloacutegicas
  • MIPS ndash INSTRUCCIONES DE SALTO CONDICIONAL
  • EJEMPLO DE COMPILACIOacuteN DE UNA SENTENCIA DE SALTO CONDICIONAL
  • LENGUAJE MAacuteQUINA ndash INSTRUCCIONES ARITMEacuteTICO-LOacuteGICAS
  • LENGUAJE MAacuteQUINA ndash INSTRUCCIONES DE ACCESO A MEMORIA
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • REGISTROS VISIBLES AL USUARIO
  • LONGITUD DE LOS REGISTROS
  • REGISTROS DE CONTROL Y ESTADO
  • CICLO DE INSTRUCCIOacuteN
  • CICLO INDIRECTO
  • FLUJO DE DATOS
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
Page 7: Alu y Procesadores

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

  • Slide 1
  • UNIDAD ARITMEacuteTICA LOacuteGICA
  • ARITMEacuteTICA DE LAS COMPUTADORAS
  • ARITMEacuteTICA CON ENTEROS
  • ENTEROS
  • ARITMEacuteTICA CON PUNTO FLOTANTE
  • Slide 7
  • REPERTORIO DE INSTRUCCIONES
  • INSTRUCCIONES
  • MIPS ndash INSTRUCCIONES aritmeacuteticoloacutegicas
  • MIPS ndash INSTRUCCIONES DE SALTO CONDICIONAL
  • EJEMPLO DE COMPILACIOacuteN DE UNA SENTENCIA DE SALTO CONDICIONAL
  • LENGUAJE MAacuteQUINA ndash INSTRUCCIONES ARITMEacuteTICO-LOacuteGICAS
  • LENGUAJE MAacuteQUINA ndash INSTRUCCIONES DE ACCESO A MEMORIA
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • REGISTROS VISIBLES AL USUARIO
  • LONGITUD DE LOS REGISTROS
  • REGISTROS DE CONTROL Y ESTADO
  • CICLO DE INSTRUCCIOacuteN
  • CICLO INDIRECTO
  • FLUJO DE DATOS
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
Page 8: Alu y Procesadores

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

  • Slide 1
  • UNIDAD ARITMEacuteTICA LOacuteGICA
  • ARITMEacuteTICA DE LAS COMPUTADORAS
  • ARITMEacuteTICA CON ENTEROS
  • ENTEROS
  • ARITMEacuteTICA CON PUNTO FLOTANTE
  • Slide 7
  • REPERTORIO DE INSTRUCCIONES
  • INSTRUCCIONES
  • MIPS ndash INSTRUCCIONES aritmeacuteticoloacutegicas
  • MIPS ndash INSTRUCCIONES DE SALTO CONDICIONAL
  • EJEMPLO DE COMPILACIOacuteN DE UNA SENTENCIA DE SALTO CONDICIONAL
  • LENGUAJE MAacuteQUINA ndash INSTRUCCIONES ARITMEacuteTICO-LOacuteGICAS
  • LENGUAJE MAacuteQUINA ndash INSTRUCCIONES DE ACCESO A MEMORIA
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • REGISTROS VISIBLES AL USUARIO
  • LONGITUD DE LOS REGISTROS
  • REGISTROS DE CONTROL Y ESTADO
  • CICLO DE INSTRUCCIOacuteN
  • CICLO INDIRECTO
  • FLUJO DE DATOS
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
Page 9: Alu y Procesadores

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

  • Slide 1
  • UNIDAD ARITMEacuteTICA LOacuteGICA
  • ARITMEacuteTICA DE LAS COMPUTADORAS
  • ARITMEacuteTICA CON ENTEROS
  • ENTEROS
  • ARITMEacuteTICA CON PUNTO FLOTANTE
  • Slide 7
  • REPERTORIO DE INSTRUCCIONES
  • INSTRUCCIONES
  • MIPS ndash INSTRUCCIONES aritmeacuteticoloacutegicas
  • MIPS ndash INSTRUCCIONES DE SALTO CONDICIONAL
  • EJEMPLO DE COMPILACIOacuteN DE UNA SENTENCIA DE SALTO CONDICIONAL
  • LENGUAJE MAacuteQUINA ndash INSTRUCCIONES ARITMEacuteTICO-LOacuteGICAS
  • LENGUAJE MAacuteQUINA ndash INSTRUCCIONES DE ACCESO A MEMORIA
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • REGISTROS VISIBLES AL USUARIO
  • LONGITUD DE LOS REGISTROS
  • REGISTROS DE CONTROL Y ESTADO
  • CICLO DE INSTRUCCIOacuteN
  • CICLO INDIRECTO
  • FLUJO DE DATOS
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
Page 10: Alu y Procesadores

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

  • Slide 1
  • UNIDAD ARITMEacuteTICA LOacuteGICA
  • ARITMEacuteTICA DE LAS COMPUTADORAS
  • ARITMEacuteTICA CON ENTEROS
  • ENTEROS
  • ARITMEacuteTICA CON PUNTO FLOTANTE
  • Slide 7
  • REPERTORIO DE INSTRUCCIONES
  • INSTRUCCIONES
  • MIPS ndash INSTRUCCIONES aritmeacuteticoloacutegicas
  • MIPS ndash INSTRUCCIONES DE SALTO CONDICIONAL
  • EJEMPLO DE COMPILACIOacuteN DE UNA SENTENCIA DE SALTO CONDICIONAL
  • LENGUAJE MAacuteQUINA ndash INSTRUCCIONES ARITMEacuteTICO-LOacuteGICAS
  • LENGUAJE MAacuteQUINA ndash INSTRUCCIONES DE ACCESO A MEMORIA
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • REGISTROS VISIBLES AL USUARIO
  • LONGITUD DE LOS REGISTROS
  • REGISTROS DE CONTROL Y ESTADO
  • CICLO DE INSTRUCCIOacuteN
  • CICLO INDIRECTO
  • FLUJO DE DATOS
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
Page 11: Alu y Procesadores

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

  • Slide 1
  • UNIDAD ARITMEacuteTICA LOacuteGICA
  • ARITMEacuteTICA DE LAS COMPUTADORAS
  • ARITMEacuteTICA CON ENTEROS
  • ENTEROS
  • ARITMEacuteTICA CON PUNTO FLOTANTE
  • Slide 7
  • REPERTORIO DE INSTRUCCIONES
  • INSTRUCCIONES
  • MIPS ndash INSTRUCCIONES aritmeacuteticoloacutegicas
  • MIPS ndash INSTRUCCIONES DE SALTO CONDICIONAL
  • EJEMPLO DE COMPILACIOacuteN DE UNA SENTENCIA DE SALTO CONDICIONAL
  • LENGUAJE MAacuteQUINA ndash INSTRUCCIONES ARITMEacuteTICO-LOacuteGICAS
  • LENGUAJE MAacuteQUINA ndash INSTRUCCIONES DE ACCESO A MEMORIA
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • REGISTROS VISIBLES AL USUARIO
  • LONGITUD DE LOS REGISTROS
  • REGISTROS DE CONTROL Y ESTADO
  • CICLO DE INSTRUCCIOacuteN
  • CICLO INDIRECTO
  • FLUJO DE DATOS
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
Page 12: Alu y Procesadores

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

  • Slide 1
  • UNIDAD ARITMEacuteTICA LOacuteGICA
  • ARITMEacuteTICA DE LAS COMPUTADORAS
  • ARITMEacuteTICA CON ENTEROS
  • ENTEROS
  • ARITMEacuteTICA CON PUNTO FLOTANTE
  • Slide 7
  • REPERTORIO DE INSTRUCCIONES
  • INSTRUCCIONES
  • MIPS ndash INSTRUCCIONES aritmeacuteticoloacutegicas
  • MIPS ndash INSTRUCCIONES DE SALTO CONDICIONAL
  • EJEMPLO DE COMPILACIOacuteN DE UNA SENTENCIA DE SALTO CONDICIONAL
  • LENGUAJE MAacuteQUINA ndash INSTRUCCIONES ARITMEacuteTICO-LOacuteGICAS
  • LENGUAJE MAacuteQUINA ndash INSTRUCCIONES DE ACCESO A MEMORIA
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • REGISTROS VISIBLES AL USUARIO
  • LONGITUD DE LOS REGISTROS
  • REGISTROS DE CONTROL Y ESTADO
  • CICLO DE INSTRUCCIOacuteN
  • CICLO INDIRECTO
  • FLUJO DE DATOS
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
Page 13: Alu y Procesadores

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

  • Slide 1
  • UNIDAD ARITMEacuteTICA LOacuteGICA
  • ARITMEacuteTICA DE LAS COMPUTADORAS
  • ARITMEacuteTICA CON ENTEROS
  • ENTEROS
  • ARITMEacuteTICA CON PUNTO FLOTANTE
  • Slide 7
  • REPERTORIO DE INSTRUCCIONES
  • INSTRUCCIONES
  • MIPS ndash INSTRUCCIONES aritmeacuteticoloacutegicas
  • MIPS ndash INSTRUCCIONES DE SALTO CONDICIONAL
  • EJEMPLO DE COMPILACIOacuteN DE UNA SENTENCIA DE SALTO CONDICIONAL
  • LENGUAJE MAacuteQUINA ndash INSTRUCCIONES ARITMEacuteTICO-LOacuteGICAS
  • LENGUAJE MAacuteQUINA ndash INSTRUCCIONES DE ACCESO A MEMORIA
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • REGISTROS VISIBLES AL USUARIO
  • LONGITUD DE LOS REGISTROS
  • REGISTROS DE CONTROL Y ESTADO
  • CICLO DE INSTRUCCIOacuteN
  • CICLO INDIRECTO
  • FLUJO DE DATOS
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
Page 14: Alu y Procesadores

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

  • Slide 1
  • UNIDAD ARITMEacuteTICA LOacuteGICA
  • ARITMEacuteTICA DE LAS COMPUTADORAS
  • ARITMEacuteTICA CON ENTEROS
  • ENTEROS
  • ARITMEacuteTICA CON PUNTO FLOTANTE
  • Slide 7
  • REPERTORIO DE INSTRUCCIONES
  • INSTRUCCIONES
  • MIPS ndash INSTRUCCIONES aritmeacuteticoloacutegicas
  • MIPS ndash INSTRUCCIONES DE SALTO CONDICIONAL
  • EJEMPLO DE COMPILACIOacuteN DE UNA SENTENCIA DE SALTO CONDICIONAL
  • LENGUAJE MAacuteQUINA ndash INSTRUCCIONES ARITMEacuteTICO-LOacuteGICAS
  • LENGUAJE MAacuteQUINA ndash INSTRUCCIONES DE ACCESO A MEMORIA
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • REGISTROS VISIBLES AL USUARIO
  • LONGITUD DE LOS REGISTROS
  • REGISTROS DE CONTROL Y ESTADO
  • CICLO DE INSTRUCCIOacuteN
  • CICLO INDIRECTO
  • FLUJO DE DATOS
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
Page 15: Alu y Procesadores

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

  • Slide 1
  • UNIDAD ARITMEacuteTICA LOacuteGICA
  • ARITMEacuteTICA DE LAS COMPUTADORAS
  • ARITMEacuteTICA CON ENTEROS
  • ENTEROS
  • ARITMEacuteTICA CON PUNTO FLOTANTE
  • Slide 7
  • REPERTORIO DE INSTRUCCIONES
  • INSTRUCCIONES
  • MIPS ndash INSTRUCCIONES aritmeacuteticoloacutegicas
  • MIPS ndash INSTRUCCIONES DE SALTO CONDICIONAL
  • EJEMPLO DE COMPILACIOacuteN DE UNA SENTENCIA DE SALTO CONDICIONAL
  • LENGUAJE MAacuteQUINA ndash INSTRUCCIONES ARITMEacuteTICO-LOacuteGICAS
  • LENGUAJE MAacuteQUINA ndash INSTRUCCIONES DE ACCESO A MEMORIA
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • REGISTROS VISIBLES AL USUARIO
  • LONGITUD DE LOS REGISTROS
  • REGISTROS DE CONTROL Y ESTADO
  • CICLO DE INSTRUCCIOacuteN
  • CICLO INDIRECTO
  • FLUJO DE DATOS
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
Page 16: Alu y Procesadores

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

  • Slide 1
  • UNIDAD ARITMEacuteTICA LOacuteGICA
  • ARITMEacuteTICA DE LAS COMPUTADORAS
  • ARITMEacuteTICA CON ENTEROS
  • ENTEROS
  • ARITMEacuteTICA CON PUNTO FLOTANTE
  • Slide 7
  • REPERTORIO DE INSTRUCCIONES
  • INSTRUCCIONES
  • MIPS ndash INSTRUCCIONES aritmeacuteticoloacutegicas
  • MIPS ndash INSTRUCCIONES DE SALTO CONDICIONAL
  • EJEMPLO DE COMPILACIOacuteN DE UNA SENTENCIA DE SALTO CONDICIONAL
  • LENGUAJE MAacuteQUINA ndash INSTRUCCIONES ARITMEacuteTICO-LOacuteGICAS
  • LENGUAJE MAacuteQUINA ndash INSTRUCCIONES DE ACCESO A MEMORIA
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • REGISTROS VISIBLES AL USUARIO
  • LONGITUD DE LOS REGISTROS
  • REGISTROS DE CONTROL Y ESTADO
  • CICLO DE INSTRUCCIOacuteN
  • CICLO INDIRECTO
  • FLUJO DE DATOS
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
Page 17: Alu y Procesadores

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

  • Slide 1
  • UNIDAD ARITMEacuteTICA LOacuteGICA
  • ARITMEacuteTICA DE LAS COMPUTADORAS
  • ARITMEacuteTICA CON ENTEROS
  • ENTEROS
  • ARITMEacuteTICA CON PUNTO FLOTANTE
  • Slide 7
  • REPERTORIO DE INSTRUCCIONES
  • INSTRUCCIONES
  • MIPS ndash INSTRUCCIONES aritmeacuteticoloacutegicas
  • MIPS ndash INSTRUCCIONES DE SALTO CONDICIONAL
  • EJEMPLO DE COMPILACIOacuteN DE UNA SENTENCIA DE SALTO CONDICIONAL
  • LENGUAJE MAacuteQUINA ndash INSTRUCCIONES ARITMEacuteTICO-LOacuteGICAS
  • LENGUAJE MAacuteQUINA ndash INSTRUCCIONES DE ACCESO A MEMORIA
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • REGISTROS VISIBLES AL USUARIO
  • LONGITUD DE LOS REGISTROS
  • REGISTROS DE CONTROL Y ESTADO
  • CICLO DE INSTRUCCIOacuteN
  • CICLO INDIRECTO
  • FLUJO DE DATOS
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
Page 18: Alu y Procesadores

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

  • Slide 1
  • UNIDAD ARITMEacuteTICA LOacuteGICA
  • ARITMEacuteTICA DE LAS COMPUTADORAS
  • ARITMEacuteTICA CON ENTEROS
  • ENTEROS
  • ARITMEacuteTICA CON PUNTO FLOTANTE
  • Slide 7
  • REPERTORIO DE INSTRUCCIONES
  • INSTRUCCIONES
  • MIPS ndash INSTRUCCIONES aritmeacuteticoloacutegicas
  • MIPS ndash INSTRUCCIONES DE SALTO CONDICIONAL
  • EJEMPLO DE COMPILACIOacuteN DE UNA SENTENCIA DE SALTO CONDICIONAL
  • LENGUAJE MAacuteQUINA ndash INSTRUCCIONES ARITMEacuteTICO-LOacuteGICAS
  • LENGUAJE MAacuteQUINA ndash INSTRUCCIONES DE ACCESO A MEMORIA
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • REGISTROS VISIBLES AL USUARIO
  • LONGITUD DE LOS REGISTROS
  • REGISTROS DE CONTROL Y ESTADO
  • CICLO DE INSTRUCCIOacuteN
  • CICLO INDIRECTO
  • FLUJO DE DATOS
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
Page 19: Alu y Procesadores

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

  • Slide 1
  • UNIDAD ARITMEacuteTICA LOacuteGICA
  • ARITMEacuteTICA DE LAS COMPUTADORAS
  • ARITMEacuteTICA CON ENTEROS
  • ENTEROS
  • ARITMEacuteTICA CON PUNTO FLOTANTE
  • Slide 7
  • REPERTORIO DE INSTRUCCIONES
  • INSTRUCCIONES
  • MIPS ndash INSTRUCCIONES aritmeacuteticoloacutegicas
  • MIPS ndash INSTRUCCIONES DE SALTO CONDICIONAL
  • EJEMPLO DE COMPILACIOacuteN DE UNA SENTENCIA DE SALTO CONDICIONAL
  • LENGUAJE MAacuteQUINA ndash INSTRUCCIONES ARITMEacuteTICO-LOacuteGICAS
  • LENGUAJE MAacuteQUINA ndash INSTRUCCIONES DE ACCESO A MEMORIA
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • REGISTROS VISIBLES AL USUARIO
  • LONGITUD DE LOS REGISTROS
  • REGISTROS DE CONTROL Y ESTADO
  • CICLO DE INSTRUCCIOacuteN
  • CICLO INDIRECTO
  • FLUJO DE DATOS
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
Page 20: Alu y Procesadores

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

  • Slide 1
  • UNIDAD ARITMEacuteTICA LOacuteGICA
  • ARITMEacuteTICA DE LAS COMPUTADORAS
  • ARITMEacuteTICA CON ENTEROS
  • ENTEROS
  • ARITMEacuteTICA CON PUNTO FLOTANTE
  • Slide 7
  • REPERTORIO DE INSTRUCCIONES
  • INSTRUCCIONES
  • MIPS ndash INSTRUCCIONES aritmeacuteticoloacutegicas
  • MIPS ndash INSTRUCCIONES DE SALTO CONDICIONAL
  • EJEMPLO DE COMPILACIOacuteN DE UNA SENTENCIA DE SALTO CONDICIONAL
  • LENGUAJE MAacuteQUINA ndash INSTRUCCIONES ARITMEacuteTICO-LOacuteGICAS
  • LENGUAJE MAacuteQUINA ndash INSTRUCCIONES DE ACCESO A MEMORIA
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • REGISTROS VISIBLES AL USUARIO
  • LONGITUD DE LOS REGISTROS
  • REGISTROS DE CONTROL Y ESTADO
  • CICLO DE INSTRUCCIOacuteN
  • CICLO INDIRECTO
  • FLUJO DE DATOS
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
Page 21: Alu y Procesadores

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

  • Slide 1
  • UNIDAD ARITMEacuteTICA LOacuteGICA
  • ARITMEacuteTICA DE LAS COMPUTADORAS
  • ARITMEacuteTICA CON ENTEROS
  • ENTEROS
  • ARITMEacuteTICA CON PUNTO FLOTANTE
  • Slide 7
  • REPERTORIO DE INSTRUCCIONES
  • INSTRUCCIONES
  • MIPS ndash INSTRUCCIONES aritmeacuteticoloacutegicas
  • MIPS ndash INSTRUCCIONES DE SALTO CONDICIONAL
  • EJEMPLO DE COMPILACIOacuteN DE UNA SENTENCIA DE SALTO CONDICIONAL
  • LENGUAJE MAacuteQUINA ndash INSTRUCCIONES ARITMEacuteTICO-LOacuteGICAS
  • LENGUAJE MAacuteQUINA ndash INSTRUCCIONES DE ACCESO A MEMORIA
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • REGISTROS VISIBLES AL USUARIO
  • LONGITUD DE LOS REGISTROS
  • REGISTROS DE CONTROL Y ESTADO
  • CICLO DE INSTRUCCIOacuteN
  • CICLO INDIRECTO
  • FLUJO DE DATOS
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
Page 22: Alu y Procesadores

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

  • Slide 1
  • UNIDAD ARITMEacuteTICA LOacuteGICA
  • ARITMEacuteTICA DE LAS COMPUTADORAS
  • ARITMEacuteTICA CON ENTEROS
  • ENTEROS
  • ARITMEacuteTICA CON PUNTO FLOTANTE
  • Slide 7
  • REPERTORIO DE INSTRUCCIONES
  • INSTRUCCIONES
  • MIPS ndash INSTRUCCIONES aritmeacuteticoloacutegicas
  • MIPS ndash INSTRUCCIONES DE SALTO CONDICIONAL
  • EJEMPLO DE COMPILACIOacuteN DE UNA SENTENCIA DE SALTO CONDICIONAL
  • LENGUAJE MAacuteQUINA ndash INSTRUCCIONES ARITMEacuteTICO-LOacuteGICAS
  • LENGUAJE MAacuteQUINA ndash INSTRUCCIONES DE ACCESO A MEMORIA
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • REGISTROS VISIBLES AL USUARIO
  • LONGITUD DE LOS REGISTROS
  • REGISTROS DE CONTROL Y ESTADO
  • CICLO DE INSTRUCCIOacuteN
  • CICLO INDIRECTO
  • FLUJO DE DATOS
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
Page 23: Alu y Procesadores

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

  • Slide 1
  • UNIDAD ARITMEacuteTICA LOacuteGICA
  • ARITMEacuteTICA DE LAS COMPUTADORAS
  • ARITMEacuteTICA CON ENTEROS
  • ENTEROS
  • ARITMEacuteTICA CON PUNTO FLOTANTE
  • Slide 7
  • REPERTORIO DE INSTRUCCIONES
  • INSTRUCCIONES
  • MIPS ndash INSTRUCCIONES aritmeacuteticoloacutegicas
  • MIPS ndash INSTRUCCIONES DE SALTO CONDICIONAL
  • EJEMPLO DE COMPILACIOacuteN DE UNA SENTENCIA DE SALTO CONDICIONAL
  • LENGUAJE MAacuteQUINA ndash INSTRUCCIONES ARITMEacuteTICO-LOacuteGICAS
  • LENGUAJE MAacuteQUINA ndash INSTRUCCIONES DE ACCESO A MEMORIA
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • REGISTROS VISIBLES AL USUARIO
  • LONGITUD DE LOS REGISTROS
  • REGISTROS DE CONTROL Y ESTADO
  • CICLO DE INSTRUCCIOacuteN
  • CICLO INDIRECTO
  • FLUJO DE DATOS
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
Page 24: Alu y Procesadores

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

  • Slide 1
  • UNIDAD ARITMEacuteTICA LOacuteGICA
  • ARITMEacuteTICA DE LAS COMPUTADORAS
  • ARITMEacuteTICA CON ENTEROS
  • ENTEROS
  • ARITMEacuteTICA CON PUNTO FLOTANTE
  • Slide 7
  • REPERTORIO DE INSTRUCCIONES
  • INSTRUCCIONES
  • MIPS ndash INSTRUCCIONES aritmeacuteticoloacutegicas
  • MIPS ndash INSTRUCCIONES DE SALTO CONDICIONAL
  • EJEMPLO DE COMPILACIOacuteN DE UNA SENTENCIA DE SALTO CONDICIONAL
  • LENGUAJE MAacuteQUINA ndash INSTRUCCIONES ARITMEacuteTICO-LOacuteGICAS
  • LENGUAJE MAacuteQUINA ndash INSTRUCCIONES DE ACCESO A MEMORIA
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • REGISTROS VISIBLES AL USUARIO
  • LONGITUD DE LOS REGISTROS
  • REGISTROS DE CONTROL Y ESTADO
  • CICLO DE INSTRUCCIOacuteN
  • CICLO INDIRECTO
  • FLUJO DE DATOS
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
Page 25: Alu y Procesadores

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

  • Slide 1
  • UNIDAD ARITMEacuteTICA LOacuteGICA
  • ARITMEacuteTICA DE LAS COMPUTADORAS
  • ARITMEacuteTICA CON ENTEROS
  • ENTEROS
  • ARITMEacuteTICA CON PUNTO FLOTANTE
  • Slide 7
  • REPERTORIO DE INSTRUCCIONES
  • INSTRUCCIONES
  • MIPS ndash INSTRUCCIONES aritmeacuteticoloacutegicas
  • MIPS ndash INSTRUCCIONES DE SALTO CONDICIONAL
  • EJEMPLO DE COMPILACIOacuteN DE UNA SENTENCIA DE SALTO CONDICIONAL
  • LENGUAJE MAacuteQUINA ndash INSTRUCCIONES ARITMEacuteTICO-LOacuteGICAS
  • LENGUAJE MAacuteQUINA ndash INSTRUCCIONES DE ACCESO A MEMORIA
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • REGISTROS VISIBLES AL USUARIO
  • LONGITUD DE LOS REGISTROS
  • REGISTROS DE CONTROL Y ESTADO
  • CICLO DE INSTRUCCIOacuteN
  • CICLO INDIRECTO
  • FLUJO DE DATOS
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
Page 26: Alu y Procesadores

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

  • Slide 1
  • UNIDAD ARITMEacuteTICA LOacuteGICA
  • ARITMEacuteTICA DE LAS COMPUTADORAS
  • ARITMEacuteTICA CON ENTEROS
  • ENTEROS
  • ARITMEacuteTICA CON PUNTO FLOTANTE
  • Slide 7
  • REPERTORIO DE INSTRUCCIONES
  • INSTRUCCIONES
  • MIPS ndash INSTRUCCIONES aritmeacuteticoloacutegicas
  • MIPS ndash INSTRUCCIONES DE SALTO CONDICIONAL
  • EJEMPLO DE COMPILACIOacuteN DE UNA SENTENCIA DE SALTO CONDICIONAL
  • LENGUAJE MAacuteQUINA ndash INSTRUCCIONES ARITMEacuteTICO-LOacuteGICAS
  • LENGUAJE MAacuteQUINA ndash INSTRUCCIONES DE ACCESO A MEMORIA
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • REGISTROS VISIBLES AL USUARIO
  • LONGITUD DE LOS REGISTROS
  • REGISTROS DE CONTROL Y ESTADO
  • CICLO DE INSTRUCCIOacuteN
  • CICLO INDIRECTO
  • FLUJO DE DATOS
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
Page 27: Alu y Procesadores

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

  • Slide 1
  • UNIDAD ARITMEacuteTICA LOacuteGICA
  • ARITMEacuteTICA DE LAS COMPUTADORAS
  • ARITMEacuteTICA CON ENTEROS
  • ENTEROS
  • ARITMEacuteTICA CON PUNTO FLOTANTE
  • Slide 7
  • REPERTORIO DE INSTRUCCIONES
  • INSTRUCCIONES
  • MIPS ndash INSTRUCCIONES aritmeacuteticoloacutegicas
  • MIPS ndash INSTRUCCIONES DE SALTO CONDICIONAL
  • EJEMPLO DE COMPILACIOacuteN DE UNA SENTENCIA DE SALTO CONDICIONAL
  • LENGUAJE MAacuteQUINA ndash INSTRUCCIONES ARITMEacuteTICO-LOacuteGICAS
  • LENGUAJE MAacuteQUINA ndash INSTRUCCIONES DE ACCESO A MEMORIA
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • REGISTROS VISIBLES AL USUARIO
  • LONGITUD DE LOS REGISTROS
  • REGISTROS DE CONTROL Y ESTADO
  • CICLO DE INSTRUCCIOacuteN
  • CICLO INDIRECTO
  • FLUJO DE DATOS
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
Page 28: Alu y Procesadores

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

  • Slide 1
  • UNIDAD ARITMEacuteTICA LOacuteGICA
  • ARITMEacuteTICA DE LAS COMPUTADORAS
  • ARITMEacuteTICA CON ENTEROS
  • ENTEROS
  • ARITMEacuteTICA CON PUNTO FLOTANTE
  • Slide 7
  • REPERTORIO DE INSTRUCCIONES
  • INSTRUCCIONES
  • MIPS ndash INSTRUCCIONES aritmeacuteticoloacutegicas
  • MIPS ndash INSTRUCCIONES DE SALTO CONDICIONAL
  • EJEMPLO DE COMPILACIOacuteN DE UNA SENTENCIA DE SALTO CONDICIONAL
  • LENGUAJE MAacuteQUINA ndash INSTRUCCIONES ARITMEacuteTICO-LOacuteGICAS
  • LENGUAJE MAacuteQUINA ndash INSTRUCCIONES DE ACCESO A MEMORIA
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • REGISTROS VISIBLES AL USUARIO
  • LONGITUD DE LOS REGISTROS
  • REGISTROS DE CONTROL Y ESTADO
  • CICLO DE INSTRUCCIOacuteN
  • CICLO INDIRECTO
  • FLUJO DE DATOS
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
Page 29: Alu y Procesadores

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

  • Slide 1
  • UNIDAD ARITMEacuteTICA LOacuteGICA
  • ARITMEacuteTICA DE LAS COMPUTADORAS
  • ARITMEacuteTICA CON ENTEROS
  • ENTEROS
  • ARITMEacuteTICA CON PUNTO FLOTANTE
  • Slide 7
  • REPERTORIO DE INSTRUCCIONES
  • INSTRUCCIONES
  • MIPS ndash INSTRUCCIONES aritmeacuteticoloacutegicas
  • MIPS ndash INSTRUCCIONES DE SALTO CONDICIONAL
  • EJEMPLO DE COMPILACIOacuteN DE UNA SENTENCIA DE SALTO CONDICIONAL
  • LENGUAJE MAacuteQUINA ndash INSTRUCCIONES ARITMEacuteTICO-LOacuteGICAS
  • LENGUAJE MAacuteQUINA ndash INSTRUCCIONES DE ACCESO A MEMORIA
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • REGISTROS VISIBLES AL USUARIO
  • LONGITUD DE LOS REGISTROS
  • REGISTROS DE CONTROL Y ESTADO
  • CICLO DE INSTRUCCIOacuteN
  • CICLO INDIRECTO
  • FLUJO DE DATOS
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
Page 30: Alu y Procesadores

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

  • Slide 1
  • UNIDAD ARITMEacuteTICA LOacuteGICA
  • ARITMEacuteTICA DE LAS COMPUTADORAS
  • ARITMEacuteTICA CON ENTEROS
  • ENTEROS
  • ARITMEacuteTICA CON PUNTO FLOTANTE
  • Slide 7
  • REPERTORIO DE INSTRUCCIONES
  • INSTRUCCIONES
  • MIPS ndash INSTRUCCIONES aritmeacuteticoloacutegicas
  • MIPS ndash INSTRUCCIONES DE SALTO CONDICIONAL
  • EJEMPLO DE COMPILACIOacuteN DE UNA SENTENCIA DE SALTO CONDICIONAL
  • LENGUAJE MAacuteQUINA ndash INSTRUCCIONES ARITMEacuteTICO-LOacuteGICAS
  • LENGUAJE MAacuteQUINA ndash INSTRUCCIONES DE ACCESO A MEMORIA
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • REGISTROS VISIBLES AL USUARIO
  • LONGITUD DE LOS REGISTROS
  • REGISTROS DE CONTROL Y ESTADO
  • CICLO DE INSTRUCCIOacuteN
  • CICLO INDIRECTO
  • FLUJO DE DATOS
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
Page 31: Alu y Procesadores

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

  • Slide 1
  • UNIDAD ARITMEacuteTICA LOacuteGICA
  • ARITMEacuteTICA DE LAS COMPUTADORAS
  • ARITMEacuteTICA CON ENTEROS
  • ENTEROS
  • ARITMEacuteTICA CON PUNTO FLOTANTE
  • Slide 7
  • REPERTORIO DE INSTRUCCIONES
  • INSTRUCCIONES
  • MIPS ndash INSTRUCCIONES aritmeacuteticoloacutegicas
  • MIPS ndash INSTRUCCIONES DE SALTO CONDICIONAL
  • EJEMPLO DE COMPILACIOacuteN DE UNA SENTENCIA DE SALTO CONDICIONAL
  • LENGUAJE MAacuteQUINA ndash INSTRUCCIONES ARITMEacuteTICO-LOacuteGICAS
  • LENGUAJE MAacuteQUINA ndash INSTRUCCIONES DE ACCESO A MEMORIA
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • REGISTROS VISIBLES AL USUARIO
  • LONGITUD DE LOS REGISTROS
  • REGISTROS DE CONTROL Y ESTADO
  • CICLO DE INSTRUCCIOacuteN
  • CICLO INDIRECTO
  • FLUJO DE DATOS
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
Page 32: Alu y Procesadores

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

  • Slide 1
  • UNIDAD ARITMEacuteTICA LOacuteGICA
  • ARITMEacuteTICA DE LAS COMPUTADORAS
  • ARITMEacuteTICA CON ENTEROS
  • ENTEROS
  • ARITMEacuteTICA CON PUNTO FLOTANTE
  • Slide 7
  • REPERTORIO DE INSTRUCCIONES
  • INSTRUCCIONES
  • MIPS ndash INSTRUCCIONES aritmeacuteticoloacutegicas
  • MIPS ndash INSTRUCCIONES DE SALTO CONDICIONAL
  • EJEMPLO DE COMPILACIOacuteN DE UNA SENTENCIA DE SALTO CONDICIONAL
  • LENGUAJE MAacuteQUINA ndash INSTRUCCIONES ARITMEacuteTICO-LOacuteGICAS
  • LENGUAJE MAacuteQUINA ndash INSTRUCCIONES DE ACCESO A MEMORIA
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • REGISTROS VISIBLES AL USUARIO
  • LONGITUD DE LOS REGISTROS
  • REGISTROS DE CONTROL Y ESTADO
  • CICLO DE INSTRUCCIOacuteN
  • CICLO INDIRECTO
  • FLUJO DE DATOS
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
Page 33: Alu y Procesadores

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

  • Slide 1
  • UNIDAD ARITMEacuteTICA LOacuteGICA
  • ARITMEacuteTICA DE LAS COMPUTADORAS
  • ARITMEacuteTICA CON ENTEROS
  • ENTEROS
  • ARITMEacuteTICA CON PUNTO FLOTANTE
  • Slide 7
  • REPERTORIO DE INSTRUCCIONES
  • INSTRUCCIONES
  • MIPS ndash INSTRUCCIONES aritmeacuteticoloacutegicas
  • MIPS ndash INSTRUCCIONES DE SALTO CONDICIONAL
  • EJEMPLO DE COMPILACIOacuteN DE UNA SENTENCIA DE SALTO CONDICIONAL
  • LENGUAJE MAacuteQUINA ndash INSTRUCCIONES ARITMEacuteTICO-LOacuteGICAS
  • LENGUAJE MAacuteQUINA ndash INSTRUCCIONES DE ACCESO A MEMORIA
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • REGISTROS VISIBLES AL USUARIO
  • LONGITUD DE LOS REGISTROS
  • REGISTROS DE CONTROL Y ESTADO
  • CICLO DE INSTRUCCIOacuteN
  • CICLO INDIRECTO
  • FLUJO DE DATOS
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
Page 34: Alu y Procesadores

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

  • Slide 1
  • UNIDAD ARITMEacuteTICA LOacuteGICA
  • ARITMEacuteTICA DE LAS COMPUTADORAS
  • ARITMEacuteTICA CON ENTEROS
  • ENTEROS
  • ARITMEacuteTICA CON PUNTO FLOTANTE
  • Slide 7
  • REPERTORIO DE INSTRUCCIONES
  • INSTRUCCIONES
  • MIPS ndash INSTRUCCIONES aritmeacuteticoloacutegicas
  • MIPS ndash INSTRUCCIONES DE SALTO CONDICIONAL
  • EJEMPLO DE COMPILACIOacuteN DE UNA SENTENCIA DE SALTO CONDICIONAL
  • LENGUAJE MAacuteQUINA ndash INSTRUCCIONES ARITMEacuteTICO-LOacuteGICAS
  • LENGUAJE MAacuteQUINA ndash INSTRUCCIONES DE ACCESO A MEMORIA
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • REGISTROS VISIBLES AL USUARIO
  • LONGITUD DE LOS REGISTROS
  • REGISTROS DE CONTROL Y ESTADO
  • CICLO DE INSTRUCCIOacuteN
  • CICLO INDIRECTO
  • FLUJO DE DATOS
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35