1. A memory management unit, comprising: multiple data segment descriptors, each data segment descriptor associated with a data memory segment; multiple program segment descriptors, each program segment descriptor associated with a program memory segment; and a controller, adapted to: receive a data access request comprising a data virtual address; select a first descriptor from the multiple data segment descriptors by comparing the data virtual address to a plurality of the multiple data segment descriptors; accept or deny the data access request based on the first descriptor; and replace the content of the multiple data segment descriptors and the multiple program segment descriptors in response to a task switch.