Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
(IJECET)
Volume 7, Issue 3, MayJune 2016, pp. 4652, Article ID: IJECET_07_03_006
Available online at
http://www.iaeme.com/IJECET/issues.asp?JType=IJECET&VType=7&IType=3
Journal Impact Factor (2016): 8.2691 (Calculated by GISI) www.jifactor.com
ISSN Print: 0976-6464 and ISSN Online: 0976-6472
IAEME Publication
http://www.iaeme.com/IJECET/index.asp
46
editor@iaeme.com
INTRODUCTION
A memory management unit (MMU), sometimes called (PMMU) paged memory
management unit. It is a computer hardware component for using accesses to memory
requested by the CPU. First performing the translation of virtual memory addresses to
physical addresses (i.e., virtual memory management), it is implemented as part of the
central processing unit, but it can also be in the form of a separate integrated circuit.
MMU is clearly performing the virtual memory management, bus arbitration, memory
protection, cache control and bank switchin.
ASIC VS FPGA
Table 1 PI ASIC versus PI FPGA
Processor Interface ASIC
DESIGN OF MMU
Memory Management Unit is implemented in RTAX-1000 FPGA. The design of
MMU is similar to that of the existing MA 31751 MMU chip [8]. The principal
function of memory management unit is to provide extended addressing to the
processor by means of address translation. The BPU of MA 31751 is not implemented
in the memory management unit design. The MMU module is designed only to
increase the memory addressing capability of the HX-1750 CPU.
The processor inputs the 16 bit Address (ADDR_VALID [15:0]) and the Address
State (AS [3:0]). The memory management unit performs address translation to output
the Physical Page Address which is referred to by Extended Address (EA [7:0]). The
extended 20 bit address is formed by the concatenation of EA [7:0] and the
ADDR_VALID [11:0] as shown in the figure 1.
http://www.iaeme.com/IJECET/index.asp
47
editor@iaeme.com
The main memory (SRAM) is divided in to 256 pages of size 4kB each.
Therefore, the MMU may have an array of registers which contain the physical page
addresses (PPA) of all the pages available within the memory.
The MMU decodes the incoming processor address to classify the command as
either an operation on Instruction registers or Operand registers.
PAGE REGISTERS
The main memory is divided into 256 pages of 4k words each. The MMU maps the
system memory into these 4k word pages. A page is a block of physical page memory
which is uniquely specified by the PPA [3]. A given address within any page is
specified by the least significant twelve bits of the CPU address bus. Each page
register is 8 bit wide and contains the physical page address of a page in the main
memory. A total of 512 page registers divided into two groups of 256 registers each,
one dedicated for Instruction memory space and one for Operand memory space.
The MMU is initialized to provide a linear, one to one mapping of the PPA when
system reset occurs. The CPU may change the mapping when it is in privileged
instruction mode using XIO commands 5100 to 52FF as defined in MIL-STD-1750.
Two register banks, one for instruction and one for operand are created. Each bank is
implemented as an 8 bit word array of length 256.
Write Operation
The processor data is written into the specified 8 bit register address (REG_ADDR).
Write operation into the file registers occurs during the rising edge of the IOWR
(write clock (W_CLK)) and when the write enable (WE) is high.
Read Operation
Two 256 to 1 MUX are placed one outside each set of page registers (instruction and
operand page registers). Depending on the selection lines (REG_ADDR), the
http://www.iaeme.com/IJECET/index.asp
48
editor@iaeme.com
multiplexer selects the content of required page register and relays it to the 2 to 1
multiplexer as show in figure 2. The 2 to 1 MUX selects between the signals
EA_INSTRUCTION and EA_OPERAND depending upon the selection line
REG_ADDR to output MMU_DATA_OUT. The data for processor read is always
available on EA [7:0]. The MMU data for processor read is routed to the processor
data bus in the data bus routing module when the enable MMU_DATA_CS is
activated.
Translation
Two 256 to 1 multiplexers are placed one outside each set of page registers
(instruction and operand page registers). Depending on the selection lines
(TRANS_ADR), the multiplexer selects the contents of required page register and
relays it to the 2 to 1 multiplexer. TRANS_ADR to the multiplexer is formed by the
concatenation of AS [3:0] and ADDR_VALID [3:0]. MMU_TRANS_PORT always
contains the contents of the register specified by TRANS_ADR.
MMU_TRANS_PORT is either EA_INSTRUCTION or EA_OPERAND depending
upon the bank which outputs MMU_TRANS_PORT.
The 2 to 1 multiplexer in the right hand corner [9]. Depending upon the value of
the selection line DI, either the EA_INSTRUCTION or the EA_OPERAND is
selected and relayed as the required EA [7:0] as an output of the memory management
unit module.
Identical to read, the translation operation is asynchronous. EA [7:0] is always
available outside the memory management unit module irrespective of any translation
enable. To make use of EA [7:0], the processor asserts the IOM signal to logic low.
The extended 20 bit address is formed by concatenation of EA [7:0] and the
ADDR_VALID [11:0].
http://www.iaeme.com/IJECET/index.asp
49
editor@iaeme.com
http://www.iaeme.com/IJECET/index.asp
50
editor@iaeme.com
Test case
http://www.iaeme.com/IJECET/index.asp
51
editor@iaeme.com
Future work can integrate the Block Protection Unit (BPU) for memory protection
into the design as with the case of the dedicated Memory Management Unit.
REFERENCES
[1]
[2]
[3]
[4]
K.C. Chang, Digital Design & Modeling with VHDL & Synthesis IEEE
Computer society press.
[5]
[6]
[7]
[8]
[9]
Operating system concepts, 4ed, A. Silberschatz and P.B Galvin, ISBN 0-20150480-4, 1994, Addison-Wesley.
[10]
[11]
[12]
Dhanya Pushkaran and Neethu Bhaskar, AES Encryption Engine for Many Core
Processor Arrays for Enhanced Security, International Journal of Electronics and
Communication Engineering & Technology, 5(12), 2014, pp. 106111.
http://www.iaeme.com/IJECET/index.asp
52
editor@iaeme.com