<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://wiki.kram.nz/index.php?action=history&amp;feed=atom&amp;title=SE701%3AFB%3AVyatkin_Alternatives_cr</id>
	<title>SE701:FB:Vyatkin Alternatives cr - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.kram.nz/index.php?action=history&amp;feed=atom&amp;title=SE701%3AFB%3AVyatkin_Alternatives_cr"/>
	<link rel="alternate" type="text/html" href="https://wiki.kram.nz/index.php?title=SE701:FB:Vyatkin_Alternatives_cr&amp;action=history"/>
	<updated>2026-06-19T15:11:57Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://wiki.kram.nz/index.php?title=SE701:FB:Vyatkin_Alternatives_cr&amp;diff=17&amp;oldid=prev</id>
		<title>Mark: New page: =Alternatives for Execution Semantics of IEC61499=  Sequential sementic implemetned in *uCrons *FUBER  Essential difference between models is block activiation and event passing.  ==Distri...</title>
		<link rel="alternate" type="text/html" href="https://wiki.kram.nz/index.php?title=SE701:FB:Vyatkin_Alternatives_cr&amp;diff=17&amp;oldid=prev"/>
		<updated>2008-02-15T19:37:24Z</updated>

		<summary type="html">&lt;p&gt;New page: =Alternatives for Execution Semantics of IEC61499=  Sequential sementic implemetned in *uCrons *FUBER  Essential difference between models is block activiation and event passing.  ==Distri...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=Alternatives for Execution Semantics of IEC61499=&lt;br /&gt;
&lt;br /&gt;
Sequential sementic implemetned in&lt;br /&gt;
*uCrons&lt;br /&gt;
*FUBER&lt;br /&gt;
&lt;br /&gt;
Essential difference between models is block activiation and event passing.&lt;br /&gt;
&lt;br /&gt;
==Distribution==&lt;br /&gt;
Two stage design&lt;br /&gt;
*application - link of fb events an data&lt;br /&gt;
*system configuration - which blocks are on which resources/devices&lt;br /&gt;
&lt;br /&gt;
TORERO provides algorithms for placing fb&amp;#039;s on devices according to communication, memory and fb execution&lt;br /&gt;
&lt;br /&gt;
==To Be Sequential==&lt;br /&gt;
6th postuluate (events outputted in the order they were created) is what makes it sequential, without this we can get parellel does not conform with &amp;#039;letter and spirit&amp;#039; of the standard&lt;br /&gt;
&lt;br /&gt;
outputted events are merely scheduled, not started&lt;br /&gt;
&lt;br /&gt;
sequential hypothesis is only one block can be running at a time, output events do not pre-empt current block, their execution is queued for later&lt;br /&gt;
&lt;br /&gt;
output events can be issued either&lt;br /&gt;
*as soon as they are called&lt;br /&gt;
*after the state is finished doing its thing&lt;br /&gt;
*after the fb hs finished doing its thing&lt;br /&gt;
&lt;br /&gt;
postuluate 5 is saying choose the first option&lt;br /&gt;
&lt;br /&gt;
although outputted imediatly standard says it should be scheduled&lt;br /&gt;
&lt;br /&gt;
==Implementation of Sequential==&lt;br /&gt;
schedular ensure two or more event inputs never occur simultanously&lt;br /&gt;
&lt;br /&gt;
schedular can be in two states&lt;br /&gt;
*receptive to external events&lt;br /&gt;
*not receptive to external even in SIFB. If SIFB arrises its stored in FIFO queue and processed next receptive state&lt;br /&gt;
&lt;br /&gt;
this leads to the creation of two FIFO queues&lt;br /&gt;
#block to blcok event queue&lt;br /&gt;
#SIFB event queue&lt;br /&gt;
&lt;br /&gt;
arrival of external event inturrepts execution and places event on SIFB event queue.  When schedular is receptive again it moves elemetns from SIFB event queue onto block to block event queue and begins processing next element on queue.&lt;br /&gt;
&lt;br /&gt;
SIFB event pre-empts current running block, but only to place on SIFB queue.  SIFB queue copied to main queue as soon as schedular recpetive.  Becomes receptives after each block run&lt;br /&gt;
&lt;br /&gt;
==Why sequential?==&lt;br /&gt;
*predicatable reaction time and invocation sequence&lt;br /&gt;
*less resources needed to implement&lt;br /&gt;
* no call stack or context switching (as in NPMTR)&lt;br /&gt;
*can be implemented in one thread&lt;br /&gt;
*customisation for handling real-time constraints (dont get this one at all)&lt;br /&gt;
&lt;br /&gt;
need more people to use sequential to see if it is actually any better for developers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Can we make it parellel==&lt;br /&gt;
event splitting is commonly interpreted as usigna  split block.  That is schedule two seperate identical events that go to different blocks on a schedular.  We could interpret it to invoke each block simultanously&lt;br /&gt;
&lt;br /&gt;
FB not necassarily in software code, each block may be on different device and run in parellel.&lt;br /&gt;
&lt;br /&gt;
By alter postulates 4 and 5 we have parellel execution&lt;br /&gt;
*output events are issued immediatly and delivered as soon as it is issued&lt;br /&gt;
*if single state emits several events they are emitted simultanously&lt;br /&gt;
&lt;br /&gt;
full discussion is beyond scope of this paper, but they dont give adidtional papers in which ot learn more&lt;br /&gt;
&lt;br /&gt;
==Why Parellel?==&lt;br /&gt;
*allow for not so short algorithms without blocking hte system&lt;br /&gt;
*event forking is more intuative&lt;br /&gt;
*multi core hardware is implemented more effeciently&lt;br /&gt;
&lt;br /&gt;
==Application Distribution==&lt;br /&gt;
FB can be mapped to different devices which are able to run independantly of each other, ie no common schedular&lt;br /&gt;
&lt;br /&gt;
blocks can be executed concurrently!! due to communication times this can lead to different outputs for an applicaiton with identical inputs&lt;br /&gt;
&lt;br /&gt;
if communicaiton protocol doesnt preesrve ordering results can differ drastically.  this would lead to different resuls when compared to the orignal sequential applicaiton part of the whole design process. system configuration can alter applicaiton design!!&lt;br /&gt;
&lt;br /&gt;
IEC61499 standard implies the application semantics would not change after system configuration mappigns, this is not the case when using sequential hypothesis on distriubted devices.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Back==&lt;br /&gt;
[[SE701:FB | Back to SE701:FB]]&lt;/div&gt;</summary>
		<author><name>Mark</name></author>
	</entry>
</feed>