Translation Tables 
\Vhen 
the 
CPU 
attempts 
an 
access 
to 
a logical address whose 
translation 
is 
not 
resident in 
the 
TLB, 
an 
address 
translation 
cycle 
must 
be 
executed. 
This 
is  called a 
table 
walk. 
The 
table 
algorithms used for  address 
translation 
use segnlent 
and 
page tables, 
and 
user/supervisor 
root 
pointers. 
Two  levels 
of 
tables exist. 
The 
second  layer  is 
the 
Page 
table,  which  contains 
the 
physical 
addresses,  called  translations. 
The 
first  layer  is 
the 
Segment  table,  which  mainly  contains 
addresses of page tables.  32-bit logical  address 
are 
divided into 
three 
offsets. 
Separate 
tables 
can exist for  user 
and 
supervisor accesses. 
Root pointers are 
hardware 
registers 
that 
contain 
the 
upper 
20 
bits 
of 
the 
starting 
address of 
the 
segment table.  One 
pointer 
is  used for  supervisor mode, 
and 
one for  user. 
The 
segment 
table 
offset is 
concatenated 
with 
selected root pointer, 
creating 
the 
address of 
the 
segment 
table 
entry. 
The 
MMU performs a  memory cycle 
and 
reads from 
that 
address. 
Page 
table 
offset  is 
concatenated 
to 
the 
bottom 
of 
the 
data 
from 
the 
segment  table,  which 
create 
the 
address of 
the 
page 
table 
entry. 
The 
MMU reads 
this 
address from  memory.  Information 
returned 
is 
the 
address of 
the 
physical  page. 
This 
is 
the 
translation, 
and 
it 
is 
stored in 
the 
TLB 
for 
future 
reference. 
Translation Lookaside Buffer 
The 
TLB 
is 
a  cache  for  address translations.  When  a 
translation 
has 
been completed, 
it 
is 
stored in 
the 
TLB 
so 
that 
a  complete 
translation 
doesn't 
always  need 
to 
be 
done when 
that 
logical address is accessed again. 
The 
organization of 
the 
TLB 
is a direct 
mapped 
set associative 
cache. 
The 
depth 
of 
the 
TLB 
is 2K entries, 
with 
1K for  user 
and 
1K for  supervisor. 
Because 
the 
TLB 
stores 
data 
from main memory, any changes in 
the 
translation 
tables 
must 
be 
followed 
with 
either 
a  complete 
or 
selective purge of 
the 
TLB. 
The 
TLB 
must 
also 
be 
purged 
whenever 
the 
root pointers 
are 
changed. 
The 
Model 350 processor 
board 
automatically purges 
the 
entire 
TLB 
whenever 
either 
of 
the 
root pointers 
are 
written. 
Cache 
On 
the 
processor,  a  32 
Kbyte 
virtual 
cache  is  used  for 
data 
and 
instructions. 
It 
is 
a 
static 
lnemory 
array 
that 
is  fast enough 
to 
allow 
the 
CPU 
to 
read 
data 
in 
three 
clock states, 
or 
120 
ns. 
This 
cache 
is 
set-associative 
with 
a  set size  of one. 
When 
data 
is  coming into 
the 
cache, 
there 
is  exactly one place where 
it 
can 
be 
stored.  Cache 
is 
organized as 2048  lines of 
16 
bytes 
each.  Hit 
rate 
of this cache is 
about 
79%  because 
of 
this 
larger line size. 
Two 
banks 
of RAMs 
are 
used. 
The 
larger group is 
the 
cache 
data 
RAMs, where 
the 
actual 
data 
is  stored.  A smaller group is 
the 
cache key,  where 
the 
upper 
bits 
of 
the 
address 
are 
saved.  A 
cache 
entry 
consists of 
16 
bytes of 
data, 
along 
with 
18 
bits 
of key 
data 
and 
one valid bit. 
During a 
CPU 
read cycle, 
the 
address is 
compared 
to 
the 
address in 
the 
key  in 
the 
one location 
where 
that 
data 
could 
be 
stored. 
If 
the 
address matches, 
and 
the 
MMU is satisfied 
or 
shut 
off, 
the 
cache 
data 
memories drive 
the 
data 
directly 
to 
the 
CPU. 
If 
the 
cache misses, 
the 
associated 
hardware 
will 
start 
a 
bus 
cycle 
to 
read four long words, 
and 
fill  one line of 
the 
cache. 
Functional Description 
77