“Conocimiento Programación>C /C + + Programming

¿Qué es el mapeo directo y la función?

2014/9/19
El mapeo directo es un diseño de memoria caché en el que cada dirección de memoria se asigna a una línea de caché específica. Esto significa que sólo hay una ubicación de caché posible para cada dirección de memoria. El mapeo directo es simple de implementar y tiene una baja sobrecarga de hardware, pero puede generar conflictos de caché si varias direcciones de memoria se asignan a la misma línea de caché.

Para calcular el índice de línea de caché para una dirección de memoria determinada, la dirección de memoria se divide por el tamaño de la línea de caché. El resto de esta división es el índice de línea de caché. Por ejemplo, si la dirección de memoria es 0x100 y el tamaño de la línea de caché es 16 bytes, entonces el índice de la línea de caché es 4.

La función de mapeo directo mapea una dirección de memoria a un índice de línea de caché de acuerdo con la siguiente fórmula:

```

cacheLineIndex =dirección de memoria mod cacheLineSize

```

Dónde:

* índice de línea de caché es el índice de la línea de caché

* dirección de memoria es la dirección de memoria

* tamaño de línea de caché es el tamaño de la línea de caché

A continuación se muestra un ejemplo de cómo funciona el mapeo directo. Considere un caché con un tamaño de línea de caché de 16 bytes. La siguiente tabla muestra las direcciones de memoria que se asignan a cada índice de línea de caché:

| Índice de línea de caché | Direcciones de memoria |

|---|---|

| 0 | 0x000, 0x010, 0x020, ..., 0x0F0 |

| 1 | 0x100, 0x110, 0x120, ..., 0x1F0 |

| 2 | 0x200, 0x210, 0x220, ..., 0x2F0 |

| 3 | 0x300, 0x310, 0x320, ..., 0x3F0 |

| ... | ... |

Ahora, digamos que queremos acceder a la dirección de memoria 0x123. Para calcular el índice de línea de caché para esta dirección, dividimos 0x123 entre 16. El resto de esta división es 3. Por lo tanto, el índice de línea de caché para la dirección de memoria 0x123 es 3.

Según la tabla anterior, el índice 3 de la línea de caché se asigna a las direcciones de memoria 0x300, 0x310, 0x320, ..., 0x3F0. Por lo tanto, la dirección de memoria 0x123 se asigna a la línea de caché que contiene las direcciones de memoria 0x300, 0x310, 0x320, ..., 0x3F0.

C /C + + Programming
Cómo utilizar números negativos en C
Cómo escribir un iterador STL
Cómo compilar código C en el Makefile
Cómo arreglar Microsoft Visual C + +
Cómo cambiar el nombre de dispositivo lógico - Volumen
Cómo utilizar los archivos de FX en Radiant GTK
¿Qué es un encabezado Ctype
Cómo hacer un gráfico en movimiento en C #
Conocimiento de la computadora © http://www.ordenador.online