Physical or virtual addressing is used in processors x86/x86_64 for caching in the L1, L2 and L3?

The answer to your question is – it depends. That’s strictly a CPU design decision, which balances over the tradeoff between performance and complexity. Take for example recent Intel Core processors – they’re physically tagged and virtually indexed (at least according to http://www.realworldtech.com/sandy-bridge/7/). This means that the caches can only complete lookups in pure physical … Read more

Drawbacks of using /LARGEADDRESSAWARE for 32-bit Windows executables?

blindly applying the LargeAddressAware flag to your 32bit executable deploys a ticking time bomb! by setting this flag you are testifying to the OS: yes, my application (and all DLLs being loaded during runtime) can cope with memory addresses up to 4 GB. so don’t restrict the VAS for the process to 2 GB but … Read more

Understanding Virtual Address, Virtual Memory and Paging

Before I answer your questions (I hope I do), here are a few introductory remarks: Remarks The problem here is that “virtual memory” has two senses. “Virtual memory” as a technical term used by low-level programmers has (almost) nothing to do with “virtual memory” as explained to consumers. In the technical sense, “virtual memory” is … Read more

Is there any API for determining the physical address from virtual address in Linux?

Kernel and user space work with virtual addresses (also called linear addresses) that are mapped to physical addresses by the memory management hardware. This mapping is defined by page tables, set up by the operating system. DMA devices use bus addresses. On an i386 PC, bus addresses are the same as physical addresses, but other … Read more

tech