Extras din referat
Arhitectura x86
Corporatia Cyrix este unul dintre furnizorii de baza ai solutiilor bazate pe microprocesoare, care a introdus noi standarde pe piata calculatoarelor personale. În ultimii zece ani Cyrix a dezvoltat aproape o duzina de procesoare originale folosite în milioane de calculatoare din întreaga lume.
În luna noiembrie a anului 1997, Cyrix a fost cumparata de National Semiconductor. Aceasta fuziune a adus doua componente importante pentru Cyrix: capacitatea de productie la nivel mondial a National Semiconductor si infrastructura necesara acestei productii.
Primul produs Cyrix a fost un coprocesor matematic destinat cresterii vitezei de realizare a calculelor matematice. Succesul acestui coprocesor matematic a permis celor de la Cyrix sa distribuie începând cu 1992, primul procesor din familia x86. Compania a dezvoltat rapid o linie de productie pentru procesoarele 486, si apoi pentru procesoarele din generatia a cincea 5x86, un CPU pentru sistemele PC (mobile si desktop). În 1995, Cyrix a introdus procesorul din generatia a sasea, 6x86, un procesor superscalar, bazat pe o superbanda de asamblare; în iunie 1997, a introdus procesorul MMX 6x86MX, iar în 1998 a aparut procesorul MII.
Procesorul Cyrix 5x86
Familia de procesoare 5x86 reprezinta o noua generatie pe 64 de biti compatibila x86. Unitatea centrala se bazeaza pe o banda de asamblare cu sase nivele, putând executa o instructiune într-un impuls de tact.
Unitatea centrala 5x86 este divizata în urmatoarele blocuri functionale (Fig. 1): -unitatea pentru numere întregi (Integer Unit - IU), -unitatea în virgula flotanta (Floating Point Unit - FPU) , -unitatea cache (Write-Back Cache) , -unitatea pentru gestiunea memoriei (Memory Management Unit - MMU) , -unitatea de interfata cu magistrala (Bus Interface Unit - BIU).
Unitatea pentru numere întregi contine: -tamponul pentru instructiuni (Instruction Buffer - IB) , -unitatea de aducere a instructiunii (Instruction Fetch Unit - IF) , -unitatea de decodificare a instructiunii (Instruction Decoder Unit - ID).
Instructiunile sunt executate în unitatea pentru numere întregi sau în unitatea de calcul în virgula flotanta. Cache-ul contine cele mai recent utilizate date si instructiuni si asigura accesul rapid la aceste date din partea IU si FPU.
Când apare o cerere de acces la o locatie din memoria externa, MMU calculeaza adresa fizica pe care o trimite unitatii de interfata cu magistrala, care asigura interfatarea unitatii centrale cu memoria externa si celelalte circuite de pe placa de baza.
Unitatea pentru numere întregi
Aceasta unitate citeste, decodifica si executa intructiunile într-o banda de asamblare cu sase nivele (Fig. 2): -nivelul de aducere al codului instructiunii (Instruction Fetch - IF) - citeste din cache codul instructiunii urmatoare si îl trimite spre decodificare nivelului urmator din banda de asamblare. Se pot citi pâna la 128 de octeti într-un impuls de tact, -nivelul de decodificare a instructiunii (Instruction Decode - ID) - evalueaza sirul de octeti primit de la nivelul IF, determinând numarul de octeti pentru fiecare instructiune si tipul acesteia, pe care apoi le decodifica la viteza de o instructiune într-un impuls de tact, -primul nivel de caclul al adresei (Address Calculation 1 - AC1) - daca instructiunea are un operand în memorie, acest nivel calculeaza adresa de memorie liniara pentru instructiune, -al doilea nivel de caclul al adresei (Address Calculation 2 - AC2) - realizeaza toate functiile de gestionare a memoriei, accesarea cache-ului si a registrelor. Daca detecteaza o instructiune în virgula flotanta, aceasta este trimisa pentru executie unitatii în virgula flotanta, -nivelul de executie (Execution - EX) - executa instructiunea folosind operanzii furnizati de nivelele pentru calculul adresei, -nivelul write-back (WB) - ultimul nivel din IU, actualizeaza setul de registre sau trimite rezultatul unitatii de interfata cu memoria (Load/Store Unit) din MMU.
Unitatea cache
Procesorul Cyrix 5x86 contine un cache unificat pentru date si instructiuni de 16Ko, set-asociativ pe patru cai, organizat pe 1024 de linii. Scrierile în cache se fac prin metoda write-back. Memoria cache este organizata în patru bancuri a câte 256 linii fiecare, cu 16 octeti pe linie. Fiecare linie cache are asociat câte un tag pe 21 de biti si un bit de valid (arata daca linia contine informatii valide sau nu). Pe lânga acesti biti, fiecare linie mai contine înca patru biti care indica daca continutul liniei a fost modificat (dirty bits), câte unul pentru fiecare dublu-cuvânt din linie. Acesti ultimi patru biti permit marcarea independenta a fiecarui dublu-cuvânt ca fiind modificat, în loc de a marca întreaga linie ca fiind modificata.
Unitatea de gestionare a memoriei
MMU translateaza adresele liniare furnizate de IU în adrese fizice, pentru a putea fi folosite de unitatea cache si unitatea de interfata cu magistrala. Mecanismul de paginare este cel standard x86.
Unitatea pentru gestionarea memoriei mai contine un bloc (Load/Store Unit) care planifica accesele la memoria cache si memoria externa si implementeaza urmatoarele concepte: -reordonarea citirilor si scrierilor - confera o prioritate mai mare citirilor din memorie fata de scrierile în memorie, -evitarea citirilor din memorie - elimina citirile inutile din memorie prin folosirea datelor existente deja în unitatea centrala (în cazul dependentelor de tipul citire dupa scriere).
Controlul ramificatiilor, prezicerea ramificatiilor, dependentele între date, unitatea în virgula flotanta, unitatea de interfata cu magistrala vor fi prezentate la procesorul 6x86.
Preview document
Conținut arhivă zip
- Evolutia Microprocesoarelor.doc