Belépés
Elrejt
BEJELENTKEZÉS
Azonosító
Jelszó
 
AMD Athlon. Termékleírás.
AMD Athlon. Termékleírás.
2000.03.09.

Amíg a mai Intel processzorok mind az 1995-ben megjelent Pentium Pro (P6) architektúráján alapulnak, addig az AMD egy teljesen új, hetedik generációs felépítésű CPU-t tervezett. Jelenleg az Athlon a világ leggyorsabb x86-kompatibilis vezérlőegysége!!!

Ahhoz, hogy megértsük, mik a különbségek a Pentium III és az Athlon között, illetve, hogy mekkora a jelentősége ezeknek a különbségeknek, az utasítás-végrehajtás alapjaival tisztában kell, hogy legyünk. A számítógép központi egységének (CPU - Central Processing Unit) a feladata, hogy egy programot ("egymás utáni utasítások sorozata") végrehajtson. A PC-n futó programok x86-os utasításokból állnak, az első IBM PC központi egységére, a 8086-ra utalva. Az x87-es utasítások a lebegőpontos, azaz a nem egész számokkal való műveletvégzésre használhatók, a 8087 társprocesszorra célozva. Természetesen az x86-os processzorok fejlődésük során egyre több utasítással, regiszterrel, móddal, stb. bővültek. Ennek eredményeként egy 386-ost kihasználó (pl. virtuális mód használata) programot nem lehetet 286-os gépen futatni. Ugyanakkor a mai legmodernebb egységek is képesek végrehajtani egy 8086-on megírt programot, ezt nevezzük visszamenő kompatibilitásnak. Az IBM PC-k utasításkészlete CISC (Complex Instruction Set Computer - összetett utasításkészletű számítógép) jellegű, ez azt jelenti, hogy nagyszámú, komplex, nem állandó hosszúságú utasításokból áll, ellentétben a RISC processzorokkal, amelyeknél (Reduced Instruction Set Computer - csökkentett utasításkészletű számítógép) az utasítások egyszerűek. Okkal neveztem az utasításkészletet és nem a processzort CISC jellegűnek. Azért, mert ma már a PC központi egységei nem nevezhetők egyértelműen CISC processzoroknak, mivel a belső, végrehajtó egység RISC megoldású (Pentium Pro, K5, K6, stb). Az utasítás-dekóder Mint az a ábrából látható, a központi egységnek elő kell kerítenie a feldolgozandó utasítást (cache-ből, rendszermemóriából stb). A processzornak ezeket az x86-os utasításokat azután le kell fordítania olyan RISC műveletekre, úgynevezett rögzített hosszúságú op-okra, amikkel már képesek dolgozni a belső, RISC felépítésű végrehajtóegységek. A K6-okban az AMD ezeket az op-okat rop-nak (RISC op), míg az Intel a P6-ban uops-nak (micro op) nevezi. A K7-ben úgynevezett MacroOP-okról (MOP) beszélünk - egy ilyen fix-hosszúságú MacroOP egy vagy két op-ból áll (ha kettőből, akkor az egyik egy load vagy egy load/store művelet). A CPU azon részét, ami a fordítást elvégzi, Instruction Decoder-nek (utasítás-dekóder) nevezzük. A közönséges x86 utasításokat az Instruction Decoder nagyon gyorsan, közvetlenül képes átfordítani op-okra, viszont a ritkán használt vagy nagyon komplex műveleteknél (melyek rengeteg op-ból állhatnak) szüksége van a CPU-n belüli Macro Code ROM, más néven MROM segítségére. Az Athlon processzorban lévő Instruction Decoder azon részét, ami közvetlenül képes dekódolni, "direct path"-nak (vagy Hardware Decoder-nek), a komplex utasítások fordításáért felelős részt "vector path"-nak (vagy Microcode Decoder-nek) nevezzük. A P6 architektúrája (Pentium Pro, Pentium II, Pentium III) kevésbé hatékony, mivel ott a "direct path" és a "vector path" nem különül el az utasítás minőségétől függően. Mind az Athlon-nak, mind a Pentium III-nak három darab Instruction Decoder-e van, azaz mind a kettő képes három darab x86 utasítást párhuzamosan átfordítani. Azonban a Pentium III-ban lévő három dekóderből kettő csak egyszerűbb, míg a harmadik csak komplex utasításokkal tud foglalkozni. Ez azt jelenti, hogy a Pentium III csupán akkor képes egyidejűleg három darab x86 utasítást átfordítani, ha ebből egy komplex és két általános utasítás. Mivel ez a felállás a valós életben ritka, ezért az esetek többségében a Pentium III utasítás-dekóderei kihasználatlanok, ellentétben az Athlon-nal, ahol segít a direct és a vector path. Az utasítás vezérlő Az utasítás vezérlő, nevéhez híven az egész párhuzamos végrehajtást vezérli. Miután az utasítások az utasítás-dekóderben MOp-okra fordítódtak (3 MacroOP órajelenként), átkerülnek az utasítás vezérlőbe (Instruction Control Unit). Az Athlon főtervezője szerint ez az egység a processzor lelke. Összesen 72 MOp-ot képes egyidejűleg tárolni, mielőtt elküldené az ütemezőkbe (scheduler). A Pentium III ezzel szemben kevesebbet, csak 40 micro Op-ot képes tárolni a ROB (ReOrder Buffer) egységében. A végrehajtó egységek és a végrehajtó port-ok A lényegi rész ezekben az egységekben történik. A Pentium III-ban 11 darab végrehajtóegység van, az Athlon-ban pedig még ennél is több. Az Op-ok ezekben hajtódnak végre párhuzamosan. Ez azonban nem jelenti azt, hogy ennyi Op-ot dolgozhat fel párhuzamosan, mivel bizonyos végrehajtóegységek össze vannak vonva, ezeket közösen Execution Port-oknak nevezzük. Azaz párhuzamosan annyi Op-ot képes feldolgozni, ahány Execution Port van. Ahhoz, hogy egy program egymás utáni utasításait a processzor képes legyen párhuzamosan, azaz egyidejűleg végrehajtani, szüksége van az out-of-order, vagyis a soron kívüli végrehajtásra. Ennek a működéséért a Pentium III-ban az Integer/FP Register Rename & Allocator és a Reorder egység a felelős. Az előbbi a Reservation Station előtt helyezkedik el. Az Athlon-ban ez is hatékonyabb, mivel ott az out-of-order végrehajtásért az Integer Scheduler (egészszámos ütemező) és az FP Scheduler (lebegőpontos ütemező) a felelős, és mind a kettő meglehetősen nagyszámú MOp-ot képes tárolni. Ezután a kis kitérő után térjünk vissza a végrehajtó egységekhez. Előbb már említettük az Execution Port-ok számának jelentőségét, ami a processzor teljesítményének az egyik fő meghatározója. A Pentium III-ban 5 darab ilyen egység van, azaz a processzor egy időben maximálisan 5 darab Op-ot képes feldolgozni. Az Athlon azonban 9 Op-ot képes végrehajtani párhuzamosan (9 darab Execution Port) !!! Nézzük meg most egy kicsit részletesebben a végrehajtó egységeket, illetve port-okat. A Pentium III-ban, mint azt már fentebb írtuk, 5 darab Execution Port osztozik a 11 darab Execution Unit-on. Három Unit-nak saját Port-ja van: a két címgenerátornak (AGU - Address Generation Unit) és a Store Data Unit-nak. A következő (negyedik) port az Execution Port 0, ami tartalmazza az IEU-t (Integer Execution Unit), az Integer Shift-et, az MMX execution unit 0-át, az SSE Multiplier-et, a FADD-ot (floating-point add - lebegőpontos összeadás), az FMUL-t (floating-point multiply - lebegőpontos szorzás) és végül az FDIV-et (floating-point division - lebegőpontos osztás), ami azonban nem pipeline-olt. Az utolsó port, az Execution Port 1-en osztozik az IEU 1, az MMX execution unit 1 és SSE execution unit. Ezek a port-ok többnyire párhuzamosan dolgoznak és a többségük pipeline-olt is. Ez persze semmit sem változtat azon a tényen, hogy az Athlon majdnem dupla annyi OP-al képes dolgozni, hiszen neki 5 helyet 9 port-ja van. Ennek a processzornak három darab IEU-ja van, mind a három saját port-tal, azaz 3 darab egész számos műveletet képes végrehajtani párhuzamosan. Ugyancsak saját port-tal rendelkezik a három darab AGU is: A maradék három port a lebegőpontos és multimédiás utasításokkal foglalkozik. Az első port az FSTORE (storing floating-point data - lebegőpontos adatok tárolása), a második port-on osztozik az FADD, az MMX 0 és a 3DNow! 0, az utolsón pedig az FMUL, az MMX 1 és a 3DNow! 1. A pipeline és a branch prediction Még mielőtt az Athlon és a Pentium III pipeline megoldásait összehasonlítjuk, ismerjük meg magát a pipeline fogalmát, ami nélkül egy modern processzor nem is létezhet. Ha egy nem pipeline-olt és egy pipeline-olt processzor különbségét szemléltetni akarnánk, akkor leginkább a céhes és a manufakturális termelés közötti különbséggel hasonlíthatjuk össze. A céhes termelés során egyetlen egy ember végzi a termék előállításához szükséges összes részfeladatot. Ennél természetesen lényegesen hatékonyabb, ha a részfeladatok elvégzését szétosztjuk különböző emberek között (manufaktúra). Ha a részfeladatok mind egyidejűleg elvégezhetők (fully pipelined), ezáltal nagy mértékben növekedik a maximálisan előállítható termékmennyiség (a számítógép teljesítménye). A processzorok pipeline-jainál nagyon fontos tényező és jellemző adat, hogy hány lépésből, részfeladatból állnak. A rövid pipeline, ami csak néhány lépésből áll, azt eredményezi, hogy egy részfeladat elvégzése túl sokáig tart, így nagyon nagy processzor sebességnél a soronkövetkező feldolgozásra váró utasítások összetorlódnak. Ezen túlmenően az sem kifizetődő, hogy több, rövid pipeline-t használjunk párhuzamosan, mert a végrehajtási idejűk nagyon különböző, így az utasítások végeztével nagy zűrzavart okoznak a sorrendbe állításkor. Következésképpen a gyors processzorokhoz és a hatékony párhuzamosság érdekében hosszú pipeline-t kell alkalmazni. Azonban a hosszú pipeline-nak is van hátránya, de hogy megértsük mi, előbb beszélnünk kell a branch prediction-ról, magyarul a feltételes elágazás jóslásáról. Ha a processzor (P6, Athlon) egy feltételes elágazás utasításhoz („tedd ezt, ha teljesül az") ér, akkor képes megjósolni a várható elágazást. Ennek köszönhetően, ha a jóslás helyes, a processzor képes előre dolgozni, így nem marad kihasználatlanul és fennakadás nélkül folytathatja munkáját. Azonban, ha a becslés nem helyes, az összes op, ami a hibás előrejelzés miatt a pipeline-ban volt, törlendő, és a pipeline-t fel kell tölteni a tényleges elágazás ismeretében a helyes op-okkal. Ez pedig óriási időveszteség. Itt játszik szerepet a pipeline hossza, mivel minnél hosszabb, annál nagyobb az időveszteség, ami alatt a processzor tényleges munkát nem végez. Így a pipeline akkor a legoptimálisabb, ha az arany középszert választjuk, azaz elég hosszú legyen a gyors sebbeséghez, de ne legyen túl hosszú se, mert az hihetelenül visszaüt egy esetleges hibás elágazás előrejelzésnél. Az Athlon egészszámos pipeline-ja 10-es szintű (10 lépésből áll), a lebegőpontos pedig 15-ös szintű pipeline, ami pont ideállis az 500 és 1000 MHz közötti órajeltartománynak. A Pentium III egészszámos pipeline-ja 12-17-es szintű, a lebegőpontos pedig becslések szerint több, mint 25 szakaszból áll. A Pentium III ezért sokkal inkább érzékeny a hibás elágazás előrejelzésre. Most ismét térjünk vissza a branch prediction-höz, az ugrás előrejelzéshez. Az Athlon processzorban található egy BTB egység (branch target buffer), ez nem kevesebb, mint 2048 bejegyzés tárolására képes, ami azt jelenti, hogy 2048 különböző elágazás címét képes tárolni. A BHT (branch history table) pedig nem kevesebb, mint 4096 bejegyzést tárolhat, ami nyolcszor több, mint amit a Pentium III Dynamic Branch Predictor egysége képes kezelni (512 bejegyzés). Az AMD állítása szerint az Athlon 95 %-os valószínűséggel képes előrejelezni a helyes elágazást, ami egy nagyon jó eredmény. A Pentium III ezzel szemben csak 90-92 %-ban találja el helyesen az ugrásokat. Return Stack Néhány évvel ezelőtt a Cyrix, hogy a programok végrehajtási idejét tovább csökkentse, bevezette az úgynevezett Return Stack-et (visszatérési verem). Ha valaki programozott már assembly-ben vagy gépi kódban, az tudja, hogy függvény, eljárás vagy más szubrutin hívásakor a program címszámlálója bekerül a verembe. Miután a meghívótt szubrutin lefutott, a processzor kiveszi a veremből a program címét és visszatér oda, ahonnét a szubrutint meghívták. Ezek a verem műveletek nagyon jól hasznosíthatóak lennének (hiszen nem igényelnek speciális CPU regisztereket), ha nem volnána nagyon lassúak. A Return Stack egy speciális tároló magában a processzorban, ezáltal nagyon gyorsan lehet elérni a tartalmát (a normál verem a rendszermemóriában található). A Return Stack-et használva a szubrutinok meghívása, majd a főprogramhoz való visszatérés jelentős mértékben meggyorsítható. Az Athlonban a Return Stack 12 bejegyzést képes tárolni, a Pentium III-ban ez a szám nem dokumentált, de bizonyosan kevesebb, mint a fele az Athlon-énak. FPU Az eddigi AMD processzorok (K6, K6-2, K6-III) legnagyobb hibája az FPU (Floating Point Unit - lebegőpontos egység) gyenge teljesítménye volt. Ez a teljesítmény pedig manapság elsőrendű, nemcsak a professzionális alkalmazásoknál (3D Studio MAX, Adobe programok, stb), de a játékoknál is (3D). Az AMD az Athlon-ban végre leszámolt ezzel a problémával és megalkotta a világ eddigi legnagyobb FPU teljesítményét nyújtó x86-os processzorát. Három darab párhuzamos lebegőpontos végrehajtó egysége van, és mint azt fentebb már írtuk, mindegyiknek saját port-ja van, mindegyik teljesen pipeline-olt (fully pipelined). A Pentium III-nak szintén 3 darab FP végrehajtó egysége van, de ezek mind csak egy port-on osztoznak. Az Athlon FPU-ja két 80 bit széles műveletet (Extended-precision Format) képes végrehatani egy órajel alatt, ellentétben a Pentium III egy műveletével szemben. A K6-ban a legtöbb FPU utasításnak a késleltetési ideje (latency) alacsonyabb, mint a Pentium Pro vagy Pentium II-ben. Ez a felállás most is megmaradt, mivel az Athlon átlagos késleltetési ideje alacsonyabb a Pentium III-énál. Az alcsonyabb latency, a pipeline szervezés és a 3 FP port teszi az Athlon lebegőpontos teljesítményét jobbá a Pentium III-énál. 3DNow! A 3DNow! utasításkészlet (21 utasítás) elsőként a K6-2 processzorban kapott helyet, elsődleges célja az FPU teljesítményének növelése. Segítségével ciklusonként négy darab lebegőpontos műveletet is képes végrehajtani a központi egység. Így az ezt kihasználó alkalmazások (elsősorban a játékok) szinte azonosan teljesítettek egy K6-2-ön, mint egy azonos órajelű Pentium II-n. Az Intel a 3DNow! megjelenése után 9 hónappal kihozta saját, bővebb utasításkészletét (71 utasítás), az SSE-t (Streaming SIMD Extensions). Az SSE a SIMD FPU szervezésen és a Prefetch utasításon (képes az első szintű cache-be tölteni a várhatóan soron következő adatokat) túlmenően többek között a hatékonyabb memória és a cache „vezérlését" is biztosítja, meggyorsítva a nagy adatmozgással járó feldolgozást (streaming). Az Athlon-ban lévő 3DNow!-t az AMD kiegészítette 24 új utasítással. Ebből 12 az MMX utasításkészletet bővíti (beszédfelismerés, high-quality videó enkódolás/dekódolás), 7 pedig az SSE-ből ismert streaming utasítás (nagy multimédiás adatmozgás, Internetes plug-in-ek). Ez a 19 utasítás nagyon hasonlít (majdnem teljesen azonos) az SSE megfelelő utasításaival. Ezért ha egy programot ezekre alapozva optimalizálnak az SSE-re, akkor - egy kis túlzással - semmibe se kerül az Athlon-ra is optimalizálni, hiszen csak az utasításokat kell átnevezni. Ami azonban sokkal érdekesebb, az az öt új DSP (Digital Signal Processing) gyorsító funkció (soft modem, soft ADSL, MP3, Dolby Digital); ezek nem találhatóak meg az Intel SSE készletében. Összegezve: a kibővült 3DNow! utasításkészlet minden főfunkciót (SIMD FPU, Prefetch, Streaming) tartalmaz, amit az SSE, sőt, túllép rajta a DSP utasításokkal és természetesen visszamenőleg kompatibilis elődjével. A DirectX 6.2 verziója és az OpenGL is támogatni fogja, hasonlóan a vezető videó chipset-ek (Matrox G400, Nvidia TNT2, 3Dfx Voodoo 3, S3 Savage4, ATI Rage 128, stb.) drivereihez. A cache Az Athlon-ban 128 Kbyte elsőszíntű (L1) gyorsítótára van, ami négyszerese a Pentium III-ban található 32 Kbyte-nak. Ebből 64 Kbyte az utasításoknak (Instruction Cache), 64 Kbyte pedig az adatoknak van fenntartva (Data cache). A Pentium III-ban a cache 4 utas (4 way), ami jobb hatásfokú, mint az Athlon 2 utas kialakítása, ám a méret többszörösen bepótolja ezt a hiányosságot. A nagy L1 cache előnyét elsősorban a 3DNow! (Prefetch és az SIMD FP) utasítások és az FPU egység élvezi majd. Az Athlon másodszintű gyorsítótárának órajele szabadon mozog: harmada (1/3), fele (1/2), kétharmada (2/3) vagy egyenlő lehet a processzor órajelével (1/1). Hasonlóan az Intel-hez, aki különböző L2 kiszereléseivel (Celeron, Pentium II/III, Xeon) a piac összes szegmensét le tudta fedni, az AMD szintén több Athlon verziót fog kihozni (a jelenlegi Athlon-ok L2 cache-e a processzor órajelének a felén fut). A processzorban lévő L2 cache controller 72 bit-es (64 bit data + 8 bit ECC) csatlakozási felülete akár 8 Mbyte cache-t is képes kezelni. A típusa lehet szimpa SRAM vagy DDR SRAM (Double Data Rate - dupla adatátvitelű) is. A processzorba 512 Kbyte gyorsítótár kezelésére elegendő tag ram-ot integráltak, ha ennél több kerül egy processzorkártyára, akkor külső tag ram-okat kell használni. Itt jegyezzük meg, hogy amennyiben 1/3-as osztású cache-t használunk 1/2-es helyett, a teljesítmény nem fog jelentősen csökkenni. Ennek az az oka, hogy bár árban sokkal drágábbak a 250-325 MHz-es SRAM-ok, addig teljesítményűk nem sokkal gyorsabb egy jóval olcsóbb 200 MHz-es SRAM-nál. Egyes elemzők szerint az Athlon-nak nem lesz olyan verziója, ahol az SRAM a CPU órajelén fut. Ennek egyszerűen az az oka, hogy egy kisebb órajelen fútó DDR SRAM jobb teljesítményt biztosít, mivel azonos adatátvitel mellett kisebb latency-vel (késleltetési idővel) dolgozik. EV6 A K7 nem az Intel Pentium III GTL+ protokolját használja (nem is tehetné), hanem a Digital által kifejlesztett Alpha busz protokolt, az EV6-ot, ami összehasonlíthatatlanul magasabb szintű rendszer. Ez persze azt is jelenti, hogy nem lehet használni Slot 1-es alaplapokban. Az Athlon egy úgynevezett `Slot A` csatlakozót használ. Ez elektronikailag nem kompatibilis a Slot 1-el, azonban fizikailag igen, így nem kell újabb csatlakozót gyártani. Nézzük miben nyújt többet az EV6! A GTL+ órajele a jelenlegi BX chipsetes alaplapoknál Pentium III-mal 100MHz, azaz az adatátvitel a chipset és a processzor között (FSB: Front Side Bus) 800 Mbyte/s (64 bit * 100 MHz / 8 bit). Az adatátvítel 1,06 Gbyte/s-ra növekszik, amint az FSB órajele 133 MHz lesz. Az EV6 órajele 40 és 400 MHz között mozoghat. Az Athlon elsőként 200 MHz-es FSB-t használ. Meg kell azonban jegyezni, hogy ez a 200 MHz tulajdonképpen csak 100 MHz. Mivel azonban a jel mindkét oldalán hordoz információt, az adatátvitel megfelel a 200 MHz-nek. Hasonló módon müködik az AGP és a Direct Rambus DRAM is. Az EV6 adatátvitele tehát 200 MHz-es órajelen 1,6 Gbyte/s. Az FSB a jövőben növekedni fog, először 266 MHz-re (133 * 2), majd 400 MHz-re (200 * 2), így az elérhető elméleti maximális adatátvitel a processzor és a chipset között 2,13 Gbyte/s, majd 3,2 Gbyte/s lesz. Ahogy a fenti képen látszik, ennek a 200 MHz-nek nincs köze más I/O csatornákhoz, magyarul a ram és a chipset közötti sebesség független a processzor és a chipset közötti sebességtől. Éppen ezért nem kell a megélvő PC100-as SDRAM-ot lecserélni más típusokra. Természetesen a jövőben más DRAM típusokat is támogatnak majd az Athlon chipset-ek: PC133: PC100 továbbfejlesztés, adatátvitel 1,06 Gbyte/s Direct Rambus: az Intel üdvöskéje; jelenleg túl drága, mert a gyártása nehézkes; az adatátvítel 1,2 vagy 1,6 Gbyte/s, attól függően, hogy 600 vagy 800 MHz-es a Rambus (itt is a jel minkét oldala információhordozó, szóval igazából 300 és 400 MHz-en ketyeg) DDR SDRAM (Double Data Rate SDRAM): az egyik legjobb megoldás, jelenleg nagyon drága; adatátvitele duplája a PC100 és PC133-nak, azaz 1,6 Gbyte/s, illetve 2,1 Gbyte/s Ne feledkezzünk meg azonban az 512 Kbyte-os L2 cache-ről. A processzor az adatokat, amikre éppen szüksége van, 90-95 százalékban megtalálja az cache-ben és csak nagyon ritkán kell a lassú rendszermemóriához fordulnia. Éppen ezért a gyorsabb rendszermemória leginkább az AGP-re lesz hatással. A GTL+ protokoll legnagyobb problémája, hogy magas órajelen "zajossá" válik. Ez az oka annak is, hogy az Intel meglehetősen lassan akar áttérni a 133 MHz-es FSB-re. Az alaplapnak nagyon jó minőségűnek kell lennie, ezáltal többe fog kerülni a vásárlónak. Tovább súlyosbodik a helyzet többprocesszoros rendszerek esetén, mivel a GTL+ úgynevezett „share bus topology". Ez azt jelenti, hogy több eszköz osztozik ugyanazon a buszon. A fenti képen jól látható, hogy négy darab Xeon processzornak kell osztoznia a 800 Mbyte/s-on, azaz egy CPU-ra csak 200 Mbyte/s adatátvitel jut. További problémája a GTL-nek: meg kell akadályozni, hogy két processzor egyszerre próbáljon kommunikálni egy eszközzel (pl. PCI-al ). Ezt úgy teszik, hogy az egyik CPU-t kinevezik "bus master"-nek, és ha egy másik processzornak szüksége van a busz-ra, előbb kérelmet kell benyújtania a bus master-nek. Nem túl hatékony rendszer… Ellentétben az EV6-tal: Ezzel ellentétben az EV6 point-to-point protokoll, azaz minden egyes CPU-nak saját 64 bit-es (+ 8 bit ECC), 200 MHz-es csatornája van a chipsethez, így minden egyes CPU megkapja az EV6 busz által biztosított maximális adathalmazt. OPN kód AMD-K7 Family/architektúra 550 Processzor sebessége M Tokozás (M = Card Module, P = PGA, egyéb = TBD) T Működési feszültség R Működési hőmérséklet (R = 70 Celsius fok) 5 Cache mérete (5=512KB, 1=1MB, 2=2MB, stb) 1 Cache osztó (1 jelöli a szabványos 1/2-es osztót) B Maximális FSB (A=133, B=200, C=266, D=333, stb) C Véletlenszerű karakter A Hardware Hunpage cikke alapján készítette: Mongoose.