SlideShare una empresa de Scribd logo
Palabras clave: set de instrucciones (ISA), lenguaje ensamblador, procesador, lenguaje de máquina.
Contenido
1
2
3
4
5
6
7
8
MIPS Microprocessor without Interlocked Pipeline Stages
Tipos de Instrucción
Modos de Direccionamiento
Traducción de ensamblador a máquina
Herramienta de simulación: MARS
Breve introducción a la aritmética para procesadores
Qué es el conjunto de instrucciones
Registros
Conjunto de instrucciones
(ISA – Instruction Set Architecture)
Unidad 2 / Escenario 3
Lectura fundamental
Diariamente se utilizan sistemas de cómputo para apoyar tareas en diversos (si no todos) campos.
Desde la ingeniería, hasta la agricultura. Gracias a las interfaces de usuario amigables, estas tareas
se realizan de forma casi trivial, de forma que los usuarios aprenden rápidamente utilizar nuevos
dispositivos o aplicaciones.
A través de esta lectura se presenta una introducción a qué pasa en el sistema de cómputo para
que sea capaz de traducir un conjunto de pasos de un algoritmo, en operaciones ejecutables por el
hardware del computador.
Esta introducción ayudará a responder:
¿Cómo el hardware de estos dispositivos entiende nuestras órdenes?
¿Cómo un computador recibe y ejecuta tareas?
Adicionalmente, este espacio permitirá entender cómo se traduce una instrucción a un conjunto que
1s y 0s que el hardware del computador pueda interpretar y ejecutar.
1.	 MIPS Microprocessor without Interlocked Pipeline Stages
En este módulo se estudiará una de las arquitecturas más populares en la actualidad: aquella en la
que la memoria de datos sólo se puede acceder a través de instrucciones de lectura y escritura load/
store. Específicamente, se estudiará esta arquitectura desde un caso particular: MIPS corresponde a
la sigla de Microprocessor without Interlocked Pipeline Stages (Microprocesador sin etapas de pipeline
bloqueadas). Su nombre se debe a que, en esta arquitectura, las instrucciones se ejecutan por etapas
en el procesador. Adicionalmente, estas etapas no dependen unas de otras y todas las instrucciones se
ejecutan pasando por todas las etapas. A este mecanismo de ejecución de instrucciones se le denomina.
El pipeline permite un paralelismo a nivel de instrucción. La razón es que más de una instrucción se puede
ejecutar a la vez, siempre y cuando estén en diferentes etapas. En la Figura 1 se muestra un ejemplo.
En la parte superior de la imagen se ejecuta el proceso de lavar la ropa (que representa, como un
recurso ilustrativo, una instrucción) sin aprovechar el pipeline, y en la parte inferior, aprovechando
el pipeline. De acuerdo con la imagen, lavar la ropa se hace en 4 etapas: lavado, secado, planchado y
guardado. Sin aprovechar el pipeline, cada “tanda” (instrucción) pasa por las 4 etapas, y solo hasta que
se acaben las todas las etapas, inicia la siguiente “tanda” (instrucción). Aprovechando el pipeline, la
“tanda” uno inicia, y tan pronto pasa la primera etapa, inicia la segunda “tanda”: mientras la primera se
encuentra en secado, la segunda está en la etapa de lavado.
POLITÉCNICO GRANCOLOMBIANO
POLITÉCNICO GRANCOLOMBIANO 2
POLITÉCNICO GRANCOLOMBIANO 2
Así, sin pipeline 4 “tandas” (equivalentes a las instrucciones) se ejecutan en 8 horas. Con pipeline, las
mismas 4 “tandas” se realizan en 3 horas y media. Al pipeline se le denomina paralelismo a nivel de
instrucciones y se verá con más detalle en la Unidad 4.
Figura 1. Proceso de lavado de ropa
Fuente: elaboración propia
Se ha seleccionado MIPS como la arquitectura a ser estudiada porque se basa en un conjunto de
características y principios de diseño que facilitan el aprendizaje de la arquitectura del computador.
Una de las características es la simplicidad; por ejemplo: todas las instrucciones tienen el mismo
tamaño que es, además, el mismo tamaño de los datos: 32 bits para MIPS32 y 64 bits para MIPS64.
Figura 2. Tipos de Arquitectura MIPS: MIPS32 y MIPS64
Fuente: elaboración propia
POLITÉCNICO GRANCOLOMBIANO
POLITÉCNICO GRANCOLOMBIANO 3
POLITÉCNICO GRANCOLOMBIANO 3
Los principios de diseño de MIPS son (Hennessy & Patterson, 2000):
•	 La simplicidad favorece la regularidad. Que se ve reflejado en el hecho de que todas las
instrucciones tengan el mismo tamaño, todas las instrucciones pertenezcan a alguno de
tres grandes tipos y todas las instrucciones de un mismo tipo tengan el mismo formato de
instrucción.
•	 Si es más pequeño es más rápido. El manejo de registros en MIPS es óptimo. Además,
la cantidad de registros coincide con el tamaño de las instrucciones, facilitando también
la regularidad. El usar registros para almacenar los datos más inmediatos, ayuda a que el
procesador sea más rápido.
A continuación, se define lo que es el conjunto de instrucciones, específicamente ejemplarizando
con MIPS. En la siguiente lectura se realizará un repaso por algunas de las secciones de esta lectura,
particularizando sobre el proceso de diseño de un conjunto particular, propio, que parte de un reto de
diseño.
2.	Qué es el conjunto (set) de instrucciones
Como se presentó en el escenario 1, la arquitectura del computador estudia cómo un lenguaje de
programación se traduce a un conjunto de instrucciones que pueden ser interpretadas y ejecutadas
por una interconexión de elementos de hardware. Al conjunto de instrucciones se le denomina
ISA (Instruction Set Architecture) y a la interconexión de los elementos de hardware se le denomina
microarquitectura. El conjunto de instrucciones representa todas las instrucciones que puede
interpretar y ejecutar el hardware. Se distribuyen en diferentes tipos, según su funcionalidad. Algunas
orientadas a la ejecución de operaciones aritméticas o lógicas, otras a los saltos condicionales, otras
a los saltos incondicionales, etc. Adicionalmente, el conjunto de instrucciones incluye la definición
de los registros que se utilizan en el sistema, los modos de direccionamiento y del formato en el que
cada tipo de instrucción se traduce a lenguaje de máquina. En las secciones siguientes se detallarán y
ejemplificarán cada uno de estos elementos.
En la lectura complementaria se puede encontrar una versión del conjunto de instrucciones de MIPS
que incluye la definición completada y detallada de las instrucciones, su tipología, los registros que se
utilizan, los modos de direccionamiento y las estructuras que definen las tipologías para escribir las
instrucciones en formato binario. Es importante aclarar que más que una lectura, este documento es un
manual que puede ser consultado cuando sea necesario y que no se debe leer de forma continua.
POLITÉCNICO GRANCOLOMBIANO
POLITÉCNICO GRANCOLOMBIANO 4
POLITÉCNICO GRANCOLOMBIANO 4
3.	Tipos de instrucción
De acuerdo con la documentación de MIPS, las instrucciones de esta arquitectura se agrupan en
3 grandes categorías, de acuerdo con su formato de instrucción: R, I y J. El tipo R (R de registros)
corresponde a aquellas instrucciones en la que los datos (operandos y resultados) son almacenados
en registros (Por ejemplo las instrucciones aritméticas o las lógicas). Las instrucciones de tipo I
(I de inmediato) corresponden aquellas donde el valor con el que se opera viene como parte de la
instrucción (equivalente a una constante).
Finalmente, las instrucciones tipo J, corresponde a instrucciones que permiten el cambio del flujo
del programa, como aquellas usadas en saltos condicionales y aquellas correspondientes a saltos
incondicionales (Araújo, Pádua, Andrade, & Correa, 2014).
Más allá de los tipos de instrucciones definidos por el formato de instrucción, las instrucciones se
pueden agrupar en diferentes categorías, de acuerdo con su utilidad y uso en la implementación de
algoritmos. A continuación se presentan en las categorías más generales:
3.1.	 Aritmético-lógicas
Como su nombre lo indica, corresponden a todas aquellas que reciben 3 parámetros: 2 indicando los
operandos y 1 indicando el resultado, y adicionalmente aplican una operación aritmética o lógica.
Por ejemplo:
add $s0, $s1, $s2
indica que en $s0 se guarde el resultado de sumar (add) $s1 con $s2.
3.2.	Artiméticas-inmediatas
Son muy similares a las anteriores, pero cambia el modo en el que se direccionan los datos que
se van a operar. En las inmediatas los datos a operar son constantes cuyo valor se incluye en la
misma instrucción. A diferencia de las anteriores, en las que el valor se almacena en un registro y la
instrucción incluye es la dirección del registro.
POLITÉCNICO GRANCOLOMBIANO
POLITÉCNICO GRANCOLOMBIANO 5
POLITÉCNICO GRANCOLOMBIANO 5
Por ejemplo:
addi $s0, $s1, 127
indica que en $s0 se guarde el resultado de sumar (addi) $s1 con el valor constante 127.
En lenguaje ensamblador de MIPS, las constantes están en decimal por defecto. Para escribirlas en
binario, hay que antecederlas con 0b y en hexadecimal con 0x.
3.3.	De transferencia de datos
Permiten, en esencia, comunicar los registros con la memoria RAM, de manera que se puedan cargar
datos en los registros desde la memoria RAM (load (Resaltar y poner con un tipografía como de
código)) o guardar datos desde los registros hacia la memoria RAM (store (Resaltar y poner con un
tipografía como de código)).
Por ejemplo:
sw $s0,0($s1)
indica que se debe guardar (sw) el valor de $s0 en la posición apuntada por $s1(Es decir que $s1
no contiene un valor sino una dirección). El 0 que antecede el ($s1) indica que se debe guardar
justamente en esa posición. Si fuera un 4, indicaría que es 4 bytes delante de la dirección apuntada
por $s1, o un 8, indicaría 8 bytes delante de la dirección apuntada por $s1. En MIPS el valor que
antecede el registro que apunta la dirección debe ser una constante numérica (como en el ejemplo
que es 0).
POLITÉCNICO GRANCOLOMBIANO
POLITÉCNICO GRANCOLOMBIANO 6
POLITÉCNICO GRANCOLOMBIANO 6
3.4.	Salto
3.4.1.	 Condicionales
Permiten ir a una línea de código de acuerdo con una condición.
Por ejemplo:
beq $s0, $s1, fin
Compara si $s0 es igual a $s1 y si lo es, salta a la línea etiquetada con fin.
3.4.2.	 Incondicionales
Permiten moverse entre distintas líneas del código, saltando de una línea a otra sin depender de una
condición.
Por ejemplo:
j for
Permite saltar a la línea de código que tenga la etiqueta “for” (Resaltar y poner con un tipografía
como de código).
3.4.3.	 Comparación
Son muy similares a las aritmético-lógicas. Se encargan de poner un registro en 1 o 0 en caso de que
se cumpla una condición.
Por ejemplo:
slt $s0,$s1, $s2
pone en 1 el registro $s0 en caso de que $s1 sea menor que $s2.
POLITÉCNICO GRANCOLOMBIANO
POLITÉCNICO GRANCOLOMBIANO 7
POLITÉCNICO GRANCOLOMBIANO 7
4.	Registros
Los registros son espacios de memoria de datos, tipo RAM, que se comunican directamente con la
ALU (Unidad Lógico-Aritmética). Esto simplifica la estructuración de las instrucciones y aumenta
la velocidad con la que se ejecutan las operaciones. En general, los registros se usan para almacenar
datos, pero existen algunos de propósito específico que se usan para almacenar direcciones o
apuntadores. En la Tabla 1 se presentan los 32 registros de la arquitectura MIPS.
El registro $zero sirve de constante nula: es un registro de sólo lectura que siempre vale cero (0).
Los registros $s0 a $s7 sirven para almacenar datos, tipo variables o direcciones de la memoria RAM
cuando se usan para almacenar apuntadores a arreglos, matrices y otras estructuras. Los registros
$t0 a $t9 se usan de forma similar a los $s, pero por convención se prefieren para datos temporales,
de cálculos parciales, cuyo valor no tenga que mantenerse por mucho tiempo. Los registros $a0-$a3,
$v0-$v1, $ra se utilizan para las funciones, los $a para enviarlos como parámetros, los $v para retorno
y el $ra para la dirección de memoria de programa a la que debe retornar cuando se acabe la función.
Los demás registros son de propósito específico: $sp como apuntador de pila, $fp como apuntador de
frame o sección, $gp como apuntador global.
Tabla 1. Registros de la arquitectura MIPS
Nombre
# del
registro
Uso
$zero 0 Constante 0
$v0 - $v1 2-3 Valores para resultados y evaluación de expresiones
$a0 - $a3 4-7 Argumentos
$t0 - $t7 8-15 Temporales
$s0 - $s7 16-23 Variables
$t8 - $t9 24-25 Más temporales
$gp 28 Global pointer
$sp 29 Stack pointer
$fp 30 Frame pointer
$ra 31 Dirección de retorno
Fuente: elaboración propia
POLITÉCNICO GRANCOLOMBIANO
POLITÉCNICO GRANCOLOMBIANO 8
POLITÉCNICO GRANCOLOMBIANO 8
5.	Modos de Direccionamiento
El direccionamiento, en la arquitectura del computador, se refiere a la forma en que se acceden los
datos que van a ser operados o que se requieren para ejecutar una instrucción. En MIPS, existen los
siguientes modos de direccionamiento: Registro-Indirecto, Desplazamiento, Índice base, Memoria-
indirecto, Auto-incremento, Auto-indexación, Escalado, Relativo al PC (Contador de programa)
(Martin & Roth, n.d.).
5.1.	 Directo a registro:
En este modo de direccionamiento se incluye en la instrucción la dirección del registro que se desea
acceder, como fuente o como destino.
Por ejemplo:
add $s1, $s2, $s3
Equivale a $s1=$s2+$s3 de manera que se envían como parámetros de la instrucción las direcciones
de los registros $s1 (destino), $s2 (fuente) y $s3 (fuente).
Figura 3. Direccionamiento directo a registro
Fuente: elaboración propia
5.2.	Indirecto a registro:
En este tipo modo de direccionamiento se incluye la dirección de un registro y un desplazamiento. El
dato que se usa como operando es el que se encuentre en una posición de la RAM equivalente a la
suma del apuntador del registro más el desplazamiento en la instrucción.
POLITÉCNICO GRANCOLOMBIANO
POLITÉCNICO GRANCOLOMBIANO 9
POLITÉCNICO GRANCOLOMBIANO 9
Por ejemplo:
lw $s3, 4($s2)
Indica que en el registro $s3 (destino) se va a guardar (load - lw) lo que esté en la posición de la
memoria RAM a la que apunte ($s2+4).
Figura 4. Direccionamiento indirecto a registro
Fuente: elaboración propia
5.3.	Relativo a PC (Contador de programa):
En este caso, el operando corresponde a una dirección de la memoria de programa y resulta de la
suma entre el valor actual del contador de programa y una constante que viene en la instrucción.
Por ejemplo:
beq $s1,$s2,for
Esta instrucción salta a la línea del programa con etiqueta for cuando $s1 es igual a $s2. Como las
direcciones de programa son largas, no se guarda la dirección completa con etiqueta for, sino la
distancia entre la línea actual y la línea for (el desplazamiento).
Figura 5. Direccionamiento relativo a PC
Fuente: elaboración propia
POLITÉCNICO GRANCOLOMBIANO
POLITÉCNICO GRANCOLOMBIANO 10
POLITÉCNICO GRANCOLOMBIANO 10
5.4.	Inmediato
El modo de direccionamiento inmediato se refiere a aquellas instrucciones en los que uno de los
operandos es un valor constante que viene dentro de la instrucción.
Por ejemplo:
addi $s6, $s7, 8
Corresponde a $s6=$s7+8 donde 8 sería direccionado de forma inmediata por ser una constante que
haría parte de la instrucción.
Figura 6. Direccionamiento relativo a PC
Fuente: elaboración propia
5.5.	Pseudodirecto:
Se utiliza cuando se requiere una dirección del contador de programa absoluta. Funciona de manera
que en la instrucción viene un valor constante que representa la dirección. A este número se le
desplaza dos posiciones a la izquierda (lo multiplica por 4 - en binario) y luego lo concatena con los 4
bits más significativos del valor actual del contador de programa. Este resultado es el nuevo valor del
contador de programa.
Por ejemplo:
j 2100
Salta a la posición 2100*4=8400 concatenada con los bits más significativos del valor de la posición
actual.
POLITÉCNICO GRANCOLOMBIANO
POLITÉCNICO GRANCOLOMBIANO 11
POLITÉCNICO GRANCOLOMBIANO 11
Figura 7. Direccionamiento pseudodirecto
Fuente: elaboración propia
5.6.	Implícito:
Es el menos común de los modos de direccionamiento. Corresponde al direccionamiento el operando
es determinado por el código de operación.
Por ejemplo:
jal 2500
Que salta a la posición 2500*4 y adicionalmente almacena la dirección del contador de programa
actual en el registro $ra.
Figura 8. Direccionamiento implícito
Fuente: elaboración propia
POLITÉCNICO GRANCOLOMBIANO
POLITÉCNICO GRANCOLOMBIANO 12
POLITÉCNICO GRANCOLOMBIANO 12
6.	Traducción de ensamblador a máquina
Cada una de las instrucciones, según su tipo, tiene un formato de instrucción que define cómo se
debe codificar desde el compilador y cómo el hardware la decodifica. A continuación se presenta
cómo son los principales formatos de instrucción y a qué corresponde a cada uno de los elementos
que conforman su estructura. En MIPS, todas las instrucciones tienen el mismo tamaño (32 bits),
independiente de su tipo. Si una instrucción requiere menos de los 32 bits, los restantes se llenan con
información basura, que nunca es usada por el hardware y por lo tanto no importa si su valor es 0 o 1.
Instrucciones tipo R
Se refiere a las instrucciones aritmético-lógicas. Los 6 bits más significativos corresponden a un
código de operación. Los 5 bits siguientes (del 26 al 22) corresponden al registro fuente 1, los 5
siguientes (del 21 al 17) se refieren al segundo registro fuente. Los bits del 16 al 12 corresponden a la
dirección del registro destino. Los últimos bits se utilizan en algunas funciones para el desplazamiento
o especificar el código de operación.
Instrucciones tipo I
Integra las instrucciones de referencia a memoria, aritméticas (inmediatas) y de salto condicional.
Los 6 bits más significativos corresponden a un código de operación. Los 5 bits siguientes (del 26
al 22) corresponden al registro fuente 1, los 5 siguientes (del 21 al 17) se refieren a la dirección del
registro destino. Los últimos bits se utilizan para un valor constante.
Instrucciones tipo J
Corresponde a las instrucciones de salto incondicional. Los 6 bits más significativos corresponden
a un código de operación. Los últimos bits se utilizan para un valor constante que representa una
dirección.
POLITÉCNICO GRANCOLOMBIANO
POLITÉCNICO GRANCOLOMBIANO 13
POLITÉCNICO GRANCOLOMBIANO 13
7.	Herramienta de simulación: MARS
La herramienta de simulación MARS permite realizar la programación de algoritmos usando las
instrucciones de MIPS. En la simulación se puede ejecutar instrucción por instrucción, viendo el
estado de los registros, de la memoria de programa y de la memoria RAM tras la ejecución de todo un
programa o de cada instrucción. Se puede descargar para realizar el siguiente algoritmo en MIPS.
Para que se pueda interactuar con la herramienta de simulación, se propone implementar un
algoritmo en el que se guarden (en la RAM, a manera de arreglo) los divisores de un número n
guardado en un registro (para el ejemplo $s0). En las Figuras 9 y 10 se presentan, respectivamente, el
algoritmo en lenguaje de alto nivel y en lenguaje ensamblador MIPS. 	
Figura 9. Algoritmos de alto nivel
Fuente: elaboración propia
POLITÉCNICO GRANCOLOMBIANO
POLITÉCNICO GRANCOLOMBIANO 14
POLITÉCNICO GRANCOLOMBIANO 14
Figura 10. Algoritmos de alto nivel
Fuente: elaboración propia
8.	Breve introducción a la aritmética para procesadores
La aritmética del procesador se refiere a la manera en que se realizan las operaciones aritméticas
dentro del procesador. Esta definición incluye lo que sucede cuando hay un desbordamiento en la
suma o la resta, cómo se manejan los productos teniendo en cuenta que la multiplicación requiere el
doble de bits para el resultado que los bits que tienen los operandos, cómo se maneja el cociente y el
residuo en una división, cómo se representan y operan los números reales, entre otros. En la lectura
complementaria del escenario 3, podrás leer más acerca de la aritmética del procesador.
POLITÉCNICO GRANCOLOMBIANO
POLITÉCNICO GRANCOLOMBIANO 15
POLITÉCNICO GRANCOLOMBIANO 15
POLITÉCNICO GRANCOLOMBIANO
POLITÉCNICO GRANCOLOMBIANO 16
POLITÉCNICO GRANCOLOMBIANO 16
Referencias
MIT –Software MARS Recuperado de: http://courses.missouristate.edu/KenVollmar/mars/ Mayo de
2017
Patt, Y. (2001). Requirements, bottlenecks, and good fortune: agents for microprocessor evolution.
Proceedings of the IEEE, 1553 - 1559.
Patterson, D., Hennessy L. (1994) Computer Organization and Design: the Hardware/Software
Interface. Editorial MK.
INFORMACIÓN TÉCNICA
Módulo: Arquitectura del Computador
Unidad 2: ISA: Instruction Set Architecture y Aritmética 	
	 para procesadores.
Escenario 3: Conjunto de Instrucciones
	 (ISA – Instruction Set Architecture)
Autor: Laura Juliana Cortés Rico
Asesor Pedagógico: Edwin Alcides Mojica Quintero
Diseñador Gráfico: Carlos Montoya
Asistente: Ginna Quiroga
Este material pertenece al Politécnico Grancolombiano. Por
ende, es de uso exclusivo de las Instituciones adscritas a la Red
Ilumno. Prohibida su reproducción total o parcial.
POLITÉCNICO GRANCOLOMBIANO
POLITÉCNICO GRANCOLOMBIANO 17
POLITÉCNICO GRANCOLOMBIANO 17

Más contenido relacionado

La actualidad más candente

Arquitectura de Computadores Cap VI:Repertorio de Instrucciones
Arquitectura de Computadores Cap VI:Repertorio de InstruccionesArquitectura de Computadores Cap VI:Repertorio de Instrucciones
Arquitectura de Computadores Cap VI:Repertorio de Instrucciones
Videoconferencias UTPL
 
CAPACIDAD DE LA UNIDAD DE PROCESAMIENTO
CAPACIDAD DE LA UNIDAD DE PROCESAMIENTOCAPACIDAD DE LA UNIDAD DE PROCESAMIENTO
CAPACIDAD DE LA UNIDAD DE PROCESAMIENTO
Rafael Espina
 
Actividad colaborativa
Actividad colaborativaActividad colaborativa
Actividad colaborativa
AngelicaMaria99
 
Trabajo COMPUTACION
Trabajo COMPUTACIONTrabajo COMPUTACION
Trabajo COMPUTACION
ylastra
 
Capacidad de la unidad de procesamiento
Capacidad de la unidad de procesamientoCapacidad de la unidad de procesamiento
Capacidad de la unidad de procesamiento
LucianoCabrera7
 
Modos de direccionamiento
Modos de direccionamientoModos de direccionamiento
Modos de direccionamiento
Eduardo Abalo
 
Tarea 1.1
Tarea 1.1Tarea 1.1
Tarea 1.1
Kike Paz
 
Arquitectura de computadoras
Arquitectura de computadorasArquitectura de computadoras
Arquitectura de computadoras
camiche97
 
Andrea Avendaño 28.041.479
Andrea Avendaño 28.041.479Andrea Avendaño 28.041.479
Andrea Avendaño 28.041.479
Andrea Carolina
 
Resumen del primer corte
Resumen del primer corteResumen del primer corte
Resumen del primer corte
ADOLFO BORJA
 

La actualidad más candente (10)

Arquitectura de Computadores Cap VI:Repertorio de Instrucciones
Arquitectura de Computadores Cap VI:Repertorio de InstruccionesArquitectura de Computadores Cap VI:Repertorio de Instrucciones
Arquitectura de Computadores Cap VI:Repertorio de Instrucciones
 
CAPACIDAD DE LA UNIDAD DE PROCESAMIENTO
CAPACIDAD DE LA UNIDAD DE PROCESAMIENTOCAPACIDAD DE LA UNIDAD DE PROCESAMIENTO
CAPACIDAD DE LA UNIDAD DE PROCESAMIENTO
 
Actividad colaborativa
Actividad colaborativaActividad colaborativa
Actividad colaborativa
 
Trabajo COMPUTACION
Trabajo COMPUTACIONTrabajo COMPUTACION
Trabajo COMPUTACION
 
Capacidad de la unidad de procesamiento
Capacidad de la unidad de procesamientoCapacidad de la unidad de procesamiento
Capacidad de la unidad de procesamiento
 
Modos de direccionamiento
Modos de direccionamientoModos de direccionamiento
Modos de direccionamiento
 
Tarea 1.1
Tarea 1.1Tarea 1.1
Tarea 1.1
 
Arquitectura de computadoras
Arquitectura de computadorasArquitectura de computadoras
Arquitectura de computadoras
 
Andrea Avendaño 28.041.479
Andrea Avendaño 28.041.479Andrea Avendaño 28.041.479
Andrea Avendaño 28.041.479
 
Resumen del primer corte
Resumen del primer corteResumen del primer corte
Resumen del primer corte
 

Similar a Lectura fundamental 3

NASM
NASM NASM
NASM
Alex Pin
 
00026966
0002696600026966
Estructuras de Control
Estructuras de ControlEstructuras de Control
Estructuras de Control
Jaime Alberto Sousa Adames
 
Ensayo ciclo De Instrucción
Ensayo ciclo De InstrucciónEnsayo ciclo De Instrucción
Ensayo ciclo De Instrucción
AlejandraViveros14
 
Procesamiento segmentado - INFORME
Procesamiento segmentado - INFORMEProcesamiento segmentado - INFORME
Procesamiento segmentado - INFORME
Jairo Quiroz Cabanillas
 
Lenguajes de Programación: Estructuras de Control
Lenguajes de Programación: Estructuras de ControlLenguajes de Programación: Estructuras de Control
Lenguajes de Programación: Estructuras de Control
Luis Fernando Aguas Bucheli
 
Estructuras de Control
Estructuras de Control Estructuras de Control
Estructuras de Control
Jaime Alberto Sousa Adames
 
REGISTRO E INSTRUCCIONES DEL MICROPROCESADOR, MODOS DE DIRECCIONAMIENTO.
REGISTRO E INSTRUCCIONES DEL MICROPROCESADOR, MODOS DE DIRECCIONAMIENTO. REGISTRO E INSTRUCCIONES DEL MICROPROCESADOR, MODOS DE DIRECCIONAMIENTO.
REGISTRO E INSTRUCCIONES DEL MICROPROCESADOR, MODOS DE DIRECCIONAMIENTO.
Michelle Diaz
 
Unidad 2 clasificacion de arquitectura paralela
Unidad 2 clasificacion de arquitectura paralelaUnidad 2 clasificacion de arquitectura paralela
Unidad 2 clasificacion de arquitectura paralela
Jhonny Real Schweinsteiger
 
Protocolo colaborativo unidad lll (ureche )
Protocolo colaborativo unidad lll (ureche )Protocolo colaborativo unidad lll (ureche )
Protocolo colaborativo unidad lll (ureche )
Nati Cabraless
 
Tecnologia
TecnologiaTecnologia
Estructuras básicas
Estructuras básicas Estructuras básicas
Estructuras básicas
alancardona3
 
ESTRUCTURAS BÁSICAS
ESTRUCTURAS BÁSICASESTRUCTURAS BÁSICAS
ESTRUCTURAS BÁSICAS
Sara Sofía Imbachí Nieto
 
Estructuras básicas
Estructuras básicas Estructuras básicas
Estructuras básicas
alancardona3
 
Estructuras basicas
Estructuras basicasEstructuras basicas
Estructuras basicas
AlejandroLozada20
 
Tecno
TecnoTecno
Trabajo de ureche nataly el repertorio de instrucciones
Trabajo de ureche nataly el repertorio de instruccionesTrabajo de ureche nataly el repertorio de instrucciones
Trabajo de ureche nataly el repertorio de instrucciones
Nati Cabraless
 
Tecnologia trabajo
Tecnologia trabajoTecnologia trabajo
Tecnologia trabajo
Arnold Riascos
 
Programacion ensamblador-procesadoresk
Programacion ensamblador-procesadoreskProgramacion ensamblador-procesadoresk
Programacion ensamblador-procesadoresk
Johann Chambilla
 
Pseudocódigo de Programación
Pseudocódigo de ProgramaciónPseudocódigo de Programación
Pseudocódigo de Programación
reinimar912
 

Similar a Lectura fundamental 3 (20)

NASM
NASM NASM
NASM
 
00026966
0002696600026966
00026966
 
Estructuras de Control
Estructuras de ControlEstructuras de Control
Estructuras de Control
 
Ensayo ciclo De Instrucción
Ensayo ciclo De InstrucciónEnsayo ciclo De Instrucción
Ensayo ciclo De Instrucción
 
Procesamiento segmentado - INFORME
Procesamiento segmentado - INFORMEProcesamiento segmentado - INFORME
Procesamiento segmentado - INFORME
 
Lenguajes de Programación: Estructuras de Control
Lenguajes de Programación: Estructuras de ControlLenguajes de Programación: Estructuras de Control
Lenguajes de Programación: Estructuras de Control
 
Estructuras de Control
Estructuras de Control Estructuras de Control
Estructuras de Control
 
REGISTRO E INSTRUCCIONES DEL MICROPROCESADOR, MODOS DE DIRECCIONAMIENTO.
REGISTRO E INSTRUCCIONES DEL MICROPROCESADOR, MODOS DE DIRECCIONAMIENTO. REGISTRO E INSTRUCCIONES DEL MICROPROCESADOR, MODOS DE DIRECCIONAMIENTO.
REGISTRO E INSTRUCCIONES DEL MICROPROCESADOR, MODOS DE DIRECCIONAMIENTO.
 
Unidad 2 clasificacion de arquitectura paralela
Unidad 2 clasificacion de arquitectura paralelaUnidad 2 clasificacion de arquitectura paralela
Unidad 2 clasificacion de arquitectura paralela
 
Protocolo colaborativo unidad lll (ureche )
Protocolo colaborativo unidad lll (ureche )Protocolo colaborativo unidad lll (ureche )
Protocolo colaborativo unidad lll (ureche )
 
Tecnologia
TecnologiaTecnologia
Tecnologia
 
Estructuras básicas
Estructuras básicas Estructuras básicas
Estructuras básicas
 
ESTRUCTURAS BÁSICAS
ESTRUCTURAS BÁSICASESTRUCTURAS BÁSICAS
ESTRUCTURAS BÁSICAS
 
Estructuras básicas
Estructuras básicas Estructuras básicas
Estructuras básicas
 
Estructuras basicas
Estructuras basicasEstructuras basicas
Estructuras basicas
 
Tecno
TecnoTecno
Tecno
 
Trabajo de ureche nataly el repertorio de instrucciones
Trabajo de ureche nataly el repertorio de instruccionesTrabajo de ureche nataly el repertorio de instrucciones
Trabajo de ureche nataly el repertorio de instrucciones
 
Tecnologia trabajo
Tecnologia trabajoTecnologia trabajo
Tecnologia trabajo
 
Programacion ensamblador-procesadoresk
Programacion ensamblador-procesadoreskProgramacion ensamblador-procesadoresk
Programacion ensamblador-procesadoresk
 
Pseudocódigo de Programación
Pseudocódigo de ProgramaciónPseudocódigo de Programación
Pseudocódigo de Programación
 

Último

Humanismo y ciencia.pdfgfggggggggggggggggggg
Humanismo y ciencia.pdfgfgggggggggggggggggggHumanismo y ciencia.pdfgfggggggggggggggggggg
Humanismo y ciencia.pdfgfggggggggggggggggggg
tomevil25
 
Abraxas obra diseñada por [Juan]&[Diego]
Abraxas obra diseñada por [Juan]&[Diego]Abraxas obra diseñada por [Juan]&[Diego]
Abraxas obra diseñada por [Juan]&[Diego]
diegodelamo2024
 
EL BARROCO presentacion de universidad de guadalajara
EL BARROCO presentacion de universidad de guadalajaraEL BARROCO presentacion de universidad de guadalajara
EL BARROCO presentacion de universidad de guadalajara
derekpulido3455
 
472606965-Terra-Amata, Historia y cultura.pdf
472606965-Terra-Amata, Historia y cultura.pdf472606965-Terra-Amata, Historia y cultura.pdf
472606965-Terra-Amata, Historia y cultura.pdf
karolmichelotaboadac
 
Excel Avanzado_ Diagrama de Pareto .pdf
Excel Avanzado_  Diagrama de Pareto .pdfExcel Avanzado_  Diagrama de Pareto .pdf
Excel Avanzado_ Diagrama de Pareto .pdf
XcpBoy
 
Planificacion organizacion de sesion de aprend..pptx
Planificacion organizacion de sesion de aprend..pptxPlanificacion organizacion de sesion de aprend..pptx
Planificacion organizacion de sesion de aprend..pptx
YovelinAtauchiCalsin
 
cultura Caral una de las civilizaciones ubicados en el norte de Perú.
cultura Caral una de las civilizaciones ubicados en el norte de Perú.cultura Caral una de las civilizaciones ubicados en el norte de Perú.
cultura Caral una de las civilizaciones ubicados en el norte de Perú.
71512192
 
EXPOSICIONkljhmkkkkkkkkkkk ADENCION.pptx
EXPOSICIONkljhmkkkkkkkkkkk ADENCION.pptxEXPOSICIONkljhmkkkkkkkkkkk ADENCION.pptx
EXPOSICIONkljhmkkkkkkkkkkk ADENCION.pptx
JonathanDelgado801891
 
Tercer libro de Vitruvio Arquitectura 2semestre
Tercer libro de Vitruvio Arquitectura 2semestreTercer libro de Vitruvio Arquitectura 2semestre
Tercer libro de Vitruvio Arquitectura 2semestre
AsviSamuelSolisMarti
 
mi comunidad. caserio el palomar .razuri
mi comunidad. caserio el palomar .razurimi comunidad. caserio el palomar .razuri
mi comunidad. caserio el palomar .razuri
María Elena Plasencia Marrujo
 
Mapa mental hábitos saludables creativo verde.pdf
Mapa mental hábitos saludables creativo verde.pdfMapa mental hábitos saludables creativo verde.pdf
Mapa mental hábitos saludables creativo verde.pdf
CESARHUAYLLAQUISPE
 
Presentacion Proyecto Creativo Marketing Creativa Multicolor.pdf
Presentacion Proyecto Creativo Marketing Creativa Multicolor.pdfPresentacion Proyecto Creativo Marketing Creativa Multicolor.pdf
Presentacion Proyecto Creativo Marketing Creativa Multicolor.pdf
alancarranzavargas2
 
arte contemporáneo, el caso del surrealismo
arte contemporáneo, el caso del surrealismoarte contemporáneo, el caso del surrealismo
arte contemporáneo, el caso del surrealismo
WalterCespi1
 
COMPROMISOS PARA CUIDAR EL MEDIO AMBIENTE.pdf
COMPROMISOS PARA CUIDAR EL MEDIO AMBIENTE.pdfCOMPROMISOS PARA CUIDAR EL MEDIO AMBIENTE.pdf
COMPROMISOS PARA CUIDAR EL MEDIO AMBIENTE.pdf
MariluzLopezToribio
 
CARATULA DE CUADERNO PEDAGOGICO 2024.docx
CARATULA DE CUADERNO PEDAGOGICO 2024.docxCARATULA DE CUADERNO PEDAGOGICO 2024.docx
CARATULA DE CUADERNO PEDAGOGICO 2024.docx
JaronCanelas
 
presentaciondenotasdepapeljuvenilrosado202406152319030000-240616042154-f172c8...
presentaciondenotasdepapeljuvenilrosado202406152319030000-240616042154-f172c8...presentaciondenotasdepapeljuvenilrosado202406152319030000-240616042154-f172c8...
presentaciondenotasdepapeljuvenilrosado202406152319030000-240616042154-f172c8...
Grados Solórzano Tania Apellidos
 
mi corazon encantado , tema de dragon ball GT
mi corazon encantado , tema de dragon ball GTmi corazon encantado , tema de dragon ball GT
mi corazon encantado , tema de dragon ball GT
ssuser402bb71
 
El Crecimiento Urbano de las Ciudades Latinoamericanas.pdf
El Crecimiento Urbano de las Ciudades Latinoamericanas.pdfEl Crecimiento Urbano de las Ciudades Latinoamericanas.pdf
El Crecimiento Urbano de las Ciudades Latinoamericanas.pdf
MariangelUrrieta
 
Fichas-Comprension-Lectora-5°-basico.docx
Fichas-Comprension-Lectora-5°-basico.docxFichas-Comprension-Lectora-5°-basico.docx
Fichas-Comprension-Lectora-5°-basico.docx
SaraCaniupn
 
Catálogo XII Salón Internacional de Arte Abstracto ES
Catálogo XII Salón Internacional de Arte Abstracto ESCatálogo XII Salón Internacional de Arte Abstracto ES
Catálogo XII Salón Internacional de Arte Abstracto ES
boriseduardofg
 

Último (20)

Humanismo y ciencia.pdfgfggggggggggggggggggg
Humanismo y ciencia.pdfgfgggggggggggggggggggHumanismo y ciencia.pdfgfggggggggggggggggggg
Humanismo y ciencia.pdfgfggggggggggggggggggg
 
Abraxas obra diseñada por [Juan]&[Diego]
Abraxas obra diseñada por [Juan]&[Diego]Abraxas obra diseñada por [Juan]&[Diego]
Abraxas obra diseñada por [Juan]&[Diego]
 
EL BARROCO presentacion de universidad de guadalajara
EL BARROCO presentacion de universidad de guadalajaraEL BARROCO presentacion de universidad de guadalajara
EL BARROCO presentacion de universidad de guadalajara
 
472606965-Terra-Amata, Historia y cultura.pdf
472606965-Terra-Amata, Historia y cultura.pdf472606965-Terra-Amata, Historia y cultura.pdf
472606965-Terra-Amata, Historia y cultura.pdf
 
Excel Avanzado_ Diagrama de Pareto .pdf
Excel Avanzado_  Diagrama de Pareto .pdfExcel Avanzado_  Diagrama de Pareto .pdf
Excel Avanzado_ Diagrama de Pareto .pdf
 
Planificacion organizacion de sesion de aprend..pptx
Planificacion organizacion de sesion de aprend..pptxPlanificacion organizacion de sesion de aprend..pptx
Planificacion organizacion de sesion de aprend..pptx
 
cultura Caral una de las civilizaciones ubicados en el norte de Perú.
cultura Caral una de las civilizaciones ubicados en el norte de Perú.cultura Caral una de las civilizaciones ubicados en el norte de Perú.
cultura Caral una de las civilizaciones ubicados en el norte de Perú.
 
EXPOSICIONkljhmkkkkkkkkkkk ADENCION.pptx
EXPOSICIONkljhmkkkkkkkkkkk ADENCION.pptxEXPOSICIONkljhmkkkkkkkkkkk ADENCION.pptx
EXPOSICIONkljhmkkkkkkkkkkk ADENCION.pptx
 
Tercer libro de Vitruvio Arquitectura 2semestre
Tercer libro de Vitruvio Arquitectura 2semestreTercer libro de Vitruvio Arquitectura 2semestre
Tercer libro de Vitruvio Arquitectura 2semestre
 
mi comunidad. caserio el palomar .razuri
mi comunidad. caserio el palomar .razurimi comunidad. caserio el palomar .razuri
mi comunidad. caserio el palomar .razuri
 
Mapa mental hábitos saludables creativo verde.pdf
Mapa mental hábitos saludables creativo verde.pdfMapa mental hábitos saludables creativo verde.pdf
Mapa mental hábitos saludables creativo verde.pdf
 
Presentacion Proyecto Creativo Marketing Creativa Multicolor.pdf
Presentacion Proyecto Creativo Marketing Creativa Multicolor.pdfPresentacion Proyecto Creativo Marketing Creativa Multicolor.pdf
Presentacion Proyecto Creativo Marketing Creativa Multicolor.pdf
 
arte contemporáneo, el caso del surrealismo
arte contemporáneo, el caso del surrealismoarte contemporáneo, el caso del surrealismo
arte contemporáneo, el caso del surrealismo
 
COMPROMISOS PARA CUIDAR EL MEDIO AMBIENTE.pdf
COMPROMISOS PARA CUIDAR EL MEDIO AMBIENTE.pdfCOMPROMISOS PARA CUIDAR EL MEDIO AMBIENTE.pdf
COMPROMISOS PARA CUIDAR EL MEDIO AMBIENTE.pdf
 
CARATULA DE CUADERNO PEDAGOGICO 2024.docx
CARATULA DE CUADERNO PEDAGOGICO 2024.docxCARATULA DE CUADERNO PEDAGOGICO 2024.docx
CARATULA DE CUADERNO PEDAGOGICO 2024.docx
 
presentaciondenotasdepapeljuvenilrosado202406152319030000-240616042154-f172c8...
presentaciondenotasdepapeljuvenilrosado202406152319030000-240616042154-f172c8...presentaciondenotasdepapeljuvenilrosado202406152319030000-240616042154-f172c8...
presentaciondenotasdepapeljuvenilrosado202406152319030000-240616042154-f172c8...
 
mi corazon encantado , tema de dragon ball GT
mi corazon encantado , tema de dragon ball GTmi corazon encantado , tema de dragon ball GT
mi corazon encantado , tema de dragon ball GT
 
El Crecimiento Urbano de las Ciudades Latinoamericanas.pdf
El Crecimiento Urbano de las Ciudades Latinoamericanas.pdfEl Crecimiento Urbano de las Ciudades Latinoamericanas.pdf
El Crecimiento Urbano de las Ciudades Latinoamericanas.pdf
 
Fichas-Comprension-Lectora-5°-basico.docx
Fichas-Comprension-Lectora-5°-basico.docxFichas-Comprension-Lectora-5°-basico.docx
Fichas-Comprension-Lectora-5°-basico.docx
 
Catálogo XII Salón Internacional de Arte Abstracto ES
Catálogo XII Salón Internacional de Arte Abstracto ESCatálogo XII Salón Internacional de Arte Abstracto ES
Catálogo XII Salón Internacional de Arte Abstracto ES
 

Lectura fundamental 3

  • 1. Palabras clave: set de instrucciones (ISA), lenguaje ensamblador, procesador, lenguaje de máquina. Contenido 1 2 3 4 5 6 7 8 MIPS Microprocessor without Interlocked Pipeline Stages Tipos de Instrucción Modos de Direccionamiento Traducción de ensamblador a máquina Herramienta de simulación: MARS Breve introducción a la aritmética para procesadores Qué es el conjunto de instrucciones Registros Conjunto de instrucciones (ISA – Instruction Set Architecture) Unidad 2 / Escenario 3 Lectura fundamental
  • 2. Diariamente se utilizan sistemas de cómputo para apoyar tareas en diversos (si no todos) campos. Desde la ingeniería, hasta la agricultura. Gracias a las interfaces de usuario amigables, estas tareas se realizan de forma casi trivial, de forma que los usuarios aprenden rápidamente utilizar nuevos dispositivos o aplicaciones. A través de esta lectura se presenta una introducción a qué pasa en el sistema de cómputo para que sea capaz de traducir un conjunto de pasos de un algoritmo, en operaciones ejecutables por el hardware del computador. Esta introducción ayudará a responder: ¿Cómo el hardware de estos dispositivos entiende nuestras órdenes? ¿Cómo un computador recibe y ejecuta tareas? Adicionalmente, este espacio permitirá entender cómo se traduce una instrucción a un conjunto que 1s y 0s que el hardware del computador pueda interpretar y ejecutar. 1. MIPS Microprocessor without Interlocked Pipeline Stages En este módulo se estudiará una de las arquitecturas más populares en la actualidad: aquella en la que la memoria de datos sólo se puede acceder a través de instrucciones de lectura y escritura load/ store. Específicamente, se estudiará esta arquitectura desde un caso particular: MIPS corresponde a la sigla de Microprocessor without Interlocked Pipeline Stages (Microprocesador sin etapas de pipeline bloqueadas). Su nombre se debe a que, en esta arquitectura, las instrucciones se ejecutan por etapas en el procesador. Adicionalmente, estas etapas no dependen unas de otras y todas las instrucciones se ejecutan pasando por todas las etapas. A este mecanismo de ejecución de instrucciones se le denomina. El pipeline permite un paralelismo a nivel de instrucción. La razón es que más de una instrucción se puede ejecutar a la vez, siempre y cuando estén en diferentes etapas. En la Figura 1 se muestra un ejemplo. En la parte superior de la imagen se ejecuta el proceso de lavar la ropa (que representa, como un recurso ilustrativo, una instrucción) sin aprovechar el pipeline, y en la parte inferior, aprovechando el pipeline. De acuerdo con la imagen, lavar la ropa se hace en 4 etapas: lavado, secado, planchado y guardado. Sin aprovechar el pipeline, cada “tanda” (instrucción) pasa por las 4 etapas, y solo hasta que se acaben las todas las etapas, inicia la siguiente “tanda” (instrucción). Aprovechando el pipeline, la “tanda” uno inicia, y tan pronto pasa la primera etapa, inicia la segunda “tanda”: mientras la primera se encuentra en secado, la segunda está en la etapa de lavado. POLITÉCNICO GRANCOLOMBIANO POLITÉCNICO GRANCOLOMBIANO 2 POLITÉCNICO GRANCOLOMBIANO 2
  • 3. Así, sin pipeline 4 “tandas” (equivalentes a las instrucciones) se ejecutan en 8 horas. Con pipeline, las mismas 4 “tandas” se realizan en 3 horas y media. Al pipeline se le denomina paralelismo a nivel de instrucciones y se verá con más detalle en la Unidad 4. Figura 1. Proceso de lavado de ropa Fuente: elaboración propia Se ha seleccionado MIPS como la arquitectura a ser estudiada porque se basa en un conjunto de características y principios de diseño que facilitan el aprendizaje de la arquitectura del computador. Una de las características es la simplicidad; por ejemplo: todas las instrucciones tienen el mismo tamaño que es, además, el mismo tamaño de los datos: 32 bits para MIPS32 y 64 bits para MIPS64. Figura 2. Tipos de Arquitectura MIPS: MIPS32 y MIPS64 Fuente: elaboración propia POLITÉCNICO GRANCOLOMBIANO POLITÉCNICO GRANCOLOMBIANO 3 POLITÉCNICO GRANCOLOMBIANO 3
  • 4. Los principios de diseño de MIPS son (Hennessy & Patterson, 2000): • La simplicidad favorece la regularidad. Que se ve reflejado en el hecho de que todas las instrucciones tengan el mismo tamaño, todas las instrucciones pertenezcan a alguno de tres grandes tipos y todas las instrucciones de un mismo tipo tengan el mismo formato de instrucción. • Si es más pequeño es más rápido. El manejo de registros en MIPS es óptimo. Además, la cantidad de registros coincide con el tamaño de las instrucciones, facilitando también la regularidad. El usar registros para almacenar los datos más inmediatos, ayuda a que el procesador sea más rápido. A continuación, se define lo que es el conjunto de instrucciones, específicamente ejemplarizando con MIPS. En la siguiente lectura se realizará un repaso por algunas de las secciones de esta lectura, particularizando sobre el proceso de diseño de un conjunto particular, propio, que parte de un reto de diseño. 2. Qué es el conjunto (set) de instrucciones Como se presentó en el escenario 1, la arquitectura del computador estudia cómo un lenguaje de programación se traduce a un conjunto de instrucciones que pueden ser interpretadas y ejecutadas por una interconexión de elementos de hardware. Al conjunto de instrucciones se le denomina ISA (Instruction Set Architecture) y a la interconexión de los elementos de hardware se le denomina microarquitectura. El conjunto de instrucciones representa todas las instrucciones que puede interpretar y ejecutar el hardware. Se distribuyen en diferentes tipos, según su funcionalidad. Algunas orientadas a la ejecución de operaciones aritméticas o lógicas, otras a los saltos condicionales, otras a los saltos incondicionales, etc. Adicionalmente, el conjunto de instrucciones incluye la definición de los registros que se utilizan en el sistema, los modos de direccionamiento y del formato en el que cada tipo de instrucción se traduce a lenguaje de máquina. En las secciones siguientes se detallarán y ejemplificarán cada uno de estos elementos. En la lectura complementaria se puede encontrar una versión del conjunto de instrucciones de MIPS que incluye la definición completada y detallada de las instrucciones, su tipología, los registros que se utilizan, los modos de direccionamiento y las estructuras que definen las tipologías para escribir las instrucciones en formato binario. Es importante aclarar que más que una lectura, este documento es un manual que puede ser consultado cuando sea necesario y que no se debe leer de forma continua. POLITÉCNICO GRANCOLOMBIANO POLITÉCNICO GRANCOLOMBIANO 4 POLITÉCNICO GRANCOLOMBIANO 4
  • 5. 3. Tipos de instrucción De acuerdo con la documentación de MIPS, las instrucciones de esta arquitectura se agrupan en 3 grandes categorías, de acuerdo con su formato de instrucción: R, I y J. El tipo R (R de registros) corresponde a aquellas instrucciones en la que los datos (operandos y resultados) son almacenados en registros (Por ejemplo las instrucciones aritméticas o las lógicas). Las instrucciones de tipo I (I de inmediato) corresponden aquellas donde el valor con el que se opera viene como parte de la instrucción (equivalente a una constante). Finalmente, las instrucciones tipo J, corresponde a instrucciones que permiten el cambio del flujo del programa, como aquellas usadas en saltos condicionales y aquellas correspondientes a saltos incondicionales (Araújo, Pádua, Andrade, & Correa, 2014). Más allá de los tipos de instrucciones definidos por el formato de instrucción, las instrucciones se pueden agrupar en diferentes categorías, de acuerdo con su utilidad y uso en la implementación de algoritmos. A continuación se presentan en las categorías más generales: 3.1. Aritmético-lógicas Como su nombre lo indica, corresponden a todas aquellas que reciben 3 parámetros: 2 indicando los operandos y 1 indicando el resultado, y adicionalmente aplican una operación aritmética o lógica. Por ejemplo: add $s0, $s1, $s2 indica que en $s0 se guarde el resultado de sumar (add) $s1 con $s2. 3.2. Artiméticas-inmediatas Son muy similares a las anteriores, pero cambia el modo en el que se direccionan los datos que se van a operar. En las inmediatas los datos a operar son constantes cuyo valor se incluye en la misma instrucción. A diferencia de las anteriores, en las que el valor se almacena en un registro y la instrucción incluye es la dirección del registro. POLITÉCNICO GRANCOLOMBIANO POLITÉCNICO GRANCOLOMBIANO 5 POLITÉCNICO GRANCOLOMBIANO 5
  • 6. Por ejemplo: addi $s0, $s1, 127 indica que en $s0 se guarde el resultado de sumar (addi) $s1 con el valor constante 127. En lenguaje ensamblador de MIPS, las constantes están en decimal por defecto. Para escribirlas en binario, hay que antecederlas con 0b y en hexadecimal con 0x. 3.3. De transferencia de datos Permiten, en esencia, comunicar los registros con la memoria RAM, de manera que se puedan cargar datos en los registros desde la memoria RAM (load (Resaltar y poner con un tipografía como de código)) o guardar datos desde los registros hacia la memoria RAM (store (Resaltar y poner con un tipografía como de código)). Por ejemplo: sw $s0,0($s1) indica que se debe guardar (sw) el valor de $s0 en la posición apuntada por $s1(Es decir que $s1 no contiene un valor sino una dirección). El 0 que antecede el ($s1) indica que se debe guardar justamente en esa posición. Si fuera un 4, indicaría que es 4 bytes delante de la dirección apuntada por $s1, o un 8, indicaría 8 bytes delante de la dirección apuntada por $s1. En MIPS el valor que antecede el registro que apunta la dirección debe ser una constante numérica (como en el ejemplo que es 0). POLITÉCNICO GRANCOLOMBIANO POLITÉCNICO GRANCOLOMBIANO 6 POLITÉCNICO GRANCOLOMBIANO 6
  • 7. 3.4. Salto 3.4.1. Condicionales Permiten ir a una línea de código de acuerdo con una condición. Por ejemplo: beq $s0, $s1, fin Compara si $s0 es igual a $s1 y si lo es, salta a la línea etiquetada con fin. 3.4.2. Incondicionales Permiten moverse entre distintas líneas del código, saltando de una línea a otra sin depender de una condición. Por ejemplo: j for Permite saltar a la línea de código que tenga la etiqueta “for” (Resaltar y poner con un tipografía como de código). 3.4.3. Comparación Son muy similares a las aritmético-lógicas. Se encargan de poner un registro en 1 o 0 en caso de que se cumpla una condición. Por ejemplo: slt $s0,$s1, $s2 pone en 1 el registro $s0 en caso de que $s1 sea menor que $s2. POLITÉCNICO GRANCOLOMBIANO POLITÉCNICO GRANCOLOMBIANO 7 POLITÉCNICO GRANCOLOMBIANO 7
  • 8. 4. Registros Los registros son espacios de memoria de datos, tipo RAM, que se comunican directamente con la ALU (Unidad Lógico-Aritmética). Esto simplifica la estructuración de las instrucciones y aumenta la velocidad con la que se ejecutan las operaciones. En general, los registros se usan para almacenar datos, pero existen algunos de propósito específico que se usan para almacenar direcciones o apuntadores. En la Tabla 1 se presentan los 32 registros de la arquitectura MIPS. El registro $zero sirve de constante nula: es un registro de sólo lectura que siempre vale cero (0). Los registros $s0 a $s7 sirven para almacenar datos, tipo variables o direcciones de la memoria RAM cuando se usan para almacenar apuntadores a arreglos, matrices y otras estructuras. Los registros $t0 a $t9 se usan de forma similar a los $s, pero por convención se prefieren para datos temporales, de cálculos parciales, cuyo valor no tenga que mantenerse por mucho tiempo. Los registros $a0-$a3, $v0-$v1, $ra se utilizan para las funciones, los $a para enviarlos como parámetros, los $v para retorno y el $ra para la dirección de memoria de programa a la que debe retornar cuando se acabe la función. Los demás registros son de propósito específico: $sp como apuntador de pila, $fp como apuntador de frame o sección, $gp como apuntador global. Tabla 1. Registros de la arquitectura MIPS Nombre # del registro Uso $zero 0 Constante 0 $v0 - $v1 2-3 Valores para resultados y evaluación de expresiones $a0 - $a3 4-7 Argumentos $t0 - $t7 8-15 Temporales $s0 - $s7 16-23 Variables $t8 - $t9 24-25 Más temporales $gp 28 Global pointer $sp 29 Stack pointer $fp 30 Frame pointer $ra 31 Dirección de retorno Fuente: elaboración propia POLITÉCNICO GRANCOLOMBIANO POLITÉCNICO GRANCOLOMBIANO 8 POLITÉCNICO GRANCOLOMBIANO 8
  • 9. 5. Modos de Direccionamiento El direccionamiento, en la arquitectura del computador, se refiere a la forma en que se acceden los datos que van a ser operados o que se requieren para ejecutar una instrucción. En MIPS, existen los siguientes modos de direccionamiento: Registro-Indirecto, Desplazamiento, Índice base, Memoria- indirecto, Auto-incremento, Auto-indexación, Escalado, Relativo al PC (Contador de programa) (Martin & Roth, n.d.). 5.1. Directo a registro: En este modo de direccionamiento se incluye en la instrucción la dirección del registro que se desea acceder, como fuente o como destino. Por ejemplo: add $s1, $s2, $s3 Equivale a $s1=$s2+$s3 de manera que se envían como parámetros de la instrucción las direcciones de los registros $s1 (destino), $s2 (fuente) y $s3 (fuente). Figura 3. Direccionamiento directo a registro Fuente: elaboración propia 5.2. Indirecto a registro: En este tipo modo de direccionamiento se incluye la dirección de un registro y un desplazamiento. El dato que se usa como operando es el que se encuentre en una posición de la RAM equivalente a la suma del apuntador del registro más el desplazamiento en la instrucción. POLITÉCNICO GRANCOLOMBIANO POLITÉCNICO GRANCOLOMBIANO 9 POLITÉCNICO GRANCOLOMBIANO 9
  • 10. Por ejemplo: lw $s3, 4($s2) Indica que en el registro $s3 (destino) se va a guardar (load - lw) lo que esté en la posición de la memoria RAM a la que apunte ($s2+4). Figura 4. Direccionamiento indirecto a registro Fuente: elaboración propia 5.3. Relativo a PC (Contador de programa): En este caso, el operando corresponde a una dirección de la memoria de programa y resulta de la suma entre el valor actual del contador de programa y una constante que viene en la instrucción. Por ejemplo: beq $s1,$s2,for Esta instrucción salta a la línea del programa con etiqueta for cuando $s1 es igual a $s2. Como las direcciones de programa son largas, no se guarda la dirección completa con etiqueta for, sino la distancia entre la línea actual y la línea for (el desplazamiento). Figura 5. Direccionamiento relativo a PC Fuente: elaboración propia POLITÉCNICO GRANCOLOMBIANO POLITÉCNICO GRANCOLOMBIANO 10 POLITÉCNICO GRANCOLOMBIANO 10
  • 11. 5.4. Inmediato El modo de direccionamiento inmediato se refiere a aquellas instrucciones en los que uno de los operandos es un valor constante que viene dentro de la instrucción. Por ejemplo: addi $s6, $s7, 8 Corresponde a $s6=$s7+8 donde 8 sería direccionado de forma inmediata por ser una constante que haría parte de la instrucción. Figura 6. Direccionamiento relativo a PC Fuente: elaboración propia 5.5. Pseudodirecto: Se utiliza cuando se requiere una dirección del contador de programa absoluta. Funciona de manera que en la instrucción viene un valor constante que representa la dirección. A este número se le desplaza dos posiciones a la izquierda (lo multiplica por 4 - en binario) y luego lo concatena con los 4 bits más significativos del valor actual del contador de programa. Este resultado es el nuevo valor del contador de programa. Por ejemplo: j 2100 Salta a la posición 2100*4=8400 concatenada con los bits más significativos del valor de la posición actual. POLITÉCNICO GRANCOLOMBIANO POLITÉCNICO GRANCOLOMBIANO 11 POLITÉCNICO GRANCOLOMBIANO 11
  • 12. Figura 7. Direccionamiento pseudodirecto Fuente: elaboración propia 5.6. Implícito: Es el menos común de los modos de direccionamiento. Corresponde al direccionamiento el operando es determinado por el código de operación. Por ejemplo: jal 2500 Que salta a la posición 2500*4 y adicionalmente almacena la dirección del contador de programa actual en el registro $ra. Figura 8. Direccionamiento implícito Fuente: elaboración propia POLITÉCNICO GRANCOLOMBIANO POLITÉCNICO GRANCOLOMBIANO 12 POLITÉCNICO GRANCOLOMBIANO 12
  • 13. 6. Traducción de ensamblador a máquina Cada una de las instrucciones, según su tipo, tiene un formato de instrucción que define cómo se debe codificar desde el compilador y cómo el hardware la decodifica. A continuación se presenta cómo son los principales formatos de instrucción y a qué corresponde a cada uno de los elementos que conforman su estructura. En MIPS, todas las instrucciones tienen el mismo tamaño (32 bits), independiente de su tipo. Si una instrucción requiere menos de los 32 bits, los restantes se llenan con información basura, que nunca es usada por el hardware y por lo tanto no importa si su valor es 0 o 1. Instrucciones tipo R Se refiere a las instrucciones aritmético-lógicas. Los 6 bits más significativos corresponden a un código de operación. Los 5 bits siguientes (del 26 al 22) corresponden al registro fuente 1, los 5 siguientes (del 21 al 17) se refieren al segundo registro fuente. Los bits del 16 al 12 corresponden a la dirección del registro destino. Los últimos bits se utilizan en algunas funciones para el desplazamiento o especificar el código de operación. Instrucciones tipo I Integra las instrucciones de referencia a memoria, aritméticas (inmediatas) y de salto condicional. Los 6 bits más significativos corresponden a un código de operación. Los 5 bits siguientes (del 26 al 22) corresponden al registro fuente 1, los 5 siguientes (del 21 al 17) se refieren a la dirección del registro destino. Los últimos bits se utilizan para un valor constante. Instrucciones tipo J Corresponde a las instrucciones de salto incondicional. Los 6 bits más significativos corresponden a un código de operación. Los últimos bits se utilizan para un valor constante que representa una dirección. POLITÉCNICO GRANCOLOMBIANO POLITÉCNICO GRANCOLOMBIANO 13 POLITÉCNICO GRANCOLOMBIANO 13
  • 14. 7. Herramienta de simulación: MARS La herramienta de simulación MARS permite realizar la programación de algoritmos usando las instrucciones de MIPS. En la simulación se puede ejecutar instrucción por instrucción, viendo el estado de los registros, de la memoria de programa y de la memoria RAM tras la ejecución de todo un programa o de cada instrucción. Se puede descargar para realizar el siguiente algoritmo en MIPS. Para que se pueda interactuar con la herramienta de simulación, se propone implementar un algoritmo en el que se guarden (en la RAM, a manera de arreglo) los divisores de un número n guardado en un registro (para el ejemplo $s0). En las Figuras 9 y 10 se presentan, respectivamente, el algoritmo en lenguaje de alto nivel y en lenguaje ensamblador MIPS. Figura 9. Algoritmos de alto nivel Fuente: elaboración propia POLITÉCNICO GRANCOLOMBIANO POLITÉCNICO GRANCOLOMBIANO 14 POLITÉCNICO GRANCOLOMBIANO 14
  • 15. Figura 10. Algoritmos de alto nivel Fuente: elaboración propia 8. Breve introducción a la aritmética para procesadores La aritmética del procesador se refiere a la manera en que se realizan las operaciones aritméticas dentro del procesador. Esta definición incluye lo que sucede cuando hay un desbordamiento en la suma o la resta, cómo se manejan los productos teniendo en cuenta que la multiplicación requiere el doble de bits para el resultado que los bits que tienen los operandos, cómo se maneja el cociente y el residuo en una división, cómo se representan y operan los números reales, entre otros. En la lectura complementaria del escenario 3, podrás leer más acerca de la aritmética del procesador. POLITÉCNICO GRANCOLOMBIANO POLITÉCNICO GRANCOLOMBIANO 15 POLITÉCNICO GRANCOLOMBIANO 15
  • 16. POLITÉCNICO GRANCOLOMBIANO POLITÉCNICO GRANCOLOMBIANO 16 POLITÉCNICO GRANCOLOMBIANO 16 Referencias MIT –Software MARS Recuperado de: http://courses.missouristate.edu/KenVollmar/mars/ Mayo de 2017 Patt, Y. (2001). Requirements, bottlenecks, and good fortune: agents for microprocessor evolution. Proceedings of the IEEE, 1553 - 1559. Patterson, D., Hennessy L. (1994) Computer Organization and Design: the Hardware/Software Interface. Editorial MK.
  • 17. INFORMACIÓN TÉCNICA Módulo: Arquitectura del Computador Unidad 2: ISA: Instruction Set Architecture y Aritmética para procesadores. Escenario 3: Conjunto de Instrucciones (ISA – Instruction Set Architecture) Autor: Laura Juliana Cortés Rico Asesor Pedagógico: Edwin Alcides Mojica Quintero Diseñador Gráfico: Carlos Montoya Asistente: Ginna Quiroga Este material pertenece al Politécnico Grancolombiano. Por ende, es de uso exclusivo de las Instituciones adscritas a la Red Ilumno. Prohibida su reproducción total o parcial. POLITÉCNICO GRANCOLOMBIANO POLITÉCNICO GRANCOLOMBIANO 17 POLITÉCNICO GRANCOLOMBIANO 17