270 likes | 438 Views
Optimized State Encoding for Esterel Programs. Dumitru POTOP-BUTUCARU. Overview. State of an Esterel program The optimizing property Applications:. Register removal State re-encoding using the optimizing information. State of an Esterel program. Esterel statements:.
E N D
Optimized State Encoding for Esterel Programs Dumitru POTOP-BUTUCARU
Overview • State of an Esterel program • The optimizing property • Applications: • Register removal • State re-encoding using the optimizing information
State of an Esterel program • Esterel statements: • p¦¦q , p;q, loop p end • emit S, present S then p else q end • signal S in p end • trap T in p end , exit T • suspend p when S end • pause • derived statements: await S, abort p when S, sustain S , every S do p end
State of an Esterel program • Esterel program execution • Esterel = synchronous language • Program execution = sequence of synchronous execution instants (clock ticks) • Execution instant = instantaneous mapping: (current state, input signals) (next instant state,output signals)
State of an Esterel program • Global state and state of a statement • Program state = state of the pause statements in the program • State of a sub-statement = state of the pause sub-statements of the given statement • The state of a composed statement is the union of the states of its direct sub-statements
State of an Esterel program • Selection and selection tree • Selected statement = statement that has at least one active pause sub-statement • The selection status of composed statement is the OR of the selection statuses of its direct sub-statements • Selection tree = the tree defined by the pause statements and the OR gates corresponding to the composed statements
# ¦¦ State of an Esterel program • Selection nodes • pause nodes • exclusive selection nodes • parallel selection nodes p;q present S then p else q end p q p¦¦q p q
# State of an Esterel program • Example loop present I then pause;emit O1 else pause;emit O2 end present end loop pause pause
¦¦ # State of an Esterel program • Example trap TERMINATE in loop pause; emit O1; pause; emit O2 end loop ¦¦ sustain RUNNING ¦¦ await TERMINATE_SIGNAL; exit TERMINATE end trap parallel loop sustain await pause pause
¦¦ # The optimizing property • Example trap TERMINATE in loop pause; emit O1; pause; emit O2 end loop ¦¦ sustain RUNNING ¦¦ await TERMINATE_SIGNAL; exit TERMINATE end trap parallel loop sustain await pause pause
¦¦ # The optimizing property • Example trap TERMINATE in loop pause; emit O1; pause; emit O2 end loop ¦¦ sustain RUNNING ¦¦ await TERMINATE_SIGNAL; exit TERMINATE end trap parallel = loop sustain await pause pause
¦¦ # The optimizing property • Example trap TERMINATE in loop pause; emit O1; pause; emit O2 end loop ¦¦ sustain RUNNING ¦¦ await TERMINATE_SIGNAL; exit TERMINATE end trap parallel = loop sustain await pause pause
¦¦ # The optimizing property • Example trap TERMINATE in loop pause; emit O1; pause; emit O2 end loop ¦¦ sustain RUNNING ¦¦ await TERMINATE_SIGNAL; exit TERMINATE end trap parallel = = loop sustain await pause pause
¦¦ # The optimizing property • Example trap TERMINATE in loop pause; emit O1; pause; emit O2 end loop ¦¦ sustain RUNNING ¦¦ await TERMINATE_SIGNAL; exit TERMINATE end trap parallel = = = loop sustain await pause pause
The optimizing property • If a parallel statement branch cannot terminate then the selection status of the branch is equal, at each instant, with the selection status of the entire parallel statement
The optimizing property • Non-termination criteria • The static analysis of the Esterel program that is done at compile time • Cheap method (the information comes for free)
The optimizing property • Some statistics:
¦¦ # Applications • Register removal parallel parallel status = loop status = sustain status = await status = = = loop sustain await pause pause
¦¦ # Applications • Register removal parallel parallel status = loop status = sustain status = await status = = = loop sustain await pause pause
# Applications • Register removal parallel status = loop status = sustain status = await status await parallel loop sustain pause pause
Applications • Register removal
Applications • State re-encoding • Exclusive selection nodes become switches that choose the selected son # 0 01 10 11 1 2 # 3 0 1 4 5
# # Applications • State re-encoding • The selection tree encoding is given by the encoding of all the # # ¦¦ ¦¦ = =
# Applications • State re-encoding • The selection tree encoding is given by the encoding of all the sub-trees # 0 ¦¦ 2 1 = 3 4 5 6
# Applications • State re-encoding • The selection tree encoding is given by the encoding of all the sub-trees # 0 ¦¦ 2 1 = 4 5 6
Applications • State re-encoding • The selection tree encoding is given by the encoding of all the sub-trees 3
Applications • State re-encoding