You are on page 1of 21

AC14L01

Arhitectura calculatoarelor (2C, 2L, 14 saptamani)


1. Descrierea cursului
Obiectivele cursului:
Pregtirea studenilor pentru:
Aplicarea metodelor de reprezentare si de proiectare la nivel de sistem
Specificarea Arhitecturii Setului de Instruciuni (ASI)
A scrie programe simple in limbaje de asamblare si cod maina
A specifica, proiecta, implementa si testa Unitati Centrale de Prelucrare (UCP)- Microarhitecturi - Cai de date si Unitati de comanda
A nelege organizarea Memoriei si I/O
A nelege Tendinele moderne in arhitectura calculatoarelor
Coninutul cursului
01. Introducere.
02. Proiectarea Sistemelor Digitale
03. Proiectare CPU - Single Cycle CPU
04. Proiectarea Unitatii Aritmetice-Logice (UAL).
05. Proiectare CPU Pipelined CPU.
06. Proiectare CPU - Multi Cycle CPU 1
07. Examen- partial
08. Proiectare CPU - Multi Cycle CPU 2
09. I/O si structuri de interconectare
10. Memorii ierarhice
11. Pipeline - Avansat .
12. Predicia salturilor condiionate
13 Arhitecturi Superscalare
14. Multiprocesoare
Obiectivele lucrrilor de Laborator si de Casa:
Lucrrile de laborator si de casa sunt componente obligatorii ale cursului de Arhitectura
Calculatoarelor. Obiectivele lucrrilor de laborator si de casa:
- A invata studenii sa opereze cu conceptele si metodele prezentate in curs.
- A dezvolta abilitai practice pentru programare in limbaj maina, specificarea si
proiectarea micro - arhitecturilor folosind RTL si CAD, implementri de microarhitecturi folosind VHDL.
Temele principale de laborator:
- Proiectare cu instrumente Xilinx ISE Webpack si placi de dezvoltare cu FPGA
- Componente hardware sintetizabile in VHDL; implementate si testate pe placi cu
FPGA.
- Limbaj de asamblare MIPS, rularea unor programe simple pe CPU implementat.
- Proiectarea (VHDL), implementarea si testarea (placi cu FPGA) a unor microarhitecturi MIPS
Lucrrile de casa dezvolta abilitatea studenilor pentru abordarea problemelor de laborator
si de examen

Coninutul Laboratorului:
Laborator
1
Introducere ISE Xilinx
2
CPU - componente

Tema de casa

3
4
5
6
7
8
9
10
11
12
13
14

Single cycle CPU 1


(MIPS).
Single cycle CPU 2
(MIPS).
Pipelined CPU
Etajul IF
Etajul ID
Etajul EX
Etajele MEM, WB
CPU - testare
I/O, Comunicare
CPU prezentare 1
CPU prezentare 2
Test final si evaluare

Proiectare sisteme
digitale

ALU, Single cycle CPU

Pipelined, Multi cycle CPU

Memoria, pipeline avansat

Evaluri:
- Examen scris (E).
- Evaluarea lucrrilor de laborator (LA).
- Evaluarea temelor de casa (HA).
Nota = 0.5*E + 0.5*(0.7*LA + 0.3*HA)
Condiia de promovare E >4 & LA >4 & HA >4
Bibliografie:
[1] D. A. Patterson, J. L. Hennessy, Computer Organization and Design: The
Hardware/Software Interface, 3rd edition, ed. MorganKaufmann, 2005.
[2] D. A. Patterson and J. L. Hennessy, Computer Organization and Design: A Quantitative
Approach, 3rd edition, ed. Morgan-Kaufmann, 2003.
[3] Vincent P. Heuring, et al., Computer Systems Design and Architecture, AddisonWesley, USA, 1997.
[4] D. M. Harris, S. L. Harris, Digital Design and Computer Architecture ('DDCA'), Morgan
Kaufmann, San Francisco, 2007. ISBN 13: 978-0-12-370497-9; ISBN 10: 0-12-370494-9
[5] D. A. Patterson, J. L. Hennessy, ORGANIZAREA SI PROIECTAREA
CALCULATOARELOR. INTERFATA HARDWARE/SOFTWARE, Editura ALL, Romania,
ISBN: 973-684-444-7.
Arhitectura Calculatoarelor; pagina WEB:: http://users.utcluj.ro/~nedevski/CA
Cursul este disponibil: http://users.utcluj.ro/~nedevski/CA/schedule.html
Lucrri de laborator: http://users.utcluj.ro/~nedevski/CA/labs.html
Actualizari: Serverdomeniu, Laborator, Curs - Tabla

Arhitectura Interfaa intre un utilizator si un obiect

Computer Architecture is the science and art of selecting and interconnecting hardware
components to create computers that meet functional, performance and cost goals. WWW Computer Architecture Page

5 clase de calculatoare.
Vanzari in 2010 ~ 1.8 billion PMDs (90% cell phones), 350 million desktop PCs, si 20
million servers. Numar total de embedded processorsvandute ~19 billion.
ARM (Advanced RISC Machine) cel mai popular RISC
ARM processors ~ 6.1 billion chips in 2010, ~ 20 de ori mai multe ca procesoare 80x86
Tablete si smart phon-uri -- era PostPC, PC personal mobile device (PMD)
Opt idei mari in arhitectura calculatoarelor
1
Proiectare tinand seama de legea lui Moore
Resurse de circuite integrate se dubleaza fiecare 18 24 luni, predictie din 1965 de
Gordon Moore, unul dintre fondatorii Intel.
Proiectare calculatoarelor dureaza ani arhitectii trebuie sa anticipeze starea
tehnologiei la momentul finalizarii proiectului
2
Folosirea abstractiilor pentru simplificarea proiectarii
Cresterea productivitatii proiectarii prin folosirea abstractiilor pentru reprezentarea
proiectelor la diferite nivele de reprezentare; detaliile de nivele mai joase sunt mascate
pentru a oferi un model mai simplu la nivele mai inalte
3
Executia rapida ale cazurilor comune
Mai productiv decat optimizarea cazurilor rare
o Experimentari pentru stabilirea cazurilor comune
4
Performanta prin paralelism
Cresterea performantei prin executerea sarcinilor in paralel
Paralelism la nivel de date latimea datelor
Instruction level parallelism ILP Paralelism la nivel de instructiuni - pipeline
Thread level parallelism TLP multithreading incarcarea unitatilor functionale
Paralelism la nivel de procesor multicore, multiprocessor
5
Performanta prin Pipeline
Paralelism important cu denumire consacrata: pipelining.
6
Performanta prin Predictie
Executie pe baza de predictie
Nu se asteapta pentru o executie sigura, presupunand
o Mecanism pentru rezolvarea predictiilor eronate
Predictia salturilor conditionate, executie speculativa
7
Hierarhia Memoriilor
Memorii rapide, mici si scumpe la varful hierarhiei.

Memorii lente, mari si ieftine la baza hierarhiei.


Iluzia unei memorii mari, ieftina si rapida
8
Fiabilitate prin redondanta
Componente redondante pentru detectarea si repararea defectiuilor
Nivele de abstrctie

Hierarhia abstractiunilor

Layout/silicon level

Circuit level

Logic (gate) level

Register-transfer level (RTL)

Algorithmic level

System level

ISA - instruction set architecture

Interfata hardware-software

Nivele de abstractie
Gajskis Y-chart.
Behavioral Domain: comportament specificatie - ce trebuie sa realizeze priectul
Structural Domain: maparea reprezentarii coportamentale la componente
Physical Domain: transferul structurii pe siliciu
Aceeasi ISA - organizari diferite; MIPS: single cycle, multi cycle, pipelined
O arhitectura particulara se poate implementa prin microarhitecturi diferite, cu diferite
constrangeri de pret/performanta/putere -- compatibilitate
Modern ISA-uri:
IA-32, PowerPC, MIPS, SPARC, ARM, .
Componentele ISA
Organizarea memoriei programabile - memorii, registri
Tipuri de date: codificare si reprezentare
Setul/formate de instructiuni
Moduri de adresare si accesarea datelor/instructuiunilor
Conditii de exceptii (intreruperi, protectii, I/O)
CISC (Complex Instruction Set Computing) x86
Exemple: x86, VAX, Motorola 68000, etc.

Intels modern x86:

RISC Inside

RISC (Reduced Instruction Set Computer)


Exemple: PowerPC, ARM, SPARC, Alpha, PA-RISC, MIPS
RISC a castigat batalia tehnologica - embedded computing
CISC a castigat spatiul comercial (de la 1990 pana azi)
RISC vs.
Executia Single-cycle posibil
Control cablat Hardwired
Arhitectura Load/store
Moduri adresare memorii-#redus
Format instructiune- lungime fixa
Numar mare de registre

CISC characteristcs
multe operatii multicycle
microcod pentru operatii multi-cycle
register-memory si memory-memory
# mare
multe formate si lungimi
numar redus de registre

Clasificare ISA - patru clase -- formate de instructiuni


Format cu Zero adrese: operanzi in stiva
Add
M[sp-1] M[sp] + M[sp-1]
Load
M[sp] M[M[sp]]
Stiva poate fi in registri sau in memorie
De obicei varful stivei memorat in registru
Format cu 1 adresa: masina tip Acumulator
Acumulatorul operandul implicit
Format cu 2 adrese: destinatia este una dintre operanzii surse
Reg (Reg op Reg)
RI (RI) op (RJ)
Reg (Reg op Mem)
RI (RI) op M[x]
Formate cu 3 adrese: O destinatie si doua surse per instructiune
Reg (Reg op Reg)
RI (RJ) op (RK)
Reg (Reg op Mem)
RI (RJ) op M[x]

Localizarea Operanzilor pentru 4 clase de ISA.


(a), Registrul Top Of Stack (TOS) - indicaoperandul de varf, care se combina cu operandul
urmator. Operandul (TOS) se indeparteaza de la stiva.
Rezultatul ia locul operandului al doilea, TOS - actualizat, indica rezultatul.
Toti operanzii sunt impliciti.
(b), Acumulatorul este operand de intrare implicit, apoi primeste rezultatul operatiei
(c), operanzii provin din registre sau din memorie, rezultatul merge la registre.
(d) Operanzi numai din registre, ca si pentru stiva-instructiuni separate pentru transfer
memorie: push sau pop pentru (a) si load sau store pentru (d).
Masini cu 0, 1, 2, 3 addrese

Secvente de cod pentru C = A+B - 4 clase de seturi de instructiuni


Instructiunea Add are operanzi impliciti pentru arhitecturi stiva si acumulator, explicit
pentru arhitecturi cu registre. A, B si C se gasesc in memorie

Processor Datapath + Control


Princeton, Von Neumann
Harvard architecture

Princeton
Harvard
- Memorie comuna pentru instructiuni si date
- Memorii separate pentru instructiuni si date

Descriere RTL (Register Transfer Level)


O metoda de proiectare in care functionarea sistemului se descrie prin manipularea si
transferul datelor intre registre

Standard Model pentru CPU, micro-controler.... Cai de date


RTL abstract specificatie comportamentala; face abstractie de structura sistemului
digital; fara legatura cu resurse/constrangeri de spatiu si timp
RTL concret implementarea specificatiei comportamentale pentru o structura
concreta, (pe perioade de clock), avand in vedere constrangerile spatiale si temporale.
Exemple operatii RTL

Assignment.
=,
Tests for equality and inequality.
||
Bit string concatenation.
XY
Data transfer of contents of regY to regX
X0
Clears regX
XY+Z
Adds contents of regY with regZ, load into regX
X Y v Z
Ors contents of regY with regZ, load into regX
DR M[MAR]
Load into DR the contents of memory pointed to by MAR
R1 >> R1
Register R1 one bit right shift, with 0 into left-most bit
R2 << R1
Register R1 one bit left shift, with 0 into right-most bit
X Y, A B
Parallel transfers
(cond) A B
If cond = 1 then transfer contents of regB into regA

S0 A B
P (ab) R2 R3
If (A)then B else C

When in state S0, load regA with contents of regB


When in state P, if a AND b is true then load regR2 with contents
of regR3; a, b are signals.
Conditional Jump -- Branch

Simbol ; pentru separarea transferurilor in cicluri diferite


Simbol , pentru separarea transferurilor in aceeasi ciclu
Exemple (2 cicluri):
regA regB, regB 0;
regC regA;
Algorithmic State Machine (ASM)
Abstract State Machine (ASM)
ASM descrie secventa evenimentelor
ASM vs. flowchart
ASM descrie evenimentele la nivel de perioada clock

Diagrama de stari

Notatii pentru o stare.

Diagrama ASM

Conversie diagrama de stari - diagrama ASM


Transformare diagrama ASM UN FF/Stare One-Hot encoding
Componentele diagramei ASM pot fi inlocuite
1. Simbol stare - cu flip-flop-uri
2. Simbol decisional cu un decoder corespunzator
3. Jonctiuni cu porti SAU
4. Iesiri conditionate cu porti SI

Simbol stare - D Flip-Flop

Simbol decizie - Decoder

Simbol decizie, mai multe variabile - Decoder

Junctiune - SAU
Codificarea starilor - One Hot FSM (1 FF/stare)

Numarator circular Implementare 1FF/stare

Iesire Conditionata - SI

Reset 0001 Reset: un flipflop 1, restul 0

High-Level Synthesis (HLS) Synthesis of Digital Architectures


HLS: transforma o descriere comportamentala intr-una structurala

Specificatie comportamentala
HLS

RTL-cai de date si controler


Xilinx
Vivado High-Level Synthesis
Vivado Design Suite accelerates IP creation by enabling C, C++ and System C
specifications to be directly targeted into Xilinx Programmable devices without the need to
manually create RTL

Data-flow graphs (DFGs) (Data-Dependency graphs DDG) reprezinta relatiile de precedenta


si paralelismele in calcule. DFG contine
Noduri -- operatii
Muchii -- relatii de precedenta.

Original Data flow graph

single-assignment form

Compilare Exemple de Tehnici de Optimizare

Reducere spatiala si temporala


b=3. x; t = x <<1; b = x + t;
inmultire inlocuita de deplasare si adunare
Realizarea operatiilor complexe prin operatii simple

Dataflow graf-uri ierarhice


Exemplu de DFG ierarhic
DFG-urile modeleaza fluxul de date, iar legaturile ierarhice modeleaza controlul
DFG-uri ierarhice pot reprezenta Call, Bifurcatie si Iteratii

DATA-FLOW conditional
Doua noduri speciale:
HLS faze de realizare
Alocarea resurselor Selectia tipului si cantitatii componentelor hardware utilizabile
Planificare Alocarea operatiilor pe faze de executie in timp, respectand relatiile de
precedenta
Asocierea - Asocierea operatiilor la componente hardware utilizabile
Sinteza unitatii de comanda Proiectarea unitatii de comanda

Concepte de baza pentru planificare - Scheduling

Sequential Ops

Chaining

Parallel scheduling
CHAINING Inlantuire

Multi-cycle unit

Pipelined unit

As-Soon-As-Possible

As-late-As-Possible

Fara inlantuire
Doua adunari inlantuite
Inmultire multiciclu
Operatii inlantuite si multiciclu echilibrarea duratelor operatiilor in perioade de ceas
DFG

program fragment
repeat
xl = x + dx;
ul = u - (3 * x * u * dx) - (3 * y * dx);
yl = y + u * dx;
c = xl < a;
x = xl; u = ul; y = yl;
until (c);

xl = x + dx
ul = u-(3.x.u.dx)-(3.y.dx)
yl = y+ u. dx
c = x<a

Exemplu 1 specificatie
SCHEDULING AND BINDING.

Planificarea si asocierea operatiilor

v10
v1-v7
v8, v9
v11

Graf secventiat pentru Example 1;


Alocare si Atribuire
6 Multipliers and 5 ALUs
4 multipliers and 2 ALUs
Operatiile se executa in segmentele de timp corespunzatoare cu pozitiile lor
Refolosirea Resurselor (sharing)
Un component poate fi utilizat pentru mai multe operatii
Operatiile corespunzatoare se pot planifica secvential nu concurent
Metode de Planificare
As soon as possible (ASAP), intarziere minimala
- o operatie poate fi planificata dupa ce operatiile predecesoare au fost planificate
- foarte simplu, DFG trebuie parcurs de la intrari la iesiri

Planificare ASAP
Planificare Critical-path list
Planificare conform unei Liste
Op 3 prioritate mai mare decat Op 1
- o criterie se foloseste pentru selectie dintre operatiile care au predecesoarele planificate
o Planificare conform Caii Critice
- criteria de sortare este lungimea caii de la operatia la iesire
- rezultate bune in practica
As late as possible (ALAP)
- similar cu ASAP, dar planificare de la iesiri la intrari
Planificare pe baza de mobilitate/libertate
- se planifica ASAP si ALAP
- diferenta in planificare determina mobilitatea sau libertatea operatiei
(operatiile in calea critica au mobilitate zero).
- mobilitatea se exploateaza pentru o planificare eficienta

.
Example 1: Planificare ASAP
ALAP, resurse
Mobility: operations (1 5) = 0, (6, 7) = 1, (8, 9, 10, 11) = 2.
Planificare cu constrangeri de resurse

Example 1; 2 inmultitoare si 2 ALU


ALU (adunare/scadere si comparare).
Optimizarea numarului registrilor:

1 inmultitor si 1 ALU
Durata ALU si inmultitor - 1 cycle.

Durata de viata a variabilelor alocarea si asocierea registrilor 5 registri

Durata de viata variabile numarul ciclurilor de ceas in care variabila este utilizata
Analizarea duratelor de viata pentru toate variabilele
Stabilirea numarului necesar de registri
Sinteza cailor de date si a unitatii de comanda
Alocarea si conectarea componentelor

Functional Units

Registers

Reg.Files

BUSes

MUXs

Three-state (tri-state) drivers

Sinteza unitatii de comanda

Example 1; Planificare ASAP


FSM - state transition diagram
Numerele langa noduri semnale de activare pentru UF-uri
Example 1; proiectare cai de date si comanda, constrangeri: 1 inmultitor si 1 ALU

Example 1: DFG 1 inmultitor, 1 ALU


Folosirea registrelor conform duratelor de viata

Diagrama de tranzitie a starilor


O stare pentru fiecare perioda

Cai de date

Example 1: 1 multiplier, 1 ALU; the corresponding data path


Laborator

Basys2

Basys2 board
Xilinx Spartan-3E FPGA
Programming Circuits
and Atmel AT90USB2 USB controller
Flash select - Mode Jumper (JP3) - ROM.

Basys2 I/O circuits

Basys2 Pmod connector circuits

Meta-stabilitate si sincronizare

Tclock > Tmeta


Simple synchronizer
Sincronizare corecta daca perioada clock > perioada de metastabilitate

Detector front descrescator sincronizat


Generator mono impuls sincronizat
Filtrarea oscilatiilor mecanice

Schmitt trigger, RC, Vthreshold

Detector front crescator

Filtrare SW cu Schmitt trigger, RC, Vthreshold

Filtrare cu numarator de intarziere


PWM factor de umplere

Circuit PWM

Registru pentru LED

Circuitul PWM genereaza impuls cu factor de umplere ajustabil


Controlul duratei on-off valoare medie converter D/A
Intensitate LED, viteza motor

LED-uri anod comun

4x 7-segment afisor

5
7

2
4

1
3

Multiplexare anozi - 7seg afisor

Imax/Imedie luminozitate

31-16
15-0
31

1
0

32-bit Register 0

32-bit 2 x 4-hex afisor

Interfata tastatura matriciala

Hex
To
7seg

32-bit 4x8-afisor binar

8888

2 to 4
DEC

SW
Div Freq

Afisor 7segment

16

3
2
1
0

Keypad scan C - coloana iesire; R - rand -- intrare


1. Initializare
2. O tasta este apasata?
C 0000 idle-- R 1111;
C 0000 Tasta apasata-- R !1111; polling
C 0000 -- Tasta apasata-- R1.R2.R3.R4 0;
intrerupere front negativ
3. Scanare taste pentru a determina care tasta a fost apasata
Coloanele se pun la 0, una cate una, se verifica daca oricare intrare de rand devine 0
C 0111, if (R != 1111) Rin R;
C 1011, 1101, 1110,
4. Se asteapta eliberarea tastei
UART Universal asynchronous receiver and transmitter

RS232 standard

PC -- HyperTerminal
RS232 - MAX232 voltage converter
TTL: logic 1 = +5V; RS232: logic 1 = from -3V to - 15V

ASCII codes

Data format Error: parity, overrun- receiver empty, frame stop bit; detection

OverSampling RxD with BclkX16;

UART receiver
The ASMD chart for the receiver
D-BIT - the number of data bits
SB-TICK - the number of ticks needed for the stop bits, which is
16, 24, and 32 for
1, 1.5, and 2 stop bits, respectively
s - t i c k signal (RXx16) is the enable tick from the baud rate generator and there are 16
ticks in a bit interval.
The FSM stays in the same state unless the s - t i c k signal is asserted.
The s counter -- keeps track of the nr. of sampling ticks and counts to
o 7 in the s t a r t state, to
o 15 in the data state, and to
o SB-TICK in the s t o p state.
The n counter -- keeps track of the nr. of data bits received in the data state.
The retrieved bits are shifted into and reassembled in the b register.
Status signal, rx-done-tick -- asserted for one clock cycle after the receiving process is
completed.

Complete UART System


FINITE STATE MACHINE

FSM ; iesiri Moore, Mealy


+ Masina Mealy ~~foloseste mai putine stari
+ ~Masina Mealy raspunde mai rapid poate fi transparent la semnale parazite
Reprezentare FSM
Diagrame de stari
Algorithmic State Machine (ASM)/ Abstract State Machine (ASM)
Partitionare FSM

solutie: introducere stari de repaus

FSM inainte
FSM dupa partitionare
FSM-uri care comunica Protocol cu 4 faze - handshaking protocol

handshaking protocol cu 4 faza

Diagrama ASM

data ready (start) handshaking cu 4 faze circuit One-Hot

Transfer

Talker Listener protocol cu 4 faze

Transfer

Talker Listener protocol cu 4 faze

Handshaking cu synchronizare

Talker FSM
Listener FSM
Diagrame ASM pentru talker si listener protocol cu 4 faze

You might also like