Ver Mensaje Individual
  #20  
Antiguo 30-08-2008
HySTD HySTD is offline
Miembro
 
Registrado: sep 2006
Posts: 15
Reputación: 0
HySTD Va por buen camino
Cita:
que yo sepa como caché física solo tenemos la L1, L2... como podemos acceder a la misma mediante algun lenguaje?


Repito, siempre que haya un acceso a memoria en una instrucción, se va a acceder a caché. De todas formas existen unos tipos de datos que fuerzan al compilador a que los datos permanezcan o no en caché (Los conozco en C, pero no se los homólogos en Delphi):

Cita:
El Modificador register

Este modificador sobre una variable le indica al compilador que la variable debe almacenarse en un registro en el compilador, que para el caso de los IA32, es un registro real de la propia CPU, y por tanto el tiempo de acceso es más rápido respecto a la memoria RAM. Hoy en día a penas se utiliza este modificador, ya que los compiladores son capaces de determinar de manera óptima la asignación de registros a variables del programa.

El Modificador volatile

Al con otro valor, dicha variable se almacena directamente en memoria y no queda localizado el valor sólo en el registro de la CPU como pasaba en el casocontrario que el modificador registrer, volatile obliga al compilador a forzar el código resultante de manera que la variable modificada con este modificador, sea almacenada siempre en la memoria. El efecto que tiene es que cuando la variable se modifica de register o en condiciones normales. Un uso muy común en el que se suele emplear este modificador, es para acceder a variables que están siendo utilizadas por drivers o por periféricos, ya que si no declarásemos esta propiedad, podría darse el caso que la CPU usase el valor de la variable, por lo que la caché guarda el valor, y poco después la CPU usase de nuevo dicha variable, pero como ésta está en cache, la CPU coge el valor que existe en la caché, puede ser bien distinta si mientras un posible periférico ha modificado dicho valor.

Fuente: http://es.wikibooks.org/wiki/Program...cador_volatile

Cita:
Quieres decir que hay la misma cantida de caché física que RAM?
No! por supuesto que no. La diferencia radica en la decodificación de la dirección virtual que genera el procesador. El procesador genera una dirección virtual, pues bien, cuando se accede a caché se interpreta de una manera (Depende del tipo de caché: mapeado directo, asociativa por conjuntos o completamente asociativa), y cuando accede a RAM lo hace a través de una tabla de páginas (que puede estar almacenada en una caché especial: TLB) que contiene la dirección física que es concatenada con el desplazamiento de la dirección virtual.


Cita:
amigos como dije anteriolmente estoy hablando de la memoria ram y solo quiero probar los tiempo de lectura/escritura nada mas y quiero saber como se puede hacer esto
Vuelvo a repetir, que tienes que basarte en la penalización por fallo entre un nivel y otro.

Si no te corre prisa, en cuanto tenga tiempo te pondré un código de ejemplo.

Un saludo.
Responder Con Cita