Makrokode

Programmel, der af computerkonstruktøren er indlagt i maskinen som et grænsesnit mellem på den ene side maskinel og den anden side det brugerkonstruerede programmel eller standardstyresystemet. Formålet med dette er at supplere maskinellets faktiske instruktionssæt med ekstra instruktioner. Dette kan dels skyldes at instruktioner, der egentlig hører til arkitekturen, ikke er realiseret i maskinellet af f.eks. pladsmangel på en chip eller ønsket om at holde prisen nede. Det kan også skyldes, at den faktiske registerstruktur eller detaljer i maskinens interrupt-system er anderledes end det, der er specificeret i arkitekturreferencen. Det kan endvidere skyldes, at instruktionssættet af ydelsesmæssige grunde med fordel kan tilpasses en bestemt oversætter eller det styresystem, der faktisk kører på maskinen. Dette kan give brugeren mulighed for at vælge mellem f.eks. UNIX og Windows og stadig opnå en ydelsesmæssig gevinst. Et eksempel på dette er Alpha-arkitekturens såkaldte PAL-kode.

I modsætning til mikrokode, der anvender meget simple og unikke materielnære instruktioner, består makrokode for det meste af computerens normale instruktionssæt, eventuelt tilsat visse specialinstruktioner og brug af registre, der ellers ikke er tilgængelige for hverken styresystem eller brugerprogrammel. Makrokode-programmellet indlæses normalt under opstarten af computeren til en del af arbejdslageret, der ikke er tilgængeligt for hverken styresystem eller opgaveprogrammel.

Makrokode kan også bruges til over for brugeren at udvide computerens instruktionssæt. Eksempelvis kan man forestille sig en computer, hvor den normale flytteinstruktion kan flytte op til 256 tegn fra ét sted i arbejdslageret til et andet. Ønsker man nu en instruktion, der kan flytte mere end 256 tegn på én gang, til rådighed er der to muligheder. Man kan enten definere en ny instruktion og modificere maskinellet, så computeren kan udføre den. Dette er en dyr og tidskrævende operation. Eller man kan i stedet definere den nye instruktion, og lade makrokode udføre den, i eksemplet f.eks. ved hjælp af et passende antal af de gamle flytteinstruktioner.

Forfattere: 
Klaus Hansen
Casper Thomsen