问题
Since current x86_64 implementations are only capable of a forty eight bit "virtual" address space to reduce MMU complexity, could the top sixteen bits be used to implement security tag data. Do the current implementations restrict this (even know the IP and other segment registers are a full sixty four bits) usage and restrict the top sixteen bits of pointers to only contain virtual addresses and not other data?
回答1:
No, you cannot. The top 16 bits are currently required to all be the same (e.g, 0x0000…
or 0xffff…
) — addresses which do not fit this pattern will always cause a fault. Future revisions may have "real" address space in this range, so it's not safe to use these bits for tags.
来源:https://stackoverflow.com/questions/27751470/filling-x86-64-pointers-top-sixteen-bits-with-tag-data