En flexibel kommunikationsmekanism är en önskvärd funktion i multiprocessorer eftersom den möjliggör stöd för flera kommunikationsprotokoll, utökar prestandaövervakningen och leder till en enklare design och felsökningsprocess. I Stanford FLASH multiprocessor, flexibilitet uppnås genom att kräva alla transaktioner i en nod för att passera genom en programmerbar nod controller, kallad MAGIC. I detta dokument utvärderar vi prestandakostnaderna för flexibilitet genom att jämföra FLASH:s prestanda med prestandan hos en idealiserad hårdtrådad maskin på representativa parallella applikationer och en flerprogrammeringsarbetsbelastning. För att mäta FLASH:s prestanda använder vi en detaljerad simulator av FLASH- och MAGIC-konstruktionerna, tillsammans med de kodsekvenser som implementerar cache-sammanhållningsprotokollet. Vi finner att för en rad optimerade parallella applikationer prestandaskillnader mellan den idealiserade maskinen och FLASH är små För dessa program, antingen miss hastigheter är liten eller latens av programmerbara protokollet kan döljas bakom minne åtkomsttid, För program som ådrar sig ett stort antal fjärr missar eller uppvisar betydande hot-spotting, prestanda är dålig för båda maskiner, även om den ökade fjärråtkomst latenser eller beläggning av MAGIC leder till lägre prestanda för den flexibla designen, I de flesta fall är dock FLASH bara 2?7.-129T0slower än den idealiserade maskinen.
Stanford FLASH designers finner att prestandastraffet för att använda en protokollprocessor är mindre än 12% för de applikationer som de simulerade, inklusive Ocean och Radix REF.
The performance impact of flexibility in the Stanford FLASH multiprocessor
{'venue': 'ASPLOS VI', 'journal': None, 'mag_field_of_study': ['Computer Science']}