No! We have tried to make it a separate library. Using it with any particular power-performance simulator simply requires some simple "glue" functions to extract average power for the same units in your floorplan.
HotSpot should be extremely portable. It is written in C, and we are not aware of any specific operating system dependencies. Our testing has only been on SunOS, x86 RedHat and Fedora Linux systems, but we also know of users who have had no problems compiling it for Cygwin under Windows. We certainly welcome reports of successful builds for other architectures and operating systems, and any patches that may be needed.
The interfaces remain pretty much the same. So, just replacing the old files with the new ones in version 4.x and incorporating the changes in the Makefile for compiling them should suffice. However, if you are using the grid model, for better accuracy, it would be better to distinguish between the first call to compute_temp and subsequent calls. The first call should continue to pass the temperature vector argument as before while the subsequent calls should pass a NULL pointer instead. See the section detailing the changes in version 4.0 in the HOTSPOT-HOWTO for more details about how to do this.
We recommend that you switch to newest HotSpot version considering it as a new installation. This means that code that is already using versions 1.0 and 2.0 of HotSpot has to be rewritten. We hope it would not be too difficult. The model is now more encapsulated and easier to integrate with an existing tool. Please see the section detailing changes since version 3.0 in the HOTSPOT-HOWTO for more details about this.
Yes. Simply specify your own floorplan file with any floorplan and granularity you want. A sample floorplan is provided that is loosely modeled after a 0.13 micron Alpha 21364. The format of the floorplan file simply requires, for each block in the floorplan, the width, height, and (x,y) coordinates of the lower-left corner. Alternatively, you could just specify the block areas, aspect ratios and connectivity in a file and use the HotFloorplan tool to generate a floorplan optimized for an objective function of your choice.
The block model in HotSpot models temperature at the functional block granularity. If you would like to use the block model, then the way to do this would be to specify a floorplan with a separate block for each sub-component. Note that the power simulator should then provide power numbers for these individual sub-blocks. However, if the sub-components are very small, the grid model might be a better solution in terms of accuracy. In that case, you can inspect the grid temperatures by using the '-grid_steady_file' option of the grid model.
When using the block model for such a purpose, it is to be noted that some inaccuracy could occur due to spatial discretization if the modeled floorplan has blocks with high aspect ratios. Hence, versions 4.x provide scripts to convert such floorplans into ones with nearly square-shaped blocks. It is to be noted that being a finite-element solver, HotSpot cannot avoid discretization errors altogether. However, they can be dealt with effectively as a speed vs. accuracy trade-off. For instance, in cases where higher accuracy is desired, the grid model could be used. It should be mentioned that even with the grid model, high aspect ratios can be a problem. A common pitfall is using an extremely fine mesh in the x-y direction without correspondingly increasing the resolution in the z direction. For instance, if one must use a 1000 x 1000 grid, then the no. of z-layers should also be increased using the grid layer file specification so that each volumetric cell is still nearly "cubical" and not "tall and skinny". See the "Notes on the Modifications" subsection under the "HotSpot 4.0 Changes" section of HOTSPOT-HOWTO for more information.
Given identical grid structures (eg: a 3x5 grid shaped floorplan solved with a grid resolution of 3x5), both the block and grid models will give identical results. This is because they are solving the same set of equations through two different methods (matrix and iterative). However, for more general floorplans, the block and grid models are fundamentally different in their organization. The block model has a single temperature for the entire block while the grid model has one each per grid cell within a block. Differences are bound to arise when we try to substitute the multitude of temperatures with a single value. Depending on the application where HotSpot is used, this single value could be a simple average, weighted average, maximum, minimum or any other function of interest. In order to give flexibility to the user, HotSpot incorporates four choices - minimum, simple average, maximum and center. The 'center' function means that the temperature of a block reported by the grid model is that of the grid cell at its center. In the way the models are derived, this 'center' function should give the closest match between them and hence, it is also the default mapping mode for the grid model.
Here are the defaults used in the distribution, which are reasonable for a typical, high-performance microprocessor. They are defined in the 'hotspot.config' file. The bulk material properaties are defined in 'temperature.h'. The current values are:
We have found that a sampling rate of 100-300 KHz (i.e., a period of 3.3 - 10 microsec.) gives excellent precision with negligible slowdown.
Last updated: 11 Apr. 2008