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