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