c9e069a2f279cb4b51cce13a9db5fc7978c4938c
Create unit tests for the stats storage types. As a side effect storage-related classes have been moved to separate files. HistStor's grow_up, grow_out, and grow_convert have been made private and renamed to comply with gem5's naming convention and make grow_convert match its grow_up counterpart (growDown) which is more suitable for its expected behavior. The params declarations have been moved to be close to their storage class' constructor. HistStor has a explicit condition stating that there must be at least 2 buckets. Added documentation! Fixed grow_convert so that it yields consistent histograms. Previously buckets could not fully intersect, so doubling their bucket size would make them steal contents innaproprietly. For example, the neighbors [-6,-2[, [-2,2[, [2,6[, when doubled, become [-12,-4[, [-4,4[, [4,12[; however, since the individual values are not stored, it is impossible to know how to populate the middle bucket with its neighbor's partial contents. This fix forces the middle bucket of a storage to have its lower bound at 0, solving the partial intersection issue. Change-Id: Idb063e3dbda3cce3a8969e347660143162146eb9 Signed-off-by: Daniel R. Carvalho <odanrc@yahoo.com.br> Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/25425 Reviewed-by: Jason Lowe-Power <power.jg@gmail.com> Maintainer: Jason Lowe-Power <power.jg@gmail.com> Tested-by: kokoro <noreply+kokoro@google.com>
This is the gem5 simulator. The main website can be found at http://www.gem5.org A good starting point is http://www.gem5.org/about, and for more information about building the simulator and getting started please see http://www.gem5.org/documentation and http://www.gem5.org/documentation/learning_gem5/introduction. To build gem5, you will need the following software: g++ or clang, Python (gem5 links in the Python interpreter), SCons, SWIG, zlib, m4, and lastly protobuf if you want trace capture and playback support. Please see http://www.gem5.org/documentation/general_docs/building for more details concerning the minimum versions of the aforementioned tools. Once you have all dependencies resolved, type 'scons build/<ARCH>/gem5.opt' where ARCH is one of ARM, NULL, MIPS, POWER, SPARC, or X86. This will build an optimized version of the gem5 binary (gem5.opt) for the the specified architecture. See http://www.gem5.org/documentation/general_docs/building for more details and options. The basic source release includes these subdirectories: - configs: example simulation configuration scripts - ext: less-common external packages needed to build gem5 - src: source code of the gem5 simulator - system: source for some optional system software for simulated systems - tests: regression tests - util: useful utility programs and files To run full-system simulations, you will need compiled system firmware (console and PALcode for Alpha), kernel binaries and one or more disk images. If you have questions, please send mail to gem5-users@gem5.org Enjoy using gem5 and please share your modifications and extensions.
Description