I Det är väl känt att nuvarande superskalar organisationer närmar sig en punkt av dimishing avkastning. Det är inte trivialt att byta från ett 4-vägs problem till en 8-vägs problemarkitektur på grund av hårdvarans komplexitet och dess konsekvenser under cykeltiden. Icke desto mindre är den instruktionsnivå parallellism (ILP) som en 8-vägs problemprocessor kan utnyttja mycket mer än en 4-vägs fråga ett. En av lösningarna på denna utmaning är klusterbildning. Klustering erbjuder fördelarna med de delade system där man kan uppnå höga nivåer av ILP och upprätthålla en hög klockfrekvens. En partitionerad arkitektur tenderar att göra hårdvaran enklare och dess kontroll och datavägar snabbare. Den har till exempel färre registerportar, färre databusskällor/destinationer och färre alternativ för många kontrollbeslut. Nuvarande processorer delas upp i två delsystem (t.ex. heltal och flyttal ett). Som det har visats [14, 16], FP-delsystemet kan enkelt utökas för att utföra enkla heltal och logiska operationer. Till exempel, både registerfiler numera innehåller 64-bitars värden, och enkla heltal enheter (ingen multiplikation och division) kan inbäddas i en liten hårdvarukostnad på grund av dagens transistor budgetar. Dessutom är de hårdvaruändringar som krävs för de befintliga arkitekturerna minimala. Detta arbete fokuserar på denna typ av kluster arkitektur med två kluster, en för heltal beräkningar och en annan för heltal och flytta-punkt beräkningar. Fördelen med denna arkitektur är att nu dess flytta-punkt register, data sökväg och främst, dess problemlogik används 100% av tiden i alla program. Det finns två huvudfrågor som rör klusterarkitekturer. Den första är kommunikationen mellan kluster. Eftersom inter-cluster kommunikation lätt kan ta en eller flera cykler, ju högre antalet kommunikationer desto lägre prestanda kommer att bero på fördröjningen som införs mellan beroende instruktioner. Den andra frågan är balansen i arbetsbördan. Om arbetsbördan inte är optimalt balanserad kan en av klustren ha mer arbete än den klarar av och den andra kan vara mindre produktiv än den kan vara. För att uppnå högsta prestanda måste vi alltså balansera arbetsbelastningen optimalt och samtidigt minimera antalet kommunikationer. Arbetsbelastningsbalansen och kommunikationens omkostnader beror på den teknik som används för att distribuera programinstruktionerna mellan båda klusteren. Program kan partitioneras antingen vid kompileringstid (statiskt) eller vid körningstid (dynamiskt). Den senare metoden bygger på en styrlogik som bestämmer i vilken kluster varje avkodad instruktion kommer att utföras. Styrlogiken är ansvarig för att maximera avvägningen mellan kommunikation och arbetsbelastning och därför är det en nyckelfråga i utformningen. I detta arbete föreslås ett nytt styrsystem och dess prestanda utvärderas. Vi visar att det föreslagna systemet överträffar ett tidigare föreslaget statiskt tillvägagångssätt för samma arkitektur [16]. Jämfört med en konventionell arkitektur uppnår den dessutom en genomsnittlig hastighetsökning på 35 % för SpecInt95 och två Mediabench-program. Resten av dokumentet är organiserat enligt följande. I avsnitt 2 presenteras strukturen och flera tillvägagångssätt för
Dessutom är deras system mindre flexibelt och mindre effektivt än ett dynamiskt tillvägagångssätt som visas på annat håll REF, eftersom alla dynamiska fall av samma statiska instruktioner utförs i samma kluster oavsett körtidsförhållanden, såsom arbetsbelastningsbalansen, som är svåra att uppskatta vid sammanställningen.
A cost-effective clustered architecture
{'venue': '1999 International Conference on Parallel Architectures and Compilation Techniques (Cat. No.PR00425)', 'journal': '1999 International Conference on Parallel Architectures and Compilation Techniques (Cat. No.PR00425)', 'mag_field_of_study': ['Computer Science']}