TRANSCODE Explorations into the Code Transcendental.

Memory Fabrics

I’ve been thinking about data structure the last week, and I was wondering why data structures are implemented the way they are.

It occurs to me that it is mostly due to the way computer memory is designed. Computer memory is a randomly accessible linear structure. Basically what you have is a large string of values that you can access by a single position index. This is the interface of memory, and all data structures are there root must use it in their implementation.

But I wondered, how would data structures differ is memory itself was structured in some other fashion? For instance, what if memory wasn’t a linear string of data, but a two-dimensional fabric? While arrays might be unaffected by such a change, clearly things like matrices could be stored in a much more literal fashion. It would be interesting to see the form of data structure talented individuals might devise with this.

Even so, two-dimensions is still somewhat limiting, taking it to a third dimension could open tremendous possibilities in the relative storage of data.

But might we go even further. What would prevent us from making the dimensionality definable? If a memory cell could be associated with any other memory cell as often as desired, then the fabric could have any structure desired. Interestingly, the effect of this would be to move what we already do in software, via indirect memory referencing, to the hardware itself.