Ronan Le Coadic

BRITTANY'S NEW 'BONNETS ROUGES' AND THEIR CRITICS 1

Introduction: the Background

France is confronted by a triple crisis today. Its first aspect is a crisis of the 'first modernity,' marked by a weakening of the authority of the state, a reflexive turn in knowledge 2 and the eruption of the Other in the cities. 3 Secondly, France has become one of the Eurozone countries most affected by the global economic crisis. 4 Finally, France is affected by a moral crisis: the country's political elites have been ineffective in their struggle against unemployment and for the maintenance of living standards, 5 and have had their reputation challenged by a series of court cases. 6 From this, it follows that the French population not only has grave doubts about the country's economic future, 7 but has also become "ferociously suspicious" about political life. 8 It was in this context that, in 2013, a battering ram from Brittany terrified the authorities. This was the movement of the 'Bonnets Rouges, 'Red Caps.' On 28 October 2013, several hundred people attacked an ecotax tollbooth 9 in Pont-de-Buis (Finistère). 10 They wore red caps-headgear which recalled the great peasant revolt of 1675 that was bloodily repressed with great severity by the soldiers of Louis XIV. There were violent clashes between the demonstrators and the forces of order."This is not a demonstration, it's the start of a revolution!" shouted one protestor 11 . One CRS policeman and three protestors were wounded-one of the protestors had his hand ripped off by a CRS gas grenade. A call to demonstrate in Quimper 12 on 2 November followed. A vast wave of red caps and Breton flags 1 Translated from French by Sharif Gemie. 2 Anthony Giddens, Les Conséquences de La Modernité (Paris

flooded the city. Between fifteen thousand and thirty thousand people demonstrated, and there followed clashes between some of the protestors and the police. A second demonstration was called in Carhaix 13 : here, between seventeen thousand and forty thousand people gathered peacefully. At the same time, five ecotax tollbooths were attacked or destroyed across Brittany, as well as approximately fifty speed cameras.

Mikael Bodlore-Penlaez 2014

Map 1: Municipalities where demonstrations were held The movement made an astonishing impact in France, exacerbating a sense of tension and the fragility of power structures. All the mass media and the political commentators turned to Brittany to analyse the meaning and to evaluate the strength of this new protest movement.

The Breton Context

The movement of 'Bonnets Rouges' erupted during a period of structural crisis in Brittany. Breton agriculture has experienced serious difficulties: on the one hand, it faces economic stresses, with the rising challenge of competition from countries with low labour costs (such as Brazil and eastern Europe, in which social welfare legislation barely exists), the rising costs of production and the decline of EU subsidies; on the other hand, Breton agriculture has caused ecological problems, such as the pollution of the water supply by nitrates and the proliferation of green algae. As for Breton industry, it lacks diversity: it is over-concentrated on four sectors: food industries, electronics equipment and telecommunications, car industry and shipbuilding, and so it is susceptible to the current crisis; it looks weak. 14 While Brittany was relatively untouched by the rise in unemployment until 2010, in 2012 Brittany had the largest rise in the number of job-seekers in France, and then in 2013 was confronted by a series of industrial policies which threatened, directly or indirectly, some seven thousand jobs. Public opinion was in "a state of shock." 15 13 7,541 inhabitants in 2011. 14 Cf. Ronan Le Coadic, "La Remise En Question (1992-2000)," in Histoire D'un Siècle : Bretagne 1901-2001 : L'émancipation D'un Monde, ed. Claude Geslin et al. (Morlaix: Skol Vreizh, 2010), 323-77. 15 Ifop, "Pourquoi La Bretagne S'enflamme ?," Ifop Focus 99 (2013): 1-4, at 4. Mikael Bodlore-Penlaez 2014

Map 2 : Redundancy schemes in the Breton food industry

In this tense situation, the government project to impose an ecotax on heavy good vehicles was met with hostility from a section of the population, because of its practical consequences: the most distant regions of the EU were, in effect, the most affected by this proposal, in which the principle 'polluter pays' was transformed into 'periphery pays.' Here, it should not be forgotten that at the end of the 1960s, General de Gaulle had granted Brittany a free motorway system to compensate for the peninsula's distant position, which held back its economy. (In fact, in Brittany, there is an unfounded but widely circulating rumour that all roads in the region should be toll-free because of a clause imposed by Anne of Brittany, the last sovereign of the independent duchy of Brittany, in her marriage contract to Louis XII, the king of France. An amusing 'interview' with the duchess herself makes this point 16 ) In 2013, the proposed ecotax was resented by many as it negated an acquired benefit (free motorways) and as it penalised Breton production, in a form that would make unemployment worse.

Breton public opinion was 'in shock' as a result of these plans: this formed the sub-soil from which the protest arose. 17 Managers were the first to voice their opposition to the new tax. [START_REF] Journal | Les Patrons Bretons Ne Veulent Pas Payer L'éco-Taxe[END_REF] Then, 'socio-economic organisations which had a long history of cooperation' mobilised Breton public opinion. [START_REF] Ifop | [END_REF] They made clever use of historical symbols and played upon the Bretons' 'anti-Jacobin reflex,' 20 which can be traced back to the 1790s. In that era, the Jacobins defended popular sovereignty, the indivisibility of the French Republic and the general principle of strong government. Their principal political opponents, the Girondins, defended more moderate forms of political culture, and proposed decentralised political structures. They suffered severe repression at the hands of the Jacobins: some Girondins were guillotined, others pushed to suicide. (Today, French people often use 'Jacobin' as a type of political short-hand to identify supporters of a strong state, governed in a uniform and centralised manner.) The struggle against the ecotax became an anti-Jacobin cause which united diverse currents; it was a 'catalyst' for a deep anger. 21 The crowds which gathered for the Bonnet Rouges demonstrations at Quimper and Carhaix were diverse. Workers from firms that had been hit by redundancies joined vegetable farmers. There were fishers, artisans, traders and heads of enterprises. The call for the demonstrations was issued by the dissident-left mayor of Carhaix, by the trade-union federation Force Ouvrière,22 the president of the Finistère branch of the agricultural syndicate FNSEA, 23 and the president of the General Confederation of Small and Medium Businesses (CGPME) of the Côtes-d'Armor. Among the demonstrators at Quimper were members of management organisations,24 workers' unions,25 far left groups,26 elected representatives from the left and the right,27 members of Breton movements,28 many unaffiliated people, some members of the National Front and a few violent identitarian29 groups. 30 One of the most interesting points to consider is the relationship between these various tendencies.

Commentaries and Critiques

However, it is not the movement of the Bonnets Rouges itself that I wish to discuss here. The movement blurred accepted categories: it has been documented [START_REF] Lay | Front de Gauche et Écolos, Vous Avez Insulté Les Bretons, Faudra Pas Venir Pleurer[END_REF] and has received some radically contrasting evaluations. [START_REF] Baguenard | L'automne des bonnets rouges : De la colère au renouveau[END_REF] My objective, in this paper, is not to present a global analysis but to focus on the negative reactions which some politicians, journalists and intellectuals published in the press. Their words were often harsh. They saw the 'bonnet rouges' as a mixed movement, similar to Poujadism 33 and to other movements of the extreme right. For such commentators, the movement of 2013 did not seem a worthy successor to the revolts of 1675 and the symbolic use of red cap was-for them-a manipulation of history by bosses and autonomists.

My argument is that these harsh judgements are not simply expressions of justified criticisms of aspects of the Bonnets Rouges, but are examples of symbolic domination: a form of authority not based on physical violence, but on the assumed legitimacy of a particular authority which forms the base for the imposition of specific cultural norms. 34 On the one hand, this takes the form of the domination of popular opinion; it asserts that only the parties and unions of the classic French left are authorised to speak for the people. On the other hand, there is also a form of symbolic domination in the manner in which a collective identity is appreciated: Breton identity is reduced to the stigmatised definition given to it by the dominant.

To demonstrate this, I have pursued two lines of research: the first, a comparison between the protests of 2013 and the revolt of 1675, as seen by historians; 35 the second, a comparison of the discourse of the elites in 2013 with the established social representations of the Breton population. 36

If the cap fits…

Many commentators criticised or laughed at the use of red caps by the demonstrators of 2013. The most articulate argument came in an article entitled "No to the Manipulation of History!" in the Breton daily, Le Télégramme of 22 November 2013. 37 The three authors stated that: "For a month, we have seen a type of manipulation of the history of Brittany that has rarely been seen before." Their analysis suggested that contemporary managers should be compared to seventeenth-century aristocrats: they argued that the revolt of 1675 "had opposed Rouges, Une Chance Pour La France," Marianne, accessed December 1, 2014, http://www.marianne.net/Emmanuel-Todd-Les-bonnets-rouges-une-chance-pour-la-France_a233812.html. 33 An anti-tax, anti-industrial and anti-urban populist movement of the 1950s. 34 Breton peasants and their Breton exploiters: it was above all a social movement. It is significant that the best-known rebel, Sébastien Le Balp, was murdered by an aristocrat." Furthermore, the rebels of 1675 never opposed the King. The participation of bosses in the movement of 2013 demonstrated that it was, they argued, a type of trick: wearing a red cap as a sign of rage "against 'Paris'" was a form of "caricature of history and led to its manipulation."

Curiously, these three historians did not consider the entirety of the episode of 1675. Certainly, the revolt of 1675 was 'above all' social, but it also contained a dimension of Breton protest, as was stressed by the Soviet historian Boris Porchnev, a specialist in the study of popular revolts in the Ancien Regime. The peasantry of lower Brittany,38 he noted, "felt a natural hatred and horror for all that came from France" 39 . "They thought that all was not yet lost, that they could liberate themselves, but at the same time they felt that armed forces of foreign France" was going to give them a fatal blow 40 . "French historians do not want to see these forms of struggle for national liberation in the revolt of 1675." 41 Perhaps this is an example of Renan's observation: "forgetting, and even historical error, is an essential part of the creation of a nation"? 42 Our three historians forgot that the older struggle was against "a tyranny which was hostile to old Breton liberty." [START_REF]Expression used by the rebels at the Article 4 of the Peasant Code. ESB, La Borderie, and Porchnev[END_REF] and-when they considered the murder of the revolt's leader-they also failed to consider the circumstances. Yes, Sébastien Le Balp was assassinated by an aristocrat: but it was at the moment when he was going to ask this aristocrat's brother, an ex-colonel, to lead the rebels against the royal army. [START_REF] Péridy | Sang bleu et bonnets rouges : le meurtre du marquis de Montgaillard[END_REF] To use the Marxist vocabulary favoured by our three historians, Le Balp was engaging in an act of class collaboration! As for the point concerning the lack of opposition to the king: this was echoed in 2013 when the protestors wrote respectfully to the President of the Republic, and asked him to take account of their situation. [START_REF] Figaro | Les Bonnets Rouges Écrivent À Hollande[END_REF] The events of 2013 were not the first time that the revolt of the Bonnets rouges has been remembered and invoked for political reasons. It should be noted that the revolt of 1675 "marked several generations in Lower Brittany," according to Alain Croix. [START_REF] Croix | La Révolte Des Bonnets Rouges. De L'histoire À La Mémoire[END_REF] An old Bretonlanguage ballad concerning the revolt has been identified, entitled Ar Paper timbr (The Stamped Paper). Eva Guillorel, after some painstaking research in the judicial archives, has concluded that the oral memory of the Bonnets Rouges was transmitted for at least three generations, which corresponds to the length of time that anthropologists normally accord intergenerational family memories. [START_REF] Guillorel | La complainte et la plainte: chanson, justice, cultures en Bretagne XVIe-XVIIIe siècles[END_REF] In some families, however, the memory of the revolt seems to have been transmitted well beyond this period. The well-known Breton writer Pierre Jakez Hélias records that, in the 1920s, he learnt from his grandfather, a farmer, that two of his ancestors had been killed after the revolt. "One of them was just 14, not a year more, and they were hanged from the trees of Guiguiffen by the Duke of Chaulnes, that damned duke, may he burn forever in hell, even after judgement day, the bastard!" [START_REF] Jakez | Le cheval d'orgueil : mémoires d'un Breton du pays bigouden[END_REF] This exceptional familial transmission was probably sustained by the fact that the material legacy of the revolt is visible in Hélias's Bigouden region of Brittany to this day: some of the steeples of the rebel communes were destroyed by Louis XIV's soldiers as they repressed the revolt, and have never been rebuilt.

In the 1930s, the symbolism of the Bonnets Rouges began to be used occasionally by the SFIO (Section Française de l'Internationale Ouvrière-the first incarnation of today's French Socialist Party) [START_REF] Kermoal | Les Bonnets Rouges, Le Socialisme et La Bretagne: Histoire et Mémoire[END_REF] and by the left-wing of the Breton nationalist movement. [START_REF] Croix | La Révolte Des Bonnets Rouges. De L'histoire À La Mémoire[END_REF] But the real turning-point came in the 1970s, because of three factors: the ethnic revival, [START_REF] Smith | The Ethnic Revival[END_REF] the refoundation of Breton movement as left-facing movement in the 1960s, and the 300 th anniversary of revolt. [START_REF] Croix | [END_REF] Many publications illustrate this point: some academic works, [START_REF]Numéro Spécial Sur Les Révoltes Bretonnes De 1675[END_REF] some musical and literary invocations, [START_REF] Paol | Le Printemps des Bonnets Rouges: théâtre[END_REF] some political pamphlets (from the UDB, a left-wing Breton autonomist party, the Communist Party and the PSU, an anti-colonialist left-wing party). Many demonstrations celebrated the revolt of 1675, and there was even a rivalry between these different currents to control the sense of the memory of the revolt. Who was best placed to claim the legacy of the Bonnets Rouges? The left-wing Breton nationalists? Or the Communists? There was an angry debate on this point in Carhaix, one of the old centres of the Bonnets Rouges. Since the 1970s, and up until 2013, the memory of the Bonnets Rouges was far less controversial: their name (or the name of their leader, Sébastien Le Balp) was given to several roads in Brittany, tourism offices offered information on the revolt, and there was even a beer named after them! There are some anecdotal similarities between the protests of 2013 and the revolt of 1675. In both cases, the movement was pre-figured in Rennes (as a revolt against taxes in April 1675, and as opposition to the Janais plan in early October 2013), and then gripped lower Brittany. In both cases, a precise object was the focus of their rage: a clock in 1675, which the peasants thought would be used to impose the gabelle salt tax, [START_REF] Cornette | Histoire de La Bretagne et Des Bretons : Tome 1, Des Âges Obscurs Au Règne de Louis[END_REF] and the ecotax tollbooths in 2013. Furthermore, in both cases, an anti-tax protest was the expression of a far wider sense of discontent. In both cases, a leader came from outside the world of peasants: a dishonest lawyer in 1675, the mayor of Carhaix in 2013, who represented a coalition of left-wing groups. In both cases, finally, the protestors aimed at the city of Quimper: in 1675, the peasants did not succeed in taking it and 'never recovered' from this setback, [START_REF] Gallo | Postface[END_REF] in 2013, on the other hand, they demonstrated there. But as well as these anecdotal points, there are some more important similarities. Both these movements, if one puts aside their start in Rennes, came from a 'diagonal of protest' of lower Brittany, running from the west of the Côtes-d'Armor to the south-east of Finistère, which is at once the centre of the political avant-garde in Brittany (and sometimes of revolutionary protest) and the heart of Breton language and culture. 57 Mikael Bodlore-Penlaez 2014

Map 3: The diagonal of protest of Lower Brittany

Secondly, in both the protests of 2013 and the rebellion of 1675, hostility to taxes was a focus from a far wider sense of discontent, which possessed the dual character of radical social critique and Breton-orientated demands. And, strikingly, in both 1675 and 2013, Bretons affirmed their will to control their own destiny. In 1675, the peasants attempted to legislate: they produced a Peasant Code and other texts which aimed to end the feudal order. 58 In 2013, the protestors chanted the slogan "live, decide and work on our land" and they received 15,000 messages of support, which they reduced to eleven 'key demands' at a meeting of an 'Estates-General' of Brittany at Morlaix on 8 March 2014. 59 Finally, many observers questioned whether the protest of 2013 constituted a popular movement, because of the heterogeneous nature of its support. "Workers in threatened positions, heads of firms and militants of many organisations, including the NPA, the FO trade union federation and regionalist movements, formed a varied crowd" noted the Communist daily Humanité, amongst others. Critics noted above all the presence of farmers belonging to the mainstream FDSEA agricultural syndicate (which has promoted a policy of agricultural concentration and defended the role of the free market), and of workers who had been dismissed or who were threatened with the loss of their jobs. But this heterogeneous mix is another reminder of 1675: according to Porchnev, in reality "the peasants of lower Brittany were far from all being poverty-stricken: there were well-off people among them. Between these two wings there should have been a social chasm… But these differences were, to some extent, neutralised by the fact that both sections were crushed." 60 57 Pierre Flatrès, La Bretagne (Paris: PUF, 1986), 12. 58 ESB, La Borderie, and Porchnev, Les Bonnets rouges, 91-93. 59 Ouest-France, "Bonnets Rouges. Onze Revendications Phares Pour La Bretagne," Ouest-France.fr, accessed November 24, 2014, http://www.ouest-france.fr/bonnets-rouges-onze-revendications-phares-pour-la-bretagne-1988576. 60 ESB, La Borderie, and Porchnev, Les Bonnets rouges, 347.

To conclude this section, it seems to me that-alongside some well-founded critical points concerning how the policies advocated by managers and the FNSEA have led to the current problems experienced by Breton agro-industry-the new Bonnets Rouges of 2013 were principally opposed by those who considered that they possessed the monopoly of public discourse. The historians claimed their right to pronounce on history. The three academics cited above acted as if they were able to pronounce on who was able to make authentic use of the phrase 'bonnet rouge.' They refused this right to an unorthodox social movement, but they did not seem concerned that the French Communist Party has used it on several occasions. [START_REF]From 1972 to 2002 the newsletter of the Carhaix section of the Communist Party was called 'Le Bonnet Rouge'. Furthermore, in 1975, the PCF organised a large[END_REF] Secondly, the political parties and unions of the orthodox French left claimed a monopoly over popular protest: 'the people' were represented by its political and union organisations, and they alone were allowed to act in its name. But when the representative organisations of the French tried twice (on 2 and 23 November) to compete with the movement of the Bonnets Rouges by organising their own demonstrations, they did not succeed in gathering as many protestors as the Bonnets Rouges.

Let us now turn from the comparison with 1675 and consider the meaning of the representations of Bretons which emerge from the commentaries on the movement of 2013.

Idiots, Chouans and Nationalists

Many comments on the Bonnets rouges of 2013 can be situated in a long line of ethnic stereotypes of Bretons, whose origins stretch back into antiquity.

From the Middle Ages, Bretons were presented as barbarians. 62 Bernard Maris, a university lecturer and a journalist, uses precisely this expression: "These demonstrations by Bretons, the Bonnets rouges, are a prehistoric barbarity. I can't find any other term to describe them." [START_REF] Maris | Invité de 7h50[END_REF] Also in the Middle Ages, Bretons were depicted as brutes. [START_REF] Coadic | [END_REF] This still seems to be the opinion of Yves Paccalet, a philosopher and journalist, for whom the Bretons' red cap is "a sign of hatred, the symbol of an anti-ecological, irrational, violent, egotistical, destructive social wave,", by those who "screamed against the ecotax." [START_REF] Paccalet | Bonnets Rouges: Quand Le Symbole de Paix Du Commandant Cousteau Devient Un Signal de Haine[END_REF] In the Middle Ages, Bretons were mocked for their bizarre language, their taste for alcohol and the ridiculous stubbornness with which they defended their privileges. [START_REF] Cassard | Les Premiers Immigrés[END_REF] All these three points could be found in the comic video that journalist Didier Porte made about the Bonnets Rouges: it was posted on 4 November 2013 on the website Mediapart. [START_REF] Porte | Ils Ont Des Bonnets Rouges, Vivent Les Bretons[END_REF] During the French Revolution, a new image of the Bretons appeared, which shaped public opinion for decades afterwards: that of the Chouans, the royalist rebels from the region north of the Loire: they were not only active in Brittany, and in fact were only present in parts of Brittany. The Chouans took up arms against the Revolution, the Republic and then the Empire. 68 For journalist Bruno Roger-Petit, "a large section of the minority who votes for the right [in Brittany today] is loyal to a nostalgic memory of the pressure put on the enlightened Republic by the Chouans of 1793." 69 In 1829, Balzac described these Breton Chouans as "more intellectually impoverished than the Mohicans" [START_REF] De | Les Chouans[END_REF] and Victor Hugo described their war as "absurdity on heat." [START_REF] Hugo | Quatrevingt-treize[END_REF] Today, Christian Delarue, a (small) star of the French radical left, writes of the Bonnets Rouges that "their form of rebellion consists in smashing the doors of toll-booths and speed cameras. Reptilian!" [START_REF] Delarue | BZH : Le Nationalisme Dominé Est Aussi Une Peste[END_REF] The Chouans were often described as peasants who followed their masters, namely the nobles and the clergy. 73 Jean-Luc Mélenchon, then President of the Party of the Left, used the following terms to describe the Bonnets rouges: "In Quimper, the slaves are demonstrating for the rights of their masters." [START_REF] Afp | Mélenchon: 'À Quimper, Les Esclaves Manifesteront Pour Les Droits de Leurs Maîtres[END_REF] Brittany's once-thriving maritime commerce was ruined by the British-French wars during the Revolutionary decades, and there was little industrialisation in the region. As a result, in the nineteenth century, Brittany was a poor area. From the middle of the nineteenth century to the middle of the twentieth century, a large proportion of the Breton population emigrated. These points were the basis for the sneering clichés of the poor Breton, stupid, backward-looking and pious. [START_REF] Bertho | Mélenchon: 'À Quimper, Les Esclaves[END_REF] Mélenchon wrote an analysis of the movement of the Bonnets Rouges, which can be connected to all those nineteenth-century clichés. According to him, the Bretons who demonstrated at Quimper are "idiots," who give their region an "old-fashioned, folkloric image," as they follow "the lead of the priests, who march at their head with the local bosses." 76 For him, these Breton idiots are manipulated by their bosses. This was the argument was repeated by many other left-wing intellectuals. 77 During the twentieth century, new themes were devised. A section of the Breton nationalist movement collaborated with the Nazis during the Second World War: the whole movement was tarnished by this episode, and for years was associated with the far right. Today, several observers saw in the Bonnets rouges "a drift towards autonomism." 78 For Delarue, this was worrying as "a dominated [Breton] nationalism is as much of an emotional sickness as a dominant nationalism.". One reader of Le Monde contributed the following statement to its blog, referring to the Bonnets Rouges: "Regionalism and nationalism (which are the same thing) are the plague of modern societies, along with religion." 79 Even more seriously, "the Bonnets Rouges [would be] directed by the far right." [START_REF]Bretagne: Les Bonnets Rouges Siphonnés Par L'extrême-Droite[END_REF] "The Bonnets Rouges are populist, demagogic, nationalist, anti-European, anti-cosmopolitan: in brief, they are from the extreme right" noted Yves Paccalet, "either they knowingly serve it, or they are manipulated by it." [START_REF] Paccalet | Bonnets Rouges: Quand Le Symbole de Paix Du Commandant Cousteau Devient Un Signal de Haine[END_REF] The movement would have showed an "unashamed racism": the proof of this was a photo of three Bonnets Rouges imitating the salute given by Dieudonné, an anti-Semitic French comedian. This photo of three unknown individuals was taken to demonstrate by itself, according to the journalist Bruno Roger-Petit, that the whole of the Bonnets Rouges movement was based in the far right. [START_REF]Les 'Bonnets Rouges' : Un Mouvement Réac[END_REF] It should be noted here that while there is no single tendency dominating Breton politics, the vast majority of Bretons have always been reluctant to follow the far right. In fact, the National Front gets its lowest scores in Brittany. And the particular zone in which the Bonnets rouges were based has been, since mass voting was introduced, a centre of the left 83 . It is in the centre of the 'protest diagonal' discussed above, the 'reddest' area of Brittany.

Mikael Bodlore-Penlaez 2014 Map 4: The communist stronghold of Brittany So, even if the movement of the Bonnets Rouges was heterogeneous and largely outside of the established movements of the established left (in particular the Socialist and Communist Parties), there was definitely "something rouge in the bonnets rouges." [START_REF] Marlière | Il Y a Du Rouge Sur Les Bonnets Rouges[END_REF] For the political scientist Roman Pasquier, they were "a popular movement, not a bunch of fascists."' [START_REF] Pasquier | Les Bonnets Rouges : Un Mouvement Populaire, Pas Une Bande de Fachos[END_REF] Their demands certainly did not sound like a far-right platform. [START_REF] Ouest-France | Bonnets Rouges. Onze Revendications Phares Pour La Bretagne[END_REF] In truth, they were flexible, stressed Emmanuel Todd:

It is certain: their demands were unclear [floues]. But how could this revolt have been coherent when the dominant ideology itself is no longer coherent, in this twilight period of the Euro's setback, in a province which believes in Europe?

87 Moreover, if one considers the whole of Brittany, one notes that while before the 1980s, the majority of Bretons voted for the moderate right (principally Christian-Democrats), since then Breton voters have turned to socialism. The Figaro, the right-wing French daily, was at least consistent: it argued that the evils from which Brittany suffered were caused by the Left, for which they had voted. So, they should refrain from protesting: "Who voted en masse for the Left in the last elections? The Bretons. So… a bit of calm, please." 88 A few years after Brittany turned to the left, in 1989, a new idea spread across France like wildfire: communautarisme. [START_REF] Le | Faut-Il Jeter L'identité Aux Orties?[END_REF] This term was used in a pejorative and polemical manner to question the alleged attitude of some "ethnic, religious, cultural and social communities which can divide the nation, so preventing integration.". [START_REF] Taguieff | Vous Avez Dit 'communautarisme' ?[END_REF] According to Ulrich Beck, communautarisme is simply a myth. [START_REF] Beck | Pouvoir et Contre-Pouvoir À L'ère de La Mondialisation[END_REF] But according to the critics of 2013, it was this communautarisme, inspired by "regionalist idiocy," [START_REF] Afp | Mélenchon: 'À Quimper, Les Esclaves Manifesteront Pour Les Droits de Leurs Maîtres[END_REF] which was behind the Bonnets Rouges' movement. One reader of Le Monde compared the alleged Arab and Breton communatarismes. "Communautarisme begins when one claims a double identity. An immigrant from the Maghreb who waves an Algerian flag during a football match has the same identity-based explanations and same identity-based justifications as those who march with Breton flags." 93 This resentment of the Breton flag-or Gwenn-ha-du ('Black and White')-has a long history. The flag was devised between 1923 and 1925 by the architect Maurice Marchal (who adopted the Breton name 'Morvan Marchal'). Some researchers argue that he was helped by René Rychwaert (also known as 'Ronan Klec'h). [START_REF] Gaucher | Créateur Du Gwenn Ha Du[END_REF] The flag was displayed for the first time at the Exposition of Decorative Arts in Paris in 1925. Marchal, a proud modernist, wanted to replace the traditional, medieval banner of ermines, considered backward-looking, and which could be "confused with the French monarchist flag, with its design of golden fleur-de-lys on a white background." [START_REF] Marchal | Pour le drapeau ![END_REF] Marchal sought a flag which would be "a modern symbol of Brittany." 96 It is quite possible that he was, in part, inspired by the flag of the USA. In the American flag there are thirteen horizontal red and white rows: Marchal chose nine black and white rows, to represent"Breton diversity." 97 The four white rows represented the parts of Brittany where the Celtic language of Breton was historically spoken, and the five black rows represented those parts where Gallo (a Romance language) was spoken. In memory of the old duchy, he retained the ermines in a square, next to the flag pole-like the stars in the American flag: he considered that he had produced a "perfectly acceptable synthesis." 98 Morvan's political itinerary is a complex one, as was the case for many intellectuals during those difficult years. While at college, he identified with Action française (the French royalist movement), but he moved towards Breton nationalist ideas, picking up some Proudhonian libertarian ideas and the ideal of federalism. In the 1930s, he left the Breton nationalist movement and moved to Laval, where he joined the Radical-Socialist Party (a mildly left-of-centre movement), and a masonic lodge linked to the Grand Orient of France. 99 During the Second World War he wrote, using a pseudonym, some anti-Semitic articles and joined the collaborationist Rassemblement National Populaire (RNP-National Popular Assembly), a party created in 1941 by an ex-Socialist, Marcel Déat: the majority of the RNP's members were ex-Socialists. 100 At the Liberation he was condemned to fifteen years of "national degradation,", but benefitted from an amnesty in 1951. He died in 1963; he had "fallen into the most absolute oblivion and misery." 101 The history of the Breton flag was quite different from that of its maker. It was adopted in 1925 by Marcel Cachin, representing the Association des Bretons émancipés (The Association of Free Bretons-an organisation close to the Communist Party), and by Eugène Reigner, representing the Cercles celtiques (Celtic Circles). 102 However, in the late 1920s and 1930s it was above all associated with Breton autonomists and nationalists. During the Second World War it was used by both resisters 103 and collaborators, 104 and was judged to be 'seditious' by French authorities who outlawed it on several occasions before, during and after the conflict. 105 After the war, many groups in Brittany adopted it. Folkloric associations, usually quite apolitical, popularised it in their parades, and sailors proudly raised it on the masts of their ships. 106 It grew still more common during the 1960s, but was rarely seen during the demonstrations of May 1968. 107 However, four years later, it made a dramatic appearance, alongside the red flag, at the strike of the Joint français. 108 This strike lasted eight weeks, and attracted widespread support from the Breton population. 109 This strike attracted widespread media attention and was arguably the moment when Bretons began to identify themselves en masse with this symbol. Henceforth, no cultural, political or labour meeting in Brittany was complete without the presence of the gwenn-ha-du. This flag has become the symbol of all Bretons, without distinction. "Today, those who wave the gwenn-ha-du at festivals and protests for all sorts of causes usually know nothing about its creator and often do not even realise that the flag had one, for they imagine that they are holding the timeless flame of real Brittany." 110 Nowadays, businesses even place it on their products in order to encourage sales, most mayors choose to fly it on public buildings and even the French authorities, once so cautious, now place this symbol on the number-plates of cars from the administrative region of Brittany.

Lastly, a different representation of Brittany spread at the end of the 1990s: that of a region in which the environment had been polluted by high-yield agriculture. The spread of green algae on the beaches played an important role in the popularizing this image in the media. The algae were largely caused by the nitrates used by industrial-agricultural techniques and by agricultural fertilizers. Mélenchon referred to this theme when he noted "those demonstrating at Quimper are those who want to continue the defiling of our beautiful Brittany with the nitrates of high-yield agriculture." 111 Elsewhere, Richard Nowak, a constitutional expert, noted on the blog of Le Monde, that "because of nitrates, there will soon be a sanitary barrier to ban the consumption of all produce from this region. If there is any resistance, it will come from the rest of France." 112 In sum, without discussing in detail the movement of Bonnets Rouges itself, I hope that I have shown the extent to which the criticisms of the movement made use of established ethnic stereotypes and simplistic generalisations.

Conclusion

The movement of the Bonnets Rouges took everyone by surprise: politicians, journalists, and even the most experienced commentators on Brittany had not predicted it. There were a wide variety of articles concerning the movement: some were appreciative. For this paper, I have concentrated on the negative comments. These show, on the one hand, the claim of a monopoly of legitimate public speech and, on the other hand, the stigmatisation of a minority identity by the dominant ideology.

The monopoly of public discourse is a well-known concept which needs no explanation here. Authors such as Pierre Bourdieu 113 and Pierre Clastres 114 have shown how discourse serves to reinforce the prestige of the dominant.

But what of the stigmatisation of the minority? I suggest that this is an example of 'banal nationalism.' Michael Billig introduced this concept in 1995, when he wanted to stop the assimilation of all nationalism with those movements "who struggle to create new states or with extreme right-wing politics." 115 Billig wanted also "to cover the ideological habits which enable the established nations of the West to be reproduced." 116 One of the characteristic expressions of banal nationalism is precisely the ethnic stereotype. "Stereotypes are often means of distinguishing 'them' from 'us,' thereby contributing to 'our' claims of a unique identity. […] 'We' often assume 'ourselves' as the standard, or the unmarked normality, against with 'their' deviations appear notable." 117 In Billig's observations, 'they' of course means foreigners, but-as one knows-not all foreigners are outside the nation. For the banal nationalism of France, the minorities-in this case, the Bretons-seem to form a type of foreign body within the nation. Balzac himself wrote of Brittany as "an iced lump of coal, which stays dark and black in the middle of a fine fire." 118

Epilogue

In response to the massive mobilisations of the Bonnets rouges, the then-Prime Minister, Jean-Marc Ayrault, presented a "Pact for the Future of Brittany" (funded by two billion Euros). He also announced a far-reaching reform of French taxation, and postponed the introduction of the ecotax until July 2014. The "Pact for the Future" was denounced by the Bonnets Rouges as a 'smokescreen', largely composed of re-assigning previously-identified funding and of existing measures 119 ; the project to reform French taxation was halted by Ayrault's successor; and, as for the ecotax: the new Ecology Minister announced its suspension on 9 October 2014. The Bonnets Rouges had won the battle concerning the new tax. Their other demands, however, were not met and the movement lost momentum.

The original coalition which had made up the Bonnets Rouges soon fell apart. The FO trade union confederation withdrew on 15 November 2013, in order to make it clear that it had not accepted "regionalism." 120 After the demonstration at Carhaix, the movement was not able to organize any vast protests. However, it did create local committees across Brittany: the majority of them were in the western, Breton-speaking part of the peninsula. Their activities rapidly became much reduced in scale.

Mikael Bodlore-Penlaez 2014

Map 5: "Bonnets Rouges" actions and linguistic limits

In May 2014, at the European elections, the list led by Christian Troadec (one of the Bonnet Rouge leaders) won a significant proportion of the vote in the area which had been the stronghold of the movement. This did not, of course, stop the rise of the National Frontwhich spread across all of France-but it did hold it back in this area, showing, once again, that the assimilation of the Bonnets Rouges with the extreme right is not accurate. 121 The next elections will show if this tendency can be maintained.

Mikael Bodlore-Penlaez 2014 Map 6 : Voting for the Troadec list in the 2014 European elections On 19 September 2014, farmers specialising in producing vegetables, burnt a tax office and an agricultural social security office at Morlaix: their action was applauded by another leader of the Bonnets Rouges, Thierry Merret. 122 He commented: "Since the Pact, the abattoir at Lampaul-Guimiliau has closed, the poultry business is in poor condition. Nothing has been prepared for the future. I fear that people will be angrier in 2015, and there will be farmers in the street." 123 The authoritative opinion poll organisation IFOP has voiced similar sentiments: its research indicates that there will be no rapid "disappearance of the anger and anxiety of the Bretons, whose roots run very deep." 124

  EHESS, 1979); Catherine Bertho, "L'invention de La Bretagne," Actes de La Recherche En Sciences Sociales 35, no. 1 (1980): 45-62; Jean-Paul Champseix, "L'image de La Bretagne et Du Breton Dans La Littérature et La Para-Littérature Française D'audience Nationale de Chateaubriand À Bécassine" (Thèse. Université de Paris X, 1984); Pierre Corbel, "La Figure du Gallo: identité et représentations de la Haute-Bretagne" (Thèse de troisième cycle. Université de Paris X, 1984); Fañch Élégoët, "L'identité Bretonne: Notes Sur La Production de L'identité Négative," Pluriel-Débat,24 (1980): 43-67; Ronan Le Coadic, L'identité Bretonne (Rennes: Presses Universitaires de Rennes (PUR) et Terre de Brume, 1998); Ronan Le Coadic, "Tout Est Bon Dans Le Breton," Ethnologie Française 42, no. 4 (2012): 697-709.37 Alain Croix, Fañch Roudaut, and André Lespagnol, "Bonnets Rouges, Non À La Manipulation de l'Histoire," Le Telegramme, November 22, 2013, http://www.letelegramme.fr/ig/generales/regions/finistere/tribune-bonnets-rouges-non-ala-manipulation-de-l-histoire-22-11-2013-2311284.php.

Bourdieu, Pierre. 1979. La Distinction : Critique sociale du jugement (Paris: Les Editions de Minuit); Weber, Max Economie et société, tome 1 : Les Catégories de la sociologie (Paris: Editions Pocket, 2003). 35 "Numéro Spécial Sur Les Révoltes Bretonnes De 1675." 1975. Annales de Bretagne et des pays de l'Ouest 82

  Catherine Bertho, "La Naissance Des Stéréotypes Régionaux En Bretagne Au XIXe Siècle" (Thèse de troisième cycle.

	(4);
	Gauthier Aubert, Les révoltes du papier timbré, 1675: essai d'histoire événementielle (Rennes: Presses universitaires de
	Rennes, 2014); Alain Croix et al., Bonnets rouges: une révolte rurale en Bretagne (1675) (Rennes: Presses Universitaires de
	Rennes (PUR), 1998); Serge Duigou, La révolte des Bonnets rouges en pays bigouden (Quimper: Éditions Ressac, 1989);
	ESB, Arthur Le Moyne de La Borderie, and Boris Porchnev, Les Bonnets rouges, (10-18 1045) (Paris: Union générale
	d'éditions, 1975); Yvon Garlan and Claude Nières, Les révoltes bretonnes de 1675: papier timbré et bonnets rouges (Paris:
	Éditions sociales, 1975); Jean Lemoine, La révolte dite du papier timbré ou des bonnets rouges en Bretagne en 1675: étude
	et documents (Paris: H. Champion, 1898); Roland Mousnier, Roland Mousnier. Fureurs paysannes , les paysans dans les
	révoltes du XVIIe siècle (France, Russie, Chine) (Paris: Calmann-Lévy, 1967); Michel Nassiet, Qui étaient les bonnets
	rouges ? Les révoltes bretonnes de 1675 (Morlaix: Skol Vreizh, 2013).

36

Anne De Bretagne, L'interview Exclusive, accessed June 29, 2015, http://mabretagne.com/anne-de-bretagne-linterviewexclusive

Ibid.

FO is the third biggest trade union federation in France. It is non-communist in nature, and includes socialists, anarchists and Trotskyists.

« Fédération nationale des syndicats d'exploitants agricoles», the biggest French agricultural syndicate, which defends conventional agriculture.

For example: the CGPME, the Movement of Businesses of France (Medef) and 'Made in Brittany,' an association of firms which encourages consumers to buy Breton goods.

From the FO, and also -according to the NPA -many from the CGT, "who did not understand the position of their union": the CGT did not officially support the demonstrations (NPA 29 2013).

The New Anticapitalist Party (NPA), the Alternatives, an alter-globalisation movement; the Left Front, a coalition of leftwing and far left parties; the Association for the Taxation of Financial Transactions and for Citizen Action (ATTAC), an alter-globalisation movement.

 27 Including Marc Le Fur, a deputy from the UMP, a large right and right-of-centre party, and vice-president of the National

Assembly.28 Including Breizhistance, a far-left independentist movement; the UDB (the Breton Democratic Union), a left-autonomist party; the Breton Party, a centre-right autonomist party; and Adsav (Uprising), a right-wing

nationalist party.29 The 'identitarian' current developed after 2000 following the Ministry of the Interior's dissolution of the Radical Unity party.

Lower Brittany is the western half of Brittany, where Breton was the language of almost all the population until the early twentieth century.

Jérôme Fourquet, "Le Vote Troadec Ou Quand Les Bonnets Rouges S'invitent Aux Urnes," Le Huffington Post, accessed December 1, 2014, http://www.huffingtonpost.fr/jerome-fourquet/bonnets-rouges-christian-troadec_b_5483186.html; Emmanuel Todd, "Préface," in L'automne Des Bonnets Rouges : De La Colère Au Renouveau, ed. Jacques Baguenard et al. (Brest: Dialogues, 2013), 7-9.

Acknowledgements

I would like to warmly thank Sharif Gemie, who translated this article in English, and Mikael Bodlore-Penlaez, who made the maps that illustrate it. Without their help, this article would not be what it is; but any errors that may remain are my sole responsibility.


Zbigniew Chamski

Marc Duranton

Albert Cohen

Christine Eisenbeis

Paul Feautrier

Application Domain-Driven System Design for Pervasive Video Processing

Keywords: SANDRA, video processing, timed process networks, hierarchical architecture, piecewise static control

published or not. The documents may come   L'archive ouverte pluridisciplinaire

¶ ¡ £¢ ¤ ¦¥ ¨ § © § !¥

Vision plays a dominant role in human perception, placing pervasive visualization and video processing at the heart of the Ambient Intelligence concept. The underlying properties of adaptability, anticipation, and ubiquity make the video processing sub-systems operate in a changing environment, and require run-time flexibility. While video processing is essentially regular, user interactions and communications with other devices introduce variability in operation modes, system loads, and quality-of-service requirements.

In media streaming applications of un-encoded data (before encoding/after decoding), most events can be predicted and anticipated. Whenever the execution latency of individual tasks can also be predicted (or imposed), asynchronous (interrupt-triggered) control can be entirely eliminated, leading to a fully predictable, real-time system. This in turn enables a tighter dimensioning of the system, reducing the difference between average and peak performance, and thus, directly increasing its efficiency.

At the same time, upcoming display technologies and ever improving compression standards enable a dramatic increase in content and display resolutions. The corresponding performance requirements are beyond the reach of general-purpose processor architectures, implying the use of domain-specific, multi-processing solutions and an increased system complexity. Yet to become commercially viable, these solutions must additionally satisfy the criteria of silicon efficiency (area and device utilization, power dissipation), affordable system design effort, and low manufacturing costs.

In the SANDRA (Stream Architecture eNgine Dedicated to Real-time Applications) project, we tackled this challenge using a global approach driven by the key characteristics of the application domains (video pre and postprocessing): massive amounts of parallelism, piecewise regular processing of structured data, predictability of events, multiple processing rates, and explicit temporal requirements in applications. These characteristics were used to identify a suitable computation model, which in turn determined many aspects of system hardware and software. Ultimately, this led to the definition of a system template and a programming flow in which the requirements of the applications are driving the entire design process. The requirements of embedded systems are also taken into account: the SANDRA system is designed to be silicon efficient, satifying hard real-time constraints and having the lowest possible power consumption and memory bandwidth.

The scalability of the architecture is also important to cope with various applications and instances of embedded systems: a base SANDRA sub-system can be easily extended with new blocks using an intra-or inter-chip network, while still using the same model and representation of applications: it is seen as a single entity, with higher performances. The "connected" nature of Ambi-ent Intelligence systems enables to think of even more sophisticated systems: for example a SANDRA system inside a camera could use the resources of another SANDRA system in the TV set for increasing its computational power during, e.g., video segmentation or depth reconstruction (if a right communication channel is available).

To address the complexity of programming such inherently concurrent systems, we propose to move away from sequential application descriptions towards timed process networks [START_REF] Cohen | Multiperiodic process networks: prototyping and verifying stream-processing systems[END_REF], which are much more suitable to our target application domain. Process networks directly capture the concurrency available in the applications, and temporal annotations attached to processes (or groups thereof) provide a natural way of representing the timing requirements of the applications. It also helps in distributing tasks onto separate instances of the system, allowing networking at the SoC level and at the multi-chip/multidevice level. The introduction of the quantitative time representation, important for real-time guarantees, also helps in characterizing the communication links (bandwidth, latency, buffer requirements). The resulting system can process data "on-time" and not necessarily as fast as possible, allowing to determine the slowest possible clock required for performing each function, and thus reducing the global power consumption.

The hierarchical organization of the SANDRA architecture reflects the structure of both applications and data they manipulate. From the programmer's point of view, applications are seen as computations on different levels of data structures. From the system design point of view, the hierarchy of control and communications exploits temporal and spatial locality to enforce storage and bandwidth requirements. It also helps addressing the issue of on-chip signal propagation delays.

Another challenge of the project was to support the hard real-time requirements of "live" stream processing in combination with the dynamic reconfiguration inherent to most Ambient Intelligence applications. We propose to address this issue through piecewise static control: the scheduling and mapping of computations and communications in SANDRA is made statically for a range of "scenarios" defined by the different levels of maximum load guarantees and throughput/latency requirements. Within each scenario, the schedules and resource allocations guarantee the respect of performance and resource requirements while ensuring the best possible efficiency.

This paper is further organized as follows: section 2 introduces the application domain and the representation of applications used in SANDRA. Section 3 presents the overall structure of the SANDRA compilation chain. Key issues in code generation are presented in Section 4. Section 5 describes the key system architecture concepts of SANDRA.

¡ ¨¢ ¢ ¤£ ¦¥ © §£ ©£ ¥ ¨ § § ¨¥ ¥ ¥ ! § !¥ "Ẅ
hen designing a domain-oriented system suitable for a range of applications, the characterization of the application domain is a key success factor: it makes possible to exploit application properties in an efficient way.

The target domain of SANDRA is real-time media stream processing. We provide a tentative solution to the system design issues in presence of: massive amounts of parallelism; piecewise regular processing of structured data; predictability of events; multiple processing rates; explicit temporal requirements in applications.

The application model must capture the concurrency and real-time attributes of the applications and of the SANDRA hardware. In addition, the applications operate on structured data whose size has to be taken into account in the model. When combining a machine description of the target system with the information of an application's degree of concurrency, data size, clock rates and hierarchy, it is possible to determine the peak and average bandwidth values, end-to-end and partial latencies, intermediate buffer sizes, utilization rates of target system elements, etc.

¡ ¨¢ ¡ # $ § &% (' )£ © ' © !£ ©10 2£ § 43 © §5 6T
o enable fast retrieval of time and resource properties at every stage of the design process, we developed a process-based application model called Multi-Periodic Process Networks (MPPN; a detailed presentation and discussion of the model can be found in [START_REF] Cohen | Multiperiodic process networks: prototyping and verifying stream-processing systems[END_REF]). The MPPN model is inspired by Kahn process networks [START_REF] Kahn | The semantics of a simple language for parallel programming[END_REF], Petri nets variants such as event graphs [START_REF] Baccelli | Synchronization and Linearity[END_REF], and by Control/Data-Flow Graphs (CDFG, [START_REF] Rabaey | Fast prototyping of datapath intensive architectures[END_REF]). It also shares some motivations with the COMPAAN project [START_REF] Kienhuis | Compaan: Deriving process networks from matlab for embedded signal processing architectures[END_REF] within the PTOLEMY environment [START_REF] Buck | Ptolemy: A framework for simulating and prototyping heterogeneous systems[END_REF].

The MPPN provides four distinctive concepts: (1) explicit synchronizations between processes, (2) bounded-size communication channels, (3) a quantitative notation for delays, latencies and periods of processes, and (4) a hierarchical composition mechanism for building aggregate processes from elementary ones. In particular, the two latter features of MPPN are fundamental when distributing applications onto networks of SANDRA instances. The hierarchical composition helps in partitioning, and the quantitative modeling of delays and latencies allows the MPPN network analysis tools to check if the communication channels are suited to the proposed partitioning. Figure 1 shows a simple MPPN for a two-dimensional polyphase filter, applied to the downscaling of video frames from a high definition (7 98 A@ CB ED F7 GB 4H CB ) to a low definition (¡ C@ CB D £¢ H CB ) screen; the filtering process is decomposed into a horizontal stage (sub-process P¤ ) and a vertical stage (sub-process P ¥ ). The HARRY verifier tool that we have built checks the coherency of the input data and timing constraints and computes the required buffer sizes, process latencies, bandwidth and resource usage. It uses an XML representation of a MPPN (cf. Figure 2). This representation is designed such that an MPPN can easily be abstracted from a SALLY program (see 3.1). At present, it handles cyclic networks and clocked processes but not the splitter/selector extensions.

We tested MPPN models for five typical applications: downscaler with a polyphase filter, horizontal split-screen display (splitter and selector), picturein-picture (full example with deep hierarchy), advanced anti-aliasing filter (pipelined execution and complex acyclic graph), and noise correction (cyclic graph). Using HARRY, we solved the network's equations to check for soundness and compute the missing parameters. Finally, we deduced resource requirements (memory sizes, bandwidths, functional unit counts).

The MPPN model was designed to leverage upon the key properties of the domain of pixel-stream processing (predictable behavior, regular processing, extended stream semantics with a steady state, timing and bandwidth constraints, few data dependent control loops). Its main limitations are the fixed token size and the restricted splitter/selector semantics. Token sizes are bounded to allow the design of predictable systems, possibly leading to a worst case design (this is also the case with ASIC design.) The splitter/selector model can hardly be extended without losing static schedulability, but applications that have non-deterministic (or data dependent) splits and selects also have an upper bound in their activation frequency, allowing for an approximate MPPN model. Extensions of the model are possible, at the expense of a big complexity increase. We therefore preferred to use simplifications and perhaps less optimal solutions to model the few applications that escape from the common characteristics of the domain.

¢ "! ¥ § !¥ # %$ " ¥

The compilation process consists in mapping the timed process network representation of the application to the hierarchy of control, memory, and process-<!DOCTYPE MPPN SYSTEM "MPPN.dtd"> <MPPN> <!--The first process --> <Process id="1" Type="Normal"> <Name>HDInput</Name> <OutPort ChannelID="1"

Start="true" End="false" Q="2073600"> <Bandwidth/> <Message/> <Access a="1"/> <Latency l="0"/> <Burstiness/> </OutPort>

« a ª 1n h ¦¥ SANDRA compilation chain

ing units which form a SANDRA instance. Both the mapping of an application to the SANDRA architecture and the validation of the resource constraints for this application rely on a model of system. The model provides quantitative target system models at multiple levels of refinement and precision. By combining this information with the timed process network representation of the requirements of the application, it is possible to carry out performance estimations in a systematic way, even at early design stages of either applications or the target system. The purpose of the compilation chain of SANDRA is threefold:

providing timed simulation models to be used in design-space exploration and debugging of functional and temporal behavior of SANDRA applications; generating code and parameters for general-purpose and dedicated units, for each controller, at each layer of the architecture; this must be fully automatic because the execution model is too complex to be handled at the application level; optimizing the code such that the time constraints are satisfied while minimizing memory, computation and communication resources; tedious optimizations and transformations are automatic, but the engineer can still drive the design space exploration using an abstract processnetwork model of the application.

In the high-level synthesis community, Control/Data-Flow Graphs (CDFG) have been a successful representation for data-intensive applications with timing and resource constraints [START_REF] Rabaey | Fast prototyping of datapath intensive architectures[END_REF]. Indeed, CDFGs can be simulated for designspace exploration, they serve as a basis for optimizing transformations, and of course, they enable code or circuit generation. Well-known research tools such as HYPER [START_REF] Rabaey | Fast prototyping of datapath intensive architectures[END_REF] or PTOLEMY [START_REF] Buck | Ptolemy: A framework for simulating and prototyping heterogeneous systems[END_REF] (with alternative data-flow graph models) have been developed in this area.

Several compiler techniques developed for resource-constrained scheduling of loop nests can reconstruct the control and data structures completely through algebraic loop-nest transformations [START_REF] Feautrier | Some efficient solutions to the affine scheduling problem. part II. multidimensional time[END_REF][START_REF] Thiele | Resource constrained scheduling of uniform algorithms[END_REF]. These techniques can distinguish between each iteration of a loop or each value of a stream/array, enabling much more aggressive transformations.

However, the better efficiency of such techniques comes at a price: some of the versatility of CDFGs and other flow-graph approaches is lost, like the ability to handle arbitrary control flow or the natural integration of timing and resource constraints. But since our applications do not rely on arbitrary control flow, and despite the lower versatility and the higher computational complexity, we believe that only aggressive techniques can efficiently harness the resources of the highly parallel architecture.

The structure of the SANDRA compilation chain is sketched in Figure 4, where numbers link transformation phases and code representations to the relevant sections. Compilation starts with an application description specified in the high-level language SALLY (section 3.1) and checks real-time properties with the HARRY verifier (section 2.1). During the design space exploration, the YAKA multidimensional affine scheduler (section 4.1) and the PILO-LORA software-pipelining tool (section 4.2) produce one or several schedules and resource allocations of the concurrent program; the programmer may drive the exploration in suggesting a coarse-grain mapping of (some) processes to SAN-DRA controllers. The code rewriting phase (section 4.1) regenerates SALLY code from the abstract schedule, allowing for iterative refinement of the schedule. Finally, cycle-accurate simulation code and SANDRA assembler code are generated from the fully scheduled SALLY program. All communications between software modules are done via XML files, while the tools use their own internal formats.

To accommodate the flexibility of the hardware template, software tools supports parameterization by a machine description file that contains the information necessary for the code generation stage. It also seamlessly interacts with HARRY's evaluation of communication latencies, parallelism, buffer and bandwidth requirements, and the results may be fed back into machine descriptions of higher-level operations. Eventually, the machine description file feeds YAKA and PILO-LORA for resource allocation information, enables the automatic generation of simulation models, and provides a reference for regression testing of the actual hardware. This pervasive use of the machine description is a major governing principle in the SANDRA architecture and compilation chain.

¢ ¡ ¡ $ "£ SALLY ¢ ¥ ¤£ ! ¥£ £
In order to capture both functional and non-functional requirements of applications at the program level, we designed a small, domain-oriented language called SALLY. Rather than extending a sequential language such as C, C++, or Java, we propose to use a clean set of concepts tailored to the characteristics of the application domain, and we provide constructs which are familiar to domain specialists. This in turn makes it possible to formalize application requirements, while still allowing the compiler to perform domain-specific analyses, verifications, and optimizations.

SALLY is a declarative language. At the core of SALLY is the synergy between structured data types (arrays and records), iterators, and processes.

Variables in SALLY are streams of array or scalar values, indexed by iterator values. Each variable has an associated index domain (possibly unbounded), which identifies all index values for which this variable is defined [START_REF] Leverge | The ALPHA language and its use for the design of systolic arrays[END_REF]. SALLY variables correspond directly to channels in MPPN.

Iterators are a uniform concept for expressing loops (either parallel or sequential) and event-based processing. Three types of iterators are available: indices correspond to unordered, potentially concurrent iterations; counters correspond to ordered, i.e., serial iterations; clocks are counters with quantitative time distribution, they are used to capture the real-time requirements of the application. Processes are sets of equations or networks of other processes that are evaluated in response to a change of value of a special input, called the trigger, mapped to an iterator defined outside the process.

The basic statements of SALLY are equations and process activations. Statements may be explicitly associated with an iterator. An equation defines the value of a variable as the result of evaluating an expression in the current context of iterator values. A process definition consists of an interface definition and a body : the body lists the local variables of the process followed by its equations and subprocesses, whereas the interface definition provides type signatures and names for the input/output ports, along with per-invocation parameters of the process. A process activation instantiates the process, binds the ports and parameters of the process with actual variables, and maps the trigger of the process to an actual iterator.

SALLY programs can express parallelism in three ways:

by triggering multiple statements/processes on the same iterator (there is no explicit sequential ordering; instead, the dependencies are extracted and checked at compile time); through unordered iterators (for all i do ¡ ¢¡ ¢¡ ); through array-wide operators.

The first method provides a natural expression of control parallelism, while the last one is specifically directed at data parallelism. The unordered iterators provide a means of trading control parallelism for data parallelism.

« ª 1n mh ¤£ SALLY application example: filtering and output

The first three lines define iterators (clocks) used by the main process: frameStart runs at 30Hz and is provided by the environment; output line clk is a clock running ¶ ¡ at 660 times faster than FrameStart and is reset to zero at every tick of FrameStart; visible line clk is a sub-sampling of output line clk and is only active when output line clk value is between 100 and 579 inclusive.

The process Vstage takes one input value (frame after HFL array) per activation, using VFL coefs and VFL offset as per-activation parameters.

When triggered, process Vstage will activate process VFL stage at every tick of clock FrameStart, and will activate OUTPUT for every tick of visible line clk. Each activation of VFL stage consumes the current value of frame after HFL, produces a new value of frame after VFL and uses the current value of VFL coefs and VFL off as perinvocation parameters. Each activation of OUTPUT selects an appropriate line from the latest value of frame after VFL, and acts as a sink node (output to VOID).

SALLY programs form a concrete representation of MPPN, with the addition of complete information on process internals. This information is critical to the precise evaluation of MPPN parameters such as process and channel latencies, based on a machine description of the underlying SANDRA architecture. In this way, SALLY program analysis and transformation can leverage on all techniques developed for MPPN.

The actual computation of bandwidth, buffer, latency and resource usage properties is done by the HARRY verifier. The MPPN abstraction of a SALLY source code enables fast estimation of these properties, which is critical to the design-space exploration of application and the target system. HARRY output is also used to find the necessary sequential and timing constraints to be included in the SALLY program, and to identify over-constrained applications not amenable to parallelization. It gives also a quick go/no-go answer in case of distributed application onto an network of resources: the available bandwidth and latency of the communication channels are checked against the current application partitioning.

¢ ¢ £ $ "£ ¥ £ ¥ "£ ¥¤ £ ¥ "£ © §

¨¥

The scheduling phase benefits of the domain-specific semantics of SALLY: array and iterator structures are constrained such that memory dependences (i.e., causality constraints) can easily be captured at the level of each iteration using classical array dependence analysis techniques [START_REF] Feautrier | Dataflow analysis of scalar and array references[END_REF]. Dependences are described by systems of affine constraints enforcing sufficient conditions to make a schedule valid. In addition, SALLY processes explicitly communicate through FIFO channels following the semantics of MPPNs. Extending array dependence analysis to communicating processes requires to match every send with its corresponding receive, i.e., to count the number of sends and receives; this may lead to polynomial expressions when communications are nested within multiple loops. To get back to a classical array dependence analysis problem, we convert each send/receive statement into a store/load reference into a cyclic buffer. This corresponds to a candidate implementation ¶ e ¶ for the channel, assuming that the buffer is bounded and that the bounds are known at compile-time, which is easily checked on the MPPN model.

The resulting affine constraints can be handled by Feautrier's scheduling algorithm for "static-control" loop nests [START_REF] Feautrier | Some efficient solutions to the affine scheduling problem. part II. multidimensional time[END_REF] (a class that includes most streaming algorithms), proven optimal in terms of asymptotic parallelism extraction [START_REF] Vivien | On the optimality of Feautrier's scheduling algorithm[END_REF]. This method uses an efficient constraint solver based on Parametric Integer Programming, PIP [START_REF] Feautrier | Parametric integer programming[END_REF]. In theory, the result should be a multidimensional affine schedule for the whole program, telling when each iteration, operation or communication should occur. In practice, PIP may not scale to large systems generated from real-world streaming applications (its complexity is exponential in the worst case). Instead, we can benefit of the hierarchical decomposition of the SALLY program to cut down the scheduling problem to tractable pieces. This approach has already been studied and implemented in the context of the Alpha language [START_REF] Crop | Scheduling structured systems[END_REF].

¢ ¢ ¡ ¡ $ "£ YAKA ¨ $ "£ £ ©
The YAKA scheduler is the first step in the construction of the target program. It is invoked as soon as a first sketch of the architecture (number and type of the operators, size of the memory) is available. This information may be given, e.g., by a preliminary analysis using MPPN or be generated by the designer. It has two input interfaces. First, a C-like programming language (sYAPI) with process, channel, port and send/receive extensions; its ease of use makes it suitable as a development tool. The second interface is an intermediate representation in XML format (a convenient way of representing syntax trees) and do not impose any semantics on the designer. There is a DTD for this representation, which is primarily intended as documentation. In a future version, it is intended that the SALLY parser will generate an instance of such XML representation.

Eventually, the present version generates C code through standard polyhedra scanning techniques [START_REF] Ancourt | Scanning polyhedra with DO loops[END_REF][START_REF] Quiller | Generation of efficient nested loops from polyhedra[END_REF][START_REF] Bastoul | Generating loops for scanning polyhedra[END_REF]. But the hierarchical control structure of SANDRA will require more work to generate low-level code (code compaction, code partitioning for different controlers, explicit generation of communication patterns, memory management).

In its standard version, YAKA does not address operation latency, real-time constraints, allocation of computations to the SANDRA controllers and lowlevel operators, and memory/register allocation. Theoretically, these additional constraints and tasks do fit into the YAKA model thanks to linear encodings, see e.g. [START_REF] Thiele | Resource constrained scheduling of uniform algorithms[END_REF]. Latencies and real-time deadlines are captured through additional affine constraints, and YAKA automatically converts resource constraints into artificial dependences (based on a cyclic allocation of resources to competing operations). ¶ Most of the practical work around YAKA has to do with a better integration in the SANDRA compilation chain, both at the input and output sides. On the theoretical side, the problem of taking into account resource constraints (e.g., a limited number of adder-multipliers) has only partial solutions. In the present version, this is mainly obtained by adjusting the size of circular buffer (since the degree of parallelism cannot be higher that the amount of writable memory). This is unsatisfactory, as it needs manual arbitration between phases of the application. Another point is that the present scheduler is not modular, and the subroutines in the source have to be inlined.

¢ ¢ ¡ £ § 43 £© £ ' ¥ £ ¥ ¥ ¤£ ¥ ¡ £ © £© $ £¢
We are working on two possible solutions to improve the scheduling quality. Both of them are based on PILO-LORA, an existing software pipelining tool developed at INRIA that performs loop instruction scheduling (PILO) as well as loop cyclic register allocation (LORA). Unlike usual modulo scheduling algorithms, PILO implements the non iterative-DESP [START_REF] Wang | DEcomposed Software Pipelining: a New Perspective and a New Approach[END_REF] software pipelining algorithm: it handles fine-grain resource constraints, including register types, non-uniform instruction formats and arbitrary reservation tables. PILO provides heuristics for the control of register pressure. For instance PILO-LORA can software-pipeline an elementary step of HFL (Horizontal Filter) and give the Pareto curve drawn in figure 6 for trading-off register pressure against timing in a dimensioning phase of the lowest level of the SANDRA architecture. In this example, the analysis assumed a design with 4 multipliers, 4 adders, and 3 memory ports (2 for loads and 1 for store instructions), with latencies of 20 cycles for loads and stores, and 10 cycles for multipliers and adders.

We are also considering other approaches for exploiting PILO-LORA. The first approach consists in regarding PILO-LORA as an alternative to YAKA's affine scheduling. Based on array dependences and reservation tables for every ¶ subtask involved in a process, the DESP algorithm can be applied to the innermost loops of the process. Then, application to the whole program requires a recursive application of PILO-LORA along the process hierarchy, much like hierarchical software pipelining techniques [START_REF] Lam | Software pipelining: An effective scheduling technique for vliw machines[END_REF]. In practice, it requires an additional effort by the programmer since PILO is not able to automatically assign processes to SANDRA levels; hence a prior coarse-grain mapping has to be provided along with the SALLY source code.

Another approach -currently in progress -consists in combining the YAKA scheduler with a software pipeline "microscheduling" phase, integrating resource allocation and fine-grain rescheduling. E.g., YAKA is appropriate for detecting (possibly unlimited) parallelism in loop nests and PILO-LORA is much better at allocating resources and scheduling the innermost loops in the code generated by YAKA. Artificial scheduling constraints may be added to YAKA in order to make the innermost loop code scheduling more efficient.

¢ ¢ £ ! § !¥ £ ¢ ¥ © £ © § ! ¨ " ¥ ¤£ £ £¢ $¨ § £ !
In parallel with the development of the compilation chain for native target programs, we developed a tool generating SYSTEMC simulation models directly from SALLY programs. The generation of SYSTEMC models leverages on the direct correspondence between core elements of SystemC and the SALLY process model, including time-related features (clocks, delays) and concurrency. Latency requirements information from the application source code is used to define run-time consistency checks related to deadline respect etc.

The SystemC models are generated by combining two sources of information: a SALLY program (used as a specification of application requirements, both functional and temporal), and a target system description containing the functional and temporal capabilities of elementary processes used in that SALLY program.

The granularity of the generated SYSTEMC model directly corresponds to the granularity of the processes described in the SALLY program. When the SALLY program is refined to use actual operations of the target system, the resulting SYSTEMC model will be equivalent to a compiled instruction set simulator of the target for the application specified by the SALLY program.

This approach to simulation model generation provides several advantages: direct representation of time (clocks, latencies) and concurrency represented in SALLY programs; elimination of verbosity in SystemC programming, particularly in class declarations; the SALLY process interface declarations are on average ten times smaller than the corresponding SystemC declarations; ¶ automatic generation of behavior cross-checking and reporting/profiling code, e.g., detection of missed deadlines, monitoring of process activity; the latter complements the analysis capabilities of HARRY, providing a dynamic feedback on the utilization rate of processes, on process network latencies, and on traffic shapes of inter-process communications.

automatic generation of activity traces using SystemC trace generation facilities; a side-by-side analysis of the evolution of process states simplifies the analysis of synchronization errors and greatly simplifies application debugging.

¨¢

SANDRA £ ¢ "¨ § £ ! © $ § £ § © £
To achieve the required degree of flexibility, all elements of the system should be configurable: functional units, their interconnection, control mechanisms, and memory subsystem. The frequency of reconfiguration of the different system elements depends on the nature of the tasks being performed, and can vary from several Hertz (mode changes, transitions between video frames) to several tens of MegaHertz (sub-pixel filtering). Centralizing the reconfiguration decisions would lead to a severe control bottleneck in the system. Instead, we propose to distribute the control and organize the system using a hierarchical approach, driven by and adapted to the characteristics of the target application domain.

The presence of explicit timing/frequency requirements in targeted applications led to another fundamental decision: instead of executing the tasks as fast as possible (driven by the intrinsic speed of hardware modules), the tasks are triggered right-on-time, synchronized with specific events. This mechanism addresses a major shortcoming of conventional interrupt-triggered architectures, which maximize average performance, and tolerate latency on "lowprobability" events, expected to arrive fully asynchronously with the operation of the processor.

In our approach, the coordination of tasks operating at the same rate is performed by a single controller, which delegates the control of individual tasks to the next level of the hierarchy. This mechanism is again used to control sub-tasks inside each of the top-level tasks, and can be recursively repeated for as many levels as required. Conversely, tasks with independent clock domains may be executed by different controllers without unnecessary synchronizations. Finer-grain (thus, higher-frequency) tasks have stricter latency and bandwidth requirements: they require fast access to data and a high storage bandwidth. Conversely, coarse-grain tasks can tolerate longer latencies than the rest of the system. This fact is reflected in the memory and communication structure of SANDRA. The lowest levels of the system hierarchy use small, fast memories fully interconnected with relatively simple operators (FIR filters, ¶ etc.). Higher levels of the hierarchy offer a lower number of larger memories, and communicate through a higher-latency network. In this way, both the locality of data references and the natural synchronization of tasks at each level can be fully exploited within a unified system organization.

¨¢ ¡

¥ § ¨¥ " £ ! § © § © £ ©T he SANDRA hardware (see figure 3) consists of four distinct, superposed architecture layers corresponding to the different functions of the programmable system:

1 A hierarchical control layer managing resource activity and enforcing data dependences and real-time constraints on the three other functional structures of the SANDRA hardware. 2 A clustered execution layer gathering the functional units that operate on the contents of the data streams. A the lower level, each functional unit has a structure of a dedicated VLIW (Very Long Instruction Word), allowing the various operative units such as ALU, multipliers, etc to work simultaneously. 3 A heterogeneous communication layer tuned to the activity of each level: low latency, high bandwidth and high connectivity for the lower levels (pixel processing), higher latency and throughput achieved through larger data blocks for the higher levels (line, image processing). Because of the multiplicity of compute cores, the increased need for communication bandwidth, and the ever increasing wire cost inside systems-ona-chip (SoC), the higher level internal communications will be implemented by networks instead of classical busses. 4 A parameter layer to customize the dedicated functional units of the execution layer, providing parameters for the operations on the main (pixel) computation flow. It is composed of very small RISC processors.

The execution and parameter layers are tightly coupled, but they perform radically different operations and process different kinds of data. A typical example of parameter unit is address generation: in most stream-processing algorithms, irregularities can be moved towards generating addresses, the remainder of the computation (e.g., pixel processing) following a regular flow. In the application domain considered, most of (pixel) compute kernels are similar in various algorithms; it is the way they are organized and how their parameters are computed that differ and gives the differenciating factor. Therefore, the parameter layer is the most flexible.

The architecture also distinguishes what is related to stream-processing computations from what is needed to run the SANDRA system: the execution code is split in two parts. The application code describes the computation on the data flow, and the control code schedules the application code over the hier- ¶ archical architecture. The application code is independent of the architecture instance and targets the communication, execution and parameter structures. The control code adapts the execution to a given SANDRA instance and to the dynamic part of applications.

¨¢ ¡

¨¥ ! § © £ ! § © § © £

The control structure of SANDRA is also composed of hierarchical layers. It illustrates the current trend in system design: systems are built by integrating components (often called IPs) (software or hardware) that are linked together by a common interface for communication and control. From the software point of view, this represents an evolution towards component-based software engineering. The hierarchical control system allows to distribute the control units near the functional units, hence to have a scalable and modular design. For example, if the higher-level controller implements a two-dimensional polyphase filter, it may decompose this task into separate horizontal and vertical filters, and delegate these subtasks to lower-level controllers. The top level does not need to know how the lower-level controllers perform the tasks, as long as they satisfy the specified time constraints. The lower level controllers can also decompose the mono-dimensional filters into blocks of vector operations, then into scalar products and additions, and so on. Each level of the computation is assigned to a controller, but several logical controllers can be folded into one physical controller. This scheme allows to have a "logical" single control flow, but in fact not centralized and supporting some asynchrony (sub-level controllers can be independent, and they can feedback to the controller just above when they have finished their task).

The controller structure is the same for each level of the hierarchy, and is a stack-based virtual machine. Since multiple reentrant control codes should be executed on one physical controller, no explicit register allocation is done. Variables (used only for the control part of the application) are not explicitly allocated but remain on the stack. If a new task starts, it could start on top of the previous task stack as long as it eventually restores the right stack position. Using a stack-based virtual machine also eases portability across implementations of the SANDRA architecture and favors code compactness (factorization). As opposed to traditional stack based languages (Java, Forth, Postscript, OPL, etc.), we propose a threaded code structure where each instruction explicitly targets the next instruction to be executed; together with stacks, this improves factorization and eases reentrance and late binding. At each level (except for the lowest level), an instruction is composed of two main fields: the first one is dedicated to the control flow itself and its threading mechanism: instead of a "program counter", the next instruction is indi- ¶ cated explicitly within the current instruction, in a similar manner as the linked-task structure of a real-time OS; the second field manages the lower level controllers; it is composed of several slots, one for each sub-controller; thus, there is no real distinction between a slot that triggers a (lower level) controller action (in this case, it is equivalent to a subroutine call) and a slot that controls a functional unit.

This structure allows to map a code onto various instances of SANDRA, with no recompilation and a minimum load during the instantiation of the code (binding). It gives some code expansion, but it is believed to be compensated by the code factorization present in our domain-specific applications.

¨¢

¢ ¥ " ! ¢ ¤£ ¨¥ ¢¡ £ ¨ © § ¨¥ ¥ ¥ ¥ ! § !¥ £ 3 § $ ¥ £
Let us now show how our static modeling, compilation and optimization framework can cope with the dynamic features of Ambient Intelligence media applications. Stream-oriented applications can be modified on request of the user (for example, having or moving a Picture In Picture), or due to the environment (new people entering a room, appearing in the vision field of a camera, etc.). However, these changes are slow compared to processing speed (user interactions are at the split second level, while video applications require changes at the frame rate, i.e., several milliseconds.)

The following paragraphs describe how dynamic reconfiguration and application switching can be mapped to the SANDRA system, while keeping the most important features of statically compiled code, such as guaranteed performances, predictability and high silicon efficiency.

In the considered application domain, there are always boundaries and limits that are given, either explicitly or implicitly: for example, giving a time limit for the execution time (e.g. a frame interval) and given the hardware resources, an implicit limit on the complexity of the application can be derived. We have developed the MPPN to help determining these constraints. If an application cannot fit within the hardware or time constraints, then it has to be modified (simplified). This led to the idea of "piecewise static control": an application is split into sub-applications, each of them specifies a sub-case for a certain range of parameters. Each sub-application can therefore be statically compiled with good efficiency. Dynamic behavior within a sub-application is handled by classical methods, such as worst case dimensioning and predicated instructions. Each sub-application has known characteristics, performances, and has a better efficiency because it covers only a sub-set of the variability of the original application. The activation of the relevant sub-application is done by one controller after the analysis of the input parameters. ¶ Task or sub-task allocation in the system is done preferably in space rather than in time (using parallelism rather than a faster clock). Although the controller can implement time-sharing of functional units, the context saving needs to be explicitly expressed in the application, and it might be costly due to the large amount of data stored in the various pixel pipelines. This is why in SANDRA we prefer to use a "space-sharing" mode: tasks are activated or deactivated at the level of the sub-controller directly in charge of the resources allocated to these tasks. In the SANDRA controller system, a task (or a subtask) is represented by the sub-tree with the root node being the controller that directly or indirectly (by the controllers that depend on it) "covers" all the resources available for the task. Switching from one task to another one means simply deactivating one complete sub-branch of the tree and activating a new one. This is done in a very simple manner by changing the link field in the corresponding instruction of the root node.

The application domain enforces quality-of-service constraints including time requirements, and we are aiming at efficient and guaranteed usage of the architecture, not at the best effort processing (it is useless to go faster than required) Thus, the concept of hierarchical hardware and control provides a simple mechanism for tasks activation: if two sets of controllers, organized in a sub-tree, can control the same kind of compute elements, storage units and communication means, sub-tasks can execute indifferently on any controller. Hence, a simple compile-time scheduling and allocation is possible. The nearest controller that supervises the two tasks (i.e., the closest parent in control hierarchy) can adjust its own configuration to link the input/outputs of the new task to the rest of the system (this is made possible because all controller have an unique ID, therefore the code can know exactly where it runs). For any controller above the direct supervisor of the two tasks, the activation of one or the other task has no effect, as long as the communication schemes of the tasks are identical.

¢ ¨¥ $¨ !¥

This work addresses the development of embedded systems dedicated to pervasive video applications in the Ambient Intelligence universe. The computation and bandwidth constraints of these applications exceed today's generalpurpose processors by orders of magnitude, yet the cost of application-specific hardwired components becomes disproportionate with product lifetimes. To address these challenges, we stressed the need for a fast and efficient development process for domain-specific system solutions.

We surveyed the SANDRA approach to the architecture, compilation and language issues addressed by real-time streaming applications. The project led to promising results in four different aspects: ¶

The development of Multi-Periodic Process Networks -providing time and hierarchy to a restricted class of Kahn Process Networks -helps in design-space exploration, validation of resource/time properties, and in mapping onto distributed components. The design of SALLY, a domain-oriented language combining streams and implicit parallel constructs with non-functional properties such as time requirements and resource allocation. A compiler chain, using state-of-the-art algorithms for extracting parallelism, affine scheduling, software pipelining and code generation. A hierarchical architecture, easily tuned to the application requirements and allowing to run highly demanding algorithms at consumer price.

The proposed approach can also be applied when the resources are networked, mainly inside a SoC, and it allows to support dynamic behavior to some extend in an environment where hard time constraints are important, therefore demanding real-time streaming applications for Ambient Intelligence can be defined and efficiently mapped with our approach on embedded systems.

Further work is required before demonstrating a running prototype, and larger examples should be studied to explore the system's scalability. Nevertheless, we believe our model has matured enough to clearly state the most important directions towards a domain-specific approach to architecture and compilation development.

  <!--Process parameters --> <Period/> <Burstiness N="1"/> <Latency/> <PipelinedExecution/> <Activation/> </Process> <!--... --> « a ª 1n mh ¢¡ Sample XML representation and parse tree

Example: Figure 5

 5 shows a short excerpt from a SALLY implementation of a two-dimensional polyphase filter. extern clock frameStart 30Hz clock output_line_clk 660 @ FrameStart (* visible + Vsync *) clock visible_line_clk output_line_clk[100 .. 579] node Vstage(param float VFL_coefs[64][6], param int VFL_off[64][6], input pixel frame_after_HFL[1080][720]) { decls (* after Vfilter: 480x720 pixels *) pixel frame_after_VFL[480][720] code (* frame-level V filter invocation *) frame_after_HFL -> VFL_stage(VFL_coefs, VFL_off) -> frame_after_VFL every frameStart (* output ctrl at line level *) frame_after_VFL[visible_line_clk -100] -> OUTPUT -> VOID every visible_line_clk }

  (t,720,1920)+i-3] * coef[HFL_Phase[t]][i])}« a ª 1n h C² Software pipelining of one HFL step

project is supported by a Pierre et Marie Curie fellowship and a European Community project MEDEA+ A502 "MESA".

Code Generator