Documente Academic
Documente Profesional
Documente Cultură
Un sistem este tipic vazut ca o structura ierarhica. Fiecare nivel de ierarhie reflecta un aspect major al sistemului si contine numai un mic
subset din totalul parametrilor. Fiecare interfata dintre aceste niveluri variate este uzual asigurata pentru a fi relativ independenta de cele 2
niveluri de interfata. La nivelul cel mai inalt al ierarhiei este programul de aplicatii, adesea scris intr -un limbaj de nivel inalt. Astfel, limbajul
poate fi proiectat fara a lua in considerare ceea ce ramane din ierarhie. Mai jos de acest nivel se afla compilatorul si sist emul de operare.
Sistemul de operare dirijeaza resusele sistemului si furnizeaza servicii de baza ale sistemului. Sub acesta sta legatura arhitecturala, limita dintre
hardware si software. Aceasta cheie de legatura consta din toate facilitatile si operatiile care sunt facute disponibile pentru programator; de
exemplu, registre, setul de instructiuni, capacitatile de adresare. In final este nivelul hardware, care poate fi in plus stratificat intr-o organizare de
sistem (masina) incluzand structura pipe-line, microcod si flux de date, familii de circuite si tehnologia insasi.
Chiar daca nivelurile pot fi proiectate separat, proiectarea unui sistem poate fi imbunatatita daca mai multe niveluri ale ierarhiei sunt luate
impreuna. De exemplu, relatia de legatura intre compilarea limbajului de nivel inalt si arhitectura: la nivelul arhitectural, instructiuni simple dar
puternice au fost alese pentru a forma un compilator eficient; un set simplu de instructiuni poate face selectia codului in compilator mai usor;
mai mult, alegerea cu atentie a instructiunilor asigura lungimi de cale comparabile cu acelea generate cu un set complex de instructiuni; de
asemenea, prin neincluderea operatiilor memorie-memorie, dar permitand numai operatii registru-registru si incarca registru in si de la memorie,
compilatorul poate suprapune frecvent accesele de memorare cu executia altor instructiuni, dand un rezultat mai bun (output).
2.
4)
jocul de instructiuni trebuie sa se bazeze pe un format fix (de regula 32 biti), cu moduri de adresare simple (2 moduri: load si
store)
5)
fiecare operatie complexa trebuie sa fie rejectata la nivelul compilatorului
6)
ansamblul arhitecturii trebuie sa profite la maximum de pe urma modului pipeline
7)
procesorul trebuie sa posede un numar mare de registre interne (>10), cu sau fara tehnica de ferestre
8)
procesorul trebuie sa fie adaptat adaugarii sistemelor de memorie cache si coprocesoarelor
9)
setul de instructiuni este in general conceput pentru un domeniu de aplicatii perfect determinate
10)
~ 100 MIPS
Caracteristicile arhitecturilor CISC:
1)
set cat mai larg de instructiuni (>100)
2)
numar cat mai mare posibil de moduri de adresare (>4)
3)
mai multe formate de instructiuni (>4), deci lungime variabila a instructiunilor
4)
cele mai multe instructiuni se executa in mai mult de un ciclu masina
5)
accesele la memorie se fac prin tipuri variate de instructiuni
6)
existenta unui numar relativ mic de registre interne (<10)
7)
control programat
8)
instructiunile masina sunt de un nivel relativ inalt
9)
~ 10 MIPS
Paralela RISC vs. CISC:
viteza de executie (performanta) RISC poate fi crescuta printr-o proiectare atenta a caii de date, benzii de asamblare si a celorlalte
resurse ale CPU (aceasta si datorita setului redus de instructiuni si spatiului fizic redus al controlorului)
compilatoarele optimizate, capabile sa organizeze fluxul de instructiuni de asamblare in cea mai eficienta ordine, sunt usor de dezvoltat
pentru un set simplu si redus de instructiuni (aceasta a dus si la posibilitatea executiei unei instructiuni pe un ciclu masina)
sistemele RISC sunt mai orientate pe aplicatii si nu sunt utile in anumite medii de programare; ele au insa eficienta ridicata pe
aplicatii
compilatoarele optimizate pentru RISC solicita uzual mai mutl timp de executie decat cele neoptimizate utilizate de CISC (dat orita
task-urilor aditionale din timpul compilarii pentru managementul benzii de asamblare, anticiparii ramificatiilor si reorganizarii
codului); prin executi unei instructiuni pe un ciclu masina, RISC vor avea in general un timp mai scurt de executie
spre deosebire de CISC, in care multe registre interne sunt cu scop special, in RISC exista multe registre cu scop general
5.
a)
Sa se prezinte o modalitate de evaluare (pentru frecventa de executie a instructiunilor sau prin program) sau de
imbunatatire (prin utilizarea ben zilor d e asam b lare sau a m em oriilor interm ed iare cache incorp orate) a performantei
unui sistem cu microprocesor.
[milioane de instructiuni / sec]
b)
MFLOPS este dependent de masina si de program. Pentru ca nu este dependent de instructiuni, este destinat cu brio compararii diferitelor
sisteme. Din pacate, MFLOPS considera in general operatiile in VM, netinand cont de setul diferit de operatii in VM al diferitelor masini sau
de viteza diferitelor operatii in VM ale aceluiasi set. De aceea, in general un benchmark (program de evaluare a performantelor) calculeaza un
numar normalizat de operatii in VM.
6.
7.
Sa se prezinte capabilitatile unui sistem cu microprocesor oferite pentru a lucra cu memoria virtuala.
M em oria virtuala reprezinta o tehnica de organizare a m em oriei prin interm ediul careia program atorul vede un spatiu virtual de adresare
foarte m are si care, fara ca program atorul sa sim ta, este m apat n m emoria fizic disponibila. Uzual, spatiul virtual de adrese corespunde
suportului disc magnetic, programatorul avnd iluzia prin mecanismele de memorie virtuala (MV), ca detine o memorie (virtuala ) de capacitatea
hard-discului si nu de capacitatea memoriei fizice. n cazul MV, memoria principala este analoaga memoriei cache ntre CPU (Central
Processing Unit) si memoria principala, numai ca de aceasta data ea se situeaza ntre CPU si discul hard. Deci memoria principala (MP) se
comporta oarecum ca un cache ntre CPU si discul hard. Prin mecanismele de MV se mareste probabilitatea ca informatia ce se doreste a fi
accesata de catre CPU din spatiul virtual (disc), sa se afle n MP, reducnduse astfel dramatic timpul de acces.
De obicei, spatiul virtual de adresare este mpartit n entitati de capacitate fixa (4 64 Kb actualmente), numite pagini. O pagina poate fi
mapata n MP sau pe disc. n general, prin mecanismele de MV, MP contine paginile cel mai recent accesate de catre un program, ea fiind dupa
cum am mai aratat, pe post de cache ntre C P U si discul hard. Segmentarea constituie o alta varianta de implementare a MV, care utilizeaza n
locul paginilor de lungime fixa, entitati de lungime variabila zise segmente. n segmentare, adresa virtuala este consti tuita din 2 cuvinte: o baza a
segmentului si respectiv un deplasament (offset) n cadrul segmentului.
8.
Transformarea adresei virtuale emisa de catre CPU ntr-o adresa fizica (existenta n spatiul MP) se numeste mapare sau translatare. Asadar
mecanismul de MV ofera o functie de relocare a programelor (adreselor de program), pentru ca adresele virtuale utilizate de un program sunt
relocate spre adrese fizice diferite, nainte ca ele sa fie folosite pentru accesarea memoriei. Aceasta mapare permite aceluiasi program sa fie
ncarcat si sa ruleze oriunde ar fi ncarcat n MP, modificarile de adrese realizndu-se automat prin mapare (fara MV un program depinde de
obicei n executia sa de adresa de memorie unde este ncarcat).
Prin paginare, fiecare acces la o data necesita 2 accese la memorie: unul pentru obtinerea adresei fizice din tabela de pagin i, iar celalalt
pentru accesarea propriu-zisa a datei n M.P. n vederea reducerii acestui tim p de acces (dublu), tabela de pagini este casata (m em orata partial)
n CPU. Memoria cache care memoreaza maparea tabelei de pagini se numeste TLB (Translation Lookaside Buffer). Ca orice cache, TLB-ul
poate avea diferite grade de asociativitate. Exista evacuari/ncarcari ntre TLB si tabela de pagini din M.P. Deoarece TLB-ul este implementat n
general on -chip, capacitatea sa este relativ m ica. D e obicei T L B -ul se implementeaza complet asociativ (full-associative), pentru a avea o rata
de miss scazuta.
9.
Desi fiecare proces are propriul sau spatiu virtual de adresare, memoria fizica (MP) este partajata ntre mai multe procese ( procese
utilizator, SO, driverele I/O etc.). Desigur, trebuie sa se controleze strict accesul unui proces n zonele de cod si date ale altui proces rezultnd
necesitatea protectiei la scrieri/citiri.
Protectia este asigurata n principal prin:
moduri de lucru CPU de diferite nivele de privilegiu: modul supervizor (kernel, executiv) n care un proces poate sa execute orice
instructiuni si sa acceseze oricare resurse si respectiv modul user n care un proces are o multime de restrictii legate de protectia si
securitatea sistemului
control strict al S.O. asupra tranzitiilor din user n kernel (prin CALL GATES-uri - porti de apel - la o anumita adresa determinata din
spatiul de cod kernel)
protectie a paginilor prin drepturi de acces la pagina (read only, read/w rite etc).
10.
Type of Bus
Bus
Clock
Signal
Bus
Width
Theoretical Maximum
Transfer Rate
Advantages
Disadvantages
ISA
8 MHz
16-bit
8 Mbytes/sec (64
Mbits/sec)
low cost,
compatibility, widely
used
Microchannel
10
MHz
32-bit
40 Mbytes/sec (240
Mbits/sec)
obsolete
PCI
133
MHz
64-bit
1 Gbytes/sec (8
Gbits/sec)
64-bit
132 Mbytes/sec (1
Gbit/sec)
designed for
industrial use, hot
swapping/Plug &
Play, ideal for
embedded systems
16-bit
20 Mbytes/sec (160
Mbits/sec)
60 Mbytes/sec (480
Mbits/sec)
Enables multiple
PCs to remotely
share information
and peripheral
devices, provides
error checking
lacking in standard
serial
communication
All advantages of
10BaseT, with
significant speed
improvement.
Backward
compatible with
10Base T
installations.
CompactPCI
33
MHz
PCMCIA
10
MHz
USB 1.1
USB 2.0
Ethernet 10
Base T
Ethernet 100
Base T (Fast
Ethernet)
n/a
n/a
n/a
n/a
n/a
n/a
n/a
n/a
11.
Sa se prezinte sintetic o magistrala standard dintr-un sistem actual cu microprocesor: caracteristici, categorii de semnale,
protocol de functionare, posibilitati de conectare.
Semnale PCI:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
AD[31:0] (i/o tristated) PCI Address / Data - magistrala multiplexata de adrese si date; in timpul primului ceas al tranzactiei,
AD[31:0] contin o adresa fizica, iar in urmatorul, date (pentru 64 biti se preiau 2 cicli de date); in i/o se utilizeaza AD[1:0]
pentru adresare octet
C/BE[3:0]# (i/o tristated) PCI Bus Command / Byte Enabled - semnale multiplexate: in faza de adr. PCI Bus Command
indica tipul ciclului current, iar in faza de date PCI Byte Enabled indica octeti de date - sunt intrari pentru destinatie (PCI
target Slave) si iesiri pentru sursa (PCI initiator Master)
DEVSEL# (i/o tristated) Device Select - este determinat de dispozitivul care si-a decodificat adresa ca destinatie a accesului
curent; este utilizat ca intrare pentru PCI target si ca iesiri pentru PCI initiator (deriva din intrarea MEMCS#) - dispozitivul
testeaza un chip select primit din spatiul de adrese(ex: IDSEL Initialization Device Select)
FRAME# (i/o tristated) Cycle Frame - este determinat de un master pentru a indica inceputul si sfarsitul unei tranzactii;
activat la inceput si dezactivat la sfarsit
FLSHREQ# (i) Flush Request - este generat de un bridge standard de magistrala PCI pentru a comanda golirea (flush)
tuturor bufferelor de scriere pointate catre PCI Bus si dezactivarea lor
IORDY# (i/o tristated) Initiator Ready - este activat de un master pentru a indica faptul ca este permisa terminarea
transferului curent de date; este utilizat in conj. cu TRDY# - pe PCI datele sunt transferate pe fiecare ceas in care IRDY# si
T R D Y # sunt am bele active; in tim pul ciclurilor de read, IR D Y # este utilizat pentru a indica faptul ca m asterul este pregatit
sa accepte date, iar in timpul ciclurilor de scriere, IRDY# este utilizat pentru a indica faptul ca masterul a pus date valide pe
AD[31:0]. Sunt inserate stari de wait cand sunt active ambele IRDY# si TRDY#.
TRDY# (i/o tristated) Target Ready - indica abilitatea dispozitivului destinatie (target) de a termina faza curenta de
tranzactie date; utilizat cu IRDY# - pentru PCI master IRDY# este iesire si TRDY# este intrare; pentru PCI slave IRDY#
este iesire, iar TRDY# intrare
MEMREQ# (i) Memory Request - este generat de un bridge standard de magistrala P C I (IS A , E IS A , ) pentru a garanta
accesul intarziat de master standard de magistrala la memoria principala; in conjunctie cu FLSHREQ#. Odata ce bufferele au
fost golite, MEMACK# este activat continuu pana la dezactivare MEMREQ#
MEMACK# (o) Memory Acknowledge - este generat ca raspuns la FLSHREQ# sau MEMREQ# de la un bridge de mag
MEMCS# (i) Main Memory Chip Select - cand este activ indica mag. PCI ca un ciclu master PCI este destinat mem.
principale; M E M C S # este generat de un expansions bridge - MEMCS# este esantionat de mag PCI pe frontul crescator al
PCLKIN pe primul si al 2-lea ciclu dupa activare FRAME#
PAR (i/o tristated) PCI Parity - este paritatea para peste liniile AD[31:0] si C/BE[3:0]#, generata pe toate tranzactiile de
magistrala; dispozitivele target dau PAR in timpul unei faze de citire date
PERR# (i/o tristated) PCI Parity Error - este determinat de un agent care primit date cu eroare de paritate, un ceas dupa
activarea PAR
PGNT# (i) PCI Grant - indica permiterea accesului la magistrala PCI de catre arbitrul de magistrala
PREQ# (o) PCI Request - este activat spre arbitrul PCI pentru a cere magistrala PCI
PLOCK# (i/o tristated) PCI Lock - este activat de un agent care cere accesul exclusiv la o destinatie
SERR# (o) PCI System Error - este activat de un bridge PCI pentru a alerta sistemul de erori grave; anumite
evenim ente(eroare paritate adresa si date, ) pot genera optional S E R R # - in mod tipic SERR# produce un NMI
STOP# (i/o tristated) Stop - este o cerere de la destinatie catre master de a opri tranzactia curenta - este utilizat in conjunctie
cu DEVSEL# pentru a indica cicli de deconectare, abandonare si reluare(disconnect, target-abort & retry cycles) - este
intrare pentru PCI initiator(masterul PCI va opri tranzactia) si iesire pentru PCI target(slave PCI) - STOP# ramane activ pana
la dezactivarea FRAME#
PCIRST# (o) PCI RESET - este activat pentru a initia un hard reset pe PCI Bus
PCLKIN(i) PCI Clock Input - deriva dintr-un driver de ceas extern si trebuie sa coincida cu PCLK la sloturile PCI,
furnizeaza timing-ul pentru toate tranzactiile de pe magistrala PCI - toate celelalte semnale PCI sunt esantionate pe frontul
crescator al acestui semnal
PCLK(o) PCI Clock - deriva din ceasul procesorului
Protocolul de functionare:
Un agent cere magistrala PCI prin activarea PREQ#. Cand arbitrul determina ca un agent poate utiliza magistrala PCI, el activeaza PGNT# catre
agent. Reguli:
a) daca PGNT# este dezactivat odata cu activarea FRAME, tranzactia pe magistrala este valida si va continua
b) un P G N T # poate fi negat odata cu activarea altuia, daca m agistrala nu este in stare idle (N o action); totusi, o intarzie re de 1 ceas este
inserata
c) cat timp FRAME# este negat, PGNT# poate fi negat in orice moment pentru a servi masterul cel mai prioritar
d) daca MEMREQ# si MEMACK# sunt activate, odata ce masterul este permis pe magistrala PCI, arbitrul nu va schimba permisia pa na ce
masterul isi anuleaza cererea.
12.
I4004
4 biti
primul uP
1972
I8008
8 biti
16k
primul pe 8 biti
1974
8080
8 biti
64k
primul uP de succes
1978
8086
16 biti
1M
primul uP pe 16 biti
1982
80286
16 biti
16M
PC-AT
1985
80386
32 biti
4G
primul uP pe 32 biti
1989
80486
32 biti
4G
FPU incorporat
1993
Pentium
32 biti
4G
pipeline
1995
P. Pro
32 biti
64 G
superpipeline
2001
Itanium
64biti
2002
Itanium 2
64biti
2003
Opteron /
Athlon 64
64biti
14.
NLX - a 'low-profile' motherboard, again incorporating a 'riser', designed in order to 'keep up with market trends'. NLX never gained
much popularity.
BTX (Balanced Technology Extended) - a newer standard proposed by Intel as an eventual successor to ATX.
microBTX and picoBTX - smaller subsets of the BTX standard.
Mini-ITX - VIA's highly-integrated small form factor motherboard, designed for uses including thin clients and Set-top box.
WTX (Workstation Technology Extended) - a large motherboard (more so than ATX) designed for use with high-power workstations
(usually featuring multiple processors or hard drives.
Sockets:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
15.
16.
Hyper-Threading (HT) Technology was developed to improve the performance of IA-32 processors when executing multi-threaded
operating system and application code or single-threaded applications under multi-tasking environments. The technology enables a single
physical processor to execute two or more separate code streams (threads) concurrently. Architecturally, an IA-32 processor that supports HT
Technology consists of two or more logical processors, each of which has its own IA-32 architectural state. Each logical processor consists of a
full set of IA-32 data registers, segment registers, control registers, debug registers and most of the MSRs. Each also has its own advanced
programmable interrupt controller (APIC).
Unlike a traditional MP system configuration that uses two or more separate physical IA-32 processors, the logical processors in an IA-32
processor supporting HT Technology share the core resources of the physical processor. This includes the execution engine and the system bus
interface. After power up and initialization, each logical processor can be independently directed to execute a specified thr ead, interrupted, or
halted.
17.
The P4 is based on Intel's radical new NetBurst microarchitecture. The Intel NetBurst microarchitecture provides:
T he R apid E xecution E ngine
Arithmetic Logic Units (ALUs) run at twice the processor frequency
Basic integer operations can dispatch in 1/2 processor clock tick
Provides higher throughput and reduced latency of execution
H yper-Pipelined Technology
Deep pipeline to enable industry-leading clock rates for desktop PCs and servers
Frequency headroom and scalability to continue leadership into the future
A dvanced D ynam ic E xecution
Deep, out-of-order, speculative execution engine
U p to 126 instructions in flight
U p to 48 loads and 24 stores in pipeline2
Enhanced branch prediction capability
R educes the m isprediction penalty associated w ith deeper pipelines
A dvanced branch prediction algorithm
4K -entry branch target array
N ew cache subsystem
A dvanced E xecu tion Trace Cache stores decoded instructions
E xecution T race C ache rem oves decoder latency from m ain execution loops
E xecution T race C ache integrates path of program execution flow into a single line
L ow latency data cache
F ull-speed, unified 8-way Level 2 on-die Advance Transfer Cache
B andw idth and perform ance increases w ith processor frequency
H igh -performance, quad-pumped bus interface to the Intel NetBurst microarchitecture
system bus
Supports quad-pumped, scalable bus clock to achieve up to 4X effective speed
Capable of delivering up to 3.2 to 6.4 GB of bandwidth per second
S uperscalar issue to enable parallelism
18.
Sa se clasifice smnalele unui procesor CISC (Intel Pentium, AMD K5 sau Motorola 68020) pe categorii functionale
19.
(13) Request Pending & NA# sampled asserted: If NA# was sampled asserted and there is a new request pending, it goes to T12 state.
(14) No Request Pending + NA# Negated:If there is no new request pending, or NA# was not asserted, it goes to T2 state.
Ti: This is the bus idle state. In this state, no bus cycles are being run. The Pentium processor may or may not be driving the address and status
pins, depending on the state of the HLDA, AHOLD, and BOFF# inputs. An asserted BOFF# or RESET will always force the state machine back
to this state. HLDA will only be driven in this state.
T1: This is the first clock of a bus cycle. Valid address and status are driven out and ADS# is asserted. There is one outstanding bus cycle.
T2: This is the second and subsequent clock of the first outstanding bus cycle. In state T2, data is driven out (if the cycle is a write), or data is
expected (if the cycle is a read), and the BRDY# pin is sampled. There is one outstanding bus cycle.
T12: This state indicates there are two outstanding bus cycles, and that the Pentium processor is starting the second bus cycle at the same time
that data is being transferred for the first. In T12, the Pentium processor drives the address and status and asserts ADS# for the second
outstanding bus cycle, while data is transferred and BRDY# is sampled for the first outstanding cycle.
T2P: This state indicates there are two outstanding bus cycles, and that both are in their second and subsequent clocks. In T2P, data is being
transferred and BRDY# is sampled for the first outstanding cycle. The address, status and ADS# for the second outstanding cycle were driven
sometime in the past (in state T12).
TD: This state indicates there is one outstanding bus cycle, that its address, status and ADS# have already been driven sometime in the past (in
state T12), and that the data and BRDY# pins are not being sampled because the data bus requires one dead clock to turn around between
consecutive reads and writes, or writes and reads. The Pentium processor enters TD if in the previous clock there were two outstanding cycles,
the last BRDY# was returned, and a dead clock is needed.
20.
21.
Sa se prezinte si sa se carcaterizeze modurile de lucru ale unui processor CISC
Operation modes There are several modes of processor operation; most notably real mode and protected mode for the i386 architecture, and
long mode for newer processors. The language is essentially the same but involves different ways of accessing memory and thus employs
different programming strategies.
Real mode - Real mode is mostly 16-bit, but since the 80386 it is possible to use 32-bit registers in this mode. It is also possible to enable
partial 32-bit addressing in real mode through a bug/feature that appears under certain conditions when switching from protected mode back to
real mode. Some DOS extenders make use of this to make it possible to access more than 1 megabyte of RAM. This bug-mode is sometimes
called unreal mode by assembly programmers.
Protected mode - Protected mode (or 386 protected mode) enables full 32-bit addressing, paging, memory protection, hardware-support for
multitasking, a few more registers and some new instructions to handle the 32-bit addressing. The instruction set in protected mode is perfectly
backward compatible with the one used in real mode. 16-bit protected mode also exists, but is almost never used. It was used in early operating
systems that needed memory protection. The mode delivers 24-bit addressing, which gives a maximum capability of 16 megabytes of memory.
Some early Unix operating systems and OS/2 used this mode.
Long mode - Long mode is a mode that enables 64-bit addressing, 64-bit extensions of most registers and some new 64-bit registers as
well. It is mostly an extension of the 32-bit instruction set, but some instructions have been replaced by new ones, making the resulting
instruction set not entirely backwards compatible.
x86-family processors boot into real mode for backward compatibility with the older 8086 class of processors. Typically, the operating
system is responsible for switching to protected mode if it so wishes. Recently, long mode has been created as a 64-bit environment for the x86processors. Processors with the ability to change into long mode are said to belong to the x86-64-family. AMD Athlon64 is one x86-64
processor. To switch to long mode, the processor has to first switch from real mode to protected mode, and then to long mode. This behaviour
guarantees backward compatibility.
22.
1.
2.
3.
4.
5.
6.
7.
8.
9.
23.
Flat model: The simplest model is the flat model. In this model, all segments are mapped to the entire physical address space. A segment offset
can refer to either code or data areas. To the greatest extent possible, this model removes the segmentation mechanism from the architecture seen
by either the system designer or the application programmer. This might be done for a programming environment like UNIX, which supports
paging but does not support segmentation.
Protected Flat Model: The protected flat model is like the flat model, except the segment limits are set to include only the range of addresses
for which memory actually exists. A general-protection exception will be generated on any attempt to access unimplemented memory. This
might be used for systems in which the paging mechanism is disabled, because it provides a minimum level of hardware protection against some
kinds of program bugs.
Multisegment Model: The most sophisticated model is the multisegment model. Here, the full capabilities of the segmentation mechanism are
used. Each program is given its own table of segment descriptors, and its own segments. The segments can be completely private to the program,
or they can be shared with specific other programs. Access between programs and particular segments can be individually controlled.
24.
2.
If any of these rules are violated by an application, a general protection fault (interrupt 13) will occur.
Limit Checking: The concept of limit checking is very simple. Limit checking prevents a program from accesses outside the bounds of a
segment. Limit checking is automatically performed by the processor every time a memory reference is made to either a code or data segment. If
a segment is defined to be 22- bytes long, an application should not be allowed to use that segment to access data above base+21h, precisely
what limit checking prevents. If you noticed the limit part of the descriptor is only 20-bits (1 MB worth) and segments can be up to 4GB in size.
This is where the descriptors granularity (G) bit comes into play. If the G-bit = 0 the limit is checked to the byte, making the maximum size of a
segment 1MB. If the G-bit = 1, limit checking is performed with a granularity of 4KB (4KB*1MB = 4GB), thus allowing segments up to 4GB in
size.
Privilege Levels: The Intel Architecture provides a way of controlling what types of applications that have access to; system objects, segments,
and memory or I/O mapped hardware. This is done in the protection mechanism by having up to four different privilege levels, numbered 0 to 3.
A lower number implies greater privileges. There is no explicit way to turn off privilege levels, but it can be done by assigning all objects and
segments a privilege level of 0.
27.
Caracteristici:
1) instructiunile trebuie sa fie in numar redus si sa se execute intr-un singur ceas
2) accesele la memorie sunt limitate la 2 instructiuni, botezate load si store
3) decidificarea instructiunilor este cablata si nu microprogramata
4) jocul de instructiuni trebuie sa se bazeze pe un format fix (de regula 32 de biti) cu moduri de adresare simple
5) fiecare operatie complexa trebuie sa fie rejectata la nivelul compilatorului
6) ansamblul arhitecturii trebuie sa profite la maximum de pe urma modelului pipeline
7) procesorul trebuie sa posede un numar mare de registre interne, cu sau fara tehnica de ferestre
8) procesorul trebuie sa fie adaptat adaugarii sistemelor de memorii cache si coprocesoare
9) setul de instructiuni este in general conceput pentru un domeniu de aplicatii perfect determinat
Categorii de instructiuni Pentru orice procesor RISC vom regasi
trei categorii de instructiuni indispensabile: 1) instructiuni aritmetice
si logice; 2) instructiuni de control secvential; 3) instructiuni de
acces la memorie
Formatele instructiunilor Se adopta un format fix pentru
ansamblul instructiunilor. Marimea este in general echivalenta
marimii unui cuvant de memorie, adica in majoritatea cazurilor 32
biti. Pe baza acestei marimi fixe se determina numarul exact si
compunerea formatelor instructiunilor. Majoritatea arhitecturilor
RISC sunt caracterizate printr-un mic numar de formate si moduri de
adresare (1 ... 4). Ex : procesorul SPUR are 2 formate principale de
baza (unul cu 3 instructiuni pentru codificarea instructiunilor in operatiile aritmetice si logice si unul pentru instructiunile de control).
28.
29.
Power Macintosh: A ceste sistem e folosesc un sasiu tip 680x0 M ac ceea ce face posibil upgrade -ul prin schimbarea placii de baza.
Ele au de asemenea un pachet de emulare care poate rula atat DOS cat si Windows. Sistemul 8100/80 are sasiu tip Quadra 800/Quadra 840 AV
cu alimentare de 200W si suport intern pentru 3 hard-drive-uri, 8 socket-uri SIM de 72 pini expandabili RA la 264 MB. Suporta un al doilea
monitor ( VRAM poate fi pana la 4 MB) permitand acum chiar si un monitor 21 inch color de 24 biti, facand sistemul ideal pentru grafica
profesioanala si prelucrari de imagine. 8100/80 suporta 2 magistrale SCSI (intern si extern). Magistrala SCSI interna utilizeaza un controller
rapid SCSI-2. pana la 10 MB/sec pe magistrala interna. slot de cache pentru L2, un SIMM pentru un SRAM sincron de 256 KB de 14 nsec.
Sistemele Power Mac au 4 MB de ROM la 100 nsec motati pe un socket SIMM ce permite acualizarea ulterioara a softului .O
magistrala de date de 64b leaga procesorul 601 de ROM, RAM, slotul cache si sloturile de expandare. Schema suporta un nivel 2 de cache de
128 KB 1 MB. Subsistemul de memorie utilizeza un ciclu (pana la 64 b sau 8 octeti) sau patru cicli (32 octeti) burst posibil pentru 601. T oate
cele trei sisteme utilizeaza DRAM de 80 nsec (care reduce costul). Deasemanea, magistrala CPU este esantionata la jumatate di n frecveata
procesorului;
P entru un throghput m are de I/O se foloseste un I/O A S IC pentru conectare E thernet serial si S C S I I/O ; pentru serial I/O sunt
furnizate doua buffere de 8b FIFO. I/O ASIC implementeaza controller SCSI-2, maxim 5 MB/sec. al doilea chip controller SCSI-2, NCR
53CF96, conectat la o magistrala SCSI interna de 50 pini. Urilizand un SCSI-2 rapid, magistrala interna poate functiona la o rata de 10MB/sec.
conector intern CDROM.
Sistemele Power Mac au de regula 2 porturi seriale GeoPort cu 9 pini compatibili cu conectorii mini-DIN-8. Oricare port poate fi
configurat pentru modem/decodificator de sunet digital pe 16b pentru sunet I/O.
Canalele DMA nu pot fi utilizate in acelasi timp, deoarece majoritatea driveurilor si aplicatiilor utilizeaza curent call-uri de I/O sincrone (se
asteapta pana cand cererea de operare I/O se termina). Daca softul este modificat sa utilizeze call-uri asincrone, conflictul de mai sus nu exista si
aplicatiile vor fi liberesa execute task-uri in timp ce apare o operatie I/O.
30.
Sa se prezinte resursele unui procesor RISC (VLIW) din punct de vedere al programatorului
32.
Registre cu scop general (General Purpose Registers): 32 de registre (ri) utilizate de unitatea de intregi pentru a efectua operatii
aritmetice
Registre in VM (Floating Point Registers): 32 de registre (fri) utilizate in unitatile de VM
Registrul de conditii (Condition Register): similar cu registrul EFLAGS de la x86. Are 8 campuri de 4 biti: CR0:CR7.
Registrul de control si stare VM (Floating Point Status and Control Register): inregistreaza, activeaza/dezactiveaza exceptiile generate
de operatiile in VM, controleaza modul de rotunjire.
Registrul de Exceptii Intregi (Integer Exception Register): inregistreaza, activeaza/dezactiveaza exceptiile generate de operatiile intregi
Registrul Legaturi (Link Register): furnizeaza adresa de ramificatie pt utilizare cu instructiunea bclr
Registrul Contor (Count Register): registru de contor de bucle
Registrul Baza de Timp (Time Base Register): singurul definit pentru VEA si poate fi accesat in ambele moduri (user, supervizor)
Sa se prezinte un mecanism de translatare a adreselor pentru un procesor RISC
Translatarea adreselor pe blocuri: maparea BAT este
activata doar cand translatarea adresei este acivata in MSR
(MSR[DR] = 1 si/sau MSR[IR]=1). BAT are prioritate fata de
segmentare/paginare. In translatarea BAT fiecare bloc de
memorie este definit printr-o pereche de registre
BAT(BATU,BATL). Cand procesorul recunoaste o adresa
efectiva ca fiind mapata la o ppereche de registre BAT, apare un
BAT Hit. Procesul de translatare BAT se desfasoara conform
schemei:
Bitii de validare acces din BAT realizeaza protectia memoriei.
33.
Aplicatii:
a) Telecomunicatii: generare ton, teleconferinte, posta vocala, transcodare
b) Comunicatii de date: modemuri de inalta viteza si frecventa pe biti multipla, facsimile de inalta viteza
c) Radiocomunicatie: comunicatie sigura, punct la punct sau radio-emisie
d) Calculatoare: procesoare, statii de lucru, acceleratoare grafice
e) Procesare imagini: recunoastere imagini, caractere
f) Grafica: 3D, animatie
g) Video Digital: televiziune digitala, monitoare de inalta rezolutie
h) Electronica medicala: scanari, sonografe, electrocardiograme, electroencefalograme etc
34.
a)
b)
c)
d)
e)
f)
g)
h)
i)
35.
36.
Sa se prezinte resursele unui procesor de semnal sau embedded din punct de vedere al programatorului
Registre generale de date: X0, X1, Y0, Y1 pe 24 de biti (4 intrari) sau 2 intrari de 48 de biti X si Y
Registre acumulator: A si B pe 48 de biti cu extensie de 8 biti pentru lucrul cu 56b
37.
38.
Sa se realizeze o comparatie intre modelul masinii de stare al arhitecturii VLIW si modelele masinii de stare pentru alte
arhitecturi de procesare (SISD, SIMD, MIMD)
SISD
VLIW
MIMD
39.
Software pipelining = distributia unei bucle pe mai multe procesoare sau unitati functionale prin atribuirea de stari independente la
procesoare/unitati functionale si apoi inlanturea continua a operatiilor
Desfasurarea buclelor = pentru bucle fara dependente de date intre iteratii, se expandeaza iteratiile unei bucle de multiple ori si se planifica
instructiunile din bucla desfasurata crescand distanta lexicala intre instructiuni cu dependente
Trace scheduling = primul proces, trace selection, incearca sa gaseasca cea mai potrivita secventa de operatii care vor fi asamblate impreuna
intr-un nr mic de instructiuni (trace); trace compaction, incearca sa comprime urma intr-un nr mic de instructiuni lungi
Percolaction scheduling = extrage operatii independente din codul programului si le asambleaza intr-o instructiune VLIW de lungime
corespunzatoare