From aae8bd9a66f1aa8ce279c667e7c55c911705fc01 Mon Sep 17 00:00:00 2001 From: Jason Lowe-Power Date: Tue, 29 Sep 2020 17:03:08 -0700 Subject: [PATCH] misc: Add release notes for 20.1 Change-Id: I011ff987e222326dd7f0787c41043578b52b236a Signed-off-by: Jason Lowe-Power Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/35375 Maintainer: Jason Lowe-Power Reviewed-by: Giacomo Travaglini Reviewed-by: Matthew Poremba Tested-by: kokoro --- RELEASE-NOTES.md | 120 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 119 insertions(+), 1 deletion(-) diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index 1a97b4c0a..492bb962a 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -1,6 +1,124 @@ # Version 20.1.0.0 -* m5.stats.dump() root argument renamed to roots to reflect the fact that it now takes a list of SimObjects +Thank you to everyone that made this release possible! +This has been a very productive release with [150 issues](https://gem5.atlassian.net/), over 650 commits (a 25% increase from the 20.0 release), and 58 unique contributors (a 100% increase!). + +## Process changes + +We are no longer using the "master" branch. +Instead, we will have two branches: + +* "stable": This will point to the latest stable release (gem5-20.1 as of today) +* "develop": This is the latest development code that will be merged in to the "stable" branch at each release. + +We suggest all *users* use the stable (default) branch. +However, to contribute your fixes and new changes to gem5, it should be contributed to the develop branch. +See CONTRIBUTING.md for more details. + +gem5 has also implemented a project code of conduct. +See the CODE-OF-CONDUCT.md file for details. +In the code of conduct "we pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community." + +## New features in 20.1 + +### New DRAM interface: Contributed by *Wendy Elsasser* + +You can find details about this on the [gem5 blog](http://www.gem5.org/2020/05/27/memory-controller.html) or Wendy's talks on YouTube: [Talk on new interface and NVM](https://www.youtube.com/watch?v=t2PRoZPwwpk) and the [talk on LPDDR5](https://www.youtube.com/watch?v=ttJ9_I_Avyc) + +* **[PYTHON API CHANGE]**: The DRAM models are now *DRAM interfaces* which is a child of the *memory controller*. Example change shown [in the blog post](http://www.gem5.org/project/2020/07/18/gem5-20-1.html). + * The DRAM is split into a memory controller and a DRAM interface + * `SimpleMemory` is no longer a drop-in replacement for a DRAM-based memory controller. +* LPDDR5 model added +* NVM model added +* New memory controller model that can use both NVM and DRAM + +### Improved on-chip interconnect model, HeteroGarnet: Contributed by *Srikant Bharadwaj* + +You can find details about this on the [gem5 blog](http://www.gem5.org/2020/05/27/heterogarnet.html) and [Srikant's talk on YouTube](https://www.youtube.com/watch?v=AH9r44r2lHA). + +* **[USER-FACING CHANGE]**: The network type options are now "simple" and "garnet" instead of "garnet2.0". (If "garnet2.0" is used, you will get a warning until gem5-20.2) +* Added models for clock domain crossings and serialization/deserialization (SERDES) + +### Transactional memory support: Contributed by *Timothy Hayes* + +You can find details on the [Jira issue](https://gem5.atlassian.net/browse/GEM5-587) + +* gem5 now supports Arm TME (transactional memory extensions) +* Transactional memory is only implemented in the `MESI_Three_Level_HTM` Ruby protocol, and it is only implemented in Ruby. +* This implements a checkpointing mechanism for the architectural state and buffering of speculative memory updates. +* IBM POWER and x86 HTM extensions have *not* been implemented. + +### Other new features + +* External simulator integrations + * Added support for DRAMSim3 + * Added back support for DRAMSim2 +* Armv8-A Self Hosted Debug extension added +* KVM support for Armv8-A hosts without GICv2 hardware +* Implemented Secure EL2 for Armv8-A + +## Removed features + +* Dropped support for mercurial version control + +## New supported platforms + +* GCC up to 10.2 is now supported. Minimum GCC is now 5.0. +* Clang up to version 9. Minimum Clang is now 3.9. + +## Platforms no longer support + +* **[USER-FACING CHANGE]**: Python 2 is officially deprecated. We will drop support for Python 2 in the next release. In this release you will get a warning if you're using Python 2. +* **[USER-FACING CHANGE]**: We have dropped support for GCC 4.X +* **[USER-FACING CHANGE]**: We have dropped support for Scons 2.x (Note: this is the default in Ubuntu 16.04. Use pip to install a newer scons.) + +See for gem5's current dependencies. + +## Other changes + +### Deprecating "master" and "slave" + +* **[API CHANGE]**: The names "master" and "slave" have been deprecated + * Special thanks to Lakin Smith, Shivani Parekh, Eden Avivi, and Emily Brickey. + * Below is a guide to most of the name changes. + * The goal was to replace problematic language with more descriptive and precise terms. +* There may be some bugs introduced with this change as there were many places in the Python configurations which relied on "duck typing". +* This change is mostly backwards compatible and warning will be issued until at least gem5-20.2. + +``` +MasterPort -> RequestorPort +SlavePort -> ResponsePort + +xbar.slave -> xbar.cpu_side +xbar.master -> xbar.mem_side + +MasterId -> RequestorId +``` + +### Testing improvements + +* We now have Jenkins server () running nightly and other large tests. Special thanks to Mike Upton for setting this up! + * Nightly tests run the "long" regression tests (many tests added). + * Compiler tests run gem5 build for many targets and all compilers once a week. +* Updated CI tester (kokoro) to use a more up-to-date environment. +* Improved the testing infrastructure. + * Almost all testing resources now available in [gem5-resources repository](https://gem5.googlesource.com/public/gem5-resources/). + * Generally cleaned up the `tests/` directory in mainline gem5. + * Many general testlib improvements. + +### More changes + +* **[PYTHON API CHANGE]**: m5.stats.dump() root argument renamed to roots to reflect the fact that it now takes a list of SimObjects +* **[USER-FACING CHANGE]**: Checkpoint compatibility may be broken by the following changes + * + * +* **[API CHANGE]** Changed `setCPU` to `setThreadContext` in Interrupts +* Added a `Compressor` namespace. +* **[API CHANGE]** The `Callback` class was removed and replaced with C++ lambdas. +* Many objects' stats have been updated to the "new" stats style. +* Many more objects have had their APIs formalized. See + +---------------------------------------------------------------------------------------------------- # Version 20.0.0.3 -- 2.30.2