Circuitos Digitales II Departamento de Ingeniería Electrónica Facultad de Ingeniería Circuitos Digitales II Elementos sobre la Arquitectura del Conjunto de Instrucciones Semana No.6 Semestre 2008-2 Prof. Gustavo Patiño gpatino@udea.edu.co Prof. Eugenio Duque eaduque@udea.edu.co Departamento de Ing. Electrónica. Circuitos Digitales II Facultad de Ingeniería 2008 - 2
Temario Formato de Instrucciones Organización de memoria Campos o componentes de una instrucción. Tipos de Formatos Relación entre el formato de instrucción y la arquitectura del procesador. Organización de memoria Transferencia de datos de memoria Lectura de la memoria (Carga) Escritura en la memoria (Almacenamiento) Alineamiento del contenido de la memoria Departamento de Ing. Electrónica. Circuitos Digitales II Facultad de Ingeniería 2008 - 2
Formato de las Instrucciones El tipo básico de instrucciones tiene cuatro componentes : Nombre de la operación Operando del primer dato-fuente. Operando del segundo dato-fuente. Operando del destino dst, src1 y src2 son los nombres de los registros ($). Departamento de Ing. Electrónica. Circuitos Digitales II Facultad de Ingeniería 2008 - 2
Lenguaje de Máquina del MIPS: Campos del formato de instrucciones Departamento de Ing. Electrónica. Circuitos Digitales II Facultad de Ingeniería 2008 - 2
Lenguaje de Máquina del MIPS (…cont) Instructions, like registers and words of data, are also 32 bits long Example: add $t0, $s1, $s2 registers have numbers, $t0=8, $s1=17, $s2=18 Instruction Format: 000000 10001 10010 01000 00000 100000 op rs rt rd shamt funct Can you guess what the field names stand for? Board work: Binary Numbers Departamento de Ing. Electrónica. Circuitos Digitales II Facultad de Ingeniería 2008 - 2
Formatos de Instrucción del ISA del MIPS Departamento de Ing. Electrónica. Circuitos Digitales II Facultad de Ingeniería 2008 - 2
Tipos de Formato en el MIPS Departamento de Ing. Electrónica. Circuitos Digitales II Facultad de Ingeniería 2008 - 2
Arquitectura Completa del Procesador MIPS Departamento de Ing. Electrónica. Circuitos Digitales II Facultad de Ingeniería 2008 - 2
Organización de la memoria Vista como una gran arreglo de una sola dimensión, donde cada registro posee una dirección. Una dirección de memoria es un índice en el arreglo. “Direccionamiento por byte” significa que un índice apunta a un byte de la memoria. 8 bits de datos 1 2 3 4 5 6 Departamento de Ing. Electrónica. Circuitos Digitales II Facultad de Ingeniería 2008 - 2
Organización de la memoria (…cont) Para el MIPS, una palabra (word) es de 32 bits, o sea, 4 bytes. 232 bytes con direcciones de byte desde 0 hasta 232-1. 230 words con direcciones de byte 0, 4, 8,…. 232-4. Las palabras (words) son alineadas. 32 bits de datos 4 8 12 16 Departamento de Ing. Electrónica. Circuitos Digitales II Facultad de Ingeniería 2008 - 2
Transferencia de datos de memoria Motivación: Los operandos para todas las operaciones lógicas y aritméticas están contenidos en registros. Para operar sobre datos alojados en la memoria principal, es necesario primero copiar los datos a los registros. Las instrucciones para transferencias de datos son usadas para mover datos desde y para la memoria. Una operación de carga (load) mueve datos desde una ubicación de memoria a un registro, Una operación de almacenamiento (store) mueve datos desde un registro a una ubicación de memoria. Departamento de Ing. Electrónica. Circuitos Digitales II Facultad de Ingeniería 2008 - 2
Instrucciones de transferencias de datos : load Las instrucciones de transferencias de datos tienen tres partes: Nombre del operador (especificando también tamaño de la transferencia). Registro de destino. Registro de la dirección base y la constante offset. lw dst, offset (base) El valor offset es una constante con signo. Departamento de Ing. Electrónica. Circuitos Digitales II Facultad de Ingeniería 2008 - 2
Acceso a memoria Todo el acceso a memoria ocurre a través de cargas y almacenamientos. Pueden ser del tipo word, half-word y bytes. Las cargas y almacenamientos de punto flotante son para accesar registros FP. Modo de direccionamiento basado en desplazamiento. Departamento de Ing. Electrónica. Circuitos Digitales II Facultad de Ingeniería 2008 - 2
Ejemplo de carga de datos Considere el ejemplo : a= b + *c ; Use la instrucción lw para cargar. Asuma que a($s0), b($s1), c($s2) Departamento de Ing. Electrónica. Circuitos Digitales II Facultad de Ingeniería 2008 - 2
Acceso de arreglos En realidad, los arreglos son punteros a la dirección base en memoria. Ejemplo: La dirección del elemento A[0]. En estos casos se usa el valor de offset para indicar el índice del arreglo. Recuerde que las direcciones están en bytes a fin de multiplicar por el tamaño real del elemento. Considere el arreglo de enteros, donde pow2 es la dirección de base. Así, cada entero requiere 4 bytes. Como ejemplo de un dato que se quiera accesar considere el índice 5, o sea: pow2[5]. Entonces, la dirección de memoria de ese dato es : pow2 + 5*4 Departamento de Ing. Electrónica. Circuitos Digitales II Facultad de Ingeniería 2008 - 2
Diagrama del arreglo en memoria Departamento de Ing. Electrónica. Circuitos Digitales II Facultad de Ingeniería 2008 - 2
Ejemplo de arreglo Considere el ejemplo a= b+ pow2[7]; Use la instrucción lw con offset. Asuma que $s3 = 1000. lw $t0, 28($s3) # $t0 = memory[pow2[7]] add $s0, $s1, $t0 # a = b + pow2[7] Departamento de Ing. Electrónica. Circuitos Digitales II Facultad de Ingeniería 2008 - 2
Ejemplo de un arreglo complejo Considere la línea 7 del ejemplo de sum_pow2() ret = pow2[a]; Primero, encuentre el offset correcto. De nuevo asuma que $s3 = 1000. Departamento de Ing. Electrónica. Circuitos Digitales II Facultad de Ingeniería 2008 - 2