
Been a while since I’ve written here – been avoiding writing about politics, which has obviously not been so great for me in the last couple of weeks… but now I have something else to ruminate on.
I have reached a milestone, or perhaps basecamp, in my PhD research: having a model for memory management that needs further exploration. (Hopefully there may even be a paper on this soon.)
Some of that exploration will have to be in hardware, and that’s really beyond me but I can and should build a software model to test how a many core system built using this new model might operate.
So far I have been testing or proving concepts with OVPSim but it does not allow me to build a true asynchronous multi-core model, so I need to do that in software myself.
But where to begin – I have a list of classes that you might want to have in C++:
- Computer – which would aggregate…
I hope you can see how quickly this becomes complex – and all we are talking about here is a simple software framework to allow me to do the research (ie., delivering the software, complex as it is, is only the very start.)
I am struggling to know where to begin – C++ seems like the logical choice for this, but it’s not proving to be much fun. Particularly because my CPU class has to be able to “execute” some code – I thought about using a DSL but may stick to the XML output I got from my hacked Valgrind Lackey – as at least I can then use existing XML engines.
Should I build from the XML up – eg., get a CPU class that can hack the XML and pass the requests up the chain (eg via the cache up to the Mesh and up to the DRAM etc), or what?
3 responses to “Struggling”
I have trouble imaging a question to which XML is the right answer 🙂
What are you representing? Large datasets like memory reference traces probably need to be streamed in a binary form.
If you are trying to represent the structure of a computer system, there is a difference between a text rendering and a representation that can efficiently be operated upon. XML might be a (not so great) notation for the former.
It is a set of memory references as XML, some are code, others are reads, writes or modifies.
XML is extremely slow but there are engines out there that I can just link to process it and so I don’t have to reinvent the wheel – that’s been my perspective so far anyway.
[…] Struggling […]