Ieri ero quiete, perché oggi sarò la tempesta
Verwijderd
(kent dus ook geen sluitingstijden van computersjops en kroegen meer)
nee het aantal MHzen is je klok.
Per klok cycli kan de cpu iets uitvoeren.
Sommige bewerkingen hebben meerdere klokclycli nodig.
Het is zo dat de cpu ALLEEN wat kan uitvoeren op een klokpuls. Het is daarom logisch dat hoe meer klokpulsen per seconden een cpu aankan hoe sneller hij is.
Maar door de hoge snelheid is het ook van belang dat deze goed geregeld wordt zodat de bewerkingen op het juiste tijdstip ondergaan worden.
Dit kost, schijnbaar, dus 30%.
Zonde van de tijd dus. Een kloklose cpu kan de oplossing bieden.
There are 10 kinds of people in this world..... Those who know binary. And those who don't.
Het klinkt wel handig, dat 'ie bijv. sneller draait als ie ingewikkeldere programma's moet draaien ofzo
Iemand die het echt weet?
Ik stream Poker, Retro Games & Good Vibes op Twitch.tv/Questje :-)
Ik snap er gewoon nog ff geen reet van...
Ieri ero quiete, perché oggi sarò la tempesta
Zijn er trouwens al van die dingen?? cpu's zonder klok?
Ieri ero quiete, perché oggi sarò la tempesta
Verwijderd
Verwijderd
Verwijderd
Nou nee, lijkt me niet: je hebt tegenwoordig ook spelletjes die je kunt instellen op bijv. 75 frames per seconde als je computer er ook 200 kan renderen. Je kunt ook een frame laten renderen en dan wachten totdat de monitor klaar is voor het volgende frame.Op zaterdag 17 november 2001 18:59 schreef KDZ het volgende:
hoe kun je dat ding dan bijhouden als het ware, dan krijg je toch hetzelfde effect, dat wanneer je nu een 486 spel op een athlon speelt, dat het spel veels te snel gaat ofniet.
Pas nog gelezen dat je zonder klok dynamische hazards krijgt in een systeem waar uiteindelijk de uitgang weer met de ingang zit verbonden..., en hier praten ze erover alsof het de toekomst is. Moet het eerst allemaal nog maar eens zien.
Peace cannot be kept by force - it can only be achieved by understanding - Albert Einstein
Dus als je het allernieuwste spel op een klokloze CPU van 2 jaar oud draait dan zal die niet slomer lopen dan een spel van 2 jaar geleden, want er is op de CPU geen limiet aangegeven. En het is ook niet zo dat oudere dingen dan te snel lopen, want de CPU geeft zoveel snelheid als de software nodig heeft en niet meer. Alleen lijkt me dan dat die dingen gloeiend heet worden door software wat heel veel nodig heeft.
Zo denk ik dat het bedoeld wordt met klokloze CPU's
The devil is in the details.
Verwijderd
Ieri ero quiete, perché oggi sarò la tempesta
Krijg je dan geen effect net als je vroeger pacman speelde met turbo aan.
met papier mache kun je alles maken!!
Eppie
Verwijderd
Dus ff voor de duidelijkheid:Bij Philips zijn ze echt al een heel eind met asynchrone processoren. In dec begin ik op het Philips Natlab met mijn afstudeer opdracht en die gaat hoedanook iets met asynchroon VLSI te maken hebben. Op dit moment zijn er nog twee potentiele opdrachten, waarvan ik er één ga doen. Eén van de twee is het ontwerpen van een asynchrone variant van een zeer bekende processor. Een vriend van me is op dit moment ook bezig met het ontwerpen van een asynchrone processor bij Philips, en als alles goed gaat wordt deze volgend jaar al in producten verwerkt. De volledig asynchrone processor van Philips waar over werd gesproken is de asynchrone variant van de wereldberoemde 80C51 processor.
edit:
Ik las in een reactie hierboven dat ze toch een andere bedoelen, maar deze is nog interesanter, want de 80C51 is de meest geproduceerde chip ter wereld!
Echter, anders dan in het artikel wordt vermeld is asynchroon met de huidige techniek meestal NIET sneller dan synchroon. Hier zijn wat vergelijkende waarden tussen de synchrone en asynchrone 80C51:
Oppervlakte:
Syn : 4.1
Async : 5.1
Energie per instructie:
Syn : 1,7
Asyn : 0,39
Performance:
Syn : 5,7
Asyn : 5,6
HET voordeel van asynchroon is dus de enorme energie besparing. Verder geven asynchrone schakelingen véél minder electromagnetische straling af dan synchrone schakelingen.
Deze technologie is er dus gewoon al, en er worden al chips mee ontworpen die ook daadwerkelijk gebruikt worden. Er zijn geen grote obstakels meer, behalve dat het verificatie proces voor asynchrone chips wat lastiger is, en dat het wat lastiger is om een asynchrone chip op een FPGA te prototypen (dit zou het onderwerp zijn van de andere potentiele opdracht die ik ga doen). Ook dataoverdracht binnen de processor is geen probleem. Hier zijn hele mooie 4 fase single rail handshake protocollen voor.
Asynchrone processoren zijn op dit moment langzamer en groter dan synchrone, maar ook energiezuiniger en dus minder heet.
De snelheid van een asynchrone processor wordt voornamelijk bepaald door de snelheid van de transistoren (hangt dus af van het productie proces) en het ontwerp van de chip zelf. De enige manier om zo'n chip dus sneller te maken is door een beter productie proces te nemen (b.v. van 0,18 naar 0,13) of door het ontwerp van je chip aan te passen. Bij het aanpassen van het ontwerp bedoel ik dan eigenlijk optimalisaties op gateniveau, want als je de architectuur gaat aanpassen maak je eigenlijk een hele nieuwe chip.
De klok in de processor zorgt ervoor dat er een bepaald ritme in de handelingen binnen de processor zit. Doordat er bij de opgaande puls en de neergaande puls van de klok bepaalde vaste handelingen worden uitgevoerd weet je zeker dat er bijvoorbeeld niet naar een register wordt geschreven waar tegelijk van gelezen wordt, dus dan weet je zeker dat de goede waarde uit dat register wordt gehaald om verder mee te rekenen.
Hoe men er echter voor wil zorgen dat je zeker weet dat je de goede waarde uit een register haalt zonder dat er een klok in de processor zit, daar ben ik nog niet geheel achter... iemand een idee???
The Flying Dutchman
Verwijderd
In principe is elk programma gewoon een opeenvolgende reeks van instructies. Stel ik heb een programma:
1 - doe dit
2 - doe dat
3 - doe eens iets anders
4 - klaar
- Tik met je vinger op je bureau en lees elke keer als je een 'tik' geeft een opdracht voor. Dat is de geklokte CPU.
- Lees de bovenstaande opdrachten in volgorde zo snel mogelijk op. Dat is een ongeklokte CPU.
Zoals je ziet maakt dit voor registers etc geen ene ruk uit.
Stel dat er een instructie wordt gegeven waarbij de inhoud van 2 registers wordt opgeteld en in een 3e register (noemen we even C) geplaatst wordt. Dan komt er een 2e instructie, deze instructie wil graag de inhoud van register C gebruiken om verder mee te rekenen.
Maar hoe weet je wanneer de inhoud van register C stabiel is en klaar om te gebruiken voor een volgende instructie? Voor hetzelfde staat de oude waarde nog in dat register terwijl je door wilt gaan met de 2e instructie die de nieuwe waarde nodig heeft...
Met een klok weet je 100% zeker op welk tijdstip de goede waarde in een register staat omdat in de opgaande klokflank de registers opnieuw gevuld worden. In de neergaande klokflank beginnen dan de nieuwe instructies weer en dus weet je helemaal zeker dat altijd de goede waarden in de registers staan en krijg je geen fouten.
The Flying Dutchman
Verwijderd
1 - CX= AX + BX
2 - Doe iets anders met CX
Als hij klaar is met stap 1 bevat CX de waarde van AX+BX. Hij gaat pas verder bij stap 2 als stap 1 klaar is.
Daar is geen klok voor nodig hoor..
Verwijderd
als ik het goed begrijp bedoel je zoiets:Op zaterdag 17 november 2001 19:01 schreef DeepFreezer het volgende:
Een klokloze CPU voert gewoon uit wat 'em gevraagd wordt, in plaats van eerst te wachten tot er een puls van de interne klok voorbij komt. Hoe snel deze interne klok loopt wordt aangeven in MHz.
persoon = programma
cpu met klok: persoon wacht op taxi om zo van A naar B te gaan.
cpu met klok: persoon heeft een fiets en doet het zelf
Verwijderd
Bij persoon 1 lopen de taxis volgens een vast tijdschema. Bv. om de 5 minuten komen er taxi's langs.
Bij persoon 2 komt er pas een taxi als er een persoon is.
Verwijderd
Dus gewoon de taxi sneller en zuiniger maken dan de bus en we zijn er
Dit betekend dat zeer nauwkeurig bekend moet zijn hoe lang het duurt voordat een bepaald proces klaar is. Anders weet je dus niet wanneer de waarde in het register goed is. De processor kan niet zomaar even kijken of een proces klaar is ja of nee... de data gaat over de bussen in de cpu en door bijvoorbeeld de ALU of de FPU en dan weer over de bus terug naar de registers. Dit neemt allemaal een bepaalde tijd in beslag en wil je een klokloze cpu maken, dan moet zeer nauwkeurig bekend zijn hoelang het duurt voordat het gehele proces doorlopen is, want je kunt niet gewoon even 'kijken' of een proces al klaar is ja of nee... hierdoor is een ontwerp met klok gewoon veel gemakkelijker te maken.Op zondag 18 november 2001 14:29 schreef hezik het volgende:
Ehm, het is heel simpel hoor..
1 - CX= AX + BX
2 - Doe iets anders met CX
Als hij klaar is met stap 1 bevat CX de waarde van AX+BX. Hij gaat pas verder bij stap 2 als stap 1 klaar is.
Daar is geen klok voor nodig hoor..
Daarbij komt nog eens dat in cpu's meerdere processen tegelijkertijd naast elkaar hebben lopen gezien de gepipelinede structuur van de huidige processoren. Dat maakt het er allemaal niet gemakkelijker op.
The Flying Dutchman
Zo ist ook met een processor met klok: een instructie heeft meerder klokslagen nodig, maar zou de CPU op datzelfde moment van die tweede klokslag niet nog wat extra's kunnen meenemen?
Een CPU zonder clock is vergelijkbaar met een harddisk zonder sectors/clusters: elk bestand neemt in wat ie nodig heeft.
Verwijderd
Nee hoor.. lees 't nog eens. Je weet dat het proces klaar is _omdat hij aan het volgende begint_. Heel simpel. Je wilt drie blokken op elkaar stapelen.. Wanneer kun je het 3e blok plaatsen? Heel eenvoudig, nadat je het 2e geplaatst hebt. Daarvoor hoef je niet nog eens extra te gaan kijken of er wel twee blokken staan, je hebt immers 2 blokken geplaatst.Op zondag 18 november 2001 14:57 schreef The_Flying_Dutchman het volgende:
Dit betekend dat zeer nauwkeurig bekend moet zijn hoe lang het duurt voordat een bepaald proces klaar is.
Als hij bewerking A, B en C heeft en in A en B wordt er wat met een register gerommeld welke in C ook gebruikt wordt dan weet hij 'tijdens C' dat dat register gebruikt kan worden, simpelweg _omdat hij met C bezig is en A en B dus geweest zijn_.
Imo zit jij veel te veel 'vanuit een kloksituatie' te denken. Het hoeft namelijk totaal NIET bekend te zijn hoe lang iets duurt. Dat is juist de clou van een klokloze CPU, je zit niet meer aan tijdseenheden gebonden. Dat dit anders werkt dan geklokte CPU is duidelijk.Anders weet je dus niet wanneer de waarde in het register goed is. De processor kan niet zomaar even kijken of een proces klaar is ja of nee... de data gaat over de bussen in de cpu en door bijvoorbeeld de ALU of de FPU en dan weer over de bus terug naar de registers. Dit neemt allemaal een bepaalde tijd in beslag en wil je een klokloze cpu maken, dan moet zeer nauwkeurig bekend zijn hoelang het duurt voordat het gehele proces doorlopen is, want je kunt niet gewoon even 'kijken' of een proces al klaar is ja of nee... hierdoor is een ontwerp met klok gewoon veel gemakkelijker te maken.
Neem nog een keer het voorbeeld met blokken. Je hebt vijf blokken welke je op elkaar wilt stapelen. Of je er nou 1 per seconde neerlegd of ze gewoon ongetimed alle vijf op elkaar stapelt, het resultaat is hetzelfde. Daarvoor hoef je niet eerst te gaan timen hoe lang het duurt voordat jij een blok op een ander gezet hebt.
Het verhaal wordt idd. wel complexer zodra je met pipelines etc gaat werken, maar de clou blijft hetzelfde. Als de instructie klaar is zijn alle door die instructie bewerkte registers klaar. Eerder is de instructie niet klaar. Het feit dat de CPU dan met de volgende instructie klaar is geeft aan dat hij ook de registers kan gebruiken.