in analysis/GreenSKU-Framework/src/carbon_model.py [0:0]
def index_memory_data(memory_type: str, memory_frequency: Union[int, str], memory_size: int,
data_source: str="data_sources") -> Dict[str, Any]:
"""Index the memory data for a given memory type, frequency, and size.
Args:
memory_type: The memory type.
memory_frequency: The memory frequency.
memory_size: The memory size.
data_source: The directory containing the memory data.
Returns:
A dictionary containing the memory data.
"""
memory_data = read_yaml(join_path(data_source, 'DRAM.yaml'))
if isinstance(memory_frequency, int):
memory_frequency = str(memory_frequency)
memory_frequency = memory_frequency + 'MHz'
data = None
if memory_type in memory_data:
memory_type_data = memory_data[memory_type]
for freq_item in memory_type_data['frequencies']:
if freq_item['frequency'] != memory_frequency:
continue
sizes = freq_item['sizes']
for size_item in sizes:
if size_item['size'] != memory_size:
continue
data = size_item
data['spec_derates'] = memory_type_data['spec_derates']
if 'carbon' not in data:
data['carbon'] = 0.0
return data
raise ValueError(f'Memory data not found for {memory_type} {memory_frequency} {memory_size}')