Changelog

From Msim

(Difference between revisions)
Jump to: navigation, search
 
(39 intermediate revisions not shown)
Line 1: Line 1:
-
This page details changes since the relase of Version 3.0 of M-sim. Information about the changes is provided in case mistakes were made and to provide greater understanding of the simulator.
+
This page details changes since the relase of Version 3.0 of M-sim. Information about the changes is provided in case mistakes were made and to provide greater understanding of the simulator. As of 9/8/09, versions will use a version number instead of a date.  
-
=== Upcoming ===
+
== Upcoming: Release 3.0.22 ==
-
[[EIO_4|New EIO version]].<br>
+
[[3.0.22]]<br>
-
[[New-Syscalls|Syscalls]]<br>
+
-
== July 20th 2009 ==
+
== Release 3.0.21: Jan 18th 2016 ==
 +
Minor fixes to be compatible with gcc 4.9.2. Fix linkage in memory.h and lack of virtual destructor in dram.h.<br>
 +
 
 +
== Release 3.0.20: Sep 3rd 2010 ==
 +
Changes to cacti did not propagate to release version.<br>
 +
 
 +
== Release 3.0.19: Aug 4th 2010 ==
 +
[[3.0.19]]<br>
 +
 
 +
== Release 3.0.18: Jun 8th 2010 ==
 +
Fast forwarding has been updated. Values from the .arg file were not being respected by the code. Cleanup of the code for a nicer implementation. (sim-outorder.c: continue_fastfwd(...), changes in sim_main()).
 +
 
 +
== Release 3.0.17: Apr 21st 2010 ==
 +
options.c no longer uses strrchr (caused problems for g++ 4.4+).<br>
 +
rob.c provides more complete initialization for ROB_entry.<br>
 +
eio.c uses now fgets return value.<br>
 +
loader.c now (by default) now reduces the number of entries in envp and uses some pre-determined values. Disable "ENVP_REDUCE" and "FORCE_CONSISTENT" in loader.c to disable this. This provides for more deterministic results.<br>
 +
dlite.c fixed to avoid complaints from g++ 4.4+. This included some changes in pointer usage. Some char[] replaced with std::string.<br>
 +
symbol.c fixed to avoid complaints from g++ 4.4+ regarding usage of fread.<br>
 +
sysprobe.c fixed to use %lu when referring to sizeof.<br>
 +
mystrrchr has been removed.<br>
 +
Bug report: Benchmarks that use getdirentries on an nfs may experience a read error.<br>
 +
 
 +
== Release 3.0.16b: Mar 23st 2010 ==
 +
Added "break;" to the end of the SSI_IEEE_IP_CONTROL switch case for getsysinfo in syscall.c. This was incorrectly causing this system call option to be reported as unsupported.
 +
 
 +
== Release 3.0.16: Mar 21st 2010 ==
 +
Added some conditional compilation (using __LP64__) to deal with compilation on 32-bit machines that can not handle large constants. For the same reason this was done, a warning message has not been added to indicate this.<br>
 +
 
 +
== Release 3.0.15: Feb 19th 2010 ==
 +
[[3.0.15|View changes here.]]<br>
 +
 
 +
== Release 3.0.14: Feb 1st 2010 ==
 +
[[3.0.14|View changes here.]]<br>
 +
 
 +
== Release 3.0.13: Dec 8th 2009 ==
 +
[[3.0.13#EIO_4|New EIO version]].<br>
 +
[[3.0.13#New-Syscalls|Syscalls]]<br>
 +
[[Dynamic Loading]]<br>
 +
 
 +
== Release 3.0.12: Oct 27th 2009 ==
 +
Various [[3.0.10#Floating Point|floating point]] issues fixed.<br>
 +
Removal of argc parameter in [[3.0.10#Argc|ld_load_prog]] (argv is already a vector and argc can be extracted from it).<br>
 +
 
 +
== Release 3.0.11: Oct 5th 2009 ==
 +
[[Rollback]] overhaul - Severe problems (update recommended)<br>
 +
 
 +
== Release 3.0.10: Sep 19th 2009 ==
 +
[[Rollback]] Fix - Severe problem (update recommended)<br>
 +
[[Command Line Args#Quote Problem|Fixed quote handling in .arg files]]<br>
 +
[[TIOCISATTY|ioctl(TIOCISATTY)]] didn't work as expected and is now fixed.<br>
 +
 
 +
== Release 3.0.09: July 20th 2009 ==
 +
[[Store Conditional Bug|Store Conditional]] did not set its physical register to REG_WB nor set ready times for the result.<br>
A [[file handler|file handler]] for both debugging as well as creating accurate and portable checkpoints.<br>
A [[file handler|file handler]] for both debugging as well as creating accurate and portable checkpoints.<br>
-
[[07-20-09-New-Syscalls|Syscalls]] getgroups, mkdir, readlink are now supported.<br>
+
[[07-20-09-New-Syscalls|Syscalls]] getgroups, mkdir, readlink, ioctl(winsize), ioctl(istty) are now supported. Kill is very partially supported.<br>
[[Conditional Memory|Conditional Memory]] support is being added.<br>
[[Conditional Memory|Conditional Memory]] support is being added.<br>
[[Issue_Inorder#Fixes|Issue_Inorder]] has been fixed.<br>
[[Issue_Inorder#Fixes|Issue_Inorder]] has been fixed.<br>
Line 18: Line 70:
[[07-17-09_Fetch|Fetch Cache Misses]] were not stopping the current fetch.<br>
[[07-17-09_Fetch|Fetch Cache Misses]] were not stopping the current fetch.<br>
-
== June 16th 2009 ==
+
== Release 3.0.08: June 16th 2009 ==
[[06-16-09-Machine_Def|Machine.def]] updates (RPCC, STQ_C, STL_C, Comments).<br>
[[06-16-09-Machine_Def|Machine.def]] updates (RPCC, STQ_C, STL_C, Comments).<br>
[[06-16-09-Loader|Loader]] issues related to gcc 4.3.2 support.<br>
[[06-16-09-Loader|Loader]] issues related to gcc 4.3.2 support.<br>
Line 34: Line 86:
Corrected incorrect == instead of != in [[06-16-09-Syscalls#OSF_SYS_MMAP|mmap]]. Improved overall behavior but still not full support (syscall.c).<br>
Corrected incorrect == instead of != in [[06-16-09-Syscalls#OSF_SYS_MMAP|mmap]]. Improved overall behavior but still not full support (syscall.c).<br>
-
== May 12th 2009 ==
+
== Release 3.0.07: May 12th 2009 ==
[[05-12-09-Write_Buffer|Write Buffer]] emergency patch issued. Could get caught in an infinite loop trying to remove elements from an empty write buffer.
[[05-12-09-Write_Buffer|Write Buffer]] emergency patch issued. Could get caught in an infinite loop trying to remove elements from an empty write buffer.
-
== May 5th 2009 ==
+
== Release 3.0.06: May 5th 2009 ==
[[05-05-09-Cache|Cache]] fixes made. Correction made to the usage of bus_free. A write buffer (from processor to first level cache) is now implemented per core - this resolves the bzip2 and gzip problem without having to use the "read data block" hack.
[[05-05-09-Cache|Cache]] fixes made. Correction made to the usage of bus_free. A write buffer (from processor to first level cache) is now implemented per core - this resolves the bzip2 and gzip problem without having to use the "read data block" hack.
-
== April 24th 2009 ==
+
== Release 3.0.05: April 24th 2009 ==
Main.c now properly includes fstream (#include<fstream>).  
Main.c now properly includes fstream (#include<fstream>).  
-
== April 20th 2009 ==
+
== Release 3.0.04: April 20th 2009 ==
[[04-20-09-Num_Cores|Num_Cores]] not being handled correctly through a config file has been fixed. Also, MAX_LINE_ARGS in options.c has been increased to handle the large number of options required for CMP.<br>
[[04-20-09-Num_Cores|Num_Cores]] not being handled correctly through a config file has been fixed. Also, MAX_LINE_ARGS in options.c has been increased to handle the large number of options required for CMP.<br>
-
== April 4th 2009 ==
+
== Release 3.0.03: April 4th 2009 ==
[[04-04-09-Options_C|Options.c]] is updated to handle newly created config files from dumpconfig. Minor code adjustment.<br>
[[04-04-09-Options_C|Options.c]] is updated to handle newly created config files from dumpconfig. Minor code adjustment.<br>
[[04-04-09-Dram|Dram]] bug with accesses across two banks is fixed, other minor tweaks.<br>
[[04-04-09-Dram|Dram]] bug with accesses across two banks is fixed, other minor tweaks.<br>
Line 54: Line 106:
[[04-04-09-Opti|Optimizations]] done in sim-outorder.c.<br>
[[04-04-09-Opti|Optimizations]] done in sim-outorder.c.<br>
-
== March 6th 2009 ==
+
== Release 3.0.02: March 6th 2009 ==
Added -max:cycles support - would be nice to avoid the check each cycle though.<br>
Added -max:cycles support - would be nice to avoid the check each cycle though.<br>
[[Dram|Dram]] modeling support is now available - the default is the old chunk style method.<br>
[[Dram|Dram]] modeling support is now available - the default is the old chunk style method.<br>
Memory bus width is now 4 bytes by default.
Memory bus width is now 4 bytes by default.
-
== February 12th 2009 ==
+
== Release 3.0.01: February 12th 2009 ==
mem_access_latency (defined in cmp.h) now takes 4 parameters (address, size, when, context_id) compared to just size. This is intended for DRAM access modeling. This affects cmp.c, cmp.h and sim-outorder.c<br>
mem_access_latency (defined in cmp.h) now takes 4 parameters (address, size, when, context_id) compared to just size. This is intended for DRAM access modeling. This affects cmp.c, cmp.h and sim-outorder.c<br>
OSF_SYS_write is removed from machine.h and replaced in syscall.c<br>
OSF_SYS_write is removed from machine.h and replaced in syscall.c<br>
[[02-12-09-Opti|Optimization]]: When checking the LSQ for a store forward, the for loop was not used effectively.<br>
[[02-12-09-Opti|Optimization]]: When checking the LSQ for a store forward, the for loop was not used effectively.<br>
-
== January 24th 2009 ==
+
== Release 3.0.00: January 24th 2009 ==
Trivial: Removed commented out lines from main.c<br>
Trivial: Removed commented out lines from main.c<br>
Trivial: Re-enabled fclose(outfile) in context desructor in smt.c - fixes ~1K mem leak<br>
Trivial: Re-enabled fclose(outfile) in context desructor in smt.c - fixes ~1K mem leak<br>
[[01-24-09-Bug 1|Bug 1]]: Fixed "issued inst not spec ready" for floating point insts (actually affected all, but only mattered in floating point cases)<br>
[[01-24-09-Bug 1|Bug 1]]: Fixed "issued inst not spec ready" for floating point insts (actually affected all, but only mattered in floating point cases)<br>
[[01-24-09-Bug 2|Bug 2]]: Commit now looks at the correct list of remaining contexts.<br>
[[01-24-09-Bug 2|Bug 2]]: Commit now looks at the correct list of remaining contexts.<br>

Latest revision as of 17:22, 18 January 2016

This page details changes since the relase of Version 3.0 of M-sim. Information about the changes is provided in case mistakes were made and to provide greater understanding of the simulator. As of 9/8/09, versions will use a version number instead of a date.

Contents

Upcoming: Release 3.0.22

3.0.22

Release 3.0.21: Jan 18th 2016

Minor fixes to be compatible with gcc 4.9.2. Fix linkage in memory.h and lack of virtual destructor in dram.h.

Release 3.0.20: Sep 3rd 2010

Changes to cacti did not propagate to release version.

Release 3.0.19: Aug 4th 2010

3.0.19

Release 3.0.18: Jun 8th 2010

Fast forwarding has been updated. Values from the .arg file were not being respected by the code. Cleanup of the code for a nicer implementation. (sim-outorder.c: continue_fastfwd(...), changes in sim_main()).

Release 3.0.17: Apr 21st 2010

options.c no longer uses strrchr (caused problems for g++ 4.4+).
rob.c provides more complete initialization for ROB_entry.
eio.c uses now fgets return value.
loader.c now (by default) now reduces the number of entries in envp and uses some pre-determined values. Disable "ENVP_REDUCE" and "FORCE_CONSISTENT" in loader.c to disable this. This provides for more deterministic results.
dlite.c fixed to avoid complaints from g++ 4.4+. This included some changes in pointer usage. Some char[] replaced with std::string.
symbol.c fixed to avoid complaints from g++ 4.4+ regarding usage of fread.
sysprobe.c fixed to use %lu when referring to sizeof.
mystrrchr has been removed.
Bug report: Benchmarks that use getdirentries on an nfs may experience a read error.

Release 3.0.16b: Mar 23st 2010

Added "break;" to the end of the SSI_IEEE_IP_CONTROL switch case for getsysinfo in syscall.c. This was incorrectly causing this system call option to be reported as unsupported.

Release 3.0.16: Mar 21st 2010

Added some conditional compilation (using __LP64__) to deal with compilation on 32-bit machines that can not handle large constants. For the same reason this was done, a warning message has not been added to indicate this.

Release 3.0.15: Feb 19th 2010

View changes here.

Release 3.0.14: Feb 1st 2010

View changes here.

Release 3.0.13: Dec 8th 2009

New EIO version.
Syscalls
Dynamic Loading

Release 3.0.12: Oct 27th 2009

Various floating point issues fixed.
Removal of argc parameter in ld_load_prog (argv is already a vector and argc can be extracted from it).

Release 3.0.11: Oct 5th 2009

Rollback overhaul - Severe problems (update recommended)

Release 3.0.10: Sep 19th 2009

Rollback Fix - Severe problem (update recommended)
Fixed quote handling in .arg files
ioctl(TIOCISATTY) didn't work as expected and is now fixed.

Release 3.0.09: July 20th 2009

Store Conditional did not set its physical register to REG_WB nor set ready times for the result.
A file handler for both debugging as well as creating accurate and portable checkpoints.
Syscalls getgroups, mkdir, readlink, ioctl(winsize), ioctl(istty) are now supported. Kill is very partially supported.
Conditional Memory support is being added.
Issue_Inorder has been fixed.
Libexo is being removed from the simulator.
regs_t now supports input operator for replacing libexo (regs.[hc]).
mem_t now supports input operator for replacing libexo (memory.[hc]).
Tagset error has been corrected.
Redirection of stderr has been updated for a few potential redirection operators.
Incorrect single precision handling through the LDS instruction has been dealt with.
Fetch Cache Misses were not stopping the current fetch.

Release 3.0.08: June 16th 2009

Machine.def updates (RPCC, STQ_C, STL_C, Comments).
Loader issues related to gcc 4.3.2 support.
Rollback support for mt_fpcr (sim-outorder.c)
Rollback support for STQ_C and STL_C (sim-outorder.c)
F_TRAPs should (and have, but apparently this was lost) cause the ROB to drain before rename (sim-outorder.c)
Rollback can't rollback over a F_TRAP (see above, cmp.c, cmp.c)
regs_t now supports output operator (input pending) for replacing libexo (regs.[hc]).
mem_t now supports output operator (input pending) for replacing libexo (memory.[hc]).
Added minor setsysinfo and getsysinfo support (syscall.c).
Added support for fstat64 (syscall.c).
Added support for exit_group (syscall.c).
Fixed obreak (syscall.c).
Fixed uname, which also provides utsname (syscall.c).
Corrected incorrect == instead of != in mmap. Improved overall behavior but still not full support (syscall.c).

Release 3.0.07: May 12th 2009

Write Buffer emergency patch issued. Could get caught in an infinite loop trying to remove elements from an empty write buffer.

Release 3.0.06: May 5th 2009

Cache fixes made. Correction made to the usage of bus_free. A write buffer (from processor to first level cache) is now implemented per core - this resolves the bzip2 and gzip problem without having to use the "read data block" hack.

Release 3.0.05: April 24th 2009

Main.c now properly includes fstream (#include<fstream>).

Release 3.0.04: April 20th 2009

Num_Cores not being handled correctly through a config file has been fixed. Also, MAX_LINE_ARGS in options.c has been increased to handle the large number of options required for CMP.

Release 3.0.03: April 4th 2009

Options.c is updated to handle newly created config files from dumpconfig. Minor code adjustment.
Dram bug with accesses across two banks is fixed, other minor tweaks.
Cache access has been updated to return an unsigned long long, BOUND_POS is no longer needed.
Inflight Queues have been altered to no longer assume compiler eliding, this required const enforcing in the rob.h as well.
Issue Queue has been altered to no longer assume compiler eliding.
Optimizations done in sim-outorder.c.

Release 3.0.02: March 6th 2009

Added -max:cycles support - would be nice to avoid the check each cycle though.
Dram modeling support is now available - the default is the old chunk style method.
Memory bus width is now 4 bytes by default.

Release 3.0.01: February 12th 2009

mem_access_latency (defined in cmp.h) now takes 4 parameters (address, size, when, context_id) compared to just size. This is intended for DRAM access modeling. This affects cmp.c, cmp.h and sim-outorder.c
OSF_SYS_write is removed from machine.h and replaced in syscall.c
Optimization: When checking the LSQ for a store forward, the for loop was not used effectively.

Release 3.0.00: January 24th 2009

Trivial: Removed commented out lines from main.c
Trivial: Re-enabled fclose(outfile) in context desructor in smt.c - fixes ~1K mem leak
Bug 1: Fixed "issued inst not spec ready" for floating point insts (actually affected all, but only mattered in floating point cases)
Bug 2: Commit now looks at the correct list of remaining contexts.

Personal tools