First of all, I'm no expert and the following is my wild interpretation of
the Principles of Operation, so if I'm wrong feel free to correct me :)
On Tue, Jan 29, 2008 at 01:40:25PM +0100, Maarten Slegtenhorst wrote:
...
> The first part of the address ( RFX, 11 bits ) is the index in the
> Region-First-Table of the entry that points to the beginning of the
> Region-Second-Table.
> So far so good! Everything crystal clear.
>
> Now the entry in Region-First-Table itself.
> Bits 0 - 51 plus 12 zeros is the address of the associated
> Region-Second-Table. Ok
> Bits 52 - 55 are not used in region tables. Ok
> Bits 56 - 57 : 0-3 * 4096 bytes is the length of the unused first part of the
> Region-Second-Table:
>
>- So Region tables are filled back to front in blocks of 4096 bytes ( 512
> entries )?
There are also bits 62-63 (Table Length). E.g., you could use TF=0, and TL=1
to have entries at the begining of the next level table, but not use the
entire table.
Either way, from what I can tell, the only thing that decides what part of
the next-level-table gets filled in is the R.X, SX.
In your example of 5 RS tables...suppose that you want the address
X'0011223344556677' to be valid; that means that...
That's same as:
0001 0001 0010 0010 0011 0011 0100 0100 0101 0101 0110 0110 0111 0111
RFX = B' 000' = X'0'
RSX = B'1 0001 0010 00' = X'448'
RTX = B'10 0011 0011 0' = X'466'
SX = B'100 0100 0101' = X'445'
PX = B'0101 0110' = X'56'
BX = B'0110 0111 0111' = X'677'
That means that in your region-first table, you have to have an entry at
offset 0 (I'm assuming that you want the ASCE to point to the region-first
table). This entry will point to the region-second table, where you have to
have an entry for X'448' (at byte offset 8768). This entry will point to the
region-third table where an entry must be for X'466'...and so for the
segment and page tables.
Here's my guess as to what the TF and TL fields are useful for...suppose
that your 5 region-second tables are near each other in the region-first
table, and the remainder of it is empty/invalid. Setting the TF and TL
fields in the ASCE to say "only this range of region-first entries should be
considered valid" could make translation of the address a bit quicker (less
storage references necessary - you'd know not to even try to check the
region-first table if the ASCE indicates that the RFX would fall outside of
the valid range).
> Am I correct that the maximum needed storage for all the
> tables is ~32 Petabyte?:
> --
...
> 2048^4 Page Tables
> 2048^4 * 256 entries of 8 bytes = 36.028.797.018.963.968 bytes
Addresses are 64 bits, since each page is 4KB (BX is 12 bits), there are
2^(64-12) pages in such a system. Each will need an entry of 8 bytes...
8 bytes * 2^(64-12) = 36.028.797.018.963.968 bytes
Yup, you're right.
Josef 'Jeff' Sipek.
--
Real Programmers consider "what you see is what you get" to be just as bad a
concept in Text Editors as it is in women. No, the Real Programmer wants a
"you asked for it, you got it" text editor -- complicated, cryptic,
powerful, unforgiving, dangerous.
--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html