Manually optimizing for efficient cache usage
From: Bytes Grip (spamtrap_at_crayne.org)
Date: 02/18/05
- Next message: xyoavx: "controlling cursor's movement in text mode"
- Previous message: xby: "Performance and conditional jump work around."
- Next in thread: Matt: "Re: Manually optimizing for efficient cache usage"
- Reply: Matt: "Re: Manually optimizing for efficient cache usage"
- Reply: KVP: "Re: Manually optimizing for efficient cache usage"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Date: Thu, 17 Feb 2005 23:24:31 +0000 (UTC)
Hello.
I'm programming in Windows 2000 on a P4 with 512KB of L2 cache.
I have a very big data structure (approx. 500MB) which I store in main
memory (RAM).
I have read about the way the P4's L2 cache works and came up with a
way to arrange my data structure to ensure very efficient cache usage.
(No compiler can do this for me, because this cannot be deduced at
compile-time)
The problem is that I'm assuming I have a sequential block of 500MB
allocated for my needs. Windows lets me allocate such a large buffer,
but I'm afraid it is actually split in memory.
To my questions:
1. Which memory address determines the cache-set to which a certain
line belongs, the virtual address or the absolute addresses?
2. Can I somehow get myself 500MB of real sequential memory in Windows
2000?
3. Is there any other advice you can give me?
Thanks in advance,
Bytesgrip.
- Next message: xyoavx: "controlling cursor's movement in text mode"
- Previous message: xby: "Performance and conditional jump work around."
- Next in thread: Matt: "Re: Manually optimizing for efficient cache usage"
- Reply: Matt: "Re: Manually optimizing for efficient cache usage"
- Reply: KVP: "Re: Manually optimizing for efficient cache usage"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Relevant Pages
|