source: rtems/doc/supplements/powerpc/cpumodel.texi @ 9aceddaf

4.104.114.84.95
Last change on this file since 9aceddaf was 9aceddaf, checked in by Joel Sherrill <joel.sherrill@…>, on 02/11/98 at 14:50:31

updates

  • Property mode set to 100644
File size: 9.7 KB
Line 
1@c
2@c  COPYRIGHT (c) 1988-1998.
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 CPU Model Dependent Features, CPU Model Dependent Features Introduction, Preface, Top
11@end ifinfo
12@chapter CPU Model Dependent Features
13@ifinfo
14@menu
15* CPU Model Dependent Features Introduction::
16* CPU Model Dependent Features CPU Model Feature Flags::
17@end menu
18@end ifinfo
19
20@ifinfo
21@node CPU Model Dependent Features Introduction, CPU Model Dependent Features CPU Model Feature Flags, CPU Model Dependent Features, CPU Model Dependent Features
22@end ifinfo
23@section Introduction
24
25Microprocessors are generally classified into
26families with a variety of CPU models or implementations within
27that family.  Within a processor family, there is a high level
28of binary compatibility.  This family may be based on either an
29architectural specification or on maintaining compatibility with
30a popular processor.  Recent microprocessor families such as the
31PowerPC, SPARC, and PA-RISC are based on an architectural specification
32which is independent or any particular CPU model or
33implementation.  Older families such as the M68xxx and the iX86
34evolved as the manufacturer strived to produce higher
35performance processor models which maintained binary
36compatibility with older models.
37
38RTEMS takes advantage of the similarity of the
39various models within a CPU family.  Although the models do vary
40in significant ways, the high level of compatibility makes it
41possible to share the bulk of the CPU dependent executive code
42across the entire family.
43
44@ifinfo
45@node CPU Model Dependent Features CPU Model Feature Flags, CPU Model Dependent Features CPU Model Name, CPU Model Dependent Features Introduction, CPU Model Dependent Features
46@end ifinfo
47@section CPU Model Feature Flags
48@ifinfo
49@menu
50* CPU Model Dependent Features CPU Model Name::
51* CPU Model Dependent Features Floating Point Unit::
52* CPU Model Dependent Features Alignment::
53* CPU Model Dependent Features Cache Alignment::
54* CPU Model Dependent Features Maximum Interrupts::
55* CPU Model Dependent Features Has Double Precision Floating Point::
56* CPU Model Dependent Features Critical Interrupts::
57* CPU Model Dependent Features Use Multiword Load/Store Instructions::
58* CPU Model Dependent Features Instruction Cache Size::
59* CPU Model Dependent Features Data Cache Size::
60* CPU Model Dependent Features Debug Model::
61* CPU Model Dependent Features Low Power Model::
62@end menu
63@end ifinfo
64
65Each processor family supported by RTEMS has a
66list of features which vary between CPU models
67within a family.  For example, the most common model dependent
68feature regardless of CPU family is the presence or absence of a
69floating point unit or coprocessor.  When defining the list of
70features present on a particular CPU model, one simply notes
71that floating point hardware is or is not present and defines a
72single constant appropriately.  Conditional compilation is
73utilized to include the appropriate source code for this CPU
74model's feature set.  It is important to note that this means
75that RTEMS is thus compiled using the appropriate feature set
76and compilation flags optimal for this CPU model used.  The
77alternative would be to generate a binary which would execute on
78all family members using only the features which were always
79present.
80
81This section presents the set of features which vary
82across PowerPC implementations and are of importance to RTEMS.
83The set of CPU model feature macros are defined in the file
84c/src/exec/score/cpu/ppc/ppc.h based upon the particular CPU
85model defined on the compilation command line.
86
87@ifinfo
88@node CPU Model Dependent Features CPU Model Name, CPU Model Dependent Features Floating Point Unit, CPU Model Dependent Features CPU Model Feature Flags, CPU Model Dependent Features CPU Model Feature Flags
89@end ifinfo
90@subsection CPU Model Name
91
92The macro CPU_MODEL_NAME is a string which designates
93the name of this CPU model.  For example, for the PowerPC 603e
94model, this macro is set to the string "PowerPC 603e".
95
96@ifinfo
97@node CPU Model Dependent Features Floating Point Unit, CPU Model Dependent Features Alignment, CPU Model Dependent Features CPU Model Name, CPU Model Dependent Features CPU Model Feature Flags
98@end ifinfo
99@subsection Floating Point Unit
100
101The macro PPC_HAS_FPU is set to 1 to indicate that this CPU model
102has a hardware floating point unit and 0 otherwise.
103
104@ifinfo
105@node CPU Model Dependent Features Alignment, CPU Model Dependent Features Cache Alignment, CPU Model Dependent Features Floating Point Unit, CPU Model Dependent Features CPU Model Feature Flags
106@end ifinfo
107@subsection Alignment
108
109The macro PPC_ALIGNMENT is set to the PowerPC model's worst case alignment
110requirement for data types on a byte boundary.  This value is used
111to derive the alignment restrictions for memory allocated from
112regions and partitions.
113
114@ifinfo
115@node CPU Model Dependent Features Cache Alignment, CPU Model Dependent Features Maximum Interrupts, CPU Model Dependent Features Alignment, CPU Model Dependent Features CPU Model Feature Flags
116@end ifinfo
117@subsection Cache Alignment
118
119The macro PPC_CACHE_ALIGNMENT is set to the line size of the cache.  It is
120used to align the entry point of critical routines so that as much code
121as possible can be retrieved with the initial read into cache.  This
122is done for the interrupt handler as well as the context switch routines.
123
124In addition, the "shortcut" data structure used by the PowerPC implementation
125to ease access to data elements frequently accessed by RTEMS routines
126implemented in assembly language is aligned using this value.
127
128@ifinfo
129@node CPU Model Dependent Features Maximum Interrupts, CPU Model Dependent Features Has Double Precision Floating Point, CPU Model Dependent Features Cache Alignment, CPU Model Dependent Features CPU Model Feature Flags
130@end ifinfo
131@subsection Maximum Interrupts
132
133The macro PPC_INTERRUPT_MAX is set to the number of exception sources
134supported by this PowerPC model.
135
136@ifinfo
137@node CPU Model Dependent Features Has Double Precision Floating Point, CPU Model Dependent Features Critical Interrupts, CPU Model Dependent Features Maximum Interrupts, CPU Model Dependent Features CPU Model Feature Flags
138@end ifinfo
139@subsection Has Double Precision Floating Point
140
141The macro PPC_HAS_DOUBLE is set to 1 to indicate that the PowerPC model
142has support for double precision floating point numbers.  This is
143important because the floating point registers need only be four bytes
144wide (not eight) if double precision is not supported.
145
146@ifinfo
147@node CPU Model Dependent Features Critical Interrupts, CPU Model Dependent Features Use Multiword Load/Store Instructions, CPU Model Dependent Features Has Double Precision Floating Point, CPU Model Dependent Features CPU Model Feature Flags
148@end ifinfo
149@subsection Critical Interrupts
150
151The macro PPC_HAS_RFCI is set to 1 to indicate that the PowerPC model
152has the Critical Interrupt capability as defined by the IBM 403 models.
153
154@ifinfo
155@node CPU Model Dependent Features Use Multiword Load/Store Instructions, CPU Model Dependent Features Instruction Cache Size, CPU Model Dependent Features Critical Interrupts, CPU Model Dependent Features CPU Model Feature Flags
156@end ifinfo
157@subsection Use Multiword Load/Store Instructions
158
159The macro PPC_USE_MULTIPLE is set to 1 to indicate that multiword load and
160store instructions should be used to perform context switch operations.
161The relative efficiency of multiword load and store instructions versus
162an equivalent set of single word load and store instructions varies based
163upon the PowerPC model.
164
165@ifinfo
166@node CPU Model Dependent Features Instruction Cache Size, CPU Model Dependent Features Data Cache Size, CPU Model Dependent Features Use Multiword Load/Store Instructions, CPU Model Dependent Features CPU Model Feature Flags
167@end ifinfo
168@subsection Instruction Cache Size
169
170The macro PPC_I_CACHE is set to the size in bytes of the instruction cache.
171
172@ifinfo
173@node CPU Model Dependent Features Data Cache Size, CPU Model Dependent Features Debug Model, CPU Model Dependent Features Instruction Cache Size, CPU Model Dependent Features CPU Model Feature Flags
174@end ifinfo
175@subsection Data Cache Size
176
177The macro PPC_D_CACHE is set to the size in bytes of the data cache.
178
179@ifinfo
180@node CPU Model Dependent Features Debug Model, CPU Model Dependent Features Low Power Model, CPU Model Dependent Features Data Cache Size, CPU Model Dependent Features CPU Model Feature Flags
181@end ifinfo
182@subsection Debug Model
183
184The macro PPC_DEBUG_MODEL is set to indicate the debug support features
185present in this CPU model.  The following debug support feature sets
186are currently supported:
187
188@table @b
189
190@item @code{PPC_DEBUG_MODEL_STANDARD}
191indicates that the single-step trace enable (SE) and branch trace
192enable (BE) bits in the MSR are supported by this CPU model.
193
194@item @code{PPC_DEBUG_MODEL_SINGLE_STEP_ONLY}
195indicates that only the single-step trace enable (SE) bit in the MSR
196is supported by this CPU model.
197
198@item @code{PPC_DEBUG_MODEL_IBM4xx}
199indicates that the debug exception enable (DE) bit in the MSR is supported
200by this CPU model.  At this time, this particular debug feature set
201has only been seen in the IBM 4xx series.
202
203@end table
204
205@ifinfo
206@node CPU Model Dependent Features Low Power Model, Calling Conventions, CPU Model Dependent Features Debug Model, CPU Model Dependent Features CPU Model Feature Flags
207@end ifinfo
208@subsection Low Power Model
209
210The macro PPC_LOW_POWER_MODE is set to indicate the low power model
211supported by this CPU model.  The following low power modes are currently
212supported.
213
214@table @b
215
216@item @code{PPC_LOW_POWER_MODE_NONE}
217indicates that this CPU model has no low power mode support.
218
219@item @code{PPC_LOW_POWER_MODE_STANDARD}
220indicates that this CPU model follows the low power model defined for
221the PPC603e.
222
223@end table
Note: See TracBrowser for help on using the repository browser.