• Apgrejdovali smo forum na XenForo 2.1.1, ukoliko imate predloga vezanih za izgled ili funkcionalnost foruma, ili ukoliko naletite na neki problem, javite nam OVDE

    DEFINISALI SMO PRAVILA FORUMA. Pročitajte ih, pojaviće se automatski kada krenete da čitate nešto!

Bulldozer reverzibilni multithreading!

drfedja

CPU Guru
Učlanjen(a)
01.04.2009.
Poruka
3.084
Rezultat reagovanja
14
Moja konfiguracija
PC / Laptop Name:
Dell n5010, Intel Core i3 370M 2.4 GHz, 4 GB DDR3 1333
CPU & cooler:
Intel Core i7 4790K @ 4.5 GHz
Motherboard:
Biostar Hi-Fi Z97WE
RAM:
16GB Kingston HyperX Beast 2400
VGA & cooler:
Sapphire AMD Radeon R9-280X
Display:
Viewsonic VA2342 23" LED, LG 25"Ultrawide, Samsung VA2342 23"
HDD:
Samsung SSD850 Evo 250GB, Kingston 120GB V300 SSD, 2x1GB WD Caviar black
Sound:
Altec Lansing 5100E
Case:
Cooler Master 690-III
PSU:
Cooler Master G650M modular
Optical drives:
N/A
Mice & keyboard:
Keyboard/Mouse Cooler Master Storm
Internet:
Cable
OS & Browser:
Windows 10 Pro 64-bit
Other:
iPhone 6S 64GB
Bulldozer single thread execution!



Branch prediktor je kod Bulldozera deljen izmedju dva integer i floating point klastera.
Medjutim, on je podeljen na dva reda (queue-a). U BD arhitekturi on koristi RIP - relative instruction pointers. Ovo znaci da se u queue smesta razlika vrednosti PC - programm countera izmedju instrukcija uslovnog skoka, na osnovu cega procesor "ZNA" da li da izvrsavanje instrukcija nakon grananja uzme ili ne - (taken or not taken).
K10 koristi lokalni branch prediktor, kao i globalni i birac da li da koristi lokalni ili globalni. Kod BD jezgara se ne zna tacno da li se koristi 2-level BP, ali moze lako da se dogodi da postoji loop detektor, slicno kao sto postoji kod Intel Core arhitekture.
Branch Target Buffer - BTB je 5K za razliku od 2K kod K10. Veci kapacitet je razlog tome sto je deljen izmedju 2 integer klastera.
RIP queue navodno omogucuje da BD jezgra efektivno budu ispred front end hardvera. Dva jezgra na ovaj nacin rade bez zastoja i bolje tolerisu vece latencije front end hardvera.


x86, pa i x86-64 instrukcije su varijabilne duzine. Zbog ovog problema instrukcije nisu poravnate po linijama u L1 instrukcijskom keshu, pa se zato tesko dekodiraju paralelno, zbog cega je IPC smanjen. Neke od ovih instrukcija su Vector Path, a neke su Fast Path, a neke Fast Path double. Ove prve koriste mikrokod ROM za dekodiranje (mikrokodovane su), sto je daleko sporije (imaju vecu latenciju), od Fast Path (hardwired) instrukcija. Fast Path double se razbijaju na dve makrooperacije. Npr. 256-bitne AVX instrukcije se moraju razbiti u 2x128 bit load-a iz prostog razloga jer je sirina portova 128-bitna na L1 instrukcijskom keshu. K10 i BD imaju 32-byte fetch, sto omogucava 2x128-bit load po ciklusu. Razlika je u tome sto BD FPU poseduje 2x128-bit FMAC, pa FP klaster moze da izvrsi dva 128-bitna load-a po ciklusu, dok kod K10 moze samo 1. U slucaju 2 treda, FPU klaster moze da dobije po 1x128-bit load po tredu, kao i kod K10, sa razlikom sto na 4 jezgra x 2 treda imamo ukupno 8x128-bit loada za 8 tredova.

Tipicna x86 instrukcija se sastoji od 1-2 makrooperacije. Kod K7/K8/K10, pa i BD arhitekture, x86 instrukcije se dekodiraju u makrooperacije, koje su ortogonalne. Makrooperacije se razlikuju od mikrooperacija po tome sto su spojene (ili ne moraju da budu) sa adresnim operacijama. Kada prodju front end, adresne se izvrsavaju na AGU, a aritmeticke i logicke naravno, na ALU jedinicama. Ako je ALU operacija Register->Register tipa, onda nema adresnih operacija, kao npr. kod Register->Memory. Posto se obicno radi sa pokazivackim promenljivim, npr instrukcija LEA - Load Effective Adress racuna efektivnu adresu, offset i smesta ga u specifican registar. Npr. za ovakve operacije je zaduzena AGU - Adress Generation Unit. AGU moze da sabira i oduzima pokazivace, odnosno adrese. Mnozenje i deljenje adresa nema smisla. Operacije mnozenja,deljenja, kao i logicke operacije su stvar ALU jedinica. Dakle, poseban mikrokod je za AGU, a poseban za ALU i FPU.

BD ima cetvrti dekoder u odnosu na K10. Front End je zajednicki za sve klastere u jezgru.
Najverovatnije BD jezgro ima branch fusion, pa operacije CMP i JMP mogu biti dekodirane i izvrsene u jednom ciklusu, kao jedan makroop.
Kada se instrukcije dekodiraju u makrooperacije, one se smestaju u queue, pa se kao takve raspodeljuju u grupe od po cetiri makrooperacije odakle se salju na dva integer klastera.
Kod OoO - Out Of Order izvrsavanja vrlo bitna stavka je "register renaming". Ovo je mehanizam koji sluzi da premosti problem malog broja registara i izbegne serijalizaciju izvrsavanja operacija. Cilj je da se instrukcije izvrsavaju paralelno, cime se naravno povecava IPC - broj instrukcija po ciklusu, odnosno smanjuje CPI.
Register renaming omogucava veci broj instrukcija u letu (instruction window), tako da se za operacije za koje nije uradjen "commit", odnosno koje nisu "retired" (vracene), njima se dodeljuju lokacije sa odgovarajucim indeksima u specijalnoj memoriji unutar procesora koja se zove "register file". Kod K7/K8 i K10 je koriscen princip kopiranja podataka iz preimenovanih registara u fizicke registre, zajedno sa instrukcijama, t.j. opkodovima, pre nego sto su izvrsene, odnosno pre nego sto su dobile commit signal. Ovo nije bas preterano efikasno, narocito sto zahteva dosta vise energetskih resursa. Umesto toga kod BD arhitekture PRF - phisycal register file se koristi samo za prenos pokazivaca ( pointera ) za odgovarajuce instrukcije i njihove operande. Bulldozer i Bobcat koriste Physical Register File da bi manje trosili umesto RRF - Retirement Register File. Slicna stvar je uradjena i kod Sandy Bridge-a.
Kod BD jezgra, svaki integer klaster ima svoj Register File, pa je i Register File clusterovan. Da bi jedan tred mogao da bude izvrsen na oba klastera pretpostavljam da bi trebao da postoji zajednicki register file za oba klastera. Medjutim i kod K7/K8/K10 postoji separatni integer i floating point klaster, ali treba imati na umu da su arhitekturalni registri za FP(x87, SSE ...) disjunktni od x86 za celobrojne i logicke operacije(kojih ima 8, odnosno 16 u x86-64 modu).

Prema tome, BD u jednom tredu nece moci da izvrsi vise od 2 ALU operacije, ali to ne bi trebalo da predstavlja neki problem jer ce moci da izvrsi instrukcijski miks od 2 ALU operacije, 1 SIMD i JMP/COMPARE u istom ciklusu zahvaljujuci 4-way front endu. To po tredu daje maksimalni IPC od cak 5 u ekstremnim slucajevima.



Na ovoj slici je prikazano nekoliko tipova klaster arhitektura. Pod A je obicna, neklasterovana, kao npr. Nehalem ili K10. Bulldozer je nesto sto lici na E ili C sa razlikom u tome sto je front end donekle deljen. Na zalost nemam dovoljno podataka da mogu da zakljucim previse, npr. da li je register renaming deljen, kakva je interkomunikacija izmedju klastera, itd... Ako bi izvrsavali 1 tred na oba klastera imali bi povecan broj registar konflikata. Registri su alocirani separatno iz svakog Register File-a, koji je sastavni deo svakog klastera (jer register file nije shareovan). Kada tred menja bira izmedju izvrsnih resursa, on eksplicitno mora da kopira celo stanje integer registara izmedju dva zasebna RF-a.
Ovo je kljucno - gde se nalazi register renaming kod BD jezgra? Ukoliko je on deljen, renaming bandwidth nije limitiran na samo 2 instrukcije po tredu - problem redukovane sirine znaci da imamo samo 2 ALU instrukcije na raspolaganju po tredu iz svakog klastera. Pri multithread izvrsavanju ova limitacija nije ključna. Ukoliko je renaming zaseban, nije moguce da oba jezgra mogu da rade na 1 tredu.

Na kraju krajeva imamo deljene:
FPU, L1-I cache, dekodere, Branch Prediktor, L2 keš

Separatni su:
Integer jedinice, register file, L1-D cache,

Ne znamo da li je separatno: register renaming.

Dodatni integer klaster uzima mali deo površine čipa. Ubrzanje koje donosi je daleko veće nego Hyperthreading kod "debelog" procesora.
Matematika je jasna. Površina 4/8 Bulldozer-a je slična površini 4-core Sandy Bridge-a. IPC jednog klastera u proseku je 0,85 IPC debelog Sandy-ja. Ubrzanje jednog BD jezgra uključivanjem drugog klastera i korišćenjem 2 treda je 1,8x.
Ubrzanje uz korišćenje Hyperthreadinga je 1,15x.

U multithread režimu Bulldozer (ako bude bio efikasan) sa 8 tredova bi mogao biti i 40% brzi od Sandy Bridgea sa 4 jezgra i 8 tredova.
 
Poslednja izmena:

d0minat0r

PCAXE OC team
Učlanjen(a)
01.04.2009.
Poruka
3.633
Rezultat reagovanja
58
Moja konfiguracija
VGA & cooler:
Gainward 4850 512DDR3
Display:
Viewsonic 24"
HDD:
seagate 500Gt Single P
Case:
/
Optical drives:
Samsung 203D
Mice & keyboard:
A4tech oscar X 748K i microsoft ergo natural 4000
Internet:
ADSL 4Mbit
OS & Browser:
WIN7
:rule:
svaka cast na trudu :wave:
 

noodi

PCAXE Member
Učlanjen(a)
27.06.2010.
Poruka
943
Rezultat reagovanja
6
Moja konfiguracija
CPU & cooler:
i5 4670k @ 4.3 ghz @ Noctua D15
Motherboard:
Maximus VII Ranger
RAM:
4 x 4gb @ 2133mhz CL 9
VGA & cooler:
GIGABYTE nVidia GeForce GTX 1080 Ti Gamanig OC BLACK
Display:
Asus MG279Q
HDD:
Corsair ssd 120g + samsung 850 evo 500 g
Sound:
integrale
Case:
CM MasterCase 5 pro, 4 x Noctua A14 + 2 x S12
PSU:
Antec 1000W Gold
Optical drives:
HP external
Mice & keyboard:
Logitech G810 + G502 @ QCK XXL
Internet:
cable SBB @ 100 mbit/s
OS & Browser:
Win 10 & Chrome
Jbt a ja mislio ja se nesto razumem u kompove.. :rolleyes:
Svaka cast za ovo! :balavim:
 

drfedja

CPU Guru
Učlanjen(a)
01.04.2009.
Poruka
3.084
Rezultat reagovanja
14
Moja konfiguracija
PC / Laptop Name:
Dell n5010, Intel Core i3 370M 2.4 GHz, 4 GB DDR3 1333
CPU & cooler:
Intel Core i7 4790K @ 4.5 GHz
Motherboard:
Biostar Hi-Fi Z97WE
RAM:
16GB Kingston HyperX Beast 2400
VGA & cooler:
Sapphire AMD Radeon R9-280X
Display:
Viewsonic VA2342 23" LED, LG 25"Ultrawide, Samsung VA2342 23"
HDD:
Samsung SSD850 Evo 250GB, Kingston 120GB V300 SSD, 2x1GB WD Caviar black
Sound:
Altec Lansing 5100E
Case:
Cooler Master 690-III
PSU:
Cooler Master G650M modular
Optical drives:
N/A
Mice & keyboard:
Keyboard/Mouse Cooler Master Storm
Internet:
Cable
OS & Browser:
Windows 10 Pro 64-bit
Other:
iPhone 6S 64GB
Nadam se da je razumljivo za vecinu citaoca. Ako ima nekih pitanja mogu da objasnim. ;)
 

animaN

Administrator
Urednik
Učlanjen(a)
28.03.2009.
Poruka
9.407
Rezultat reagovanja
121
Moja konfiguracija
CPU & cooler:
Ci7 3930K@ Coolink CoratorDS
Motherboard:
ASUS P9X79 Deluxe
RAM:
4x4GB Mushkin 1600 MHz cl9, 1.5V
VGA & cooler:
Sapphire HD6950 FleX Edition
Display:
3x Belinea 102035W
HDD:
Corsair ForceGT 120GB SSD,WD AAKS 640 GB, WD MyBook 500GB
Sound:
Realtek ALC889 - Logitech Z2300
Case:
Cooler Master bench table
PSU:
Cooler Master Silent Pro 850W
Optical drives:
USB LiteOn
Mice & keyboard:
Logitech G15 - Logitech MX518
Internet:
SBB 10/1 Mbit
OS & Browser:
Windows 7 x64 SP1
Other:
Volim AXE
Bravo legendo! Prochitah ceo tekst sa uzivanjem!

:sekira:
 

CooLa

I didn't ask for this
Učlanjen(a)
02.03.2009.
Poruka
1.277
Rezultat reagovanja
56
Moja konfiguracija
PC / Laptop Name:
Mainframe
CPU & cooler:
AMD ThreadRipper 2920X
Motherboard:
Asus ROG Zenith Extreme
RAM:
8x8 Corsair Vengeance RGB PRO @ 3600MHz
VGA & cooler:
MSI RTX 2080Ti
Display:
3x Acer Predator 27"
HDD:
2x Samsung 970Pro 1TB + 2xSamsung 850Pro 2TB
Sound:
Integrale
Case:
Phanteks Evolv X
PSU:
Corsair HX1200i
Optical drives:
LOL
Mice & keyboard:
Razer Blackwidow Chroma + Razer Mamba TE
Internet:
Orion 1Gbit
OS & Browser:
Windows 10
Other:
Alienware R13 R3
Po tvom tekstu znaci NehaJem ce i biti brzi od buldozera kod singlethread aplikacija? Ili sam pogresno skrenuo kod Albukerkija? :d
 

Beagle

PCAXE News Guru
Učlanjen(a)
20.01.2010.
Poruka
1.480
Rezultat reagovanja
0
Moja konfiguracija
CPU & cooler:
AthlonII X4 620 @1.225v, Hyper 412 Slim
Motherboard:
Gigabyte M720-US3
RAM:
2x2GB Patriot Viper + 2x2GB GEIL Black Dragon CL5-5-5-15 @800 @1.8v
VGA & cooler:
Gigabyte GF9500GT 1GB (750/1850/500), CoolViva Z1
Display:
LG L204WS
HDD:
Patriot Pyro 60 GB, WD5001AALS
Sound:
Creative Audigy 1, Altec Lansing ATP3, Beyerdynamic DTX-710
Case:
Lian Li PC-S80 Black, 2xScythe SlipSream, 1x Turbine Master 800RPM
PSU:
OCZ StealthXStream 500W (Scythe S-Flex ventilator)
Optical drives:
Optiarc DVD-RW
Mice & keyboard:
Microsoft sidewinder X5, Roccat Taito, Logitech K120
Internet:
Cable
OS & Browser:
Win 7x64 SP1
Other:
Audigy front panel
Mislim da si omasio iskljucenje :D. Bulldozer ima mogucnost da singlethreaded aplikaciju izvrsava na vise clustera, pa bi valjda trebao i biti brzi. Sta kaze fedja? :)
 

drfedja

CPU Guru
Učlanjen(a)
01.04.2009.
Poruka
3.084
Rezultat reagovanja
14
Moja konfiguracija
PC / Laptop Name:
Dell n5010, Intel Core i3 370M 2.4 GHz, 4 GB DDR3 1333
CPU & cooler:
Intel Core i7 4790K @ 4.5 GHz
Motherboard:
Biostar Hi-Fi Z97WE
RAM:
16GB Kingston HyperX Beast 2400
VGA & cooler:
Sapphire AMD Radeon R9-280X
Display:
Viewsonic VA2342 23" LED, LG 25"Ultrawide, Samsung VA2342 23"
HDD:
Samsung SSD850 Evo 250GB, Kingston 120GB V300 SSD, 2x1GB WD Caviar black
Sound:
Altec Lansing 5100E
Case:
Cooler Master 690-III
PSU:
Cooler Master G650M modular
Optical drives:
N/A
Mice & keyboard:
Keyboard/Mouse Cooler Master Storm
Internet:
Cable
OS & Browser:
Windows 10 Pro 64-bit
Other:
iPhone 6S 64GB
Mislim da si omasio iskljucenje :D. Bulldozer ima mogucnost da singlethreaded aplikaciju izvrsava na vise clustera, pa bi valjda trebao i biti brzi. Sta kaze fedja? :)
Mislim da nece bas biti tako, ali donekle hoce. Sto se tice Integer clustera, najverovatnije ce svako imati svoj renamer, jer inace svako ima svoj register file.
Time je BD ogranicen na 2 ALU i 2 AGU po tredu. Medjutim, pitanje je koliko mu to zaista predstavlja problem. Prakticno ni u jednoj Integer aplikaciji/tredu broj izvrsenih instrukcija po ciklusu ne prelazi 2. IPC 3 moze da se postigne za operacije u petlji koje imaju troughput 1/3 i koje se u petlji izvrsavaju iz L1 cache-a. Sve ostalo ima daleko manji IPC i u mnogome zavisi od rada sa memorijom, branch predictiona i mnogih drugih stvari.
S' druge strane, BD ima deljen FPU. Npr, moguce je da u jednom tredu iskoristi 2 ALU jedinice, i ceo FPU koji moze da izvrsi 2 operacije. To teoretski daje IPC 4 po tredu. Front End moze da dekodira najvise 4 instrukcije i pri tom moze da spoji JMP i CMP i jednu mikrooperaciju. U ekstremnom slucaju IPC bi mogao biti i 5, sto su inace i maksimalne mogucnosti Nehalema i Sandy Bridgea.
Druga stvar je veliki L2 kes po modulu. BD ima 4x2MB L2 i L3 verovatno 8MB.
Veliki L2 ce sigurno doneti jos 5-6% ubrzanja.
L1 ima vecu asocijativnost u odnosu na K10. Iako je manji, L1-I ima 32K, trebalo bi zahvaljujuci vecoj asocijativnosti da ima veci hit-rate.
L1 data je separatni po klasterima i iznosi 2x16K, sto je dosta malo, ali verovatno dovoljno, najverovatnije zbog izmenjenih protokola keš koherencije u odnosu na K10.
Npr. kod K10 L1 data je ekskluzivan, pa se sadržaj keš linija ne kopira u L2. Ovo je mač sa dve oštrice. Kada je K7 imao 256K L2 ovo je davalo ukupno veću količinu keš memorije na raspolaganju.
Npr. prebacivanje izbačene linije iz L1 u L2 usled keš miss-a u L2 košta vremena.
 
Poslednja izmena:

Ace Rimmer

PCAXE Member
Učlanjen(a)
15.11.2009.
Poruka
520
Rezultat reagovanja
455
Moja konfiguracija
CPU & cooler:
Xeon x5675 @ LC-CC-120
Motherboard:
Asus P6T Deluxe V2
RAM:
24GB Kingston HyperX Genesis 1600
VGA & cooler:
MSI RX 480 Gaming X 8GB
Display:
Samsung 971p
HDD:
više komada
Sound:
Asus Xonar DG
Case:
CM Stacker
PSU:
Corsair RM650x
Optical drives:
ASUS DVD-RW
Mice & keyboard:
Glorious Model O & HyperX Alloy Elite RGB (brown)
Internet:
DSL
OS & Browser:
Linux / Windows
Zanimljive su paralele koje D. Kanter povukao sa Intel P4 i sadašnjim IBM Powerom ... BD će navodno biti "speed demon".
 

drfedja

CPU Guru
Učlanjen(a)
01.04.2009.
Poruka
3.084
Rezultat reagovanja
14
Moja konfiguracija
PC / Laptop Name:
Dell n5010, Intel Core i3 370M 2.4 GHz, 4 GB DDR3 1333
CPU & cooler:
Intel Core i7 4790K @ 4.5 GHz
Motherboard:
Biostar Hi-Fi Z97WE
RAM:
16GB Kingston HyperX Beast 2400
VGA & cooler:
Sapphire AMD Radeon R9-280X
Display:
Viewsonic VA2342 23" LED, LG 25"Ultrawide, Samsung VA2342 23"
HDD:
Samsung SSD850 Evo 250GB, Kingston 120GB V300 SSD, 2x1GB WD Caviar black
Sound:
Altec Lansing 5100E
Case:
Cooler Master 690-III
PSU:
Cooler Master G650M modular
Optical drives:
N/A
Mice & keyboard:
Keyboard/Mouse Cooler Master Storm
Internet:
Cable
OS & Browser:
Windows 10 Pro 64-bit
Other:
iPhone 6S 64GB
Ne bih se kladio u to da ce biti speed deamon. Navodno zbog 2-way ALU, malog data cache-a od 16K i jos ponekih sitnica. Pitanje je koliko je dubok pipeline. Koliko sam shvatio broj stanja ostaje isti kao i kod K8/K10. Medjutim, latencije velikog broja int. instrukcija su povecane, a ovo moze da bude posledica veceg broja stanja u pipelineu, a moze da bude i posledica neceg drugog. Da bi jedna x86 instrukcija prosla od front-end-a dok izvrsenja, potrebno je onoliko ciklusa koliko procesor ima stanja u pipelineu. Dakle, ako se instrukcija dekodira u jedan mikroop, bice potrebno 12 ciklusa u 12-stepenom pipelineu da bude izvrsena. Kako se instrukcije izvrsavaju jedna za drugom u letu, tako se ova latencija anulira. Medjutim, u slucaju branch mispredict-a pipeline ostaje prazan, a kod pocinje ponovo da se izvrsava od prethodne adrese skoka. Ovo uzrokuje zastoj od 12 ciklusa + operacija skoka.
P4 je bio speed deamon zbog dubokog pipelinea, male efikasnosti, specificne kes arhitekture itd... i kao takav je bio veliki potrosac, pa je odnos perf/watt bio nizak. Zbog toga je zamenjen efikasnijom Core arhitekturom.

Pumpanje megaherca kod BD nije dobra ideja bas iz tog razloga. Ipak, BD ce raditi na dosta visokim frekvencijama. Mislim da ce biti kompromis izmedju visokog IPC-a i visokog takta. U single thread rezimu bi mogao biti 15-20% brzi od Phenoma II, verovatno negde na nivou Nehalema. BD sa 4 modula u multithread rezimu bi mogao biti i do 60% brzi od Phenoma II X4, za otprilike jednaku povrsinu cipa. Jedan BD modul je po povrsini negde kao Core i7 jezgro, a daje 80-90% performansi Phenoma II X2 u multithread rezimu.

Single thread performanse ce biti dodatno poboljsane turbo modom. 2 ALU po klasteru eksplicitno ne znace manje integer, single thread performanse. Razlika u odnosu na K10 je u tome sto za obe ALU jedinice postoji zajednicki scheduler, dok kod K10 svaki ALU/AGU par ima po jedan odvojen scheduler. Ovo znaci da ako je "par" zauzet, da mora da ceka da se operacija zavrsi, iako su druga dva para slobodna. Kod BD jezgra to nije slucaj, pa je ovaj CPU daleko vise Out Of Order. Setimo se Pentiuma M koji je imao samo 2 ALU jedinice, pa u integer operacijama nije uopste zaostajao za K8. Zapravo, u mnogim situacijama je bio i brzi.
Izmenjena kes arhitektura, prefetcher, napredniji Branch Prediction, veci L2 i L3 kesh, JMP CMP fuzija, turbo mod itd... bi mogli da podignu single thread integer IPC bar za 20% u odnosu na K10. Kod floating pointa takodje imamo zajednicki scheduler za obe FMAC jedinice. Imamo zajednicki front end, pa je moguce na paralelno izvrsiti dve DP floating point operacije u ciklusu, paralelno, za jedan tred. Kako su BD-ove FMAC jedinice univerzalne, na njima mogu istovremeno zbog multithreadinga da se izvrsavaju iste operacije, ovo vazi i za single thread. FPU potpuno podrzava ILP - instruction level paralelelism, jednako kao i TLP - thread level paralelism. Ovo znaci da bi floating point operacije mogle da budu znacajno brze nego na K10.
K10 ima takodje zajednicki scheduler u svom floating point klasteru, medjutim moguce je paralelno izvrsiti samo FADD i FMUL operacije. Kod BD je moguce izvrsiti FADD + FADD, FADD+FMUL i obrnuto.
 
Poslednja izmena:
Vrh