allokering i hierarki

En homogen multiprocessor förutsätts här. I klassika datorer har hierarkier använts för kommunikationslänkar och minnen, däremot inte för processorer.

Dessa hierarkier har varit lätta att förstå - däremot är de mer komplicerade i multiprocessorer.

Kommunikationslänkar
Om flera kommunikationslänkar läggs till så bildas ett annat nätverk, som har andra transportegenskaper. Det kan uppkomma behov av minne för buffring i skarven mellan nätverken, men det får mer ses som en del av länkens konstruktion. Transporterna kan bli riktad annorlunda, men det är inte sannolikt att några extrema förändringar uppkommer.

Minnen
Minne används av två skäl

  • ett långtidsminne, som innehåller ett problems tillstånd
  • ett korttidsminne, som lagrar mellanvärden vid beräkningar. Oftast skrivs och läses cellerna enbart en gång, varför de kan ses som köer inför beräkningar. Scheduleringsmekanismer ger upphov till en stor variation i väntetider.

Med en hierarki menas att ett antal processorer kommunicerar med en minnesmodul som är billigare, större och oftast långsammare än processorernas egna minnen.

Access av minnet ger behov av mer kommunikation. Ett behov att läsa minnet innebär en latenstid under vilken väntande data måste lagras. Detta medför även högre behov av lokalt minne.

Vilket data skall då skrivas till ett sekundärt minne? I en konventionell dator så ligger sådant på stacken varför det finns en naturlig ordning, som en cache löser. I en multiprocessor är behovet i stort sett randomiserat och helt olämplig för en cache.

Ett sätt är att vid allokeringen införa "köberäkningar" - dvs ingen beräkning alls utan enbart mellanlagring. Dessa utförs i specialprocessorer, som enbart är sekundära minnen. Om detta är möjligt, så kan den normal resursteorin användas för en svagt modifierad allokeringsmekanism.

Allokeringsmekanismerna för sådana system studeras.

english

nästa >