Circuitos Digitales II Alineamiento en Memoria y Ejecución de un programa Semana No.8 Semestre 2008-2 Prof. Gustavo Patiño Prof. Eugenio.

Slides:



Advertisements
Presentaciones similares
¿PARA QUE ESTAMOS AQUÍ? LOS OBJETIVOS DE LA ENCARNACIÓN.
Advertisements

SIES – SISTEMA INTEGRADO DE EDUCACIÓN SUPERIOR
el 1, el 4 y el 9 tres cuadrados perfectos autosuficientes
DATSI, FI, UPM José M. Peña Programación en C DATSI, FI, UPM José M. Peña Programación en C.
Diseño de la ruta de datos monociclo para la arquitectura MIPS
1 INFORME RESUMEN SOBRE EL NIVEL DE UTILIZACION DE LAS TIC EN LAS EMPRESAS GALLEGAS ( Resumen PYMES ) Noviembre de 2004.
1 INFORME RESUMEN SOBRE EL NIVEL DE UTILIZACION DE LAS TIC EN LAS EMPRESAS GALLEGAS (MICROEMPRESAS, resultados provisionales) 29 de julio de 2004.
Los Objetos de la Clase Escriban la palabra (the word) en español para los objetos de la clase (#1-20).
CLASE 3 SOFTWARE DEL MICROPROCESADOR
Arquitectura de Computadores I
Arquitectura de Computadores I
1 Circuitos Digitales II Circuitos Digitales II Fundamentos de Arquitectura de Computadores Información sobre el Curso Semana No.1 Semestre Prof.
Computadoras y programación
Circuitos Digitales II
Í N D I C E. Í N D I C E P R E S E N T A C I Ó N.
Introducción a los Números Fraccionarios
Circuitos Digitales II
Estructura de Lewis de ClO4-
Expresiones Racionales
Assembly y el Simulador SPIM
66.20 Organización de Computadoras
66.20 Organización de Computadoras
CLASE 10.
CLASE 12.
Curso Circuitos Digitales I Sesión 2 (complemento)
Circuitos Digitales II
Circuitos Digitales II Elementos sobre la Arquitectura del Conjunto de Instrucciones Semana No.2 Semestre Prof. Gustavo Patiño
Expresiones Algebraicas
Andrés Núñez Herrero Enrique España Blanco Rodrigo Cembrero Carazo.
El procesador: la ruta de datos y el control (II Parte)
Circuitos Digitales II
Circuitos Digitales II Elementos sobre la Arquitectura del Conjunto de Instrucciones Semana No.2 Semestre Prof. Gustavo Patiño
Circuitos Digitales II TestBench, Generics, Generate y Más sobre Procesos Semana No.4 Semestre Prof. Gustavo Patiño Prof. Eugenio.
INTRODUCCIÓN A LA PROGRAMACIÓN
EL Sistemas Digitales Ing. José Alberto Díaz García Escuela de Ingeniería Electrónica Arquitectura Segmentada Pipeline (Segmentación)
CULENDARIO 2007 Para los Patanes.
Números enteros.
Arquitectura de Conjunto de Instrucciones (ISA)
Visita: Por la construcción de Comunidad Universitaria Departamento de Promoción de la Salud y Prevención de la Enfermedad.
Estructura Económica y desarrollo del Sistema Financiero en Puno 1 Junio de 2014 Departamento de Estudios Económicos.
Slide 7-1 Copyright © 2003 Pearson Education, Inc. Figure: Estructuras de datos.
SUMA DE FRACCIONES DEL TERCER TIPO.
CLASE 11.
Manual de Procedimientos Procedimiento de ejecución del programa de
Aritmética y Computadores. Refresco de aritmética binaria. Operaciones aritméticas y lógicas. Construcción de una ALU para MIPS. Multiplicación y División.
ISA (Instruction Set Architecture)
MIPS Intermedio.
Unidad 2: Organización del CPU
© 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
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 COMPUTADORES Semestre A-2009 Clase 13.
Memoria. Memoria  Propósito  Longitud de palabra  Notación convencional de capacidad de memoria de un circuito.
Datapath para las instrucciones de carga y almacenamiento (load/store)
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 11.
El procesador Diseño del control.
Informática Clase Arquitectura de la Computadora.
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 10.
Modos de direccionamiento
ALMACENAMIENTO DE DATOS. Son componentes que leen o escriben datos en medios o soportes de almacenamiento, y juntos conforman lamemoria o almacenamiento.
Algoritmos y Desarrollo de Programas I
ARQUITECTURA DE COMPUTADORES
UNIDAD 2. DISEÑO LÓGICO DE PROCESADORES: UNIDAD ARITMÉTICO-LÓGICA Ing. Elizabeth Guerrero V.
MIPS Intermedio.
Arquitecturas de Computadoras Capitulo 2 Aritmética de enteros.
EL SISTEMA BINARIO GERARDO A. CAJAS G.. LA BASE 2 El BINARIO es un sistema posicional de numeración que permite representar cualquier número utilizando.
Arquitectura de Computadoras (Taller) Semestre II de 2008.
Transcripción de la presentación:

Circuitos Digitales II Alineamiento en Memoria y Ejecución de un programa Semana No.8 Semestre Prof. Gustavo Patiño Prof. Eugenio Duque Departamento de Ingeniería Electrónica Facultad de Ingeniería

Repaso Instrucciones de Control Ejemplos : If Then While Repaso Completo de un ejemplo en C/C++ Multiplicación y división em el MIPS Alineamiento en el MIPS Orden de Bytes en la memoria Big Endian Little Endian Temario 2 Departamento de Ing. Electrónica. Circuitos Digitales II Facultad de Ingeniería

Repaso : If-then-else 3

Ejemplo: If-then-else Solución 4

Resumen de Comparaciones en el MIPS 6

Resumen de instrucciones y operandos en el MIPS

8

11

Cuando una palabra (4 bytes) es cargado o almacenado, la dirección de memoria debe ser un múltiplo de cuatro. Esto se denomina restricción de alineamiento. Las direcciones que son un múltiplo de cuatro son llamadas de palabra alineada (word aligned). Esta restricción hace el hardware más simple y más rápido. Alineamiento en el MIPS 12 Departamento de Ing. Electrónica. Circuitos Digitales II Facultad de Ingeniería

Restricciones de Alineamiento 13 Departamento de Ing. Electrónica. Circuitos Digitales II Facultad de Ingeniería

Cuál de las siguientes direcciones es de palabra alineada ? 0x000AE430 0x x000B0737 0x0E0D8844 Sugerencia: En binario, cómo es posible dividir por 4 ? Pregunta 14 Departamento de Ing. Electrónica. Circuitos Digitales II Facultad de Ingeniería

Restricciones de Alineamiento (…cont) 15 Departamento de Ing. Electrónica. Circuitos Digitales II Facultad de Ingeniería

Una instrucción de carga (load) o de almacenamiento (store) tipo word usa únicamente una dirección de memoria. La dirección más baja de los cuatro bytes se usa para la dirección de un bloque de cuatro bytes contiguos. Cómo se almacena un dato de 32 bits en la memoria ? Como se sabe, hay 32 bits en los 4 bytes de memoria, y el dato posee también 32 bits. No obstante es necesario definir cuál parte de la memoria almacena cada parte del dato de 32 bits. Actualmente hay dos maneras como los computadores realizan esta tarea: Orden de bytes del tipo Big Endian: El byte más significativo (the big endian) de los datos es ubicado en el byte con la dirección más baja. El resto de los datos es colocado en orden en los restantes tres bytes de la memoria. Orden de bytes del tipo Little Endian: El byte menos significativo (the little endian) de los datos es ubicado en el byte con la dirección más baja. El resto de los datos es colocado en orden en los restantes tres bytes de la memoria. Orden de Bytes en la memoria : Big Endian y Little Endian 16 Departamento de Ing. Electrónica. Circuitos Digitales II Facultad de Ingeniería

En esta definición, el dato de 32 bits es visto como un entero sin signo de 32 bits. El byte más significativo es aquel con la más alta potencia de dos: 2 31, El byte menos significativo es aquel con la menor potencia de 2: 2 7, Por ejemplo: imagine el dato 0x ubicado en la dirección 0x En este caso, el byte menos significativo es 0x12 y el byte más significativo es 0x78. Según el tipo de orden de los bytes, este número podría ser almacenado como: Dentro de un byte, el orden de los bits es el mismo para todos los computadores, sin importar cómo es que los bytes están ordenados. Big Endian y Little Endian 17 Departamento de Ing. Electrónica. Circuitos Digitales II Facultad de Ingeniería

Ejecución de un Programa Procedimiento de compilación y enlace (Compilation and linking)

23

24

26

27

28

Ejemplo en C 29

sum_pow2: # $a0 = b, $a1 = c addu $a0, $a0, $a1 # a = b + c, $a0 = a slti $v0, $a0, 8 # $v0 = a < 8 beq $v0, $zero, Exceed # goto Exceed if $v0 == 0 addiu $v1, $sp, 8 # $v1 = pow2 address sll $v0, $a0, 2 # $v0 = a*4 addu $v0, $v0, $v1 # $v0 = pow2 + a*4 lw $v0, 0($v0) # $v0 = pow2[a] j Return # goto Return Exceed: addu $v0, $zero, $zero # $v0 = 0 Return: jr ra # return sum_pow2 sum_pow2: # $a0 = b, $a1 = c addu $a0, $a0, $a1 # a = b + c, $a0 = a slti $v0, $a0, 8 # $v0 = a < 8 beq $v0, $zero, Exceed # goto Exceed if $v0 == 0 addiu $v1, $sp, 8 # $v1 = pow2 address sll $v0, $a0, 2 # $v0 = a*4 addu $v0, $v0, $v1 # $v0 = pow2 + a*4 lw $v0, 0($v0) # $v0 = pow2[a] j Return # goto Return Exceed: addu $v0, $zero, $zero # $v0 = 0 Return: jr ra # return sum_pow2 Sum_pow2: Código compilado en Assembler 30 Return Address

Constantes dentro de las instrucciones 31

Qué ocurre con constantes más grandes ? 32