elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  ASM (Moderador: Eternal Idol)
| | | |-+  Duda con la Cache
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda con la Cache  (Leído 2,672 veces)
xv0


Desconectado Desconectado

Mensajes: 1.027



Ver Perfil
Duda con la Cache
« en: 28 Enero 2014, 02:26 am »

Hola

Leyendo el set de instrucciones me fije en una instruccion llamada Prefetch, por lo que e leido esta carga datos en la cache, pudiendo escojer los distintos niveles. Leyendo un diagrama del volumen dos, estaba viendo que acceder a la cache L1 es mas rapido que a la memoria principal.

No entendi muy bien el funcionamiento, cargas el contenido pero como lo lees luego? O es para instrucciones?

Código
  1. movzx (%rsp, %r8), %r14
  2. movzx offset(, %r14), %r14

Tengo que repetir eso unas cuantas veces, accediendo siempre a la memoria, no podria usar la cache?

Espero que se me entienda y perdon por si dije alguna burrada.

Un saludo.



En línea

Amadeo Magnus

Desconectado Desconectado

Mensajes: 219



Ver Perfil
Re: Duda con la Cache
« Respuesta #1 en: 28 Enero 2014, 22:50 pm »

Vos no podes acceder directamente a la cache. Según estuve leyendo en el manual, es una instrucción que básicamente le avisa al procesador que vas a usar tal posición de memoria, y si es posible, la levanta y la guarda en la cache, pero todo esto es transparente para vos. Vos deberías hacer un prefetch y seguir trabajando como si nada, y supongo que habrá una probabilidad mayor de que cuando muevas a un registro algo que está en memoria, tengas un hit en la cache y no haga falta ir a buscar el dato a memoria.


En línea

El secreto del éxito es la constancia.
xv0


Desconectado Desconectado

Mensajes: 1.027



Ver Perfil
Re: Duda con la Cache
« Respuesta #2 en: 29 Enero 2014, 02:17 am »

Gracias por la aclaracion, solamente era eso, si lo que dices tiene sentido ya me extraña, solamente se pasan los datos pero no se pueden leer.

Si yo tengo lo siguiente.

Código
  1. prefetchnta (%rsp, %r8)
  2. movb (%rsp, %r8), %r14b

Se supone que la CPU usaria la cache, pero eso en mi caso funcionaria? Bueno es que no quiero subir el codigo, pero eso en realidad ayudaria mucho.

Un saludo.

Modifico:

offset es un array de unos 200 bytes, lo que tengo que hacer es pasar un byte de un puntero y luego sumarlo offset y pasar el valor.

Ejemplo:

Código:
offset = 0x6000 r14b = 0x10

r14b * 1 + offset = 0x6010

Y pasaria el valor de la posicion 0x6010, pero puedo aplicar la cache para algo asi?

Bueno tambien e estado leyendo que prefetchtna depende de la CPU y de la implementacion carga como minimo unos 32 bytes, eso pone en el manual.

A donde pretendo llegar es a esto, como dije anteriormente carga unos 32 bytes, entonces esto siguiente tendria que funcionar no?

Código
  1. prefetchnta (%rsp, %r8)
  2. movb (%rsp, %r8), %r14b
  3. movb 1(%rsp, %r8), %r14b
  4. movb 2(%rsp, %r8), %r14b

Sabrias decirme de cuanto seria la optimizacion?

Bueno modifico una vez mas para decir que ya se como implementarlo, segun estado leyendo un athlon 64 o un opteron carga en la cache unos 64 bytes, si no entendi mal, solamente tengo que usar prefetch unas cuantas veces para cargar el array en la L1 de la cache, supongo que asi sera mas rapido ya que tengo que repetir eso unas 50 veces en un loop, lo que no se como comprobarlo.

Bueno no me enrollo mas, gracias por tu tiempo Amadeo Magnus.
« Última modificación: 4 Febrero 2014, 03:31 am por cpu2 » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda sobre ARP y tabla ARP cache
Redes
Shon 7 9,980 Último mensaje 20 Septiembre 2010, 11:33 am
por -=[ §ÂßÂÑÐØ ]=-
Duda sobre Internet Explorer y su cache y archivos temporales.
Hacking
oisac 1 2,844 Último mensaje 8 Marzo 2011, 18:20 pm
por el-brujo
[Duda] Usar un SSD como cache para el HDD
Hardware
raul_samp 2 4,766 Último mensaje 19 Mayo 2012, 23:06 pm
por raul_samp
¿Alguno ah usado hostinger para hosting ? DUDA CACHE
Desarrollo Web
SrTrp 6 3,390 Último mensaje 17 Abril 2020, 04:59 am
por SrTrp
datos cache
Dudas Generales
inma55 7 6,571 Último mensaje 9 Mayo 2023, 16:42 pm
por inma55
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines