curs 09

12
CURS 9 CAPITOLUL IX MICROPROGRAMARE 9.1. Etapele dezvoltării microprogramării Conceptul de microprogramare a apărut în jurul anilor ’50 şi a fost legat de elaborarea unor metode şi mijloace tehnice noi privind proiectarea şi construcţia unităţilor de comandă ale sistemelor numerice. Noţiunea de microprogramare presupune înregistrarea semnalelor de comandă în memorii, în locul generării lor de către o unitate de comandă cablată (sistem secvenţial). Accesibilitatea programatorului ajunge până la nivelul semnalelor de comandă grupate în microinstrucţiuni. Conceptul a fost introdus de Maurice Wilkes de la Universitatea din Cambridge. Modelul structurii de control microprogramate este următorul: Registru Întârziere Semnale utile Semnale de adresă (linii de control) Decodificator 1

Upload: dianna

Post on 10-Nov-2015

5 views

Category:

Documents


1 download

DESCRIPTION

VHDL

TRANSCRIPT

CURS 9

CURS 9

CAPITOLUL IX

MICROPROGRAMARE

9.1. Etapele dezvoltrii microprogramrii

Conceptul de microprogramare a aprut n jurul anilor 50 i a fost legat de elaborarea unor metode i mijloace tehnice noi privind proiectarea i construcia unitilor de comand ale sistemelor numerice.

Noiunea de microprogramare presupune nregistrarea semnalelor de comand n memorii, n locul generrii lor de ctre o unitate de comand cablat (sistem secvenial). Accesibilitatea programatorului ajunge pn la nivelul semnalelor de comand grupate n microinstruciuni. Conceptul a fost introdus de Maurice Wilkes de la Universitatea din Cambridge.

Modelul structurii de control microprogramate este urmtorul:

Registru

ntrziere

Semnale utile

Semnale de adres

(linii de control)

Decodificator

CLK

matricea A

matricea B

de la bistabil

de condiie

Matricea A conine linii de control, iar matricea B conine linii de adres. O linie orizontal din aceste matrici reprezint o microinstruciune. Liniile de control dau semnalele de comand necesare execuiei instruciunilor, iar liniile de adres sunt necesare urmtoarelor operaii efectuate.

Orice operaie apelat de o instruciune presupune o secven de pai care poate cuprinde transferuri registru-registru, registru-memorie, operaii aritmetice i logice. Fiecare pas se realizeaz practic prin activarea unor semnale de comand. Paii au primit numele de microoperaii.

O instruciune va fi executat n urma unor secvene de microoperaii grupate ntr-un microprogram, adic o instruciune poate fi realizat ca o succesiune de operaii elementare.

O microinstruciune este selectat corespunztor adresei din registrul de adrese. Logica de decizie i salt necesar oricrei structuri de control este asigurat prin bistabili de condiie.

Definiie: Microprogramarea este controlul unei structuri numerice prin intermediul unor cuvinte citite secvenial (pas cu pas) dintr-o memorie. Prin citirea succesiv a acestor cuvinte, microinstruciunile, se genereaz semnalele de control, microoperaiile, necesare funcionrii corecte a structurii numerice respective. Proiectarea unei structuri numerice este astfel mai sistematic i mai flexibil dect cea a unei structuri convenionale realizate prin logic cablat.

Microprogramarea permite realizarea emulatoarelor, care reprezint un ansamblu de resurse (elemente) hardware i software incluse ntr-un calculator cu scopul interpretrii limbajului (setului de instruciuni) altui calculator.

Termenul de firmware reprezint un ansamblu de resurse software care prin intermediul microprogramrii preia unele funcii care n mod tradiional revin software-ului (sistemului de operare), de exemplu, BIOS-ul.

Observaie: Microprogramarea nu nseamn programarea microprocesorului!!! Microprogramarea este o tehnic de proiectare a structurilor numerice, se refer la o structur, la o anumit implementare, la o arhitectur.

9.2. Structura de control microprogramat

n principiu o main microprogramat este o main n care o secven coerent de microinstruciuni grupate ntr-un microprogram, este folosit pentru execuia operaiilor mari, instruciunilor, care definesc funcionarea mainii.

Adres de

microinstruciune

Condiionri

Memoria de

Secveniator de

- circuite externe

microprogram

microprogram

- blocul cilor de date

funcia de secveniere

funcia de control propriu-zis

Structura de control microprogramat are 2 funcii importante:

a) funcia de control - definirea i controlul tuturor microoperaiilor care trebuie realizate (executate);

b) funcia de secveniere - definirea (determinarea) i controlul adresei microinstruciunii urmtoare.

Aceste funcii trebuie s se regseasc n cuvntul de microinstruciune.

Microoperaii care trebuie realizate:

selecia operanzilor pentru unitatea aritmetico-logic (ALU);

funcia executat de ALU;

destinaia rezultatului ALU;

controlul transportului;

controlul deplasrii

controlul ntreruperilor;

controlul intrrilor/ieirilor;

controlul resurselor hardware.

Structura de control microprogramat se mai poate reprezenta i astfel:

microadresa urmtoarei

rezultate

microinstruciuni

intermediare

date

condiiiRegistru de

Memorie de

Elemente

externemicroadrese

microprogram

funcionale

(intrri de

date

control)

Registru de

microinstruciuni

9.3. Memoria de microprograme

Memoria de microprograme este elementul central a unitii de comand microprogramate i se mai numete i memorie de comand. Ea conine microprogramele. Memoria de microprograme trebuie s fie de vitez mare.

Exist 2 tipuri de memorii de microprogram:

1. ROM nu poate fi modificat;

2. RAM

se ncarc cu microprograme la fiecare pornire a sistemului;

se folosesc la punerea n funciune a sistemelor noi;

se folosesc la microprogramarea dinamic.

Din punctul de vedere al organizrii memoriei de microprogram se ncearc obinerea a ct mai puine circuite i a unei viteze ct mai mari. Avem:

a. organizarea memoriei nct fiecrui cuvnt de memorie i corespunde o microinstruciune; citirea unei instruciuni presupune un singur ciclu de acces la memorie;

b. implementarea mai multor instruciuni n cadrul unui cuvnt de memorie; se reduce numrul de accese la memoria de microprogram i crete viteza de lucru a unitii de comand;

c. memoria se mparte n dou blocuri; sunt 2 tipuri de microadrese, care aparin unui bloc i care aparin celuilalt bloc; se reduce cmpul de bii din cadrul adresei, deci se micoreaz lungimea cuvntului microinstruciunii;

d. memoria de microprogram este divizat; se folosesc 2 tipuri de microinstruciuni: microinstruciuni simple (au nevoie de un numr mic de bii) i microinstruciuni complexe (au o lungime mai mare; controleaz simultan mai multe resurse);

e. memoria de microprograme se structureaz pe 2 nivele: microinstruciuni de nivel sczut (nanoinstruciuni) i microprograme de nivel mai sczut (nanoprograme) nanoprogramare.

9.4. Secveniatorul de microprogram

Secveniatorul de microprogram are rolul de a genera urmtoarea microadres.

Schema unui secveniator este dat n continuare:

PUSH/POP

4

FE Validare stiv

RE

Registru

Pointer

Validare registruAdrese AR

stiv SP

Date

4

4

Intrri directe

Stiv

CLK

S0

D AR F (PC

4 x 4

S1

MUX

X0 X1 X2 X3

Numrtor de

OR3

microprogram

OR2

(PC

OR1

OR0

4

zero

Cn+4Incrementare

(PC

OE

Cn

y3 y2 y1 y0microadrese

(pt. cascadare)

Adresa de microprogram este selectat prin intermediul unui multiplexor care are intrri: directe, din registru intern, ieirile din stiva LIFO, de la numrtorul de microprogram. Comanda este dat de S0 i S1. Registrul AR, validat de RE, acioneaz pe frontul cresctor al CLK. Numrtorul de microprogram este format dintr-un numrtor pe 4 bii i un CLC de incrementare pe 4 bii. Cnd Cn = 1, pe frontul cresctor al CLK urmtor se obine adresa curent plus 1. Dac Cn = 0 numrtorul nu-i schimb coninutul. Stiva 4 x 4 este folosit pentru memorarea adresei de revenire din microsubrutine. Pointerul de stiv SP indic ultima locaie scris. La combinaiile ntre FE i PUSH/POP se execut PUSH, se incrementeaz SP i se memoreaz n stiv adresa de revenire (adresa urmtoare adresei microinstruciunii care a efectuat operaia PUSH/POP) sau se efectueaz POP. Ieirile y indic adresa de microprogram microadresa. Cu OR se foreaz unele microadrese la 1 pentru implementarea unor microinstruciuni de salt. Semnalul zero este utilizat pentru aducere la 0 (iniializare), iar OE pentru trecerea ieirilor n starea three-state.

Structura de control microprogramat de tip pipe-line suprapune execuia microinstruciunii curente cu extragerea microinstruciunii urmtoare. Dac pentru controlul adresei urmtoare se folosete un cmp de 3 bii se pot implementa, de exemplu, urmtoarele microoperaii: step, salt, salt pe condiie, valoare PC, salt la subrutin, adres de start, revenire, test de sfrit de bucl.

Structura de control microprogramat poate fi privit ca o cutie neagr cu intrri macrooperaii i condiii de test, iar ca ieiri cmpurile de control din microinstruciuni.

Structura de control microprogramat poate fi definit ca un automat finit destinat implementrii funciei de control din sistem, care prelucreaz informaia folosind tehnica microprogramrii.

9. 5. Formatul microinstruciunii

Definiie: Prin formatul microinstruciunii se nelege mprirea microinstruciunii n diferite zone de control numite cmpuri.

Microinstruciunile se pot clasifica n verticale i orizontale.

1. Microinstruciuni verticale

efectueaz operaii simple de tip ncrcare, memorare, operaii aritmetice, salt, intrare, ieire;

lungimea este de 12-24 bii;

exist un compromis ntre lungimea cuvntului de microinstruciune i lungimea microprogramului.

Exemplu:

cod(op. cu UC

cod(op cu MEM

cod(op. cu I/O

cod(op. salt

2. Microinstruciuni orizontale

Control secveniereControl ALUControl UCControl MEMControl I/OControl ceas

controleaz mai multe resurse hardware n paralel;

lungimea tipic este de 64 de bii;

lungimea instruciunii depinde i de gradul de codificare:

a. microinstruciune fr codificare; fiecare bit reprezint o microcomand (controleaz o microoperaie)

b. microinstruciune cu codificare pe un nivel; biii care controleaz resurse mutuale exclusive (nu pot s apar simultan) sunt combinai n cmpuri diferite

cmpul A cmpul B

Decodificator Decodificator

2 : 4 4 : 16

0 3 0 15

c. microinstruciune cu codificare pe 2 niveluri; semnificaia unui cmp depinde de valoarea altui cmp de control

cmpul A cmpul B cmpul C

Decodificator Decodificator Decodificator

4 : 16 16 : 64 2 : 4

d. microinstruciune n care acelai cmp controleaz resurse hardware diferite cu funcionare separat n timp; dirijarea cmpului se face cu ajutorul unui cmp de control

A/B

validare resurs A/B

Decodificator

4 : 16

spre resursele A/B

(microoperaii)

9.6. Implementarea microinstruciunii

n cadrul unei execuii normale se succed:

1. citirea microinstruciunii

- determinarea adresei urmtoare;

- obinerea datelor i ncrcarea n registrul de microinstruciuni;

2. decodificarea microinstruciunii;

3. execuia propriu-zis a microinstruciunii.

Exist ns mai multe soluii pentru implementare.

a) Implementarea serie pentru mrirea vitezei de lucru poate exista o soluie de suprapunere a execuiei microinstruciunii curente cu citirea microinstruciunii urmtoare. n mod normal execuia unei microinstruciuni necesit 2 etape: citirea ei i execuia ei propriu-zis.

CE

CE

microinstruciunea 1microinstruciunea 2

Cele 2 etape se pot suprapune i rezult:

CEmicroinstruciunea 1

CEmicroinstruciunea 2

CEmicroinstruciunea 3

Problemele care apar n acest caz sunt din cauza salturilor. Anticiparea microadresei urmtoare se face pe baza unei estimri care trebuie s fie n general bun (de exemplu, la sfritul unei bucle se presupune c se revine la nceputul buclei). Dac anticiparea este corect nu se pierde din vitez. n caz contrar, etapa de citire a noii microinstruciuni trebuie reparcurs i se pierde un ciclu de citire.

b) Caracteristica monofaz-polifaz se refer la numrul de faze utilizate ntr-un ciclu principal de execuie a microinstruciunii.

n cazul implementrii monofazate, microinstruciunea este efectiv (dureaz) o perioad de ceas. Semnalele de control sunt generate simultan cu execuia microinstruciunii.

(I1 (I2 (I3

se ncarc

adresa

urmtoarei (I

n cazul implementrii polifazate, fiecare ciclu principal conine cicluri secundare. Semnalele de comand se genereaz secvenial.

faza1

2

3

Apar 3 faze secundare, fiecare faz genernd semnale de comand.

Exist microinstruciuni care necesit 2 impulsuri de ceas (apare un ceas anticipat).

Ceas

anticipat

(I1 (I2 (I3

9.7. Avantajele i dezavantajele microprogramrii

1. Avantaje:

flexibilitatea modului de control

adaptabilitate

uurin n dezvoltare i ntreinere

uniformitate a proiectrii

pre de cost sczut

viteza

2. Dezavantaje:

pierdere de performan putere limitat a microinstruciunii

volum, putere consumat mai mari

11