<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to Configuration</title><link>https://sourceforge.net/p/sc-rex/wiki/Configuration/</link><description>Recent changes to Configuration</description><atom:link href="https://sourceforge.net/p/sc-rex/wiki/Configuration/feed" rel="self"/><language>en</language><lastBuildDate>Mon, 29 Apr 2013 13:45:45 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/sc-rex/wiki/Configuration/feed" rel="self" type="application/rss+xml"/><item><title>Configuration modified by Claudio Scordino</title><link>https://sourceforge.net/p/sc-rex/wiki/Configuration/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v3
+++ v4
@@ -33,20 +33,9 @@
 Note that in this example:

 * the architecture contains only one processor, of type *"mycpu"*
-* the file related to the data memory exported by the kernel driver is *''/dev/mycpu-dmemory.0''*
-* the result of the computation can be found at address 0
-* the offset of the input file for data memory is 288; this depends on the compiler used.
-* the file related to the instruction memory exported by the kernel driver is *''/dev/mycpu-imemory.0''*
-* the file related to the status register exported by the kernel driver is *''/sys/devices/virtual/mycpu_core/mycpu-smemory.0/mycpu_core_status''*. In this file:
-    * 1 means that the computation has finished
-    * 2 means that the processor is idle
-    * 4 means that an exception happened
-    * 8 means that the processor has been preempted
-* the file related to the control register exported by the kernel driver is *''/sys/devices/virtual/mycpu_core/mycpu-smemory.0/mycpu_core_ctl''*. For this file:
-    * Writing 1 starts the processor
-    * Writing 2 stops the processor
-    * Writing 4 preempts the processor
-* The processor has a set of reconfigurable properties (i.e., issuewidth and cache block) each one with an initial setting and a file to trigger the reconfiguration.
+* the file related to the data memory exported by the kernel driver is *''/dev/mycpu.0-dmemory.0''*
+* similarly, the file related to the instruction memory exported by the kernel driver is *''/dev/mycpu.0-imemory.0''*
+* The processor has a set of reconfigurable properties (i.e., issuewidth and cache size) each one with an initial setting and a file to trigger the reconfiguration.

 This file must be written based on files/values exported by your specific kernel driver, of course. The file is read by the Supervisor only once, during the boot.

&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Claudio Scordino</dc:creator><pubDate>Mon, 29 Apr 2013 13:45:45 -0000</pubDate><guid>https://sourceforge.neta5a206e9b5b228439f564e44442faaf44b039cf7</guid></item><item><title>Configuration modified by Claudio Scordino</title><link>https://sourceforge.net/p/sc-rex/wiki/Configuration/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v2
+++ v3
@@ -11,14 +11,24 @@
     
     
     
-        
-        
-        
-        
-        
-        
+        
+            
+        
+        
+            
+            
+        
     
     
+    

 Note that in this example:

&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Claudio Scordino</dc:creator><pubDate>Mon, 29 Apr 2013 13:44:31 -0000</pubDate><guid>https://sourceforge.net00ac4471e922c30d65bcb44b530b8a79d055a415</guid></item><item><title>WikiPage Configuration modified by Claudio Scordino</title><link>https://sourceforge.net/p/sc-rex/wiki/Configuration/</link><description>&lt;pre&gt;--- v1
+++ v2
@@ -1,7 +1,7 @@
 Configuration of SC-REX
 =======================
 
-This Section explains how to configure SC_REX, assumeing that SC-REX has been already built and installed as explained in Section [Install].
+This Section explains how to configure SC_REX, assuming it has been already built and installed as explained in Section [Install].
 
 ###Architecture file###
 
&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Claudio Scordino</dc:creator><pubDate>Wed, 27 Jun 2012 13:22:22 -0000</pubDate><guid>https://sourceforge.net7942a88bc733da193d352f1cc82903a1055c2982</guid></item><item><title>WikiPage Configuration modified by Claudio Scordino</title><link>https://sourceforge.net/p/sc-rex/wiki/Configuration/</link><description>Configuration of SC-REX
=======================

This Section explains how to configure SC_REX, assumeing that SC-REX has been already built and installed as explained in Section [Install].

###Architecture file###

The XML file of the architecture is located in */etc/screx/architecture.xml* and describes the underlying architecture (i.e., the set of reconfigurable devices, their properties, the files to access memories and to modify each property).
The XML file has a structure similar to the following example:

    &lt;?xml version="1.0" encoding="utf-8"?&gt;
    &lt;architecture&gt;
    &lt;reconf_processor type="mycpu" name="0"&gt;
        &lt;data_memory file="/dev/mycpu-dmemory.0" file_offset="288" result_offset="0"/&gt;
        &lt;instruction_memory file="/dev/mycpu-imemory.0"/&gt;
        &lt;control file="/sys/devices/virtual/mycpu_core/mycpu-smemory.0/mycpu_core_ctl" start="1" stop="2" preempt="4"/&gt;
        &lt;states file="/sys/devices/virtual/mycpu_core/mycpu-smemory.0/mycpu_core_status" computation_finished="1" idle="2" exception_thrown="4" preempted ="8"/&gt;
        &lt;property name="issuewidth" file="/sys/devices/virtual/mycpu_core/mycpu-smemory.0/mycpu_issuewidth" initial_setting="0"/&gt;
        &lt;property name="cacheblock" file="/sys/devices/virtual/mycpu_core/mycpu-smemory.0/mycpu_cacheblock" initial_setting="64"/&gt;
    &lt;/reconf_processor&gt;
    &lt;/architecture&gt;

Note that in this example:

* the architecture contains only one processor, of type *"mycpu"*
* the file related to the data memory exported by the kernel driver is *''/dev/mycpu-dmemory.0''*
* the result of the computation can be found at address 0
* the offset of the input file for data memory is 288; this depends on the compiler used.
* the file related to the instruction memory exported by the kernel driver is *''/dev/mycpu-imemory.0''*
* the file related to the status register exported by the kernel driver is *''/sys/devices/virtual/mycpu_core/mycpu-smemory.0/mycpu_core_status''*. In this file:
    * 1 means that the computation has finished
    * 2 means that the processor is idle
    * 4 means that an exception happened
    * 8 means that the processor has been preempted
* the file related to the control register exported by the kernel driver is *''/sys/devices/virtual/mycpu_core/mycpu-smemory.0/mycpu_core_ctl''*. For this file:
    * Writing 1 starts the processor
    * Writing 2 stops the processor
    * Writing 4 preempts the processor
* The processor has a set of reconfigurable properties (i.e., issuewidth and cache block) each one with an initial setting and a file to trigger the reconfiguration.

This file must be written based on files/values exported by your specific kernel driver, of course. The file is read by the Supervisor only once, during the boot.

###Reconfiguration tables###

The XML file for the reconfiguration allows to understand the new configuration for each property of each reconfigurable device given the information about QoS and phase received at run-time by the application. It's a sort of "big table" written in XML. The XML file has a structure similar to the following example:

    &lt;?xml version="1.0" encoding="utf-8"?&gt;
    &lt;!-- #define PHASE_QOS_SMALL	0 --&gt;
    &lt;!-- #define PHASE_QOS_MEDIUM	1 --&gt;
    &lt;!-- #define PHASE_QOS_HIGH	2 --&gt;
    &lt;!-- #define PHASE_NOTYPE	0 &lt;&lt; 0 // No type specified --&gt;
    &lt;!-- #define PHASE_PARALLEL	1 &lt;&lt; 0 // Potentially parallel --&gt;
    &lt;!-- #define PHASE_STRIDED	1 &lt;&lt; 1 // Strided --&gt;
    &lt;!-- #define PHASE_MANY_REFS	1 &lt;&lt; 2 // Many data references --&gt;
    &lt;!-- #define PHASE_LOOP		1 &lt;&lt; 3 // Intensive loop --&gt;
    &lt;!-- QOS = 0 (QOS_SMALL) PHASE_TYPE = 0 (PHASE_NOTYPE) --&gt;
    &lt;configurationtable&gt;
    &lt;configuration qos="0" phase_type="0"&gt;
	&lt;power_consumption value="low"&gt;
		&lt;reconf_processor type="vex"&gt;
			&lt;property name="forwarding" value="0"/&gt;
			&lt;property name="issuewidth" value="1"/&gt;
			&lt;property name="registerfile" value="100"/&gt;
			&lt;property name="cache_size" value="0"/&gt;
			&lt;property name="cache_blocksize" value="14"/&gt;
		&lt;/reconf_processor&gt;
	&lt;/power_consumption&gt;
	&lt;power_consumption value="medium"&gt;
		&lt;reconf_processor type="vex"&gt;
			&lt;property name="forwarding" value="0"/&gt;
			&lt;property name="issuewidth" value="1"/&gt;
			&lt;property name="registerfile" value="100"/&gt;
			&lt;property name="cache_size" value="0"/&gt;
			&lt;property name="cache_blocksize" value="14"/&gt;
		&lt;/reconf_processor&gt;
	&lt;/power_consumption&gt;
	&lt;power_consumption value="high"&gt;
		&lt;reconf_processor type="vex"&gt;
			&lt;property name="forwarding" value="0"/&gt;
			&lt;property name="issuewidth" value="1"/&gt;
			&lt;property name="registerfile" value="100"/&gt;
			&lt;property name="cache_size" value="0"/&gt;
			&lt;property name="cache_blocksize" value="14"/&gt;
		&lt;/reconf_processor&gt;
	&lt;/power_consumption&gt;
    &lt;/configuration&gt;


Some examples of these files can be found inside the */etc/screx/* directory. The absolute path of the file is communicated by the application whenever it sends a request for a new task to the supervisor.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Claudio Scordino</dc:creator><pubDate>Wed, 27 Jun 2012 13:15:14 -0000</pubDate><guid>https://sourceforge.net896778435c3977a6d9f2b1cafa5a30d31e45fd79</guid></item></channel></rss>