diff --git a/DRAMSys/library/resources/configs/thermalsim/config.xml b/DRAMSys/library/resources/configs/thermalsim/config.xml
deleted file mode 100644
index 4d32315e..00000000
--- a/DRAMSys/library/resources/configs/thermalsim/config.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/DRAMSys/library/resources/configs/thermalsim/powerInfo.xml b/DRAMSys/library/resources/configs/thermalsim/powerInfo.xml
deleted file mode 100644
index 192cb4ea..00000000
--- a/DRAMSys/library/resources/configs/thermalsim/powerInfo.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/DRAMSys/library/resources/simulations/ddr3-boot-linux.json b/DRAMSys/library/resources/simulations/ddr3-boot-linux.json
new file mode 100644
index 00000000..1810c3d6
--- /dev/null
+++ b/DRAMSys/library/resources/simulations/ddr3-boot-linux.json
@@ -0,0 +1,10 @@
+{
+ "simulation": {
+ "addressmapping": "am_ddr3_8x1Gbx8_dimm_p1KB_rbc.xml",
+ "mcconfig": "fifoStrict.json",
+ "memspec": "MICRON_1Gb_DDR3-1600_8bit_G.json",
+ "simconfig": "ddr3_boot_linux.xml",
+ "simulationid": "ddr3-boot-linux",
+ "thermalconfig": "config.xml"
+ }
+}
\ No newline at end of file
diff --git a/DRAMSys/library/resources/simulations/ddr3-boot-linux.xml b/DRAMSys/library/resources/simulations/ddr3-boot-linux.xml
deleted file mode 100644
index be8c8cbb..00000000
--- a/DRAMSys/library/resources/simulations/ddr3-boot-linux.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/DRAMSys/library/resources/simulations/ddr3-ecc.json b/DRAMSys/library/resources/simulations/ddr3-ecc.json
new file mode 100644
index 00000000..410e000b
--- /dev/null
+++ b/DRAMSys/library/resources/simulations/ddr3-ecc.json
@@ -0,0 +1,16 @@
+{
+ "simulation": {
+ "addressmapping": "am_ddr3_8x1Gbx8_dimm_p1KB_brc.xml",
+ "mcconfig": "fifo.xml",
+ "memspec": "MICRON_1Gb_DDR3-1600_8bit_G_less_refresh.json",
+ "simconfig": "ddr3_ecc.xml",
+ "simulationid": "ddr3-ecc",
+ "thermalconfig": "config.xml",
+ "tracesetup": [
+ {
+ "clkMhz": "1000",
+ "name": "test_ecc.stl"
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/DRAMSys/library/resources/simulations/ddr3-ecc.xml b/DRAMSys/library/resources/simulations/ddr3-ecc.xml
deleted file mode 100644
index 1ef6da60..00000000
--- a/DRAMSys/library/resources/simulations/ddr3-ecc.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- test_ecc.stl
-
-
diff --git a/DRAMSys/library/resources/simulations/ddr3-example.json b/DRAMSys/library/resources/simulations/ddr3-example.json
index 06076dd0..9f14b26c 100644
--- a/DRAMSys/library/resources/simulations/ddr3-example.json
+++ b/DRAMSys/library/resources/simulations/ddr3-example.json
@@ -1,14 +1,16 @@
{
- "simulation": {
- "simulationid": "ddr3-example-all-json",
- "simconfig": "ddr3.json",
- "thermalconfig": "config.json",
- "memspec": "MICRON_1Gb_DDR3-1600_8bit_G.json",
- "addressmapping": "congen_extended_solution.json",
- "mcconfig":"fifoStrict.json",
- "tracesetup": [{
- "clkMhz": 800,
- "name": "ddr3_example.stl"}
- ]
- }
-}
+ "simulation": {
+ "addressmapping": "congen_extended_solution.json",
+ "mcconfig": "fifoStrict.json",
+ "memspec": "MICRON_1Gb_DDR3-1600_8bit_G.json",
+ "simconfig": "ddr3.json",
+ "simulationid": "ddr3-example-all-json",
+ "thermalconfig": "config.json",
+ "tracesetup": [
+ {
+ "clkMhz": "800",
+ "name": "ddr3_example.stl"
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/DRAMSys/library/resources/simulations/ddr3-example.xml b/DRAMSys/library/resources/simulations/ddr3-example.xml
deleted file mode 100644
index 3fa04ea2..00000000
--- a/DRAMSys/library/resources/simulations/ddr3-example.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ddr3_example.stl
-
-
diff --git a/DRAMSys/library/resources/simulations/ddr3-example2.json b/DRAMSys/library/resources/simulations/ddr3-example2.json
new file mode 100644
index 00000000..d3f06fa8
--- /dev/null
+++ b/DRAMSys/library/resources/simulations/ddr3-example2.json
@@ -0,0 +1,20 @@
+{
+ "simulation": {
+ "addressmapping": "am_ddr3_8x1Gbx8_dimm_p1KB_brc.xml",
+ "mcconfig": "fifoStrict.json",
+ "memspec": "MICRON_1Gb_DDR3-1600_8bit_G.json",
+ "simconfig": "ddr3.xml",
+ "simulationid": "ddr3-example2",
+ "thermalconfig": "config.xml",
+ "tracesetup": [
+ {
+ "clkMhz": "300",
+ "name": "ddr3_example.stl"
+ },
+ {
+ "clkMhz": "400",
+ "name": "ddr3_example.stl"
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/DRAMSys/library/resources/simulations/ddr3-example2.xml b/DRAMSys/library/resources/simulations/ddr3-example2.xml
deleted file mode 100644
index 24981485..00000000
--- a/DRAMSys/library/resources/simulations/ddr3-example2.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ddr3_example.stl
- ddr3_example.stl
-
-
diff --git a/DRAMSys/library/resources/simulations/ddr3-gem5-se.json b/DRAMSys/library/resources/simulations/ddr3-gem5-se.json
new file mode 100644
index 00000000..021beed7
--- /dev/null
+++ b/DRAMSys/library/resources/simulations/ddr3-gem5-se.json
@@ -0,0 +1,10 @@
+{
+ "simulation": {
+ "addressmapping": "am_ddr3_8x1Gbx8_dimm_p1KB_brc.xml",
+ "mcconfig": "fifoStrict.json",
+ "memspec": "MICRON_1Gb_DDR3-1600_8bit_G.json",
+ "simconfig": "ddr3_gem5_se.xml",
+ "simulationid": "ddr3-gem5-se",
+ "thermalconfig": "config.xml"
+ }
+}
\ No newline at end of file
diff --git a/DRAMSys/library/resources/simulations/ddr3-gem5-se.xml b/DRAMSys/library/resources/simulations/ddr3-gem5-se.xml
deleted file mode 100644
index 50717f7c..00000000
--- a/DRAMSys/library/resources/simulations/ddr3-gem5-se.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/DRAMSys/library/resources/simulations/ddr3-single-device.json b/DRAMSys/library/resources/simulations/ddr3-single-device.json
new file mode 100644
index 00000000..1cbd05f9
--- /dev/null
+++ b/DRAMSys/library/resources/simulations/ddr3-single-device.json
@@ -0,0 +1,16 @@
+{
+ "simulation": {
+ "addressmapping": "am_ddr3_1Gbx8_p1KB_brc.xml",
+ "mcconfig": "fifoStrict.json",
+ "memspec": "MICRON_1Gb_DDR3-1600_8bit_G.json",
+ "simconfig": "ddr3-single-device.xml",
+ "simulationid": "ddr3-single-device",
+ "thermalconfig": "config.xml",
+ "tracesetup": [
+ {
+ "clkMhz": "200",
+ "name": "ddr3_single_dev_example.stl"
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/DRAMSys/library/resources/simulations/ddr3-single-device.xml b/DRAMSys/library/resources/simulations/ddr3-single-device.xml
deleted file mode 100644
index 05cddc24..00000000
--- a/DRAMSys/library/resources/simulations/ddr3-single-device.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ddr3_single_dev_example.stl
-
-
diff --git a/DRAMSys/library/resources/simulations/ddr3_postpone_ref_test.json b/DRAMSys/library/resources/simulations/ddr3_postpone_ref_test.json
new file mode 100644
index 00000000..c8eaf32d
--- /dev/null
+++ b/DRAMSys/library/resources/simulations/ddr3_postpone_ref_test.json
@@ -0,0 +1,16 @@
+{
+ "simulation": {
+ "addressmapping": "am_ddr3_8x1Gbx8_dimm_p1KB_brc.xml",
+ "mcconfig": "fifoStrict.json",
+ "memspec": "MICRON_1Gb_DDR3-1600_8bit_G.json",
+ "simconfig": "ddr3.xml",
+ "simulationid": "ddr3_postpone_ref_test",
+ "thermalconfig": "config.xml",
+ "tracesetup": [
+ {
+ "clkMhz": "1000",
+ "name": "ddr3_postpone_ref_test_1.stl"
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/DRAMSys/library/resources/simulations/ddr3_postpone_ref_test.xml b/DRAMSys/library/resources/simulations/ddr3_postpone_ref_test.xml
deleted file mode 100644
index 0b63f57c..00000000
--- a/DRAMSys/library/resources/simulations/ddr3_postpone_ref_test.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ddr3_postpone_ref_test_1.stl
-
-
diff --git a/DRAMSys/library/resources/simulations/ddr4-example.json b/DRAMSys/library/resources/simulations/ddr4-example.json
new file mode 100644
index 00000000..4ce02606
--- /dev/null
+++ b/DRAMSys/library/resources/simulations/ddr4-example.json
@@ -0,0 +1,16 @@
+{
+ "simulation": {
+ "addressmapping": "am_ddr4_8x4Gbx8_dimm_p1KB_brc.xml",
+ "mcconfig": "fifoStrict.json",
+ "memspec": "JEDEC_4Gb_DDR4-1866_8bit_A.json",
+ "simconfig": "ddr4.xml",
+ "simulationid": "ddr4-example",
+ "thermalconfig": "config.xml",
+ "tracesetup": [
+ {
+ "clkMhz": "200",
+ "name": "ddr3_example.stl"
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/DRAMSys/library/resources/simulations/ddr4-example.xml b/DRAMSys/library/resources/simulations/ddr4-example.xml
deleted file mode 100644
index c533a9e2..00000000
--- a/DRAMSys/library/resources/simulations/ddr4-example.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ddr3_example.stl
-
-
diff --git a/DRAMSys/library/resources/simulations/hbm2-example.json b/DRAMSys/library/resources/simulations/hbm2-example.json
new file mode 100644
index 00000000..e1826e17
--- /dev/null
+++ b/DRAMSys/library/resources/simulations/hbm2-example.json
@@ -0,0 +1,16 @@
+{
+ "simulation": {
+ "addressmapping": "am_hbm2_8Gb_pc_brc.xml",
+ "mcconfig": "fifoStrict.json",
+ "memspec": "HBM2.json",
+ "simconfig": "hbm2.xml",
+ "simulationid": "hbm2-example",
+ "thermalconfig": "config.xml",
+ "tracesetup": [
+ {
+ "clkMhz": "1000",
+ "name": "ddr3_example.stl"
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/DRAMSys/library/resources/simulations/hbm2-example.xml b/DRAMSys/library/resources/simulations/hbm2-example.xml
deleted file mode 100644
index eaaf8821..00000000
--- a/DRAMSys/library/resources/simulations/hbm2-example.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ddr3_example.stl
-
-
diff --git a/DRAMSys/library/resources/simulations/lpddr4-example.json b/DRAMSys/library/resources/simulations/lpddr4-example.json
new file mode 100644
index 00000000..506fe427
--- /dev/null
+++ b/DRAMSys/library/resources/simulations/lpddr4-example.json
@@ -0,0 +1,16 @@
+{
+ "simulation": {
+ "addressmapping": "am_lpddr4_8Gbx16_brc.xml",
+ "mcconfig": "fifoStrict.json",
+ "memspec": "JEDEC_8Gb_LPDDR4-3200_16bit.json",
+ "simconfig": "lpddr4.xml",
+ "simulationid": "lpddr4-example",
+ "thermalconfig": "config.xml",
+ "tracesetup": [
+ {
+ "clkMhz": "200",
+ "name": "ddr3_example.stl"
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/DRAMSys/library/resources/simulations/lpddr4-example.xml b/DRAMSys/library/resources/simulations/lpddr4-example.xml
deleted file mode 100644
index 31872ab2..00000000
--- a/DRAMSys/library/resources/simulations/lpddr4-example.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ddr3_example.stl
-
-
diff --git a/DRAMSys/library/resources/simulations/ranktest.json b/DRAMSys/library/resources/simulations/ranktest.json
new file mode 100644
index 00000000..36dc5544
--- /dev/null
+++ b/DRAMSys/library/resources/simulations/ranktest.json
@@ -0,0 +1,16 @@
+{
+ "simulation": {
+ "addressmapping": "am_ranktest.xml",
+ "mcconfig": "fifoStrict.json",
+ "memspec": "memspec_ranktest.json",
+ "simconfig": "ddr3.xml",
+ "simulationid": "ranktest",
+ "thermalconfig": "config.xml",
+ "tracesetup": [
+ {
+ "clkMhz": "200",
+ "name": "ranktest.stl"
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/DRAMSys/library/resources/simulations/ranktest.xml b/DRAMSys/library/resources/simulations/ranktest.xml
deleted file mode 100644
index 4e6c15bf..00000000
--- a/DRAMSys/library/resources/simulations/ranktest.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ranktest.stl
-
-
diff --git a/DRAMSys/library/resources/simulations/rgrsim-gem5-fs.json b/DRAMSys/library/resources/simulations/rgrsim-gem5-fs.json
new file mode 100644
index 00000000..6482fb2a
--- /dev/null
+++ b/DRAMSys/library/resources/simulations/rgrsim-gem5-fs.json
@@ -0,0 +1,10 @@
+{
+ "simulation": {
+ "addressmapping": "rgram.xml",
+ "mcconfig": "rgrmccfg.xml",
+ "memspec": "rgrspec.json",
+ "simconfig": "rgrsimcfg-gem5-fs.xml",
+ "simulationid": "rgrsim-gem5-fs",
+ "thermalconfig": "config.xml"
+ }
+}
\ No newline at end of file
diff --git a/DRAMSys/library/resources/simulations/rgrsim-gem5-fs.xml b/DRAMSys/library/resources/simulations/rgrsim-gem5-fs.xml
deleted file mode 100644
index 1cc164df..00000000
--- a/DRAMSys/library/resources/simulations/rgrsim-gem5-fs.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/DRAMSys/library/resources/simulations/rgrsim-gem5-se.json b/DRAMSys/library/resources/simulations/rgrsim-gem5-se.json
new file mode 100644
index 00000000..0b95b52f
--- /dev/null
+++ b/DRAMSys/library/resources/simulations/rgrsim-gem5-se.json
@@ -0,0 +1,10 @@
+{
+ "simulation": {
+ "addressmapping": "rgram.xml",
+ "mcconfig": "rgrmccfg.xml",
+ "memspec": "rgrspec.json",
+ "simconfig": "rgrsimcfg-gem5-se.xml",
+ "simulationid": "rgrsim-gem5-se",
+ "thermalconfig": "config.xml"
+ }
+}
\ No newline at end of file
diff --git a/DRAMSys/library/resources/simulations/rgrsim-gem5-se.xml b/DRAMSys/library/resources/simulations/rgrsim-gem5-se.xml
deleted file mode 100644
index 4f3cd2b0..00000000
--- a/DRAMSys/library/resources/simulations/rgrsim-gem5-se.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/DRAMSys/library/resources/simulations/rgrsim.json b/DRAMSys/library/resources/simulations/rgrsim.json
new file mode 100644
index 00000000..7c6955f8
--- /dev/null
+++ b/DRAMSys/library/resources/simulations/rgrsim.json
@@ -0,0 +1,16 @@
+{
+ "simulation": {
+ "addressmapping": "rgram.xml",
+ "mcconfig": "rgrmccfg.xml",
+ "memspec": "rgrspec.json",
+ "simconfig": "rgrsimcfg.xml",
+ "simulationid": "rgrsimid",
+ "thermalconfig": "config.xml",
+ "tracesetup": [
+ {
+ "clkMhz": "1000",
+ "name": "1_720x1280_64-Pixelgroesse_imb3_str1_scram_ddr4_8b_same_clock.stl"
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/DRAMSys/library/resources/simulations/rgrsim.xml b/DRAMSys/library/resources/simulations/rgrsim.xml
deleted file mode 100644
index 5ed099bf..00000000
--- a/DRAMSys/library/resources/simulations/rgrsim.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1_720x1280_64-Pixelgroesse_imb3_str1_scram_ddr4_8b_same_clock.stl
-
-
diff --git a/DRAMSys/library/resources/simulations/sms-example.json b/DRAMSys/library/resources/simulations/sms-example.json
new file mode 100644
index 00000000..ababf58f
--- /dev/null
+++ b/DRAMSys/library/resources/simulations/sms-example.json
@@ -0,0 +1,24 @@
+{
+ "simulation": {
+ "addressmapping": "am_wideio.xml",
+ "mcconfig": "sms.xml",
+ "memspec": "wideio.json",
+ "simconfig": "sms.xml",
+ "simulationid": "sms-example",
+ "thermalconfig": "config.xml",
+ "tracesetup": [
+ {
+ "clkMhz": "1000",
+ "name": "random.stl"
+ },
+ {
+ "clkMhz": "1000",
+ "name": "chstone-adpcm_32.stl"
+ },
+ {
+ "clkMhz": "1000",
+ "name": "stream.stl"
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/DRAMSys/library/resources/simulations/sms-example.xml b/DRAMSys/library/resources/simulations/sms-example.xml
deleted file mode 100644
index fee1bdee..00000000
--- a/DRAMSys/library/resources/simulations/sms-example.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- random.stl
- chstone-adpcm_32.stl
- stream.stl
-
-
-
-
diff --git a/DRAMSys/library/resources/simulations/wideio-ecc.json b/DRAMSys/library/resources/simulations/wideio-ecc.json
new file mode 100644
index 00000000..7262b3e4
--- /dev/null
+++ b/DRAMSys/library/resources/simulations/wideio-ecc.json
@@ -0,0 +1,16 @@
+{
+ "simulation": {
+ "addressmapping": "am_wideio.xml",
+ "mcconfig": "fifo.json",
+ "memspec": "wideio_less_refresh.json",
+ "simconfig": "wideio_ecc.xml",
+ "simulationid": "wideio-ecc",
+ "thermalconfig": "config.xml",
+ "tracesetup": [
+ {
+ "clkMhz": "1000",
+ "name": "test_ecc.stl"
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/DRAMSys/library/resources/simulations/wideio-ecc.xml b/DRAMSys/library/resources/simulations/wideio-ecc.xml
deleted file mode 100644
index 62ecdc98..00000000
--- a/DRAMSys/library/resources/simulations/wideio-ecc.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- test_ecc.stl
-
-
diff --git a/DRAMSys/library/resources/simulations/wideio-example.json b/DRAMSys/library/resources/simulations/wideio-example.json
new file mode 100644
index 00000000..f176953a
--- /dev/null
+++ b/DRAMSys/library/resources/simulations/wideio-example.json
@@ -0,0 +1,16 @@
+{
+ "simulation": {
+ "addressmapping": "am_wideio.xml",
+ "mcconfig": "fifoStrict.json",
+ "memspec": "wideio.json",
+ "simconfig": "wideio.xml",
+ "simulationid": "wideio-example",
+ "thermalconfig": "config.xml",
+ "tracesetup": [
+ {
+ "clkMhz": "1000",
+ "name": "chstone-adpcm_32.stl"
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/DRAMSys/library/resources/simulations/wideio-example.xml b/DRAMSys/library/resources/simulations/wideio-example.xml
deleted file mode 100644
index e41f1317..00000000
--- a/DRAMSys/library/resources/simulations/wideio-example.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- chstone-adpcm_32.stl
-
-
diff --git a/DRAMSys/library/src/common/AddressDecoder.cpp b/DRAMSys/library/src/common/AddressDecoder.cpp
index 5b67f96f..cdb906f3 100644
--- a/DRAMSys/library/src/common/AddressDecoder.cpp
+++ b/DRAMSys/library/src/common/AddressDecoder.cpp
@@ -48,7 +48,7 @@ unsigned int AddressDecoder::getUnsignedAttrFromJson(nlohmann::json obj, std::st
AddressDecoder::AddressDecoder(std::string pathToAddressMapping)
{
- json AddrFile = json::parse(std::ifstream(pathToAddressMapping));
+ json AddrFile = parseJSON(pathToAddressMapping);
json j;
if (AddrFile["CONGEN"].empty())
reportFatal("AddressDecorder",
diff --git a/DRAMSys/library/src/common/utils.cpp b/DRAMSys/library/src/common/utils.cpp
index 68a3510b..966a6ae7 100644
--- a/DRAMSys/library/src/common/utils.cpp
+++ b/DRAMSys/library/src/common/utils.cpp
@@ -138,6 +138,21 @@ std::string loadTextFileContents(std::string filename)
}
}
+nlohmann::json parseJSON(std::string path){
+ try
+ {
+ // parsing input with a syntax error
+ nlohmann::json j = nlohmann::json::parse(std::ifstream(path));
+ return j;
+ }
+ catch (nlohmann::json::parse_error& e)
+ {
+ // output exception information
+ std::cout << "Error while trying to parse file: " << path << '\n'
+ << "message: " << e.what() << std::endl;
+ }
+}
+
void setUpDummy(tlm_generic_payload &payload, Rank rank, Bank bank)
{
payload.set_address(bank.getStartAddress());
diff --git a/DRAMSys/library/src/common/utils.h b/DRAMSys/library/src/common/utils.h
index cc0cf085..ed17bb3d 100644
--- a/DRAMSys/library/src/common/utils.h
+++ b/DRAMSys/library/src/common/utils.h
@@ -45,6 +45,8 @@
#include
#include
#include "dramExtensions.h"
+#include
+#include
#include "../common/third_party/nlohmann/single_include/nlohmann/json.hpp"
#define DEF_SINGLETON( NAME ) \
@@ -144,6 +146,8 @@ unsigned int uIntParameter(nlohmann::json obj, std::string name);
double doubleParameter(nlohmann::json obj, std::string name);
std::string stringParameter(nlohmann::json obj);
+nlohmann::json parseJSON(std::string path);
+
void setUpDummy(tlm::tlm_generic_payload &payload, Rank rank = Rank(0), Bank bank = Bank(0));
#endif // UTILS_H
diff --git a/DRAMSys/library/src/configuration/ConfigurationLoader.cpp b/DRAMSys/library/src/configuration/ConfigurationLoader.cpp
index ac4b485f..a4e1509e 100644
--- a/DRAMSys/library/src/configuration/ConfigurationLoader.cpp
+++ b/DRAMSys/library/src/configuration/ConfigurationLoader.cpp
@@ -36,16 +36,6 @@
*/
#include "ConfigurationLoader.h"
-#include "memspec/MemSpec.h"
-#include "memspec/MemSpecDDR3.h"
-#include "memspec/MemSpecDDR4.h"
-#include "memspec/MemSpecWideIO.h"
-#include "memspec/MemSpecLPDDR4.h"
-#include "memspec/MemSpecWideIO2.h"
-#include "memspec/MemSpecHBM2.h"
-#include "memspec/MemSpecGDDR5.h"
-#include "memspec/MemSpecGDDR5X.h"
-#include "memspec/MemSpecGDDR6.h"
using json = nlohmann::json;
@@ -53,7 +43,7 @@ void ConfigurationLoader::loadSimConfig(Configuration &config,
std::string simconfigUri)
{
- json doc = json::parse(std::ifstream(simconfigUri));
+ json doc = parseJSON(simconfigUri);
auto simconfig = doc["simconfig"].get_ptr();
loadConfigJson(config, simconfig);
}
@@ -62,7 +52,7 @@ void ConfigurationLoader::loadSimConfig(Configuration &config,
void ConfigurationLoader::loadTemperatureSimConfig(Configuration &config,
std::string thermalsimconfigUri)
{
- json doc = json::parse(std::ifstream(thermalsimconfigUri));
+ json doc = parseJSON(thermalsimconfigUri);
auto thermalconfig = doc["thermalsimconfig"].get_ptr();
loadConfigJson(config, thermalconfig);
@@ -83,7 +73,7 @@ void ConfigurationLoader::loadMCConfig(Configuration &config,
std::string mcconfigUri)
{
config.mcconfigUri = mcconfigUri;
- json doc = json::parse(std::ifstream(mcconfigUri));
+ json doc = parseJSON(mcconfigUri);
auto mcconfig = doc["mcconfig"].get_ptr();
loadConfigJson(config, mcconfig);
}
@@ -92,7 +82,7 @@ void ConfigurationLoader::loadMCConfig(Configuration &config,
void ConfigurationLoader::loadMemSpec(Configuration &config, std::string memspecUri)
{
config.memspecUri = memspecUri;
- json doc = json::parse(std::ifstream(memspecUri));
+ json doc = parseJSON(memspecUri);
auto memspec = doc["memspec"].get_ptr();
loadMemSpec(config, memspec);
}
diff --git a/DRAMSys/library/src/configuration/ConfigurationLoader.h b/DRAMSys/library/src/configuration/ConfigurationLoader.h
index 426926dc..fad6c7f5 100644
--- a/DRAMSys/library/src/configuration/ConfigurationLoader.h
+++ b/DRAMSys/library/src/configuration/ConfigurationLoader.h
@@ -42,6 +42,16 @@
#include "../common/third_party/nlohmann/single_include/nlohmann/json.hpp"
#include "../common/utils.h"
#include "Configuration.h"
+#include "memspec/MemSpec.h"
+#include "memspec/MemSpecDDR3.h"
+#include "memspec/MemSpecDDR4.h"
+#include "memspec/MemSpecWideIO.h"
+#include "memspec/MemSpecLPDDR4.h"
+#include "memspec/MemSpecWideIO2.h"
+#include "memspec/MemSpecHBM2.h"
+#include "memspec/MemSpecGDDR5.h"
+#include "memspec/MemSpecGDDR5X.h"
+#include "memspec/MemSpecGDDR6.h"
class ConfigurationLoader
{
diff --git a/DRAMSys/library/src/configuration/TemperatureSimConfig.h b/DRAMSys/library/src/configuration/TemperatureSimConfig.h
index b70e83c5..b540afd0 100644
--- a/DRAMSys/library/src/configuration/TemperatureSimConfig.h
+++ b/DRAMSys/library/src/configuration/TemperatureSimConfig.h
@@ -81,7 +81,7 @@ struct TemperatureSimConfig
+ powerInfoFile;
// Load the JSON file into memory and parse it
- nlohmann::json powInfoElem = nlohmann::json::parse(std::ifstream(powerInfoFile));
+ nlohmann::json powInfoElem = parseJSON(powerInfoFile);
if (powInfoElem["powerInfo"].empty()){
// Invalid file
diff --git a/DRAMSys/library/src/simulation/DRAMSys.cpp b/DRAMSys/library/src/simulation/DRAMSys.cpp
index 53862040..9885d382 100644
--- a/DRAMSys/library/src/simulation/DRAMSys.cpp
+++ b/DRAMSys/library/src/simulation/DRAMSys.cpp
@@ -119,7 +119,7 @@ DRAMSys::DRAMSys(sc_module_name name,
std::string simName;
simName = Configuration::getInstance().simulationName;
- nlohmann::json simulationdoc = nlohmann::json::parse(std::ifstream(simulationToRun));
+ nlohmann::json simulationdoc = parseJSON(simulationToRun);
if (!simulationdoc["simulation"]["simulationid"].empty()) {
std::string sid = simulationdoc["simulation"]["simulationid"];
diff --git a/DRAMSys/library/src/simulation/Setup.cpp b/DRAMSys/library/src/simulation/Setup.cpp
index eb0ecd0d..4eaa8aa0 100644
--- a/DRAMSys/library/src/simulation/Setup.cpp
+++ b/DRAMSys/library/src/simulation/Setup.cpp
@@ -44,7 +44,7 @@ Setup::Setup(std::string uri,
{
// Load Simulation:
- nlohmann::json simulationdoc = nlohmann::json::parse(std::ifstream(uri));
+ nlohmann::json simulationdoc = parseJSON(uri);
if (simulationdoc["simulation"].empty())
reportFatal("SimulationManager",
diff --git a/DRAMSys/library/src/simulation/TraceSetup.cpp b/DRAMSys/library/src/simulation/TraceSetup.cpp
index 5f0fb38d..5458131c 100644
--- a/DRAMSys/library/src/simulation/TraceSetup.cpp
+++ b/DRAMSys/library/src/simulation/TraceSetup.cpp
@@ -40,7 +40,7 @@ TraceSetup::TraceSetup(std::string uri,
std::vector *devices)
{
// Load Simulation:
- nlohmann::json simulationdoc = nlohmann::json::parse(std::ifstream(uri));
+ nlohmann::json simulationdoc = parseJSON(uri);
if (simulationdoc["simulation"].empty())
diff --git a/README.md b/README.md
index 26113a0d..6b5215e3 100644
--- a/README.md
+++ b/README.md
@@ -121,12 +121,12 @@ $ ./DRAMSys
To run DRAMSys with a specific config:
```bash
-$ ./DRAMSys ../../DRAMSys/library/resources/simulations/ddr3-example.xml
+$ ./DRAMSys ../../DRAMSys/library/resources/simulations/ddr3-example.json
```
To run DRAMSys with a specific config and a resource folder somewhere else to the standard:
```bash
-$ ./DRAMSys ../../DRAMSys/tests/example_ddr3/simulations/ddr3-example.xml ../../DRAMSys/tests/example_ddr3/
+$ ./DRAMSys ../../DRAMSys/tests/example_ddr3/simulations/ddr3-example.json ../../DRAMSys/tests/example_ddr3/
```
From the build directory use the commands below to execute the traceAnalyzer.
@@ -175,50 +175,54 @@ section.
### DRAMSys Configuration
-The **DRAMSys** executable supports one argument which is a XML file that
-contains configurable aspects of the desired simulation. If no argument is
-passed through the command line a default configuration file will be loaded.
+The **DRAMSys** executable supports one argument which is a JSON file that
+contains certain arguments and the path of other configuration files for the
+desired simulation. If no argument is passed through the command line a default
+configuration file will be loaded.
-The XML code below shows a typic configuration:
+The JSON code below shows a typic configuration:
-```xml
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ddr3_example.stl
- ddr3_SAMSUNG_M471B5674QH0_DIMM_example.stl
-
-
+```json
+{
+ "simulation": {
+ "simulationid": "ddr3-example2-id",
+ "simconfig": "ddr3.json",
+ "thermalconfig": "config.json",
+ "memspec": "MICRON_1Gb_DDR3-1600_8bit_G.json",
+ "addressmapping": "congen_extended_solution.json",
+ "mcconfig":"fifoStrict.json",
+ "tracesetup": [{
+ "clkMhz": 300,
+ "name": "ddr3_example.stl"},
+ {
+ "clkMhz": 400,
+ "name": "ddr3_example.stl"}
+ ]
+ }
+}
```
-Some configuration fields reference other XML files which contain more
+Fields Description
+ "simulationid": Simulation file identifier
+ "simconfig": Configuration file for the DRAMSys Simulator
+ "thermalconfig": Temperature Simulator Configuration File
+ "memspec": Memory Device Specification File
+ "addressmapping":Addressmapping Configuration of the Memory Controller File.
+ "mcconfig": Memory Controller Configuration File.
+ "tracesetup": The trace setup is only used in standalone mode.
+ In library mode e.g. in Platform Architect the trace setup is ignored.
+ Each device should be addes as a json object inside the "tracesetup" array.
+
+Each **tracesetup** device configuration consists of two parameters - clkMhz
+(operation frequency for this device) - and a **trace file**.
+
+Some configuration fields reference other JSON files which contain more
specialized chunks of the configuration like memory specification, address
mapping and memory configurations
-The XML configuration files are parsed by the program and the configuration
+The JSON configuration files are parsed by the program and the configuration
details extracted are assigned to the correspondent attributes of the internal
configuration structure.
-The **device** configuration consists of two parameters - clkMhz
-(operation frequency for this device) - and a **trace file**.
#### Trace files
@@ -280,25 +284,32 @@ Below, the sub-configurations are listed and explained.
- **Simulator Configuration**
The content of
- [ddr3.xml](DRAMSys/library/resources/configs/simulator/ddr3.xml) is
+ [ddr3.json](DRAMSys/library/resources/configs/simulator/ddr3.json) is
presented below as an example.
- ```xml
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ```
+```json
+{
+ "simconfig": {
+ "AddressOffset": "0",
+ "CheckTLM2Protocol": "0",
+ "DatabaseRecording": "1",
+ "Debug": "0",
+ "ECCControllerMode": "Disabled",
+ "EnableWindowing": "0",
+ "ErrorCSVFile": "",
+ "ErrorChipSeed": "42",
+ "NumberOfDevicesOnDIMM": "8",
+ "NumberOfMemChannels": "1",
+ "PowerAnalysis": "0",
+ "SimulationName": "ddr3",
+ "SimulationProgressBar": "1",
+ "StoreMode": "NoStorage",
+ "ThermalSimulation": "0",
+ "UseMalloc": "0",
+ "WindowSize": "1000"
+ }
+}
+```
- *SimulationName* (boolean)
- Give the name of the simulation for distingushing from other simulations.
@@ -345,24 +356,27 @@ Below, the sub-configurations are listed and explained.
- **Temperature Simulator Configuration**
The content of
- [config.xml](DRAMSys/library/resources/configs/thermalsim/config.xml) is
+ [config.json](DRAMSys/library/resources/configs/thermalsim/config.json) is
presented below as an example.
- ```xml
-
-
-
-
-
-
-
-
-
-
-
-
-
+```json
+{
+ "thermalsimconfig": {
+ "TemperatureScale": "Celsius",
+ "StaticTemperatureDefaultValue": "89",
+ "ThermalSimPeriod":"100",
+ "ThermalSimUnit":"us",
+ "PowerInfoFile": "powerInfo.json",
+ "IceServerIp": "127.0.0.1",
+ "IceServerPort": "11880",
+ "SimPeriodAdjustFactor" : "10",
+ "NPowStableCyclesToIncreasePeriod": "5",
+ "GenerateTemperatureMap": "1",
+ "GeneratePowerMap": "1"
+ }
+}
```
+ The following types should be respected but written inside string quotes, not directly.
- *TemperatureScale* (string)
- "Celsius"
@@ -401,76 +415,16 @@ Below, the sub-configurations are listed and explained.
A file with memory specifications. This information comes from datasheets and
measurements, and usually does not change.
+ The fields inside "mempowerspec" can be written directly as a **double** type. "memoryId" and "memoryType" are **string**. The others are **unsigned int** as it can be checked in the files at .
+
+
- **Address Mapping**
- There are currently two different file formats to describe the address mapping. This software automatically chooses the correct interpreter using the name of the xml root node as selection criterion.
+ Currently the CONGEN format is supported. It provides bit-wise granularity. It also provides the possibility of XOR address bits in order to map page misses to different banks and reduce latencies.
+ There is an optional field called **SOLUTION**. If added it will look for the solution with the field "ID" equals to 0.
+ Example with "SOLUTION" field at:
+ Example without "SOLUTION" field at:
-- **Standard XML file format**
-
- XML files describe the address mapping to be used in the simulation.
-
- Example for 1GB x64 DIMM with: 8 x 1 Gbit x8 Devices (Micron MT41J128M8) with Page Size: 1KB
-
- [am_ddr3_8x1Gbx8_dimm_p1KB_brc.xml](DRAMSys/library/resources/configs/amconfigs/am_ddr3_8x1Gbx8_dimm_p1KB_brc.xml)
-
- ```xml
-
-
-
-
-
-
-
-
-
- ```
-
- Some more examples with graphical representation follow:
-
- [am_wideio.xml](DRAMSys/library/resources/configs/amconfigs/am_wideio.xml)
-
- ```xml
-
-
-
-
-
-
-
-
-
- ```
-
- 
-
- ```xml
-
-
-
-
-
-
-
-
-
- ```
-
- 
- **ConGen XML file format**
@@ -483,44 +437,39 @@ Below, the sub-configurations are listed and explained.
Used data:
- "CONFIG": Gives you information about the ConGen configuration
- - "SOLUTION":
- - Attribute "ID": Unique identifier for this solution. It is used to specify a certain solution.
+ - "SOLUTION": (OBS.:Different solutions should be added as json objects inside the "SOLUTION" array)
+ - "ID": Unique identifier for this solution. It is used to specify a certain solution.
- "XOR": Defines an xor connection of a bank and row bit
- "BANK_BIT": Number of an address bit which is connected to a bank bit
- "ROW_BIT": Number of an address bit which is connected to a row bit
-```xml
-
- test
- 84
-
- 3
- 14
- 10
- 3
- 3
-
-
-
- 28
- 27
- 29
- 16
- 11
- 14
- 15
- 25
- 26
- 22
- 24
- 23
- 21
- 20
- 19
- 18
- 17
-
-
+```json
+{
+ "CONGEN":
+ {"SOLUTION":[{
+ "XOR":[
+ {
+ "FIRST":13,
+ "SECOND":16
+ }
+ ],
+ "BYTE_BIT": [
+ 0,1,2
+ ],
+ "COLUMN_BIT": [
+ 3,4,5,6,7,8,9,10,11,12
+ ],
+ "BANK_BIT": [
+ 13,14,15
+ ],
+ "ROW_BIT": [
+ 16,17,18,19,20,21,22,23,24,25,26,27,28,29
+ ],
+ "ID": 0
+ }]
+ }
+}
+
```
@@ -528,57 +477,22 @@ Below, the sub-configurations are listed and explained.
An example follows.
- ```xml
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+```json
+{
+ "mcconfig": {
+ "PagePolicy": "Open",
+ "Scheduler": "Fifo",
+ "RequestBufferSize": "8",
+ "CmdMux": "Oldest",
+ "RespQueue": "Fifo",
+ "RefreshPolicy": "Rankwise",
+ "RefreshMode": "1",
+ "RefreshMaxPostponed": "8",
+ "RefreshMaxPulledin": "8",
+ "PowerDownPolicy": "NoPowerDown",
+ "PowerDownTimeout": "100"
+ }
+}
```
- *BankwiseLogic* (boolean)
@@ -791,7 +705,7 @@ $ cd DRAMSys/library/resources
A description of the content each directory follows.
- **resources**
- - **configs**: XML files that specify details of the simulation.
+ - **configs**: JSON files that specify details of the simulation.
- amconfigs: address mapping configs.
- mcconfigs: memory controller configs.
- memspecs: memory specification files (technology dependent).
@@ -867,9 +781,9 @@ There is a list of main configuration files on the top of the script:
```bash
sim_files="
-ddr3-example.xml
-ddr3-single-device.xml
-wideio-example.xml
+ddr3-example.json
+ddr3-single-device.json
+wideio-example.json
"
```
@@ -1205,53 +1119,6 @@ simulation server.
#### Usage Example with Thermal Simulation
-The DRAMSys' main configuration file is presented below.
-
-```xml
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- test_error.stl
-
-
-```
-
-Enable the error model in fr_fcfs.xml.
-
-```xml
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-```
-
Generate the input trace file for DRAMSys.
```bash
@@ -1382,7 +1249,7 @@ in a conf directory of this building directory.
Then the simulation can be started with:
```bash
-./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-example.xml config.ini 1
+./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-example.json config.ini 1
```
Let the simulation run for some seconds and then stop it with **CTRL-C**.
@@ -1396,7 +1263,7 @@ All essential files for some functional examples are provided.
Execute a hello world application:
```bash
-./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.xml ../../DRAMSys/gem5/configs/hello.ini 1
+./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.json ../../DRAMSys/gem5/configs/hello.ini 1
```
A **Hello world!** message should be printed to the standard output.
@@ -1404,11 +1271,11 @@ A **Hello world!** message should be printed to the standard output.
Execute applications:
```bash
-./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.xml ../../DRAMSys/gem5/gem5_se/Oscar/config.ini 1
+./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.json ../../DRAMSys/gem5/gem5_se/Oscar/config.ini 1
```
```bash
-./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.xml ../../DRAMSys/gem5/gem5_se/Bubblesort/config.ini 1
+./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.json ../../DRAMSys/gem5/gem5_se/Bubblesort/config.ini 1
```
Wait some minutes for the application to finish.
@@ -1462,7 +1329,7 @@ library, benchmarks, disk image, etc.) can be obtained with [gem5.TnT].
Start a simulation. Example:
```bash
-dram.sys/build/gem5$ ./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/rgrsim-gem5-fs.xml ../../DRAMSys/gem5/gem5_fs/parsec_arm_minor_2c_8GB/config.ini 1
+dram.sys/build/gem5$ ./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/rgrsim-gem5-fs.json ../../DRAMSys/gem5/gem5_fs/parsec_arm_minor_2c_8GB/config.ini 1
```
Optionally, open another terminal or tab and connect to gem5.
@@ -1584,7 +1451,7 @@ executable=../../DRAMSys/gem5/gem5_se/parsec-arm/blackscholes/blackscholes
Start a simulation. Example:
```bash
-dram.sys/build/gem5$ ./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/rgrsim-gem5-se.xml ../../DRAMSys/gem5/gem5_se/parsec-arm/config.ini 1
+dram.sys/build/gem5$ ./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/rgrsim-gem5-se.json ../../DRAMSys/gem5/gem5_se/parsec-arm/config.ini 1
```
### Boot Linux with gem5 and DRAMSys
@@ -1607,42 +1474,35 @@ The config.ini should be copied again to the DRAMSys_gem5 build folder.
The simconfig should be changed in order to support storage and address offsets:
-``` xml
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+``` json
+{
+ "simconfig": {
+ "CheckTLM2Protocol": "0",
+ "DatabaseRecording": "1",
+ "Debug": "0",
+ "ECCControllerMode": "Disabled",
+ "EnableWindowing": "0",
+ "ErrorCSVFile": "",
+ "ErrorChipSeed": "42",
+ "NumberOfDevicesOnDIMM": "8",
+ "NumberOfMemChannels": "1",
+ "PowerAnalysis": "0",
+ "SimulationName": "ddr3",
+ "SimulationProgressBar": "1",
+ "ThermalSimulation": "0",
+ "WindowSize": "1000"
-
-
-
-
-
+ "StoreMode": "Store",
+ "AddressOffset": "2147483648",
+ "UseMalloc": "1",
+ }
+}
```
Then start DRAMSys_gem5 with the following command:
```bash
-./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-example.xml config.ini 1
+./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-example.json config.ini 1
```
For further sophisticated address mappings or scenarios checkout the file DRAMSys/gem5/main.cpp
@@ -1660,7 +1520,7 @@ tar -xaf DRAMSys/gem5/boot_linux/linux-aarch32-ael.img.tar.gz -C DRAMSys/gem5/bo
Execute the example:
```bash
-./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-boot-linux.xml ../../DRAMSys/gem5/configs/boot_linux.ini 1
+./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-boot-linux.json ../../DRAMSys/gem5/configs/boot_linux.ini 1
```
Open a new terminal and connect to gem5:
@@ -1683,7 +1543,7 @@ python files are stored [here](DRAMSys/gem5/examples).
This is an example for running an elastic trace:
```bash
-./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-example.xml ../../DRAMSys/gem5/configs/singleElasticTraceReplay.ini 1
+./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-example.json ../../DRAMSys/gem5/configs/singleElasticTraceReplay.ini 1
```
An overview of the architcture being simulated is presented below:
@@ -1695,13 +1555,13 @@ Note that the address offset is usually zero for elastic traces.
Another example with L2 cache:
```bash
-./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-example.xml ../../DRAMSys/gem5/configs/singleElasticTraceReplayWithL2.ini 1
+./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-example.json ../../DRAMSys/gem5/configs/singleElasticTraceReplayWithL2.ini 1
```
If two elastic traces should be used run the simulation with the following example:
```
-./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-example.xml ../../DRAMSys/gem5/configs/dualElasticTraceReplay.ini 2
+./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-example.json ../../DRAMSys/gem5/configs/dualElasticTraceReplay.ini 2
```
An overview of the architcture being simulated is presented below:
@@ -1916,7 +1776,7 @@ After building, go the the folder where *DRAMSys_gem5* is located.
Test with a hello world application for X86.
```bash
-./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.xml ../../DRAMSys/gem5/gem5_se/hello-x86/config.ini 1
+./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.json ../../DRAMSys/gem5/gem5_se/hello-x86/config.ini 1
```
A **Hello world!** message should be printed to the standard output.
@@ -1931,98 +1791,98 @@ Examples:
**Basicmath**
```bash
-./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.xml ../../DRAMSys/gem5/gem5_se/MiBench/automotive/basicmath/small/config.ini 1
-./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.xml ../../DRAMSys/gem5/gem5_se/MiBench/automotive/basicmath/large/config.ini 1
+./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.json ../../DRAMSys/gem5/gem5_se/MiBench/automotive/basicmath/small/config.ini 1
+./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.json ../../DRAMSys/gem5/gem5_se/MiBench/automotive/basicmath/large/config.ini 1
```
**Bitcount**
```bash
-./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.xml ../../DRAMSys/gem5/gem5_se/MiBench/automotive/bitcount/small/config.ini 1
-./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.xml ../../DRAMSys/gem5/gem5_se/MiBench/automotive/bitcount/large/config.ini 1
+./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.json ../../DRAMSys/gem5/gem5_se/MiBench/automotive/bitcount/small/config.ini 1
+./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.json ../../DRAMSys/gem5/gem5_se/MiBench/automotive/bitcount/large/config.ini 1
```
**Qsort**
```bash
-./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.xml ../../DRAMSys/gem5/gem5_se/MiBench/automotive/qsort/small/config.ini 1
-./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.xml ../../DRAMSys/gem5/gem5_se/MiBench/automotive/qsort/large/config.ini 1
+./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.json ../../DRAMSys/gem5/gem5_se/MiBench/automotive/qsort/small/config.ini 1
+./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.json ../../DRAMSys/gem5/gem5_se/MiBench/automotive/qsort/large/config.ini 1
```
**Susan**
```bash
-./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.xml ../../DRAMSys/gem5/gem5_se/MiBench/automotive/susan/small/corners/config.ini 1
-./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.xml ../../DRAMSys/gem5/gem5_se/MiBench/automotive/susan/large/corners/config.ini 1
+./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.json ../../DRAMSys/gem5/gem5_se/MiBench/automotive/susan/small/corners/config.ini 1
+./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.json ../../DRAMSys/gem5/gem5_se/MiBench/automotive/susan/large/corners/config.ini 1
-./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.xml ../../DRAMSys/gem5/gem5_se/MiBench/automotive/susan/small/edges/config.ini 1
-./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.xml ../../DRAMSys/gem5/gem5_se/MiBench/automotive/susan/large/edges/config.ini 1
+./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.json ../../DRAMSys/gem5/gem5_se/MiBench/automotive/susan/small/edges/config.ini 1
+./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.json ../../DRAMSys/gem5/gem5_se/MiBench/automotive/susan/large/edges/config.ini 1
-./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.xml ../../DRAMSys/gem5/gem5_se/MiBench/automotive/susan/small/smoothing/config.ini 1
-./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.xml ../../DRAMSys/gem5/gem5_se/MiBench/automotive/susan/large/smoothing/config.ini 1
+./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.json ../../DRAMSys/gem5/gem5_se/MiBench/automotive/susan/small/smoothing/config.ini 1
+./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.json ../../DRAMSys/gem5/gem5_se/MiBench/automotive/susan/large/smoothing/config.ini 1
```
**Network Applications**
**Dijkstra**
```bash
-./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.xml ../../DRAMSys/gem5/gem5_se/MiBench/network/dijkstra/small/config.ini 1
-./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.xml ../../DRAMSys/gem5/gem5_se/MiBench/network/dijkstra/large/config.ini 1
+./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.json ../../DRAMSys/gem5/gem5_se/MiBench/network/dijkstra/small/config.ini 1
+./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.json ../../DRAMSys/gem5/gem5_se/MiBench/network/dijkstra/large/config.ini 1
```
**Patricia**
```bash
-./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.xml ../../DRAMSys/gem5/gem5_se/MiBench/network/patricia/small/config.ini 1
-./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.xml ../../DRAMSys/gem5/gem5_se/MiBench/network/patricia/large/config.ini 1
+./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.json ../../DRAMSys/gem5/gem5_se/MiBench/network/patricia/small/config.ini 1
+./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.json ../../DRAMSys/gem5/gem5_se/MiBench/network/patricia/large/config.ini 1
```
**Security Applications**
**Blowfish Encode**
```bash
-./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.xml ../../DRAMSys/gem5/gem5_se/MiBench/security/blowfish/encode/small/config.ini 1
-./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.xml ../../DRAMSys/gem5/gem5_se/MiBench/security/blowfish/encode/large/config.ini 1
+./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.json ../../DRAMSys/gem5/gem5_se/MiBench/security/blowfish/encode/small/config.ini 1
+./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.json ../../DRAMSys/gem5/gem5_se/MiBench/security/blowfish/encode/large/config.ini 1
```
**Blowfish Decode**
```bash
-./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.xml ../../DRAMSys/gem5/gem5_se/MiBench/security/blowfish/decode/small/config.ini 1
-./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.xml ../../DRAMSys/gem5/gem5_se/MiBench/security/blowfish/decode/large/config.ini 1
+./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.json ../../DRAMSys/gem5/gem5_se/MiBench/security/blowfish/decode/small/config.ini 1
+./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.json ../../DRAMSys/gem5/gem5_se/MiBench/security/blowfish/decode/large/config.ini 1
```
**SHA**
```bash
-./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.xml ../../DRAMSys/gem5/gem5_se/MiBench/security/sha/small/config.ini 1
-./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.xml ../../DRAMSys/gem5/gem5_se/MiBench/security/sha/large/config.ini 1
+./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.json ../../DRAMSys/gem5/gem5_se/MiBench/security/sha/small/config.ini 1
+./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.json ../../DRAMSys/gem5/gem5_se/MiBench/security/sha/large/config.ini 1
```
**Telecom Applications**
**CRC32**
```bash
-./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.xml ../../DRAMSys/gem5/gem5_se/MiBench/telecomm/crc32/small/config.ini 1
-./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.xml ../../DRAMSys/gem5/gem5_se/MiBench/telecomm/crc32/large/config.ini 1
+./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.json ../../DRAMSys/gem5/gem5_se/MiBench/telecomm/crc32/small/config.ini 1
+./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.json ../../DRAMSys/gem5/gem5_se/MiBench/telecomm/crc32/large/config.ini 1
```
**FFT**
```bash
-./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.xml ../../DRAMSys/gem5/gem5_se/MiBench/telecomm/fft/small/config.ini 1
-./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.xml ../../DRAMSys/gem5/gem5_se/MiBench/telecomm/fft/large/config.ini 1
+./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.json ../../DRAMSys/gem5/gem5_se/MiBench/telecomm/fft/small/config.ini 1
+./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.json ../../DRAMSys/gem5/gem5_se/MiBench/telecomm/fft/large/config.ini 1
```
**FFT-INV**
```bash
-./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.xml ../../DRAMSys/gem5/gem5_se/MiBench/telecomm/fft-inv/small/config.ini 1
-./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.xml ../../DRAMSys/gem5/gem5_se/MiBench/telecomm/fft-inv/large/config.ini 1
+./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.json ../../DRAMSys/gem5/gem5_se/MiBench/telecomm/fft-inv/small/config.ini 1
+./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.json ../../DRAMSys/gem5/gem5_se/MiBench/telecomm/fft-inv/large/config.ini 1
```
**GSM Encode**
```bash
-./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.xml ../../DRAMSys/gem5/gem5_se/MiBench/telecomm/gsm/encode/small/config.ini 1
-./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.xml ../../DRAMSys/gem5/gem5_se/MiBench/telecomm/gsm/encode/large/config.ini 1
+./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.json ../../DRAMSys/gem5/gem5_se/MiBench/telecomm/gsm/encode/small/config.ini 1
+./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.json ../../DRAMSys/gem5/gem5_se/MiBench/telecomm/gsm/encode/large/config.ini 1
```
**GSM Decode**
```bash
-./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.xml ../../DRAMSys/gem5/gem5_se/MiBench/telecomm/gsm/decode/small/config.ini 1
-./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.xml ../../DRAMSys/gem5/gem5_se/MiBench/telecomm/gsm/decode/large/config.ini 1
+./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.json ../../DRAMSys/gem5/gem5_se/MiBench/telecomm/gsm/decode/small/config.ini 1
+./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/ddr3-gem5-se.json ../../DRAMSys/gem5/gem5_se/MiBench/telecomm/gsm/decode/large/config.ini 1
```
Check the folder [DRAMSys/gem5/gem5_se/MiBench](DRAMSys/gem5/gem5_se/MiBench) for all applications and configuration files.
@@ -2041,7 +1901,7 @@ library, benchmarks, disk image, etc.) can be obtained with [gem5.TnT].
Start a simulation. Example:
```bash
-dram.sys/build/gem5$ ./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/rgrsim-gem5-fs.xml ../../DRAMSys/gem5/gem5_fs/arm64/config.ini 1
+dram.sys/build/gem5$ ./DRAMSys_gem5 ../../DRAMSys/library/resources/simulations/rgrsim-gem5-fs.json ../../DRAMSys/gem5/gem5_fs/arm64/config.ini 1
```
Optionally, open another terminal or tab and connect to gem5.