source: rtems/doc/supplements/powerpc/memmodel.texi @ 563f7e0

4.104.114.84.95
Last change on this file since 563f7e0 was 563f7e0, checked in by Joel Sherrill <joel.sherrill@…>, on 07/01/97 at 18:39:44

New files -- PowerPC supplement is based on the SPARC supplement.
This version has had some initial work done to convert it to
be PowerPC specific.

  • Property mode set to 100644
File size: 3.9 KB
Line 
1@c
2@c  COPYRIGHT (c) 1988-1996.
3@c  On-Line Applications Research Corporation (OAR).
4@c  All rights reserved.
5@c
6@c  $Id$
7@c
8
9@ifinfo
10@node Memory Model, Memory Model Introduction, Calling Conventions User-Provided Routines, Top
11@end ifinfo
12@chapter Memory Model
13@ifinfo
14@menu
15* Memory Model Introduction::
16* Memory Model Flat Memory Model::
17@end menu
18@end ifinfo
19
20@ifinfo
21@node Memory Model Introduction, Memory Model Flat Memory Model, Memory Model, Memory Model
22@end ifinfo
23@section Introduction
24
25A processor may support any combination of memory
26models ranging from pure physical addressing to complex demand
27paged virtual memory systems.  RTEMS supports a flat memory
28model which ranges contiguously over the processor's allowable
29address space.  RTEMS does not support segmentation or virtual
30memory of any kind.  The appropriate memory model for RTEMS
31provided by the targeted processor and related characteristics
32of that model are described in this chapter.
33
34@ifinfo
35@node Memory Model Flat Memory Model, Interrupt Processing, Memory Model Introduction, Memory Model
36@end ifinfo
37@section Flat Memory Model
38
39The SPARC architecture supports a flat 32-bit address
40space with addresses ranging from 0x00000000 to 0xFFFFFFFF (4
41gigabytes).  Each address is represented by a 32-bit value and
42is byte addressable.  The address may be used to reference a
43single byte, half-word (2-bytes), word (4 bytes), or doubleword
44(8 bytes).  Memory accesses within this address space are
45performed in big endian fashion by the SPARC.  Memory accesses
46which are not properly aligned generate a "memory address not
47aligned" trap (type number 7).  The following table lists the
48alignment requirements for a variety of data accesses:
49
50@ifset use-ascii
51@example
52@group
53          +--------------+-----------------------+
54          |   Data Type  | Alignment Requirement |
55          +--------------+-----------------------+
56          |     byte     |          1            |
57          |   half-word  |          2            |
58          |     word     |          4            |
59          |  doubleword  |          8            |
60          +--------------+-----------------------+
61@end group
62@end example
63@end ifset
64
65@ifset use-tex
66@sp 1
67@tex
68\centerline{\vbox{\offinterlineskip\halign{
69\vrule\strut#&
70\hbox to 1.75in{\enskip\hfil#\hfil}&
71\vrule#&
72\hbox to 1.75in{\enskip\hfil#\hfil}&
73\vrule#\cr
74\noalign{\hrule}
75&\bf Data Type &&\bf Alignment Requirement&\cr\noalign{\hrule}
76&byte&&1&\cr\noalign{\hrule}
77&half-word&&2&\cr\noalign{\hrule}
78&word&&4&\cr\noalign{\hrule}
79&doubleword&&8&\cr\noalign{\hrule}
80}}\hfil}
81@end tex
82@end ifset
83 
84@ifset use-html
85@html
86<CENTER>
87  <TABLE COLS=2 WIDTH="60%" BORDER=2>
88<TR><TD ALIGN=center><STRONG>Data Type</STRONG></TD>
89    <TD ALIGN=center><STRONG>Alignment Requirement</STRONG></TD></TR>
90<TR><TD ALIGN=center>byte</TD>
91    <TD ALIGN=center>1</TD></TR>
92<TR><TD ALIGN=center>half-word</TD>
93    <TD ALIGN=center>2</TD></TR>
94<TR><TD ALIGN=center>word</TD>
95    <TD ALIGN=center>4</TD></TR>
96<TR><TD ALIGN=center>doubleword</TD>
97    <TD ALIGN=center>8</TD></TR>
98  </TABLE>
99</CENTER>
100@end html
101@end ifset
102
103Doubleword load and store operations must use a pair
104of registers as their source or destination.  This pair of
105registers must be an adjacent pair of registers with the first
106of the pair being even numbered.  For example, a valid
107destination for a doubleword load might be input registers 0 and
1081 (i0 and i1).  The pair i1 and i2 would be invalid.  [NOTE:
109Some assemblers for the SPARC do not generate an error if an odd
110numbered register is specified as the beginning register of the
111pair.  In this case, the assembler assumes that what the
112programmer meant was to use the even-odd pair which ends at the
113specified register.  This may or may not have been a correct
114assumption.]
115
116RTEMS does not support any SPARC Memory Management
117Units, therefore, virtual memory or segmentation systems
118involving the SPARC are not supported.
119
Note: See TracBrowser for help on using the repository browser.