4 ms·
Memory is allocated in pages, which are split in subpages, etc., then you throw at it heaps, queues, linked lists and so on. All of this structure doesn't exis
by slver 5y ago
Memory is allocated in pages, which are split in subpages, etc., then you throw at it heaps, queues, linked lists and so on.
All of this structure doesn't exist in the memory. So you need transactions at the page level which is too crude, or the byte level which is too granular.
Hardware is simply the wrong level to solve this problem at. Unless the hardware starts understanding how we use memory way, way, way, way better than it does right now.
- drivebycomment 5y agoYou have misunderstood what transactional memory is. Think of it as database transaction applied to memory operations. Like a database transaction makes a collection of read and write and computation based on those read and write appear atomic w.r.t other transactions and read/write, transactional memory generally aims to make a section of instructions to have transactional semantic for all load and store and other instructions in the transaction. Most transactional memory proposals are not page level granularity - though obviously most proposals have certain limits, and byte level being too granular doesn't even make any sense.