(12) Oversettelse av europeisk patentskrift - Patentstyret
(12) Oversettelse av europeisk patentskrift - Patentstyret
(12) Oversettelse av europeisk patentskrift - Patentstyret
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
(<strong>12</strong>) <strong>Oversettelse</strong> <strong>av</strong><br />
<strong>europeisk</strong> <strong>patentskrift</strong><br />
(19) NO<br />
NORGE (51) Int Cl.<br />
G06F 9/50 (2006.01)<br />
G06F 9/30 (2006.01)<br />
G06F 9/455 (2006.01)<br />
<strong>Patentstyret</strong><br />
(21) <strong>Oversettelse</strong> publisert 2011.11.14<br />
(80) Dato for Den Europeiske<br />
Patentmyndighets<br />
publisering <strong>av</strong> det meddelte<br />
patentet: 2011.06.22<br />
(86) Europeisk søknadsnr: 09701347.8<br />
(86) Europeisk innleveringsdag 2009.01.<strong>12</strong><br />
(87) Den <strong>europeisk</strong>e søknadens<br />
Publiseringsdato 2010.09.01<br />
(30) Prioritet 2008.01.11 US 972802<br />
(11) NO/EP 2223214 B1<br />
(84) Utpekte stater AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC<br />
MK MT NL NO PL PT RO SE SI SK TR<br />
(62) Avdelt fra 10184363.9 / 2 290 539<br />
(73) Inneh<strong>av</strong>er International Business Machines Corporation, New Orchard RoadArmonk, NY<br />
10504, USA<br />
(72) Oppfinner GAINEY JR., Charles, 21 James StreetPoughkeepsieNew York <strong>12</strong>603-1524, USA<br />
FARRELL, Mark, 38 Stirrup LanePleasant ValleyNew York <strong>12</strong>569, USA<br />
KUBALA, Jeffrey, 10 Morgan LanePoughquagNew York <strong>12</strong>570, USA<br />
SCHMIDT, Donald, 77 Vincent LaneStone RidgeNew York <strong>12</strong>484, USA<br />
(74) Fullmektig Oslo Patentkontor AS, Postboks 7007 Majorstua , 0306 OSLO, Norge<br />
(54) Benevnelse Oppdagelse <strong>av</strong> virtuell topologikonfigurasjon til en datamaskin<br />
(56) Anførte<br />
publikasjoner EP-A- 0 730 226 B1, US-A1- 2007 203 943 B1, EP-A- 1 674 987 B1
5<br />
10<br />
15<br />
20<br />
25<br />
30<br />
Teknisk felt<br />
Den foreliggende oppfinnelsen relaterer seg hovedsakelig til en virtualisering <strong>av</strong><br />
1<br />
multiprosessor systemer. Spesielt, den foreliggende oppfinnelsen relaterer seg til å<br />
gjøre det mulig for programmer å oppdage topologien <strong>av</strong> deres virtuelle miljø.<br />
Bakgrunn for oppfinnelsen<br />
Blant systemkontrollfunksjonene er det muligheten til dele systemet inn i flere lo-<br />
giske deler (LPAR’er). En LPAR er en underliggende del <strong>av</strong> prosessormaskinvaren<br />
som er definert til å støtte et operativsystem. En LPAR inneholder resurser (proses-<br />
sorer, minne, og I/O-enheter) og opererer som et u<strong>av</strong>hengig system. Multiple lo-<br />
giske inndelinger kan eksistere innen en stormaskins maskinvaresystem.<br />
I stormaskindatasystemet fra IBM inkluderende S/390®, var det i mange år en<br />
begrensning på 15 LPAR’er. Nyere maskiner har 30 (og potensielt flere). Slike<br />
maskiner er eksemplifisert <strong>av</strong> de <strong>av</strong> z/Architecture®. IBM® z/Architecture® er<br />
beskrevet i operasjonsmanualen til z/Architecture SA22-7832-05 publisert April<br />
2007 <strong>av</strong> IBM.<br />
Praktiske begrensninger <strong>av</strong> størrelsen på minnet, I/O tilgjengelighet og tilgjengelig<br />
prosesseringskraft begrenser vanligvis antallet LPAR’er til mindre enn disse maksi-<br />
ma<br />
Maskinvare’en og fastvare’en som skaffer til veie inndelingen er kjent som PR/SM<br />
(Prosessorresurser/ Systemadministrator). Det er PR/SM funksjoner som er vant til<br />
å lage og kjøre LPAR’er. Denne forskjellen mellom PR/SM (en innbygget fasilitet) og<br />
LPAR’er (resultatet <strong>av</strong> bruken <strong>av</strong> PR/SM) er ofte ignorert og termen LPAR er kollek-<br />
tivt brukt for fasiliteten og dens resultater.<br />
Systemadministratorer tilegner deler <strong>av</strong> minnet til hver LPAR og minnet kan ikke bli<br />
delt imellom LPAR’er. Administratorene kan tilegne prosessorene (også kjent som<br />
CP’er eller CPU’er) til spesifikke LPAR’er eller de kan tillate systemkontrollerene å<br />
ekspedere hvilke som helst eller alle prosessorene til alle LPAR’ene ved å bruke en<br />
intern lastbalanserende algoritme. Kanalene (CHPID’er) kan bli tilegnet til spesifikke<br />
LPAR’er eller kan bli delt ved multiple LPAR’er, <strong>av</strong>hengig <strong>av</strong> enhetene i hver kanal.<br />
Et system med en enkelt prosessor (CP prosessor) kan ha multiple LPAR’er. PR/SM<br />
har en intern fordelingssentral som kan allokere en del <strong>av</strong> prosessorene til hver
5<br />
10<br />
15<br />
20<br />
25<br />
30<br />
LPAR, mye likt hvordan et operativsystem fordeler en del <strong>av</strong> sin prosessortid til<br />
hver prosess, tråd eller oppg<strong>av</strong>e.<br />
2<br />
Å dele kontrollspesifikasjoner er delvis rommet i IOCD’ene og er delvis rommet i en<br />
systemprofil. IOCD’ene og profilene befinner seg begge i støtteelementet (SE) som<br />
ganske enkelt er en bærbar datamaskin inne i systemet. SE’en kan bli koblet til en<br />
eller flere Maskinvare Management Consoles (HMC’er), som er skrivebords-PC’er<br />
brukt til å overvåke og kontrollere maskinvare slik som mikroprosessorene til<br />
stormaskinene. En HMC er mer beleilig å bruke enn en SE og kan kontrollere et<br />
flertall <strong>av</strong> stormaskiner.<br />
Å arbeide fra en HMC (eller fra en SE, i uvanlige forhold), en operatør forbereder en<br />
stormaskin for bruk ved valg og lasting <strong>av</strong> en profil og en IOCDS. Denne lager<br />
LPAR’er og konfigurerer kanalene med enhetsnumre, LPAR-oppg<strong>av</strong>er, multippel sti-<br />
informasjon, og så videre. Dette er kjent som en Power – på Reset (POR). Ved å<br />
laste en annen profil og IOCDS, operatøren kan fullstendig forandre antallet og<br />
naturen til LPAR’er og fremtoningen til I/O-configurasjonen. Imidlertid ved å gjøre<br />
dette forstyrres det operativsystemet og applikasjonene som er i bruk og er derfor<br />
sjelden utført uten nøye planlegging.<br />
Logisk oppdeling (LPAR’er) er, i praksis, lik separate hovedmaskiner.<br />
Hver LPAR kjører sitt eget operativsystem. Dette kan være hvilke som helst opera-<br />
tiv system for en stormaskin; det er ingen grunn til å kjøre z/OS®, f.eks. i hver<br />
LPAR. Installeringsplanleggerene kan velge å dele I/O enheten på flere LPAR’er,<br />
men dette er et lokalt valg.<br />
Systemadministratoren kan tillegne en eller flere systemprosessorer for den inklu-<br />
sive bruken <strong>av</strong> en LPAR. Alternativt, kan administratoren tillate alle prosessene til å<br />
bli brukt på enkelte eller alle LPAR’een. Her skaffer systemkontrollfunksjonene (ofte<br />
kjent som microcode eller fastvare) til veie en <strong>av</strong>sender for å dele prosessorene<br />
blant de valgte LPAR’ene. Administratoren kan spesifisere et maksimum antall <strong>av</strong><br />
samtidige prosessorer som utføres i hver LPAR. Administratoren kan også skaffe til<br />
veie vekting for forskjellige LPAR’er; for eksempel, spesifisere at LPAR 1 skulle mot-<br />
ta dobbelt så masse prosessortid som LPAR2.<br />
Operativsystemet i hver LPAR er IPL’et separat, har sin egen kopi <strong>av</strong> sitt operativ-<br />
system, har sin egen operatørkonsoll (hvis nødvendig), og så videre. Hvis systemet<br />
i en LPAR krasjer, har det ingen effekt på de andre LPAR’ene.
5<br />
10<br />
15<br />
20<br />
25<br />
30<br />
3<br />
I en stormaskin med tre LPAR’er, f.eks., kan du ha en produksjon z/OS i LPAR1, en<br />
testversjon <strong>av</strong> z/OS i LPAR2, og Linux® for S/390® i LPAR3. Hvis dette totale sys-<br />
temet har 8 GB med minne, kan vi kanskje ha tillegnet 4 GB til LPAR1, 1 GB til<br />
LPAR2, 1 GB til LPAR3 og 2GB i reserve. Operativsystemkonsollene for de to z/OS<br />
LPAR’ene kan være på fullstendig forskjellige steder.<br />
For de fleste praktiske formålene er det ikke noe forskjell mellom, f.eks., tre sepa-<br />
rate stormaskiner som kjører z/OS (og deler det meste <strong>av</strong> deres I/O konfigurasjon)<br />
og tre LPAR’er på den samme stormaskinen som gjør den samme tingen. Med<br />
mindre unntak kan ikke z/OS, operatørene, og applikasjonene detektere forskjellen.<br />
De mindre forskjellene inkluderer mulighetene ved z/OS (hvis tillatt når LPAR’ene<br />
er definert) til å skaffe til veie prestasjons- og utnyttelsesinformasjon, over hele<br />
stormaskinsystemet og for dynamisk flytte resurser (prosessorer og kanaler) lange<br />
LPAR’ene for å bedre prestasjonene.<br />
Nåværende IBM® stormaskiner har et sentralt prosessorkompleks (CPC), som kan<br />
inneholde flere forskjellige typer <strong>av</strong> z/Architecture® prosessorer som kan bli brukt<br />
for litt forskjellige formål.<br />
Flere <strong>av</strong> disse formålene er relatert til kostnadskontroll <strong>av</strong> programvare, mens and-<br />
re er mer fundamentale. Alle <strong>av</strong> disse prosessorene i CPC’en begynner som ekviva-<br />
lente prosessorenheter (PU’er) eller motorer som ikke har blitt karakterisert for<br />
bruk. Hver prosessor er karakterisert <strong>av</strong> IBM under installering eller ved en senere<br />
tid. De potensielle karakteriseringene er:<br />
- Prosessor (CP)<br />
Denne prosessortypen er tilgjengelig for normale operativsystemer og<br />
applikasjonsprogramvare.<br />
- Systemassisterende prosessor (SAP)<br />
hver moderne stormaskin har i det minste en SAP; større systemer har<br />
flere. SAP’en iverksetter interne koder for å forsyne I/O undersystemet.<br />
En SAP, for eksempel, oversetter enhetsnumre og virkelige adresser til<br />
kanalstiidentifiserere (CHPID’er), kontrollenhetsadresser, og enhetsnum-<br />
re. Det håndterer multiple stier til kontrollenheter og utfører feilgjenopp-
5<br />
10<br />
15<br />
20<br />
25<br />
30<br />
4<br />
retting for midlertidige feil. Operativsystemet og applikasjonene kan ikke<br />
detektere SAP’er og SAP’er bruker ikke “normalt" minne.<br />
- Integrert fasilitet for Linux® (IFL)<br />
- zAAP<br />
- zIIP<br />
dette er en normal prosessor med en eller to instruksjoner utkoblede<br />
som er brukt bare ved hjelp <strong>av</strong> z/OS®. Linux bruker ikke disse instruk-<br />
sjonene og kan bli utført ved hjelp <strong>av</strong> en IFL. Linux kan bli utført <strong>av</strong> en<br />
CP i tillegg. Forskjellene er at en IFL ikke er tellet når man spesifiserer<br />
modellnummeret til systemet. Dette kan føre til en vesentlig forskjell i<br />
programvare kostnader.<br />
dette er en prosessor med et antall <strong>av</strong> funksjoner deaktivert (<strong>av</strong>brudds-<br />
håndtering, enkelte instruksjoner) slik at intet fult operativsystem kan bli<br />
effektuert på prosessoren. Imidlertid, z/OS kan detektere nærværet <strong>av</strong><br />
zAAP prosessorer og vil bruke de til å utføre J<strong>av</strong>a code. Den samme<br />
J<strong>av</strong>akoden kan bli effektuert på en standard CP. Igjen, er zAAPmotoren<br />
ikke tellet når man spesifiserer modellen til systemet. I likhet med IFL’er,<br />
eksisterer de kun for å kontrollere programvare kostnader.<br />
Systemet z9 Integrert informasjonsprosessor (Integrated Information<br />
Processor) (zIIP) er en spesialisert motor for prosessering <strong>av</strong> passende<br />
arbeidslaster for databaser. zIIP’ene er designet for å hjelpe med å sen-<br />
ke programvarekostnadene for valgte arbeidslaster på stormaskinen, slik<br />
som business intelligens (business intelligence) (BI), enterprice resource<br />
planning (ERP) og customer relationship management (CRM). zIIP’en<br />
styrker stormaskinens rolle som en datahub til bedriften ved å hjelpe<br />
med å gjøre direkte tilgang til DB2® mer kostnadseffektiv og redusere<br />
behovet for multiple kopier <strong>av</strong> data.<br />
Integrert koblingsfasilitet (ICF)<br />
Disse prosessorene kjører bare lisensiert intern kode. De er ikke synlige for normale<br />
operativsystemer eller applikasjoner. En koplingsfasilitet er, egentlig en stor minne
5<br />
10<br />
15<br />
20<br />
25<br />
30<br />
notisblokk brukt <strong>av</strong> multiple systemer for å koordinere arbeid. ICF’er må bli dedi-<br />
kert til LPAR’er som så blir koblingsfasiliter.<br />
Reserve<br />
En ukarakterisert PU virker som en “reserve” hvis systemkontrollerene detekterer<br />
en feilende CP eller SAP, den kan bli byttet ut med en reserve PU. I fleste tilfeller<br />
kan dette bli gjort uten noe system<strong>av</strong>brudd, selv for applikasjonen som kjører på<br />
den feilende prosessoren.<br />
I tillegg til disse karakteriseringene <strong>av</strong> prosessorer, har enkelte stormaskiner mo-<br />
5<br />
deller eller versjoner som er konfigurert til å kjøre saktere enn den potensielle has-<br />
tigheten til deres CP’er. Dette er vidt kjent som “underklokking” (knee-capping),<br />
selv om IBM foretrekker terminologien kapasitetssetting eller noe liknende. Det er<br />
gjort ved å bruke mikrokoder for sette inn nullsykluser i instruksjonsstrømmen til<br />
prosessoren. Formålet, igjen, er for å kontrollere programvarekostnadene ved å ha<br />
den minste stormaskinmodellen eller versjonen som møter applikasjonskr<strong>av</strong>ene.<br />
IFL’er, SAP’er, zAAP’er, zIIP’er, og ICF’er virker alltid ved full hastighet på prosesso-<br />
ren fordi disse prosessorene “teller ikke“ i beregninger <strong>av</strong> prisen på programvare.<br />
Prosessor og CPU kan referere til enten den komplette systemboksen, eller til en <strong>av</strong><br />
prosessorene (CPU’ene) i systemboksen. Selv om meningen kan være klar utfra<br />
sammenhengen <strong>av</strong> diskusjonen. IBM bruker terminologien sentral prosessor<br />
komplex (central prosessor complex) (CPC) for å referere til den fysiske samlingen<br />
<strong>av</strong> maskinvare som inkluderer hovedlageret, en eller flere <strong>av</strong> sentralprosessorene,<br />
taktgivere, og kanaler. (Noen systemprogrammerere bruker terminologien sentral<br />
elektronisk kompleks (central electronic complex) (CEC) for å referere til storma-<br />
skinen “boks”, men den foretrukne terminologien er CPC.)<br />
Kort fortalt alle S/390 eller z/Architecture prosessorene i en CPC er prosesserings-<br />
enhetene (PU’er). Når IBM leverer CPC’en, er PU’ene karakterisert som CP’er (for<br />
normalt arbeid), integrert fasilitet for Linux (IFL), integrert koplingsfasilitet (ICF) for<br />
parallell sysplex konfigureringer, og så videre.<br />
Profesjonelle på stormaskiner bruker typisk systemer for å indikere at maskinvare-<br />
bokser, et komplett maskinvare miljø (med I/O enhet), eller et driftsmiljø (med<br />
programvare), <strong>av</strong>hengig <strong>av</strong> sammenhengen. Den typiske bruken <strong>av</strong> prosessoren for<br />
å midle en enkelt prosessor (CP) i CPC’en.
5<br />
10<br />
15<br />
20<br />
25<br />
30<br />
6<br />
z/VM® HYPERVISOR er designet for å hjelpe klienter med å utvide businessverdi-<br />
en <strong>av</strong> stormaskinteknologien over hele foretaket ved å integrere applikasjoner og<br />
data mens å forsyne uvanlige nivåer <strong>av</strong> tilgjengelighet, sikkerhet og enkel drifting.<br />
z/VM viritualiseringsteknikk er designet til å tillate muligheten for klienter å kjøre<br />
fra hundrer til tusener <strong>av</strong> Linux servere på en enkelt stormaskin som kjører med<br />
andre System z operativsystemer, slik som z/OS®, eller som en storskala server-<br />
løsning for et foretak som kun kjører Linux. z/VM V5.3 kan også hjelpe til med å<br />
forbedre produktiviteten ved å være vert for ikke-Linux arbeidslaster slik som z/OS,<br />
z/VSE, og z/TPF.<br />
z/VM forsyner hver bruker med et individuelt arbeidsmiljø kjent som en virtuell ma-<br />
skin. Den virtuelle maskinen simulerer eksistensen <strong>av</strong> en dedikert virkelig maskin,<br />
inkluderende prosessorfunksjoner, minner, nettverk, og input/output (I/O) resur-<br />
ser. Operativsystemer og applikasjonsprogrammer kan kjøre i virtuelle maskiner<br />
som gjester. For eksempel, kan du kjøre multiple Linux og z/OS bilder og det sam-<br />
me z/VM systemet som også støtter forskjellige applikasjoner og endebrukere. Som<br />
et resultat kan, utvikling, testing, og produksjonsmiljøer dele en enkelt fysisk da-<br />
tamaskin.<br />
Med referanse til figurene 15A-15D, involverer partisjonering og virtualisering et<br />
skifte i tankegangen fra fysisk til psykisk ved å behandle IT resurser som logiske<br />
ansamlinger i stedet for separate fysiske entiteter. Dette involverer konsolidering<br />
og ansamling <strong>av</strong> IT-resurser, og forsyne en «illusjon <strong>av</strong> et enkelt system» for både<br />
homogene og heterogene servere, lagre, distribuerte systemer, og nettverk.<br />
Partisjonering <strong>av</strong> maskinvare involverer separate CPU’er for separate operativsys-<br />
temer, hver <strong>av</strong> hvilke kjører sine spesifikke applikasjoner. Programvarepartisjone-<br />
ring tar i bruk en programvare basert forvalter <strong>av</strong> virtuelle maskiner (hypervisor) til<br />
å muliggjøre individuelle operativsystemer til å kjøre på hvilke som helst eller alle<br />
<strong>av</strong> CPU’ene.<br />
Programvare basert forvaltere <strong>av</strong> virtuelle maskiner tillater multiple operativsyste-<br />
mer å kjøre på en vertsmaskin på den samme tiden. Teknologien til programvare<br />
baserte forvaltere <strong>av</strong> virtuelle maskiner som har sitt opph<strong>av</strong> i IBM VM/370, for-<br />
gjengeren til z/VM vi har i dag. Logisk partisjonering (LPAR) involverer patisjone-<br />
ringsfastvare (en maskinvarebasert hypervisor) for å isolere operativsystemet fra<br />
CPU’ene.
5<br />
10<br />
15<br />
20<br />
25<br />
30<br />
Virtualiseringen muliggjør eller utnytter fire fundamentale kapasiteter: ressursde-<br />
7<br />
ling, ressursansamling, kappestrid <strong>av</strong> funksjoner, isolering. Vi utforsker disse tema-<br />
ene i ytterligere detalj i den følgende seksjonen.<br />
z/VM er et operativsystem for IBM System z plattformen som forsyner en høyst<br />
fleksibel test og produksjonsmiljø. z/VM implementeringen <strong>av</strong> IBM viritualise-<br />
ringsteknologien tilveiebringer muligheten til å kjøre fullfunksjons operativsystemer<br />
slik som Linux på system z, z/OS og andre som «gjester» <strong>av</strong> z/VM. z/VM støtter 64-<br />
bits IBM z/Arkitektur gjester og 31-bits IBM Enterprise Systems Architecture /390<br />
gjester.<br />
z/VM anskaffer hver b ruker med et individuelt arbeidsmiljø kjent som en virtuell<br />
maskin. Den virituelle maskinen simulerer eksistensen til en dedikert reell maskin,<br />
inkluderende prosessorfunksjoner, minne, netverk, g input/output (I/O) resurser.<br />
Operativsystemer og applikasjonsprogrammer kan kjøre i virituelle maskiner som<br />
gjester. For eksempel, kan man kjøre multiple Linux og z/OS® bilder på den sam-<br />
me z/VM systemer som også støtter forskjellige applikasjoner og endebrukere. Som<br />
et resultat, utvikling, testing, og produksjonsmiljøer kan dele en enkelt fysisk da-<br />
tamaskin.<br />
En virituell maskin bruker virkelige maskinvareresurser, men selv med dedikerte<br />
enheter (som et bånddrev), den virituelle adressen til bånddrevet kan eller kan ikke<br />
være den samme som den reelle adressen til bånddrevet. Derfor, kjenner bare en<br />
virituell maskin «virituell maskinvare» som kan eksistere eller ikke eksistere i den<br />
reelle verdenen.<br />
Et første-nivå z/VM er grunnoperativsystemet som er installert på toppen <strong>av</strong> den<br />
virkelige maskinvaren fig. 16. Et nivå-to operativsystem er et system som er laget<br />
på et z/VM baseoperativsystem. Derfor z/VM som et baseoperativsystem kjører på<br />
maskinvaren, mens et gjesteoperativsystem kjører på viritualiseringsteknologien. I<br />
figur 14 illustreres en nivå-to gjest z/VM OS lastet inn i en nivå-en gjest (gjest-1)<br />
cpartisjon.<br />
Med andre ord, er det et nivå-en z/VM operativsystem som passer direkte med ma-<br />
skinvaren, men gjesten <strong>av</strong> dette nivå-en z/VM system er viritualisert. Ved virituali-<br />
sering <strong>av</strong> maskinvaren til gjesten, har vi muligheten til å lage og bruke så mange<br />
gjester som muligsom nødvendig med en liten mengde med maskinvare.
5<br />
10<br />
15<br />
20<br />
25<br />
30<br />
8<br />
Som tidligere nevnt, er operativsystemet som kjører på en virituell maskin ofte kalt<br />
«gjester». Andre terminologier og fraser som man kan støte på er:<br />
- «kjøre første nivå» midler kjører direkte på maskinvaren (som er hva z/VM<br />
gjør).<br />
- «kjøre andre nivå», «kjøre under VM», eller «kjøre på (toppen <strong>av</strong>) VM» be-<br />
tyr å kjøre som en gjest.<br />
Et eksempel på funksjonaliteten til z/VM er, hvis du har et nivå-en z/VM system og<br />
et nivå-to z/VM system, , unne man fortsette å lage flere operativsystemer på nivå-<br />
2 systemet. Denne typen <strong>av</strong> miljø er spesielt brukbart for testing <strong>av</strong> operativsyste-<br />
mer installert før det er satt i bruk, eller for testing eler debugging <strong>av</strong> operativsys-<br />
temet. Virituelle resurser kan ha funksjoner for trekk som ikke er tilgjengelige i<br />
deres underliggende fysiske resurser. Figur 14 illustrerer viritualisering ved res-<br />
sursemulering.<br />
Eksempler inkluderer arkitekturemuleringsprogramvare som implementerer en pro-<br />
sessors arkitektur ved bruk <strong>av</strong> en annen; iSCSI, som implementerer en virtuell<br />
SCSI bus på et IP nettverk; og virituell båndlagring implementert på det fysiske<br />
disklageret.<br />
Videre, er pakkingen <strong>av</strong> prosessorenheter (CPU’er) i moderne teknologi ofte hierar-<br />
kisk. Multiple kjerner kan bli plassert på en enkelt krets, multiple kretser kan bli<br />
plassert i en enkelt modul. Multiple moduler kan bli pakket på et brett ofte referert<br />
til som en bok, og multiple bøker være distribuert over multiple rammer.<br />
CPU’er har ofte flere nivåer med cache, for eksempel kan hver prosessor ha en ca-<br />
che (eller muliggens en delt instruksjonscache og en datacache) og det kan i tillegg<br />
være større cacher imellom hver prosessor og hovedminnegrensesnittet. Avhengig<br />
<strong>av</strong> nivået til hierarkiet, er cache også plassert for å forbedre den samlede ytelsen,<br />
og på bestemte nivåer kan cache være delt mellom fler enn en enkelt CPU. Engi-<br />
neerings<strong>av</strong>gjørelsene med hensyn på slik plassering tar for seg plass,<br />
kraft/temperatur, kablingsdistanse, CPU-frekvens, systemytelse og andre aspekter.<br />
Denne plasseringen <strong>av</strong> elementer til CPU’en lager en intern struktur som kan være<br />
mer eller mindre f<strong>av</strong>oriserende for en bestemt logisk <strong>av</strong>deling, <strong>av</strong>hengig <strong>av</strong> hvor<br />
plasseringen <strong>av</strong> hver CPU <strong>av</strong> partisjoneringen befinner seg. En logisk partisjonering<br />
gir inntrykket <strong>av</strong> at et operativsystem, med eierskap <strong>av</strong> enkelte resurser inkluderer<br />
prosessorbruk hvor faktisk, operativsystemet deler resursene med andre operativ-
5<br />
10<br />
15<br />
20<br />
25<br />
30<br />
9<br />
systemer i andre partisjoner. Normalt, er programvare ikke klar over plasseringen<br />
og, i en symmetrisk multiprosessering (SMP) konfigurasjon, observeres et sett med<br />
CPU’er hvor hver forsyner det samme nivået med ytelse. Problemet er at ignorering<br />
<strong>av</strong> pakking og distansen mellom hvilke som helst to CPU’er kan resultere i at pro-<br />
gramvaretar mindre enn optimale beslutninger hvordan CPU’er kan bli tillegnet ar-<br />
beid. Derfor er ikke det fulle potensialet til SMP konfigurasjonen oppnådd.<br />
Stormaskineksempelet som er presentert på viritualisering er ment å lære forskjel-<br />
lige topologier som er mulige ved viritualisering <strong>av</strong> en maskin. Som nevnt, kjører<br />
programmet en partisjon (inkluderende operativsystemet) som sannsynlig har et<br />
bilde <strong>av</strong> resursene tilgjengelig for dem, inkluderende prosessorene, minne og I/O er<br />
dedikert til en partisjon. Faktisk har ikke programmene noe som helst ide at de<br />
kjører på en partisjon. Slike programmer er også ikke klar over at topologien til<br />
deres partisjon og kan derfor ikke gjøre valg basert på slik topologi. Det som behø-<br />
ves er en måte for programmer å kunne optimalisere konfigurasjonen <strong>av</strong> topologien<br />
på hvilke de kjører.<br />
EP-A-1674987 innbefatter en metode i henhold til innledende delene <strong>av</strong> kr<strong>av</strong> 1.<br />
Sammenfatning <strong>av</strong> oppfinnelsen<br />
Oppfinnelsen skaffer til veie en fremgangsmåte slik beskrevet i kr<strong>av</strong> 1 og korres-<br />
ponderende system og dataprogram.<br />
Svakhetene ved tidligere kjent teknikk er overkommet, og ytterligere fordeler er<br />
gitt, gjennom frembringelsen <strong>av</strong> en fremgangsmåte, system og et dataprogram<br />
som iverksetter et underliggende sett <strong>av</strong> sovende datamaskinmaskinvareresurser.<br />
En vertsmaskin omfattende verts-CPU’er kan bli partisjonert i logiske/virtuelle par-<br />
tisjoner som har gjeste CPU’er. Partisjoneringen er fortrinnsvis <strong>av</strong>stedkommet ved<br />
hjelp <strong>av</strong> fastvare eller ved hjelp <strong>av</strong> programvare som kan bli anskaffet <strong>av</strong> et opera-<br />
tivsystem slik som z/VM fra IBM. Hver gjeste-CPU er en virtuell CPU i det at gjeste-<br />
programmene ser på gjeste-CPU’ene som faktiske PRU prosessorer, men faktisk<br />
<strong>av</strong>bilder den underliggende verten hver gjeste-CPU til verts-CPU-resurser. I en ut-<br />
førelsesform, er en gjeste-CPU implementert ved bruk <strong>av</strong> en dek <strong>av</strong> en verts-CPU<br />
ved at verten designerer en det <strong>av</strong> CPU-tiden for gjeste-CPU’en til å benytte seg <strong>av</strong><br />
verts-CPU’en. Det er forestilt at et flertall <strong>av</strong> gjeste-CPU’er kan være støttet <strong>av</strong> en<br />
enkelt verts-CPU, men det motsatte kan også være tilfellet.
5<br />
10<br />
15<br />
20<br />
25<br />
30<br />
I et annet utførelseseksempel, er gjeste-CPU’en emulert <strong>av</strong> programvare hvor ,<br />
emuleringsrutinene konverterer funksjonene til gjeste-CPU’en (inkluderende in-<br />
struksjonsdekoding og utførelse) til rutiner som kjører på en verts-CPU. Verts-<br />
10<br />
CPU’en er forsynt til å støtte gjeste-CPU’er.<br />
I et annet utførelseseksempel, kan et første gjestebilde være verten for et andre<br />
gjestebilde. I hvilket tilfelle den andre gjeste-CPU’en er forsynt <strong>av</strong> første gjeste-<br />
CPU’er som selv er forsynt <strong>av</strong> verts-CPU’er. En ny PERFORM TOPOLOGY FACILITY<br />
(PTF) instruksjon er forsynt og kjent teknikk STORE SYSTEM INFORMATION (STSI)<br />
instruksjon er økt for å skaffe til veie en ny SYSIB (SYSIB identifier 15.1.2) som<br />
skaffer til veie komponentslektskap og logisk pakkingsinformasjon til programva-<br />
ren. Dette gir programvaren lov å ta i bruk informerte og intelligente valg på hvor-<br />
dan individuelle elementer, slik som prosesseringsenheter til multiprosessorer, er<br />
tilegnet til forskjellige applikasjoner og arbeidslaster. Således skaffe til veie infor-<br />
masjon til et program (OS) for å forbedre ytelsen ved f.eks. å øke den delte ca-<br />
chens trefforhold.<br />
En ny PERFORM TOPOLOGY FUNCTION (PTF) instruksjon er brukt <strong>av</strong> et privilegert<br />
program (slik som en supervisor, en OS, en kernel o.l.) for å forespørre at CPU-<br />
konfigurasjonstopologien innen hvilke programmet kjører blir forandret. I en utfø-<br />
relsesform er topologien til gjeste-CPU’en byttet mellom horisontal og vertikal pola-<br />
risering.<br />
Ved å ha kapasiteten til å lære topologiinformasjonen til CPU’en, forstår program-<br />
met <strong>av</strong>standen imellom hvilke som helst to vilkårlige to eller flere CPU’er til en sy-<br />
metrisk multiprosesseringskonfigurasjon.<br />
Muligheten anskaffet ved minimering <strong>av</strong> den samlede <strong>av</strong>standen til alle CPU’ene i<br />
en konfigurasjon, og hvor spesielle applikasjonsprogramgjøremål er sendt ut på<br />
den individuelle CPU’ene som skaffet til veie overvåkningsprogrammer med mulig-<br />
heten til å forbedre ytelsen. Den forbedrede ytelsen kan resultere fra en til flere <strong>av</strong><br />
de følgende attributtene som er forbedret <strong>av</strong> bedre kjennskap til topologi:<br />
Forkorte <strong>av</strong>standene til intern CPU-signalisering.<br />
Delt lagringsplass, aksessert <strong>av</strong> multiple CPU’er er mer sannsynlig å befinne seg i<br />
cacher som er nærmere settet med CPU’er. Derfor er bruk <strong>av</strong> intern cache-lagring<br />
begrenset til et mindre undersett <strong>av</strong> den overliggende maskinen og konfigurasjonen
5<br />
10<br />
15<br />
20<br />
25<br />
30<br />
11<br />
som tillater raskere cache-til-cache overføring. Nærvær <strong>av</strong> en lagringslokalisering i<br />
den nærmeste cachen til en CPU (L1) er signifikant mer sannsynlig å forekomme.<br />
På grunn <strong>av</strong> forbedret ytelse, kan antallet <strong>av</strong> CPU’er som faktisk er i konfigurasjo-<br />
nen være færre i antall, mens de fortsatt gjør den samme jobben med den samme<br />
kjøretiden eller mindre. En slik reduksjon <strong>av</strong> CPU’er minsker antallet kommuni-<br />
kasjonsstier som hver enkelt CPU må bruke for å kommunisere me de andre<br />
CPU’ene til konfigurasjonen, dermed videre bidra til totalt sett forbedret ytelse.<br />
For eksempel, hvis 10 CPU’er behøver å utføre et spesielt program, er den interne<br />
cache trafikken formidabel, hvor ved hvis det samme programmet kan bli utført på<br />
en CPU, er det ingen intern cache-trafikk. Dette indikerer at nærværet <strong>av</strong> ønskede<br />
lagringsplasser til cachen er garantert å være i cachen til den enkelte CPU, hvis<br />
dette lageret befinner seg ig et cache i det hele tatt.<br />
Når lagring og det assosierte cachehierarkiet er lokalt, i motsetning til å være dist-<br />
ribuert over multiple fysiske rammer (f.eks. bokser osv.) er signalstiene kortere.<br />
Kjennskapen til topologien indikerer den relative <strong>av</strong>standen ved valg <strong>av</strong> det pas-<br />
sende undersettet <strong>av</strong> CPU’er å tilegne til et applikasjonsprogram slik at, selv innen<br />
et større sett med CPU’er i en SMP-konfigurasjon, optimaliserer undersettet den<br />
minste <strong>av</strong>standen dem imellom. Dette kalles noen ganger en affinitetsgruppe.<br />
Begrepene relatert til redusering <strong>av</strong> CPU-antallet og <strong>av</strong>standen mellom CPU’er er<br />
informert <strong>av</strong> topologiinformasjon som tillater programmet å optimalisere anvisning-<br />
en <strong>av</strong> CPU’er til en affinitetsgruppe.<br />
I en utførelsesform (fig. 20), i et logisk partisjonert vertsmaskin system omfattende<br />
vertsprosessorer (verts-CPU’er), er topologiinformasjon oppdaget <strong>av</strong> en eller gjes-<br />
teprosessorer (gjeste-CPU’er) <strong>av</strong> en gjestekonfigurasjon og lagret i en tabell. Fort-<br />
rinnsvis henter en gjesteprosessor til gjestekonfigurasjonene en STORE SYSTEM<br />
INFORMATION instruksjon for å bli utført. Når den er utført anskaffer STORE SYS-<br />
TEM INFORMATION instruksjonen, basert på en forespørsel om topologiinformasjon<br />
<strong>av</strong> STORE SYSTEM INFORMATION instruksjonen, anskaffer topologiinformasjon til<br />
datamaskinkonfigurasjonen omfatter stablinginformasjon <strong>av</strong> prosessorer til konfigu-<br />
rasjonen. Den anskaffede topologiinformasjonen er lagret i en konfigurasjonstopo-<br />
logitabell fortrinnsvis i minnet.
5<br />
10<br />
15<br />
20<br />
25<br />
<strong>12</strong><br />
I et utførelseseksempel omfatter topologiinformasjonen identifikasjon <strong>av</strong> vertspro-<br />
sessorer og stablingsnivåer assosiert med topologien til vertsprosessorene.<br />
I et annet utførelseseksempel, omfatter topologiinformasjonen informasjon om<br />
vertsprosessorer til gjestekonfigurasjoner og stablingsnivåer assosiert med topolo-<br />
gien til vertsprosessorer til gjestekonfigurasjonene.<br />
I en utførelsesform omfatter STORE SYSTEM INFORMATION instruksjon et opcode<br />
felt, et grunnregister felt, et signert omplasseringsfelt, hvor instruksjonen for<br />
topologi oppdaging videre består <strong>av</strong> et første underforstått generelt register som<br />
inneholder et funksjonskodefelt og et selektor-1 felt og andre impliserte generell<br />
registre som inneholder et selektor-2 felt, funksjonskodefelt angir topologi-<br />
forespørsel om informasjon, et grunnregister felt og et signert omplasseringsfelt<br />
identifiserer et sted i minnet <strong>av</strong> en systeminformasjonsblokk (SYSIB) som<br />
inneholder konfigurasjonstopologitabellen, hvor verdier <strong>av</strong> selektor-1 feltet og<br />
selektor-2-feltet, i kombinasjon, bestemmer topologiforespørsel om informasjon<br />
som skal utføres.<br />
I en annen utførelsesform, tabellen omfatter en topologilisteprosessoroppføring for<br />
hver gruppe <strong>av</strong> stablede prosessorer <strong>av</strong> prosessorene.<br />
I enda en utførelsesform omfatter topologilisteprosessoroppføringen ytterligere en<br />
indikator som indikerer hvor dedikert prosessorene <strong>av</strong> gruppen med stablede<br />
prosessorer er ovenfor logiskpartisjongjestkonfigurasjonen.<br />
I en utførelsesform, inkluderer tabellen videre en topologilistebeholderoppføring <strong>av</strong><br />
hvert stablede nivå for et hierarki <strong>av</strong> ett eller flere stablende nivåer som har nevnte<br />
stablende prosessorer.<br />
I en utførelsesform, er utførelsen <strong>av</strong> STORE SYSTEM INFORMATION utført <strong>av</strong><br />
emulering på en fremmed prosessor.<br />
Kort beskrivelse <strong>av</strong> figurene<br />
Det temaet som anses som oppfinnelsen er spesielt påpekt og tydelig hevdet i den<br />
<strong>av</strong>sluttende delen <strong>av</strong> spesifikasjonen. Oppfinnelsen imidlertid både med hensyn til<br />
organisering og fremgangsmåte <strong>av</strong> praksis, sammen med ytterligere objekter og
5<br />
10<br />
15<br />
20<br />
25<br />
30<br />
fordeler <strong>av</strong> dette, kan best forstås ved henvisning til følgende beskrivelse tatt i<br />
13<br />
forbindelse med de medfølgende figurer der:<br />
Figur 1 viser et vertsmaskinsystem i henhold til tidligere kjent teknikk;<br />
Figur 2 viser et emulert vertsmaskinsystem i henhold til tidligere kjent teknikk ;<br />
Figur 3 viser et instruksjonformat <strong>av</strong> en kjent teknikk STSI maskin instruksjon;<br />
Figur 4 viser underforståtte registre over kjent teknikk STSI instruksjon;<br />
Figur 5 viser en funksjonskodetabell;<br />
Figur 6 viser en kjent teknikk SYSIB 1.1.1 tabell;<br />
Figur 7 viser en kjent teknikk SYSIB 1.2.1 tabell;<br />
Figur 8 viser en kjent teknikk Format-1 SYSIB 1.2.2 tabell;<br />
Figur 9 viser en kjent teknikk Format-2 SYSIB 1.2.2 tabell;<br />
Figur 10 viser en SYSIB 15.1.2 tabell i henhold til oppfinnelsen;<br />
Figur 11 viser en beholdertype TLE;<br />
Figur <strong>12</strong> viser en CPU type TLE;<br />
Figur 13 viser et instruksjonsformat <strong>av</strong> en PTF maskininstruksjon i henhold til<br />
oppfinnelsen;<br />
Figur 14 viser et registerformat <strong>av</strong> PTF instruksjonen;<br />
Figur 15A-15D viser kjent teknikks elementer <strong>av</strong> partisjonerte datasystemer;<br />
Figur 16 viser et eksempel datasystem;<br />
Figur 17-19 viser beholdere <strong>av</strong> eksempel datasystemet, og<br />
Figur 20 viser en flytskjema <strong>av</strong> en utførelsesform <strong>av</strong> oppfinnelsen.<br />
Detaljert beskrivelse<br />
I en stormaskin, er bygde maskininstruksjoner brukt <strong>av</strong> programmerere (typisk<br />
skrive applikasjoner i "C", men også J<strong>av</strong>a®, COBOL, PL/I, PL/X, Fortran og andre<br />
høynivåspråk), ofte i form <strong>av</strong> en kompilatorapplikasjon. Disse instruksjonene lagret<br />
på lagringsmediet kan utføres problemfritt i en z/Arkitektur IBM-Server, eller<br />
alternativt i maskiner som utfører andre arkitekturer. De kan bli emulert i<br />
eksisterende og i fremtidige IBM stormaskinservere og på andre maskiner fra IBM<br />
(f.eks pSeries® Servere og xSeries® Servers). De kan utføres i maskiner som<br />
kjører Linux på en rekke maskiner som bruker maskinvare produsert <strong>av</strong> IBM®,<br />
Intel®, AMD, Sun Microsystems og andre. Ved siden <strong>av</strong> kjøring på hardware<br />
under az/Architecture®, kan Linux brukes i tillegg til maskiner som benytter<br />
emulering <strong>av</strong> Hercules, UMX, FSI (Fundamental Software, Inc) eller Platform<br />
Solutions, Inc. (PSI), hvor generelt utførelse er i en emuleringsmodus. I
5<br />
10<br />
15<br />
20<br />
25<br />
30<br />
35<br />
emuleringsmodus er emulering programvare utført <strong>av</strong> en reell prosessor for å<br />
14<br />
emulere arkitekturen i en emulert prosessor.<br />
Den reelle prosessoren utfører typisk emuleringsprogramvare bestående enten <strong>av</strong><br />
firmware eller et reelt operativsystem til å utføre emuleringen <strong>av</strong> den emulerte<br />
prosessoren. Emuleringsprogramvaren er ansvarlig for henting og gjennomføring <strong>av</strong><br />
instruksjonene til den emulerte prosessorarkitekturen. Den emulerte programvaren<br />
opprettholder et emulert program mot å holde styr på instruksjonsgrensene.<br />
Emuleringsprogramvaren kan hente en eller flere emulerte maskin instruksjoner <strong>av</strong><br />
gangen og konvertere en eller flere emulerte maskininstruksjoner til en tilsvarende<br />
gruppe <strong>av</strong> reelle maskininstruksjoner for utførelse <strong>av</strong> den reelle prosessoren. Disse<br />
konverterte instruksjonene kan være hurtigbufret slik at en raskere konvertering<br />
kan oppnås. Ikke tåler, må emuleringsprogramvaren opprettholde arkitekturreglene<br />
for emulert prosessorarkitektur, slik som å sikre at operativsystemer og<br />
applikasjoner skrevet for den emulerte prosessoren skal fungere korrekt. Videre må<br />
emuleringsprogramvare gi ressurser identifisert <strong>av</strong> emulerte prosessor arkitektur,<br />
inkludert men ikke begrenset til å kontrollere registre, generelle registre (ofte med<br />
flyttall registre), dynamisk NAT-funksjon, inkludert segment tabeller og side tabeller<br />
for eksempel <strong>av</strong>bryte mekanismer, kontekst bryter mekanismer, Time of Day (TOD)<br />
klokker og bygd for grensesnitt til I / O delsystemer slik at et operativsystem eller<br />
et program designet for å kjøre på den emulerte prosessoren, kan kjøres på den<br />
innfødte prosessoren som har emuleringsprogramvare.<br />
En spesifikk instruksjon som blir emulert blir dekodet, og en subrutine kalt til å ut-<br />
føre funksjon <strong>av</strong> individuell veiledning. En emuleringsprogramvarefunksjon som<br />
emulerer en funksjon til en emulert prosessor er implementert, for eksempel i en<br />
"C" underrutine eller driver, eller en annen metode for å skaffe til veie en driver for<br />
den spesifikke maskinvaren som vil være innenfor kunnskapen til en fagmann på<br />
området etter å ha forstått beskrivelsen <strong>av</strong> den foretrukne utførelsesformen. For-<br />
skjellige programvare- og maskinvareemuleringspatenter er inkludert, men ikke<br />
begrenset til US5551013 for en "multiprosessor for maskinvareemulering" <strong>av</strong> Beau-<br />
soleil et al., og US6009261: forhåndsbehandling <strong>av</strong> lagrede målrutiner for å emule-<br />
re uforenlige instruksjoner på en mål prosessor "<strong>av</strong> Scalzi et al; og US5574873:<br />
Dekoding <strong>av</strong> gjesteinstrukser om å få direkte tilgang til emuleringsrutiner som<br />
emulerer gjesteinstruksjoner, <strong>av</strong> D<strong>av</strong>idian et al;. US6308255: Symmetrisk mul-<br />
tiprosesseringsbuss og brikkesett brukt for koprosessorstøtte slik at ikke-innfødt<br />
kode kan kjøres i et system, <strong>av</strong> Gorishek et al; og US6463582: dynamisk optimali-
5<br />
10<br />
15<br />
20<br />
25<br />
30<br />
15<br />
seringsobjektkodeoversetter for arkitekturemulering og dynamisk optimaliserende<br />
objektkodeoversettelsesmetode for Lethin et al; og US5790825: Metode for å emu-<br />
lere gjesteinstruksjonene på en vertsmaskin gjennom dynamisk rekompilering <strong>av</strong><br />
vertsinstruksjoner, <strong>av</strong> Eric Traut, og mange andre, illustrerer en rekke kjente måter<br />
å oppnå emulering <strong>av</strong> et instruksjonsformat utformet for en annen maskin for en<br />
målmaskinen tilgjengelig for fagmenn på området, så vel som kommersielle pro-<br />
gramvareteknikker som brukes <strong>av</strong> de som er nevnt ovenfor.<br />
Med henvisning til FIG. 1, er representative deler <strong>av</strong> et vertsdatasystem 100 vist.<br />
Andre arrangementer <strong>av</strong> komponenter kan også være tatt i bruk i et datasystem<br />
som er godt kjent innenfor fagfeltet.<br />
Vertsdatamiljøet er fortrinnsvis basert på z/Arkitektur som tilbys <strong>av</strong> International<br />
Business Machines Corporation (IBM®), Armonk, New York. z/Arkitekturen er mer<br />
fullstendig beskrevet i: z/Architecture Principles of Operation, IBM® Pub. No SA22-<br />
7832-05, 6thEdition, (april 2007). Datamiljøer basert på z/Arkitektur inkluderer, for<br />
eksempel eServer og zSeries®, begge fra IBM®.<br />
Den representative vertsmaskinen 100 består <strong>av</strong> en eller flere CPU’er 101 i kom-<br />
munikasjon med hovedlageret (datamaskinminnet 102) samt I/O grensesnittet til<br />
lagringsenheten 111 og nettverket 101 for å kommunisere med andre datamaski-<br />
ner eller SAN og lignende. CPU kan ha Dynamic Address Translation (DAT) 103 for<br />
å transformere program adresser (virtuelle adresser) til virkelige adressen til min-<br />
ne. En DAT inkluderer vanligvis en Translation Lookaside Buffer (TLB) 107 for hur-<br />
tigbufring <strong>av</strong> oversettelser, slik at senere tilgang til blokker med datamaskinens<br />
minne 102 ikke krever forsinkelse <strong>av</strong> adresseoversettelse. Vanligvis er en cache<br />
109 sysselsatt mellom datamaskinminne 102 og prosessoren 101. Cachen 109 kan<br />
være hierarkisk, ha en stor cache tilgjengelig for mer enn én CPU og mindre, raske-<br />
re (l<strong>av</strong>ere nivå) cacher mellom den store cachen og hver CPU. I noen implemente-<br />
ringer er den l<strong>av</strong>ere nivå cachen delt for å gi separate l<strong>av</strong>t nivå cacher for instruk-<br />
sjonshenting og datatilgang. I en utførelsesform, er en instruksjon hentet fra min-<br />
net 102 <strong>av</strong> en instruksjonshenteenhet 104 via en cache 109. Instruksjonene er de-<br />
kodet i en instruksjonsdekodeenhet (706) og sendes (med andre instruksjoner i<br />
noen utførelsesform) til instruksjonsutførelsesenheter 108. Vanligvis er flere in-<br />
struksjonsutførelsesenheter 108 tatt i bruk, for eksempel en aritmetisk utførelses-<br />
enhet, en flyttall utførelsesenhet og en gren instruksjonsutførelsesenhet. instruk-<br />
sjonene er utført <strong>av</strong> utførelsesenheten, tilgangsoperander fra instruksjonsspesifiser-
5<br />
10<br />
15<br />
20<br />
25<br />
30<br />
te registre eller minne etter behov. Dersom en operand skal bli aksessert (lastet<br />
16<br />
eller lagret) fra minnet 102, håndterer en lastlagringsenhet 105 typisk tilgang un-<br />
der kontroll <strong>av</strong> at instruksjonen blir utført.<br />
I en utførelsesform, kan oppfinnelsen utøves <strong>av</strong> programvare (noen ganger referert<br />
til som Licensed Internal Code (LIC), fastvare, mikro-kode, milli-kode, pico-kode og<br />
lignende, noe som ville være i samsvar med den foreliggende oppfinnelsen). Pro-<br />
gramvare programkode som legemliggjør den foreliggende oppfinnelsen er vanlig-<br />
vis aksessert <strong>av</strong> prosessoren også kjent som CPU (Central Processing Unit) 101 til<br />
datasystem 100 fra langtidslagringsmediet 111, for eksempel en CD-ROM-stasjon,<br />
tape eller harddisk. Programkoden kan være nedfelt på hvilke som helst <strong>av</strong> en rek-<br />
ke kjente medier for bruk med databehandlingssystemer, for eksempel en diskett,<br />
harddisk eller CD-ROM. Koden kan være distribuert på slike medier, eller kan bli<br />
distribuert til brukere fra datamaskinens minne 102 eller lagring <strong>av</strong> et datasystem<br />
over et nettverk 110 til andre datasystemer for bruk <strong>av</strong> brukere <strong>av</strong> andre slike sys-<br />
temer.<br />
Alternativt kan den programkoden som innlemmes i minnet 102, og nås ved pro-<br />
sessoren 101 bruke prosessorbussen. Slik programkode inkluderer et operativsys-<br />
tem som kontrollerer funksjon og samspillet mellom de ulike datakomponenter og<br />
ett eller flere applikasjonsprogrammer. Programkoden er vanligvis oppkalt fra tette<br />
lagringsmedier 111 til høyhastighetsminnet 102 der det er tilgjengelig for behand-<br />
ling <strong>av</strong> prosessoren 101. Teknikker og metoder for å utforme programvare pro-<br />
gramkode i minnet, på fysiske media, og / eller distribuert programvare-kode via<br />
nettverk er godt kjent og vil ikke bli nærmere diskutert her. Programkode, da opp-<br />
rettet og lagret på et konkret medium (inkludert men ikke begrenset til elektroniske<br />
minnemoduler (RAM), flash-minne, kompakte plater (CD), DVD-plater, magnetbånd<br />
og lignende er ofte referert til som et "dataprogram produkt ". Mediet til datapro-<br />
gramproduktet er vanligvis lesbart <strong>av</strong> en prosesseringskrets fortrinnsvis i et data-<br />
system for utføring <strong>av</strong> prosesseringskretsen.<br />
I FIG. 2, er et eksempel på et emulert vertsmaskinsystem 201 anskaffet som emu-<br />
lerer et vertsmaskinsystem 100 til en vertsarkitektur. I det emulerte vertsmaskin-<br />
systemet 201, er vertsprosessoren (CPU) 208 en emulert vertsprosessor (eller vir-<br />
tuell vertsprosessor) og omfatter en emuleringsprosessor 207 som har en annen<br />
reelle instruksjonssettarkitektur enn det som brukes <strong>av</strong> prosessoren 101 til vertsda-<br />
tamaskinen 100. Det emulerte vertsdatasystemet 201 har minne 202 tilgjengelig
5<br />
10<br />
15<br />
20<br />
25<br />
30<br />
17<br />
for emuleringsprosessoren 207. I utførelseseksempelet er minnet 207 partisjonert i<br />
en vertsmaskinminnedel 102 og en emuleringsrutinedel 203. Vertsmaskinminnet<br />
102 er tilgjengelig for programmer til den emulerte vertsmaskinen 201 i henhold til<br />
vertsmaskinens arkitektur. Emuleringsprosessoren 207 utfører reelle instruksjoner<br />
<strong>av</strong> et konstruert instruksjonssett til en arkitektur annen enn den emulerte proses-<br />
soren 208, de reelle instruksjonene er innhentet fra emuleringsrutineminnet 203,<br />
og kan få tilgang til en rekke instruksjoner for gjennomføring <strong>av</strong> et program i<br />
vertsmaskinminnet 102 ved å ansette en eller flere instruksjon(er) fått i en sekvens<br />
og tilgangs- / Dekodingsrutine som kan dekode vertsinstruksjon(ene) sin tilgang til<br />
å <strong>av</strong>gjøre en reell instruksjonsutførelsesrutine for å emulere funksjonen til vertsin-<br />
struksjon som aksesseres.<br />
Andre fasiliteter som er definert for arkitekturen til vertsdatamaskinsystemet 100<br />
kan bli emulert ved utformede fasilitetsrutiner, herunder slike anlegg som General<br />
Purpose Registers, kontrollprotokoller, Dynamic Address Translation, og I / O un-<br />
dersystemsupport og prosessor cache for eksempel. Emuleringsrutinene kan også<br />
dra nytte <strong>av</strong> funksjoner tilgjengelig på emuleringsprosessoren 207 (som General<br />
Registers og dynamisk oversettelse <strong>av</strong> virtuelle adresser) for å forbedre ytelsen <strong>av</strong><br />
emuleringsrutinene. Spesiell maskinvare og Off Load motorer kan også gis for å<br />
bistå prosessoren 207 i å emulere funksjonen <strong>av</strong> vertsmaskinen 100.<br />
For å gi topologiinformasjon til programmene, er to instruksjoner gitt. Den første er<br />
en forbedring <strong>av</strong> en kjent teknikk instruksjon STSI (STORE SYSTEM INFORMATION)<br />
og den andre er en ny instruksjon PTF (PERFORM TOPOLOGY FUNCTION).<br />
CPU Topologi Oversikt:<br />
Med bruk <strong>av</strong> den nye IBM eSeries stormaskiner, og enda tidligere, har maskin or-<br />
ganisasjon til knutepunktsstrukturer resultert i en ikke-uniform minnetilgangoppfør-<br />
sel (NUMA) (noen ganger også kalt "lumpiness"). Formålet med den nye SYSIB<br />
15.1.2 funksjonsteknikkens STSI (STORE SYSTEM INFORMATION instruksjon og<br />
den nye PERFORM TOPOLOGY FUNCTION (PTF) instruksjonen er å gi ekstra maskin-<br />
topologibevissthet til programmet slik at visse optimaliseringer kan utføres (inklu-<br />
dert forbedret cachetrefforhold) og dermed forbedre den generelle ytelsen. Meng-<br />
den <strong>av</strong> verts-CPU ressurer tildelt en multiprosesserings (MP) gjestkonfigurasjon har<br />
generelt vært spredt jevnt over et antall konfigurerte gjeste-CPU’er. (En gjeste-CPU<br />
er en logisk CPU gitt til et program, der alle gjeste-CPU’er støttes <strong>av</strong> programvare-<br />
/maskinvarepartisjonering på virkelige verts-CPU’er). Slike en jevn spredning inne-
5<br />
10<br />
15<br />
20<br />
25<br />
30<br />
35<br />
18<br />
bærer at ingen spesielle gjeste-CPU (eller CPU) er berettiget til noen ekstra verts-<br />
CPU forsyning enn noen annen vilkårlig fastsatt gjeste-CPU. Denne tilstanden <strong>av</strong><br />
gjestekonfigurasjon, som berører alle CPU’er til konfigurasjonen, kalles "horisontal<br />
polarisering". Under horisontal polarisering, er tildelingen <strong>av</strong> en verts-CPU til en<br />
gjeste-CPU omtrent samme mengde klargjøring for hver gjeste-CPU. Når forsyning-<br />
en ikke er dedikert, den samme verts-CPU’en som forsyner gjeste-CPU’en også kan<br />
brukes til bestemmelse <strong>av</strong> gjeste-CPU’er til en annen gjest, eller andre gjeste-<br />
CPU’er <strong>av</strong> samme gjestekonfigurasjon.<br />
Når den andre gjestekonfigurasjonen er en annen logisk partisjon, må en verts-<br />
CPU, når aktive i hver partisjon, vanligvis aksessere hovedlageret mer fordi ca-<br />
chetrefforholdet reduseres ved å måtte dele cacher på tvers <strong>av</strong> flere flyttingssoner.<br />
Hvis verts-CPU forsyningen kan endre balansen slik at noen verts-CPU’er er for det<br />
meste, eller utelukkende, tildelt en gitt gjestekonfigurasjon (og det blir normal at-<br />
ferd), så blir cachetrefforholdstallet bedre, det samme gjør også ytelsen. En slik<br />
ujevn spredning innebærer at en eller flere gjeste-CPU’er har rett til ekstra verts-<br />
CPU forsyning versus andre, vilkårlig fastsatte gjeste-CPU’er som er berettiget til<br />
mindre verts-CPU forsyning. Denne tilstanden <strong>av</strong> gjestekonfigurasjon, berører alle<br />
CPU’er <strong>av</strong> konfigurasjonen, kalt "vertikal polarisasjon". Arkitekturen som presente-<br />
res her kategoriserer vertikale polarisasjon inn i tre nivåer <strong>av</strong> berettigelse for klar-<br />
gjøring, høy, middels og l<strong>av</strong>:<br />
! Høy rett garanterer at ca. 100 % <strong>av</strong> en verts-CPU blir tildelt en logisk / vir-<br />
tuell CPU, og tilhørighet blir opprettholdt som en sterk korrespondanse mel-<br />
lom de to. Med hensyn til klargjøring <strong>av</strong> en logisk partisjon, når vertikal po-<br />
larisasjon er i effekt, er berettigelsen <strong>av</strong> en dedikert CPU definert til å være<br />
høy.<br />
! Medium rett garanterer at en uspesifisert mengde verts-CPU ressurser (en<br />
eller flere verts-CPU’er) blir tilordnet en logisk / virtuell CPU, og eventuell<br />
gjenværende kapasitet på verts-CPU’en anses å være slakk som kan bli til-<br />
delt andre steder. Det beste tilfellet for den tilgjengelige slakken ville være å<br />
tildele det som lokalt slakk hvis det er mulig. Et mindre gunstig resultat opp-<br />
står hvis den tilgjengelige slakken er tildelt som ekstern slakk. Det er også<br />
slik at ressursandelen tildelt en logisk CPU med middels ytelsen er en mye<br />
mykere tilnærming i forhold til 100 % tilnærming <strong>av</strong> høy rett innstilling.<br />
! L<strong>av</strong> rett garanterer at ca. 0 % <strong>av</strong> en verts-CPU blir tildelt en logisk / virtuell<br />
CPU. Men hvis slakk er tilgjengelig, kan en slik logisk / virtuell CPU fortsatt
5<br />
10<br />
15<br />
20<br />
25<br />
30<br />
19<br />
motta noe CPU ressurser. En modell <strong>av</strong> stablede beholdere med polarisering<br />
er ment å gi et nivå <strong>av</strong> intelligens om maskinens knutepunktsstruktur som<br />
gjelder for den anmodende konfigurasjon, slik at, generelt sett, kan klynger<br />
<strong>av</strong> verts-CPU’er tildeles klynger <strong>av</strong> gjeste-CPU’er, og dermed bedre så mye<br />
som mulig delingen <strong>av</strong> lagring og minimering <strong>av</strong> forskjellige konfigurasjoner<br />
som hovedsakelig kolliderer på samme verts-CPU’er. Polarisering og beretti-<br />
gelsen indikerer forholdet mellom fysiske CPU’er til logisk CPU’er eller logis-<br />
ke CPU’er til virtuelle CPU’er i en gjestekonfigurasjon, og hvordan kapasite-<br />
ten tildelt gjestekonfigurasjonen fordeles over CPU’er som utgjør konfigura-<br />
sjonen.<br />
Historisk sett har en gjestekonfigurasjon vært horisontalt polarisert. For uansett<br />
hvor mange gjest CPU’er ble definert i konfigurasjonen, var tildelte verts-CPU res-<br />
surser spredt jevnt over alle gjeste-CPU’er på en rettferdig, ikke-berettiget måte.<br />
Det kan sies at vekten <strong>av</strong> en enkelt logisk CPU i en logisk partisjon når horisontal<br />
polarisering er i effekten er omtrent lik den samlede vekten til konfigurasjonen delt<br />
på antall CPU’er. Men med introduksjonen <strong>av</strong> 2097 og familiemodeller, blir det vik-<br />
tig å kunne spre verts-CPU ressurser på en annen måte, som kalles vertikal polari-<br />
sering <strong>av</strong> en konfigurasjon, og deretter blir graden <strong>av</strong> klargjøring <strong>av</strong> gjeste-CPU’er<br />
med verts-CPU’er angitt som høy, middels eller l<strong>av</strong> berettigelse. Høy berettigelse er<br />
i kraft når en logisk / virtuell CPU <strong>av</strong> en vertikalt polarisert konfigurasjon er full-<br />
stendig støttet <strong>av</strong> samme verts-CPU. Medium berettigelse er i kraft når en logisk /<br />
virtuell CPU <strong>av</strong> en vertikalt polarisert konfigurasjon er delvis støttet <strong>av</strong> en verts-<br />
CPU. L<strong>av</strong> ytelsen er i kraft når en logisk / virtuell CPU <strong>av</strong> en vertikalt polarisert kon-<br />
figurasjon ikke er garantert noen verts-CPU ressurs, annet enn det som kan bli til-<br />
gjengelig på grunn <strong>av</strong> at slakk ressurs bli tilgjengelig.<br />
CPU Slakk:<br />
CPU ressurser; det er to typer <strong>av</strong> slakk CPU ressurser:<br />
! Lokal slakk blir tilgjengelig når en logisk / virtuell CPU <strong>av</strong> en konfigurasjon<br />
ikke bruker alle ressurser som den er berettiget, og slik slakk deretter bru-<br />
kes i konfigurasjonen <strong>av</strong> den CPU’en. Lokal slakk er foretrukket overfor eks-<br />
tern slakk idet bedre trefforhold på cacher er å forvente når slakk brukes in-<br />
nenfor konfigurasjonen.<br />
! Ekstern slakk blir tilgjengelig når en logisk / virtuell CPU <strong>av</strong> en konfigurasjon<br />
ikke bruker alle ressurser som den er berettiget, og slik slakk deretter bru-
5<br />
10<br />
15<br />
20<br />
25<br />
30<br />
20<br />
kes utenfor konfigurasjonen <strong>av</strong> den CPU’en. Ekstern slakk er forventet å stil-<br />
le l<strong>av</strong>ere trefforhold på cacher, men det er fortsatt bedre enn ikke å kjøre en<br />
logisk / virtuell CPU i det hele tatt.<br />
Målet er å maksimere CPU cachens trefforhold. For en logisk partisjon, er mengden<br />
<strong>av</strong> fysiske CPU-ressurser bestemt <strong>av</strong> det samlede systemets vekter som bestemmer<br />
den CPU-ressursen tildelt hver logisk partisjon. For eksempel i en logisk 3-veis MP<br />
som er tildelt fysiske CPU-ressurser tilsvarende en enkelt CPU, og er horisontalt<br />
polarisert, ville hver logisk CPU sendes u<strong>av</strong>hengig og dermed motta ca. 33 % fysis-<br />
ke CPU-ressurser. Hvis den samme konfigurasjonen skulle være vertikalt polarisert,<br />
ville bare en estable logisk CPU kjøres og vil motta ca. 100 % <strong>av</strong> den tildelte fysiske<br />
CPU-ressursen (høy berettigelse) mens de resterende to logiske prosessorene nor-<br />
malt ikke ville bli sendt (l<strong>av</strong> berettigelse). Slik ressurstildeling er normalt en til-<br />
nærming. Selv en l<strong>av</strong> rett CPU kan få noe mengderessurs hvis bare å bidra til at et<br />
program ikke blir sittende fast på en slik CPU. Ved å gi et middel for et kontrollpro-<br />
gram for å vise at den forstår polarisering, og å få en indikasjon for hver CPU <strong>av</strong><br />
polariseringen sin, og hvis vertikal polarisasjon, kan graden <strong>av</strong> berettigelsen, brett<br />
slik at programmet gjøre mer intelligent bruk <strong>av</strong> data strukturer som er generelt<br />
antatt å være lokale for en CPU vs. tilgjengelig for alle CPU’er <strong>av</strong> en konfigurasjon.<br />
Dessuten kan et slikt kontrollprogram unngå å dirigere arbeidet til hvilke som helst<br />
l<strong>av</strong> rett CPU. Den faktiske fysiske CPU-ressursen tildelt utgjør kanskje ikke et hel-<br />
tallig antall CPU’er, så det er også mulighet for en eller flere CPU'er i en MP vertikalt<br />
polarisert konfigurasjon å ha berettigelse, men ikke høy, og dermed resulterer i at<br />
slike CPU’er har enten middels eller l<strong>av</strong> vertikal berettigelse. Det er mulig for even-<br />
tuelle gjenværende l<strong>av</strong> berettigelse CPU’er å motta noen mengde verts-CPU-<br />
ressurser. For eksempel kan dette skje når en slik CPU er målrettet, for eksempel<br />
via en SIGP orden og slakk verts-CPU-ressursen er tilgjengelig. Ellers kan en slik<br />
logisk / virtuell CPU forbli i en ikke-sendt tilstand, selv om det ellers er i stand til å<br />
bli sendt.<br />
Fortrinnsvis i henhold til oppfinnelsen, er et 2-bits polariseringsfelt definert for den<br />
nye CPU-type "topology-list entry" (TLE) til STORE SYSTEM INFORMATION (STSI)<br />
instruksjonen. Graden <strong>av</strong> vertikal polariseringsberettigelse for hver CPU er indikert<br />
som høy, middels eller l<strong>av</strong>. Oppdraget er ikke en presis prosentandel, men snarere<br />
er noe uklar og heuristisk.
5<br />
10<br />
15<br />
20<br />
25<br />
30<br />
21<br />
I tillegg til vertikal polarisering som et middel til å tilordne vekting til gjeste-CPU’er,<br />
eksisterer et annet konsept, som er etablering og styring <strong>av</strong> slakk kapasitet (også<br />
kalt "white space"). Slakk kapasitet er opprettet under følgende omstendigheter:<br />
! En høy vertikal CPU bidrar til slakk når gjennomsnittlig utnyttelsesgrad (AU)<br />
faller under 100 prosent (100-AU).<br />
! En middels vertikale CPU som har en tilordnet klargjøring <strong>av</strong> M prosent <strong>av</strong><br />
en verts-CPU bidrar til slakk når gjennomsnittlig utnyttelsesgrad (AU) faller<br />
under M prosent (M-AU> 0).<br />
! En l<strong>av</strong> vertikal CPU bidrar ikke til slakk.<br />
! En høy vertikal CPU er ikke en forbruker <strong>av</strong> slakk.<br />
STORE SYSTEM INFORMATION Instruksjon:<br />
Et eksempel på en utførelsesform <strong>av</strong> et format <strong>av</strong> en STORE SYSTEM INFORMA-<br />
TION Instruksjon FIG. 3 omfatter et opkode felt 'B27D", e baseregistreringsfelt B2<br />
og et signert forskyvningsfelt D2. Instruksjonen opkode informerer maskinen som<br />
utfører instruksjonen at det er underforstått generelle registre '0' og '1' i forbindel-<br />
se med instruksjonen. En adresse er innhentet fra en andre operand ved å legge<br />
den signerte forskyvningsfeltverdien til innholdet i det generelle generelle registre-<br />
re spesifisert <strong>av</strong> basen feltet. I en legemliggjøring, da basen register feltet spesifi-<br />
sert <strong>av</strong> basefeltet. I en utførelsesform, når baseregisterfeltet er '0', er den tegnut-<br />
videde verdien <strong>av</strong> forskyvningsfeltet brukt direkte til å angi andre operand. Når<br />
STORE SYSTEM INFORMATION instruksjon hentes og kjøres, <strong>av</strong>hengig <strong>av</strong> en funk-<br />
sjonskode i det generelle registeret 0, enten en identifisering <strong>av</strong> nivået <strong>av</strong> konfigu-<br />
rasjonen som kjører programmet er plassert i det generelle registeret 0 eller in-<br />
formasjon om en komponent eller komponenter i en konfigurasjon er lagret i en<br />
system-informasjon blokk (SYSIB). Når informasjonen om en komponent eller<br />
komponenter er bedt om, er informasjonen nærmere spesifisert <strong>av</strong> et videre inn-<br />
hold <strong>av</strong> det generelle registeret 0 og <strong>av</strong> innholdet <strong>av</strong> det generelle registeret 1.<br />
SYSIB’en, hvis noen, er utpekt <strong>av</strong> andre-operand adressen. Maskinen regnes å gi<br />
ett, to eller tre nivåer <strong>av</strong> konfigurasjon. Nivåene er:<br />
1. Den grunnleggende maskinen, som er maskinen som om den opererer i det<br />
grunnleggende moduset.<br />
2. En logisk partisjon, som er forutsatt hvis maskinen er i drift i LPAR (logisk<br />
partisjonert) modus. En logisk partisjon er levert <strong>av</strong> LPAR hypervisor, som
5<br />
10<br />
15<br />
20<br />
25<br />
30<br />
22<br />
er en del <strong>av</strong> maskinen. En grunnleggende maskin foreligger, selv når ma-<br />
skinen er i drift i LPAR modus.<br />
3. En virtuell maskin, som leveres <strong>av</strong> et virtuelt maskinkontrollprogram (VM)<br />
som er utført enten <strong>av</strong> en grunnleggende maskin eller i en logisk partisjon.<br />
En virtuell maskin kan selv utføre et VM kontrollprogram som gir en høyere<br />
nivå (mer fjernet fra den grunnleggende maskinen) virtuell maskin, som<br />
også regnes som en nivå-3-konfigurasjon. Begrepene grunnleggende mo-<br />
dus, LPAR modus, logisk partisjon, hypervisor og virtuell maskin, og even-<br />
tuelle andre vilkår knyttet spesifikt til disse begrepene, er ikke definert i<br />
denne publikasjonen, de er definert i maskinens håndbøker. Et program<br />
som blir utført <strong>av</strong> en nivå-1-konfigurasjon (grunnleggende maskin) kan be<br />
om informasjon om den konfigurasjon. Et program blir utført <strong>av</strong> et nivå-2-<br />
konfigurasjon (i en logisk partisjon) kan be om informasjon om den logiske<br />
partisjonen og om den underliggende grunnleggende maskinen. Et program<br />
blir utført ved en nivå 3-konfigurasjon (en virtuell maskin) kan be om in-<br />
formasjon om den virtuelle maskinen og om ett eller to underliggende nivå-<br />
er, en grunnleggende maskin er alltid underliggende, og en logisk partisjon<br />
kan eller kan ikke være mellom den grunnleggende maskinen og den virtu-<br />
elle maskinen. Når informasjon om en virtuell maskin er bedt om, er infor-<br />
masjon om konfigurasjonskjøreprogrammet og om eventuelle underliggen-<br />
de nivå eller nivåer <strong>av</strong> virtuell maskiner. I noen <strong>av</strong> disse tilfellene, er infor-<br />
masjonen gitt om et nivå bare dersom nivået gjennomfører instruksjonen.<br />
Funksjonskoden som bestemmer at operasjonen er et usignert binært heltall i bit<br />
posisjonene 32-35 til det generelle registeret 0 og er som følger:<br />
Funksjon<br />
Kode ønsket informasjon:<br />
0 Nåværende-konfigurasjons-nivånummer<br />
1 Opplysninger om nivå 1 (grunnleggende maskinen)<br />
2 Opplysninger om nivå 2 (en logisk partisjon)<br />
3 Opplysninger om nivå 3 (en virtuell maskin)<br />
4-14 Ingen; koder er reservert<br />
15 Gjeldende-konfigurasjonsnivå informasjon
5<br />
10<br />
15<br />
20<br />
25<br />
30<br />
Ugyldig funksjonskode:<br />
23<br />
Nivået <strong>av</strong> konfigurasjonen som kjører programmet kalles nåværende nivå. Konfi-<br />
gurasjonsnivået angitt <strong>av</strong> en ikke-null funksjonskode kalles det angitte nivået. Når<br />
det angitte nivået er nummerert høyere enn nåværende nivå, kalles dermed koden<br />
for funksjonen ugyldig, tilstandskoden er satt til 3, og ingen andre tiltak (inkludert<br />
kontroll) er utført.<br />
Gyldig funksjonskode:<br />
Når funksjonskoden er lik eller mindre enn tallet til det nåværende nivået, kalles<br />
det gyldig. I dette tilfellet må bitene 36-55 til det generelle registeret 0 og bitene<br />
32-47 til det generelle registeret 1 være null eller 15, ellers er et spesifikasjons-<br />
unntak anerkjent. Bitene 0-31 til det generelle registeret 0 og 1 ignoreres alltid.<br />
Når funksjonskoden er 0, er et usignert binært heltall som identifiserer det aktuelle<br />
konfigurasjonsnivået (1 for enkel maskin, 2 for logisk partisjon, eller 3 for virtuell<br />
maskin) plassert i bitposisjonene 32-35 til det generelle registeret 0, er tilstands-<br />
koden satt til 0, og ingen ytterligere tiltak er utført. Når funksjonskoden er gyldig<br />
og ikke-null, inneholder det generelle registeret 0 og 1 flere spesifikasjoner om<br />
den ønskede informasjonen, som følger:<br />
! Bit posisjoner 56-63 <strong>av</strong> generell registrer 0 inneholde en usignert binære<br />
heltall, kalt selector 1, som angir en komponent eller deler <strong>av</strong> den angitte<br />
konfigurasjonen.<br />
! [0133] Bit posisjoner 48-63 <strong>av</strong> generell registrere en inneholder en usignert<br />
binære heltall, kalt selector 2, som angir hvilken type informasjon etter-<br />
spør. Innholdet <strong>av</strong> generelle registre 0 og 1 er vist i FIG. 4.<br />
Når funksjonskoden er gyldig og ikke-null, kan informasjon lagres i en systemin-<br />
formasjonsblokk (SYSIB) som begynner lokaliseringen til andre-operand. SYSIB’en<br />
er 4 kB og må begynne på en 4 kB grens, ellers kan et spesifikasjonsunntak bli<br />
gjenkjent, <strong>av</strong>hengig <strong>av</strong> selector 1 og selector 2 og om tilgangsunntak er anerkjent<br />
på grunn <strong>av</strong> referanser til SYSIB.<br />
Selector 1 kan ha verdier som følger:<br />
Selector 1 ønsket informasjon<br />
0 Ingen; selector er reservert
5<br />
10<br />
15<br />
20<br />
25<br />
30<br />
1 Informasjon om konfigurasjonsnivået er spesifisert <strong>av</strong> koden for<br />
funksjonen<br />
2 Opplysninger om en eller flere CPU’er i det spesifiserte konfigura-<br />
sjonsnivået<br />
24<br />
3-255 Ingen; selectorer er reservert<br />
Når selector 1 er 1, kan selector 2 ha verdier som følger:<br />
Selector 2 når<br />
Selector 1 er 1 ønsket informasjon<br />
0 Ingen; selector er reservert<br />
1 Opplysninger om det angitte konfigurasjonsnivået<br />
2 Topologi informasjon om det angitte konfigurasjonsni-<br />
vået<br />
3-65,535 Ingen; selectorer er reservert<br />
Når selector 1 er 2, kan selector 2 har verdier som følger:<br />
Selector 2 når<br />
Selector 1 er 2 ønsket informasjon<br />
0 Ingen; selector er reservert<br />
1 Opplysninger om CPU utfører programmet i det angitte<br />
konfigurasjonsnivået<br />
2 Opplysninger om alle CPU’er i det angitte konfigura-<br />
sjonsnivået<br />
3-65,535 Ingen; selectorer er reservert<br />
Kun enkelte kombinasjoner <strong>av</strong> funksjonskode, selector 1, og selector 2 er gyldige,<br />
som vist i FIG. 5.<br />
Når den angitte funksjonskoden, selector-1, og selector-2 kombinasjonen er ugyldig<br />
(er annet enn som vist i FIG. 5), eller om den er gyldig, men den forespurte infor-<br />
masjonen er ikke tilgjengelig fordi det angitte nivået ikke gjennomfører eller ikke<br />
fullt ut gjennomfører instruksjonen eller fordi en nødvendig del <strong>av</strong> nivået er <strong>av</strong>in-<br />
stallert eller ikke initialisert, og forutsatt at et unntak ikke gjenkjennes, er til-<br />
standskoden satt til 3. Når funksjonskoden er null, er kombinasjonen gyldig, er den
5<br />
10<br />
15<br />
20<br />
25<br />
25<br />
forespurte informasjonen tilgjengelig, og det ikke er noe unntak, er den forespurte<br />
informasjonen lagret i en system-informasjon blokk (SYSIB) på adressen til den<br />
andre operanden.<br />
Noen eller alle <strong>av</strong> SYSIB kan være hentet før den er lagret.<br />
En SYSIB kan identifiseres i referanser ved hjelp <strong>av</strong> "SYSIB fc.s1.s2," hvor "fc",<br />
"s1" og "s2" er verdiene <strong>av</strong> en funksjonskoden, selector 1, og selector 2, henholds-<br />
vis.<br />
Følgende <strong>av</strong>snitt beskriver de definerte SYSIB’en ved hjelp <strong>av</strong> figurer og tilhørende<br />
tekst. I tallene, er de forskyvninger som vises til venstre ordverdier (et ord som<br />
består <strong>av</strong> 4 byte). "Konfigurasjonen" refererer til konfigurasjonnivået spesifisert <strong>av</strong><br />
funksjonskoden (konfigurasjonsnivået om hvilken informasjon som er forespurt).<br />
SYSIB 1.1.1 (Basic-Machine Configuration)<br />
SYSIB 1.1.1 har formatet vist i FIG. 6, der feltene har følgende betydning:<br />
Reservert: Innholdet <strong>av</strong> ord 0-7, 13-15 og 29-63 er reservert og lagres som<br />
nuller. Innholdet i ord 64-1023 er reservert og kan lagres som nuller eller<br />
forblir uendret.<br />
Produsent: Ord 8-11 inneholder 16 tegn (0-9 eller store bokst<strong>av</strong>er AZ) EBC-<br />
DIC n<strong>av</strong>net på produsenten <strong>av</strong> konfigurasjonen. N<strong>av</strong>net er venstrejustert<br />
med etterfølgende blanke tegn hvis nødvendig.<br />
Type: Ord <strong>12</strong> inneholder de fire tegn (0-9) EBCDIC typenummer til konfigu-<br />
rasjonen. (Dette kalles maskin-type nummer i definisjonen <strong>av</strong> STORE CPU<br />
ID.)<br />
Model-Capacity Identifier: Ord 16-19 inneholder 16 tegn (0-9 eller store<br />
bokst<strong>av</strong>er AZ) EBCDIC modellkapasitetidentifikator til konfigurasjonen. Mo-<br />
dellkapasitetidentifikator er venstrejustert med etterfølgende blanke tegn<br />
hvis nødvendig.
5<br />
10<br />
15<br />
20<br />
25<br />
30<br />
26<br />
Sekvenskodeord 20-23 inneholde 16 tegn (0-9 eller store bokst<strong>av</strong>er AZ)<br />
EBCDIC sekvenskode til konfigurasjonen. Sekvenskoden er høyrejustert med<br />
ledende EBCDIC nuller hvis nødvendig.<br />
Produksjonsfabrikk: Ord 24 inneholder de fire karakter (0-9 eller store bok-<br />
st<strong>av</strong>er AZ) EBCDIC kode som identifiserer anlegget for produksjon for konfi-<br />
gurasjonen. Koden er venstrejustert med etterfølgende blanke tegn hvis<br />
nødvendig.<br />
Model: Når Ord 25 ikke er binære nuller, inneholder ord 25-28 16 tegn (0-9<br />
eller store bokst<strong>av</strong>er AZ) EBCDIC modell identifikasjon til konfigurasjonen.<br />
Modellidentifikasjonen er venstrejustert med etterfølgende blanke tegn hvis<br />
nødvendig. (Dette kalles modellnummer i programmeringsnote 4 på side 10-<br />
111 <strong>av</strong> STORE CPU ID.) Når Ord 25 er binære nuller, representerer innholdet<br />
til ord 16-19 både modell-kapasitet identifikator og modellen.<br />
Programnotater:<br />
1. Feltene i SYSIB 1.1.1 er lik de til node beskriveren beskrevet i publikasjonen<br />
Vanlige I / O-enhet kommandoer og selvbeskrivelse. Imidlertid kan innholdet <strong>av</strong><br />
SYSIB feltene ikke være identisk med innholdet i det tilsvarende nodebeskriverfel-<br />
tet fordi SYSIB feltene:<br />
! Tillater flere tegn.<br />
! Er mer fleksible når det gjelder typen tegn som er tillatt.<br />
! Gir informasjon som er berettiget annerledes innenfor feltet.<br />
! Kan ikke bruke samme metode for å bestemme innholdet <strong>av</strong> felt som sek-<br />
venskodefeltet.<br />
2. Modellfeltet i en node beskrivelse tilsvarer innholdet i STSI modellfeltet og<br />
ikke STSI modell-kapasitet-identifikatorfeltet.<br />
3. Modellfeltet angir modell <strong>av</strong> maskinen (dvs. den fysiske modellen), modell-<br />
kapasitetsidentifikatorfeltet angir en token som kan brukes til å finne en angivelse<br />
<strong>av</strong> kapasiteten eller ytelsen i System Library publikasjonen for modellen.<br />
SYSIB 1.2.1 (Grunnleggende-Maskin CPU)<br />
SYSIB 1.2.1 har formatet vist i FIG. 7 der feltene har følgende mening:
5<br />
10<br />
15<br />
20<br />
25<br />
27<br />
Reservert: Innholdet <strong>av</strong> ord 0-19, byte 0 og 1 <strong>av</strong> ord 25, og ord 26-63 er re-<br />
servert og lagres som nuller. Innholdet i ord 64-1023 er reservert og kan<br />
lagres som nuller eller forblir uendret.<br />
Sekvenskodeord 20-23 inneholde 16 tegn (0-9 eller store bokst<strong>av</strong>er AZ)<br />
EBCDIC sekvens kode til konfigurasjonen. Koden er høyrejustert med leden-<br />
de EBCDIC nuller hvis nødvendig.<br />
Produksjonanlegg: Ord 24 inneholder de fire karakter (0-9 eller store bok-<br />
st<strong>av</strong>er AZ) EBCDIC kode som identifiserer anlegget for produksjonen <strong>av</strong> kon-<br />
figurasjonen. Koden er venstrejustert med etterfølgende blanke tegn hvis<br />
nødvendig.<br />
CPU Adresse: Bytes 2 og 3 til ord 25 inneholde CPU-adressen som denne<br />
CPU’en er identifisert i en multiprosessorkonfigurasjon. Den CPU-adressen er<br />
et 16-bit usignert binært heltall. Denne CPU-adressen er den samme som er<br />
lagret <strong>av</strong> STORE CPU ADRESSE når programmet utføres <strong>av</strong> en maskin som<br />
opererer i grunnleggende modus.<br />
Programmeringsnotater:<br />
Flere CPU’er i samme konfigurasjon har samme sekvenskoden, og det er<br />
nødvendig å bruke annen informasjon, som for eksempel CPU-adressen, for<br />
å etablere en unik CPU-identitet. Sekvenskoden returneres for en grunnleg-<br />
gende maskin-CPU og en logisk-partisjons-CPU er identiske og har samme<br />
verdi som sekvenskoden som returneres for grunnleggende-maskin-<br />
konfigurasjonen.<br />
SYSIB 1.2.2 (Grunnleggende-Maskin CPU’er)<br />
Formatfeltet i byte 0 <strong>av</strong> ordet 0 bestemmer formatet på SYSIB. Når formatfeltet har<br />
en verdi på null, har SYSIB 1.2.2 et format-0 layout som vist i FIG. 8. Når format-<br />
feltet har en verdi på én, har SYSIB 1.2.2 et format-1 layout som vist i FIG. 9.<br />
Reservert:<br />
Når formatfeltet inneholder en verdi på null, er innholdet i bytes 1-3 <strong>av</strong> ord<br />
0 og ord 1-6 reservert og lagres som nuller. Når formatfeltet inneholder en
5<br />
10<br />
15<br />
20<br />
25<br />
30<br />
Format:<br />
28<br />
verdi på én, er innholdet i byte 1 <strong>av</strong> ord 0 og ord 1-6 reservert og lagres<br />
som nuller. Når færre enn 64 ord behøves for å inneholde informasjonen for<br />
alle CPU’ene, er delen <strong>av</strong> SYSIB’en som etterfølger justeringsfaktorlisten i et<br />
format-0 SYSIB eller den alternerende-justeringsfaktorlisten i en format-1<br />
SYSIB opp til ord 63 reservert og lagret som nuller. Innholdet <strong>av</strong> ord 64 –<br />
1023 er reservert og kan lagres som nuller kan forbli uforandret. Når 64 el-<br />
ler flere ord behøves for å inneholde informasjonen for alle CPU’ene, er de-<br />
len <strong>av</strong> SYSIB’en som etterfølger justeringsfaktorlisten i et format-0 SYSIB el-<br />
ler den alternerende-justeringsfaktorlisten i en format-1 SYSIB opp til ord<br />
1023 reservert og kan bli lagret som nuller eller kan forbli uforandret.<br />
Byte 0 <strong>av</strong> ordet 0 inneholder et 8-bit usignert binært heltall som angir formatet på<br />
SYSIB 1.2.2.<br />
Alternerende-CPU-kapabilitetsoffset:<br />
Når formatfeltet har en verdi på én, inneholder bytes 2-3 i ord 0 et 16-bit usignert<br />
binært heltall som angir forskyvningen i byte <strong>av</strong> det alternative-CPU-<br />
kapabilitetsfeltet i SYSIB.<br />
Sekundær CPU kapabilitet:<br />
Ord 7 inneholder et 32-bit usignert binært heltall som, når det ikke er null, spesifi-<br />
serer en sekundær funksjon som kan brukes på visse typer CPU’er i konfigurasjo-<br />
nen. Det er ingen formell beskrivelse <strong>av</strong> algoritmen som brukes til å generere dette<br />
heltallet, bortsett fra at det er den samme som algoritmen som brukes til å genere-<br />
re CPU evne. Heltallet brukes som en indikasjon på kapasiteten til en CPU i forhold<br />
til evnen til andre CPU-modeller, og også i forhold til evnen til andre CPU typer in-<br />
nenfor en modell. Kapabilitetsverdien gjelder for hver <strong>av</strong> CPU’ene til ett eller flere<br />
aktuelle CPU typer i konfigurasjonen. Det vil si at alle CPU’er i konfigurasjonen <strong>av</strong><br />
en gjeldende type eller typer har samme evne. Når verdien er null, har alle CPU’er<br />
<strong>av</strong> enhver CPU type i konfigurasjonen samme evne, som angitt <strong>av</strong> CPU evne. Den<br />
sekundære CPU kapabiliteten kan eller kan ikke være den samme verdi som CPU-<br />
kapabilitetsverdien. Multiprosesserings-CPU-evne-justeringsfaktorer er også gjel-<br />
dende for CPU’er hvis funksjoner er spesifisert <strong>av</strong> den sekundære CPU evnen.
5<br />
10<br />
15<br />
20<br />
25<br />
CPU kapabilitet:<br />
29<br />
Hvis biter 0-8 <strong>av</strong> ord 8 er null, inneholder ordet et 32-bit usignert binært heltall (I) i<br />
området 0
5<br />
10<br />
15<br />
20<br />
25<br />
30<br />
konfigurasjonen, er ikke tilgjengelig for å brukes til å kjøre programmer, og kan<br />
30<br />
ikke gjøres tilgjengelig ved utstedelse <strong>av</strong> instruksjonene for å plassere den i konfi-<br />
gurerte tilstand. (Det kan være mulig å plassere en reservert CPU i standby eller<br />
konfigurert tilstand ved hjelp <strong>av</strong> manuelle handlinger.)<br />
Multiprosesserings-CPU-kapabilitetsjusteringsfaktorer:<br />
Fra og med byte 0 og 1 <strong>av</strong> ord 11, inneholder SYSIB en serie med sammenhengen-<br />
de to-byte felt, som hver inneholder et 16-bit usignert binært heltall som brukes til<br />
å danne en justeringsfaktor (fraksjon) for verdien som finnes i CPU -evne feltet. En<br />
slik brøkdel er utviklet ved hjelp <strong>av</strong> verdien (V) <strong>av</strong> de første to-byte felt i henhold til<br />
én <strong>av</strong> følgende metoder:<br />
! Hvis V er i størrelsesorden 0
5<br />
10<br />
15<br />
20<br />
25<br />
30<br />
35<br />
som en indikasjon på den varslede kapabiliteten til CPU i forhold til den varslede<br />
31<br />
kapabiliteten til andre CPU-modeller. Den alternerende kapabilitetsverdi gjelder for<br />
hver <strong>av</strong> CPU’ene i konfigurasjonen. Det vil si at alle CPU’er i konfigurasjonen har<br />
samme alternerende kapabilitet.<br />
Dermed er brøkdelen representert med hvert to-byte felt så utviklet ved å dele<br />
innholdet i to byte felt <strong>av</strong> den indikerte nevneren. Antallet alternative-justerings-<br />
faktorfelter er én mindre enn antall CPU'er angitt i total-CPU-tallfeltet. Det<br />
alternative justeringsfaktorfeltet tilsvarer konfigurasjoner med økende antall CPU'er<br />
i den konfigurerte tilstanden. Det første alternerende justeringsfaktorfeltet tilsvarer<br />
en konfigurasjon med to CPU'er i den konfigurerte tilstanden. Hvert suksessive<br />
alternerende justeringsfaktorfelt tilsvarer en konfigurasjon med en rekke CPU'er i<br />
den konfigurerte tilstanden som er én mer enn for de foregående feltet.<br />
SYSIB 15.1.2 (konfigurasjonstopologi)<br />
SYSIB 15.1.2 har formatet vist i FIG. 10. Feltene har den betydning som følger:<br />
Reservert: Innholdet <strong>av</strong> bytes 0-1 <strong>av</strong> ord 0, byte 2 <strong>av</strong> ordet 2 og ord 3 er<br />
reservert, og lagres som nuller. Innholdet <strong>av</strong> ord N-1023 er reservert og kan<br />
lagres som nuller eller forblir uendret.<br />
Lengde: Bytes 2-3 <strong>av</strong> ordet 0 inneholder et 16-bit usignert binært heltall<br />
som verdi er antall byte <strong>av</strong> hele SYSIB 15.1.2. Lengden på bare topologi<br />
listen er bestemt ved å trekke 16 fra lengden verdien i byte 2-3 <strong>av</strong> ordet 0.<br />
N i FIG. 10 er bestemt ved å evaluere formelen N = Lengde / 4.<br />
Mag 1-6: Ord og bytes 0-1 <strong>av</strong> ord utgjør seks én byte felt der innholdet i<br />
hver byte angir maksimalt antall beholder-type topologi-oppføringer (TLE)<br />
eller CPU-type TLE'er på tilsvarende stablings nivå. CPU-type TLE'er er alltid<br />
funnet bare på Mag1 nivå. I tillegg spesifiserer Mag1 verdien også maksimalt<br />
antall CPU'er som kan være representert <strong>av</strong> en beholder-type TLE til Mag2<br />
nivået. Når verdien <strong>av</strong> det stablende nivået er større enn én, inneholdende<br />
stablende nivåer over Mag1 nivå er opptatt <strong>av</strong> beholder-type TLE'er. En<br />
dynamisk endring i topologien kan endre antall TLE'er og antall CPU'er på<br />
Mag1 nivå, men grensene representert ved verdiene <strong>av</strong> Mag1-6 feltet endres<br />
ikke innenfor en modell familie <strong>av</strong> maskiner.<br />
Topologien er en strukturert liste over oppføringer der en oppføring definerer en<br />
eller flere prosessorer eller annet er involvert med stablende struktur. Følgende<br />
illustrerer betydningen <strong>av</strong> omfanget feltene:<br />
Når alle CPU'er <strong>av</strong> maskinen er jevnaldrende og ingen begrensende organisasjon<br />
eksisterer, annet enn helheten <strong>av</strong> sentralprosesseringskomplekset selv, er verdien
5<br />
10<br />
15<br />
20<br />
25<br />
30<br />
35<br />
32<br />
<strong>av</strong> stablende nivå 1, Mag1 den estable ikke-null størrelse feltet, og antall lagrede<br />
CPU-type TLE'er overskrider ikke Mag1 verdien.<br />
Når alle CPU'er <strong>av</strong> maskinen er delt inn i likestilte grupper slik at et nivå <strong>av</strong> kontroll<br />
eksisterer, er verdien <strong>av</strong> stablende nivå 2, Mag1 og Mag2 det estable feltet <strong>av</strong><br />
størrelsesorden ikke-null, antall lagrede beholder-type TLE'er overstiger ikke Mag2<br />
verdien, og antall CPU-type TLE'er lagret innenfor hver beholder overskrider ikke<br />
Mag1 verdieen.<br />
Mag3-6 bytes blir likeledes brukt (går i en rett-til-venstre retning) når verdien <strong>av</strong><br />
det stablende nivået faller i området 3-6.<br />
MStabl: Byte 3 <strong>av</strong> ordet 2 angir det stablende nivået <strong>av</strong> topologi som til hvilke<br />
konfigurasjonen kan forlenges mens du fortsetter å tillate gjesteprogrammet for å<br />
overleve. Den maksimale MStabl verdien er seks, den minste er én. Hvis MStabl er<br />
én, er det ingen reelle TLE stabling struktur, er Mag1 det estable ikke-null-feltet i<br />
Mag1-6-serien, og bare CPU-type TLE'er er representert i topologilisten. MStabl<br />
verdien angir antall verdier <strong>av</strong> størrelsesorden ikke-null som begynner med<br />
størrelsesordensfeltet ved byte <strong>av</strong> ord 2 (Mag1), fortsetter til venstre når MStabl er<br />
større enn én, og med de resterende størrelsesordensfeltene lagret som nuller.<br />
Verdien <strong>av</strong> MStabl er det maksimale mulig stablende. Ingen dynamisk<br />
konfigurasjonsendring overskrider denne grensen.<br />
Topologilisten: Ord <strong>av</strong> FIG. 10 i området 4 til N-1 spesifiserer en liste <strong>av</strong> en eller<br />
flere topologilisteoppføringer (TLE). Hver TLE er et åtte-byte eller seksten-byte felt,<br />
derfor er N et likt antall ord, og en konsekvens er at en TLE alltid starter på en<br />
dobbelordgrense.<br />
Topologilisteoppføringer: Den første TLE i topologi listen begynner på et stablende<br />
nivå lik MStabl-1. Hele topologilisten representerer konfigurasjonen <strong>av</strong> utstederen<br />
<strong>av</strong> STSI instruksjonen som spesifiserer SYSIB 15.1.2, ingen ytterste beholder TLE<br />
oppføring blir brukt i det det ville være overflødig med hele listen, og hele<br />
konfigurasjonen. Der derfor kan det høyeste stablende nivået ha mer enn en enkelt<br />
likestilt beholder.<br />
Fig. 11 og <strong>12</strong> illustrerer typene TLE'er, der feltene har følgende definisjoner:<br />
Stablende nivå (NL): Byte 0 til ord 0 spesifiserer TLE Stablende nivå.<br />
NL betydning<br />
0 TLE'en er en CPU-type TLE.<br />
1-5 TLE'en er en beholder-type TLE.
5<br />
10<br />
15<br />
20<br />
25<br />
30<br />
35<br />
06-FF Reservert.<br />
33<br />
Den første beholder-type TLE'en lagret i en topologiliste eller en<br />
forelderbeholder har en beholder-ID i området 1-255. Hvis søsken<br />
beholdere eksistere innenfor samme foreldre, går de i en stigende<br />
rekkefølge <strong>av</strong> beholder ID-kort, som kan eller ikke kan være<br />
sammenhengende, til en maksimal verdi på 255.<br />
Søsken TLE'er har samme verdi <strong>av</strong> stablende nivå som tilsvarer enten verdien <strong>av</strong><br />
det stablende nivået minus ett <strong>av</strong> de umiddelbare foreldre TLE'ene, eller verdien <strong>av</strong><br />
MStabl minus én, fordi den umiddelbare foreldre er topologiliste heller enn en TLE.<br />
Reservert, 0: For en beholder-type TLE blir bytes 1-3 <strong>av</strong> ord 0 og bytes 0-2 <strong>av</strong> ord<br />
1 reservert og lagret som nuller. For en CPU-type TLE blir bytes 1-3 <strong>av</strong> ord 0 og<br />
biter 0-4 <strong>av</strong> ord 1 reservert og lagret som nuller.<br />
Beholder ID:<br />
Byte <strong>av</strong> ord 1 <strong>av</strong> en beholder-type TLE angir en 8-bit usignert ikke er null binære<br />
heltall som verdi identifikatoren <strong>av</strong> beholderen. Beholderen ID for en TLE er unik<br />
innenfor samme foreldre beholder.<br />
Dedikerte (D):<br />
Bit 5 <strong>av</strong> ord 1 <strong>av</strong> en CPU-type TLE, når man, indikerer at en eller flere CPU'er<br />
representert ved TLE er dedikerte. Når D er null, er en eller flere CPU'er <strong>av</strong> TLE ikke<br />
dedikerte.<br />
Polarisering (PP):<br />
Bits 6-7 <strong>av</strong> ord 1 <strong>av</strong> en CPU-type TLE spesifisere polariseringsverdien og, når<br />
polariseringen er vertikal, er graden <strong>av</strong> vertikal polarisasjon også kalt bruksrett<br />
(høy, middels, l<strong>av</strong>) <strong>av</strong> tilsvarende CPU (er) representerte <strong>av</strong> TLE. Følgende verdier<br />
brukes:<br />
PP Betydning:<br />
0 en eller flere CPU'er representert ved TLE er horisontalt polarisert.<br />
1 En eller flere CPU'er representert ved TLE er vertikalt polarisert.<br />
Ytelsen er l<strong>av</strong>.<br />
2 en eller flere CPU'er representert ved TLE er vertikalt polarisert. Ytelsen er<br />
middels.
5<br />
10<br />
15<br />
20<br />
25<br />
30<br />
35<br />
34<br />
3 En eller flere CPU'er representert ved TLE er vertikalt polarisert.<br />
Ytelsen er høy.<br />
Polariseringen er estable signifikante i en logisk og virtuell<br />
multiprosesseringskonfigurasjon som bruker delt vertsprosessorer og omhandler<br />
hvordan ressursen tildelt en konfigurasjon er brukt over CPU'er <strong>av</strong> konfigurasjonen.<br />
Når horisontale polarisasjon er i kraft, er hver CPU til en konfigurasjon garantert<br />
omtrent samme mengde ressurs. Når vertikal polarisasjon er i kraft, er CPU'er <strong>av</strong><br />
en konfigurasjon klassifisert i tre nivåer <strong>av</strong> ressurs bruksrett: høy, middels og l<strong>av</strong>.<br />
Både undersystem reset og vellykket gjennomføring <strong>av</strong> SIGP set-arkitektur orden<br />
som spesifiserer ESA/390 modussted en konfigurasjon og alle <strong>av</strong> dens CPU'er inn i<br />
horisontale polarisasjon. CPU'er som er umiddelbart rammet er de som er i den<br />
konfigurerte tilstanden. Når en CPU i standby-tilstand er konfigurert, anskaffer den<br />
den aktuelle polariseringen til konfigurasjonen og forårsaker en topologiendring <strong>av</strong><br />
denne konfigurasjonen å bli kjent.<br />
En dedikert CPU er enten horisontalt eller vertikalt polarisert. Når en dedikert CPU<br />
er vertikalt polarisert, er bruksretten alltid høy. Så når D er 1, er PP enten 00 binær<br />
eller 11 binær.<br />
CPU Type:<br />
Byte 1 <strong>av</strong> ord 1 <strong>av</strong> en CPU-type TLE angir et 8-bit usignert binært heltall hvilkes<br />
verdi er CPU typen til en eller flere CPU'er representert ved TLE. CPU-typeverdien<br />
angir enten en primær-CPU type eller noen <strong>av</strong> de mulige sekundære-CPU-typene.<br />
CPU-Adresse opph<strong>av</strong>:<br />
Bytes 2-3 <strong>av</strong> ord 1 <strong>av</strong> en CPU-type TLE angir et 16-bit usignert binært heltall<br />
hvilkets verdi er CPU adressen til den første CPU'en i området <strong>av</strong> CPU'er<br />
representert ved CPU maske, og hvis tilstedeværelse er representert <strong>av</strong> verdien <strong>av</strong><br />
bit posisjon 0 i CPU masken. En CPU-adresse opprinnelse er jevnt delbart med 64.<br />
Verdien <strong>av</strong> en CPU-adresse opprinnelse er den samme som den lagret <strong>av</strong> STORE<br />
CPU ADRESSE (STAP) instruksjonen når utført på CPU representert ved bit posisjon<br />
0 i CPU maske.
5<br />
10<br />
15<br />
20<br />
25<br />
30<br />
35<br />
CPU Maske:<br />
Ord 2-3 <strong>av</strong> en CPU-type TLE angir en 64-bits maske der hver bitposisjon<br />
representerer en CPU. Verdien <strong>av</strong> CPU-adresse opprinnelsesfeltet pluss en<br />
35<br />
bitposisjon i CPU maske lik CPU adressen for tilsvarende CPU. Når et CPU maske bit<br />
er null, er den tilsvarende CPU ikke er representert ved TLE. CPU er enten ikke i<br />
konfigurasjonen eller må være representert ved en annen CPU-type TLE.<br />
Når en CPU maske bit er en, har de tilsvarende CPU den modifiserer-<br />
attributtverdiene spesifisert <strong>av</strong> TLE, er i topologien til konfigurasjonen, og er ikke til<br />
stede i noen andre TLE'er til topologien.<br />
Derfor, for eksempel hvis CPU-adresseopprinnelsen er en verdi på 64, og bit<br />
posisjon 15 <strong>av</strong> CPU masken er en, er CPU 79 i konfigurasjonen og har CPU-type,<br />
polarisering, berettigelse og dedikasjon som spesifisert <strong>av</strong> TLE.<br />
TLE Rekkefølge:<br />
Modifisererattributtene som gjelder for en CPU-type TLE er CPU-type, polarisering,<br />
berettigelse og dedikasjon. Polarisering og berettigelse (for vertikal polarisasjon)<br />
tas som en enkelt atributt, men med fire mulige verdier (horisontal, vertikal-høy,<br />
vertikal-medium, og vertikal-l<strong>av</strong>).<br />
En enkelt CPU TLE er tilstrekkelig til å representere så mange som 64 CPU'er at alle<br />
har samme modifisererattributtverdier.<br />
Når mer enn 64 CPU'er eksisterer, eller hele spekteret <strong>av</strong> CPU-adresser ikke er<br />
dekket <strong>av</strong> en enkelt CPU-adresse opprinnelse, og modifisererattributtene er<br />
konstante, er en egen søsken CPU TLE lagret for hver CPU-adresse opprinnelse,<br />
som nødvendig, i stigende rekkefølge <strong>av</strong> CPU-adresse opprinnelse. Hver slik lagret<br />
TLE har minst én CPU representert. Samlingen <strong>av</strong> en eller flere slike CPU TLE'er<br />
kalles et CPU-TLE sett.<br />
Når flere CPU-typer finnes, er en egen CPU-TLE satt lagret for hver, i stigende<br />
rekkefølge <strong>av</strong> CPU type.<br />
Når flere polarisering-og-berettigelseverdier eksisterer, er en egen CPU-TLE sett<br />
lagret for hver enkelt, i synkende rekkefølge <strong>av</strong> polariseringsverdi og grad (vertikal
5<br />
10<br />
15<br />
20<br />
25<br />
30<br />
35<br />
høy, middels, l<strong>av</strong>, deretter horisontal). Når til stede, er alle polarisering CPU-TLE<br />
sett <strong>av</strong> en gitt CPU type lagret før stable CPU-TLE sett til den stable CPU-typen.<br />
Når både dedikerte og ikke-dedikert CPU'er eksisterer, er en egen CPU-TLE satt<br />
36<br />
lagret for hver, dedikerte vises før ikke-dedikert. Alle TLE'er er sortert forutsatt en<br />
dybde-første tr<strong>av</strong>ersering hvor sorteringsrekkefølge fra størst til minst er som<br />
følger:<br />
1. CPU type<br />
a. L<strong>av</strong>este CPU-type verdi<br />
b. Høyeste CPU-type verdi<br />
2. Polarisering-Berettigelse<br />
a. Vertikal høy<br />
b. Vertikal medium<br />
c. Vertikal l<strong>av</strong><br />
d. Horisontal<br />
3. Dedikasjon (når gjeldende)<br />
a. Dedikerte<br />
b. Ikke dedikert<br />
Rangeringen <strong>av</strong> CPU-adresseopprinnelse og modifisererattributter <strong>av</strong> søsken CPU<br />
TLE'er innenfor en forelder beholder er gjort i henhold til følgende liste, fortsetter<br />
som fra høyeste til l<strong>av</strong>este.<br />
1. CPU-TLE sett l<strong>av</strong>este CPU-type verdi, vertikal høy, dedikert<br />
2. CPU-TLE sett l<strong>av</strong>este CPU-type verdi, vertikal høy, ikke-dedikert<br />
3. CPU-TLE sett l<strong>av</strong>este CPU-type verdi, vertikale medium, ikke-dedikert<br />
4. CPU-TLE sett l<strong>av</strong>este CPU-type verdi, vertikal l<strong>av</strong>, ikke-dedikert<br />
5. CPU-TLE sett l<strong>av</strong>este CPU-type verdi, horisontal, dedikert<br />
6. CPU-TLE sett l<strong>av</strong>este CPU-type verdi, horisontal, ikke-dedikert<br />
7. CPU-TLE sett <strong>av</strong> høyeste CPU-type verdi, vertikal høy, dedikert<br />
8. CPU-TLE sett <strong>av</strong> høyeste CPU-type verdi, vertikal høy, ikke-dedikert<br />
9. CPU-TLE sett <strong>av</strong> høyeste CPU-type verdi, vertikale medium, ikke-dedikert<br />
10. CPU-TLE sett <strong>av</strong> høyeste CPU-type verdi, vertikal l<strong>av</strong>, ikke-dedikert<br />
11. CPU-TLE sett <strong>av</strong> høyeste CPU-type verdi, horisontal, dedikert<br />
<strong>12</strong>. CPU-TLE sett <strong>av</strong> høyeste CPU-type verdi, horisontal, ikke-dedikert
5<br />
10<br />
15<br />
20<br />
25<br />
30<br />
35<br />
Andre TLE Regler:<br />
37<br />
En beholder-type TLE ligger på stablende nivåer i området 1-5.<br />
En CPU-type TLE ligger på stablende nivå 0.<br />
Antall søsken beholder-type TLE'er i en topologiliste eller en gitt foreldrene beholder<br />
ikke overstiger verdien <strong>av</strong> størrelsesordensbyte (Mag2-6) <strong>av</strong> det stablende nivået<br />
tilsvarer søskenene.<br />
Antall CPU'er representert ved en eller flere CPU-type TLE'er <strong>av</strong> den overordnede<br />
beholderen ikke overstiger verdien <strong>av</strong> Mag1 størrelsesordensbyte.<br />
Innholdet i en TLE er definert som følger:<br />
Hvis en TLE er en beholder-type TLE, er innholdet i en liste som følger<br />
umiddelbart etter den overordnede TLE'en, som består <strong>av</strong> en eller flere<br />
barneTLE'er, og hver barneTLE har et stablende nivå <strong>av</strong> én mindre enn det<br />
stablende nivået i forelderTLE'en eller topologi-liste enden.<br />
Hvis en TLE er en CPU-type TLE, er innholdet en eller flere CPU'er, som<br />
identifisert <strong>av</strong> andre felt <strong>av</strong> en CPU TLE.<br />
Når den første TLE på et stablende nivå er en CPU oppføring, har det maksimale<br />
stablende nivå 0 blitt nådd.<br />
Programmeringsnotater:<br />
En mulig undersøkelsesprosess med en topologiliste er beskrevet. Før en<br />
undersøkelse <strong>av</strong> en topologi liste er begynt, er den nåværende-TLE pekeren<br />
initialisert til å referere til den første eller øverste TLE i topologilisten, er den<br />
tidligere-TLE pekeren initialisert til null, og deretter er TLE'er undersøkt i en topp-<br />
til- bunn rekkefølge.<br />
I det en topologi-liste undersøkelsen skrider frem, er den nåværende-TLE pekeren<br />
inkrementert ved å øke den nåværende-TLE pekeren med størrelsen på den<br />
nåværende TLE til hvilke den peker. En beholder-type TLE er inkrementert ved å<br />
legge åtte til den nåværende-TLE pekeren. En CPU-type TLE er inkrementert ved å<br />
legge seksten til den nåværende-TLE pekeren. Prosessen med å inkrementere den
5<br />
10<br />
15<br />
20<br />
25<br />
30<br />
35<br />
38<br />
nåværende-TLE pekeren inkluderer lagre dens verdi som før-TLE peker rett før den<br />
økes. TLE undersøkelse er ikke utført hvis topologilisten ikke har noen TLE'er.<br />
Eksamineringsprosessen er skissert i følgende trinn:<br />
1. Hvis det gjeldende-TLE stablende nivået er null, og den tidligere-TLE stablende<br />
nivået er null eller en, representerer nåværende TLE den første CPU-type TLE <strong>av</strong> en<br />
gruppe <strong>av</strong> en eller flere CPU-type TLE'er. Programmet skal utføre nødvendige tiltak<br />
hensiktsmessige for når en ny gruppe <strong>av</strong> en eller flere CPU'er er først observert. Gå<br />
til trinn 5.<br />
2. Hvis den nåværende-TLE stablende nivået er null, og den tidligere-TLE stablende<br />
nivået er null, representerer den nåværende TLE'en en senere CPU-type TLE <strong>av</strong> en<br />
gruppe CPU-type TLE'er som representerer søsken <strong>av</strong> CPU'er tidligere observert i<br />
trinn 1 eller 2. Programmet som skal utføre nødvendige tiltak er hensiktsmessig for<br />
når størrelsen <strong>av</strong> en eksisterende søskengruppe <strong>av</strong> en eller flere CPU'er er økt. Gå<br />
til trinn 5.<br />
3. Hvis det nåværende-TLE stablende nivået ikke er null, og det tidligere-TLE<br />
stablende nivået er null, representerer forutgående TLE en siste eller bare CPU-type<br />
TLE <strong>av</strong> en gruppe <strong>av</strong> en eller flere CPU-type TLE'er. Programmet som skal utføre<br />
nødvendige tiltak er hensiktsmessig for når en eksisterende gruppe <strong>av</strong> en eller flere<br />
CPU'er er fullført. Gå til trinn 5.<br />
4. Gå til trinn 5.<br />
Ved eliminasjon, ville dette være tilfelle der det aktuelle-TLE stablende nivået ikke<br />
er null, og den tidligere-TLE stablende nivået ikke er null. Hvis det nåværende-TLE<br />
stablende nivået er l<strong>av</strong>ere enn det tidligere-TLE stablende nivå, er retningen <strong>av</strong><br />
topologilisten tr<strong>av</strong>ersering mot en CPU-type TLE. Hvis det nåværende-TLE stablende<br />
nivået er større enn det tidligere-TLE stablende nivået, er retningen <strong>av</strong> topologi-<br />
liste tr<strong>av</strong>erseringen vekk fra en CPU-type TLE. Beholder-type TLE'er blir krysset<br />
som fører til enten (1) en annen gruppe <strong>av</strong> CPU-type TLE'er som er en egen gruppe<br />
i den totale topologien, eller (2) på slutten <strong>av</strong> topologilisten. I begge tilfeller er<br />
ingen spesiell behandling nødvendig utover å <strong>av</strong>ansere til stable TLE.<br />
5. Videre til stable TLE posisjon basert på typen <strong>av</strong> nåværende TLE. Hvis den<br />
<strong>av</strong>anserte nåværende-TLE pekeren tilsvarer slutten <strong>av</strong> topologi listen:
5<br />
10<br />
15<br />
20<br />
25<br />
30<br />
35<br />
39<br />
a. Ingen flere TLE'er <strong>av</strong> enhver type eksisterer.<br />
b. Dersom det tidligere-TLE stablende nivået er null, bør programmet<br />
utføre nødvendige tiltak være hensiktsmessig for når en eksisterende<br />
gruppe <strong>av</strong> en eller flere CPU'er er fullført.<br />
c. Eksamineringen er fullført.<br />
Ellers går du til trinn 1.<br />
I et eksempel på en implementering, FIG. 16, består et datasystem <strong>av</strong> to fysiske<br />
rammer (Ramme 1 og Ramme 2). Hver ramme inneholder to logikk boards (Board<br />
1 og Board 2), hovedlageret (Memory) og I / O-adaptere (I / O Kanal 1 og I / O<br />
Kanal 2) for å kommunisere med eksterne enheter og nettverk. Hvert board<br />
inneholder to multi-chip moduler (1 Mod, 2 Mod, type 3 og type 4). Hver multi-chip<br />
modul inneholder to prosessorer (CPU1, CPU2, CPU3, CPU4, CPU5, CPU6 CPU7 og<br />
CPU8). Hver modul inneholder også en nivå-2 Cache (Cache 1, Cache 2, Cache 3 og<br />
Cache 4). Hver prosessor (Central Processing Unit eller CPU), inkluderer en nivå-1<br />
Cache og <strong>Oversettelse</strong>-Lookaside-Buffer (TLB). TLB bufferets Addresse Translation<br />
informasjon under dynamisk adresse oversettelse.<br />
I henhold til oppfinnelsen, FIG. 17, 18 og 19 er komponentene i datasystemet til-<br />
delt til "beholdere" i henhold til nærhet. Hver modul er tildelt til innerste beholder<br />
6, 7, 8 og 9 i det CPU’er til hver modul finnes i den innerste nærhet til hverandre.<br />
Siden modulene er pakket på brett, er modulene i de respektive brettene tildelt til<br />
stable nivå beholdere 4 og 5. Den stable høyere nærhetsgrupperingen er rammen.<br />
Brettene til en ramme er lagt til en beholder som representerer rammen (beholdere<br />
2 og 3). Hele systemet er representert ved beholder 1.<br />
Det kan sees at to CPU’er på samme modul som CPU1 og CPU2 er i nærmest topo-<br />
logiskeforhold eller <strong>av</strong>stand til hverandre og at begge befinner seg i en beholder<br />
(beholder 6) og ingen beholder grense er krysset når bare de CPU’er er involvert.<br />
Men hvis CPU1 og CPU8 er involvert, er 4 beholder grenser krysset. CPU1 i behol-<br />
der 6 er separert <strong>av</strong> fire beholdere, 5 og 9 fra CPU8. Derfor ved å vite beholder-<br />
strukturen, kan en bruker få en oversikt over topologien til systemet.<br />
Selvfølgelig, i et logisk partisjonert system, kan CPU’er deles mellom operativsys-<br />
temer som tidligere diskutert. Derfor, hvis en logisk partisjon ble tildelt tre logiske<br />
prosessorer, hver logiske CPU tildelt 20% <strong>av</strong> hver <strong>av</strong> de tre virkelige CPU’ene, ville<br />
partisjonen virke best hvis 3 ekte CPU’er var innerste nærhet til hverandre som<br />
kommunikasjon mellom CPU og CPU-ressurser (cache og minne for eksempel) ville
5<br />
10<br />
15<br />
20<br />
25<br />
40<br />
virke best. I vårt eksempel, ville CPU1 og CPU2 i en partisjon oppleve mindre tres-<br />
king <strong>av</strong> cache linjer i Cache 1 enn hvis de to CPU’ene var CPU1 og CPU8.<br />
I eksemplet er en partisjon skapt inkludert CPU1, CPU2 og CPU3. Et program som<br />
opererer i partisjonen utsteder en STSI instruksjon og en SYSIB 15.1.2 (fig. 10)<br />
tabell returneres til programmet. I dette tilfellet omfatter partisjon en <strong>av</strong> beholder 6<br />
og beholder 7 og dermed er det to nivåer <strong>av</strong> stabler. SYSIB tabellverdiene er:<br />
MNest feltet er satt til 4, indikerende at topologien inneholder 4 stablingsnivåer,<br />
som er en absolutt maksimal stabel for modellen, og kan eller kan ikke være fullt<br />
utnyttet på hvilke som helst vilkårlige topologiliste, <strong>av</strong>hengig <strong>av</strong> ressurstildeling til<br />
gjestekonfigurasjon utstedelse STSI, og hvordan ressurser tildeles til andre gjeste-<br />
konfigurasjoner <strong>av</strong> systemet.<br />
Mag1 feltet er satt til 2 indikerer at 2 CPU’er er tilgjengelig på det mest primitive<br />
første nivået.<br />
Mag2 feltet er satt til 2 indikerer at 2 andrenivå (Modul) beholdere er tilgjengelig.<br />
Mag3 feltet er satt til 2 indikerer 2 tredjenivåer (Boards) er tilgjengelig.<br />
Mag4 feltet er satt til 2 indikerer 2 fjerdenivåer (Frames) er tilgjengelig.<br />
I vårt eksempel er de tre prosessorer som finnes i to moduler på samme bord, der-<br />
for følgende fire TLE oppføringer følger:<br />
1. NL = 1; CtnrID = 1 (beholder 6)<br />
2. NL = 0; CPU type = 1 (type CPU); CPU Addr Origin = 0; CPU Mask 0. . . 11<br />
(CPU1 og CPU2 <strong>av</strong> adressert CPU)<br />
3. NL = 1; CtnrID = 2 (beholder 7)<br />
4. NL = 0; CPU type = 1 (<strong>av</strong> type CPU-tallet); CPU Addr Origin = 4; CPU Mask 0. . .<br />
10 (CPU3 <strong>av</strong> adressert CPU)<br />
Dermed har programmet en representasjon <strong>av</strong> den fysiske topologien basert på<br />
beholderen og CPU TLE’er er returnert.<br />
Utfør Topologi Funksjon (PTF)
5<br />
10<br />
15<br />
20<br />
25<br />
41<br />
Med henvisning til FIG. 13, består en Utfør Topologi Function (PTF) instruksjon fort-<br />
rinnsvis <strong>av</strong> en opcode og et registerfelt R1 som identifiserer en første operand. Inn-<br />
holdet i det generelle registeret identifisert <strong>av</strong> R1 spesifiserer en funksjonskode i bit<br />
posisjoner 56-63, som vist i FIG. 14.<br />
Den definerte funksjonskodene er som følger:<br />
FC Betydning<br />
0 Forespørre om horisontal polarisering.<br />
1 Forespørre om vertikal polarisering.<br />
2 Sjekk topologi-endrings status.<br />
Udefinert funksjonskoder i størrelsesorden 0-255 er reservert for fremtidige utvi-<br />
delser.<br />
Ved ferdigstillelse hvis tilstandskoden 2 er satt, er en grunnkode lagret i bit posi-<br />
sjoner 48-55 til det generelle registeret R1. Bits 16-23 og 28-31 <strong>av</strong> instruksjonen<br />
blir oversett.<br />
Drift <strong>av</strong> funksjonskode 0:<br />
Kjøretid fullfører med betingelseskode for enkelte <strong>av</strong> følgende årsaker og (grunn-<br />
koder):<br />
Ingen grunn spesifisert (0).<br />
Den anmodende konfigurasjonen er allerede horisontalt polarisert (1).<br />
En topologi endringen er allerede i prosess (2).<br />
Ellers er en prosess i gang for å plassere alle CPU’er i konfigurasjonen inn i horison-<br />
tale polarisasjon.<br />
Gjennomføringen <strong>av</strong> prosessen er asynkron med hensyn til gjennomføringen <strong>av</strong><br />
instruksjonen og kan ellers ikke være fullført når gjennomføring <strong>av</strong> instruksjonen er<br />
ferdig.<br />
Resulterende Tilstandskode:<br />
0 Topologi-forandring er initiert<br />
1 -<br />
2 forespørsel <strong>av</strong>vist
5<br />
10<br />
15<br />
20<br />
25<br />
3 -<br />
Drift <strong>av</strong> Funksjonskode 1:<br />
42<br />
Kjøretid fullfører med betingelseskode 2 for noen <strong>av</strong> følgende årsaker og (grunn-<br />
koder):<br />
Ingen grunn spesifisert (0).<br />
Den anmodende konfigurasjonen er allerede vertikalt polarisert (1).<br />
En topologi endringen er allerede i prosess (2).<br />
Ellers er en prosess i gang for å plassere alle CPU’er i konfigurasjonen i vertikal<br />
polarisering. Gjennomføring <strong>av</strong> prosessen er asynkron med hensyn til gjennomfø-<br />
ring <strong>av</strong> instruksjonen og kan eller kan ikke være fullført når gjennomføring <strong>av</strong> in-<br />
struksjonen er ferdig.<br />
Resulterende Tilstandskode:<br />
0 Topologiforandring initiert<br />
1 -<br />
2 Forespørsel <strong>av</strong>vist<br />
3 -<br />
Drift <strong>av</strong> funksjonskode 2: topologiforandringsrapportpåventetilstand er sjekket, og<br />
instruksjonen fullføres med tilstandskodesettet.<br />
Resulterende Tilstandskode:<br />
0 Topologiforandringsrapporten ikke i påvente <strong>av</strong> topologi<br />
1 endring rapport i påvente<br />
2 -<br />
3 -<br />
En topologi forandring er enhver endring slik at innholdet i en SYSIB 15.1.2 ville<br />
være forskjellig fra innholdet i SYSIB 15.1.2 før topologi forandringen.<br />
En topologiforandringsrapportpåventetilstand skapes når en topologi-<br />
forandringsprosess fullføres. En topologiforandringsrapportpåventetilstand er klarert<br />
for konfigurasjonen når noen <strong>av</strong> de følgende er utført:
5<br />
10<br />
15<br />
20<br />
25<br />
30<br />
Gjennomføring <strong>av</strong> Utfør Topologi Funksjon angir funksjons-kode 2 som fullfører<br />
med tilstandskode 1.<br />
43<br />
STORE SYSTEM INFORMATION for SYSIB 15.1.2 er vellykket utført <strong>av</strong> hvilken som<br />
helst CPU i konfigurasjonen.<br />
Undersystemtilbakestilling utføres.<br />
Spesielle betingelser:<br />
Hvis bit posisjonene 0-55 til det generelle registeret R1 er ikke nuller, er et spesifi-<br />
kasjonsunntak anerkjent. Hvis en udefinert funksjonskode er angitt, er et spesifika-<br />
sjonsunntak anerkjent.<br />
Program Unntak:<br />
Operasjon (Konfigurasjonstopologianlegget er ikke installert)<br />
Privilegert drift<br />
Spesifikasjon<br />
Et eksempel på et stormaskinmiljø:<br />
I det en high end server arkitekturer øker antallet fysiske prosessorer og proses-<br />
sorhastigheter fortsette å forbedres, fortsetter prosessor "stabler" som trengs for å<br />
bygge store maskiner til å være laget <strong>av</strong> små byggeklosser som er mer nodale i<br />
natur. For eksempel, mens L2 cache på en z990 eller Z9 maskinen er helt cache-<br />
sammenhengende, har fullt befolkede modeller faktisk fire (4) separate L2’er som<br />
er koblet sammen med et stoff for å presentere utseendet <strong>av</strong> en enkelt L2 cache.<br />
Straffen for å gå «off node» for å løse en cacheglipp fortsetter å øke. For eksempel<br />
å løse en L1 glipp i en ekstern L2 er dyrere enn å løse det i den lokal L2. Glipp i en<br />
CP’s private, vanligvis på chip, L1 cache er dyrt til å begynne med og å måtte gå<br />
hele veien ut til minne kan virke som en evighet. Økningen i hastighet på minnet<br />
og forbindelser til det er ikke å holde tritt med økningen i prosessorhastighet. Mens<br />
man kanskje ønsker å prøve å pakke alt tettere sammen "på chip" eller lignende,<br />
stride strømforbruk og kjølingsproblemstillinger mot dette.<br />
Med introduksjonen <strong>av</strong> z990, ble LPAR oppmerksom på maskintopologi og begynte<br />
å optimalisere fordelingen <strong>av</strong> logisk partisjons CP og lagringsressurser til de fysiske<br />
ressursene. Forbedringer <strong>av</strong> mulighetene for dynamisk re-optimalisering <strong>av</strong> logisk<br />
partisjonsressurstildelingene ble innført med Z9 GA-en primært til støtte for samti-<br />
dige bok reparasjon.
5<br />
10<br />
15<br />
20<br />
25<br />
30<br />
Den nye støtten diskutert her adresser den virkelige starten på å ha zSeries OS<br />
programvaren klar over topologien <strong>av</strong> maskinen, presentert som en logisk parti-<br />
44<br />
sjonstopologi, for å deretter gi slektskapsutsending med hensyn til CPU-plassering i<br />
CEC bokstruktur.<br />
Du kan tenke på den måten zSeries LPAR forvalter felles logiske partisjoner i dag<br />
som horisontalt polarisert. Det vil si, prosesseringsvekten for den logiske partisjo-<br />
nen er likt fordelt mellom alle online logiske CP’er i den logiske partisjonen. Denne<br />
støtten introduserer en ny, valgfri form for polarisering for å administrere delte lo-<br />
gisk CP’er <strong>av</strong> en logisk partisjon som kalles vertikal polarisering.<br />
Når en logisk partisjon velger å kjøre i vertikal modus, sender programvaren en ny<br />
instruks for å informere zSeries hypervisor om dette og hypervisoren vil endre<br />
hvordan den sender den logiske partisjonen.<br />
Avhengig <strong>av</strong> konfigurasjonen <strong>av</strong> den vertikale logisk partisjon, ville logiske proses-<br />
sorer ha høy, middels eller l<strong>av</strong> polaritet. Polaritet beskriver mengden <strong>av</strong> fysisk pro-<br />
sessordeling som vertikale logiske prosessorer har kr<strong>av</strong> på. Kunder definerer vekter<br />
for logiske partisjoner som effektivt definerer mengden fysisk prosessorsykluser<br />
hver logisk partisjon på en maskin er berettiget til.<br />
Polaritet er målt ved forholdet mellom en logisk partisjons nåværende vekt på an-<br />
tallet logiske prosessorer konfigurert til den logiske partisjonen. Høy polaritetspro-<br />
sessorer har nær 100 % CPU andel. Medium polaritetsprosessorer har> 0 til 99 %<br />
andel og l<strong>av</strong> polaritet prosessorer har 0 % andel (eller svært nær det). Høy polari-<br />
tet logisk CP vil bli tildelt en fysisk prosessor til å kjøre på svært lik dedikerte CP,<br />
men den delte høye polaritets CP kan fortsatt gi opp den fysiske ressurs og la andre<br />
delte CP’er å bruke sine overflødige sykluser. Nøkkelen her blir da at programvaren<br />
ser logisk topologi og prøver å utnytte de svært polariserte logiske CP’er for sine<br />
arbeidskøer. For eksempel konfigurerer en kunde en tre-veis-prosessor med to lo-<br />
giske partisjoner, hver med to logiske prosessorer og hver med en vekt på 50. Hvis<br />
den første logiske partisjon definert seg som vertikal, ville det ha 1 høy og 1 mid-<br />
dels polaritetslogisk CP.<br />
Merk at når en logisk partisjon velger å kjøre i vertikal modus, går hele den logiske<br />
partisjonen i vertikal modus. Dette inkluderer alle sine sekundære prosessorer som<br />
zAAPs (IFAs) og / eller zIIPs. Det er kundens ansvar å definere vekter til alle pro-
5<br />
10<br />
15<br />
20<br />
25<br />
30<br />
sessortypene for disse logiske partisjonene som vil oppnå det ønskede nivået <strong>av</strong><br />
vertikale prosessering for hver type.<br />
Logisk partisjonstopologistøtte<br />
45<br />
! Etablere infrastruktur for en logisk partisjonsnodal topologi.<br />
! Gjør eventuelle endringer som trengs til LPAR’s nodal oppdragsalgoritmer for<br />
eksisterende horisontale partisjoner som trengs for å gi en gyldig topologi.<br />
! Gi instruksjonssimulering for den nye konfigurasjonstopologiinformasjons-<br />
blokken for den STORE SYSTEM INFORMATION (STSI) instruksen om å gi<br />
logisk partisjon nodal topologi til den logiske partisjonen.<br />
! Undersøk endringer i fysiske eller logiske konfigureringer for å <strong>av</strong>gjøre om<br />
en topologi endring er nødvendig. Disse kan skje når:<br />
o En fysisk CP er lagt til eller fjernet fra konfigurasjonen<br />
o En logisk CP er lagt til eller fjernet fra konfigurasjonen<br />
o En logisk partisjon er aktivert<br />
o En logisk partisjon er deaktivert<br />
o Den logiske partisjonsvekten er endret fra HMC / SE<br />
o Programvareinitiering <strong>av</strong> endringer en logisk partisjons vekt.<br />
o En logisk partisjon er tilbakestilt (bytte til horisontal).<br />
o En logisk partisjon bytter til ESA/390 modus (bytte til horisontal).<br />
Algoritmer til miljøet:<br />
En topologi må tilordnes en logisk partisjon når det først aktiveres og deretter<br />
eventuelle endringer i nodal topologi tilordnet en logisk partisjon må resultere i at<br />
den logiske partisjonen blir varslet. Resultatene <strong>av</strong> nodal topologi må holdes på en<br />
beleilig ny datastruktur for å tillate enklere spørringer ved den nye STSI behandling<br />
samt begrense behandlingen best mulig når konfigurasjonen gjør endringer. Denne<br />
nye strukturen gjør det også mulig for topologiendringsprosessen fullføres i flere<br />
trinn med den nødvendige serialisering for hvert trinn uten å innføre inkonsekvent<br />
utsikt over topologien til den logiske partisjonen.<br />
Topologi tildeling<br />
Hvordan den logiske topologien er valgt, er ikke viktig for denne utlevering. Det er<br />
nok å si at en <strong>av</strong>gjørelse må være laget <strong>av</strong> hvor mange <strong>av</strong> hver type logiske pro-<br />
sessorer som er nødvendige og hvilke noder eller bøker de trenger å bli tildelt. For
5<br />
10<br />
15<br />
20<br />
25<br />
30<br />
46<br />
en vertikal modus partisjon, betyr dette at antallet <strong>av</strong> vertikale høye, vertikale me-<br />
dium, og vertikale l<strong>av</strong> prosessorer for hver prosessor type.<br />
Tilordne Polariseringsverdier til logiske CP’er<br />
Når ovennevnte teller er bestemt, er polariseringsoppdraget laget fra l<strong>av</strong>est online<br />
logisk CP-adresse for CP typen til høyeste i rekkefølgen <strong>av</strong> (1) alle vertikale høye,<br />
(2) alle vertikale medium, og (3) alle vertikale l<strong>av</strong>e. I hvilken rekkefølge dette er<br />
gjort er vilkårlig og andre ordre <strong>av</strong> utvalget er mulig.<br />
"STORE SYSTEM INFORMATION" Instruksjonsmappinger<br />
Legg til 3 strukturer for å kartlegge 15.1.2 respons:<br />
1. Kartlegging for 15.1.2 STSI, Respons Blokk Kartlegging <strong>av</strong> Topologi<br />
DCL 1 syibk15<strong>12</strong> char (4096) based (*),<br />
3 * char (2),<br />
3 syibk15<strong>12</strong>_length fast (16), lengde<br />
3 syibk15<strong>12</strong>_mag6 fast (8), 6thlevel stabel<br />
3 syibk15<strong>12</strong>_mag5 fast (8), 5.<br />
3 syibk15<strong>12</strong>_mag4 fast (8), 4.<br />
3 syibk15<strong>12</strong>_mag3 fast (8), 3.<br />
3 syibk15<strong>12</strong>_mag2 fast (8), 2., noder<br />
3 syibk15<strong>12</strong>_mag1 fast (8), 1., CPU’er<br />
3 * char (1),<br />
3 syibk15<strong>12</strong>_mstabl fast (8), stabling nivå<br />
3 * char (4),<br />
3 syibk15<strong>12</strong>_topology_list char (0); topologi liste<br />
2. Mapping for en Beholder-Type TLE for STSI 15.1.2<br />
DCL 1 syibk_vcm_beholder char (8) basert (*),<br />
3 syibknl fast (8), stabling nivå<br />
3 * char (3),<br />
3 * char (1),<br />
3 * char (2),<br />
3 syibk_beholder_id fast (8); node id
5<br />
10<br />
15<br />
20<br />
25<br />
30<br />
47<br />
3. Mapping for en CPU-type TLE for STSI 15.1.2<br />
DCL 1 syibk_vcm_cpu char (16) basert (*),<br />
TOPBK-partisjonstopologi<br />
3 syibknl2 fast (8), stabling nivå<br />
3 * char (3),<br />
3 syibk_ded_polarization bit (8), VCM byte<br />
5 * bit (5),<br />
5 syibk_dedicated bit (1), dedikert bit<br />
5 syibk_polarization bit (2), polarisasjon biter<br />
3 syibk_cputype fast (8), CPU typen<br />
3 syibk_cpuaddrorg fast (16), adresse opprinnelse<br />
3 syibk_cpumask bit (64); CPU-maskeoppføring<br />
En oppsummering <strong>av</strong> en logisk partisjons topologi holdes oppdatert i denne blokken<br />
<strong>av</strong> nodaloppdragsrutiner. Dataene i denne blokken er ordnet på en slik måte at<br />
STSI behandling kan gjøre én gang <strong>av</strong> hele strukturen for å skape den logiske par-<br />
tisjonstopologiresponsen på programmet, bevare anordningen og separering <strong>av</strong><br />
CPU oppføringer som kreves <strong>av</strong> arkitektur.<br />
Det består <strong>av</strong> en 3 dimensjonal matrise (node, CP type, polarisasjonsklassifisering)<br />
med en 64-bits CPU maske per oppføring.<br />
Et andre arbeidsområde, TOP_WORKING, er inkludert for bruk i oppdateringen <strong>av</strong><br />
topologien.<br />
DECLARE<br />
1 TOPBK BASERT BDY (DWORD),<br />
* /<br />
* /<br />
3 TOP_CURRENT,<br />
5 TOPCPUMASK (1: MAXNODE, / * Hver 1-4 noder<br />
0: CPUTMAX, / * CP type index<br />
0:3) / * 4 mulige topologi klassifiseringer når logisk partisjon er vertikal.<br />
Det er bare 2 klassifiseringer når partisjon er horisontal.<br />
* /
5<br />
10<br />
15<br />
20<br />
25<br />
30<br />
sering.<br />
* /<br />
48<br />
BIT (64), / * Mask <strong>av</strong> de logiske prosessorer som faller inn i denne klassifi-<br />
3 TOP_WORKING CHAR (LENGDE (TOP_CURRENT)); / * Arbeid område for byg-<br />
ging <strong>av</strong> ny topologi<br />
* /<br />
TO3PO-partisjonstopologioversettelse<br />
Disse "konstante" oversettelsestabeller brukes <strong>av</strong> nodal oppdragsrutiner som byg-<br />
ger topologien (kartlagt <strong>av</strong> TOPBK) og STSI foredling som leser topologi.<br />
/****************************/<br />
/ * STSI translation arrays: * /<br />
/****************************/<br />
DECLARE<br />
1 TOPVERT (00:03) BIT (8) / * For vertikale skillevegger, oversetter klassifisering<br />
index over for å det bygd for D (engasjement) og PP (Polarisasjon) verdier som skal<br />
returneres for denne gruppen <strong>av</strong> KP i STSI data<br />
* /<br />
STATISK INIT ('00000 'b'1'bPPVH, / * Klassifisering 0: Dedikerte Vertikal høy * /<br />
‘00000'b'0'bPPVH, / * Klassifisering 1: Delt Vertikal høy * /<br />
‘00000'b'0'bPPVM, / * Klassifisering 2: Delt Vertikal Medium * /<br />
'00000 'B'0'bPPVL), / * Klassifisering 3: Delt Vertikal L<strong>av</strong> * /<br />
3 * BIT (5), / * Ubrukt, må byte justering for bit arrays * /<br />
3 TOPDPP BIT (3), / * Faktisk D, PP verdier til bruk * /<br />
1 TOPHOR (00:01) BIT (8) / * For horisontal partisjoner, oversetter klassifisering<br />
index over for å det bygd for D (engasjement) og PP (Polarisasjon) verdier som<br />
skal returneres for denne gruppen <strong>av</strong> KP i STSI data. Merk bare de to første klassi-<br />
fikasjoner kan brukes til en horisontal deling.<br />
* /<br />
STATISK INIT ('00000 'b'1'bPPH, / * Klassifisering 0: Dedikerte Horisontal * /<br />
'00000 'B'0'bPPH), / * Klassifisering 1: Delt Horisontal * /<br />
3 * BIT (5), / * Ubrukt, må byte justering for bit arrays * /<br />
3 TOPDPP BIT (3), / * Faktisk D, PP verdier til bruk * /<br />
/*************************/
5<br />
10<br />
15<br />
20<br />
25<br />
30<br />
/ * NDI oversettelse array * /<br />
/*************************/<br />
49<br />
1 TOPDPP2CLASS (00:07) Fast / * Brukes <strong>av</strong> nodal oppdragsrutiner for å opprette<br />
topologi informasjon. LPDPP brukes som en indeks inn i denne matrisen til å <strong>av</strong>gjø-<br />
re hvilken klassifiseringsindeksere logisk CP bør bruke. Denne ene matrisen er bru-<br />
ket både for horisontale og vertikale partisjoner * /<br />
STATISK INIT (1, / * Delt, horisontal * /<br />
3, / * Delt, vertikal l<strong>av</strong> * /<br />
2, / * Delt, vertikale medium * /<br />
1, / * Delt, vertikal høy * /<br />
0, / * Dedikert, horisontal * /<br />
0, / * Ikke aktuelt * /<br />
0, / * Ikke aktuelt * /<br />
0), / * Dedikerte, vertikal høy * /<br />
3 * CHAR (4); / * Force å være ikke-enkle element * /<br />
Logisk Prosessorblokk:<br />
En 2 bit koding <strong>av</strong> partisjonspolariseringen kan spores for hver logiske prosessor for<br />
å gjenspeile sin polarisering. Gruppering <strong>av</strong> dette med en 1-bit indikasjon på enga-<br />
sjement gir et komplett polaritetsbilde for en logisk prosessor i 3-bits:<br />
. . .<br />
3 LPDPP BIT (3), / * Polarisering, herunder engasjement * /<br />
4 LPDED BIT (1), / *= 1, er logisk CP dedikert * /<br />
4 LPPP BIT (2), / * Prosessor Polarisering * /<br />
. . .<br />
/ * Kodinger for Prosessor Polarisering * /<br />
PPH BIT (2) KONSTANT ('00 'B), / * horisontalt polarisert * /<br />
PPVL BIT (2) KONSTANT ('01 'B), / * vertikalt polarisert-L<strong>av</strong> * /<br />
PPVM BIT (2) KONSTANT ('10 'B), / * vertikalt polarisert-Medium * /<br />
PPVH BIT (2) KONSTANT ('11 'B), / * vertikalt polarisert-High * /<br />
Oppdater topologiblokk<br />
rensk lokal kopi <strong>av</strong> CPU topologi maske<br />
DO for hver logisk CP i den logiske målpartisjonen
5<br />
10<br />
15<br />
20<br />
25<br />
HVIS den logiske CP er online THEN<br />
DO<br />
50<br />
Polaritets index = Polaritets index hensiktsmessig for den logiske CP polariserings-<br />
verdi i henhold til de oversatte polariseringsverdier til polaritetsindex matrisen<br />
Lokal kopi <strong>av</strong> CPU topologi maske (CPU_address, node, CPtype, Polaritet index) =<br />
ON END<br />
END<br />
IF ny topologi blokk NOT = nåværende topologi blokk for partisjon THEN<br />
Set topologiendrerapport bit og kopiere den nye topologien til nåværende.<br />
Instruksjon simulering STSI 15.1.2<br />
Innen syibk kartlegginger for STSI 15.1.2 respons blokk, har en beholder-type TLE,<br />
og en CPU-type TLE blitt lagt til. Hovedsaklig, dataene må returneres i beholder (e)<br />
med oppføringen på det l<strong>av</strong>este nivået som er en CPU-type TLE. Man kan tenke på<br />
dette som en rekke matriser basert på hvordan den logiske partisjonsressursen har<br />
blitt delt eller tildelt. For den foretrukne utførelsesformen, er hver beholder hoved-<br />
saklig en node med et stablende nivå 1 og inkluderer CPU type TLE (S) som hver<br />
har et stablings nivå <strong>av</strong> 0. CPU TLE’er er sortert etter CPU type etterfulgt <strong>av</strong> klassi-<br />
fiseringen deres. Vertikal partisjoner har fire klassifiseringer (vertikal dedikert, ver-<br />
tikal høy delt, vertikale medium delt, og vertikale l<strong>av</strong> delt) og horisontale partisjo-<br />
ner har to klassifikasjoner (dedikert og delt).<br />
Følgende trinn illustrerer et brukt tilfelle for hvordan en STSI 15.1.2 håndteres etter<br />
at alle åpne sjekker har validert instruksjonsinput.<br />
For den nåværende inkarnasjonen er en maks på 4 noder og 64 prosessorer antatt.<br />
Start skanning <strong>av</strong> topbk, og i en lokal variabel kalt current_node_value oppretthol-<br />
der verdien <strong>av</strong> nodeindexen vi nå erpå. Grunnen til at vi trenger dette er fordi hvis<br />
alle de 64 bit maskene innen en node er null, trenger vi ikke å skape en beholder-<br />
type TLE for den noden.
5<br />
10<br />
15<br />
20<br />
25<br />
51<br />
Når den første ikke-null oppføringen er funnet innenfor en node, opprettes først en<br />
beholder-type TLE oppføring for den noden. Innenfor beholder TLE oppføring, er<br />
stablede verdien 1, etterfulgt <strong>av</strong> 48 reserverte biter. De siste bitene er Node-ID<br />
som er den indeksen i topbk <strong>av</strong> dagens node vi behandler. Når du har opprettet<br />
beholder-type TLE, opprette en CPU-type TLE for oppføringen med en ikke-null bit<br />
maske. Innenfor denne oppføringen er stablede nivå 0, etterfulgt <strong>av</strong> 24 reservert<br />
biter. De neste 8 bits inkluderer dedikerte bit og polariserings bit. Hvis partisjonen<br />
er vertikal, fyll inn polariseringen verdi og dedikert bit som følger:<br />
Klassifisering 0 i topbk er loddrett dedikert, lagre en 11 i PP og 1 i D<br />
Klassifisering 1 i topbk er loddrett høy delt, lagre en 11 i PP og 0 i D<br />
Klassifisering 2 i topbk er loddrett medium delt, 10 lagre i PP og 0 i D<br />
Klassifisering 3 i topbk er loddrett l<strong>av</strong> delt, lagre en 01 i PP og 0 i D<br />
For vannrett partisjoner, kun klassifikasjon 0 og 1 er gjeldende. Fyll inn dedikerte<br />
bit og polariseringsverdi som følger:<br />
Klassifisering 0 i topbk er horisontal dedikert, lagre en 00 i PP og 1 i D<br />
Klassifisering 1 i topbk er horisontalt delt, lagre en 00 i PP og 0 i D<br />
CPU Type, neste verdi som skal fylles i CPU-TLE er bare indeks over andre utvalg<br />
innen topcpumask i topbk. (0-GP, 2-IFA, 3-IFL, 4-ICF, 1 er for tiden ubrukt).<br />
1. Den neste verdi er CPU adressens opprinnelse. Denne verdien er eksplisitt<br />
lagret som 0 som 64 er maks antall CPU’er tilgjengelige i den gjeldende ut-<br />
førelsesformen.<br />
2. Den siste verdien i syibk_vcm_cpu er CPU maske, den ikke-null 64 bit<br />
masken lagret i den stablede matrisen <strong>av</strong> matriser topcpumask.<br />
3. For hver ikke-null maske etter den første ikke-null bit maske innen en<br />
node, lage en egen CPU-type TLE oppføringen og iterere gjennom denne<br />
prosessen for alle 4 noder.<br />
Flerprosessors-topologi-endrings-rapport (MTCR) påventer hvis konfigurasjons-<br />
topologi anlegget er installert og aktivert (ECB.7 er én), og SCA adressen for gjes-<br />
te-CPU er null, bitposisjonen 0 brukes til å huske topologi-endrings-rapporten-i på-
5<br />
52<br />
vente <strong>av</strong> betingelsen for konfigurasjonen. Tilbakestillingstilstanden <strong>av</strong> topologi end-<br />
ring-rapport-i påvente er null.<br />
Oppfinnelsen beskrevet her er ikke begrenset til topologien til prosessorer. Det kan<br />
bli verdsatt at den grunnleggende komponenten til oppfinnelsen kunne med fordel<br />
gjelde andre komponenter enn CPU’er, inkludert men ikke begrenset til co-<br />
prosessorer, Cacher, TLB’er, interne datastier, datastibuffere, distribuert minne og I<br />
/ O kommunikasjonsadaptere for eksempel.
5<br />
10<br />
15<br />
20<br />
25<br />
30<br />
P a t e n t k r a v<br />
53<br />
1. For et logisk partisjonert vertsmaskinsystem omfattende vertsprosessorer,<br />
en fremgangsmåte for å oppdage en topologi <strong>av</strong> en eller flere gjesteprosessorer til<br />
en gjestekonfigurasjon, metoden er<br />
k a r a k t e r i s e r t v e d at:<br />
en gjesteprosessor til en gjestekonfigurasjon henter (2001) en STORE SYSTEM IN-<br />
FORMATION instruksjon for utførelse, STORE SYSTEM INFORMATION instruksjonen<br />
definert for en datamaskin arkitektur og STORE SYSTEM INFORMATION instruksjo-<br />
nen spesifiserer en lokalisering i minnet <strong>av</strong> en topoligitabell; gjennomføring <strong>av</strong><br />
STORE SYSTEM INFORMATION instruksjonen omfatter:<br />
basert på en topologiinformasjonforespørsel fra STORE SYSTEM INFORMATION in-<br />
struksjonen, innhenting (2004) <strong>av</strong> topologi informasjon <strong>av</strong> en gjestekonfigurasjon,<br />
topoligiinformasjonen omfatter informasjon om den logiske grupperingen <strong>av</strong> pro-<br />
sessorer til gjestekonfigurasjonen i logiske beholdere i henhold til nærhet; lagring<br />
(2006) <strong>av</strong> topologiinformasjonen i konfigurasjonstopologitabellen; hvori konfigura-<br />
sjonstopologitabellen inkluderer en post <strong>av</strong> topologilisteprosessorer for et førstenivå<br />
til en hierarkisk gruppering <strong>av</strong> prosessorer som har liknende attributter; hvori pos-<br />
ten <strong>av</strong> topologilisteprosessorer videre omfatter en indikator som indikerer hvor de-<br />
dikert prosessorene til gruppen <strong>av</strong> prosessorer er til den logiske gjestepartisjons-<br />
konfigurasjonen; og hvori den hierarkiske grupperingen består <strong>av</strong> en eller flere ni-<br />
våer, og konfigurasjonstopologitabellen videre inkluderer en topologilistebeholder-<br />
post <strong>av</strong> hvert nivå større enn det første nivået, slik at topologilistebeholderposten<br />
blir brukt når vertsprosessorer til systemet er underindelt i likestilte grupper.<br />
2. Fremgangsmåte i henhold til kr<strong>av</strong> 1, hvori STORE SYSTEM INFORMATION<br />
instruksjonen omfatter et opcode felt, et baseregistrerefelt, et signert omrokke-<br />
ringsfelt, hvori topologioppdagelsesinstruksjonen videre består <strong>av</strong> e første under-<br />
forstått generelt register som inneholder et funksjonskodefelt og et selektor-1 felt<br />
og et andre underforstått generelt register som inneholder et selektor-2 felt, funk-<br />
sjonskodefeltet angir topologiforespørsel om informasjon, baseregisterfeltet og sig-<br />
nert omrokkeringsfelt identifiserer et sted i minnet <strong>av</strong> en systeminformasjonblokk<br />
(SYSIB) som inneholder konfigurasjonstopologibrett, hvor verdier <strong>av</strong> selektor-1<br />
feltet og selektor -2-feltet, i kombinasjon, bestemmer topologiforespørsel om in-<br />
formasjon som skal utføres.
5<br />
10<br />
3. Fremgangsmåte i henhold til kr<strong>av</strong> 1, hvori STORE SYSTEM INFORMATION<br />
54<br />
instruksjonen definert for datamaskinarkitekturen er hentet og utført <strong>av</strong> en sentral-<br />
enhet til en alternativ datamaskinarkitektur,<br />
hvori fremgangsmåten videre består <strong>av</strong> å tolke STORE SYSTEM INFORMATION in-<br />
struksjonen til å identifisere en forhåndsbestemt programvarerutine for emulere <strong>av</strong><br />
driften <strong>av</strong> STORE SYSTEM INFORMATION instruksjonen, og<br />
hvori gjennomføringen <strong>av</strong> STORE SYSTEM INFORMATION instruksjonen utgjør kjø-<br />
ring <strong>av</strong> forhåndsbestemt programvarerutine for å utføre trinnene i metoden for å<br />
gjennomføre STORE SYSTEM INFORMATION instruksjonen.<br />
4. System omfattende midler tilpasset for å utføre alle trinnene til fremgangs-<br />
måten i henhold til hvilke som helst <strong>av</strong> de foregående fremgangsmåtekr<strong>av</strong>ene<br />
5. Datamaskinprogram omfattende instruksjoner for å utføre alle trinnene til<br />
fremgangsmåten i henhold til hvilke som helst <strong>av</strong> de foregående fremgangsmåte-<br />
kr<strong>av</strong>ene, når nevnte datamaskinprogram er utført på et datamaskinsystem.
5<br />
10<br />
3. Fremgangsmåte i henhold til kr<strong>av</strong> 1, hvori STORE SYSTEM INFORMATION<br />
54<br />
instruksjonen definert for datamaskinarkitekturen er hentet og utført <strong>av</strong> en sentral-<br />
enhet til en alternativ datamaskinarkitektur,<br />
hvori fremgangsmåten videre består <strong>av</strong> å tolke STORE SYSTEM INFORMATION in-<br />
struksjonen til å identifisere en forhåndsbestemt programvarerutine for emulere <strong>av</strong><br />
driften <strong>av</strong> STORE SYSTEM INFORMATION instruksjonen, og<br />
hvori gjennomføringen <strong>av</strong> STORE SYSTEM INFORMATION instruksjonen utgjør kjø-<br />
ring <strong>av</strong> forhåndsbestemt programvarerutine for å utføre trinnene i metoden for å<br />
gjennomføre STORE SYSTEM INFORMATION instruksjonen.<br />
4. System omfattende midler tilpasset for å utføre alle trinnene til fremgangs-<br />
måten i henhold til hvilke som helst <strong>av</strong> de foregående fremgangsmåtekr<strong>av</strong>ene<br />
5. Datamaskinprogram omfattende instruksjoner for å utføre alle trinnene til<br />
fremgangsmåten i henhold til hvilke som helst <strong>av</strong> de foregående fremgangsmåte-<br />
kr<strong>av</strong>ene, når nevnte datamaskinprogram er utført på et datamaskinsystem.
5<br />
10<br />
3. Fremgangsmåte i henhold til kr<strong>av</strong> 1, hvori STORE SYSTEM INFORMATION<br />
54<br />
instruksjonen definert for datamaskinarkitekturen er hentet og utført <strong>av</strong> en sentral-<br />
enhet til en alternativ datamaskinarkitektur,<br />
hvori fremgangsmåten videre består <strong>av</strong> å tolke STORE SYSTEM INFORMATION in-<br />
struksjonen til å identifisere en forhåndsbestemt programvarerutine for emulere <strong>av</strong><br />
driften <strong>av</strong> STORE SYSTEM INFORMATION instruksjonen, og<br />
hvori gjennomføringen <strong>av</strong> STORE SYSTEM INFORMATION instruksjonen utgjør kjø-<br />
ring <strong>av</strong> forhåndsbestemt programvarerutine for å utføre trinnene i metoden for å<br />
gjennomføre STORE SYSTEM INFORMATION instruksjonen.<br />
4. System omfattende midler tilpasset for å utføre alle trinnene til fremgangs-<br />
måten i henhold til hvilke som helst <strong>av</strong> de foregående fremgangsmåtekr<strong>av</strong>ene<br />
5. Datamaskinprogram omfattende instruksjoner for å utføre alle trinnene til<br />
fremgangsmåten i henhold til hvilke som helst <strong>av</strong> de foregående fremgangsmåte-<br />
kr<strong>av</strong>ene, når nevnte datamaskinprogram er utført på et datamaskinsystem.
5<br />
10<br />
3. Fremgangsmåte i henhold til kr<strong>av</strong> 1, hvori STORE SYSTEM INFORMATION<br />
54<br />
instruksjonen definert for datamaskinarkitekturen er hentet og utført <strong>av</strong> en sentral-<br />
enhet til en alternativ datamaskinarkitektur,<br />
hvori fremgangsmåten videre består <strong>av</strong> å tolke STORE SYSTEM INFORMATION in-<br />
struksjonen til å identifisere en forhåndsbestemt programvarerutine for emulere <strong>av</strong><br />
driften <strong>av</strong> STORE SYSTEM INFORMATION instruksjonen, og<br />
hvori gjennomføringen <strong>av</strong> STORE SYSTEM INFORMATION instruksjonen utgjør kjø-<br />
ring <strong>av</strong> forhåndsbestemt programvarerutine for å utføre trinnene i metoden for å<br />
gjennomføre STORE SYSTEM INFORMATION instruksjonen.<br />
4. System omfattende midler tilpasset for å utføre alle trinnene til fremgangs-<br />
måten i henhold til hvilke som helst <strong>av</strong> de foregående fremgangsmåtekr<strong>av</strong>ene<br />
5. Datamaskinprogram omfattende instruksjoner for å utføre alle trinnene til<br />
fremgangsmåten i henhold til hvilke som helst <strong>av</strong> de foregående fremgangsmåte-<br />
kr<strong>av</strong>ene, når nevnte datamaskinprogram er utført på et datamaskinsystem.
5<br />
10<br />
3. Fremgangsmåte i henhold til kr<strong>av</strong> 1, hvori STORE SYSTEM INFORMATION<br />
54<br />
instruksjonen definert for datamaskinarkitekturen er hentet og utført <strong>av</strong> en sentral-<br />
enhet til en alternativ datamaskinarkitektur,<br />
hvori fremgangsmåten videre består <strong>av</strong> å tolke STORE SYSTEM INFORMATION in-<br />
struksjonen til å identifisere en forhåndsbestemt programvarerutine for emulere <strong>av</strong><br />
driften <strong>av</strong> STORE SYSTEM INFORMATION instruksjonen, og<br />
hvori gjennomføringen <strong>av</strong> STORE SYSTEM INFORMATION instruksjonen utgjør kjø-<br />
ring <strong>av</strong> forhåndsbestemt programvarerutine for å utføre trinnene i metoden for å<br />
gjennomføre STORE SYSTEM INFORMATION instruksjonen.<br />
4. System omfattende midler tilpasset for å utføre alle trinnene til fremgangs-<br />
måten i henhold til hvilke som helst <strong>av</strong> de foregående fremgangsmåtekr<strong>av</strong>ene<br />
5. Datamaskinprogram omfattende instruksjoner for å utføre alle trinnene til<br />
fremgangsmåten i henhold til hvilke som helst <strong>av</strong> de foregående fremgangsmåte-<br />
kr<strong>av</strong>ene, når nevnte datamaskinprogram er utført på et datamaskinsystem.
5<br />
10<br />
3. Fremgangsmåte i henhold til kr<strong>av</strong> 1, hvori STORE SYSTEM INFORMATION<br />
54<br />
instruksjonen definert for datamaskinarkitekturen er hentet og utført <strong>av</strong> en sentral-<br />
enhet til en alternativ datamaskinarkitektur,<br />
hvori fremgangsmåten videre består <strong>av</strong> å tolke STORE SYSTEM INFORMATION in-<br />
struksjonen til å identifisere en forhåndsbestemt programvarerutine for emulere <strong>av</strong><br />
driften <strong>av</strong> STORE SYSTEM INFORMATION instruksjonen, og<br />
hvori gjennomføringen <strong>av</strong> STORE SYSTEM INFORMATION instruksjonen utgjør kjø-<br />
ring <strong>av</strong> forhåndsbestemt programvarerutine for å utføre trinnene i metoden for å<br />
gjennomføre STORE SYSTEM INFORMATION instruksjonen.<br />
4. System omfattende midler tilpasset for å utføre alle trinnene til fremgangs-<br />
måten i henhold til hvilke som helst <strong>av</strong> de foregående fremgangsmåtekr<strong>av</strong>ene<br />
5. Datamaskinprogram omfattende instruksjoner for å utføre alle trinnene til<br />
fremgangsmåten i henhold til hvilke som helst <strong>av</strong> de foregående fremgangsmåte-<br />
kr<strong>av</strong>ene, når nevnte datamaskinprogram er utført på et datamaskinsystem.
5<br />
10<br />
3. Fremgangsmåte i henhold til kr<strong>av</strong> 1, hvori STORE SYSTEM INFORMATION<br />
54<br />
instruksjonen definert for datamaskinarkitekturen er hentet og utført <strong>av</strong> en sentral-<br />
enhet til en alternativ datamaskinarkitektur,<br />
hvori fremgangsmåten videre består <strong>av</strong> å tolke STORE SYSTEM INFORMATION in-<br />
struksjonen til å identifisere en forhåndsbestemt programvarerutine for emulere <strong>av</strong><br />
driften <strong>av</strong> STORE SYSTEM INFORMATION instruksjonen, og<br />
hvori gjennomføringen <strong>av</strong> STORE SYSTEM INFORMATION instruksjonen utgjør kjø-<br />
ring <strong>av</strong> forhåndsbestemt programvarerutine for å utføre trinnene i metoden for å<br />
gjennomføre STORE SYSTEM INFORMATION instruksjonen.<br />
4. System omfattende midler tilpasset for å utføre alle trinnene til fremgangs-<br />
måten i henhold til hvilke som helst <strong>av</strong> de foregående fremgangsmåtekr<strong>av</strong>ene<br />
5. Datamaskinprogram omfattende instruksjoner for å utføre alle trinnene til<br />
fremgangsmåten i henhold til hvilke som helst <strong>av</strong> de foregående fremgangsmåte-<br />
kr<strong>av</strong>ene, når nevnte datamaskinprogram er utført på et datamaskinsystem.
5<br />
10<br />
3. Fremgangsmåte i henhold til kr<strong>av</strong> 1, hvori STORE SYSTEM INFORMATION<br />
54<br />
instruksjonen definert for datamaskinarkitekturen er hentet og utført <strong>av</strong> en sentral-<br />
enhet til en alternativ datamaskinarkitektur,<br />
hvori fremgangsmåten videre består <strong>av</strong> å tolke STORE SYSTEM INFORMATION in-<br />
struksjonen til å identifisere en forhåndsbestemt programvarerutine for emulere <strong>av</strong><br />
driften <strong>av</strong> STORE SYSTEM INFORMATION instruksjonen, og<br />
hvori gjennomføringen <strong>av</strong> STORE SYSTEM INFORMATION instruksjonen utgjør kjø-<br />
ring <strong>av</strong> forhåndsbestemt programvarerutine for å utføre trinnene i metoden for å<br />
gjennomføre STORE SYSTEM INFORMATION instruksjonen.<br />
4. System omfattende midler tilpasset for å utføre alle trinnene til fremgangs-<br />
måten i henhold til hvilke som helst <strong>av</strong> de foregående fremgangsmåtekr<strong>av</strong>ene<br />
5. Datamaskinprogram omfattende instruksjoner for å utføre alle trinnene til<br />
fremgangsmåten i henhold til hvilke som helst <strong>av</strong> de foregående fremgangsmåte-<br />
kr<strong>av</strong>ene, når nevnte datamaskinprogram er utført på et datamaskinsystem.
5<br />
10<br />
3. Fremgangsmåte i henhold til kr<strong>av</strong> 1, hvori STORE SYSTEM INFORMATION<br />
54<br />
instruksjonen definert for datamaskinarkitekturen er hentet og utført <strong>av</strong> en sentral-<br />
enhet til en alternativ datamaskinarkitektur,<br />
hvori fremgangsmåten videre består <strong>av</strong> å tolke STORE SYSTEM INFORMATION in-<br />
struksjonen til å identifisere en forhåndsbestemt programvarerutine for emulere <strong>av</strong><br />
driften <strong>av</strong> STORE SYSTEM INFORMATION instruksjonen, og<br />
hvori gjennomføringen <strong>av</strong> STORE SYSTEM INFORMATION instruksjonen utgjør kjø-<br />
ring <strong>av</strong> forhåndsbestemt programvarerutine for å utføre trinnene i metoden for å<br />
gjennomføre STORE SYSTEM INFORMATION instruksjonen.<br />
4. System omfattende midler tilpasset for å utføre alle trinnene til fremgangs-<br />
måten i henhold til hvilke som helst <strong>av</strong> de foregående fremgangsmåtekr<strong>av</strong>ene<br />
5. Datamaskinprogram omfattende instruksjoner for å utføre alle trinnene til<br />
fremgangsmåten i henhold til hvilke som helst <strong>av</strong> de foregående fremgangsmåte-<br />
kr<strong>av</strong>ene, når nevnte datamaskinprogram er utført på et datamaskinsystem.
5<br />
10<br />
3. Fremgangsmåte i henhold til kr<strong>av</strong> 1, hvori STORE SYSTEM INFORMATION<br />
54<br />
instruksjonen definert for datamaskinarkitekturen er hentet og utført <strong>av</strong> en sentral-<br />
enhet til en alternativ datamaskinarkitektur,<br />
hvori fremgangsmåten videre består <strong>av</strong> å tolke STORE SYSTEM INFORMATION in-<br />
struksjonen til å identifisere en forhåndsbestemt programvarerutine for emulere <strong>av</strong><br />
driften <strong>av</strong> STORE SYSTEM INFORMATION instruksjonen, og<br />
hvori gjennomføringen <strong>av</strong> STORE SYSTEM INFORMATION instruksjonen utgjør kjø-<br />
ring <strong>av</strong> forhåndsbestemt programvarerutine for å utføre trinnene i metoden for å<br />
gjennomføre STORE SYSTEM INFORMATION instruksjonen.<br />
4. System omfattende midler tilpasset for å utføre alle trinnene til fremgangs-<br />
måten i henhold til hvilke som helst <strong>av</strong> de foregående fremgangsmåtekr<strong>av</strong>ene<br />
5. Datamaskinprogram omfattende instruksjoner for å utføre alle trinnene til<br />
fremgangsmåten i henhold til hvilke som helst <strong>av</strong> de foregående fremgangsmåte-<br />
kr<strong>av</strong>ene, når nevnte datamaskinprogram er utført på et datamaskinsystem.
5<br />
10<br />
3. Fremgangsmåte i henhold til kr<strong>av</strong> 1, hvori STORE SYSTEM INFORMATION<br />
54<br />
instruksjonen definert for datamaskinarkitekturen er hentet og utført <strong>av</strong> en sentral-<br />
enhet til en alternativ datamaskinarkitektur,<br />
hvori fremgangsmåten videre består <strong>av</strong> å tolke STORE SYSTEM INFORMATION in-<br />
struksjonen til å identifisere en forhåndsbestemt programvarerutine for emulere <strong>av</strong><br />
driften <strong>av</strong> STORE SYSTEM INFORMATION instruksjonen, og<br />
hvori gjennomføringen <strong>av</strong> STORE SYSTEM INFORMATION instruksjonen utgjør kjø-<br />
ring <strong>av</strong> forhåndsbestemt programvarerutine for å utføre trinnene i metoden for å<br />
gjennomføre STORE SYSTEM INFORMATION instruksjonen.<br />
4. System omfattende midler tilpasset for å utføre alle trinnene til fremgangs-<br />
måten i henhold til hvilke som helst <strong>av</strong> de foregående fremgangsmåtekr<strong>av</strong>ene<br />
5. Datamaskinprogram omfattende instruksjoner for å utføre alle trinnene til<br />
fremgangsmåten i henhold til hvilke som helst <strong>av</strong> de foregående fremgangsmåte-<br />
kr<strong>av</strong>ene, når nevnte datamaskinprogram er utført på et datamaskinsystem.
5<br />
10<br />
3. Fremgangsmåte i henhold til kr<strong>av</strong> 1, hvori STORE SYSTEM INFORMATION<br />
54<br />
instruksjonen definert for datamaskinarkitekturen er hentet og utført <strong>av</strong> en sentral-<br />
enhet til en alternativ datamaskinarkitektur,<br />
hvori fremgangsmåten videre består <strong>av</strong> å tolke STORE SYSTEM INFORMATION in-<br />
struksjonen til å identifisere en forhåndsbestemt programvarerutine for emulere <strong>av</strong><br />
driften <strong>av</strong> STORE SYSTEM INFORMATION instruksjonen, og<br />
hvori gjennomføringen <strong>av</strong> STORE SYSTEM INFORMATION instruksjonen utgjør kjø-<br />
ring <strong>av</strong> forhåndsbestemt programvarerutine for å utføre trinnene i metoden for å<br />
gjennomføre STORE SYSTEM INFORMATION instruksjonen.<br />
4. System omfattende midler tilpasset for å utføre alle trinnene til fremgangs-<br />
måten i henhold til hvilke som helst <strong>av</strong> de foregående fremgangsmåtekr<strong>av</strong>ene<br />
5. Datamaskinprogram omfattende instruksjoner for å utføre alle trinnene til<br />
fremgangsmåten i henhold til hvilke som helst <strong>av</strong> de foregående fremgangsmåte-<br />
kr<strong>av</strong>ene, når nevnte datamaskinprogram er utført på et datamaskinsystem.
5<br />
10<br />
3. Fremgangsmåte i henhold til kr<strong>av</strong> 1, hvori STORE SYSTEM INFORMATION<br />
54<br />
instruksjonen definert for datamaskinarkitekturen er hentet og utført <strong>av</strong> en sentral-<br />
enhet til en alternativ datamaskinarkitektur,<br />
hvori fremgangsmåten videre består <strong>av</strong> å tolke STORE SYSTEM INFORMATION in-<br />
struksjonen til å identifisere en forhåndsbestemt programvarerutine for emulere <strong>av</strong><br />
driften <strong>av</strong> STORE SYSTEM INFORMATION instruksjonen, og<br />
hvori gjennomføringen <strong>av</strong> STORE SYSTEM INFORMATION instruksjonen utgjør kjø-<br />
ring <strong>av</strong> forhåndsbestemt programvarerutine for å utføre trinnene i metoden for å<br />
gjennomføre STORE SYSTEM INFORMATION instruksjonen.<br />
4. System omfattende midler tilpasset for å utføre alle trinnene til fremgangs-<br />
måten i henhold til hvilke som helst <strong>av</strong> de foregående fremgangsmåtekr<strong>av</strong>ene<br />
5. Datamaskinprogram omfattende instruksjoner for å utføre alle trinnene til<br />
fremgangsmåten i henhold til hvilke som helst <strong>av</strong> de foregående fremgangsmåte-<br />
kr<strong>av</strong>ene, når nevnte datamaskinprogram er utført på et datamaskinsystem.
5<br />
10<br />
3. Fremgangsmåte i henhold til kr<strong>av</strong> 1, hvori STORE SYSTEM INFORMATION<br />
54<br />
instruksjonen definert for datamaskinarkitekturen er hentet og utført <strong>av</strong> en sentral-<br />
enhet til en alternativ datamaskinarkitektur,<br />
hvori fremgangsmåten videre består <strong>av</strong> å tolke STORE SYSTEM INFORMATION in-<br />
struksjonen til å identifisere en forhåndsbestemt programvarerutine for emulere <strong>av</strong><br />
driften <strong>av</strong> STORE SYSTEM INFORMATION instruksjonen, og<br />
hvori gjennomføringen <strong>av</strong> STORE SYSTEM INFORMATION instruksjonen utgjør kjø-<br />
ring <strong>av</strong> forhåndsbestemt programvarerutine for å utføre trinnene i metoden for å<br />
gjennomføre STORE SYSTEM INFORMATION instruksjonen.<br />
4. System omfattende midler tilpasset for å utføre alle trinnene til fremgangs-<br />
måten i henhold til hvilke som helst <strong>av</strong> de foregående fremgangsmåtekr<strong>av</strong>ene<br />
5. Datamaskinprogram omfattende instruksjoner for å utføre alle trinnene til<br />
fremgangsmåten i henhold til hvilke som helst <strong>av</strong> de foregående fremgangsmåte-<br />
kr<strong>av</strong>ene, når nevnte datamaskinprogram er utført på et datamaskinsystem.
5<br />
10<br />
3. Fremgangsmåte i henhold til kr<strong>av</strong> 1, hvori STORE SYSTEM INFORMATION<br />
54<br />
instruksjonen definert for datamaskinarkitekturen er hentet og utført <strong>av</strong> en sentral-<br />
enhet til en alternativ datamaskinarkitektur,<br />
hvori fremgangsmåten videre består <strong>av</strong> å tolke STORE SYSTEM INFORMATION in-<br />
struksjonen til å identifisere en forhåndsbestemt programvarerutine for emulere <strong>av</strong><br />
driften <strong>av</strong> STORE SYSTEM INFORMATION instruksjonen, og<br />
hvori gjennomføringen <strong>av</strong> STORE SYSTEM INFORMATION instruksjonen utgjør kjø-<br />
ring <strong>av</strong> forhåndsbestemt programvarerutine for å utføre trinnene i metoden for å<br />
gjennomføre STORE SYSTEM INFORMATION instruksjonen.<br />
4. System omfattende midler tilpasset for å utføre alle trinnene til fremgangs-<br />
måten i henhold til hvilke som helst <strong>av</strong> de foregående fremgangsmåtekr<strong>av</strong>ene<br />
5. Datamaskinprogram omfattende instruksjoner for å utføre alle trinnene til<br />
fremgangsmåten i henhold til hvilke som helst <strong>av</strong> de foregående fremgangsmåte-<br />
kr<strong>av</strong>ene, når nevnte datamaskinprogram er utført på et datamaskinsystem.