While passing through a project, I have seen that the memory data is "8 bytes coalition"
Can I give some input related to this?
/ Kanu__
An address that addresses the "8-bytes coalition" memory address Which is stored on 8 which is a multiple of 8.
Many CPUs will only load some data types from aligned locations; Access like other CPUs is just faster There are many other possible reasons for using memory alignment - without seeing the code it is difficult to say why.
Convenience of the coalition is fast because the memory in the external bus is not a byte wide - it is usually 4 or 8 bytes wide (or more wide). This means that the CPU does not bring a byte at a time - it receives 4 or 8 bytes starting at the requested address. As a result, at least two or two critical bits of memory address are not actually sent by the CPU - external memory can be read or written only at those addresses which are a part of the width of the bus. If you request a byte at the address "9", then the CPU will actually ask for the memory of the byte block starting with address 8, and the other will put each other in its register (leaving others).
This means that a misaligned access can be read by two memory: if you start addressing 9 to 8 bytes, then the CPU addresses 8 bytes 8 and also 8 bytes starting at the address 16, then mask the bytes which you wanted, on the other hand, if you start with 8 addresses of 8 bytes, then only one fetch is required. . Some CPUs will not even load such misspellings - they will raise an exception (or will silently load the wrong data!).
Comments
Post a Comment