Processor and Memory data alignment with base pointers?

Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
4 replies · 2K views
drgibbles
Messages
3
Reaction score
0
Hello, working on a puzzle and I think this may be what I need to do to solve it. I have a long string of characters,752 total with the range 0-9 and a-f. I believe that the data needs to be aligned based off the processor and memory. The Cpu is at 2800MHz and the memory is 1024MB. Is there a simple way or direction someone may be able to point me in regarding separating the data from padding? I know this is a little vague but I'm in unknown waters here, any suggestions would be greatly appreciated! Thanks for your time!
 
Physics news on Phys.org
drgibbles said:
Hello, working on a puzzle and I think this may be what I need to do to solve it. I have a long string of characters,752 total with the range 0-9 and a-f. I believe that the data needs to be aligned based off the processor and memory. The Cpu is at 2800MHz and the memory is 1024MB. Is there a simple way or direction someone may be able to point me in regarding separating the data from padding? I know this is a little vague but I'm in unknown waters here, any suggestions would be greatly appreciated! Thanks for your time!
What does that even mean ?
 
Sorry, let me see if I can straighten that up a bit. The way that data is stored is being based off the Cpu architecture, x86, and that coupled with the memory addresses. Here is a link that explains it some, but I'm just having a hard time wrapping my head around this.
https://en.wikipedia.org/wiki/Data_structure_alignment
 
Its not too hard to understand when you realize that the CPU imposes a certain preference in how it accesses memory.

Some processors read several words at a time and discard some bytes depending on the instructions. Others may read a byte at a time and shift it into a register. This is where the notion of big endian (mainframes and powerpc used big endian) vs little endian comes from (intel uses little endian).

This might also imply that there's wasted space in memory as data is aligned on even byte boundaries or even 4 or 8 byte boundaries taking advantage of the processor preference for such boundaries.
 
Thank you so much! That was exactly what I needed!