Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , 51 reacties
Bron: EE Times

De ontwerpers van Philips-dochter Handshake Solutions hebben een processor gebouwd die werkt zonder kloksignaal. Volgens het bedrijf is deze ARM996HS het eerste commercieel beschikbare product dat op deze manier is opgebouwd. De asynchrone chip maakt gebruik van de ARM-instructieset en zou prestaties vergelijkbaar met een geklokte variant kunnen neerzetten voor slechts 36% van het normale stroomverbruik. De besparing ontstaat omdat transistors van een klokloos ontwerp alleen werken als ze echt nodig zijn, terwijl ze binnen een normale processor simpelweg op iedere kloktik reageren. Zelfs voor chips in embedded systemen tikt die klok tientallen tot honderden miljoenen keren per seconde. Naast een laag verbruik biedt het ontbreken van een centrale klok nog een ander voordeel voor embedded systemen: de chip veroorzaakt veel minder elektromagnetische interferentie.

De grootste moeilijkheid bij het ontwerpen van een asynchrone chip zonder centrale klok is om ervoor te zorgen dat de timing wel correct blijft, en het bedrijf geeft toe die problemen enigszins onderschat te hebben. Toen het project voor het eerst werd aangekondigd was het de bedoeling om in het eerste kwartaal van 2005 in productie te gaan op een 0,18 micron-procédé. Nu is het een jaar later en is men ondertussen overgestapt op kleinere 0,13 micron-transistors. Het bedrijf heeft er zelf vertrouwen in dat de chip in een keer goed zal werken, maar ARM is voorlopig nog wat afwachtender: zij willen eerst zien hoe de 996HS zich in de praktijk houdt, voor ze zelf soortgelijke ontwerpen gaan maken.

Synchroon circuit versus asynchroon circuit
Links: synchroon, rechts: asynchroon. Schakelende transistors zijn met rood aangegeven.
Moderatie-faq Wijzig weergave

Reacties (51)

Woohoo, collega's in het nieuws 8-) . Ik heb ook met de software waarmee deze ontworpen is moeten werken op de Technische Universiteit Eindhoven en het is echt een hele andere richting van denken. Ik heb hier altijd al wel toekomst in gezien, en ben benieuwd hoe dit wordt toegepast.

In ieder geval is het erg lastig om hiermee een grote chip te ontwikkelen. Het ontwerp is makkelijk te doen, alleen de timing achteraf goed krijgen, daar gaat veel tijd in zitten. Handshake circuits werken in principe vrij eenvoudig. Bij een processing blokje communiceren de input en output registers met elkaar en die communicatie moet precies op tijd zijn. Als het te vroeg aankomt bij de output register dan is de uitvoer van het blok nog niet correct/beschikbaar en als het te laat komt dan wordt het circuit te traag. Luistert dus erg nauw.

Wat trouwens wel leuk is om te weten. Het plaatje bij dit artikel is niet de ARM zelf, maar een 80C51 8-bit microcontroller (Zie: http://www.research.phili.../ics/handshake/index.html).

Verder zijn er aardig wat boeken over deze techniek.
Allereerst natuurlijk http://www.cambridge.org/...logue.asp?isbn=0521452546, van K. van Berkel een van de mensen die aan de techniek heeft meegewerkt.
En http://www.amazon.com/gp/...2747034?v=glance&n=283155 wat ik zelf een aardig boek vind.
En dit is weer een colega van mij :)

Voor de mensen die meer willen weten over snelheden, opgenomen vermogen en chip oppervlak kunnen kijken op de volgende link:
http://blaatfabriek.no-ip...stay/VLSI_programming.pdf .
Dit is mijn verslag over dezelfde techniek.
(chips ontworpen: shift registers, FIFOs, DLX (een simpele processor, verschillende ontwerpen: geen pipelining, en met pipelining).
12 mb? hij zegt dat het maar 2.3 mb is, hoor ;)

Maar kan je wat meer info geven? Waar heb je het in geprogrammeerd etc... staat niet in het verslag... ook niet welke technologie je gebruikt, etc... beetje minimaal...

ik begrijp wel meer niet... terwijl ik als bijna afgestudeerd student Computer engineering dit toch wel zou moeten herkennen... wat moet bijvoorbeeld dat ongenummerde schema op pagina 11 voorstellen? ik herken de stijl niet... geen state diagram, want er zijn geen statetransitions aangegeven...
Is geprogrammeerd in Haste, voorheen Tangram. Mijn inziens een soort combinatie van Pascal met CSP.

Verder is het diagram op pg 11 een handshake diagram. Elementen aan de kant van het zwarte bolletje zijn de master over het element met het witte bolletje aan die link. Dit is dus niet iets bekends maar specifiek voor handshake circuits mee weer te geven. Voor meer info kan je in die twee boeken van eerder genoeg informatie vinden.
Maar op wat voor manier kun je nu nog iets zeggen over de snelheid, zonder te benchmarken? Wat moet ik me hier bij voorstellen?
En is die in zekere mate parallel, of werk ie puur opdracht voor opdracht af?
Op zich zegt kloksnelheid alleen iets over de snelheid waarmee er geschakeld word, niets over de prestaties.

Dit fabeltje heeft een cpu-fabrikant aardig de wereld ingeholpen (Intel) en daar zijn nu niet blij mee wat 10 ghz bleek toch niet haalbaar...
Intel heeft eigenlijk weinig met dat fabeltje te maken. Feit is dat dit fabeltje pas ontstaan is nadat het aantal chips voor consumenten PC drastisch was afgenomen en Intel eigenlijk gewoon de markt domineerde. Daarvoor maakte vrijwel elke computer gebruik van een ander ontwerp. Maar doordat er geen serieuze keuze was en Intel inderdaad meestal niets anders deed dan bij een bestaand ontwerp simpelweg de kloksnelheid te verhogen, (bv Pentium van 60 naar 200mhz, maar toch ook een effectievere pentium 166 MMX ) werd de kloksnelheid vanzelf synoniem met de performance. Hier heeft Intel dus geen moeite voor hoeven doen.

Doordat er nu weer 3 verschillende CPU ontwerpen met elkaar concurreren (Pentium 4, Pentium M en de Athlon 64) zijn we dus terug bij af. Je moet eerst de performance van de chip zelf beschouwen en dan pas de kloksnelheid. Maar binnen een reeks chips met dezelfde eigenschappen is een hogere kloksnelheid altijd te prefereren boven een lagere snelheid. :)
Intel heeft zeker wel hard gewerkt om de "Mhz-myth" te versterken, ze hebben een hele tijd toen AMD achterliep in kloksnelheid en de prestaties niet echt beter waren dan Intel heel veel reklame lopen maken over "echte Mhz" en hoe je hier altijd topprestaties mee haalt. Dit natuurlijk om een vals gevoel te creëren dat de rating van AMD onzin was, terwijl de AMD's dus eigenlijk sneller zijn per kloktik.

Maar AMD is ook niet helemaal onschuldig wat de Mhz-myth betreft, ze hebben namelijk destijds als eerste de 1Ghz barrière gebroken en dit in advertenties Intel flink ingepeperd. Toen ze daarna dus een andere weg in zijn geslagen wat betreft prestaties hebben ze zelf moeten bewijzen dat de Mhz juist niet zoveel tellen, maar dat is ze inmiddels wel gelukt lijk me. ;)
Ja ik had die Athlon 1ghz, wat een crisis ding was dat zeg :S na 4 jaar doorgebrand. terwijl de celeron 800mhz die ik ervoor had nogsteeds draait en ook de p3 500mhz die elke dag aanstaat.
[offtopic]
@inn87:
Moet je de koeling eens vaker nakijken, cpu's fikken niet zomaar door. Het zegt alleen maar iets over de gebruiker/onderhoud.
Logisch, maar toch zegt het iets over snelheid...
Bijvoorbeeld als je 2 cpu's van dezelfde architectuur vergelijkt, met dezelfde efficientie per kloktik...
Maargoed, ik denk dat je miss wel iets kunt zeggen over hoe snel de schakelende transitors onderling kunnen schakelen, in deze processor. En misschien iets over hoe efficient de schakelingen in deze chip zijn...
Misschien niet te achterhalen met Ghz's maar misschien wel in MIPS?
MIPS, was dat nu weer Millions of Instructions Per Second, of Meaningless Indication of Processor Speed? ;-)
Ik denk dat "Meaningless Indication of Processor Speed" dezer dagen meer staat voor kloktikken, staat tegenwoordig niet meer in verhouding met de snelheid.

Zouden beter een universele Benchmarkspeed als referentie geven, maar dat zou dan weer te eerlijk zijn voor de consument
De kloksnelheid wordt in synchrone computers bepaald door het langste pad wat een signaal van geklokt element (flipflop) naar geklokt element moet afleggen, dat heet het critical path. Zo'n critical path wordt vaak niet veel gebruikt, maar toch moet je er rekening mee houden.
Zo zou je bijvoorbeeld kunnen bedenken dat het lange critical path van een vermenigvuldiger de kloksnelheid bepaald, terwijl de opteller (ALU) veel sneller zou kunnen schakelen. Een oplossing is verschillende componenten van een chip een eigen kloksignaal te geven. Dan heb je echter veel extra componenten nodig voor het opwekken van de kloksignalen en de communicatie tussen de onderdelen.
Asynchroon werkt niet met een klok en dus ook niet met een critical path. Data wordt doorgegeven naar het volgende component als het verwerkt is, daarvoor heeft elk component een controllertje die zgn. 'handshaking' uitvoerd met de andere componenten. Hoesnel data verwerkt is, is afhankelijk van de operatie en van de data.
Je werkt dus met statistiek, met een gemiddelde snelheid... en die is dan weer applicatieafhankelijk.

Ik wil ook nog even toevoegen dat in sommige chips het clockdistributienetwerk tot 40% van het totaal energieverbruik van de chip vebruikte
Dit soort machines (of wel Meele machines) bestaan al een tijdje alleen dit is volgens mij de eerste keer dat een chip van dergelijk formaat wordt geproduceerd als meele machine.

Het klopt verder wat ze zeggen over de klok. 80% van de gehele consumptie gaat naar het genereren van de klok en 60% daarvan wordt gedecimeerd (verloren aan warmte) omdat de klok constant heen en weer staat te zwiepen.

Meele machines zijn machines die direct op een input kunnen reageren dus deze zijn nog een stuk sneller ook.
"Meele"? Dat zegt Google niets.
Volgens mij bedoel je "State Machine", ofwel een veredelde fridrank-automaat.
Die bestaan inderdaad al heel lang, eerst als PLCs, nu ook als FPGAs, die zowel synchroon als asynchroon kunnen werken.
Hij bedoeld "Mealy" |:(

en Mealy hoeft helemaal niet asynchroon te zijn...
Tnx kon ff niet vinden hoe je het moest schrijven, rare naam heeft die gozer ook. Zelfde als dat Moore boos wrodt als je zijn naame als More uitspreekt en niet Moore (moer).

Maar goed een asynchrone cpu is niks anders dan een vereidelde Mealy machine.
Goh wow, ik ben erg benieuwd hoe dit werkt, dit zal naast lage stoom verbruik ook een drastisch lagere warmte afgeven denk ik.

Op de site van eetimes kan ik ook niet echt lezen hoe het werkt, iemand meer info?

hier is iets meer te vinden:
http://www.arm.com/news/12013.html
dit zal naast lage stoom verbruik ook een drastisch lagere warmte afgeven denk ik.
Ik weet het zeker, aangezien de energie die er ingaat er als warmte weer uitkomt.
Netto gezien wel, maar je hebt best kans dat bepaalde delen van de processor nu veel warmer worden dan de rest en dat je dus andere problemen kunt krijgen zoals het scheuren van het silicium.
Uh... nog nooit van gehoord. Volgens mij wordt de warmte gewoon verspreid via het substraat.
Naja. dan maar ff underclocken. erm...
Haha.. scheuren.. :+ Met een beetje normaal design komt dat niet voor. De thermische stress is meestal kleiner dan de mechanische spanning opgebouwd door verschillende depositites en packaging regelateerde issues.
maar je hebt best kans dat bepaalde delen van de processor nu veel warmer worden dan de rest
Huidige CPUs hebben ook al last van dat soort hotspots.
Redelijk logisch, aangezien de huidige processoren nog geen geluid maken (denk niet dat je buren blij worden van 130W geluid, jij ook niet trouwens :+ ) en voorlopig ook geen licht gaan geven wordt de stroom omgezet in warmte he :)
Tja, heb ik hier in huis nou net iemand die echt van zo-ongeveer alles wakker wordt, ook van een pc die 2 dichte deuren verder op dezelfde verdieping aanstaat. Gelukkig zit ik nu mooi op zolder.
ARM processoren hebben zich altijd gekenmerkt door een zeer laag vermogen, vandaar dat ze populair zijn portable apparatuur als PDA's.
De ARM processor werd in 1987 voor het eerst toegepast in de Acorn Archimedes computers (http://en.wikipedia.org/w...Ltd#New_RISC_architecture).

Hier staat nog wat meer info over ARM996HS: http://www.arm.com/products/CPUs/ARM996HS.html
Goh, zou dit nu ook interessant zijn voor bijvoorbeeld AMD en Intel voor de desktop markt? Aangezien de Mhz race nu wel voorbij is en beide partijen zich op energiezuinigheid hebben gestort?
Ik denk dat het voor Intel en AMD nog niet interessant genoeg is om volledig klokloos te gaan. Het was al heel erg moeilijk om deze chip te ontwerpen, terwijl dit ding uit minder dan 100.000 schakelingen bestaat. Bij een moderne x86-core ligt dat toch grofweg een factor 100 hoger, en het zou dus een monsterlijke klus zijn, in ieder geval met de huidige stand van zaken qua ontwerp- en simulatie-software.

Dat wil overigens niet zeggen dat het concept niet globaal toegepast kan worden binnen een geklokte chip: in zijn volgende generatie architectuur kan Intel bijvoorbeeld ook ieder klein blokje uitzetten als het niet gebruikt wordt, het wordt dan gewoon losgekoppeld van het centrale kloknetwerk. Dat is lang niet zo fijn als een volledig asynchroon ontwerp, maar een groot deel van de winst kun je op die manier toch wel meepakken.
Ik vermoed dat ze voor toepassingen in een klokloze PC niet alleen mogelijk de hele processor complexer moeten maken, maar mogelijk ook veel meer en vaker moeten bufferen.
Het gaat er nu namelijk steeds meer naar toe dat we steeds meer parallel gaan werken (omdat de klok niet veel hoger kan worden in de praktijk) en juist met parallelle toepassingen is eigenlijk een klok essentieel.

Een voordeel van dergelijke klokloze technieken is echter wel dat je niet meer zoveel problemen hebt door de te overbruggen afstanden.
De chips kunnen dus groter worden, of eventueel meerdere plakjes per chip. (om de yields wat hoger te krijgen.)
en juist met parallelle toepassingen is eigenlijk een klok essentieel.
Dat is in de praktijk dus niet zo, een vermenigvuldiging kost nu eenmaal meer kloktikken dan een optelling, etc...
Oftewel als je bij paralleprocessen je code in stukjes breekt, en die apart op een core/processor worden uitgevoerd. Zal altijd één van de processen eerder klaar zijn, en dus in bepaalde situaties moeten wachten.

Het zou weer cputijd kosten om exact uit te rekenen hoelang een code reeks duurt, dus word er gebruik gemaakt van (data aankomst) flag's inplaats van exact klok tikken te tellen..

Dit is veelal vergelijkbaar met een klokloze processor waar bij ook gewacht word tot dat data en instructies beide op de juiste plek zijn gearriveerd, en dus de (data aankomst) flags gezet zijn :)
Toepassing in de computer lijkt mij nog ver weg, aangezien je I/O altijd met kloksignalen werkt en je cpu dan niet. En om dat nu te synchroniseren, dat gaat ze ook niet zo snel lukken.
Daar zijn ze toch verder mee dan je denkt. Sowieso zijn er natuurlijk veel chips die tijdens het draaien regelmatig hun kloksnelheid veranderen (Intel Speedstep, AMD Cool 'n' Quiet), maar ook is er al een processor die deels synchroon en deels asynchroon is: de Itanium Montecito. Het L3-cache is asynchroon ontworpen, de businterface en arbiter draaien op een vaste kloksnelheid en de cores kunnen hun klok dynamisch aanpassen (hoewel die laatste feature nog niet helemaal perfect werkt, waardoor ie uitgesteld moest worden).
Heb ik het nou mis of zou het werken met I/O juist makkelijker zijn zonder klok dan met? Nu werkt I/O nog vooral met klok en interrupts, zodra de klok wegvalt moet je het systeem wat aanpassen, maar dan zou je verder toch gewoon alleen met interrupts kunnen werken?

Dit is overigens wel heel simpel gezegd nu, maar ik heb er dan ook niet zoveel verstand van.
Zonder flauw te willen zijn maar... de ARM996HS core is een computer! Om exact te zijn het is een design voor een CPU core, er moet alleen nog maar iemand dit in silicium bakken, wat RAM en flash erbij (natuurlijk in het zelfde silicium) en tada een clockless computer!
Dito Mashell. ARM is trouwens Advanced Risc Machine, de firma onstaan uit Acorn computers dat een van de eerste home pcs leverde. Acorn ontwierp ZELF de CPU! maar de engineers in acorn maakten liever cpus dan dat ze pcs verkochten...

De huidige ARMcores zijn een CPUdesign die eenzelfde ordegroote van complexiteit heeft. Een pc vervangen door enkele 32bit ARMcores aan elkaar te schakelen is dan ook al bestudeert en leefbaar bevonden. (niet zo lang geleden heeft nog een pda producent het hier over gehad)

Bovendien is het aaneenschakelen van timed en asynchrone compenenten een fluitje van een cent als het aantal verbindingen laag blijft.
Ze komen nu bijna elke dag aanzetten met nieuwe technieken zoals dit. Goed zo! Ga zo door!
Nieuw...? Kun je dit eigenlijk niet zien als een processor met x miljoen cores?

(elke transistor is een eigen core)
Nieuw is dit niet echt. Het is al een oud idee dat nooit echt is doorgebroken omdat timed circuits zoveel eenvoudiger waren om een ontwerp mee te maken. De moeite die al in sychrone circuits was gestoken maakte het ook onrendabel om een echte asynchrone CPU te maken. Voor zover ik weet was dit al een topic in de jaren 70 voor designers die wat vooruitdachten en de zwakeheden onderkenden van getimede chips.

BTW er bestaan al langer asynchrone MCUs -> eenvoudiger dan CPUs
Je kunt wel nog wat over de snelheid zeggen doordat je weet hoe lang de processor doet over het verwerken van een instructie. Bij een geklokte processor is dit het aantal klok tikken en hier is dat de delays die ze hebben ingebouwd/het sillicon heeft.
Delays? Volgend dit Wiki verhaaltje is het mooie van dit clockless CPU's nou juist dat er geen delays nodig zijn. Het nadeel is wel dat in principe een waarde voor een onbekende tijd moet kunnen behouden (tot maximaal oneindig ipv maximaal 1 clock tick tot de verversing).
Delay verdwijnt natuurlijk niet... dat zou geweldig zijn: je haalt de klok weg en je computer wordt oneindig snel.

Zie mijn verhaal boven: hoe lang een processor doet over een applicatie is afhankelijk van de instructie en de data... statistiek speelt een grote rol en je eindigt met een gemiddelde delay/snelheid
De vraag is natuurlijk wel of de tweakers hier nu blij van worden... Hoe moeten ze straks hun systeem gaan overclocken als er geen clock in zit? :+
Signalen gaan sneller door een processor die kouder is. Je kunt dus nog wel degelijk overklokken, maar je zult dit moeten doen door koeling. Denk aan de traditionele overklokkers die hun proc meer kunnen overklokken bij een lagere temp. Als je deze proc goed koelt, gaat'ie vanzelf harder lopen. Is veel makkelijker.
En natuurlijk de spanning opvoeren.

Je kan juist veel meer tweaken!
Bij synchrone logica wordt de maximale snelheid begrenst door het critical path.
Ieder stukje heeft zijn eigen buffer/handshake, waardoor er nooit gegevens te laat aan zullen komen.

Op dit item kan niet meer gereageerd worden.



Apple iOS 10 Google Pixel Apple iPhone 7 Sony PlayStation VR AMD Radeon RX 480 4GB Battlefield 1 Google Android Nougat Watch Dogs 2

© 1998 - 2016 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Carsom.nl de Persgroep Online Services B.V. Hosting door True