Architektura Intel Atom ˇ ep´an Sojka Stˇ 5. prosince 2008
1
´ Uvod
Hlavn´ı rysem Atomu je podpora platformy x86, kter´ a umoˇzn ˇuje spouˇstˇet a bˇeˇznˇe pouˇz´ıvat ˇradu let vyv´ıjen´e aplikace, na kter´e jsou uˇzivatel´e zvykl´ı z PC a zaruˇcuje bezprobl´emovou a plnohodnotnou komunikaci mezi mobiln´ımi zaˇr´ızen´ımi a poˇc´ıtaˇci. Pˇri v´ yvoji Atomu byl d˚ uraz kladen pˇredevˇs´ım na to, aby nov´ y procesor mˇel co nejniˇzˇs´ı spotˇrebu energie a z´ aroveˇ n si zachoval v´ ykon dostateˇcn´ y k provozov´an´ı jednoduch´ ych kancel´ aˇrsk´ ych aplikac´ı a proh´ıˇzen´ı internetu. Architektura Atom je urˇcena pˇredevˇs´ım pro tˇri nov´e kategorie poˇc´ıtaˇc˚ u: netbooky – levn´e a m´enˇe v´ ykonn´e notebooky, napˇr. Asus eee, nebo MSI Wind nettopy – stoln´ı obdoba netbook˚ u, MIDs - Mobile Internet Devices, neboli mobiln´ı internetov´a zaˇr´ızen´ı.
2
Technick´ a data
Atom se vyr´ ab´ı 45nm v´ yrobn´ım procesem. Se sv´ ymi rozmˇery 13mm x 14mm x 1.6mm je nejmenˇs´ım procesorem, kter´ y firma Intel v souˇcasnosti vyr´ ab´ı.Na obr´ azku 1 jsou rozmˇery dobˇre patrn´e. Uveden´ a ˇc´ısla jsou rozmˇery vˇcetnˇe pouzdra, na obr´ azku 1 je vidˇet, ˇze rozmˇery samotn´eho ˇcipu jsou jeˇstˇe o mnoho menˇs´ı. Procesor obsahuje zhruba 47 milion˚ u tranzistor˚ u, coˇz je srovnateln´e s zhruba s Pentiem 4 (cca 42 milion˚ u tranzistor˚ u). Oproti dneˇsn´ım procesor˚ um je to v´ yraznˇe m´enˇe, napˇr´ıklad procesor Core 2 Duo m´a pˇribliˇznˇe 270 milion˚ u tranzistor˚ u. Zaj´ımav´e je, ˇze pˇribliˇznˇe 40% tranzistor˚ u v Atomu zab´ır´ a 512KB L2 cache. Atom m´a 32 KB L1 instrukˇcn´ı a 24 KB L1 datov´e cache pamˇeti.Spotˇreba energie se bohybuje mezi 0.65 W - 2.64 W, taktovac´ı frekvence mezi 0.8 - 1.86 GHz. Konkr´etn´ı hodnoty se liˇs´ı podle jednotliv´ ych model˚ u procesoru.
3
Architektura procesoru
Intel Atom je proudov´ y procesor. To znamen´ a, ˇze zpracov´ av´ a instrukce postupˇe jednu za druhou a nen´ı schopen mˇenit jejich poˇrad´ı. Tato architektura byla 1
Obr´azek 1: Velikost procesoru Intel Atom
naposled pouˇzita u prvn´ıch procesor˚ u Intel Pentium, od n´ astupu Pentia Pro jiˇz procesory dok´ azaly mˇenit poˇrad´ı zpracov´avan´ ych instrukc´ı, napˇr´ıklad pˇri v´ ypadku pamˇeti cache nebo pˇri datov´ ych z´ avislostech mezi instrukcemi. Obvody, kter´e zajiˇst’uj´ı zpracov´av´ an´ı instrukc´ı mimo poˇrad´ı jsou vˇsak velmi n´ aroˇcn´e jak co do sloˇzitosti tak i co do spotˇreby, proto se konstrukt´eˇri Atomu rozhodli pro proudov´e zpracov´an´ı.
3.1
Funkˇ cn´ı jednotky
Atom dok´ aˇze zpracov´avat dvˇe instrukce souˇcasnˇe, jde tedy o superskal´arn´ı procesor, vˇetˇs´ı procesory vˇsak zpracov´avaj´ı vˇetˇsinou tˇri nebo ˇctyˇri instrukce souˇcasnˇe. Tento procesor m´a relativnˇe mal´ y poˇcet funkˇcn´ıch jednotek, jak se m˚ uˇzeme pˇresvˇedˇcit z jeho blokov´eho sch´ematu na obr´ azku 2. Dvˇe funkˇc´ı jednotky slouˇz´ı pro pr´aci s cel´ ymi ˇc´ısly, jedna funkˇcn´ı jednotka slouˇz´ı nav´ıc k prov´adˇen´ı skok˚ u, druh´ a funkˇcn´ı jednotka pak k bitov´ ym posun˚ un ˇc´ısel. Ani jedna z tˇechto jednotek vˇsak neprov´ad´ı n´ asoben´ı, n´ asoben´ı cel´ ych ˇc´ısel se prov´ad´ı na jedn´e z jednotek pro pr´aci s ˇc´ısly s pohyblivou ˇr´adovou ˇca´rkou. Pro pr´aci s ˇc´ısly s pohyblivou ˇr´adovou ˇca´rkou slouˇz´ı opˇet dvˇe funkˇcn´ı jednotky, jedna jednoduˇsˇs´ı, kter´ a obsahuje pouze aritmeticko-logickou jednotku a sˇc´ıtaˇcku, a druh´ a komplexnˇejˇs´ı, kter´ a odsahuje artmeticko-logickou jednotku, jednotky pro n´ asoben´ı a dˇelen´ı (jak ˇc´ısel s plovouc´ı ˇr´adovou ˇca´rkou, tak cel´ ych ˇc´ısel), a jednotku pro SIMD instrukce. Atom podporuje instrukce SSE3. Pˇri pouˇzit´ı tˇechto instrukc´ı je moˇzn´e vykon´avat jednu instrukci paralelnˇe na 128 bitech dat.
3.2
Hyper Threading
Kv˚ uli okolnostem jako jsou napˇr´ıklad datov´e z´ avislosti mezi instrukcemi nen´ı ˇcasto moˇzn´e prov´adˇet dvˇe instrukce ze stejn´eho vl´ akna souˇcasnˇe. Atom je proto 2
Obr´azek 2: Blokov´e sch´ema
3
vybaven technologi´ı Hyper Threading, kter´ a umoˇzn ˇ uje procesoru zpracov´avat souˇcasnˇe instrukce ze dvou vl´ aken. Kaˇzd´e vl´ akno m´a svou vlastn´ı frontu instrukc´ı se ˇsestn´ acti z´ aznamy (viz obr´ azek 2). Pokud pˇri vykon´av´ an´ı programu dojde napˇr´ıklad k v´ ypadku pamˇeti cache nebo se objev´ı datov´a z´ avislost, procesor nemus´ı zastavovat linku a ˇcekat aˇz bude moci d´ ale pokraˇcovat, ale m´ısto toho m˚ uˇze vykon´avat instrukce z druh´eho vl´ akna. Pˇrep´ın´an´ı procesoru mezi vl´ akny (ukl´ad´an´ı hodnot stavov´ ych registr˚ u atd. . . ) je zde ˇreˇseno hardwarovˇe a je tedy velice rychl´e.
3.3
Zˇ retˇ ezen´ı
Zˇretˇezen´ı v procesoru Intel Atom dosahuje 16-ti u ´ rovn´ı. To je v´ıce neˇz u vˇetˇsiny souˇcasn´ ych procesor˚ u, napˇr´ıklad Core 2 Duo m´a 14 u ´ rovn´ı zˇretˇezen´ı. Zretˇezen´ı v procesoru INtel Atom m´a vˇetˇs´ı hloubku z tˇechto d˚ uvod˚ u: • pomalejˇs´ı pˇr´ıstup do pamˇeti cache - pamˇet’ cache v atomu m´a relativnˇe velkou latenci • delˇs´ı dek´ odov´an´ı instrukc´ı • pouˇzit´ı technologie Hyper Threading si vyˇza´dalo jednu u ´ roveˇ n zˇretˇezen´ı nav´ıc Pouˇzit´ı vˇetˇs´ı hloubky zˇretˇezen´ı umoˇznilo tak´e pouˇzit´ı vˇetˇs´ıch taktovac´ıch frekvenc´ı. Protoˇze jde o jednoduch´ y procesor, kter´ y vyd´av´ a jen dvˇe instrukce v jednom taktu, bylo k dosaˇzen´ı potˇrebn´eho v´ ykonu tˇreba zv´ yˇsit pr´avˇe taktovac´ı frekvenci.
3.4
Atom a CISC instrukce
Od dob Pentia Pro, tedy od prvn´ı poloviny devades´at´ ych let, se v procesorech firmy Intel CISC instrukce dek´ odovaly na menˇs´ı a jednoduˇsˇs´ı instrukce, takzvan´e mikroinstrukce. Tyto se pak prov´adˇely na RISC j´adru v procesoru. S pˇr´ıchodem procesoru Intel Pentium M Intel zaˇcal nˇekter´e mikroinstrukce spojovat do komplexnˇejˇs´ıch instrukc´ı, kter´e jsou v procesoru zpracov´av´ any atomicky. Tento pˇr´ıstup zvyˇsuje v´ ykon procesoru t´ım, ˇze procesor se jev´ı, jako by zpracov´aval v´ıce mikroinstrukc´ı najednou. V j´adru ˇslo vˇsak st´ale o procesor typu RISC. V procesoru Intel Atom dokonce nˇekter´e CISC instrukce nejsou dek´ odov´any do mikroinstrukc´ı a proch´ azej´ı procesorem jako jedna jedin´ a instrukce. Jedn´ a se hlavnˇe o instrukce typu ”nahraj data z pamˇeti - proved’ operaci”, tedy instrukce, jejichˇz jednu nebo v´ıce ˇca´st´ı tvoˇr´ı operace s pamˇet´ı. Tento pˇr´ıstup je efektivn´ı zvl´aˇstˇe u Atomu, protoˇze jde o proudov´ y procesor. Pro Atom by totiˇz bylo zbyteˇcn´e, kdyby mˇel ve frontˇe velk´e mnoˇzstv´ı, byt’ jednoduch´ ych, instrukc´ı, kdyˇz stejnˇe nen´ı schopen mˇenit jejich poˇrad´ı pro efektivnˇejˇs´ı zpracov´an´ı. Sp´ıˇse je v´ yhodn´e, aby instrukc´ı bylo m´enˇe, tˇreba i sloˇzitˇejˇs´ıch. Na druhou stranu, pokud se zm´ yl´ı jednotka pro predikci skok˚ u, bude to o nˇeco horˇs´ı. 4
Obr´azek 3: Jednotliv´e stupnˇe zˇretˇezen´ı
3.5
Stavy nap´ ajen´ı
Intel Atom m´a ˇsest stav˚ u nap´ajen´ı, firma Intel je oznaˇcuje jako C1 - C6. Jednotliv´e stavy jsou rozliˇseny na obr´ azku 4. Pˇri nej´ uspornˇejˇs´ım stavu, stavu C6, je vypnut hodinov´ y sign´al, pamˇeti cache jsou pr´azdn´e a prakticky cel´ y procesor je odpojen od nap´ajen´ı, s vyj´ımkou mal´e pamˇeti SRAM, kter´ a uchov´av´ a hodnoty stavov´ ych registr˚ u procesoru a dalˇs´ı hodnoty nezbytn´e pro obnoven´ı ˇcinnosti. ”Probuzen´ı” procesoru ze stavu C6 trv´a pˇribliˇznˇe 100µs
5
Obr´azek 4: Jednotliv´e stavy nap´ajen´ı
6