Do most modern CPUs have an MMU? How can you find out if a CPU has one or not?
All x86 architecture processors since the 80286 (both intel and AMD, and certainly including the 64-bit flavors) have an MMU, and no desktop operating system in common usage attempts to disable its use. The MMU is effectively required in order to implement virtual memory and process isolation as provided by all desktop operating systems.
There are processors used for embedded systems (and sometimes game consoles and other set-top boxes) that lack an MMU.
Yes, most modern CPUs have an MMU (see this Wikipedia article covering different CPU types)
All modern CPUs used in "normal" computers (i.e. desktops, notebooks and servers) have a MMU - as a matter of fact, all modern operating systems (the NT line of MS Windows, Mac OS X, Linux, *BSD, Solaris) require a MMU, because things like memory protection and virtual memory rely on it. So if it's a desktop/laptop running something newer than Windows 98, it definitely has an MMU.
Things are different in areas other than "normal" desktop and server computers (e.g. embedded systems, realtime systems, mainframes, microcontrollers...). There, processors without an MMU are quite common, and some systems use different mechanisms for memory protection and memory access - mechanisms which may not rely on a MMU.
tl;dr: If your computer runs Windows (XP or later), Linux, or Mac OS X, it has a MMU.
Try downloading CPU-Z and having a look there.
What I believe is that all the new AMD and INTEL CPUs have inbuilt memory controllers:
- INTEL CORE i7, i5, i3, Xeon
- AMD PHENOM & PHENOM II
I'm not sure... but here's where I'd start: First, download Speccy, the system information tool, which shows the exact name of the processor on the system. Then, I'd search for that model on the manufacturer's website (Intel, etc.).
@OSX Jedi, good question by the way. I spent a bit more time wresltling with this, and no obvious answer was to be found on the usual sites (Google, Wikipedia, etc.). Good fodder for our local SuperUser experts!
All modern processors have a Memory Management Unit (MMU). There is no such thing as "enabling" or "disabling" MMU. When computer boots, page table is empty, and that is equivalent to MMU not existing at all. MMU comes into action when operating system kernel defines entries in its page table.
If you boot with operating system which does not use MMU, it will be the same as MMU does not exist at all, so it does not make sense to "disable" MMU.
Even if MMU is somehow disabled or does not exist, any modern operating system (MS Windows, MacOS, any Linux...) will not boot at all because it will mandatory try to use MMU.