ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 10.

Slides:



Advertisements
Presentaciones similares
Curso de java básico (scjp)
Advertisements

El modelo de Von Neumann
UNIVERSIDAD DEL VALLE DE MEXICO CAMPUS CHAPULTEPEC
CLASE 3 SOFTWARE DEL MICROPROCESADOR
Camino de Datos y Control
Arquitectura de Computadores I
Arquitectura de Computadores I
Fermín Sánchez Carracedo Universitat Politècnica de Catalunya
Computación PROGRAMACIÓN.
Circuitos Digitales II Alineamiento en Memoria y Ejecución de un programa Semana No.8 Semestre Prof. Gustavo Patiño Prof. Eugenio.
Sistemas Operativos Funcionamiento general de una computadora bajo el control de un programa.
Assembly y el Simulador SPIM
CLASE 12.
Circuitos Digitales II
Datapath DLX.
3. INTRODUCCIÓN A LA PROGRAMACIÓN
Arquitectura de Conjunto de Instrucciones (ISA)
Programación.
Composición Interna de un Procesador
Computadora Digital Arquitectura de John Von Neumann
CLASE 11.
Arquitectura del Computador
ISA (Instruction Set Architecture)
Fundamentos de Programación
Lenguaje C.
Práctica 7 AOC. Gestión de la pila Una pila es una estructura de datos caracterizada por que el último dato que se almacena es el primero que se obtiene.
MIPS Intermedio.
Introducción a la Ingeniería en Sistemas
Datapath para las instrucciones de brinco
© Prof. José Mª Foces Morán PCSpim: SPIM sobre Windows Ventana principal de PCSpim Consola: permite interactuar con el programa que está siendo.
(CC) , José M. Foces-Morán.
Arquitecturas de Computadoras Curso Propedéutico
Instrucciones: FORMATO DE INSTRUCCIONES
Unidad III Elementos del lenguaje C++
Modelo de Von Neumann Ana Lilia Laureano-Cruces Departamento de Sistemas Universidad Autónoma Metropolitana.
Organización del Computador I Verano MIPS (1 de 2) Basado en el capítulo 3 del libro de Patterson y Hennessy Verano 2004 Profesora Borensztejn.
Arquitectura de Computadoras
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 13.
Laboratorio de Organización del Computador. Cómo nos podemos comunicar con un computador Add A, B CA0 Ensamblador Hexadecimal Binario.
Programación Básica con NQC Patricio A. Castillo Pizarro 25/08/2007.
El procesador Creando un solo datapath. Universidad de SonoraArquitectura de Computadoras2 Introducción 1. Crear un solo datapath a partir de los datapaths.
Unidad I: Registros e Interrupciones Facilitador: Ing. Eduardo Brando.
Microcomputadores Prof: Tatiana Marín R.. Lenguaje máquina = lenguaje binario InstrucciónLenguaje máquina (binario)OP ( hex)Nemónico Restar F0SUB.
Programación Básica con “NQC” Pedro F. Toledo – Patricio Castillo 13/05/2006.
Arquitectura de Von Neumann
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 11.
CLASE 13.
El procesador Diseño del control.
Capítulo 4 CPU y la memoria.
Informática Clase Arquitectura de la Computadora.
Programación Básica con NQC Patricio A. Castillo 12/04/2008.
PRINCIPIOS DE PROGRAMACIÓN
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 17 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.
introducción al Lenguaje Ensamblador
Modos de direccionamiento
Presente un cuestionario con los aspectos mas importantes sobre los
Unidad Central de Proceso
Fundamentos de Programación
Es un tipo especial de software que nos permite *Crear *Desarrollar *Programar otras aplicaciones. Haciendo uso de sus conocimientos lógicos y lenguajes.
ARQUITECTURA DE COMPUTADORES
Universidad Metropolitana Introducción a la Computación Universidad Metropolitana Introducción a la Computación Septiembre, 2007 Arquitectura Von Newman.
MIPS Intermedio.
Arquitecturas de Computadoras Capitulo 2 Aritmética de enteros.
Lenguaje ensamblador Conceptos introductorios. Formatos de Instrucción. Modos de Direccionamiento. Conjunto de instrucciones básico. Introducción al Lenguaje.
Arquitectura de Computadores IIC 2342 Semestre Rubén Mitnik Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia.
CAPITULO V Arquitectura de Von Neumann
Omar Herrera Caamal Rigoberto Lizárraga Luis Cetina Luna.
Arquitectura de Computadoras (Taller) Semestre II de 2008.
Organización de computadoras
Datapath para las instrucciones de brinco
Transcripción de la presentación:

ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 10

AGENDA Arquitectura MIPS Concepto de programa almacenado Conjunto de instrucciones MIPS El lenguaje ensamblador MIPS Registros en MIPS

Arquitectura MIPS

Componentes de la arquitectura El Contador de Programa (PC) Unidad de Control Unidad Aritmético-Lógica Registros Memoria de Datos Memoria de Instrucciones

Programa almacenado John von Neumann introdujo, por primera vez, en 1945, la idea de almacenar el programa en memoria El programa es almacenado dentro de la máquina para luego ser procesado internamente Las instrucciones y los datos son guardados en memoria como números Varios usuarios pueden utilizar un mismo computador para diferentes conductas, resultando en diferentes aplicaciones y dándole un carácter universal, como herramienta, al computador

Conjuntos de instrucciones Para darle órdenes al hardware de un computador, debemos hablar su idioma Las palabras del idioma de los computadores se denominan instrucciones, y su vocabulario es llamado conjunto de instrucciones Una instrucción, en lenguaje de máquina, es un código formado por voltajes altos y bajos Un conjunto de instrucciones debería: –Facilitar (Simplicidad) la construcción del hardware y el compilador –Maximizar el rendimiento –Minimizar el costo y el consumo de energía

Conjunto de instrucciones MIPS Utilizaremos el conjunto de instrucciones MIPS, desarrollado por MIPS technologies Otros conjunto de instrucciones son: –ARM: Del cual se construyeron 3000 millones de procesadores en el 2008 (Parecido a MIPS) –Intel x86: El cual fue implementado en alrededor de 330 millones de PCs en 2008.

Almacenamiento de variables en hardware add $t1,$s6,$s7 A diferencia de los programas de alto nivel, en el hardware se cuenta con un número limitado de localidades de memoria para ubicar allí los operandos y resultados temporales de operaciones aritméticas La arquitectura MIPS cuenta con 32 de estas localidades de memoria, denominadas registros Cada registro en MIPS, tiene un tamaño o capacidad de 32 bits.

Convención o compromiso de uso de los 32 registros del MIPS RegistroNombreConvención de uso 0$zeroSiempre tiene almacenado 0 (32 bits en 0). Las escrituras se ignoran. 1$atAssembler temporal. 2-3$v0-$v1Valores para resultados de funciones y evaluación de expresiones. Se pueden usar también para retornar 1 valor punto flotante. 4-7$a0-$a3Argumentos. 4 de precisión simple y 2 de doble precisión. 8-15$t0-$t7Valores temporales. Se pueden usar como se desee $s0-$s7Temporales almacenados. Se pueden usar libremente $t8-$t9Valores temporales. Se pueden usar como se desee $k0-$k1Reservados para el kernel del SO y retorno de excepción. 28$gpGlobal pointer. 29$spStack pointer. 30$fpFrame pointer. 31$raReturn address, grabada por la función de llamada.

Almacenamiento de datos Los lenguajes de programación permiten tener estructuras que pueden contener muchos más datos o variables que los que se pueden guardar en 32 registros: ¿Cómo hace el computador para acceder y representar tal cantidad de datos? Los datos se mantienen en memoria Por lo tanto, se requieren instrucciones (Capacidades) para 1.Leer un dato desde memoria y guardarlo en un registro 2.Tomar un dato guardado en un registro y guardarlo en una localidad de memoria En MIPS, se pueden direccionar 2 30 palabras de memoria: Memory[0], Memory[4], Memory[8],..., Memory[ ]

Instrucciones de transferencia de datos Carga de datos desde memoria a un registro: lw $s1, 15($s2)# $s1=Memory[$s2+15] Almacenamiento de datos desde registros a memoria: sw $s1, 20($s2) # Memory[$s2+20]=$s1

Instrucciones Aritméticas Las instrucciones aritméticas y lógicas ocurren sólo sobre registros. Suma de dos enteros almacenados en registros add $s1,$s2,$s3# $s1=$s2+$s3 Resta de dos enteros almacenados en registros sub $s1,$s2,$s3 # $s1=$s2-$s3 Suma de un valor entero constante a un valor entero guardado en un registro addi $s1,$s2,5 # $s1=$s2+5

Instrucciones Lógicas Las operaciones lógicas realizan las operaciones bit a bit AND: and $t0,$t1,$t2 # $t0 = $t1 & $t2 OR: or $t0,$t1,$t2 # $t0 = $t1 | $t2 Desplazamiento a la izquierda: sll $s1,$s2,8 # $s1 = $s2 << 8 Desplazamiento a la derecha: srl $s1,$s2,6 # $s1 = $s2 >> 6

Instrucciones de Salto Lo que distingue a una computadora de una calculadora, es su capacidad para tomar decisiones CONDICIONAL: Saltar si son iguales dos operandos: beq $s5,$s6,Etiq# if ($s5==$s6) goto Etiq Salta si son diferentes dos operandos: bne $s3,$s4,Etiq# if ($s3!=$s4) goto Etiq INCONDICIONAL Salta a cierta dirección explicita o etiqueta: j Etiq # goto Etiq Salta a la dirección almacenada en el registro: jr $ra # goto $ra

Ejemplo 1 Programa en C: int a = 5; int b= 4; int c = a + b + 7; Programa en ensamblador: addiu $s0,$zero,5 addiu $s1,$zero,4 addu $t0,$s0,$s1 addiu $t0,$t0,7

Ejemplo 2 Programa en C: int f, g = 3, h = 1; int i = 4, j = 4; if (i==j) f=g+h; else f=g-h; Programa en ensamblador: addi $s1,$zero,3 addi $s2,$zero,1 addi $s3,$zero,4 addi $s4,$zero,4 bne $s3,$s4,Else add $t0,$s1,$s2 j Fin Else:sub $t0,$s1,$s2 Fin:

Simulador SPIM Permite ejecutar programas escritos en el lenguaje ensamblador MIPS32 También ofrece un depurador sencillo y servicios mínimos de sistema operativo Se puede descargar de la página