1 tony 1.1 // ===================================================================
2 // Title: Device Memory 2.8
3 // Filename: Device28_Memory.mof
4 // Version: 2.8
5 // Release: Preliminary
6 // Date: 08/22/2003
7 // ===================================================================
8 // Copyright 1998-2003 Distributed Management Task Force, Inc. (DMTF).
9 // All rights reserved.
10 // DMTF is a not-for-profit association of industry members dedicated
11 // to promoting enterprise and systems management and interoperability.
12 // DMTF specifications and documents may be reproduced for uses
13 // consistent with this purpose by members and non-members,
14 // provided that correct attribution is given.
15 // As DMTF specifications may be revised from time to time,
16 // the particular version and release date should always be noted.
17 //
18 // Implementation of certain elements of this standard or proposed
19 // standard may be subject to third party patent rights, including
20 // provisional patent rights (herein "patent rights"). DMTF makes
21 // no representations to users of the standard as to the existence
22 tony 1.1 // of such rights, and is not responsible to recognize, disclose, or
23 // identify any or all such third party patent right, owners or
24 // claimants, nor for any incomplete or inaccurate identification or
25 // disclosure of such rights, owners or claimants. DMTF shall have no
26 // liability to any party, in any manner or circumstance, under any
27 // legal theory whatsoever, for failure to recognize, disclose, or
28 // identify any such third party patent rights, or for such party's
29 // reliance on the standard or incorporation thereof in its product,
30 // protocols or testing procedures. DMTF shall have no liability to
31 // any party implementing such standard, whether such implementation
32 // is foreseeable or not, nor to any patent owner or claimant, and shall
33 // have no liability or responsibility for costs or losses incurred if
34 // a standard is withdrawn or modified after publication, and shall be
35 // indemnified and held harmless by any party implementing the
36 // standard from any and all claims of infringement by a patent owner
37 // for such implementations.
38 //
39 // For information about patents held by third-parties which have
40 // notified the DMTF that, in their opinion, such patent may relate to
41 // or impact implementations of DMTF standards, visit
42 // http://www.dmtf.org/about/policies/disclosures.php.
43 tony 1.1 // ===================================================================
44 // Description: The Device Model extends the management concepts that
45 // are related to LogicalDevices. This file defines the
46 // concepts behind managing memory.
47 //
48 // The object classes below are listed in an order that
49 // avoids forward references. Required objects, defined
50 // by other working groups, are omitted.
51 // ==================================================================
52 // Change Log for v2.8 Preliminary
53 // CR941 - Deprecate CacheMemory, VolatileStorage and NonVolatileStorage
54 // Promote AssociatedMemory to LogicalELement
55 // Add AssociatedCacheMemory association
56 // Add Volatile parameter to Memory
57 // Promote BIOSLoadedInNV.Antecendent to CIM_Memory
58 // Deprecate CIM_ComputerSystemMemory
59 // CR1097 - Cleanup of CIM_MemoryError.ErrorAccess
60 //
61 // Change Log for v2.7
62 // CR622 - Fix the DMI mapping string to include the attribute number
63 // for Memory.ErrorInfo, .CorrectableError, .ErrorAccess,
64 tony 1.1 // .ErrorTransferSize, .ErrorData, .ErrorAddress,
65 // .ErrorResolution & .AdditionalErrorData,
66 // VolatileStorage.Cacheable & .CacheType,
67 // CacheMemory.Level, .WritePolicy, .CacheType, .LineSize,
68 // .ReplacementPolicy, .ReadPolicy, .FlushTimer, &
69 // .Associativity
70 // CR771 - Add the Composition qualifer to ComputerSystemMemory
71 // ==================================================================
72
73 #pragma locale ("en_US")
74
75
76 // ===================================================================
77 // Memory
78 // ===================================================================
79 [Version ("2.7.1000"), Description (
80 "Capabilities and management of Memory-related LogicalDevices.") ]
81 class CIM_Memory : CIM_StorageExtent {
82
83 [Experimental, Description (
84 "Volatile is a property that indicates whether this memory "
85 tony 1.1 "is volatile or not.") ]
86 boolean Volatile;
87
88 [Override ("ErrorMethodology"), Description (
89 "ErrorMethodology for Memory is a string property that "
90 "indicates whether parity or CRC algorithms, ECC or other "
91 "mechanisms are used. Details on the algorithm can also be "
92 "supplied."),
93 MappingStrings {"MIF.DMTF|Physical Memory Array|001.7"} ]
94 string ErrorMethodology;
95
96 [Description (
97 "The beginning address, referenced by an application or "
98 "operating system and mapped by a memory controller, for "
99 "this Memory object. The starting address is specified in "
100 "KBytes."),
101 Units ("KiloBytes"),
102 MappingStrings { "MIF.DMTF|Memory Array Mapped Addresses|001.3",
103 "MIF.DMTF|Memory Device Mapped Addresses|001.4"} ]
104 uint64 StartingAddress;
105
106 tony 1.1 [Description (
107 "The ending address, referenced by an application or "
108 "operating system and mapped by a memory controller, for "
109 "this Memory object. The ending address is specified in "
110 "KBytes."),
111 Units ("KiloBytes"),
112 MappingStrings { "MIF.DMTF|Memory Array Mapped Addresses|001.4",
113 "MIF.DMTF|Memory Device Mapped Addresses|001.5"} ]
114 uint64 EndingAddress;
115
116 [Deprecated {"CIM_MemoryError.ErrorInfo"}, Description (
117 "An integer enumeration describing the type of error that "
118 "occurred most recently. For example, single (value=6) or "
119 "double bit errors (7) can be specified using this "
120 "property. The values, 12-14, are undefined in the CIM "
121 "Schema since in DMI, they mix the semantics of the type of "
122 "error and whether it was correctable or not. The latter is "
123 "indicated in the property, CorrectableError."),
124 ValueMap {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10",
125 "11", "12", "13", "14"},
126 Values {"Other", "Unknown", "OK", "Bad Read", "Parity Error",
127 tony 1.1 "Single-Bit Error", "Double-Bit Error", "Multi-Bit Error",
128 "Nibble Error", "Checksum Error", "CRC Error", "Undefined",
129 "Undefined", "Undefined"},
130 MappingStrings {"MIF.DMTF|Memory Device|005.12",
131 "MIF.DMTF|Physical Memory Array|001.8"},
132 ModelCorrespondence {"CIM_Memory.OtherErrorDescription"} ]
133 uint16 ErrorInfo;
134
135 [Deprecated {"CIM_MemoryError.OtherErrorDescription"},
136 Description (
137 "Free form string providing more information if the Error "
138 "Type property is set to 1, \"Other\". If not set to 1, "
139 "this string has no meaning."),
140 ModelCorrespondence {"CIM_Memory.ErrorInfo"} ]
141 string OtherErrorDescription;
142
143 [Deprecated {"CIM_MemoryError.CorrectableError"}, Description (
144 "Boolean indicating that the most recent error was "
145 "correctable. If the ErrorInfo property is equal to 3, "
146 "\"OK\", then this property has no meaning."),
147 MappingStrings {"MIF.DMTF|Physical Memory Array|001.8"} ]
148 tony 1.1 boolean CorrectableError;
149
150 [Deprecated {"CIM_MemoryError.ErrorTime"}, Description (
151 "The time that the last memory error occurred. The type of "
152 "error is described by the ErrorInfo property. If the Error "
153 "Info property is equal to 3, \"OK\", then this property has "
154 "no meaning.") ]
155 datetime ErrorTime;
156
157 [Deprecated {"CIM_MemoryError.ErrorAccess"}, Description (
158 "An integer enumeration indicating the memory access "
159 "operation that caused the last error. The type of error is "
160 "described by the ErrorInfo property. If the ErrorInfo "
161 "property is equal to 3, \"OK\", then this property has no "
162 "meaning."),
163 ValueMap {"1", "2", "3", "4", "5"},
164 Values {"Other", "Unknown", "Read", "Write", "Partial Write"},
165 MappingStrings {"MIF.DMTF|Physical Memory Array|001.10"} ]
166 uint16 ErrorAccess;
167
168 [Deprecated {"CIM_MemoryError.ErrorTransferSize"}, Description (
169 tony 1.1 "The size of the data transfer in bits that caused the last "
170 "error. 0 indicates no error. If the ErrorInfo property is "
171 "equal to 3, \"OK\", then this property should be set to 0."),
172 Units ("Bits"),
173 MappingStrings {"MIF.DMTF|Physical Memory Array|001.11"} ]
174 uint32 ErrorTransferSize;
175
176 [Deprecated {"CIM_MemoryError.ErrorData"}, Description (
177 "Data captured during the last erroneous mebmory access. "
178 "The data occupies the first n octets of the array necessary "
179 "to hold the number of bits specified by the "
180 "ErrorTransferSize property. If ErrorTransferSize is 0, "
181 "then this property has no meaning."),
182 OctetString,
183 ArrayType ("Indexed"),
184 MappingStrings {"MIF.DMTF|Physical Memory Array|001.12"} ]
185 uint8 ErrorData[64];
186
187 [Deprecated {"CIM_MemoryError.ErrorDataOrder"}, Description (
188 "The ordering for data stored in the ErrorData property. "
189 "\"Least Significant Byte First\" (value=1) or \"Most "
190 tony 1.1 "Significant Byte First\" (2) can be specified. If "
191 "ErrorTransferSize is 0, then this property has no meaning."),
192 ValueMap {"0", "1", "2"},
193 Values {"Unknown", "Least Significant Byte First",
194 "Most Significant Byte First"} ]
195 uint16 ErrorDataOrder;
196
197 [Deprecated {"CIM_MemoryError.StartingAddress"}, Description (
198 "Specifies the address of the last memory error. The type "
199 "of error is described by the ErrorInfo property. If the "
200 "ErrorInfo property is equal to 3, \"OK\", then this "
201 "property has no meaning."),
202 MappingStrings {"MIF.DMTF|Memory Device|005.19",
203 "MIF.DMTF|Physical Memory Array|001.14"} ]
204 uint64 ErrorAddress;
205
206 [Deprecated {"CIM_MemoryError.SystemLevelAddress"}, Description (
207 "Boolean indicating whether the address information in the "
208 "property, ErrorAddress, is a system-level address (TRUE) or "
209 "a physical address (FALSE). If the ErrorInfo property is "
210 "equal to 3, \"OK\", then this property has no meaning.") ]
211 tony 1.1 boolean SystemLevelAddress;
212
213 [Deprecated {"CIM_MemoryError.ErrorResolution"}, Description (
214 "Specifies the range, in bytes, to which the last error can "
215 "be resolved. For example, if error addresses are resolved "
216 "to bit 11 (ie, on a typical page basis), then errors can be "
217 "resolved to 4K boundaries and this property is set to "
218 "4000. If the ErrorInfo property is equal to 3, \"OK\", "
219 "then this property has no meaning."),
220 Units ("Bytes"),
221 MappingStrings {"MIF.DMTF|Memory Device|005.21",
222 "MIF.DMTF|Physical Memory Array|001.15"} ]
223 uint64 ErrorResolution;
224
225 [Deprecated {"CIM_MemoryError.AdditionalErrorData"},
226 Description (
227 "An array of octets holding additional error information. "
228 "An example is ECC Syndrome or the return of the check bits "
229 "if a CRC-based ErrorMethodology is used. In the latter "
230 "case, if a single bit error is recognized and the CRC "
231 "algorithm is known, it is possible to determine the exact "
232 tony 1.1 "bit that failed. This type of data (ECC Syndrome, Check "
233 "Bit or Parity Bit data, or other vendor supplied "
234 "information) is included in this field. If the ErrorInfo "
235 "property is equal to 3, \"OK\", then AdditionalErrorData "
236 "has no meaning."),
237 OctetString,
238 MappingStrings { "MIF.DMTF|Memory Device|005.18",
239 "MIF.DMTF|Physical Memory Array|001.13"} ]
240 uint8 AdditionalErrorData[64];
241 };
242
243
244 // ===================================================================
245 // AssociatedMemory
246 // ===================================================================
247 [Association, Version ("2.7.1000"), Description (
248 "LogicalElements may have Memory installed on them or otherwise "
249 "associated with them - such as CacheMemory. This is made "
250 "explicit in this association.") ]
251 class CIM_AssociatedMemory : CIM_Dependency {
252
253 tony 1.1 [Override ("Antecedent"), Description (
254 "Memory installed on or associated with a Device.") ]
255 CIM_Memory REF Antecedent;
256
257 [Override ("Dependent"), Description (
258 "The LogicalElement.") ]
259 CIM_LogicalElement REF Dependent;
260 };
261
262
263 // ===================================================================
264 // MemoryError
265 // ===================================================================
266 [Experimental, Version ("2.7.1000"), Description (
267 "MemoryError defines a memory space that has errors. The Key "
268 "of the class is the StartingAddress of the bytes in error.") ]
269 class CIM_MemoryError : CIM_StorageError {
270
271 [Override ("StartingAddress"), Description (
272 "Specifies the address of the memory error. The type of "
273 "error is described by the ErrorInfo property. If the "
274 tony 1.1 "ErrorInfo property is equal to 3, \"OK\", then this "
275 "property has no meaning."),
276 MappingStrings {"MIF.DMTF|Memory Device|005.19",
277 "MIF.DMTF|Physical Memory Array|001.14"} ]
278 uint64 StartingAddress;
279
280 [Description (
281 "An integer enumeration describing the type of error that "
282 "occurred most recently. For example, single (value=6) or "
283 "double bit errors (7) can be specified using this "
284 "property. The values, 12-14, are undefined in the CIM "
285 "Schema since in DMI, they mix the semantics of the type of "
286 "error and whether it was correctable or not. The latter is "
287 "indicated in the property, CorrectableError."),
288 ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
289 "10"},
290 Values {"Unknown", "Other", "OK", "Bad Read", "Parity Error",
291 "Single-Bit Error", "Double-Bit Error", "Multi-Bit Error",
292 "Nibble Error", "Checksum Error", "CRC Error"},
293 MappingStrings {"MIF.DMTF|Memory Device|005.12",
294 "MIF.DMTF|Physical Memory Array|001.8"},
295 tony 1.1 ModelCorrespondence {"CIM_Memory.OtherErrorDescription"} ]
296 uint16 ErrorInfo;
297
298 [Description (
299 "Free form string providing more information if the Error "
300 "Type property is set to 1, \"Other\". If not set to 1, "
301 "this string has no meaning."),
302 ModelCorrespondence {"CIM_Memory.ErrorInfo"} ]
303 string OtherErrorDescription;
304
305 [Description (
306 "Boolean indicating that the most recent error was "
307 "correctable. If the ErrorInfo property is equal to 3, "
308 "\"OK\", then this property has no meaning."),
309 MappingStrings {"MIF.DMTF|Physical Memory Array|001.8"} ]
310 boolean CorrectableError;
311
312 [Description (
313 "The time that the last memory error occurred. The type of "
314 "error is described by the ErrorInfo property. If the Error "
315 "Info property is equal to 3, \"OK\", then this property has "
316 tony 1.1 "no meaning.") ]
317 datetime ErrorTime;
318
319 [Description (
320 "An integer enumeration indicating the memory access "
321 "operation that caused the last error. The type of error "
322 "MUST be described by the ErrorInfo property. If the "
323 "ErrorInfo property is equal to 3, \"OK\", then this "
324 "property has no meaning."),
325 ValueMap {"0", "1", "2", "3", "4"},
326 Values {"Unknown", "Other", "Read", "Write", "Partial Write"},
327 MappingStrings {"MIF.DMTF|Physical Memory Array|001.10"} ]
328 uint16 ErrorAccess;
329
330 [Description (
331 "The size of the data transfer in bits that caused the last "
332 "error. 0 indicates no error. If the ErrorInfo property is "
333 "equal to 3, \"OK\", then this property should be set to 0."),
334 Units ("Bits"),
335 MappingStrings {"MIF.DMTF|Physical Memory Array|001.11"} ]
336 uint32 ErrorTransferSize;
337 tony 1.1
338 [Description (
339 "Data captured during the last erroneous mebmory access. "
340 "The data occupies the first n octets of the array necessary "
341 "to hold the number of bits specified by the "
342 "ErrorTransferSize property. If ErrorTransferSize is 0, "
343 "then this property has no meaning."),
344 OctetString,
345 ArrayType ("Indexed"),
346 MappingStrings {"MIF.DMTF|Physical Memory Array|001.12"} ]
347 uint8 ErrorData[64];
348
349 [Description (
350 "The ordering for data stored in the ErrorData property. "
351 "\"Least Significant Byte First\" (value=1) or \"Most "
352 "Significant Byte First\" (2) can be specified. If "
353 "ErrorTransferSize is 0, then this property has no meaning."),
354 ValueMap {"0", "1", "2"},
355 Values {"Unknown", "Least Significant Byte First",
356 "Most Significant Byte First"} ]
357 uint16 ErrorDataOrder;
358 tony 1.1
359 [Description (
360 "Boolean indicating whether the address information in the "
361 "property, ErrorAddress, is a system-level address (TRUE) or "
362 "a physical address (FALSE). If the ErrorInfo property is "
363 "equal to 3, \"OK\", then this property has no meaning.") ]
364 boolean SystemLevelAddress;
365
366 [Description (
367 "Specifies the range, in bytes, to which the last error can "
368 "be resolved. For example, if error addresses are resolved "
369 "to bit 11 (ie, on a typical page basis), then errors can be "
370 "resolved to 4K boundaries and this property is set to "
371 "4000. If the ErrorInfo property is equal to 3, \"OK\", "
372 "then this property has no meaning."),
373 Units ("Bytes"),
374 MappingStrings {"MIF.DMTF|Memory Device|005.21",
375 "MIF.DMTF|Physical Memory Array|001.15"} ]
376 uint64 ErrorResolution;
377
378 [Description (
379 tony 1.1 "An array of octets holding additional error information. "
380 "An example is ECC Syndrome or the return of the check bits "
381 "if a CRC-based ErrorMethodology is used. In the latter "
382 "case, if a single bit error is recognized and the CRC "
383 "algorithm is known, it is possible to determine the exact "
384 "bit that failed. This type of data (ECC Syndrome, Check "
385 "Bit or Parity Bit data, or other vendor supplied "
386 "information) is included in this field. If the ErrorInfo "
387 "property is equal to 3, \"OK\", then AdditionalErrorData "
388 "has no meaning."),
389 OctetString,
390 MappingStrings { "MIF.DMTF|Memory Device|005.18",
391 "MIF.DMTF|Physical Memory Array|001.13"} ]
392 uint8 AdditionalErrorData[64];
393 };
394
395
396 // ===================================================================
397 // ComputerSystemMemory
398 // ===================================================================
399 [Association, Deprecated {"CIM_SystemDevice"}, Aggregation,
400 tony 1.1 Composition, Version ("2.7.1000"), Description (
401 "The use of this association has be deprecated in lieu of "
402 "SystemDevice. Association indicating that memory is installed "
403 "and required for the UnitaryComputerSystem to operate. Note "
404 "that this relationship inherits from the SystemDevice "
405 "association, and therefore, the Memory StorageExtent is weak "
406 "to the aggregating UnitaryComputerSystem.") ]
407 class CIM_ComputerSystemMemory : CIM_SystemDevice {
408
409 [Deprecated {"SystemDevice.GroupComponent"}, Aggregate,
410 Override ("GroupComponent"), Min (1), Max (1), Description (
411 "The UnitaryComputerSystem.") ]
412 CIM_UnitaryComputerSystem REF GroupComponent;
413
414 [Deprecated {"SystemDevice.PartComponent"},
415 Override ("PartComponent"), Description (
416 "The Memory StorageExtent which is part of the "
417 "UnitaryComputerSystem.") ]
418 CIM_Memory REF PartComponent;
419 };
420
421 tony 1.1
422 // ===================================================================
423 // AssociatedProcessorMemory
424 // ===================================================================
425 [Association, Version ("2.6.0"), Description (
426 "Associates the Processor and system Memory, or a Processor's "
427 "Cache.") ]
428 class CIM_AssociatedProcessorMemory : CIM_AssociatedMemory {
429
430 [Override ("Dependent"), Description (
431 "The Processor that accesses the Memory or uses the Cache.") ]
432 CIM_Processor REF Dependent;
433
434 [Description (
435 "Speed of the bus, in MHertz, between the Processor and "
436 "Memory."),
437 Units ("MegaHertz") ]
438 uint32 BusSpeed;
439 };
440
441 // ===================================================================
442 tony 1.1 // AssociatedCacheMemory
443 // ===================================================================
444 [Association, Experimental, Version ("2.7.1000"), Description (
445 "Indicates that the Memory provides Cache to the Dependent "
446 "Logical Element.") ]
447 class CIM_AssociatedCacheMemory : CIM_AssociatedMemory {
448
449 [Description (
450 "Defines whether this is the Primary (value=3), Secondary "
451 "(value=4) or Tertiary (value=5) Cache. Also, \"Other\" "
452 "(1), \"Unknown\" (0) and \"Not Applicable\" (2) can be "
453 "defined."),
454 ValueMap {"0", "1", "2", "3", "4", "5"},
455 Values {"Unknown", "Other", "Not Applicable", "Primary",
456 "Secondary", "Tertiary"},
457 MappingStrings {"MIF.DMTF|System Cache|006.2"},
458 ModelCorrespondence {
459 "CIM_AssociatedCacheMemory.OtherLevelDescription"} ]
460 uint16 Level;
461
462 [Description (
463 tony 1.1 "A string describing the cache level when the Level value is "
464 "1, \"Other\"."),
465 ModelCorrespondence {"CIM_AssociatedCacheMemory.Level"} ]
466 string OtherLevelDescription;
467
468 [Description (
469 "Defines whether this is write-back (value=2) or "
470 "write-through (value=3) Cache, or whether this information "
471 "\"Varies with Address\" (4) or is defined individually for "
472 "each I/O (5). Also, \"Other\" (1) and \"Unknown\" (0) can "
473 "be specified."),
474 ValueMap {"0", "1", "2", "3", "4", "5"},
475 Values {"Unknown", "Other", "Write Back", "Write Through",
476 "Varies with Address", "Determination Per I/O"},
477 MappingStrings {"MIF.DMTF|System Cache|006.5"},
478 ModelCorrespondence
479 {"CIM_AssociatedCacheMemory.OtherWritePolicyDescription"} ]
480 uint16 WritePolicy;
481
482 [Description (
483 "A string describing the Write Policy when the WritePolicy "
484 tony 1.1 "value is 1, \"Other\"."),
485 ModelCorrespondence {"CIM_AssociatedCacheMemory.WritePolicy"} ]
486 string OtherWritePolicyDescription;
487
488 [Description (
489 "Defines whether this is for instruction caching (value=2), "
490 "data caching (value=3) or both (value=4, \"Unified\"). "
491 "Also, \"Other\" (1) and \"Unknown\" (0) can be defined."),
492 ValueMap {"0", "1", "2", "3", "4"},
493 Values {"Unknown", "Other", "Instruction", "Data", "Unified"},
494 MappingStrings {"MIF.DMTF|System Cache|006.9"},
495 ModelCorrespondence
496 {"CIM_AssociatedCacheMemory.OtherCacheTypeDescription"} ]
497 uint16 CacheType;
498
499 [Description (
500 "A string describing the Cache Type when the CacheType value "
501 "is 1, \"Other\"."),
502 ModelCorrespondence {"CIM_AssociatedCacheMemory.CacheType"} ]
503 string OtherCacheTypeDescription;
504
505 tony 1.1 [Description (
506 "Size, in bytes, of a single cache bucket or line."),
507 Units ("Bytes"),
508 MappingStrings {"MIF.DMTF|System Cache|006.10"} ]
509 uint32 LineSize;
510
511 [Description (
512 "An integer enumeration describing the algorithm to "
513 "determine which cache lines or buckets should be re-used."),
514 ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8"},
515 Values {"Unknown", "Other", "Unknown",
516 "Least Recently Used (LRU)", "First In First Out (FIFO)",
517 "Last In First Out (LIFO)", "Least Frequently Used (LFU)",
518 "Most Frequently Used (MFU)",
519 "Data Dependent Multiple Algorithms"},
520 MappingStrings {"MIF.DMTF|System Cache|006.12"},
521 ModelCorrespondence
522 {"CIM_AssociatedCacheMemory.OtherReplacementPolicyDescription"} ]
523 uint16 ReplacementPolicy;
524
525 [Description (
526 tony 1.1 "A string describing the Cache replacement policy when the "
527 "ReplacementPolicy value is 1, \"Other\"."),
528 ModelCorrespondence
529 {"CIM_AssociatedCacheMemory.ReplacementPolicy"} ]
530 string OtherReplacementPolicyDescription;
531
532 [Description (
533 "Policy that shall be employed by the Cache for handling "
534 "read requests. For example, \"Read\", \"Read-Ahead\" or "
535 "both can be specified using the values, 2, 3 or 4, "
536 "respectively. If the read policy is determined "
537 "individually (ie, for each request), then the value 5 "
538 "(\"Determination per I/O\") should be specified. \"Other\" "
539 "(1) and \"Unknown\" (0) are also valid values."),
540 ValueMap {"0", "1", "2", "3", "4", "5"},
541 Values {"Unknown", "Other", "Read", "Read-Ahead",
542 "Read and Read-Ahead", "Determination Per I/O"},
543 MappingStrings {"MIF.DMTF|System Cache|006.13"},
544 ModelCorrespondence
545 {"CIM_AssociatedCacheMemory.OtherReadPolicyDescription"} ]
546 uint16 ReadPolicy;
547 tony 1.1
548 [Description (
549 "A string describing the read policy when the ReadPolicy "
550 "value is 1, \"Other\"."),
551 ModelCorrespondence {"CIM_AssociatedCacheMemory.ReadPolicy"} ]
552 string OtherReadPolicyDescription;
553
554 [Description (
555 "Maximum amount of time, in seconds, dirty lines or buckets "
556 "may remain in the Cache before they are flushed. A value "
557 "of zero indicated that a cache flush is not controlled by a "
558 "flushing timer."),
559 Units ("Seconds"),
560 MappingStrings {"MIF.DMTF|System Cache|006.14"} ]
561 uint32 FlushTimer;
562
563 [Description (
564 "An integer enumeration defining the system cache "
565 "associativity. For example, 5 indicates a fully "
566 "associative cache."),
567 ValueMap {"0", "1", "2", "3", "4", "5", "6", "7"},
568 tony 1.1 Values {"Unknown", "Other", "Direct Mapped",
569 "2-way Set-Associative", "4-way Set-Associative",
570 "Fully Associative", "8-way Set-Associative",
571 "16-way Set-Associative"},
572 MappingStrings {"MIF.DMTF|System Cache|006.15"},
573 ModelCorrespondence
574 {"CIM_AssociatedCacheMemory.OtherAssociativityDescription"} ]
575 uint16 Associativity;
576
577 [Description (
578 "A string describing the cache associativity when the "
579 "Associativity value is 1, \"Other\"."),
580 ModelCorrespondence {"CIM_AssociatedCacheMemory.Associativity"} ]
581 string OtherAssociativityDescription;
582 };
583
584
585 // ===================================================================
586 // NonVolatileStorage
587 // ===================================================================
588 [Deprecated {"CIM_Memory"}, Version ("2.7.1000"), Description (
589 tony 1.1 "This class has been deprecated in favor of CIM_Memory with the "
590 "volatile parameter set to false. Capabilities and management "
591 "of NV Storage. Non-volatile memory natively includes flash "
592 "and ROM storage. In addition, NV memory can be BasedOn "
593 "VolatileStorage, if the volatile memory is backed by a "
594 "Battery. This scenario would be completely described by an "
595 "instance of the AssociatedBattery relationship, referencing "
596 "the NonVolatileStorage as the Dependent and the Battery as the "
597 "Antecedent, and an instance of the BasedOn relationship, "
598 "referencing the NonVolatileStorage as the Dependent and the "
599 "VolatileStorage as the Antecedent.") ]
600 class CIM_NonVolatileStorage : CIM_Memory {
601
602 [Deprecated {"CIM_Memory.Access"}, Description (
603 "Indicating that the NV storage is writeable.") ]
604 boolean IsWriteable;
605
606 [Deprecated {"no value"}, Description (
607 "Boolean indicating that at least some portion of the "
608 "NonVolatileStorage is writeable by applications.") ]
609 boolean ApplicationWriteable;
610 tony 1.1
611 [Deprecated {"no value"}, Description (
612 "When at least some portion of the NonVolatileStorage is "
613 "writeable (ApplicationWriteable property = TRUE), "
614 "StartAddress forApplcationWrite indicates the starting "
615 "address for application data. If the ApplicationWriteable "
616 "property is FALSE, this property is undefined."),
617 ModelCorrespondence {
618 "CIM_NonVolatileStorage.ApplicationWriteable"} ]
619 uint64 StartAddressForApplicationWrite;
620
621 [Deprecated {"no value"}, Description (
622 "When at least some portion of the NonVolatileStorage is "
623 "writeable (ApplicationWriteable property = TRUE), "
624 "Application WritableSize indicates the number of bits "
625 "available for application data. If the "
626 "ApplicationWriteable property is FALSE, this property is "
627 "undefined."),
628 Units ("Bits"),
629 ModelCorrespondence {
630 "CIM_NonVolatileStorage.ApplicationWriteable"} ]
631 tony 1.1 uint64 ApplicationWriteableSize;
632 };
633
634 // ===================================================================
635 // BIOSLoadedInNV
636 // ===================================================================
637 [Association, Version ("2.7.1000"), Description (
638 "A link between BIOSElement and Memory where the BIOS is "
639 "loaded.") ]
640 class CIM_BIOSLoadedInNV : CIM_Dependency {
641
642 [Override ("Antecedent"), Description (
643 "The memory storage.") ]
644 CIM_Memory REF Antecedent;
645
646 [Override ("Dependent"), Description (
647 "The BIOS stored in the memory.") ]
648 CIM_BIOSElement REF Dependent;
649
650 [Description (
651 "The starting address where the BIOS is located in "
652 tony 1.1 "non-volatile storage.") ]
653 uint64 StartingAddress;
654
655 [Description (
656 "The ending address where the BIOS is located in "
657 "non-volatile storage.") ]
658 uint64 EndingAddress;
659 };
660
661
662
663 // ===================================================================
664 // VolatileStorage
665 // ===================================================================
666 [Deprecated {"CIM_Memory"}, Version ("2.7.1000"), Description (
667 "Capabilities and management of Volatile Storage.") ]
668 class CIM_VolatileStorage : CIM_Memory {
669
670 [Deprecated {"CIM_AssociatedCacheMemory"}, Description (
671 "Indicates whether this Memory can be cached or not."),
672 MappingStrings {"MIF.DMTF|System Resource Memory Info|002.5"} ]
673 tony 1.1 boolean Cacheable;
674
675 [Deprecated {"CIM_AssociatedCacheMemory.WritePolicy"},
676 Description (
677 "An enumeration indicating the cache type that is compatible "
678 "with this Memory. For example, 4 indicates write-through "
679 "cache. If the Cacheable property is set to false, then "
680 "this property does not have meaning and should be set to 5, "
681 "\"Not Applicable\"."),
682 ValueMap {"1", "2", "3", "4", "5"},
683 Values {"Other", "Unknown", "Write-Back", "Write-Through",
684 "Not Applicable"},
685 MappingStrings {"MIF.DMTF|System Resource Memory Info|002.6"} ]
686 uint16 CacheType;
687 };
688
689
690 // ===================================================================
691 // CacheMemory
692 // ===================================================================
693 [Deprecated {"CIM_AssociatedCacheMemory"}, Version ("2.7.1000"),
694 tony 1.1 Description (
695 "Capabilities and management of Cache Memory. Cache memory is "
696 "dedicated or allocated RAM that a Processor searches first for "
697 "data, before going to 'regular' memory. CacheMemory is used "
698 "to speed up the delivery of data to a Processor. It is "
699 "usually described by its closeness to the Processor (for "
700 "example, Primary or Secondary Cache).\n"
701 "If a DiskDrive includes RAM allocated for holding the disk's "
702 "most recently read and/or adjacent data (in order to speed up "
703 "retrieval), this also would be modeled as CacheMemory. Note "
704 "that CacheMemory is NOT operating system or application level "
705 "buffers but actual RAM allocated for caching data for a "
706 "Processor, from a hard disk, etc.") ]
707 class CIM_CacheMemory : CIM_Memory {
708
709 [Deprecated {"CIM_AssociatedCacheMemory.Level"}, Description (
710 "Defines whether this is the Primary (value=3), Secondary "
711 "(value=4) or Tertiary (value=5) Cache. Also, \"Other\" "
712 "(1), \"Unknown\" (2) and \"Not Applicable\" (6) can be "
713 "defined."),
714 ValueMap {"1", "2", "3", "4", "5", "6"},
715 tony 1.1 Values {"Other", "Unknown", "Primary", "Secondary", "Tertiary",
716 "Not Applicable"},
717 MappingStrings {"MIF.DMTF|System Cache|006.2"} ]
718 uint16 Level;
719
720 [Deprecated {"CIM_AssociatedCacheMemory.WritePolicy"},
721 Description (
722 "Defines whether this is write-back (value=3) or "
723 "write-through (value=4) Cache, or whether this information "
724 "\"Varies with Address\" (5) or is defined individually for "
725 "each I/O (6). Also, \"Other\" (1) and \"Unknown\" (2) can "
726 "be specified."),
727 ValueMap {"1", "2", "3", "4", "5", "6"},
728 Values {"Other", "Unknown", "Write Back", "Write Through",
729 "Varies with Address", "Determination Per I/O"},
730 MappingStrings {"MIF.DMTF|System Cache|006.5"} ]
731 uint16 WritePolicy;
732
733 [Deprecated {"CIM_AssociatedCacheMemory.CacheType"},
734 Description (
735 "Defines whether this is for instruction caching (value=3), "
736 tony 1.1 "data caching (value=4) or both (value=5, \"Unified\"). "
737 "Also, \"Other\" (1) and \"Unknown\" (2) can be defined."),
738 ValueMap {"1", "2", "3", "4", "5"},
739 Values {"Other", "Unknown", "Instruction", "Data", "Unified"},
740 MappingStrings {"MIF.DMTF|System Cache|006.9"} ]
741 uint16 CacheType;
742
743 [Deprecated {"CIM_AssociatedCacheMemory.LineSize"}, Description (
744 "Size, in bytes, of a single cache bucket or line."),
745 Units ("Bytes"),
746 MappingStrings {"MIF.DMTF|System Cache|006.10"} ]
747 uint32 LineSize;
748
749 [Deprecated {"CIM_AssociatedCacheMemory.ReplacementPolicy"},
750 Description (
751 "An integer enumeration describing the algorithm to "
752 "determine which cache lines or buckets should be re-used."),
753 ValueMap {"1", "2", "3", "4", "5", "6", "7", "8"},
754 Values {"Other", "Unknown", "Least Recently Used (LRU)",
755 "First In First Out (FIFO)", "Last In First Out (LIFO)",
756 "Least Frequently Used (LFU)", "Most Frequently Used (MFU)",
757 tony 1.1 "Data Dependent Multiple Algorithms"},
758 MappingStrings {"MIF.DMTF|System Cache|006.12"} ]
759 uint16 ReplacementPolicy;
760
761 [Deprecated {"CIM_AssociatedCacheMemory.ReadPolicy"},
762 Description (
763 "Policy that shall be employed by the Cache for handling "
764 "read requests. For example, \"Read\", \"Read-Ahead\" or "
765 "both can be specified using the values, 3, 4 or 5, "
766 "respectively. If the read policy is determined "
767 "individually (ie, for each request), then the value 6 "
768 "(\"Determination per I/O\") should be specified. \"Other\" "
769 "(1) and \"Unknown\" (2) are also valid values."),
770 ValueMap {"1", "2", "3", "4", "5", "6"},
771 Values {"Other", "Unknown", "Read", "Read-Ahead",
772 "Read and Read-Ahead", "Determination Per I/O"},
773 MappingStrings {"MIF.DMTF|System Cache|006.13"} ]
774 uint16 ReadPolicy;
775
776 [Deprecated {"CIM_AssociatedCacheMemory.FlushTimer"},
777 Description (
778 tony 1.1 "Maximum amount of time, in seconds, dirty lines or buckets "
779 "may remain in the Cache before they are flushed. A value "
780 "of zero indicated that a cache flush is not controlled by a "
781 "flushing timer."),
782 Units ("Seconds"),
783 MappingStrings {"MIF.DMTF|System Cache|006.14"} ]
784 uint32 FlushTimer;
785
786 [Deprecated {"CIM_AssociatedCacheMemory.Associativity"},
787 Description (
788 "An integer enumeration defining the system cache "
789 "associativity. For example, 6 indicates a fully "
790 "associative cache."),
791 ValueMap {"1", "2", "3", "4", "5", "6", "7", "8"},
792 Values {"Other", "Unknown", "Direct Mapped",
793 "2-way Set-Associative", "4-way Set-Associative",
794 "Fully Associative", "8-way Set-Associative",
795 "16-way Set-Associative"},
796 MappingStrings {"MIF.DMTF|System Cache|006.15"} ]
797 uint16 Associativity;
798 };
799 tony 1.1
800 // ===================================================================
801 // end of file
802 // ===================================================================
|