Questions tagged [mmu]

For programming the MMU hardware to implement paging or virtual addressing. Please give details of the MMU hardware. Use the tags 'paging' or 'virtual-memory' for use of an MMU as opposed to hardware programming.

Please provide some details of the particular MMU in questions.

The Memory Management Unit is the part of a processor responsible for translating virtual addresses to physical addresses. The MMU makes a number of features that are taken for granted on modern desktop OSes such as process separation and virtualization possible.

An MMU is often absent from deeply embedded systems and may not be used due to resource constraints as well as real time considerations. Some CPUs provide alternatives that allow a data cache to be used.Ref: ARM MPU

Related:

  • ; a cache of mmu table values.
  • - caches interact with the MMU depending on types (VIVT, PIPT, etc)
  • - issues related using the MMU to 'swap' memory to disk.
  • - issues with using virtual memory.
  • - some systems use the MMU to implement virtualization (especially without virtualization extensions in the CPU) and others MMUs provide assistance for the hypervisor.
262 questions
0
votes
1 answer

Jumping to-and fro between Kernel and user code in Linux

I am doing some kernel hacking on Linux running x86-64 for a research project. From a kernel routine I need to jump to a user mode code page and immediately return back to kernel code. In other words, I need to do a trampoline on user code while…
Arka
  • 955
  • 2
  • 12
  • 21
0
votes
1 answer

How are virtual addresses translated?

I understand that (for intel) the virtual address translation process is : 1. The incoming virtual address is divided into a page table number, a page number, and an offset. 2. The process desriptor base register (PDBR) in the CPU tells where the…
sudowoodo
  • 473
  • 4
  • 14
-1
votes
1 answer

how to calculate cache misses?

I got the following question: A and B are arrays of 4 integers (integer = 4 bytes = one word) on a computer that uses a cache with cache size of 64 Bytes, and with block size of one word. A starts in address 0 and B starts in address 16 Assume the…
tal
  • 103
  • 4
-1
votes
1 answer

How is it decided how much of virtual address space is mapped in page table?

I have read that Arm V7 ISA gives 4gig of virtual address space for a program. If i take a program in which all the code come within 4kilobyte, my question is whether entire 4gig of space is mapped in page table? I we take short descriptor format…
Gautam
  • 375
  • 2
  • 6
  • 23
-2
votes
1 answer

In C++, why am I finding heap memory accesses to be faster than stack acccesses

I've been playing around with a profiler in C++ and noticed something really weird: writing to the heap memory is somehow faster than stack memory?! Here's the snippet I ran #include // std::cout #include using namespace…
Joshua Segal
  • 541
  • 1
  • 7
  • 19
-2
votes
2 answers

Enforcing the type of medium on a Virtual Memory system

Suppose I'm designing a software application that requires high bandwidth / low latency memory transfers to operate properly. My OS uses Virtual Memory addressing. Is there a way to enforce the variables (that I choose) to be located in DDR and not…
shaiko
  • 159
  • 6
-9
votes
1 answer

What could the consequences be for bad initialisation of pointers in C++

THIS QUESTION HAS BEEN CLOSED BECAUSE IT DIDN'T SEEM A REAL QUESTION TO SOME PEOPLE I have updated the question body since then and may be it is a bit better now. However, I expect you all to suggest how I can improve this question as it is my job…
ha9u63a7
  • 6,233
  • 16
  • 73
  • 108
1 2 3
17
18