Home - Rasfoiesc.com
Educatie Sanatate Inginerie Business Familie Hobby Legal
Doar rabdarea si perseverenta in invatare aduce rezultate bune.stiinta, numere naturale, teoreme, multimi, calcule, ecuatii, sisteme




Biologie Chimie Didactica Fizica Geografie Informatica
Istorie Literatura Matematica Psihologie

Calculatoare


Index » educatie » » informatica » Calculatoare
Cerinte hardware pentru ATR calculatoare conventionale, setul de instructiuni si modul de adresare, mecanismul si structura intreruperilor


Cerinte hardware pentru ATR calculatoare conventionale, setul de instructiuni si modul de adresare, mecanismul si structura intreruperilor


Cerinte hardware pentru ATR calculatoare conventionale, setul de instructiuni si modul de adresare, mecanismul si structura intreruperilor

Un calculator conventional este compus din 3 componente de baza: unitatea centrala (UC), memoria si sistemul de intrari/iesiri (I/O), conectate printr-o magistrala care include magistrala de date respectiv de adrese. O diagrama simplificata a unui calculator conventional este prezentata in Figura 3.1:




Figura 3.1: Diagrama simplificata a unui calculator conventional

O buna intelegere a hardware-ului care sta la baza unui sistem timp real poate conduce la o mai eficienta utilizare a resurselor existente. Chiar daca in teoriile actuale tendinta este aceea de a izola programele de hardware-ul pe care ruleaza, considerente practice rezultate din implementarea sistemelor timp real actuale au certificat faptul ca acest lucru este practic imposibil de atins.

Astfel, performanta generala a unui sistem timp-real este in general influentata din punct de vedere hardware de o serie de factori:

factori care influenteaza performanta unitatatii centrale

factori care influenteaza performanta memoriei

factori care influenteaza performanta sistemului de I/O

Setul de instructiuni si modul de adresare

Timpul de executie al unei macroinstructiuni este functie de o mare varietate de factori, care includ: timpul de decodificare al unei instructiuni, lungimea unui microprogram, numarul de cicli de magistrala necesari. Acest numar este influentat de lungimea standard a cuvintului vizavi de dimensiunea magistralei de date precum si de modul de adresare a instructiunilor. Astfel, o lungime a cuvintului mai mare conduce la o precizie mai mare si la posibilitatea accesului dintr-o data la o cantitate mai mare de informatie; daca lungimea cuvintului este mai mica, rezulta necesitatea mai multor operatii si deci un timp mai mare de realizare a unei anumite operatii. Din punctul de vedere al modurilor de adresare, cu cit setul de moduri de adresare este mai bogat, cu atit timpul de decodificare al unei instructiuni va fi mai lung. In plus, anumite moduri de adresare necesita un timp mai lung de executie decit altele deoarece numarul de microinstructiuni per macroinstructiune este mai mare.

De asemenea, toate instructiunile necesita cel putin un ciclu de magistrala pentru aducerea din memoria principala. Timpul de acces al memoriei are un efect profund negativ asupra performantei sistemelor timp-real si trebuie sa influenteze alegerea modurilor de adresare ale instructiunilor, atit cind se codifica in limbaj de asamblare cit si prin alegerea cu grija a constructiilor utilizate in cazul folosirii unui limbaj de nivel inalt. Este intotdeauna de preferat sa se selecteze sau forteze modurile de adresare a instructiunilor astfel incit numarul acceselor la memorie sa fie cit mai mic posibil. Intr-o maniera similara, selectarea unui hardware cu acces rapid de memorie poate conduce de asemenea la micsorarea timpilor de executie a instructiunilor.

In aceasta idee, caracteristici de dorit ar fi:

existenta unor moduri de adresare flexibile pentru adresarea directa si imediata, care sunt cele mai rapide

utilizarea limitata a modului de adresare indirect, intrucit acesta necesita cicli de magistrala suplimentari

utilizarea de preferinta a instructiunilor cu operanzi intregi in locul instructiunilor in virgula mobila: microprogramele pentru instructiunile in virgula mobila sunt in mod considerabil mai lungi. In combinatie cu numarul de cicli de magistrala mai mare (reprezentarea in virgula mobila necesita 4 sau mai multi bytes de memorie), aceasta inseamna ca instructiunile in virgula mobila intotdeauna vor dura mai mult decit echivalentul acestora cu operanzi intregi. O solutie are fi ca setul de instructiuni sa fie prevazut cu instructiuni care realizeaza conversia datelor intregi in virgula mobila si viceversa; aceste instructiuni adauga de asemenea un overhead pe linga reducerea preciziei. De aceea, este de preferat sa se evite amestecarea celor doua moduri de calcul.

Mecanismul (structura) intreruperilor

Intreruperile pot fi cauzate de evenimente interne sau externe. Evenimentele interne includ: impartire cu zero, depasire, erori la utilizarea operatiilor in virgula mobila. Evenimentele externe sunt cauzate de alte dispozitive externe (ceas, comutatoare, etc.) si in majoritatea sistemelor de operare aceste intreruperi trebuiesc planificate.




Intr-un sistem cu un singur nivel de tratare a intreruperilor, tratarea unei intreruperi nu poate fi intrerupta: atunci cind apare o intrerupere tratarea are loc in urmatoarea maniera:

se termina instructiunea curenta

se salveaza PC-ul (adresa de revenire - interrupt handler location)

se incarca PC-ul cu adresa locatiei handlerului de intrerupere (Figura 3.3)


Figura 3.3: Tratarea intreruperilor pe un singur nivel

Procesoarele moderne sunt in mod uzual echipate cu circuitecare permit tratarea mai multor intreruperi intr-o maniera prioritizata; acestea sunt in general registre speciale:

interrupt vector - contine identitatea celei mai prioritare cereri de interupere

status register - contine valoarea cererii curente de interupere, mai putin prioritara

registrul de mascare (mask register) - contine o secventa de biti prin care se activeaza/dezactiveaza anumite interuperi

interrupt register - contine o lista de biti a tuturor intreruperilor in asteptare

Astfel, in sistemele multi-nivel de tratare a intreruperilor,dupa primirea interuperii i, se determina daca aceasta are prioritate mai mare decit intreruperea curent servita pe baza registrului status si de mascare; daca da, UC termina instructiunea curenta, salveaza PC-ul si sare la executia handlerului pentru interuperea i, dupa cum se prezinta in Figura 3.4.


Figura 3.4: Tratarea multi-nivel a intreruperilor

Tratarea multi-nivel a intreruperilor are loc in urmatoarea maniera:

se termina instructiunea curenta

se salveaza PC-ul (adresa de revenire din interuperea i ) in locatia corespunzatoare

se incarca PC-ul cu adresa handlerului de intrerupere pentru intreruperea i din locatia corespunzatoare

Avind in vedere caracteristicile de mai sus, este evident ca, in scopul imbunatatirii timpului de raspuns (prin micsorarea latentei) intreruperilor, in aplicatiile timp-real este vitala existenta unui sistem eficient, multi-nivel de tratare a intreruperilor.







Politica de confidentialitate





Copyright © 2023 - Toate drepturile rezervate