Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Do most modern CPUs have an MMU? How can you find out if a CPU has one or not?

share|improve this question

6 Answers 6

up vote 5 down vote accepted

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.

share|improve this answer

Yes, most modern CPUs have an MMU (see this Wikipedia article covering different CPU types)

share|improve this answer

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.

share|improve this answer
    
An MMU is not required for memory protection (a memory protection unit would suffice) and many Real Time OSes do not use virtual memory. –  Paul A. Clayton Oct 20 '14 at 12:15
    
@PaulA.Clayton: True. However, AFAIK, all common modern OSes use the MMU to implement memory protection, so these OSes do need an MMU for memory protection. Anyway, thanks for the information; I edited my answer to clarify. –  sleske Oct 20 '14 at 12:51
    
uCLinux and FreeRTOS (and presumably at least some commercial RTOSes) support MPUs (I don't know if these would count as "common"; the really tiny systems probably avoid MPUs and the moderately large systems may use full MMUs [an MPU may also be used only to protect privileged from unprivileged code]). (The main distinction between an MPU and an MMU is that an MMU includes support for address translation, though sometimes "MMU" is used to include MPUs.) The edit is decent (I already upvoted, and i don't appreciate this enough for a bounty). –  Paul A. Clayton Oct 20 '14 at 19:23

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

http://www.cpuid.com/softwares/cpu-z.html

share|improve this answer
1  
A MMU is not a memory controller. –  Ignacio Vazquez-Abrams Mar 3 '11 at 23:14
    
my bad, misread the question –  Sandeep Bansal Mar 3 '11 at 23:25

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!

share|improve this answer
    
@chunkyb2002 above cites a Wikipedia article, but I was not convinced that this question was thoroughly answered there at all, at least as of 3Mar2011. –  drapkin11 Mar 5 '11 at 22:26

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.

share|improve this answer
    
ARM M profile and R profile processors do not support MMUs (they do allow, but not require, a memory protection unit to be implemented); these certainly include some "modern processors". UCLinux is a "modern operating system" that does not require an MMU and Real Time OSes generally do not require MMUs. –  Paul A. Clayton Oct 20 '14 at 12:12

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.