Sadraj ................................................................................................................. 1 Apstraktno ........................................................................................................... 2 Problem ................................................................................................................ 3 Mreni procesor ................................................................................................... 5 Osnovne (ope) funkcije mrenog procesora ................................................... 5 Tipovi aplikacija ugraenih u mrenim procesorima ...................................... 6 Znaajke arhitekture mrenih procesora ....................................................... 7 Summa summarum ............................................................................................ 10 Zakljuak ........................................................................................................... 11 Dodatak .............................................................................................................. 12 Literatura ........................................................................................................... 13 2
Apstraktno
U tekstu je prikazan problem zbog kojeg je dolo do razvoja mrenih procesora, u grubo su objanjeni nedostaci prijanjih tehnologija ta varijacije koje su dovele do razvoja mrenih procesora kakvi se koriste danas. Dalje se raspravlja o opim funkcijama mrenog procesora, tipinim aplikacijama, te na kraju i arhitekturi koja se koristi u mrenim procesorima.
Ukratko, ovo je samo kratak uvod u to podruje, za koji sam nastojao da bude to openitiji, postupno irei definiciju pojma, pokuavajui slijediti i povijesni razvoj. 3 Problem
Gotovo svi ureaji na mrei koriste neke oblike obrade paketa. Ethernet preklopnici (switch- evi), AMT prekopnici, IP usmjerivai (rout-eri), vatrozidovi (firewalls), ureaji za presretanje, web serveri, web preklopnici (...) su samo neki od njih. U prolosti, kada je protok podataka bio relativno sporiji u odnosu na mogunosti procesora, a mreni protokoli jednostavniji, mreni ureaji su bili izvedeni poput programa koji su nastanjivali procesore ope namjene (i njima bili pokretani). No, kao se poveavao protok podataka, a time i zahtjevi za sloenijim mrenim protokolima brzina sabirnice i takta procesora ope namjene je bila ubrzo premaena.
Naravno, moemo postaviti pitanje kao je mogue da imamo problem s brzinom, s obzirom da je ope poznato da je brzina razvoja novih tehnologija u siliciju iznimno brza.
Odgovor moemo vidjeti na Slici 1 gdje je prikazano kako frekvencijski pojas optikih vlakana raste i veom brzinom no razvoj silicija.
Slika 1. Usporedan rast brzine procesora i komunikacijskih kanala
Rast poluvodikih komponenti je ve legendaran pa je moda zapanjujue da neka druga tehnologija moe nadmaiti taj rast. Slika 1 pokazuje rast brzine takta procesora u usporedbi s brzinom protoka podataka kroz mreu u posljednjem desetljeu 20og stoljea. Zanimljivo je primijetiti da se brzina takta procesora poveala za 12 puta dok se brzina mree poveala za 240 puta. Daljnji eksponencijalni rast se oekuje prvenstveno iz razloga to su temeljne barijere dovoljno udaljene.
Drugi razlog moemo pronai u sve sloenijim protokolima, veim zahtjevima na mreu, raznim aspektima sigurnosti (...) dakle, rast sloenosti obrade paketa, jednako kao i njihovoj koliini.
Danas, u jezgri mree postoje sustavi brine i do 10Gbps, a pojavljuju se i brzine do 40Gbps. Pristupne i rubne mree rade na brzinama do 1Gbps, pa ak i do 2.5Gbps. Smjer u razvoju dananjih mrea okrenut je prema sve sloenijim protokolima i dodatnim uslugama. Neke od navedenih usluga ukljuuje poboljanje kvalitete usluge (QoS), sigurnost, i poznavanje s IPv6 protokola. Navedena unaprjeenja zahtijevaju znaajnu procesorsku mo, koja u veini sluajeva nadilazi sposobnosti procesora ope namjene. Donedavno je jedino rjeenje bilo u 4 ASIC 1 procesora. No koritenje ASIC-a znailo je odricanje programibilnosti nautrb brzini i procesorskoj snazi. To je kompromis u kojem svakako gubimo. To je postalo jasno daljnjim razvojem mrea koje su posebno na svojim rubnim i pristupnim dijelovima mora biti prilagodljiva, da bi i noviji protokoli mogli biti podravani. To zahtjeva odreeno dozu programibilnosti, da bi mreni ureaji mogli biti unaprijeeni tokom svog rada na mrei. To je neto to ASIC ne omoguava. Uz to, razvojno vrijeme ASIC sklopa je dugotrajno nadmauje 18 mjeseci u veini sluajeva. S obzirom na brzinu razvoja mrea, zahtjevi na razvoj takvog sklopa su da mora biti raen u najnaprednijim sub-mikronskim tehnologijama to dodatno komplicira razvoj (s obzirom na pouzdanost novih tehnologija) i, naravno, dodatno poveava vrijeme razvoja. Takoer bitno je napomenuti da ti isti razlozi uzrokuju i implementaciju sklopa na veoj povrini silicija, a sve to zajedno, naravno, pridonosi i poveanju cijene. Tako dugi razvojni ciklusi zahtijevaju preciznije predvianje mrenih protokola koje e trebati podrati u trenutku kada izau na trite. To naravno, obino rezultira mijenjanjem proizvoda tokom samog razvojnog procesa. Ako tome pribrojimo mogunost da protokol nije doraen ili u potpunosti definiran, problemi kao da niu na svakom koraku. Takoer, da bi proizvodnja bila isplativa, potrebno je imati velike serije. to je za namjenske sklopove kao to je ASIC dosta tee ispuniti. Kao drugo rjeenje samo nam se namee u ovom trenutku FPGA sklopovlje. FPGA sklopovlje ima krai razvojni ciklus no ASIC, no ipak dui, s obzirom na programsko rjeenje ugraeno u procesorima ope namjene. Kao glavni nedostatak i FPGA sklopovlja moemo navesti visoku potronju i cijenu. Fiksna arhitektura FPGA sklopa je takoer nedostatak za sloenije i bre aplikacije, takoer FPGA nema toliku propusnost kao ASIC, a takoer i manju unutarnju memoriju.
Slika 2. Usporedne karakteristike razliitih familija procesora
1 Eng. Application Specific Integrated Circuit Integrirani krug dizajniran s posebnom namjerom, s jedinstvenim funkcijama ugraenim u sebe. Koristi se s namjerom da se povea brzina obrade podataka, smanji potronja energije ili cijena.
5 Zbog svih navedenih razloga, postaje jasno da ureaj koji nam je potreban za obradu paketa na mrei treba biti programibilan, uz zadovoljavanje specifinih zahtijeva mrenih aplikacija. Slika 2 2 prikazuje usporene karakteristike razliitih familija procesora u ovisnost o njihovoj fleksibilnosti i performansama. Fleksibilnost moemo dobiti veom programibilnou sklopa, bolje performanse arhitekturo.
Mreni procesor je programibilni ureaj posebno dizajniran s namjerom da obrauje podatke mrenom brzinom.
Naravno, to nam ba i ne govori mnogo o tome to to mreni procesor tono obrauje i koje su njegove funkcije. Stoga emo se prvo tome posvetiti malo panje.
Osnovne (ope) funkcije mrenog procesora
U svojoj opoj namjeni kao procesor mrenih paketa mreni procesor ima neke tipine znaajke koje ukljuuju:
Izdvajanje obrazaca (uzoraka) (eng. Pattern Matching) Sposobnost da pronalazi odreene uzorke bitova (ili bajtova) unutar paketa, to mu omoguava da klasificira tipove paketa. To je bitno npr. ukoliko treba odluiti je li paket IPv4 ili IPv6 tipa.
Pogledavanje po kljuu (eng. Key Lookup e.g. Address Lookup) Sposobnost brzog pregledavanja baze podataka koristei klju (najee adresu paketa), a u svrhu pronalaenja bitnih informacija, najee o usmjeravanju. Podatke pregledava obino u vlastitoj tablici koja moe biti i dio unutarnje kao i vanjske memorije. Za mala polja to moe biti i tablica 1na1 koja zahtjeva samo jednu provjeru, no za velika polja mogu se zahtijevati viestruke provjere zbog pretraivanja po stablu. Tipina provjera se odnosi na provjeru odredine adrese s namjerom da se odredi adresa sljedeeg skoka.
Obrada podataka (eng. Data Manipulation) Promjena podataka sadranih u paketu, tokom njegove obrade. Neki od primjera zato nam je potrebna ova sposobnost mrenog procesora mogu biti primjena CRC 3 algoritma (provjera ispravnosti), rastavljanje i ponovno sastavljanje podataka, zatitno kodiranje ili dekodiranje podataka.
2 Za neto detaljnije karakteristike pogledati tablicu u dodatku 3 Eng. Cyclic redundancy check 6 Menadment nizova (eng. Queue Managment) Kako se podaci primaju i obrauju tako se za daljnje slanje sortiraju u nizove (queue 4 ). Rasporeivanje u nizove ima svoje prioritete i svaki paket dobiva svoj redoslijed definirajui na taj nain promet na mrei i prioritete QoS-a.
Kontrola obrade paketa (eng. Control Processing) Manji procesi koji obrauju pakete kontrolirani su sa vie razine koja ukljuuje komunikaciju i usklaivanje s ostalim vorovima sustava.
Raunanje
Koristei ope funkcije mrenog procesora, program implementiran kao aplikacija koju mreni procesor izvrava rezultira komadiem fizike opreme koja obavlja zadanu funkciju. Stoga na jednom mjestu nabrojimo jo i aplikacije koje se obino ugrauju u mrene procesore
Tipovi aplikacija ugraenih u mrenim procesorima
Filtriranje ili prosljeivanje paketa ili okvira; dakle, osnovne operacije usmjerivaa (router-a) ili preklopnika (switch-eva). Unapreivanje kvalitete usluge (eng. QoS) identificiranje razliitih tipova ili klasa paketa i posebno obraivanje tih tipova i klasa nautrb nekih drugih tipova i klasa. Dakle, kontroliranje vjerojatnosti da se odreeni paket obradi. Kontrola pristupa odluivanje hoe li se odreenom paketu (ili nizu paketa) dopustiti prijelaz preko tog dijela mrene opreme. Zatitno kodiranje toka podataka (eng. Encryption of data streams) ugraeni mehanizmi koji na fizikoj osnovi omoguavaju kodiranje individualnim (zasebnim) tokovima podataka.
4 Queue dolazi od latinske rijei cauda, koja znai rep. 7
Promotrimo takoer i neke znaajke arhitekture koje su proizvoai mrenih procesora usvojili, s namjerom da postignu eljene performanse.
Znaajke arhitekture mrenih procesora
U definiciji mrenog procesora smo ve spomenuli da mreni procesor programibilan ureaj. No, programibilne ureaje smo takoer ve spomenuli kao ureaje izvedene na procesorima ope namjene i primijetili da takvi ureaji nisu pogodni za primjene na mrei, osim, moda, za najsporije aplikacije, iz razloga to nisu dovoljno brzi. Postavlja se, dakle, pitanje: Po emu su to mreni procesori toliko razliiti od procesora ope namijene?
Odgovor je da je njihova glavna znaajka mehanizmi viestruke obrade podataka.
Mehanizmi viestruke obrade podataka (eng. Multiple Programmable Processing Engines) Svojstvo mrenog procesora je da posjeduje vie mehanizama viestruke obrade podataka (eng. PPEs 5 ) ili procesorskih jezgara, za razliku od procesora ope namijene koji imaju samo jednu jezgru procesora.
Posljednjih godina mnoga kompanije zapoele su rad na vlastitim mrenim procesorima, jednako poznate tvrtke, kao i mnoge male tvrtke. To je dovelo do raznih arhitektura mrenih procesora, no svima im je zajedniko to to imaju viestruke jezgre unutar procesora. Mehanizmi viestruke obrade podataka se iz istog razloga mogu pronai pod raznim nazivima
5 Eng, Programmable Processing Engines 8 i s razliitim funkcijama, ovisno o proizvoau 6 . Neke od izvedbi procesora su bazirane na RISC 7 jezgrama. No, ope RISC jezgre nisu sasvim pogodne za manipulaciju bitovima, dok je manipulacija bitova glavna funkcija mrenih procesora. Stoga je manipulacija bitovima dodavana jezgri RISC-a. Openito mreni procesori bazirani na RISC jezgrama imaju svoje mehanizme obrade podataka organizirane paralelno, tako da svaki paket koji doe u mreni procesor je dodijeljen svojoj jezgri procesora, na taj nain da ona vri itavu obradu nad njim. Takoer mehanizmi viestruke obrade podataka mogu biti organizirani u protonoj strukturi, ili u kombinaciji protone i paralelne strukture, pa ak i da budu podesive da primjene najpogodniju kombinaciju paralelno-protone strukture za danu aplikaciju. Kao alternativa RISC arhitekturi moe posluiti VLIW arhitektura. Procesori s VLIW arhitekturom imaju vei broj naredbi i stoga rijei njihovih naredbi iznimno dugake odakle im i naziv (eng. Very Long Instruction Word). No VLIW procesori takoer imaju i prednost da za gotovo svaku operaciju koju trebaju izvriti imaju naredbu, tako da ak i one sloenije mogu izvesti s relativno malim skupom naredbi. To se koristi i u dizajnu mrenih procesora. S VLIW jezgrama mehanizme obrade podataka moemo podijeliti na nain da svakoj jezgri dodijelimo odreenu zadau. Kao posljedicu toga imamo sluaj u kojemu veinu naredbi u pojedinoj VLIW jezgri ne koristimo, saimajui na taj nain broj naredbi potrebnih danoj jezgri za izvravanje zadae. To moe dovesti do znaajnog poboljanja u performansama ukoliko iskoristimo te posebnosti za optimiziranje mehanizama obrade podataka. Dakle, u ovoj izvedbi jezgre su organizirane na nain da svaka obavlja tono odreenu funkciju u protonoj strukturi, za daljnje poboljanje performansi nita nas ne sprjeava da koristimo viestruku paralelnu protonu strukturu u obradi nadolazeih paketa. No, takva namjenska struktura pojedinih dijelova VLIW arhitekture ima za posljedicu da su mreni procesori s takvim jezgrama tei za programiranje i manje fleksibilni. Mnogi mreni procesori, a posebno oni s arhitekturu baziranom na RISC jezgrama koriste oblike vieprotonosti 8 u svojim mehanizmima obrade podataka. To je jasno s stajalita poveanja performansi jer se moe dogoditi tijekom izvravanja naredbe da neka od jezgara treba ekati da se zavri neka druga operacija. Za primjer nam moe posluiti itanje podataka iz zajednike memorije. Ukoliko neka druga jezgra upravo ima pristup memoriji, sabirnica je zauzeta, te naa jezgra mora ekati (svoj red). Neaktivno stanje neke od jezgara je uzaludno troenje procesorskog vremena koje se izravno oituje na performansama ureaja. Iz tog razloga se koristi vieprotonost koja omoguava da se vie od jedne zadae izvrava na jednoj jezgri, prebacujui se s jedne zadae na drugu ukoliko jedna od njih treba ekati na svretak nekog drugog procesa. Da bi se osiguralo dovoljno brzo prebacivanje izmeu zadaa jezgre mreni procesor ima sklopovlje koje to prebacivanje ini praktiki trenutnim, to je jo jedna od razlika prema procesorima ope namjene kojima mora proi odreeni broj instrukcija da bi se prebacili s zadae ne zadau. Kao, moda jedini nedostatak, u takvom pristupu napomenut emo da vieprotonost kao i sami viestruki mehanizmi obrade podataka se izravno oituju u sloenosti koda programa koji se izvravaju na takvom procesoru.
Namjensko sklopovlje (eng. Dedicated Hardware) Mreni procesori, posebno oni temeljeni na RISC jezgrama, posjeduju posebno namijenjeno sklopovlje, ili integrirane koprocesore koji slue za obavljanje
6 Eng. Neki od naziva su: micro engines, channel processors, task optimised processor... S obzirom na turost literature o ovom pojmu na Hrvatskom jeziku, smatrao sam da te nazive nema smisla prevoditi. 7 Procesor s reduciranim setom naredbi (eng. Reduced Instruction Set Computer). Arhitektura RISC-a ima vrlo jednostavan skup naredbi, stoga, da bi izvrio sloenije naredbe, zahtjeva vei broj operacija. 8 Eng. multithreading, thread- pobijati se, progurati, specifino oznaava i dio programa koji se moe izvriti sam za sebe. Razlikovati od viezadanosti (multitaskinaga) jer se zadae u tom sluaju mogu bitno razlikovati jedna od druge. Prevodim taj pojam kao vieprotonost po uzoru na protonu strukturu. 9 uobiajenih funkcija poput pregledavanja po kljuu, menadment nizova, raunanje CRC algoritma ili zatitnog kodiranja. To dodano sklopovlje takoer moe biti napravljeno ciljano za jednu (i upravo samo za tu) funkciju.
Suelje prema mrei (eng. Network Interface) Kljuno obiljeje mrenih procesora je njihovo mreno suelje, kao mjesto gdje paketi odlaze na mreu i s mree dolaze na mreni procesor. Neki od standardnih suelja koji se danas koriste su UTOPIA 2 i 3, SPI-3, a za 10Gbps promet SPI4.2. Takoer SPI4.2 se koristi i kako suelje za izradu preklopnika (eng. Switch Fabric Interface), s obzirom da se mnogi od mrenih procesora koriste i kao usmjerivai.
Kontrola obrade paketa (eng. Control Processing) Glavna zadaa mrenog procesora je da obrauje pakete podataka mrenom brzinom. No, neki od paketa, takozvani kontrolni 9 paketi ne trebaju biti obraeni tolikom brzinom. To nam pokazuje da neki paketi imaju prioritet pred drugima i zahtjeva nam obraanje panje na iznimne pakete i preslagivanje redoslijeda obrade. Kontrolni paketi obino zahtijevaju sloeniju obradu no ostali paketi, te ukoliko budu obraivani standardnom procedurom u nekoj od jezgri mogu znaajno usporiti protok podataka kroz nju. Ti podaci su stoga izdvojeni iz uobiajenog toka podataka i proslijeeni odvojenom procesoru koji nazivamo kontrolni procesor. Taj procesor je obino odgovoran i za neke druge funkcije poput statistike obrade podataka, a funkciju mu moe izvravati i procesor ope namijene poput ARM-a. Iako mnogi mreni procesori imaju integriranu jezgru koja obavlja funkciju kontrolnog procesora, moe postojati i vanjski procesor ope namjene spojen sabirnicom s ostatkom sklopa. Je li kontrolni procesor unutar ili van mrenog procesora obino je definirano poloajem mrenog procesora u samoj mrei. Tako se zbog cijene obino ugrauje u mreni procesor za mree blie korisniku, dok unutranjost mree (vee brzine) zahtjeva postojanje zasebnog procesora.
Memorija Mreni procesor koristi memoriju za pohranjivanje programskog koda, tablica za pregledavanje 10 , podataka o paketima itd. Iako je izvedivo da memorija bude unutar mrenog procesora, koliina memorije potrebne u nekim sluajevima ini neizbjenim da se koristi i vanjska memorija. Namjenska memorija se esto koristi za pohranu programskog koda, nalazi se lokalno do svake jezgre. Kod potreban za obradu paketa obino je saet i zbijen tako da memorija potrebna za to moe biti prilino malena, npr. 4Kbyta po jezgri za mrene procesore s manjim zahtjevima. Nasuprot tome, kod potreban kontrolnom procesoru moe biti drastino velik, to je izravna posljedica iznimki koje mora obraditi. Stoga je memorija potrebna kontrolnom procesoru izvedena kao vanjska, iako e naravno imati neto prirune 11 unutarnje memorije. Dodatno, osim tog komadia memorije dodijeljenog lokalno svakoj jezgri procesora postoji i zajednika unutarnja memorija, koju jezgre meusobno dijele. Veina mrenih procesora ima barem dva suelja prema vanjskoj memoriji, jedno prema SRAM-u 12 , a jedno prema DRAM-u 13 , dok mreni procesori s veim
9 Eng. control and management packets 10 Eng. lookup tables 11 Eng. cache 12 Eng. Static Random Access Memory 13 Eng. Dynamic Random Access Memory 10 zahtjevima imaju i vie od jednog suelja za svaki tip memorije. Pristup vanjskoj memoriji je usko grlo u svakoj arhitekturi, stoga proizvoai koriste posljednje tehnologije da bi omoguili bre pristupe memoriji, neki od primjera su DDR (Eng. Double Data Rate) ili QDR (Eng. Quadruple Data Rate) SRAM, DDR SDRAM (Eng. Synchronous DRAM), FCRAM (Eng. Fast Cycle RAM) ili RDRAM (Eng. Rambus DRAM).
Dosadanji pregled trebao bi nam barem donekle dati uvid u arhitekturu mrenog procesora. Sve navedene karakteristike arhitekture prikazane su na Slici 3 koja prikazuje opu arhitekturu mrenog procesora.
Slika 3. Opa arhitektura mrenog procesora
Summa summarum
Kako su rasli mreni protoci podataka pojavio se zahtjev za sve naprednijim mrenim protokolima, te su se zahtijevali sve bri procesori na mrei. Uskoro je dosegnuto da su eljene brzine mogli postii samo ASIC sklopovi koji su imali predug razvoj i prekratko zadravanje na tritu, s obzirom na nedostatak fleksibilnosti. Iz tog razloga su se pojavili zahtjevi za programibilnim sklopovima to je dovelo do razvoja mrenih procesora.
Mreni procesori ostvaruju svoju prednost zahvaljujui mehanizmima viestruke obrade podataka koji su ugraeni u mreni procesor kao viestruke jezgre. Takoer sadre i dodatno sklopovlje koje im pomae u sueljavanju s mrenim prometom.
11 Zakljuak
Moram priznati da je moj odabir teme bio potpuno sluajan, da nisam uope bio upoznat s ovim pojmom kada sam ga prvi put proitao. Tako da je bio prilian izazov prouiti sve to u tako kratkom vremenu i odglumiti strunjaka. Nadam se da sam u dome barem donekle uspio. Takoer, nastojao sam i sve termine prevesti na hrvatski jezik, jer smatram da sam to duan prema svojoj kulturi, no svjestan sam da bi to svima otealo daljnje istraivanje bilo po kljunoj rijei bilo po literaturi. Stoga se nadam da sam ostavi dovoljno napomena u tekstu za sve koji e se dalje baviti ovim pojmom. Takoer, ispriavam se ukoliko sam unio zabunu s kojim od svojih prijevoda, jer iako sam se trudio da istraim kako su pojedini pojmovi ve prevedeni na hrvatski jezik, nisam za sve pojmove uspio, dijelom stoga to su oni rijetki autori koji piu na hrvatskom jeziku ili esto jednostavnijim putem koristei se slang-ovnim pojmovnikom, ili jednostavno zato to mi nisu dostupni.
Nadam se ujedno da e ovaj tekst svima koji ga budu itali posluiti kao kratak uvod u ovo podruje. Kao to i rekoh, teko je biti strunjak iz podruja za koje ima manje od mjesec dana da mu se posveti, tako da su neke stvari sigurno ture, a neke moda prejednostavno opisane. Toga sam svjestan, no dijelom sam to uinio i namjerno, s namjerom da tekst ve u prvom itanju bude razumljiv. Nastojao sam u njemu ocrtati nain na koji sam i sam uio o mrenim procesorima.
Heppel, Andrew: An Introduction to Network Processors http://www.roke.co.uk/download/white_papers/network_processors_introduction.pdf
Husak, David: Network Processors: A Definition and Comparison http://www.mi.chu.edu.tw/~ykchang/cial/IP-Routers/network-processor-definition- comparison.pdf http://www.freescale.com/files/netcomm/doc/white_paper/COMMPROCWP.pdf
Intel: Next Generation Network Processor Technologies http://www.intel.com/design/network/papers/27905001.pdf
De Angelis, G.: A Model Based Approach to Design Applicactions for network Processors http://pacinotti.isti.cnr.it/ERI/VIworkshop/DeAngelis.pdf
Ostali internet izvori: http://computing-dictionary.thefreedictionary.com/network%20processor http://www.intel.com/education/highered/Networking/Lectures.htm http://en.wikipedia.org/wiki/Network_processor http://newsroom.cisco.com/dlls/2004/hd_051904c.html