SG.hu·

Bemutatta négymagos chipjét az Intel

A processzorgyártó lerántotta a leplet jövőre megjelenő négymagos fejlesztéseiről, és bár a következő években több újítást is ígérnek, idén még az ikermagos változatok felfuttatására koncentrálnak.

A jelenleg még fejlesztés alatt álló Clovertown kódnevű szerverchipet Justin Rattner, az Intel technológiai igazgatója mutatta be. Az eddig elkészült összesen négy példányból egyszerre kettő debütált, mivel ezek a chipek kétprocesszoros szerverekben szolgálnak majd. A technikai részletekről egyelőre mélyen hallgatnak, mindössze annyit tudtunk meg, hogy egy újabb változat, a Tigerton a négy, illetve több foglalatú masinákban érkezik, és kereskedelmi forgalomban a korábbi ígéreteknek megfelelően jövőre jelennek meg.

A gyártó eredetileg a Whitefield projekt révén szeretett volna berobbanni a négymagosok piacára, ám tervezési problémák miatt ezt törölték, és minden erővel a Clovertownra koncentráltak. Rattner elmondása szerint az elkövetkező években a magszám növelésére koncentrálnak, és az évtized végére a több tíz magból álló processzorok megjelenését is elképzelhetőnek tartják.


Justin Rattner, az Intel technológiai igazgatója

Az igazgatónak nagyotmondásban nem kell a szomszédba mennie: szerinte tíz éven belül több száz magot tartalmazó processzorok kifejlesztése is lehetséges lesz, és a koncepció révén elfogadható szinten tudják majd tartani a fogyasztást és hőtermelést. Ennek ugyanis némileg ellentmond, hogy már a nyolcmagosoknál nagy kihívást jelent a megfelelő gyorsítótár elhelyezése.

Idén azonban egyértelműen az ikermagos változatok gyártásának felfuttatása a cél. Ezekből 60 millió példány leszállítását szeretnék elérni, ami saját adataik szerint a teljes eredmény egynegyedét tenné ki. A Conroe, Merom és Woodcrest magok révén mindhárom területen, azaz a szervereknél, asztali számítógépeknél és a mobil megoldásoknál is előretörést remélnek, vagyis azt, hogy megelőzhetik az AMD helyzetének további javulását. A több száz magból álló chipek ígérete ma még elég elképzelhetetlennek hangzik, ám az biztos, hogy nem lazsálhatnak, hiszen riválisuk is jövőre tervezi négymagos processzorai megjelenését.

Kapcsolódó cikkek és linkek

Hozzászólások

Jelentkezz be a hozzászóláshoz.

© BiroAndras2006. 02. 27.. 11:24||#132
No, beüzemeltem az X2-t. Csináltam egy kis tesztprogit, ami 2 számolós szálat indít. Semmi mást nem kellett tennem, mint fellõni a két szálat ahhoz, hogy mindkét magot kihasználjam. Sõt, 1 szál sem 1 magon fut, hanem ugrál a két mag közt a terhelés függvényében.
© dez2006. 02. 22.. 19:26||#131
"Te mondtad, hogy minden thread-hez child process is kell, hogy mentse a regisztereket (ez esetben ugye adott az 1-1 hozzárendelés)."

Ezen a ponton én is tévedtem, nem kell mindig. Csak fork()-nál (l. #118). Úgy gondoltam, egy új szálhoz kell egy egész process-struktúra, hogy ott tárolódhassanak bizonyos dolgok (stack, program counter mentés, stb.). De nem feltétlenül kell egy egész, csak egy része (amit az alább általad felhozott AxnBeginThread hoz létre). Ilyenkor nem lesz egy valódi új process, csak egy "lightweight process". :)

"Nem a regiszterek mentésérnek konkrét folyamatáról beszéltem, hanem arról, hogy ha mindenképp kell child process a threadhez, akkor azt is az OS intézi, nem kézzel kell létrehozni."

Ja, értem. (Igazából jól írtad le, csak már álmos voltam. :))

"Ez így garantáltan nem igaz. Különben 1 lefagyó progi magával rántraná az egész rendszert."

Hát igen, így frissebb fejjel átgondolva, valóban nehézkes lenne... :) Bár, esetleg elképzelhetõ, hogy ilyen eseteket érzékeljen a rendszer (megszakítások is vannak, lehet pl. egy megszakításban egy számlálót léptetni, stb. - bár ez elég vad dolog lenne :)), és kirúgja azt a processt. Néha elég érdekesen viselkedik a Windows, lehet, hogy valami ilyesmi miatt? :)
© BiroAndras2006. 02. 22.. 16:51||#130
"Csak akkor lenne elég processenként menteni, ha annak esetleges több threadjét nem akarjuk (preemptív) multitaskban futtatni."

Teljesen félreértessz. Te mondtad, hogy minden thread-hez child process is kell, hogy mentse a regisztereket (ez esetben ugye adott az 1-1 hozzárendelés). Erre válaszoltam.

"Nyilvánvaló, hogy az OS intézi ezeket. Mit gondolsz, ha nem mentené/töltené a Windows (a szálhoz tartozó stackbe) a regiszereket taszkváltáskor, mi lenne velük? Az AfxBeginThread paraméterei között szerepel is a StackSize."

Nem a regiszterek mentésérnek konkrét folyamatáról beszéltem, hanem arról, hogy ha mindenképp kell child process a threadhez, akkor azt is az OS intézi, nem kézzel kell létrehozni.

"Microsoft introduced cooperative multitasking (which Microsoft refers to as process multitasking) in Windows 3.0. The newest versions of Windows (Windows NT and Windows 95) include preemptive multitasking (but only between the threads of a given process)."

Ez így garantáltan nem igaz. Különben 1 lefagyó progi magával rántraná az egész rendszert.
© dez2006. 02. 22.. 11:09||#129
"Akkor meg kéne különböztetni a thread-et mint fogalma, és mint adatszerkezetet (process dettó)."

Oké, végülis igen. A processen belüli threadet talán szerencsésebb lett volna pl. subthreadnek nevezni. Vagy az egyiket konzekvensen kizárólag "thread of execution"-nak írni (pl. #118), a másikat meg simán threadnek. (De ilyen úgysem lehet elvárni.)
© dez2006. 02. 22.. 10:40||#128
"Hol javítottál ki? Nem látom."

Kezdem azt hinni, hogy nálad nem jelenik meg minden hozzászólás... ;) Pl. #120.

"Persze, de ettõl még a probléma nem oldódik meg."

De az a megoldás kulcsa. És lássék: a #106-os alapján egy program két threadje is futhat más-más procin is akár. De persze lehetséges, hogy itt téved a Wikipedia. (De semmiképp sem biztos.)

"Akkor meg kéne különböztetni a thread-et mint fogalma, és mint adatszerkezetet (process dettó)."

Csak annyit kell tudni, amit a #115-ben leírtam, de adja is magát. Persze laikusoknak így kevésbé egyértelmû. Csakhogy, a programozási fogalmakat alapvetõen a programozóknak találták ki, nem a laikusoknak.

"Implementációs kérdés, hogy a regiszterek thread-enként vagy process-enként mentõdnek."

Tessék? Csak akkor lenne elég processenként menteni, ha annak esetleges több threadjét nem akarjuk (preemptív) multitaskban futtatni.

"Az elsõ esetben nem kell child process, a másodikban kell."

Ez igaz, de itt most a desktop OS-ekrõl beszélünk (azon belül Windowsról), nem valami egyszerûsített embedded rendszerrõl.

"Win-en elég egy új thread-et fellõni (AfxBeginThread), másra nincs szükség (vagy elintézi az OS magában)."

Nyilvánvaló, hogy az OS intézi ezeket. Mit gondolsz, ha nem mentené/töltené a Windows (a szálhoz tartozó stackbe) a regiszereket taszkváltáskor, mi lenne velük? Az AfxBeginThread paraméterei között szerepel is a StackSize.

Viszont... Kicsit jobban utána néztem én is a thread-témának, és azt találtam, hogy van (OS-tõl föggõen is), amikor általánosságban használják a kifejezést (lásd pl. #118), mint fogalom, és van, amikor konkrétan (egy processen belüli függvény threaddá avatása, saját stackkel, handle-lel, stb., és külön szálon futtatása, a la AfxBeginThread)... Ez persze okozhat némi félreértéseket. Rigidus is nyilván az utóbbira asszociált. (De azért 1-2 dologban tévedett.)

Találtam egy érdekes oldalt: http://osl.cpe.ku.ac.th/documentations/book/Netscape_plugin/ch13.htm
Idézetek:
"Threads are "lightweight processes." They behave like processes in that they support an additional path of execution, but they share the same address space as their parent. Because there is only one address space, there is little need to think about IPC. It also means that a programming error in one thread can ruin data in the other thread."

És ami fõleg érdekes:
"Microsoft introduced cooperative multitasking (which Microsoft refers to as process multitasking) in Windows 3.0. The newest versions of Windows (Windows NT and Windows 95) include preemptive multitasking (but only between the threads of a given process)."
Wow...

Na mindegy, szerintem tudhat futni egy process két threadje két külön procin is.
© BiroAndras2006. 02. 21.. 19:34||#127
"Nem gondolod, hogy a "teljesen világos" egy kicsit túlzás, tekintve, hogy jópárszor ki kellett javítsalak?"

Hol javítottál ki? Nem látom.

"Ejj, nem gondolod, hogy amikor egy vita van a fogalmak nem pontos ismerete miatt, elõször azokat kell tisztázni?"

Persze, de ettõl még a probléma nem oldódik meg.

"Child-processt akkor is létre kell hoznia. Mivel kell, hogy valahol tárolódhassanak a taszkváltásokkor a regiszterek, stb."

Akkor meg kéne különböztetni a thread-et mint fogalma, és mint adatszerkezetet (process dettó).
Implementációs kérdés, hogy a regiszterek thread-enként vagy process-enként mentõdnek. Az elsõ esetben nem kell child process, a másodikban kell.
Win-en elég egy új thread-et fellõni (AfxBeginThread), másra nincs szükség (vagy elintézi az OS magában).
© dez2006. 02. 20.. 22:58||#126
"Nekem teljesen világos a dolog."

Nem gondolod, hogy a "teljesen világos" egy kicsit túlzás, tekintve, hogy jópárszor ki kellett javítsalak? Sõt...

"De az alap kérdés nem ez volt"

Ejj, nem gondolod, hogy amikor egy vita van a fogalmak nem pontos ismerete miatt, elõször azokat kell tisztázni?

"hanem az, hogy a multicore procik kihasználásához az illetõ szoftvernek elég több szálon futnia, vagy több process-t is létre kell hoznia."

Child-processt akkor is létre kell hoznia. Mivel kell, hogy valahol tárolódhassanak a taszkváltásokkor a regiszterek, stb.

"Szerintem a child process és a thread nem ugyanaz."

Ehh, olvass már légyszives! #115-118, #121.
© BiroAndras2006. 02. 20.. 17:01||#125
"Jaj, hát errõl is szó van, nagyon is, mivel errõl is vitáztok, közben egyikõtök számára sem volt igazán világos."

Nekem teljesen világos a dolog. De az alap kérdés nem ez volt, hanem az, hogy a multicore procik kihasználásához az illetõ szoftvernek elég több szálon futnia, vagy több process-t is létre kell hoznia.

"Tehát a kérdés az lehet, hogy egy child-process (azaz a parent-process egy új threadje) futhat-e más CPU-n/magon, mint a parentje."

Szerintem a child process és a thread nem ugyanaz.
© dez2006. 02. 20.. 15:12||#124
Vagy, ha ezt úgy értetted, hogy "egy process új threadje(i) futhat(nak)-e másik CPU-n", akkor tekintsd tágytalannak a "Lehet" utáni részt.
© dez2006. 02. 20.. 15:02||#123
"De nem errõl volt szó szerintem"

Jaj, hát errõl is szó van, nagyon is, mivel errõl is vitáztok, közben egyikõtök számára sem volt igazán világos.

"a process-hez tartozó thread(ek) futhatnak-e másik CPU-n."

Lehet, hogy még mindig nem világos? Mivel a kérdés az "(ek)" nélkül értelmetlen. Egy process is egy thread önmagában! Nincs olyan, hogy (sima vagy child-)process nélküli thread. Hányszor kell még leírni?

Tehát a kérdés az lehet, hogy egy child-process (azaz a parent-process egy új threadje) futhat-e más CPU-n/magon, mint a parentje. Nos, futhat, miért ne futhatna. Mint ahogy egy procin is futhat SMT rendszerben.