-
Notifications
You must be signed in to change notification settings - Fork 68
File Types
In HotSpot, there are a lot of file types. Some of these are used to input information to HotSpot itself, while others are used by HotSpot to save simulation results. By convention, we denote these different file types with different extensions. While not required (with one exception), we highly recommend you use these same extensions for consistency. Below are descriptions of each file type, along with their conventional extensions. Actual examples of each of these can be found in the examples directory.
The configuration file is the largest of HotSpot's files and is where most of HotSpot's options are specified. The format of each configuration option in the configuration file is the same as that of command line flags:
-<config_option> config_setting
In fact, you can specify any of the configuration options listed in the configuration file on the command line to have the command line option override the option specified by the configuration file. We won't go over every single option in the configuration file in detail, but here are the major sections and some of the commonly used options in each:
Here you can specify the thickness of the chip, which is only used in 2D simulations (i.e., when no layer configuration file is specified), and some of the chip's thermal properties. You can either specify the chip's material, in which case HotSpot will pull the material properties from the materials file, or you can specify the material properties individually. Note that these are only the default properties and may be overridden by either the layer configuration file or the floorplan file.
In this section you can specify the heat sink's thermal properties, convection resistance and capacitance, and its physical dimensions. The thermal properties are specified either by specifying the name of the material, in which case the material properties are pulled from the materials file, or by specifying the individual properties themselves. Note that heat sinks are included in every simulation. To effectively remove the heat sink, you can make its thermal conductivity very small.
In this section you can specify the heat spreader's thermal properties and physical dimensions. The thermal properties are specified either by specifying the name of the material, in which case the material properties are pulled from the materials file, or by specifying the individual properties themselves. Note that heat spreaders are included in every simulation. To effectively remove the heat spreader, you can make its thermal conductivity very small.
In this section you can specify the thermal interface material's (TIM) thermal properties and thickness. The thermal properties are specified either by specifying the name of the material, in which case the material properties are pulled from the materials file, or by specifying the individual properties themselves. Thermal interface material is included in 2D simulations (i.e., when a layer configuration file is not specified). To effectively remove the TIM, you can make its thermal conductivity very small.
By default, HotSpot assumes that the exterior edges of the chip are adiabatic and that heat can only escape through the heat sink or through microfluidic cooling (if used). Setting the -model_secondary option in this section tells HotSpot to also model several other heat flow paths. Thermal properties and physical dimensions can be specified in this section for each of the secondary heat flow paths. Note that currently, modeling both microfluidic cooling and secondary heat flow paths is not supported.
If using the grid model (explained in more detail in Simulation Options), the options in this section allow you to specify some important properties of HotSpot's simulation grid. The -grid_rows and -grid_cols options tell HotSpot what size the grid will be. Note that if using the RK4 solver, the number of rows and columns must be powers of 2. If microfluidic cooling is specified, these options also specify the size of the microchannel grid. The -grid_layer_file and -grid_steady_file allow you to specify the layer configuration file and grid steady file, respectively, which are covered in more detail below. Finally, the -grid_map_mode specifies how temperatures will be mapped from grid cells back to the original floorplan elements.
This section allows you to specify a variety of options to hotfloorplan, a thermal-aware floorplanning tool that uses HotSpot.
New to HotSpot 7.0, this section includes options for simulating microfluidic cooling. These options are only considered when the -use_microchannels option is set to 1 (for more details, see Simulation Options). The microfluidic cooling options include the pumping pressure, pump internal resistance (use 0 to model an ideal pump), the temperature of the coolant at the inlet, thermal properties for the coolant and for the channel walls, and the heat transfer coefficient (HTC) between the coolant and the channel walls. The thermal properties for the coolant and channel walls are specified either by specifying the name of the material, in which case the material properties are pulled from the materials file, or by specifying the individual properties themselves.
This section includes a variety of important options that don't fit into other categories: variety of input files; the ambient temperature; the time interval between power traces in the power trace file; whether or not to use Dynamic Thermal Management (DTM); whether the block or grid model is being used; whether or not to model leakage; and whether or not to use the detailed package model.
Layer configuration files are optional, but are necessary to simulate a design with multiple user-specified layers. Without a layer configuration file, HotSpot models a chip by default as having four layers: a user-specified layer described by the floorplan file, a thermal interface material (TIM) layer, a heat spreader layer, and a heat sink layer. With a layer configuration file, HotSpot models a chip by default having layers: all user-specified layers in the user-specified order, a heat spreader layer, a heat sink layer.
The actual syntax of a layer configuration file is to list each layer in order from the topmost layer (the layer adjacent to the heat spreader) to the bottommost layer (the layer farthest from the heat spreader). For each layer, the following information is required:
- Layer Number : The number that uniquely identifies this layer. The bottommost layer must have layer number 0 and, in general, the ith layer from the bottom must have layer number i-1.
-
Lateral Heat Flow : This specifies whether or not this layer will model heat transfer within the layer (i.e., whether or not lateral thermal resistances will be included in the thermal circuit for this layer). This option must be either
YorN. -
Power Dissipation : This specifies whether or not this layer dissipates power as heat. This option must be either
YorN. - Layer Material : This specifies the name of the material that this layer is made of. Each layer must have either this option or the next two options listed. If the layer material is listed, this layer's thermal properties are pulled from the materials file. If the layer material is not listed, the next two options specifying the layer's thermal properties must be given. Note that these thermal properties are only the default thermal properties for this layer and may be overridden by the layer's floorplan file.
- Volumetric Heat Capacity : The layer's default volumetric heat capacity, which may be overridden by the layer's floorplan file. This option may be omitted if a Layer Material is specified instead.
- Thermal Resistivity : The layer's default thermal resistivity, which may be overridden by the layer's floorplan file. This option may be omitted if a Layer Material is specified instead.
- Thickness : The layer's thickness.
-
Floorplan File : The floorplan file that describes the layout of this layer. If a microchannel geometry file (ending in
.csv) is specified here, then the layer will be treated as a microfluidic cooling layer. Otherwise, it will be treated as a normal layer. Note that this is the only instance of a file extension changing HotSpot's behavior.
The floorplan file is where you provide a list of the different parts of the chip that you're simulating and how they are laid out. We call each part of the chip that you specify in this file a "floorplan element". All floorplan elements in HotSpot are rectangular, so if you need to specify a floorplan element with another shape, you'll need to represent it using one or more rectangular floorplan elements. Each line of the floorplan element has one of the following syntax options:
<element_name> <width> <height> <left-x> <bottom-y>
<element_name> <width> <height> <left-x> <bottom-y> <VHC> <resistivity>
-
element_name: A user-defined name for the floorplan element. -
width: The width of the floorplan element in meters. -
height: The height of the floorplan element in meters. -
left-x: The x-coordinate of the left edge of the floorplan element. -
bottom-y: The y-coordinate of the bottom edge of the floorplan element. -
VHC: The volumetric heat capacity of this floorplan element in J/(m^3-K). This parameter is only available if the-detailed_3D onflag is used and, even then, is optional. -
resistivity: The thermal resistivity of the this floorplan element in (m-K)/W. This parameter is only available if the-detailed_3D onflag is used and, even then, is optional.
Also, note that when specifying coordinates for floorplan elements, (0, 0) is the bottom left corner of the chip. Each floorplan element will be a rectangle with its bottom left corner at (left-x, bottom-y) and its top right corner at (left-x + width, bottom-y + height).
This file lists the power dissipation in Watts of the floorplan elements. The first line of this file has the format:
<name1> <name2> ... <nameN>
This is a list of the names of floorplan elements. In a 2D simulation (no LCF file is specified), every floorplan element must be listed, even if it is not dissipating power. In a 3D simulation (LCF file is specified), floorplan elements in layers that do not dissipate power do not need to be listed, but every floorplan element in a power dissipating layer (a layer marked as power-dissipating in the LCF file) must be listed, even if that particular floorplan element does not dissipate power. Also, the order in which floorplan element names are listed within a single layer does not matter, but all floorplan elements for one layer must be listed before any floorplan elements of the next layer are listed. Furthermore, the the floorplan elements must be given in the same order as the layers are listed in the LCF file.
For instance, suppose that layer 0 dissipates power, layers 1 and 2 do not, and layer 3 dissipates power. Then the list of floorplan element names will list all floorplan elements for layer 0 (in any order), followed by all floorplan elements for layer 3 (in any order). We do not need to list floorplan elements for layers 1 and 2, but we do need to list all elements in layer 1 before we list any elements in layer 3. Because of this requirement, it is okay for floorplan elements in different layers to have the same name.
After the names are given, we list a series of power traces, one per line. Each power trace has the following format:
<name1_power> <name2_power> ... <nameN_power>
We simply list the power dissipation, in Watts, for each floorplan element in the same order as the names are listed. The lines are separated temporally by a period of time equal to the -sampling_intvl option given in the configuration file. So, the first power trace takes place in the time interval [0, sampling_intvl), the second power trace takes place in the time interval [sampling_intvl, 2*sampling_intvl), etc.
This file is where you can list thermal properties for a variety of materials. You can then refer to these materials in other configuration files to avoid having to list the same thermal properties repeatedly. One entry in the materials file follows this format for solid materials:
<material_name>
solid
<thermal_conductivity>
<volumetric_heat_capacity>
and this format for fluid materials:
<material_name>
fluid
<thermal_conductivity>
<volumetric_heat_capacity>
<dynamic_viscosity>
-
material_name: A custom name that you define for the material -
solidorfluid: The literal keyword "solid" or "fluid", depending on what kind of material is specified. -
thermal_conductivity: The thermal conductivity of the material in W/(m-K) -
volumetric_heat_capacity: The volumetric heat capacity of the material in J/(m^3-K) -
dynamic_viscosity: The dynamic viscosity in Pa-s of a fluid material
This file is optional. If it is not given, then the temperatures of all floorplan elements are initialized to the -ambient option specified in the configuration file. If this file is given, then the temperatures of floorplan elements are initialized according to their specification in this file. The format of this file is a list of floorplan elements and their temperatures, where each line has the following format:
layer_<layerNum>_<elementName> <temperature>
Note that this is the same format as a Steady Results file. In fact, a common workflow is to run a steady-state simulation, then copy the resulting .steady file and rename it as a .init file.
If your simulation uses microfluidic cooling (the -use_microchannels 1 option is specified), then you can use a microchannel geometry file in place of a floorplan file in the Layer Configuration File. The microchannel geometry file allows you to specify the topology of a microfluidic cooling layer. The topology is given as a grid with -grid_rows rows and -grid_cols columns (these options are in the configuration file). Each entry in the grid is a number with the following meanings:
- 0 : this cell is a solid cell
- 1 : this cell is a fluid cell
- 2 : this cell is an inlet
- 3 : this cell is an outlet
For example, a 5x5 microchannel geometry file with two horizontal microchannels might look like:
0, 0, 0, 0, 0
2, 1, 1, 1, 3
0, 0, 0, 0, 0
2, 1, 1, 1, 3
0, 0, 0, 0, 0
A slightly more interesting set of microchannels in which coolant enters via two channels on the right, then converges into one channel and exits via the left might look like:
0, 0, 0, 0, 0
0, 0, 1, 1, 2
3, 1, 1, 0, 0
0, 0, 1, 1, 2
0, 0, 0, 0, 0
This file is created when the -steady_file <filename> option is given. HotSpot lists the steady-state simulation temperatures of every floorplan element in the format:
layer_<layerNum>_<elementName> <temperature>
This file is created when the -grid_steady_file <filename> option is given. HotSpot lists the steady-state simulation temperatures of every cell in the simulation grid in the following format:
Layer <layer_num>:
0 <cell0_temp>
...
n-1 <celln-1_temp>
This file is created when the -o <filename> option is given. HotSpot lists the transient simulation temperatures of every floorplan element in the following format:
<element1_name> <element2_name> ... <elementN_name>
<temperature1> <temperature2> ... <temperatureN>
The number of temperature traces in this file is equal to the number of power traces in the power trace file. Likewise, the time between each temperature trace is equal to the -sampling_intvl option in the configuration file.
This file is created when the -grid_transient_file <filename> option is given. HotSpot lists the transient simulation temperatures of every grid cell in the following format:
t = <time>
Layer <layerNum>:
0 <temp 0>
1 <temp 1>
...
n-1 <temp n-1>