Can You Capture Physical CPU-to-Memory Addresses in Real Time for Research?

  • Thread starter Thread starter Fubini
  • Start date Start date
  • Tags Tags
    Physical Research
AI Thread Summary
The discussion centers on the need for real-time access to physical addresses from the CPU to memory for evaluating caching algorithms. It highlights the challenge of obtaining this data, as most CPUs handle this at the hardware level, with the kernel only interacting during page faults. There is skepticism about capturing internal cache hits or page hits externally. Suggestions include using virtual machines, though they may not provide real-time data, and exploring ARM CPUs with sufficient pinouts for external tracing. The consensus leans towards simulating hardware caches in software to evaluate performance, as this allows for testing various programs against the simulated environment.
Fubini
Messages
13
Reaction score
0
I'm doing some senior research into caching algorithms. In order to effectively evaluate some of our algorithms it would be amazing if we had access to physical addresses sent from the CPU to the memory captured in real time under real operating conditions. Does anyone know of a place that might have something like this in the public domain for research?

Alternately, would it hypothetically be possible to generate such a thing in software on a standard Intel processor running windows/linux whatever? Kernel hacking would not be out of the question.

Thanks,
David
 
Technology news on Phys.org
I think you want virtual addresses rather than physical ones
 
The issue with this is that it's done in hardware on most CPU's. The kernel only get's involved when there's an attempt to access a page that is not currently mapped in memory. I don't know if any CPU has a means to capture and/or report internal cache hits and/or page hits to some external device.

I don't know if running a virtual machine on an Intel or AMD cpu would provide this information. If so, that would be an alternative, although it would not be real time.

Perhaps something like a ARM cpu setup with sufficient pinouts to trace this information to an external device would be possible.
 
Last edited:
The size and performance of L1, L2 and L3 cache varies from machine to machine, so there is no use in doing a study of that. But if you want to evaluate the performance of a specific machine, the traditional way is to find out exactly how the hardware caches work, and then simulate them with software. That way, you can run all kinds of programs against the simulations and see what's happening.
 
Dear Peeps I have posted a few questions about programing on this sectio of the PF forum. I want to ask you veterans how you folks learn program in assembly and about computer architecture for the x86 family. In addition to finish learning C, I am also reading the book From bits to Gates to C and Beyond. In the book, it uses the mini LC3 assembly language. I also have books on assembly programming and computer architecture. The few famous ones i have are Computer Organization and...
I have a quick questions. I am going through a book on C programming on my own. Afterwards, I plan to go through something call data structures and algorithms on my own also in C. I also need to learn C++, Matlab and for personal interest Haskell. For the two topic of data structures and algorithms, I understand there are standard ones across all programming languages. After learning it through C, what would be the biggest issue when trying to implement the same data...
Back
Top