Arquitectura de Computadores y laboratorio Clase 15: Arquitectura MIPS Pt.3. Departamento de Ingeniería de Sistemas Universidad de Antioquia
|
|
- María Luz Pinto Rodríguez
- hace 8 años
- Vistas:
Transcripción
1 Arquitectura de Computadores y laboratorio Clase 15: Arquitectura MIPS Pt.3 Departamento de Ingeniería de Sistemas Universidad de Antioquia
2 Instrucciones de control de flujo Arquitectura de Computadores y laboratorio (2011-2) Ejemplo: Compilación de la estructura if then else if (i==j) f=g+h; else f=g-h; Supongamos que el compilador asocia las variables f a j con los registros $s0 a $s4, respectivamente bne $s3, $s4, Else # va a Else si i j add $s0, $s1, $s2 # f=g+h (no ejecutada si i j) j Exit # va a Exit Else: sub $s0, $s1, $s2 # f=g-h (no ejecutada si i==j) Exit: El ensamblador calcula las direcciones correspondientes para crear el código de máquina 2
3 Instrucciones de control de flujo Ejemplo: Compilación de un bucle while while (vector[i]==k) i+=1; Supongamos que el compilador asocia las variables i y k con los registros $s3 y $s5, y la base de vector está en $s6 Loop: sll $t1, $s3, 2 # reg. temp. $t1=4*i add $t1, $t1, $s6 # $t1 = dirección vector[i] lw $t0, 0($t1) # reg. temp. $t0 = vector[i] bne $t0, $s5, Exit # va a Exit si vector[i] k addi $s3, $s3, 1 # i = i+1 j Loop # va a Loop Exit: 3
4 Instrucciones de control de flujo Arquitectura de Computadores y laboratorio (2011-2) Las pruebas de igualdad y desigualdad son muy comunes (beq, bne) También es útil saber si una variable es menor que otra (como cuando en un bucle se compara el índice de iteración) La instrucción MIPS que lo hace es set on less than Significado: slt rd, rs, rt El registro rd se pone a 1 si el valor en el registro rs es menor que el valor en el registro rt De lo contrario, rd se pone a cero 4
5 Instrucciones de control de flujo Arquitectura de Computadores y laboratorio (2011-2) La instrucción es set on less than (slt) sigue el formato R 0 rs rt rd 0 42 opcode shamt funct Variante de la instrucción: Set on less than unsigned sltu rd, rs, rt # if (rs < rt) # rd = 1; # else # rd = 0; 5
6 Instrucciones de control de flujo Arquitectura de Computadores y laboratorio (2011-2) Como las comparaciones con valores constantes son muy comunes, existe una versión de la instrucción set on less than con direccionamiento inmediato slti rt, rs, constant # if (rs < constant) # rt = 1; # else # rt = 0; También existe otra versión para valores sin signo: sltiu Para comparar con cero: emplear el registro $zero No hay instrucciones MIPS de salto con condiciones <,, >, porque harían más complejo el HW Demandarían aumentar el ciclo de reloj (penalizando todas las instrucciones) Compromiso de diseño: incluir sólo beq y bne, los casos más comunes 6
7 Instrucciones de control de flujo Arquitectura de Computadores y laboratorio (2011-2) Un compilador del MIPS emplea las instrucciones slt, beq y bne, además del registro $zero para crear otras estructuras condicionales Salte si es menor que (branch if less than): blt $s1, $s2, Label Label: slt $at, $s1, $s2 # $at set to 1 if $s1 < $s2 bne $at, $zero, Label Menor o igual que (less than or equal to) : ble $s1, $s2, Label Mayor que (greater than) : bgt $s1, $s2, Label Mayor o igual que (great than or equal to): bge $s1, $s2, Label Estas instrucciones de salto se suelen incluir en el conjunto de instrucciones comopseudo instrucciones i (reconocidas y expandidas por el ensamblador) A esto se debe que el ensamblador requiera de un registro reservado ($at, registro #1 del banco) 7
8 Instrucciones para transferencia de bytes y medias palabras ab as (halfwords) af ods) MIPS posee instrucciones para mover bytes y medias palabras Útiles para programas de procesamiento de texto lb rt, offset(rs) lh rt, offset(rs) # Carga en los 8 LSBits de rt un byte # Carga en los 16 LSBits de rt media palabra # El valor cargado es extendido en signo # a 32 bits en rt lbu rt, offset(rs) lhu rt, offset(rs) # Carga en los 8 LSBits de rt un byte # Carga en los 16 LSBits de rt media palabra # El valor cargado es extendido con 0 s # a 32 bits en rt sb rt, offset(rs) sh rt, offset(rs) # Almacena los 8 LSBits de rt en Memoria # Almacena los 16 LSBits de rt en Memoria 8
9 Operandos inmediatos de 32 bits Algunas veces las constantes a emplear no se pueden representar en el campo de 16 bits del formato I MIPS incluye una instrucción (load upper immediate, lui) para cargar los 16 bits superiores de un registro con una constante (formato I) Mediante otra instrucción posterior es posible ajustar los 16 bits inferiores del registro para conformar una constante de 32 bits Código de máquina lui $t0, 0xAAAA $t ori $t0, $t0, 0xFFFF constante $t
10 Saltos condicionales de mayor alcance Qué pasa si el destino del salto está más allá de lo que permiten 16 bits? Dado un salto condicionado por la igualdad de los registros $s0 y $s1 beq L1: $s0, $s1, L1 Para lograr un salto de mayor alcance, se introduce un salto incondicional (jump) al destino inicial del salto, y se invierte la condición a evaluar: bne j L2: L1: $s0, $s1, L2 L1 10
11 Instrucciones para el uso de procedimientos Los procedimientos permiten una programación estructurada (facilitan el desarrollo, la comprensión, la fiabilidad y la reutilización de los programas) Son bloques de código independientes que interactúan con el resto del código mediante el paso de parámetros y la entrega de resultados Instrucción MIPS para invocar un procedimiento: jal (jump and link) jal ProcAddress Salta a la dirección asociada con la etiqueta ProcAddress y simultáneamente guarda la dirección de la instrucción consecutiva en $ra Formato J 3 Target address opcode Instrucción MIPS para retorno de procedimiento: jr (jump register) Formato R jr $ra opcode rs funct 11
12 Pasos en la ejecución de un procedimiento 1. La rutina principal (caller) ubica los parámetros donde el procedimiento (callee) pueda acceder a ellos $a0-$a3: Registros de argumentos. Se usan para el paso de parámetros 2. La rutina principal p transfiere el control al procedimiento 3. El procedimiento reserva los recursos de almacenamiento necesarios 4. El procedimiento ejecuta la tarea deseada 5. El procedimiento ubica los resultados en un lugar donde la rutina principal pueda acceder a ellos $v0-$v1: Registros de valores. Se usan para retornar los resultados 6. El procedimiento libera los recursos de almacenamiento que había reservado 7. El procedimiento devuelve el control a la rutina principal $ra: Registro de dirección de retorno. Se usa para retornar al punto de origen 12
13 Volcado de registros (Spilling registers) Arquitectura de Computadores y laboratorio (2011-2) Qué sucede si el procedimiento requiere más registros de los dedicados al paso de argumentos y resultados? El procedimiento i debe hacer uso de la pila (stack) para guardar y restaurar los registros empleados por él mismo Stack: estructura de datos Last in first out (LIFO) que reside en memoria El registro $sp (registro #29 del banco) se emplea para direccionar el stack El stack crece de las direcciones superiores a las inferiores high address top of stack $sp Llevar eauna apalabra ab a al stack: PUSH $sp = $sp 4 La palabra se lleva al stack en el nuevo $sp Recuperar una palabra del stack: POP Se toma la palabra del stack en $sp $sp = $sp + 4 low address 13
14 Convención para el uso de los registros MIPS Arquitectura de Computadores y laboratorio (2011-2) 14
15 Procedimiento que no invoca otro procedimiento Ejemplo: Compilación de una función escrita en C int proc (int g, h, i, j) { int f; f = (g + h) - (i + j); return f; } Asumir: Argumentos g, h, i, j en $a0,, $a3 Variable f en $s0 Resultado en $v0 Seguir la convención de usos de registros MIPS 15
16 Procedimiento que no invoca otro procedimiento Solución: Código MIPS proc: addi $sp, $sp, -4 # reserva espacio en stack sw $s0, 0($sp) # $s0 al stack add $t0, $a0, $a1 # add $t1, $a2, $a3 # cuerpo del procedimiento sub $s0, $t0, $t1 # add $v0, $s0, $zero # paso del resultado en $v0 lw $s0, 0($sp) # restauración de $s0 addi $sp, $sp, 4 # libera espacio en stack jr $ra # retorno Stack antes, durante y después de la llamada al procedimiento 16
17 Procedimientos anidados (y recursivos) Para el anidado de llamadas, quien invoca (caller) necesita guardar en el stack: Todos los registros de argumentos ($a0-$a3) y temporales ($t0-$t9) que pueda necesitar después de la llamada El procedimiento (callee) necesita guardar en el stack: Su dirección de retorno Todos los registros tipo saved ($s0-$s7) empleados por él mismo El stack se ajusta para dar cuenta de los registros volcados al stack Antes del retorno se recuperan los registros y reajusta el stack Ejemplo clásico: int fact(int n){ if (n < 1) return 1; else return (n * fact(n-1)); } 17
18 Datos locales en el stack El stack también se emplea para almacenar variables locales de los procedimientos que no caben en el banco de registros (vectores, estructuras locales) El segmento del stack que contiene los registros volcados y las variables locales de un procedimiento se denomina procedure frame o activation record El registro frame pointer ($fp) apunta a la primera palabra del marco del procedimiento $fp proporciona un registro base estable para las referencias a variables ibl localesl en el procedimiento (debido a que el registro $sp puede cambiar durante la ejecución del procedimiento) high address Saved argument regs (if any) Saved return address Saved local regs (if any) Local arrays & structures (if any) $fp $sp low address 18
19 Mapa de memoria MIPS Parte inferior de la memoria: reservada Text segment: código de programa Static data: variables globales y static Vectores constantes, strings Dynamic data: heap Para estructuras que crecen y se contraen durante la ejecución (listas enlazadas) En C, malloc() reserva espacio en memoria, free() lo libera Las direcciones indicadas son una convención para el desarrollo de sofware y no hacen parte de la arquitectura MIPS 19
20 Modos de direccionamiento Direccionamiento de registros El operando está en un registro Direccionamiento i i inmediato El operando es una constante (16 bits) dentro de la instrucción misma Extensión de signo 20
21 Modos de direccionamiento Direccionamiento con desplazamiento (o con registro base) El operando está en una posición de memoria cuya dirección es la suma de un registro y una constante en la instrucción Direccionamiento relativo al PC La dirección de destino es la suma del PC y una constante en la instrucción Target address = (PC + 4) + Offset 4 21
22 Modos de direccionamiento Direccionamiento pseudo directo La dirección de destino del salto está formada por el campo de 26 bits concatenado con los bits más significativos del PC Target address = (PC+4)[31..28] : (Address 4) 22
23 Modos de direccionamiento Ejemplo: Suponiendo que la etiqueta Loop está asociada con la posición 0x de memoria, cuál es el código de máquina para este bucle? Loop: sll $t1, $s3, 2 0x add $t1, $t1, $s6 lw $t0, 0($t1) bne $t0, $s5, Exit addi $s3, $s3, 1 j Loop Exit: 0x x x c x x x Direcciones en hexadecimal Campos en decimal 23
24 Resumen: Formatos de instrucción MIPS Arquitectura de Computadores y laboratorio (2011-2) 24
25 Resumen: Lenguaje ensamblador MIPS Arquitectura de Computadores y laboratorio (2011-2) 25
26 Distribución de los tipos de instrucción MIPS Arquitectura de Computadores y laboratorio (2011-2) La frecuencia de los diferentes tipos de instrucciones MIPS se obtienen mediante la ejecución de programas estándar para la evaluación del rendimiento Hacer el caso común rápido Compromisos de diseño Instruction class MIPS examples SPEC2006 Int SPEC2006 FP Arithmetic add, sub, addi 16% 48% Data transfer Logical lw, sw, lb, lbu, lh, lhu, sb, lui and, or, nor, andi, ori, sll, srl 35% 36% 12% 4% Conditional Branch beq, bne, slt, slti, sltiu 34% 8% Jump j, jr, jal 2% 0% 26
27 Multiplicación en MIPS Dos registros de 32 bits adicionales: Registro HI Registro LO Instrucciones mult rs, rt multu rs, rt Producto de 64 bits en HI:LO HI: 32 bits más significativos LO: 32 bits menos significativos mfhi rd Copia HI en rd mflo rd Copia LO en rd 27
28 División en MIPS Emplea los registros HI y LO para el resultado: HI: residuo de 32 bits LO: cociente de 32 bits Instrucciones div rs, rt divu rs, rt # LO = rs/rt, HI = rs%rt Las instrucciones mfhi, mflo permiten acceder al resultado De acuerdo con la implementación, las instrucciones de multiplicación y división pueden detectar condiciones de overflow y división por cero automáticamente Si no es así, estas dos condiciones deben evaluarse mediante software 28
29 Referencias recomendadas Computer organization and design. The hardware/software interface, 4rd ed., Chapter 2. D. Patterson and J. Hennessy. Morgan Kaufmann Publishers MARS MIPS Simulator Accesible vía Web: 29
Estructura de Computadores 2 [08/09] Entrada/Salida en procesadores MIPS
Estructura de Computadores 2 [08/09] Entrada/Salida en procesadores MIPS GAC: Grupo de Arquitectura de Computadores Dpt. Electrónica e Sistemas. Universidade da Coruña. Bibliografía Computer Organization
Más detallesSesión 11 Implementación de sentencias condicionales
INGENIERÍATÉCNICA EN INFORMÁTICA DE GESTIÓN. CURSO 2001-2002 LABORATORIO DE ESTRUCTURA Y TECNOLOGÍA DE COMPUTADORES Sesión 11 Implementación de sentencias condicionales INSTRUCCIONES DE COMPARACIÓN Y SALTOS
Más detallesArquitectura t de Computadores Clase 10: Diseño del microprocesador monociclo pt.2
Arquitectura t de Computadores Clase 10: Diseño del microprocesador monociclo pt.2 Departamento de Ingeniería de Sistemas Universidad id d de Antioquia i 2011 2 Unidad de control principal Mediante el
Más detalles8. Diseño de la codificación binaria del repertorio de Instrucciones.
8. Diseño de la codificación binaria del repertorio de Instrucciones. Se desea elegir los códigos binarios de las instrucciones. Esta parte, en forma indirecta especifica lo que debe realizar un programa
Más detallesOrganización de Computadoras. Principios de Conjuntos de Intrucciones
Organización de Computadoras Principios de Conjuntos de Intrucciones Clasifición de las ISA Secuencia de Código para C = A + B Stack Acumulador Registro (Reg-Mem) Registro (load-store) Push A Load A Load
Más detallesREPERTORIO DE INSTRUCCIONES MIPS
Departamento de Informática Escuela Politécnica Universidad de Extremadura REPERTORIO DE INSTRUCCIONES MIPS Prácticas de la Asignatura ESTRUCTURA DE COMPUTADORES 2º Ingeniería Informática 2º Ingeniería
Más detallesEstructura de Computadores. Capítulo 3b: Programación en
Estructura de Computadores Capítulo 3b: Programación en ensamblador del MIPS. José Daniel Muñoz Frías Universidad Pontificia Comillas. ETSI ICAI. Departamento de Electrónica y Automática Estructura de
Más detallesOrganización del Computador I Verano. MIPS (2 de 2) Basado en el capítulo 2 del libro de Patterson y Hennessy
Organización del Computador I Verano MIPS (2 de 2) Basado en el capítulo 2 del libro de Patterson y Hennessy Verano 2014 Profesora Borensztejn Arquitectura MIPS (R2000) Registros Formato de Instrucción
Más detallesFundamentos de los Computadores Grado en Ingeniería Informática
Repaso Arquitectura MIPS Fundamentos de los Computadores Grado en Ingeniería Informática Arquitectura MIPS Registros Instrucciones Organización de memoria Formato de las instrucciones Modos de direccionamiento
Más detallesFunciones. Diseño de funciones. Uso de instrucción jal y retorno de subrutina.
MIPS Funciones 1 Funciones Diseño de funciones. Uso de instrucción jal y retorno de subrutina. Se suelen denominar funciones, procedimientos, subrutinas, subprogramas a las estructuras que emplean los
Más detallesArquitecturas RISC. Arquitectura de Computadoras y Técnicas Digitales - Mag. Marcelo Tosini Facultad de Ciencias Exactas - UNCPBA
Arquitecturas RISC Características de las arquitecturas RISC Juego de instrucciones reducido (sólo las esenciales) Acceso a memoria limitado a instrucciones de carga/almacenamiento Muchos registros de
Más detallesEl repertorio de instrucciones
El repertorio de instrucciones Montse Bóo Cepeda Este trabajo está publicado bajo licencia Creative Commons Attribution- NonCommercial-ShareAlike 2.5 Spain. Estructura del curso 1. Evolución y caracterización
Más detallesEl lenguaje ensamblador depende directamente de la arquitectura del computador. Por tanto cada arquitectura tiene su propio lenguaje ensamblador.
Estructura y Tecnología de Computadores (ITIG) Ángel Serrano Sánchez de León Luis Rincón Córcoles Programa 1. Introducción. 2. Registros. 3. Operaciones aritméticas básicas. 4. Accesos a memoria. Carga
Más detallesEstructura de Computadores
Estructura de Computadores 4.- Programación en Ensamblador Parte IV Contenido Subrutinas. Llamadas al sistema. Página 2 Subrutinas Módulos de programa que pueden reutilizarse en distintos puntos del programa.
Más detallesPlataformas de soporte computacional: arquitecturas avanzadas,
Plataformas de soporte computacional: arquitecturas avanzadas, sesión Diego R. Llanos, Belén Palop Departamento de Informática Universidad de Valladolid {diego,b.palop}@infor.uva.es Índice. Arquitectura
Más detallesProcesador MIPS - Registros
MIPS Microprocessor without Interlocked Pipeline Stages Surgió a comienzos de los 80 en Stanford. Sintetiza las principales ideas de RISC. Arquitectura eficiente y simple. 1 Procesador MIPS - Registros
Más detallesGeneración de un ejecutable
ASSEMBLER Generación de un ejecutable Programa de alto nivel Programa Compiler Assembler Linker Archivo Ejecutable Programa en lenguaje assembler Archivo Fuente Assembler Archivo Objeto Archivo Fuente
Más detallesISA (Instruction Set Architecture) Arquitectura del conjunto de instrucciones
ISA (Instruction Set Architecture) Arquitectura del conjunto de instrucciones Instruction Set Architecture (ISA) Arquitectura del conjunto de instrucciones software Conjunto de instrucciones hardware Universidad
Más detallesTema 2: Arquitectura del repertorio de instrucciones. Visión del computador que tiene el programador en bajo nivel.
Tema 2: Arquitectura del repertorio de instrucciones Visión del computador que tiene el programador en bajo nivel. Lo que el programador en lenguaje ensamblador debe conocer para escribir programas: (1)
Más detallesELO311 Estructuras de Computadores Digitales. Operaciones MIPS para Control de flujo
ELO311 Estructuras de Computadores Digitales Operaciones MIPS para Control de flujo Tomás Arredondo Vidal Este material está basado en: material de apoyo del texto de David Patterson, John Hennessy, "Computer
Más detallesCOMPUTADORES SEGMENTADOS (DLX)
DEPARTAMENTO DE AUTOMÁTICA ARQUITECTURA Y TECNOLOGÍA DE COMPUTADORES Laboratorio de Arquitectura e Ingeniería de Computadores PRÁCTICA I COMPUTADORES SEGMENTADOS (DLX) OBJETIVO El objetivo de la práctica
Más detalles2.4. Modos de direccionamiento Distintas formas que tiene la arquitectura para especificar la ubicación de los operandos.
2.4. Modos de direccionamiento Distintas formas que tiene la arquitectura para especificar la ubicación de los operandos. Objetivos: - Reducir el número de bits para especificar un operando en memoria.
Más detallesArquitectura de Computadoras I Ingeniería de Sistemas Curso 2017
Arquitectura de Computadoras I Ingeniería de Sistemas Curso 217 Práctica de Laboratorio: Microprocesador MIPS Segmentado El objetivo de esta práctica es implementar el microprocesador MIPS (visto en clase
Más detallesOrganización Básica de un Computador y Lenguaje de Máquina
Organización Básica de un Computador y Prof. Rodrigo Araya E. raraya@inf.utfsm.cl Universidad Técnica Federico Santa María Departamento de Informática Valparaíso, 1 er Semestre 2006 Organización Básica
Más detallesPráctica 3: Programación con subrutinas
Práctica 3: Programación con subrutinas 3.1 Objetivos El objetivo de esta práctica es estudiar el soporte del ensamblador del ARM para la gestión de subrutinas, para lo que resulta necesario familiarizarse
Más detallesFundamentos y Arquitectura de Computadores (ITTSE UV)
Fundamentos y Arquitectura de Computadores (ITTSE UV) F. Micó REGISTROS DEL MIPS R2000/R3000 Nombre Código del Uso registro $zero 0 Valor constante 0 $v0 - $v1 2 3 Valores de retorno para las llamadas
Más detallesFundamentos y Arquitectura de Computadores (ITTSE UV)
REGISTROS DEL MIPS32 Nombre Código del Uso común registro $zero 0 El contenido de este registro siempre es nulo $v0 - $v1 2 3 Valores de retorno para las llamadas al sistema $a0 - $a3 4 7 Argumentos para
Más detallesFigura 1. Símbolo que representa una ALU. El sentido y la funcionalidad de las señales de la ALU de la Figura 1 es el siguiente:
Departamento de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Antioquia Arquitectura de Computadores y Laboratorio ISI355 (2011 2) Práctica No. 1 Diseño e implementación de una unidad aritmético
Más detallesEXAMEN ORDINARIO DE ORGANIZACIÓN DE COMPUTADORES
6 de febrero de 2008. 16 h. Escuela Técnica Superior de Ingeniería Informática Camino del Cementerio s/n. 47011 Valladolid EXAMEN ORDINARIO DE ORGANIZACIÓN DE COMPUTADORES NOTA: Los alumnos con las prácticas
Más detallesMICROPROCESADOR RISC SINTETIZABLE EN FPGA PARA FINES DOCENTES
MICROPROCESADOR RISC SINTETIZABLE EN FPGA PARA FINES DOCENTES J.D. MUÑOZ1, S. ALEXANDRES1 Y C. RODRÍGUEZ-MORCILLO2 Departamento de Electrónica y Automática. Escuela Técnica Superior de Ingeniería ICAI.
Más detallesUnidad 3. Facultad de Ciencias Departamento de Electrónica
Universidad Autónoma de San Luis Potosí Facultad de Ciencias Departamento de Electrónica Unidad 3 Instrucciones: Lenguaje de la Computadora Dra. Ruth M. Aguilar Ponce Primavera Unidad 3 Operaciones del
Más detallesUNIDAD 4: El procesador: Camino de los datos y Control.
UNIDAD 4: El procesador: Camino de los datos y Control. 4.1 Introducción El rendimiento de una máquina depende de tres factores clave: Conteo de Instrucciones, tiempo del ciclo de reloj y ciclos de reloj
Más detallesOrganización procesador MIPS
Organización procesador MIPS Organización MIPS Memoria CPU Registros FPU Registros Alu Mul Div Hi Lo U. Aritmética Traps Manejo de Memoria Organización MIPS Unidad Aritmética y Lógica (ALU). Unidad Aritmética
Más detallesEntorno de Ejecución del Procesador Intel Pentium
Arquitectura de Ordenadores Arquitectura del Procesador Intel Pentium Abelardo Pardo abel@it.uc3m.es Universidad Carlos III de Madrid Departamento de Ingeniería Telemática Entorno de Ejecución del Procesador
Más detalles6-REGISTROS DEL 8086 Y DEL 80286
ESTRUCTURA DE COMPUTADORES I (Capítulo 6: Los registros del microprocesador 8086) 1/7 6-REGISTROS DEL 8086 Y DEL 80286 6.1 INTRODUCCIÓN: Dentro del procesador existen unos contenedores especiales de 16
Más detalles3. Instrucciones: lenguaje de la máquina
3. Instrucciones: lenguaje de la máquina Fundamentos de Computadores Ingeniería de Telecomunicación Raúl Durán Díaz Departamento de Automática Escuela Politécnica Superior Curso académico 2009 2010 Raúl
Más detallesELO311 Estructuras de Computadores Digitales. Unidad Aritmética
ELO3 Estructuras de Computadores Digitales Unidad Aritmética Tomás Arredondo Vidal Este material está basado en: material de apoyo del texto de David Patterson, John Hennessy, "Computer Organization &
Más detallesTema 6: Descripción del ISA del MIPS
Arquitectura de Computadores Tema 6: Descripción del ISA del MIPS Eduardo Daniel Cohen dcohen@arnet.com.ar http://www.herrera.unt.edu.ar/arqcom Arquitectura de Computadoras UNT D. Cohen 1 2014 Temario
Más detallesARQUITECTURA DE COMPUTADORES. Tema 2: Lenguaje Máquina, Instrucciones y Modos de Direccionamiento.
Universidad Rey Juan Carlos ARQUITECTURA DE COMPUTADORES Tema 2: Lenguaje Máquina, Instrucciones y Modos de Direccionamiento. Licesio J. Rodríguez-Aragón Programa 1. Introducción Lenguajes de Programación:
Más detallesTema 2. Diseño del repertorio de instrucciones
Soluciones a los problemas impares Tema 2. Diseño del repertorio de instrucciones Arquitectura de Computadores Curso 2009-2010 Tema 2: Hoja: 2 / 16 Tema 2: Hoja: 3 / 16 Base teórica Al diseñar un computador,
Más detallesTema 4: Diseño de un microprocesador
Tema : Diseño de un microprocesador Febrero de Tema : Diseño de un microprocesador Febrero de / 7 Índice Introducción Visión general de la implementación El camino de datos Control del camino de datos
Más detallesArquitectura de Computadores
Arquitectura de Computadores Ricardo.Sanz@upm.es Curso 2004-2005 Arquitectura de Computadores Arquitectura de computadores es la disciplina que estudia la organización y funcionamiento de los computadores
Más detallesTema 2: Arquitectura del repertorio de instrucciones. Visión del computador que tiene el programador en bajo nivel
Tema 2: Arquitectura del repertorio de instrucciones Visión del computador que tiene el programador en bajo nivel Lo que el programador en lenguaje ensamblador debe conocer para escribir programas: - Los
Más detallesEstructura de Computadores
Estructura de Computadores Tema 4. El procesador Departamento de Informática Grupo de Arquitectura de Computadores, Comunicaciones y Sistemas UNIVERSIDAD CARLOS III DE MADRID Contenido Elementos de un
Más detallesUna variable de clase escalar tiene un nivel de indirección igual a 1. Por ejemplo, las variables i, b y x definidas como se muestra a continuación.
Descripción de la semántica de ALFA En esta descripción sólo se mencionarán los aspectos en los que el lenguaje de programación ALFA pueda diferir de otros lenguajes de programación de alto nivel. Se sobreentienden
Más detallesCircuitos Digitales II y Laboratorio Fundamentos de Arquitectura de Computadores
Departamento de Ingeniería Electrónica Facultad de Ingeniería Circuitos Digitales II y Laboratorio Fundamentos de Arquitectura de Computadores Unidad 5: IPS Pipeline Prof. Felipe Cabarcas cabarcas@udea.edu.co
Más detallesGuía Laboratorio Número 1
Guía Laboratorio Número 1 Página 1 de 5 Arquitectura de Computadoras 06/04/2014 Repaso lenguaje ensamblador Escribir códigos en lenguaje ensamblador es bastante sencillo, por lo que no es necesario el
Más detallesPRACTICA #1. Aprender a programar una interrupción software empleando C y/o Ensamblador.
PRACTICA #1 Aprender a programar una interrupción software empleando C y/o Ensamblador. Aprender a manipular dispositivos externos (8253, 8255) desde C y/o ensamblador. PROCEDIMIENTO: Vamos a programar
Más detallesDocumentación del simulador SPIM.
Universidad de León Departamento de Ingeniería Eléctrica y de Sistemas y Automática (C) Prof. José M. Foces, 1998-2006. diejfm@unileon.es Documentación del simulador SPIM. Versión para Windows. Adaptada
Más detallesPipeline o Segmentación Encausada
Pipeline o Segmentación Encausada Material Elaborado por el Profesor Ricardo González A partir de Materiales de las Profesoras Angela Di Serio Patterson David, Hennessy John Organización y Diseño de Computadores
Más detallesGENERACIÓN DE CÓDIGO
GENERACIÓN DE CÓDIGO INTRODUCCION La generación de código es la fase más compleja de un compilador, puesto que no sólo depende de las características del lenguaje fuente sino también de contar con información
Más detallesUNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ELO311 Estructuras de Computadores
6.5. Comunicación de las funciones con su entorno. Hasta el momento se ha conceptualizado una subrutina como un segmento de código que ocurre a menudo en un programa. La idea puede flexibilizarse y aumentar
Más detallesTiempo de Compilación. Programa fuente. Secuencia. de caracteres. Scanner. Secuencia. de símbolos Parser. Compilador.
ORGANIZACIÓN DE LA MEMORIA EN TIEMPO DE EJECUCIÓN Compilador Tiempo de Compilación Programa fuente Secuencia de caracteres Scanner Secuencia de símbolos Parser Árbol sintáctico Analizador semántico Generador
Más detallesTema 6: Generación de código (parte 2)
Tema 6: Generación de código (parte 2) Procesamiento de Lenguajes Dept de Lenguajes y Sistemas Informáticos Universidad de Alicante Procesamiento de Lenguajes Tema 6: Generación de código (parte 2) 1 /
Más detallesMIPS. Universidad de Sonora 2
MIPS MIPS (Microprocessor without Interlocked Pipeline Stages) es una familia de microprocesadores RISC desarrollada por MIPS Technologies desde 1981 y por Imagination Technologies desde 2012. Principio
Más detallesIntroduccion al Lenguaje C. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia
Introduccion al Lenguaje C Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia Introducción C es un lenguaje de programación creado en 1972 por
Más detallesEl Conjunto de Instrucciones de la Arquitectura Lagarto I
Sistema de numeración maya (base 20), se considera el primer sistema numérico que uso el cero. El Conjunto de Instrucciones de la Arquitectura Lagarto I i Resumen El conjunto de instrucciones de la arquitectura
Más detallesPlataformas de soporte computacional: arquitecturas avanzadas,
Plataformas de soporte computacional: arquitecturas avanzadas, sesión 2 Diego. Llanos, Belén Palop Departamento de Informática Universidad de Valladolid {diego,b.palop}@infor.uva.es Índice 1. Segmentación
Más detallesPipelining o Segmentación de Instrucciones
Pipelining o Segmentación de Instrucciones La segmentación de instrucciones es similar al uso de una cadena de montaje en una fábrica de manufacturación. En las cadenas de montaje, el producto pasa a través
Más detallesArquitectura de Computadoras. Simulador WINMIPS64
Arquitectura de Computadoras Simulador WINMIPS64 Procesador MIPS 32 registros de uso general: r0.. r31 (64 bits) excepto r0 siempre igual a 0 32 registros de punto flotante: f0.. f31 (64 bits) 2 30 palabras
Más detallesPROGRAMACIÓN BÁSICA DE LA COMPUTADORA. 1 Introducción. Tabla 1: Instrucciones MIPS
PROGRAMACIÓN BÁSICA DE LA COMPUTADORA 1 Introducción Un sistema de computadora total incluye tanto circuitería (hardware) como programación (software). El hardware consta de los componentes físicos y todo
Más detallesINTRUCCIONES: LENGUAJE MAQUINA
INTRUCCIONES: LENGUAJE MAQUINA 1.- INTRODUCCION Conceptos importantes Instrucción: Orden al hardware del Computador Repertorio de Instrucciones Lenguaje Máquina (ML) Lenguaje Ensamblador (AL) Lenguaje
Más detallesEjercicios. 5.2 [5] < 5.3> Este ejercicio es similar al 5.1, pero ahora considere los fallos causados por permanecer en 1 (la señal es siempre 1).
Ejercicios 5.1 [5] < 5.3> Describa el efecto que un simple fallo permanecer como 0 (es decir, independiente de lo que debería ser, la señal es siempre 0) provocaría en los multiplexores en el camino de
Más detallesArquitectura del procesador MIPS R2000
Arquitectura del procesador MIPS R2000 Aula Virtual IS09 Sergio Barrachina Mir Área de Arquitectura y Tecnología de Computadores Dpt. de Ingeniería y Ciencia de los Computadores Universidad Jaume I Índice
Más detalles62/8&,21(6$/(;$0(1'( /$%25$725,2'((6758&785$6'(/26&20387$'25(6 &8562)(%5(52
62/8&,21(6$/(;$0(1'( /$%25$725,2'((6758&785$6'(/26&20387$'25(6 &8562)(%5(52 3DUWHGH(QVDPEODGRU 4º) Escribir un programa en ensamblador que pida un número de una cifra por teclado y saque como resultado
Más detallesTema 5 Diseño del Set de Instrucciones (ISA) Arquitectura de Computadoras
Tema 5 Diseño del Set de Instrucciones (ISA) Arquitectura de Computadoras http://www.herrera.unt.edu.ar/arqcom dcohen@herrera.unt.edu.ar Temario 1. Evolución histórica. 2. Repaso de conceptos importantes.
Más detallesInstrumentación Virtual con LabVIEW
Instrumentación Virtual con LabVIEW ESTRUCTURAS ESTRUCTURAS WHILE FOR.. CASE SEQUENCE Opciones de selección de CASE Controles Visibles Variables Locales y Globales Personalizar controles 1.- ENTORNO DE
Más detallesCircuitos Digitales II y Laboratorio Electrónica Digital II y Laboratorio
Circuitos Digitales II y Laboratorio Electrónica Digital II y Laboratorio Fundamentos de Arquitectura de Computadores Modelo de von Neumann Profesor: Felipe Cabarcas Correo:cabarcas@udea.edu.co Oficina:
Más detallesEstructuras de Computadores I Tarea 02 02/99
Estructuras de Computadores I Tarea 02 02/99 1. Dada la secuencia de bits: 0011 0100 0101 0101 0100 0011 0100 0010 Qué representa, asumiendo que es: a. Un número entero en complemento dos. b. Fracción
Más detallesCapítulo 4 Gestión de memoria
Sistemas operativos: una visión aplicada Capítulo 4 Gestión de memoria Contenido Objetivos del sistema de gestión de memoria Modelo de memoria de un proceso Esquemas de memoria basados en asignación contigua
Más detallesCuando se ejecuta un procedimiento, intrínsecamente se están realizando los siguientes pasos:
2.5 Soporte de procedimientos El manejo de procedimientos o rutinas es uno de los aspectos más importantes de la programación estructurada; por lo que cualquier repertorio de instrucciones debe de incluirlo
Más detallesTema 5 Repertorios de instrucciones: Modos de direccionamiento y formato
Tema 5 Repertorios de instrucciones: Modos de direccionamiento y formato Bibliografía: William Stallings Organización y Arquitectura de computadores 5ta. Edition. Editorial Pearson Educación.- Objetivos:
Más detallesPilas y Colas. Capítulo 3
Pilas y Colas Capítulo 3 Pilas Una pila representa una estructura lineal de datos en que se puede agregar o quitar elementos únicamente por uno de los dos extremos. En consecuencia, los elementos de una
Más detallesCAPÍTULO 2: MANUAL DE USUARIO DEL SIMULADOR DE INSTRUCCIONES MIPS R-4000
Antes de comenzar a explicar como funciona el programa, vamos a enumerar las instrucciones que están implementadas en el simulador. CAPÍTULO 2: MANUAL DE USUARIO DEL SIMULADOR DE ES MIPS R-4000 ES IMPLEMENTADAS
Más detallesArquitectura de Computadoras
4-1 Arquitectura de Computadoras Tema 4: Arquitectura del Set de Instrucciones Eduardo Daniel Cohen dcohen@arnet.com.ar http://www.herrera.unt.edu.ar/arqcom 4-2 Arquitectura del Set de Instrucciones Indice
Más detallesArquitectura intel 8086. Preámbulo de OSO para alumnos formados en el procesador MIPS. Asignatura Sistemas Operativos Murcia abril de 2005
Arquitectura intel 8086 Preámbulo de OSO para alumnos formados en el procesador MIPS Asignatura Sistemas Operativos Murcia abril de 2005 página 1. Introducción 2 2.- Direccionamiento y Registros de Segmento
Más detallesLa memoria principal. Los subsistemas de E/S. Los buses del sistema
GUIA 23: MEMORIA E/S La estructura básica de la mayoría de los ordenadores actuales se representa mediante los siguientes elementos básicos: La Unidad Central de Procesamiento, CPU La memoria principal
Más detallesPr. Dr. Xavier Bonnaire
Pr. Dr. Xavier Bonnaire Slide 1 Pr. Dr. Xavier Bonnaire - Universidad Tecnica Federico Santa María Temario Introducción Estructura Básica de un Computador Lenguaje de Máquina Básico Instrucciones para
Más detallesTema 3 (III) Fundamentos de la programación en ensamblador
Tema 3 (III) Fundamentos de la programación en ensamblador Grupo ARCOS Estructura de Computadores Grado en Ingeniería Informática Universidad Carlos III de Madrid Contenidos } Fundamentos básicos de la
Más detallesTema 4.- Pilas y Colas
Apuntes elaborados por: Eduardo Quevedo, Raquel López y Aaron Asencio Revisado por: Javier Miranda el???? Tema 4.- Pilas y Colas Las pilas y colas son estructuras de datos que se utilizan generalmente
Más detallesTema 1 Introducción. Arquitectura básica y Sistemas Operativos. Fundamentos de Informática
Tema 1 Introducción. Arquitectura básica y Sistemas Operativos Fundamentos de Informática Índice Descripción de un ordenador Concepto básico de Sistema Operativo Codificación de la información 2 1 Descripción
Más detallesPreliminares. Tipos de variables y Expresiones
Preliminares. Tipos de variables y Expresiones Felipe Osorio Instituto de Estadística Pontificia Universidad Católica de Valparaíso Marzo 5, 2015 1 / 20 Preliminares Computadoras desarrollan tareas a un
Más detallesLos Microprocesadores MIA José Rafael Rojano Cáceres Arquitectura de Computadoras I Evolución Histórica de los Microprocesadores Intel Evolución de los microprocesadores Intel de la década de los 70 4004
Más detallesLa Unidad Aritmética
Prof. Rodrigo Araya E. raraya@inf.utfsm.cl Universidad Técnica Federico Santa María Departamento de Informática Valparaíso, 1 er Semestre 2006 1 2 3 4 5 En este capítulo profundizaremos la aritmética computacional
Más detallesAprendiendo a programar Microcontroladores PIC en Lenguaje C con CCS
Aprendiendo a programar Microcontroladores PIC en Lenguaje C con CCS Por Andrés Raúl Bruno Saravia Entrega Nº 5. Cómo declaramos una variable en Lenguaje C? En C siempre se deben declarar las variables.
Más detallesEl lenguaje de Programación C. Fernando J. Pereda <ferdy@gentoo.org>
El lenguaje de Programación C Fernando J. Pereda Por qué aprender C? Portable y muy extendido Estándar (C89, C99) El lenguaje de los sistemas Un lenguaje fácil (no, no es broma) Por
Más detalles4 o Ingeniería Informática
Esquema del tema 1. Introducción 2. Código intermedio 4 o Ingeniería Informática II26 Procesadores de lenguaje Generación de código 3. Generación de código para expresiones 4. Generación de código para
Más detallesBasic Object Oriented Programming (BOOP) Gramática del Lenguaje. Ever Mitta Flores
Ever Mitta Flores Índice 1. Clase @Principal...3 2. Comentarios...3 3. Definición de Atributos...3 4. Definición de Métodos...4 5. Declaración de Variables...4 6. Asignación de Valores...5 7. Definición
Más detallesGeneración de código para funciones. Generación de código para funciones. Generación de código para funciones. Generación de código para funciones
Ejemplo introductorio: escritura de funciones en NASM Ejemplo introductorio: escritura de funciones en NASM En estas transparencias pondremos una subrutina ASPLE y la generación de código equivalente En
Más detallesUNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INFORMÁTICA GRADO EN INGENIERÍA INFORMÁTICA. ESTRUCTURA DE COMPUTADORES
UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INFORMÁTICA GRADO EN INGENIERÍA INFORMÁTICA. ESTRUCTURA DE COMPUTADORES Para la realización del presente examen se dispondrá de 1 hora y media. NO se podrán
Más detallesIntroducción al lenguaje ensamblador DLX: instrucciones de enteros.
PRÁCTICA 0.a Introducción al lenguaje ensamblador DLX: instrucciones de enteros. OBJETIVO El objetivo de esta práctica es la familiarización con el lenguaje ensamblador DLX, analizando la ejecución de
Más detallesEntrada/Salida. Polling e Interrupciones. Verano de 2011. Mariano Moscato. Organización del Computador 1
Entrada/Salida Polling e Interrupciones Mariano Moscato Organización del Computador 1 Verano de 2011 El GuidoBot Robot docente Basado en tecnología ORGA1 tiene un procesador y una memoria ORGA1 Sus dispositivos
Más detallesMicroarquitectura: DISEÑO DE SISTEMAS DIGITALES EL-3310 I SEMESTRE 2008 3. MICROARQUITECTURA: FLUJO DE DATOS Y CONTROL DEL MICROPROCESADOR
Microarquitectura: implementación multiciclo DISEÑO DE SISTEMAS DIGITALES EL-3310 I SEMESTRE 2008 3. MICROARQUITECTURA: FLUJO DE DATOS Y CONTROL DEL MICROPROCESADOR 3.1 Esquema básico de un microprocesador
Más detallesCircuitos Digitales II y Laboratorio Fundamentos de Arquitectura de Computadores
Departamento de Ingeniería Electrónica Facultad de Ingeniería Circuitos Digitales II y Laboratorio Fundamentos de Arquitectura de Computadores Unidad 3: MIPS ISA Prof. Felipe Cabarcas cabarcas@udea.edu.co
Más detallesEl lenguaje C. #define MAX LINEA 1000 /* maximo tamanio de linea de entrada */
Principios de Programación El lenguaje C 1. Variables locales y globales 1.1. Variables locales Las funciones permiten al programador modularizar un programa. Todas las variables declaradas en las definiciones
Más detallesContenido TEMA 2 ENTRADA / SALIDA. Interfaz HW: buses del sistema. Interfaz HW de E/S
Contenido TEMA ENTRADA / SALIDA Sergio Romero Montiel Depto Arquitectura de Computadores El concepto de interfaz de E/S Direccionamiento de interfaces de E/S Mapa de memoria Organización Mapeada y no mapeada
Más detallesCONJUNTOS DE INSTRUCCIONES
4 CONJUNTOS DE INSTRUCCIONES 4.1. Introducción En este capítulo estudiaremos los distintos tipos de instrucciones de que constan los juegos de instrucciones de los ordenadores. Se verán con especial interés
Más detallesIlustrar el mecanismo de llamadas al sistema para solicitar servicios al sistema operativo.
Práctica 1: introducción al simulador SPIM 1. Motivación Seguro que a estas alturas de la carrera sabe ya manejar un ordenador perfectamente. Incluso debe saber cómo programarlos en un lenguaje de alto
Más detallesPRÁCTICAS DE ARQUITECTURA DE COMPUTADORES
PRÁCTICAS DE ARQUITECTURA DE COMPUTADORES PRACTICA 7 Repaso del Lenguaje Ensamblador CURSO 2005-2006 Arquitectura de Computadores. Práctica 7: Repaso del lenguaje Ensamblador 1 PRÁCTICA 7 ASPECTO TRATADO:
Más detalles