Sunteți pe pagina 1din 13

Arhitectura sistemelor de calcul (ASC)

Arhitecturi

Superscalara
În arhitectura superscalară, şiruri de instrucţiuni diferite (de obicei două,
eventual mai multe), utilizează resurse diferite în aceleaşi stadii de execuţie a
instrucţiunilor de pe fiecare şir.
Un exemplu particular de arhitectură superscalară este prezentat în figura 2.25

Structura superscalară cu tehnică de burst (citire în rafale) este folosită


începând cu microprocesorul 80486 şi este corelată cu momentul introducerii în
capsula procesorului a memoriei cache de nivel 1.

Tehnica burst foloseşte această memorie pentru a citi blocuri de instrucţiuni


din memoria cache, instrucţiuni care au fost încărcate acolo din memoria principală
(MP) în mod secvenţial (vezi figura 2.26). În acest mod, se citesc dintr-o dată fie
două, fie patru cuvinte, în funcţie de dimensiunea instrucţiunii (pe 32 sau 16 biţi).
S-a folosit iniţial o magistrală internă între cache şi decodificatorul de instrucţiuni
de 64 biţi, ajungându-se în prezent la 128 de biţi.

1. Instruction Fetch (IF) Pipeline:


This pipeline is responsible for fetching instructions from memory.
It reads the instruction from memory and passes it to the Operand Fetch (OF)
Pipeline.
2. Operand Fetch (OF) Pipeline:
In this pipeline, the necessary operands for the execution of the instruction are
fetched.
The operands are retrieved from memory or other storage and passed to the
Instruction Decode (ID) Pipeline.
3. Instruction Decode (ID) Pipeline:
In this pipeline, the fetched instruction is decoded, and the necessary control
signals are generated.
The operands for the instruction are identified, and dependencies between
instructions are resolved.
The decoded instruction is then passed to the Execution (EX) Pipeline.
4. Execution (EX) Pipeline:
This pipeline performs the actual computation or operation specified by the
instruction.
Arithmetic operations, logical operations, and other computational tasks are
carried out in this stage.
The result of the execution is then passed to the Write Back (WB) Pipeline.
5. Write Back (WB) Pipeline:
The result of the executed instruction is written back to the appropriate register in
this pipeline.
The data produced by the execution stage is stored in the register file or memory.

Supercalculatoare
Un supercalculator este un calculator complex cu destinaţie specială,
compus din mai multe procesoare care accesează aceeaşi memorie centrală şi care
funcţionează concomitent şi coordonat, în cooperare strânsă, astfel încât poate
atinge o performanţă totală de calcul foarte ridicată. Modul de operare al
supercalculatoarelor este calculul paralel. Numărul de procesoare interconectate ale
unui supercalculator depăşeşte la anumite modele chiar şi 300.000.
Până recent, supercalculatoarele erau mai puternice decât mainframe-urile,
având CPU-uri extrem de rapide, mulţi gigaocteţi de memorie principală, discuri şi
reţele foarte rapide. Au fost folosite pentru calculele ştiinţifice şi inginereşti foarte
masive, cum ar fi simularea ciocnirii galaxiilor, sintetizarea de noi medicamente
sau modelarea fluxului de aer în jurul unei aripi de avion.
Cu toate acestea, în ultimii ani, centrele de date (data centers) construite din
componente comerciale de bază, au oferit tot mai multă putere de calcul la preţuri
mult mai mici, iar adevăratele supercomputere de odinioară sunt acum o specie pe
cale de dispariţie.
Pentru a menţine costul unui asemenea supercalculator la un nivel rezonabil,
există arhitecturi care fac uz de procesoare mai ieftine şi mai lente, dar foarte
numeroase, grupate în aşa-numite cluster-e.
Printre primele firme care au produs supercalculatoare pe piaţă s-a numărat
firma Cray (modelul Cray-1 din 1976 a atins viteza de calcul de 130 Mflops). În
acest domeniu, există o listă (actualizată de două ori de an) a celor mai rapide 500
de supercalculatoare din lume (Top 500), care se bazează pe testul standardizat de
benchmarking numit Linpack. Pe lângă supercalculatoarele comerciale, există şi
linia supercalculatoarelor militare.

IBM BlueGene
Modelele IBM BlueGene au deţinut în ultimii 20 de ani (2018) poziţii în
primele 10 locuri din Top 500. Această serie de calculatoare se bazează pe un nou
concept, care renunţă la creşterea frecvenţei de ceas în favoarea micşorării
componentelor, creşterii densităţii acestora şi reducerii consumului de putere.
Reducerea frecvenţei de ceas este compensată prin mărirea gradului de paralelism,
folosind un număr mai ridicat de procesoare.
Procesorul de bază la IBM BlueGene/L este un PowerPC 440 la 700 MHz.
Două astfel de procesoare sunt amplasate pe un cip împreună cu o memorie cache
L3 de 4 MB partajată şi 2 KB memorie cache L2 pentru fiecare procesor. Fiecare
procesor are două porturi de încărcare şi unul de stocare către memoriile cache L2,
funcţionând cu 8 biţi/ciclu. Aceasta este jumătate din banda necesară celor două
unităţi de virgulă mobilă (FPU). Procesoarele au o memorie cache L1 de 32 KB
pentru instrucţiuni şi date, în situaţii favorabile atingând performanţe de 2,8
Gflops/2. Se observă că memoria cache L1 este mai mare decât L2, un lucru
neobişnuit, care permite însă atingerea unor viteze de procesare mai mari.

Sistemul este alcătuit astfel: sunt introduse două cipuri pe o placă cu o


memorie de 512 MB, şaisprezece asemenea plăci sunt plasate pe o altă placă nod,
iar 32 de plăci nod sunt introduse într-un aşa-numit cabinet. Aşadar, un cabinet
conţine 1024 cipuri (2048 CPU). Pentru configuraţia maximă, se folosesc 64 de
cabinete cuplate, care formează un sistem cu 65.356 cipuri şi 130.712 CPU.
Î
n modul normal de operare, o unitate de procesare a unui cip este folosită
pentru calcule, iar cealaltă, pentru sarcinile de comunicare. În acest fel,
performanţa de vârf teoretică a sistemului este de 183,5 Tflops. Dacă necesităţile
de comunicare sunt mici, se pot folosi ambele procesoare pentru calcule, dublând
viteza de vârf, ajungând la 360 Tflops.
Din punct de vedere al interconectării, BlueGene/L posedă mai multe reţele:
două reţele pentru conectarea procesoarelor, o reţea inel 3D şi o reţea arbore.
Reţeaua inel este folosită pentru comunicaţii generale, iar cea arbore pentru
comunicaţii colective: broadcast, operaţii de reducere etc. Lărgimea de bandă a
reţelei arbore este de două ori mai mare decât a reţelei inel, ajungând la 350 MB/s
(faţă de 175 MB/s).

Performanţele globale ale sistemului ajung la 280,6 Tflops pentru testul


Linpack. În urma rulării acestui benchmark, s-a efectuat rezolvarea unui sistem
liniar de N = 1.769.471 ecuaţii. Eficienţa rezultată a fost de 76%.

Supercalculatoarele care au la bază modelul IBM BlueGene/L şi versiunile


sale ulterioare (P, Q) implementează arhitectura masiv paralelă. Aceasta constă
într-un număr de procesoare (de obicei, foarte mare, de ordinul miilor) interconectate
şi controlate de un singur computer central. Fiecare CPU are memoria sa
şi spaţiul de date propriu, care conţine şi o copie a sistemului de operare. Toate
CPU-urile comunică între ele cu ajutorul unor interconectări de foarte mare viteză.

Arhitecturi biprocesor

Un sistem care suportă două procesoare trebuie să aibă o placă de bază


adaptată pentru a servi două CPU. În acest scop, placa de bază este dotată cu o
magistrală specială, a cărei construcţii depinde de la producător la producător, dar
care se conformează unor reguli generale.
Astfel, cele două CPU sunt servite de două interfeţe paralele cu magistrala
principală a sistemului, iar arbitrarea traficului pe aceasta este efectuată de un
controler specializat. Accesul la magistrală este multiplexat, astfel că la un anumit
moment de timp şi pentru o durată bine stabilită (fixă sau adaptată sarcinii curente)
accesul la magistrală îl are doar un singur procesor. Aceste tipuri de scheme pot
cuprinde zone de memorie cache comune (integral sau parţial), iar magistrala poate
fi cu lăţime variabilă sau cu adaptare dinamică la cereri.

Intel Xeon biprocessor


Sistemul este echipat cu două procesoare Intel Xeon instalate pe o placă de
bază de tipul Supermicro P4DC6+. Această placă de bază este dotată cu cipsetul
i860, constituit din trei componente principale: Intel 82806AA PCI 64 Hub (Intel
P64H din figura 2.39), Intel 82860 Memory Controller Hub (MCH din figura 2.39)
şi Intel 82801BA I/O Controller Hub (ICH2 din figura 2.48). Aceste blocuri
asigură un transfer foarte rapid de date atât între procesoare, cât şi între acestea şi
memorie sau dispozitive periferice.

Pentru aceasta, arhitectura pune la dispoziţie componentelor sistemului


(controlerul SCSI, sloturile PCI pe 32 sau 64 de biţi) magistrale distincte, care
asigură separarea fluxurilor de date. Acest lucru este vital într-un server în care
schimbul de date dintre componente este realizat în flux continuu. Tot pentru o
sporire a vitezei de lucru, s-a recurs la utilizarea memoriei de tip RDRAM.

AMD Opteron biprocesor


Sistemul cu două procesoare AMD Opteron 250 la 2,4 GHz foloseşte o placă
de bază dotată cu cipsetul NVIDIA nForce Professional 2200. Noutatea acestei
configuraţii este că procesoarele nu împart aceeaşi magistrală pentru a accesa
memoria, ca la sistemele tradiţionale. În acel caz, magistrala reprezenta „gâtul
sticlei” (bottleneck) sistemului, fiind un obstacol în calea procesării la potenţialul
maxim al CPU-urilor. Pentru a evita această limitare, AMD a recurs la o arhitectură
cu memorie cache neuniformă, de tip CC-NUMA (vezi figura 2.49).

Fiecare procesor dispune de un controler de memorie, care poate accesa o


porţiune de memorie rezervată doar lui. Sunt evitate astfel suprapunerile de date şi
alterarea reciprocă a datelor provenite de la procesoare diferite. În plus, cele două
CPU sunt interconectate printr-o magistrală de mare viteză, de tipul HyperTransport
(tehnologie patentată de AMD), care nu are legătură directă cu memoria (spre
deosebire de un sistem clasic) şi care asigură un dialog eficient între componente.
Cele două procesoare pot accesa memoriile proprii cu latenţe foarte mici (mult
mai mici decât la sisteme tradiţionale), precum şi memoria care nu le aparţine direct,
dar cu latenţe mari.
Aceasta nu constituie un dezavantaj, deoarece un CPU lucrează în mod normal
doar în zona de memorie care îi este repartizată. Totuşi această tehnologie are şi un
punct slab: organizarea corectă a memoriei este crucială. Astfel, arhitectura NUMA
trebuie suportată atât de sistemul de operare, cât şi de aplicaţii.
Sistemele de operare Windows XP şi Windows server 2003 suportă în
întregime această tehnologie, opţiunea activându-se automat la detectarea unui
sistem de acest tip.
Calculatoarele biprocesor se pretează pentru diverse aplicaţii complexe, care
necesită putere de calcul. Aici intră aplicaţiile grafice de modelare 3D, aplicaţiile
de reţea (mai ales dacă sistemul este unul de tip nod coordonator de trafic sau
server pentru subreţele de diverse dimensiuni) şi aplicaţiile specifice de prelucrare
a semnalelor în timp real. Tot ce au acestea în comun este faptul că sunt create
astfel încât să lucreze cu mai multe fire de execuţie simultan, conform principiilor
de calcul paralel. Aceste tipuri de algoritmi sunt create pentru a minimiza timpul de
execuţie foarte mare pe care îl implică acele aplicaţii în situaţii normale.
În ultima vreme, câştigă popularitate un nou tip de aplicaţii care pot folosi
arhitectura biprocesor, anume sistemele embedded. În esenţă, este vorba despre
conectarea în paralel, pe aceeaşi placă, a două (sau mai multe) procesoare
specializate, cu un scop bine definit, spre deosebire de calculatoarele personale,
care au scopuri multiple. De exemplu: prelucrarea unui semnal audio (codare şi
decodare) şi, eventual, transmiterea lui mai departe. Din această clasă fac parte
procesoarele DSP de la firma Texas Instruments. Premisa acestor aplicaţii este că
procesorul este adaptat să realizeze un număr restrâns de operaţii cu scopuri bine
determinate. În plus, DSP-ul este capabil să ruleze aplicaţii de sine stătătoare, care
să ofere interfaţă cu utilizatorul şi suport pentru memorare şi transmitere către alte
componente conectate la acesta. De exemplu: un subsistem care, conectat la un PC,
să codeze/decodeze fişiere audio în format mp3.

Pentium II biprocesor

Specific arhitecturii biprocesor Pentium II din figura 2.44 este magistrala


privată de date, care permite celor două chip-seturi cu funcţii particulare să
comunice între ele pe o cale directă, scurtă şi rapidă, fără a mai fi necesar ca
transferurile să treacă prin magistrala gazdă a sistemului.

AMD Athlon biprocesor


Este un exemplu de arhitectură biprocesor construită pe baza cipsetului 760
al firmei AMD (vezi figura 2.45). Creşterea performanţelor este realizată prin
utilizarea magistralei punct-la-punct (Point-to-Point) şi a modului snoop.
Modul snoop permite citirea datelor de către un procesor din celălalt
procesor (prin intermediul northbridge-ului), nemaifiind necesară accesarea
memoriei. Acest mod elimină tehnica prin care datele necesare unuia din cele două
procesoare erau înscrise în memorie de către primul procesor şi apoi citite de către
cel de-al doilea.

Cache

LRU vs LFU
LRU (Least Recently Used) and LFU (Least Frequently Used) are both cache replacement
policies used to manage the contents of a cache. These policies determine which data to
evict from the cache when it becomes full. Let's compare LRU and LFU in the context of
cache storage:

LRU (Least Recently Used):


1. Principle:
LRU removes the least recently used item from the cache. The idea is that if a
cache line hasn't been accessed recently, it's less likely to be used soon.
2. Implementation:
Requires maintaining a record of the order in which cache lines were accessed.
Typically implemented using counters, linked lists, or other data structures to
track usage.
3. Advantages:
Good performance for applications with temporal locality.
Often effective in scenarios where recently used items are more likely to be used
again soon.
4. Disadvantages:
Complexity: Requires additional bookkeeping to track access times.
May not perform well in scenarios with irregular access patterns.

LFU (Least Frequently Used):


1. Principle:
LFU removes the least frequently used item from the cache. It prioritizes keeping
items that are used more frequently.
2. Implementation:
Requires maintaining a count of how often each cache line is accessed.
When the cache is full, the item with the lowest access count is evicted.
3. Advantages:
Can be effective for applications with access patterns that exhibit varying
degrees of frequency.
Simplicity: Implementation is often straightforward with simple counters.
4. Disadvantages:
May struggle with sudden changes in access patterns.
Could be less effective if the cache contains items with initially high access
counts but are not accessed frequently afterward.

Comparison:
1. Complexity:
LRU tends to be more complex to implement due to the need to track the order of
access.
LFU is simpler in terms of bookkeeping but still requires counting access
frequencies.
2. Adaptability:
LRU can be more adaptive to changing access patterns.
LFU may struggle when access patterns change abruptly.
3. Performance:
LRU often performs well in scenarios with good temporal locality.
LFU may perform better in scenarios where there is a mix of frequently and
infrequently accessed items.
4. Overhead:
LRU can introduce additional overhead due to the need to update access time
records.
LFU's overhead is mainly related to counting access frequencies.

Ultimately, the choice between LRU and LFU depends on the specific characteristics of the
workload and access patterns in the application. Some systems may even use a
combination of these policies (e.g., LRU with aging) to balance their advantages and
disadvantages.

RW vs FIFO
Random Write (RW):
1. Principle:
RW or Random Write: This refers to the ability to write data to any location in
storage without regard to the order of previous writes.
2. Usage:
Common in Storage Systems: Random write is often associated with storage
devices like hard drives and solid-state drives, where data can be written to any
available location on the storage medium.
3. Pros:
Flexibility: Allows for efficient utilization of available storage space by writing
data wherever there is room.
Random Access: Suitable for scenarios where data access patterns are non-
sequential.
4. Cons:
Fragmentation: Over time, random writes can lead to data fragmentation,
impacting overall system performance.
Wear Leveling: Important in flash-based storage to distribute write/erase cycles
evenly across memory cells.

FIFO (First-In-First-Out):
1. Principle:
FIFO or First-In-First-Out: This algorithm processes items or data in the order
they were added, and the oldest items are the first to be removed.
2. Usage:
Data Processing: Commonly used in various contexts, including data buffering,
process scheduling, and print job management.
3. Pros:
Order Preservation: Ensures that data is processed in the order it was received.
Simplicity: Easy to implement and understand.
4. Cons:
Not Optimized for Random Access: FIFO is not designed for random access; it
is focused on preserving the order of data entry.
May Not Prioritize Urgent Data: If newer data is more critical, FIFO may not be
the most suitable algorithm.

Comparison:
Access Pattern:
RW: Supports random access, allowing writes to occur at any location.
FIFO: Sequential access, processes data in the order it was added.
Performance:
RW: Can be more efficient for non-sequential data patterns but may lead to
fragmentation.
FIFO: Preserves order but may not be optimized for scenarios where random
access is crucial.

The choice between Random Write and FIFO depends on the specific requirements of the
application or system, including data access patterns, system performance considerations,
and the importance of preserving the order of data.

ROM

256x8 ROM table


A 256x8 ROM (Read-Only Memory) means it has 256 memory locations, each storing 8
bits of data. The logic table of a ROM describes the output (data) for each possible input
address. In this case, since it's a 256x8 ROM, we'll have 256 rows (addresses) and 8
columns (data bits).

Un alt tip de memorie folosit în construcţia calculatoarelor şi a unor


echipamente periferice este memoria ROM (Read Only Memory). Spre deosebire
de memoria RAM, această memorie, odată scrisă prin procedee industriale, nu mai
poate fi ştearsă prin metode aflate la îndemâna utilizatorului; în plus, la decuplarea
de sub tensiune a calculatorului, informaţiile din ROM rămân intacte.

Organizarea memoriei sub formă de matrice permite reducerea numărului


intrărilor de adrese la un număr mai mic decât numărul liniilor şi al coloanelor
aferente informaţiei stocate. Numărul terminalelor de adresare poate fi micşorat
prin adresarea în cod binar şi utilizarea decodificatoarele binar-zecimale. Acest
mod de adresare în cod binar este utilizat şi în cazul memoriei RAM.

Exemplu. Fie o memorie ROM care conţine 8 cuvinte de câte 4 biţi (vezi
figura 3.63 a). O combinaţie binară care se aplică pe cele 3 intrări de adresă (A2,
A1, A0) selectează unul din cele 8 cuvinte, iar cei 4 biţi de date ai cuvântului
selectat sunt disponibili la ieşiri (O0, O1, O2, O3), cu condiţia ca semnalul de
validare a ieşirii, OE (Output Enable) să fie activ (activarea se face pe 0 logic).

Dacă OE = 1, ieşirile memoriei sunt în starea de impedanţă înaltă (high Z). Tabelul
de adevăr din figura 3.63 b este un exemplu care arată o posibilitate de
implementare a 4 funcţii binare de câte 3 variabile.

Asa trebuie desenat asta

S-ar putea să vă placă și