18.08.2013 Views

Level Epsilon Architecture Support Reference Manual

Level Epsilon Architecture Support Reference Manual

Level Epsilon Architecture Support Reference Manual

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Data Structure and Text<br />

Virtual Segments<br />

An unpaged virtual segment is a single actual segment; it cannot exceed 2**20-1 words<br />

in length. An IndexedCharDD can designate only the first 2**16 words of an unpaged<br />

segment.<br />

A paged virtual segment is represented by several actual segments: a page table and<br />

one or more pages. The page table contains an untouched or original DD for each page.<br />

Any unindexed DD for the segment has a special tag designated "paged" and refers to<br />

the page table. Any indexed DD for the segment designates an element of a particular<br />

page. The page DDs (the original DDs in the page table) are not marked paged, but the<br />

IndexedDDs designating elements in pages have a special tag.<br />

All pages are 2**13 words long, except the last page in a virtual segment, which must<br />

be shorter. If a paged virtual segment has a length equal to an integer multiple of 2**13,<br />

the processor requires that the page table have an additional last page with length equal<br />

to zero.<br />

The ASD for each page contains a reference to the original DD for that page; this<br />

reference is an IndexedSingleDD whose ASD_ref designates the page table and whose<br />

index is the page index. This back link from page to page table is essential for automatic<br />

page switching operations.<br />

In summary, a paged virtual segment is a two-layer structure; the DD for the whole<br />

segment specifies the page table, which contains a DD for each page. An unused page<br />

has an untouched DD; for each touched page, the DD refers to the defining ASD.<br />

MaxLen defines the maximum length of a paged virtual segment. This integer value<br />

varies by each processor type as follows:<br />

Processor Type Maximum Paged Virtual Segment<br />

Length<br />

Libra 680/780/880 (2**13) * (2**20 - 1) - 1<br />

Libra 4000 (2**27) - 1<br />

Libra 4100 (2**32) - 1<br />

Libra 4200/6200 (2**13) * (2**20 - 1) - 1<br />

MaxInx defines the largest integer value allowed for character indexing and iteration<br />

counts associated with pointer operations. MaxInx is defined as MaxLen * 12.<br />

3–10 6878 7530–007

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!