Hoofdcategorieën
Device Settings

Een toekomst zonder klok: asynchrone chips

Door Jeroen P Hira, woensdag 17 juli 2002 16:19
Bron: Scientific American, views: 752

Op de site van Scientific American is een artikel verschenen waarin wordt uitgelegd wat asynchrone computers zijn, wat de voordelen ervan zijn en hoe ver men met de ontwikkeling ervan is. Hieronder volgt een korte samenvatting van het artikel, wat hier in zijn geheel te lezen valt.

Nu de timing van de klok binnen de synchrone computers steeds complexer begint te worden, keert men weer terug naar het idee van asynchrone computers: computers waar onderdelen op eigen snelheid hun taken uitvoeren. Dit in tegenstelling tot de huidige situatie, waar elke actie binnen de computer gelijk moet lopen met de processor. Een goed voorbeeld om het verschil aan te geven tussen asynchrone en synchrone computers is het onderstaande plaatje, waar een rij mensen een emmer aan elkaar doorgeeft.

Bucketline

Bij een synchrone computer wordt de emmer op de maat van de klok doorgegeven, dus bij elke tik gaat de emmer een stap vooruit. Het ritme bij een asynchrone computer is helemaal niet geordend, in plaats daarvan wordt hier de emmer doorgegeven zodra bij de ontvanger de handen leeg zijn. Dit houdt dus in dat als de ontvanger een zware emmer moet doorgeven, dit langer duurt dan bij een lichte emmer. Hierdoor loopt het proces weliswaar vertraging op, maar omdat er in verhouding weinig zware emmers worden doorgegeven, zal een asynchrone rij over het algemeen sneller zijn dan een synchrone rij.

Enkele voordelen van asynchrone computers zijn onder andere een verhoogde snelheid, een lager stroomverbruik en dat er nauwelijks nog radio-interferentie meer waar te nemen valt. Verder kan met behulp van deze techniek flexibeler worden ontworpen, doordat er meer vrijheid is bij het kiezen van systeemonderdelen. Ook kan men gemakkelijker afzonderlijk onderdelen vervangen, om winst te boeken op de snelheid van het totale systeem. Maar om dit bereiken zijn wel twee cruciale coördinatie circuits benodigd, de Rendezvous en de Arbiter:

Rendezvous (klein) A Rendezvous element indicates when the last of two or more signals has arrived at a particular stage. Asynchronous systems use these elements to wait until all the concurrent actions finish before starting the next action. For instance, an arithmetic division circuit must have both the dividend (say, 16) and the divisor (say, 2) before it can divide one by the other (to reach the answer 8).

[...]An Arbiter is like a traffic officer at an intersection who decides which car may pass through next. Given only one request, an Arbiter promptly permits the corresponding action, delaying any second request until the first action is completed. When an Arbiter gets two requests at once, it must decide which request to grant first. For example, when two processors request access to a shared memory at approximately the same time, the Arbiter puts the requests into a sequence, granting access to only one processor at a time. The Arbiter guarantees that there are never two actions under way at once, just as the traffic officer prevents accidents by ensuring that there are never two cars passing through the intersection on a collision course.

De auteurs van dit artikel hebben zich vooral geconcentreerd op de prestaties van hun collega's bij Sun, omdat zij daar ook werkzaam zijn. Maar dat is niet het enige bedrijf dat successen boekt op het gebied van asynchrone circuits, zo zijn er demonstraties geweest waar onder andere Caltech en Philips getoond hebben dat asynchrone computers kunnen samenwerken met hun synchrone broertjes, zonder speciaal geschreven software of aangepaste interfacecircuits. Verder heeft Philips inmiddels ook een naam hoog te houden, doordat zij inmiddels asynchrone technieken met wisselend commercieel succes hebben toegepast.

Volgende 19:38 Ontwikkeling Windows 2000 SP3 nadert voltooiing
Vorige 15:29 Microsoft erkent DX8.1 problemen op AMD platform
Advertentie

Reacties

«  1  2  3  4  »

Kun je procesortijd aan bepaalde toepassingen instellen waardoor er belangrijke taken voorgaan.
Kan erg belangrijk zijn voor sommige toepassingen.

Volgens mij zit dat nu ook al in je OS, zoiets als de prioriteit instellen voor een bepaald proces/applicatie? (Windows Task Manager bijvoorbeeld).

Die is gerelateerd aan de processorload en niet aan de asynchroneklok frequenties. Ik neem aan dat je processor synchroon is. :)

een software taak heeft er in dit geval wel wat mee te maken maar niet alles, je Interupts en rest van je systeem hebben er ook mee te maken, nu is alles afhankelijk van 1 klok dus bv je beeld loopt gelijk met geluid, het voordeel van asynchroon is dat je bv je beeld meer voorrang kan geven en je geluid minder. wat dus kan resulteren ik bagger geluid maar mooi beeld en visa versa .. om maar ff een idee te geven.

der lopen in een pc minimaal 10 taken zonder dat je een toets aanraakt .. om mogelijk te maken dat je die toets kan aanraken en dat er wat gebeurd .. het is zelfs zo erg dat je eigenlijk een procces in de wacht zet als je een toets indrukt of met je muis beweegt nu merk je dat niet en is het niet zo erg maar kan voor progammeurs best wel eens lastig zijn..

De interrupt-klok van 100Hertz (of zo) die voor multi-tasking zorgt heeft natuurlijk niets te maken met de klokfrequentie van de processor van 2GHz.
Ook een asynchrone processor kan nog een interrupt-klok hebben

nee het was maar een voorbeeld .. sjees ...(die interrupt dan)

En hoe zullen de pc systemen dan worden genoemd als het zover is?

Koop je dan een AMD slow/fast bucket systeem? }> :P

Dan krijg je processors die zijn gespecificeerd middels benchmarks (en niet direct de klok-frequentie). Een soort PR-rating zoals AMD die nu al heeft dus.

Gaat het idee van overclocken dan niet een beetje naar de haaien? Straks moet je elke chip overclocken ipv 1.

Overclocken bestaat dan niet meer, omdat elke chip vanzelf al zo snel gaat als ie maar kan.

Je kan met asynchrone chips ook alleen maar een 'snellere' versie maken door een betere architectuur, of een zuiverder productieproces.

Overklokken gaat _wel_ met asynchrone chips: dit doe je door simpelweg het voltage te verhogen. Door het hogere voltage verminder je n.l. de schakeltijd v.d. transistoren.

Of door ze flink te koelen. Hoe kouder hoe sneller.

Uuuhm [P]redator... je zegt het zelf, kouder = minder weerstand, dus gaat de stroom ook harder en schakelen de transistoren sneller

Of door ze flink te koelen. Hoe kouder hoe sneller

Nee

Een chip die koud heeft werkt helemaal niet sneller dan 1 die warm heeft.
Wel kan je die meer vermogen laten verbruiken omdat de meer geproduceerde warmte beter afgevoerd wordt.

( ~ idee van overclocken)


Zelfs:
hoe kouder -> hoe minder geleiding

supergeleiding proberen met stikstofkoeling???

Predator heeft dus wel gelijk, want hoe meer je de chip koelt, hoe lager de elektron mobiliteit wordt. En doordat de mobiliteit lager wordt, zullen electronen meer tijd nodig hebben om van punt A naar B te komen.

However, er is ook nog een effect dat lattice scattering heet, dat ervoor zorgt dat juist bij hogere temperaturen de electronen tegen de vaste atomen aanbotsen en dus ook minder snel op de eindbestemming zijn.

Het komt er op neer dat er tussen deze twee effecten een optimum zit, dat onder andere afhangt van de dotering van het silicium. Bij een dotering van 10^19 zit het optimum ongeveer bij 250 K, dus -25C.

Concluderend: huistuinenkeuken koelprojectjes zoals jullie ze hier doen hebben dus zeker wel zin, maar koeling tot zeer ver onder het nulpunt is niet nuttig.

Als er geen klok meer is, dan valt er niks over te klokken. :) Of heeft ieder chippie nu z'n eigen klokje?
edit:
Als ze dus allemaal zo hard gaan als ze kunnen dan heb je ook de maximale warmte ontwikkeling, dus goede koelling is wel noodzakelijk.

Nee, niet iedere chipje heeft een eigen klokje. Eindgelijk werkt het zoals de parallele printerpoort. Daar wordt ook tussen computer en printer gepraat op de maximale snelheid die beide machines kunnen hanteren. (met strobe en acknowledge signalen)

Deze chips lopen gewoon zo hard als ze kunnen.

Bij overklokken van normale chips gaat het vaak fout omdat het ene emmertje er nog niet staat terwijl het volgende mannetje die wel op wil pakken. Als een chip warm wordt, wordt gaan die mannetjes langzamer werken en krijg je meer kans op fouten.

Als je zo'n chips zonder klok wil overklokken moet je gewoon meer koelen en gaan de mannetjes harder werken.

De huidige P4 maakt intern al gebruik van asynchrone gedeeltes/eilandjes. Van buiten is hij alleen nog synchroon. Intel heeft daar een tijd terug ook een onderzoek naar gedaan. Daaruit bleek dat asynchrone procs vele malen efficienter waren, maar veel moeilijker te ontwikkelen zijn.

Zie ook dit artikel op T.net van november vorig jaar:
http://www.tweakers.net/nieuws/19188

Bij een aantal componenten achter elkaar in een ketting bepaalt de zwakste schakel de snelheid. Als je weet wat dat is kan je dat veranderen...

Ik vrees idd dat overclocken buiten beeld gaat vallen maar aan de andere kant is het de vraag met toekomstige computers hoe snel het al gaat en hoe intelligent software wordt geschreven. Dat laatste is dus vaak een hekelpunt in de PC wereld.

Maar omdat het asynchroon wordt geen radio radio-interferentie meer :?
Omdat dus nu allerlij puslsbreedtes ontstaan zul je dus nu echt een breedband stoorzender in huis krijgen !

Nee, want die radiointerferentie ontstaat omdat gelijktijdig alle electronen doorgepompt worden. Door interferentie van die kleine golfjes, allemaal bij elkaar en tegelijkertijd, wordt een grote golfe (met grote pieken en dalen) gecreeerd.
Met een asynchrone klok gebeurt dat niet meer (zo vaak); omdat de golfjes allemaal op verschillende tijden plaatsvinden, daalt de kans dat meerdere trillingen die elkaar kunnen versterken tegelijkertijd opduiken.

Denk ik. :)

Inderdaad, omdat er heel veel kleine golfjes zijn, zijn er altijd wel 2 elektromagnetische golven die elkaar uitdoven. Ik verwacht dus dat EMI zo ongeveer tot nul wordt gereduceerd!

Als ik het goed heb begrepen kan je dus het beste de zwakke schakels overklokken?

"Gaat het idee van overclocken dan niet een beetje naar de haaien? Straks moet je elke chip overclocken ipv 1."

Een PC werkt ook zonder overclocken hoor...al komt dit misschien hard voor je aan, het is zo !

dat het sneller is/word zal denk ik voornamelijk komen omdat er minder fouten worden gemaakt in berekeningen, waardoor deze niet opnieuw uitgevoerd hoeven te worden. :)

elke chip overklokken? tuurlijk niet!
wat wou je overklokken als er geen klok meer inzit?

waarom zal je geen klok meer hebben dan :? Tis nu alleen zo dat ieder chippie z'n eigen klok heeft, onafhankelijk van de andere onderdelen...

klok->frequentie->aant. pulsen/sec.
Likt mij tenminste dat de asynchrone versie ook pulsen geeft toch 8-)

NEE. Er zijn geen klokken meer. Kijk maar naar de communicatie tussen printer en computer over een parallele printer poort. Dat werkt net zo (strobe en acknowledge). En niet alleen de communicatie tussen chips maar ook de communicatie binnen delen van chips en communicatie binnen die afzonderlijke delen zal asynchroon worden.

Gaat het idee van overclocken dan niet een beetje naar de haaien? Straks moet je elke chip overclocken ipv 1.
Lijkt me makelijker worden, de onderdelen wachten namelijk op elkaar:
waar onderdelen op eigen snelheid hun taken uitvoeren

Dat lijkt mij dus ook, dan kun je bijvoorbeeld een goede processor erg hoog gaan klokken en ben je niet afhankelijk van (slechte) andere onderdelen.

In de huidige situatie ben je voor je overklokresultaat juist afhankelijk van alle componenten waardoor ze allemaal van topkwaliteit moeten zijn.

edit:
je bent zo snel als de zwakste schakel, en dat geld volgens mij in dit geval ook gewoon, helemaal als ze nogsteeds op elkaar moeten wachten ...
maar je kunt wel je systeem zo optimaliseren dat hij voor jouw optimaal werkt. Je kunt zelf je zwakste schakel bepalen.

Maar als alle onderdelen van de chip al zo snel werken als ze kunnen, en allemaal hun eigen (maximale) snelheid hebben, wat wil je dan nog overklokken?

Er blijft natuurlijk altijd een marge tussen de door de fabricant gespecificeerde snelheid van de onderdelen en de Hoogst Haalbare Snelheid. En wie bevinden zich van nature in die marge?...

Juistem! ;)

Maar het lijkt me dat elk (goed geprogrammeerd) programma uit zichzelf al het uiterste van de verschillende onderdelen zal krijgen. En dat verschilt dan ook per programma...

Zou dit te combineren zijn met 'paralel processing' waarmee meerdere instructies tegelijk kunnen worden uitgevoerd?

Dan wordt het natuurlijk helemaal interessant :9~

Parallel processing is nooit echt van de grond gekomen omdat geen enkel OS de taken goed kan verdelen over de processors zonder veel rekenkracht te verspillen. Of je laat het door de applicatie zelf doen maar dan krijg je dus dat je ontwikkel team veel moeite moet doen voor een (te) kleine markt.

Vaak kost het verdelen van de berekeningen en het ophalen van de resultaten meer tijd dan wanneer je alles lekker door 1 processor laat doen. (Van de paar parallele OSen had BeOS op een 4 procs moederbord zelfs 1 dedicated processor alleen al voor het verdelen van de taken over de andere drie).

Heb zelf een dual celly 300@450 geboort B-) maar haal maar 10% extra fps bij Q3. Maar met apps die voor multi procs zijn geschreven haal ik wel 50% winst met M$ Developer Studio en zo'n 35% met Photoshop plugins. Geen 100% wat je in al je onschuldige naiviteit zou denken met twee procs.

Dus parallel is wel lache, vooral als je zelf je cellies boort :), maar (nog) niet voor standaard applicaties weggelegd. Hopelijk komt hier door async procs een verandering in.

log!c

Waarom denk je dat een processoren als de Pentium of de Athlon over VIER integer en TWEE floating point ALUs beschikt (getallen afhankelijk van merk en type). Om ze maar niet tegelijk te gebruiken? Dat is OOK parallele processing hoor! (Intruction Level Parallelism ILP)

HmmmZ,

misschien zie ik het verkeerd...
maar volgens mij geld nog steeds: je bent zo snel als de zwakste schakel, en dat geld volgens mij in dit geval ook gewoon, helemaal als ze nogsteeds op elkaar moeten wachten ...

of zie ik het nou weer helemaal verkeerd :s

Je ziet het verkeerd.

Een synchrone chip kan niet sneller lopen dat z'n langzaamste component, ook niet als die langzame component bijna nooit nodig is.

Het emmertjes doorgegeven is wat dat betreft niet helemaal duidelijk, want als er een langzaam mannetje staat, met een zwaar emmertje, dan gaat de asynchrone rij niet sneller dan de synchrone rij. Máár, als er een tijdje alleen maar hele lichte emmertjes voorbij komen gaat de asynchrone rij daar sneller doorheen, terwijl de synchrone rij op het langzaamste tempo verder gaat, omdat de klok nu eenmaal constant is ongeacht wat voor emmertjes er voorbij komen.

Je kunt het vergelijken met rijen aan de kassa. Stel dat er iedere keer precies 1 klant tegelijk doorheen moet, dan moeten alle rijen wachten als er toevallig ergens een klant in een andere rij staat met een hele volle kar boodschappen.
edit:
Eerste deel bericht verwijderd i.v.m. dubbelpost, sorry niet gezien
( Dynamic Duo doet altijd op maandag boodschappen :) )

In reactie op veel mensen: bij een klokloze processor HOEF je dus niet over te klokken. De processor werkt zo hard als hij kan, dus bijvoorbeeld beter koelen is al voldoende om hem sneller te laten werken. Makkelijker 'overklokken' kan niet :)

[Edit]
Dubbelpost? Grappig is dat. Ik was verreweg de eerste met deze opmerking, hoe kan het dan een dubbelpost zijn?

Dat is wel grappig benchmarken. In de zomer gaat je computer dus iets langzamer dan in de winter.

Pcies. En alles op flink hoog voltage laten schakelen natuurlijk! :P ... je systeem overspannen...

Doel: transistors zo rappo mogelijk laten openen/sluiten.

Dus die cpu kan nooit crashen door te hoge warmte behalve dan dat het zo traag als stroop gaat lopen :)

Of hij stopt als ie doorfikt :) Dus dat de mannetjes verbranden.. :D

Kunnen die mannetjes elkaar niet blussen dan als ze toch emmertjes water staan door te geven? Of zijn ze daar dan weer niet slim genoeg voor?
«  1  2  3  4  »

Op dit item kan niet meer gereageerd worden.

Volgende 19:38 Ontwikkeling Windows 2000 SP3 nadert voltooiing
Vorige 15:29 Microsoft erkent DX8.1 problemen op AMD platform
VNU Media logo Hosted by True

© 1998 - 2012 Tweakers.net B.V. - Alle rechten voorbehouden - Contact - Jouw privacy - Algemene Voorwaarden

Uitgever van:

Website van het jaar 2011