
IBM2520L8767
IBM Processor for ATM Resources
atmrm.chapt04.01
08/27/99
ATM Virtual Memory Logic (VIMEM)
Page 153 of 553
Entity 6: ATM Virtual Memory Logic (VIMEM)
This entity is responsible for adjustment of all addresses provided to the memory control entities. All
addresses can be categorized into three distinct types, based entirely upon the location of the requested
address with respect to the three base registers defined in this entity. The three types of addresses will be
referred to as control, real packet, and virtual packet addresses. All memory requests arriving on the control
memory bus are handled as control memory accesses, and simply have the contents of the control memory
base register subtracted from them before being passed on to the control memory entity. When the processor
accesses memory, the cache controller compares the requested address to the real packet memory base
register and if the address is less than the base register, the request is routed to the control memory bus, else
it is routed to the packet memory bus. All requests arriving on the packet memory bus are compared to the
virtual memory base address register. If the address of the request is less than the base register, the contents
of the real packet memory base register are subtracted from the address and this address is passed on to the
packet memory control entity. If the requested address is greater than or equal to the base register, a more
complex, but flexible scheme is used to determine the real address to provide to the packet memory control
entity. For a detailed explanation of the virtual address generation scheme refer to
Virtual Memory Overview
on page 197 and the accompanying figures.
6.1: VIMEM Virtual Memory Base Address
This register defines the starting address of the virtual address space used to manage incoming and outgoing
frames. Any time an access is made to virtual memory, that falls within the defined bounds of virtual memory,
the contents of this register are subtracted from the virtual address to derive the true offset into virtual mem-
ory. This true offset, along with the known length of all virtual buffers, allows the index of the specific virtual
buffer to be derived by the virtual memory access hardware. This index can then be used to access the real
buffer map associated with this virtual buffer.
Length
32 bits
Type
Read/Write
Address
XXXX 0D10
Power On Value
X’0040 0000’
Restrictions
The start of virtual address space must begin on a 128-KB boundary. For this rea-
son, the lowest 17 bits of this register are forced to zero and are not implemented.
Writes of any value to the low 17 bits of this register will be ignored, and a read will
always return zero for the low 17 bits.
Base Address of Virtual Memory
128KB Boundary Restriction - Not Implemented
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
9
8
7
6
5
4
3
2
1
0
Bit(s)
Description
31-17
These bits contain the upper 15 bits of the base address of virtual memory.
16-0
These bits will be forced to zero because the virtual memory base address must start on a 128K byte boundary.