Commit Graph

485 Commits

Author SHA1 Message Date
sprado
b2fcde07cf Power over time 2016-03-14 16:03:08 +01:00
Matthias Jung
d9e29a1976 Merge pull request #68 from fzeder/master
One output PDF file per channel with 2 subplots.
2016-03-01 14:15:44 +01:00
Éder F. Zulian
0d2257caea Readme updated with systemC mac targets 2016-02-29 11:20:15 -03:00
Éder F. Zulian
569fc4aafd One output PDF file per channel with 2 subplots. 2016-02-29 09:12:27 -03:00
Matthias Jung
3bee70945d changed from a constant window size to a constant step size 2016-02-27 12:29:25 +01:00
Matthias Jung
65579d2ea4 merge everything together
Merge branch 'master' of git.rhrk.uni-kl.de:EIT-Wehn/dram.vp.system
2016-02-26 21:20:23 +01:00
Matthias Jung
a3ad258809 better view on mac 2016-02-26 21:08:24 +01:00
Matthias Jung
9e10f82836 Merge pull request #65 from sprado/master
Bandwidth Over Time Graphics and Absolute Bandwidth as Text
(I will change to 1024 and push it back)
2016-02-26 21:02:44 +01:00
Matthias Jung
d02c62e734 Small changes to support Clang and Mac OS 2016-02-26 20:11:12 +01:00
sprado
3a0b9142df Bar Charts 2016-02-26 15:47:19 +01:00
Éder F. Zulian
5887c4be6a Created a specific button to generate plots
This makes possible to generate metrics without waiting for the plots
generation.
2016-02-26 08:49:44 -03:00
Matthias Jung
b275e71f0e Merge pull request #55 from fzeder/master
Issue#50 fixed and some improvements
2016-02-23 23:13:31 +01:00
Felipe Salerno Prado
2b99e82cff Bandwidth Over Time Graphics and Absolute Bandwidth as Text 2016-02-23 16:29:30 +01:00
Éder F. Zulian
618b2def49 Merge remote-tracking branch 'upstream/master' 2016-02-17 22:10:20 -02:00
Matthias Jung
647130df32 Merge pull request #58 from fzeder/traceAnalyzer_reload_databases
fixes issue #46, #45 #59, #62
2016-02-17 21:44:23 +01:00
Éder F. Zulian
c1084c21fb Power down related metrics are generated according to config bankwise logic.
IMPORTANT:
Though the mechanism to choose the proper metrics according to the bankwise
logic configuraiton is working fine, we need to check if all calculations are
correct. For exmple: check if the calculation of the total time in SREFB is
correct.
2016-02-17 16:55:13 -02:00
Éder F. Zulian
636ff65a38 Added support to single-line comments in STL files (issue#45).
Lines which start with '#' will be ignored by trace players.

From IP_GFRBM.pdf:
STL syntax supports only single line comments. A single-line comment is
everything on a line following but not including the first occurrence of the #
character and up to, but not including the end of the line. For example:

 # this is a comment

Comments should always begin in a new line.
2016-02-17 13:24:10 -02:00
Éder F. Zulian
6d8a31a904 More improvements 2016-02-16 21:17:58 -02:00
Éder F. Zulian
9c195a42c8 Improvements in tests scripts
Created an extra file memUtil.py which contains utilities that can be imported
and used by other script files.

The idea is to improve maintainability by avoiding duplicate code.
2016-02-16 17:23:20 -02:00
Éder F. Zulian
642899d8b9 Power down related metrics properly displayed (issue#59)
The following metrics will be generated:
- time in PDNA in ns
- time in PDNA percent
- time in PDNP in ns
- time in PDNP percent
- time in SREF in ns
- time in SREF percent
- time in power down states in ns
- time in power down states percent

Other changes:
Avoid a crash that was generated for channels which no accesses performed by
trace players. Now a message will be displayed explained that no metrics were
generated due to the lack of accesses.
2016-02-16 11:46:32 -02:00
Éder F. Zulian
5ed7c56c35 PEP8 related changes.
These changes are a step forward in the direction of the PEP8 style guide for
python code. They do not affect functionality itself.

See also:
https://www.python.org/dev/peps/pep-0008/
2016-02-12 20:36:41 -02:00
Éder F. Zulian
da28a5242b PEP8 related changes.
These changes are a step forward in the direction of the PEP8 style guide for
python code. They do not affect functionality itself.

See also:
https://www.python.org/dev/peps/pep-0008/
2016-02-12 11:55:57 -02:00
Éder F. Zulian
3085b3949b Test script improved
Created classes to get easily memory specifications and memory configurations.
Each class handles the peculiarities of the related XML file.

Other changes:
- git ignore file updated.
2016-02-11 10:35:44 -02:00
Éder F. Zulian
0052e7e9c9 Getting rid of some warnings.
In order to avoid the gcc warning" 'will be initialized after' we need to make
sure the members appear in the initializer list in the same order as they
appear in the class.
2016-02-10 15:21:58 -02:00
Éder F. Zulian
b09aced9ed Implemented a new menu option to reload databases (issue#46).
Other improvements:
- Added option to save changes to databases (e.g., save comments).

- When a database file changes on disk (overwritten by a rerun of DRAMSys or
  changed by any external agent) the action save changes to DB is disabled,
  since it is not safe anymore.

- Implemented menu options coherence. All actions except for "Open" (reload,
  close, save, test and metrics) remain disabled until some database file is
  open.

- Created a shortcut to close all: CTRL+Q

- Status messages containing a timestamp are displayed in the lower left
  corner of the traceAnalyzer window when:
  - User reloads the databases.
  - User saves changes to the databases.
  - Any of the open database files has changed on disk.
2016-02-09 16:21:43 -02:00
Éder F. Zulian
1dc4fff3ca Issue#50 fixed
Phases are recorded by the TlmRecorder by calling the following method:

recordPhase(payload, phase, recordingTime)

In the current design we can find calls to this method in Dram.h, Controller.h
and Arbiter.h.

Inside the TlmRecorder (TlmRecorder.cpp) some phases are terminating phases.

Terminating phases recorded by the controller:
END_RESP (end response)
END_REFA (refresh all)
END_REFB (refresh Bank)

Example:
The DRAM receives transaction with phase BEGIN_REFA and sends to the
controller transaction with phase END_REFA.

IMPORTANT: the DRAM adds the execution time of the related command
(Command::AutoRefresh) to the delay.

The controller calls recordPhase() and the phase this triggers the termination
of the related phase in the TlmRecorder.

Terminating phases recorded by the DRAM:
END_PDNA (end power down active)
END_PDNP (end precharge powerdown)
END_SREF (end self-refresh)
END_PDNAB (end power down active bank)
END_PDNPB (end precharge powerdown bank)
END_SREFB (end self-refresh bank)

These phases were being recorded without taking into consideration the
execution time of the associated command (Command::PDNAX, Command::PDNPX and
Command::SREFX). All of them take one clock cycle to execute.

As result the phases were reduced by 1 clock cycle in the traceAnalyzer
output.
2016-02-02 20:19:00 -02:00
Éder F. Zulian
4a4284ab43 Small fix and improvements in debug messages 2016-02-02 19:09:59 -02:00
Éder F. Zulian
f4f0ef1e06 Merge remote-tracking branch 'upstream/master' 2016-02-02 17:20:48 -02:00
Éder F. Zulian
38e0829360 Invalid commands are ignored.
The data structure that stores last commands is initialized with NOPs. So it
is possible to get a NOP as return of state.getLastScheduledCommand(bank).
2016-02-02 17:01:54 -02:00
Éder F. Zulian
bf26adca22 Debugs improved 2016-02-02 15:31:10 -02:00
Éder F. Zulian
2d4759a5b6 Debugs improved 2016-02-01 19:40:54 -02:00
Matthias Jung
3023063a60 frequency adjusted 2016-01-29 16:13:38 +01:00
Matthias Jung
4be698440c address mapping changed 2016-01-29 15:53:46 +01:00
Matthias Jung
d0c203656a ddr3 example project added 2016-01-29 13:24:07 +01:00
Matthias Jung
ac791a68aa symlinks to memspecs of DRAMPower 2016-01-29 12:42:51 +01:00
Éder F. Zulian
460e211f1e IceWrapper submodule updated 2016-01-28 22:18:52 -02:00
Éder F. Zulian
b065a4ef3f Issue#50 fixed.
Increment of 1 clock cycle is necessary when recording end of powerdown
related phases.

This is necessary due to our current TLM recorder design. The TLM recorder is
based on phases, but the commands PDNAX, PDNPX and SREFX do not have
corresponding pahses. These commands take one clock cycle to execute and this
clock cycle was being ignored in the traceAnalyzer output.
2016-01-28 13:18:14 -02:00
Éder F. Zulian
7a993cad5f Debugs improved - generating messages for every recorded phase (tlmRecorder->recordPhase()) 2016-01-28 12:12:34 -02:00
Éder F. Zulian
31110bd01b Debugs improved without changes in functionality.
Now it is possible to know exactly which module has generated a message. Some examples:

at 1716840 ps in sim.controller0: Entering PowerDownManagerTimeoutown BEGIN_PDNAB on bank 4
at 1820 ns in sim.tracePlayer0: Sending tracePlayer0ansaction number: 18
at 1831296 ps in sim.controller0: Payload enters system on bank 2. Total number of payloads in Controller: 0
at 1831296 ps in sim.controller0.core.pdnManagerBw: Waking up on bank 2 at 1831296 ps current power down state is Awake
at 1831296 ps in sim.controller0.core.pdnManagerBw: Awaken on bank 2 at 1831296 ps current power down state is Awake
at 1831296 ps in sim.controller0.core: Scheduling coremmand ACT on 2
at 1831296 ps in sim.controller0.core: Row buffer for bank 2 is now open
at 1831296 ps in sim.controller0: -> Next payload was scheduled by core
at 1849368 ps in sim.controller0: Received END_ACT on bank 2 from DRAM

at 2391528 ps in sim.controller3.core.pdnManagerBw: Is now in state PDN Active on Bank 0
at 2391528 ps in sim.controller3.core.pdnManagerBw: Schedulingending power down command PDNA on bank 0 start time 2397552 ps end time 2415624 ps
at 2397552 ps in sim.controller3: Entering PowerDown BEGIN_PDNABN_PDNAB on bank 0
at 2455 ns in sim.tracePlayer0: Sending transaction number: 24
2016-01-16 13:55:06 -02:00
Éder F. Zulian
bb51520213 TlmRecorders better identified with the number of the channel they are related to. 2016-01-15 11:15:20 -02:00
Éder F. Zulian
d7b8e7c8f6 Improvements on readability and debugging 2016-01-14 14:58:03 -02:00
Éder F. Zulian
62057c041f Code was commented and its readability was improved. 2016-01-14 10:51:34 -02:00
Éder F. Zulian
14eb888195 Minor changes to improve code readability 2016-01-14 10:34:27 -02:00
Matthias Jung
8601c8f28b Merge pull request #52 from fzeder/master
Coherence check for the configuration field NumberofMemChannels.
2015-12-17 09:15:42 +01:00
Éder F. Zulian
9820ac497f Coherence check for the configuration field NumberofMemChannels.
The number of bits reserved to describe the channel within the address
determines the maximum number of memory channels allowed.

The program will be aborted if the number of memory channels in the
configuration exceeds the maximum number of memory channels supported based on
the number of bits reserved in the address mapping configuration file.
2015-12-17 01:25:23 -02:00
Matthias Jung
534eadf2fb Merge pull request #51 from fzeder/master
Readme updated with proper wideio address mappings examples
2015-12-14 22:26:04 +01:00
Éder F. Zulian
4f80335662 Images related to the last commit 2015-12-14 17:37:01 -02:00
Éder F. Zulian
6a90251d61 Readme file updated.
Using proper wideio address mappings as examples.
2015-12-14 17:35:32 -02:00
Matthias Jung
bdb42231c2 Merge pull request #43 from fzeder/master
Some changes in order to use DRAMSys in other machines.
2015-12-08 13:40:57 +01:00
Éder F. Zulian
f4851a449b Readme file updated with information about dependencies to build DRAMSys 2015-12-01 16:33:01 +01:00