Endianness, Excepciones y Acceso a Memoria
Conceptos Fundamentales de Arquitectura de Computadores
Ordenación de Bytes (Endianness)
La ordenación de bytes puede ser Little-Endian (introducida por Intel y utilizada por MIPS, entre otros) o Big-Endian (introducida por Motorola). Si tenemos un dato de 32 bits que ocupa 4 bytes (4 octetos o 4 secciones): X3 X2 X1 X0.
- La ordenación Little-Endian sitúa el byte menos significativo en la posición más baja.
- La ordenación Big-Endian sitúa el byte más significativo en la posición más baja.
Tipos de Excepciones e Interrupciones
- Por software: Se producen al ejecutar una instrucción específica (caso de la instrucción INT en el 8086). Este tipo de excepciones se suelen denominar traps o interrupciones software.
- Por hardware: Se pueden distinguir dos tipos:
- Acontecimiento anormal interno dentro del computador como puede ser una división por cero, instrucción ilegal, etc. Se les denomina excepciones.
- Activación de un pin de entrada externo del computador por algún dispositivo de E/S. Existen dos casos:
- Las interrupciones por fallo del hardware que no se pueden deshabilitar y que se denominan interrupciones no enmascarables.
- Las interrupciones que activan los módulos de E/S que se pueden deshabilitar y que se denominan interrupciones enmascarables.
Proceso de Acceso a Memoria con Cache y Memoria Virtual
En un sistema que integre tanto caché como memoria virtual, el proceso de acceso a una instrucción o dato tiene que combinar ambos niveles del sistema de memoria jerárquico. Los pasos que debe realizar el sistema para completar el acceso se detallan en el siguiente algoritmo:
Pasos del Algoritmo de Acceso a Memoria:
- El programa genera una dirección virtual que debe traducirse a una dirección física. Para realizar la traducción, se busca esta en la TLB.
- Si la TLB produce fallo, hay que ir a la Tabla de Páginas (TP) en memoria principal para realizar la traducción.
- Si la TP produce fallo, la página buscada no reside actualmente en memoria principal y hay que buscarla en el disco. El fallo lo gestiona el S.O., que copia la página desde disco a memoria principal y actualiza la TP.
- Si la TP produce acierto, entonces se actualiza la TLB y se traduce la dirección virtual en dirección física.
- Si hay acierto en TLB, ya podemos traducir la dirección virtual a dirección física y se accede a memoria caché con la dirección física.
- Si hay fallo en caché, se debe copiar el bloque que ha producido el fallo en la caché desde memoria principal.
- Si hay acierto en caché, se envía la instrucción o el dato al procesador.
Es importante destacar que no siempre es necesario realizar los 7 pasos; depende de la secuencia de aciertos y fallos que se obtiene en cada condición. Si, por ejemplo, la TLB da acierto, se pasa directamente del paso 1 al 5. Por otra parte, si la TP diera acierto, se pasaría del paso 2 al 4 directamente también. Por último, si la caché produce acierto, nos ahorramos el paso 6 y pasamos directamente al 7.