29.01.2015 Views

Embedded Software for SoC - Grupo de Mecatrônica EESC/USP

Embedded Software for SoC - Grupo de Mecatrônica EESC/USP

Embedded Software for SoC - Grupo de Mecatrônica EESC/USP

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Analysis of HW/SW On-Chip Communication in MP SOC Design 131<br />

since simultaneous accesses to the physical buffer are possible. For instance,<br />

if the physical buffer size is 2, two communication transactions with data<br />

size of one can use the same physical buffer. The number of communication<br />

transactions is not limited unless the buffer is full. In terms of physical buffer<br />

implementation, we assume the number of memory ports of physical buffer<br />

as the maximum number of simultaneous accesses to the physical buffer. Our<br />

future work inclu<strong>de</strong>s ILP <strong>for</strong>mulation <strong>for</strong> the case where the number of<br />

memory ports of physical buffer is less than the maximum number of<br />

simultaneous accesses to the physical buffer.<br />

For the ILP <strong>for</strong>mulation of this constraint, we use a Boolean variable<br />

is 1 if the physical buffer is used by a communication no<strong>de</strong><br />

and 0 otherwise. In our physical buffer mo<strong>de</strong>l, we assume <strong>for</strong> safety that the<br />

data is pushed to a buffer at the start time of write operation and popped at<br />

the finish time of read operation. Thus, if the access type of a no<strong>de</strong> is read,<br />

the value of is <strong>de</strong>termined as follows:<br />

or if the access type of a communication no<strong>de</strong><br />

is write,<br />

However, since is a non-linear function of another variable<br />

or it cannot be a variable in the ILP <strong>for</strong>mulation as it is. To resolve<br />

this, the condition <strong>for</strong> is <strong>for</strong>mulated as follows (<strong>for</strong> the case of write<br />

access type):<br />

where TimeMax is a big integer constant and is a dummy variable. If time<br />

the right hand si<strong>de</strong> of the equation is negative. For the left hand<br />

si<strong>de</strong> of the equation to be negative, is 0 because is equal to or smaller<br />

than TimeMax. If<br />

the right hand si<strong>de</strong> is zero or positive.<br />

should be 1 because is bigger than 1.<br />

The physical buffer contention constraints are mo<strong>de</strong>led as follows.<br />

<strong>for</strong> all physical buffer<br />

<strong>for</strong> all communication notes<br />

using<br />

where is a communication no<strong>de</strong> using n is the number of communication<br />

no<strong>de</strong>s that use physical buffer<br />

is the maximum size of<br />

physical buffer and is the data size of communication no<strong>de</strong>

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!