Hoofdcategorieën

Nanodraad voor opslag van 'trinaire bits' ontwikkeld

Door Willem de Moor, donderdag 3 juli 2008 15:59, views: 12.864

Onderzoekers hebben een nieuw geheugen op basis van nanodraden ontwikkeld, dat gegevens niet binair opslaat, maar een trinair systeem hanteert: naast de 0 en de 1 kan een derde waarde in een 'bit' worden opgeslagen.

Nanodraad met mantel en kernDe medewerkers van de School of Engineering and Applied Science van de universiteit van Pennsylvania hebben het nieuwe geheugen gebaseerd op nanodraden die uit een kern en een mantel bestaan. Daarmee wijkt het geheugen van de onderzoeksgroep van Ritesh Agarwal af van andere op nanodraden gebaseerde geheugens. Dergelijk geheugen is in de regel binair: er kan een 1 of een 0 in opgeslagen worden. Door zowel van de kern als de mantel gebruik te maken, slaagden de onderzoekers er echter in een derde geheugenstaat op te slaan, waarmee het geheugen als trinair beschouwd kan worden.

Het geheugen werkt door gebruik te maken van twee verschillende polykristallijne materialen voor de kern en de mantel. Die materialen kunnen onder invloed van elektrische spanning van kristallijn naar amorf en vice versa veranderen. De weerstand van de nanodraden hangt af van de toestand waarin het materiaal verkeert: een kristallijne toestand levert door zijn geordende samenstelling weinig weerstand, terwijl de amorfe nanodraden ongeordend zijn en meer weerstand aan elektriciteit bieden. Omdat zowel de kern als de mantel een variabele weerstand hebben, kan met de combinatie ervan een derde weerstandswaarde gerealiseerd worden.

De gebruikte materialen - een germanium/antimoon/tellurium-legering voor de kern en germaniumtelluride voor de mantel - reageren verschillend op de stuurstroom, zodat ze op verschillende momenten van een kristallijne naar amorfe toestand overgaan. Zo leveren de nanobuisjes drie weerstanden: laag, hoog en een tussenliggende weerstand, wat zich laat vertalen naar drie geheugenstates. De hybride nanodraden zouden ingezet kunnen worden als geheugenelementen, waarbij het belangrijkste voordeel is dat er een hogere geheugendichtheid kan worden behaald dan met vergelijkbare binaire nanodraden. De onderzoekers blijven ondertussen aan de samenstelling van de draden knutselen, waarbij ze hopen meer nuttige eigenschappen van de materialen te ontdekken.

Volgende 16:29
Vorige 15:34

Reacties

«  1  2  »

Natuurlijk ben je niks met een geheugen dat 3 waarden kan opslaan als al de rest binair werkt. Hoe willen ze dit dan gebruiken? Je kan toch moeilijk een bit gaan splitsen ofzo?

Maar bedenk eens als ze de 3e bit erbij kunnen krijgen, bestaat er misschien ook een mogelijkheid tot een 4e bit. Waardoor je met minder ruimte weer meer kan opslaan.


Daar heb je maar 2 bits voor nodig hoor. 2^2 = 4, dus je kunt met 2 bits al het DNA weergeven.

Ja, precies, 2 bits heb je er voor nodig. Bij geheugen waarin 4 staten kunnen worden aangenomen heb je maar 1 element nodig in plaats van 2. Dat bespaard dus ruimte en dus kun je een hogere geheugen dichtheid verkrijgen.

Daarnaast is het misschien nog niet praktisch om 3 of meer-staat geheugen te gebruiken vanwege de manier waarop CPU's doorrekenen, het zo een flink wat presetatie verlies kunnen veroorzaken in huidige processoren.

Anyhu; leuke ontwikkeling, misschien dat er ooit toch nog eens meer-staat PC's worden gebouwd, al zie ik het niet snel gebeuren

Ik weet toch bijna zeker dat DNA binair is !!?
Er waren wel 4 amino..dingen, maar die vormden altijd dezelfde paren.
Dus zijn er maar 2 mogelijkheden.
Omdat het een beetje off-topic is, ga ik het niet nakijken.
Begrijp trouwens niet helemaal waarom je DNA erbij haalt.
SCS

Het gaat hier niet om bits maar om toestanden van een element.
Een bit is per definitie een 1 of een 0.
Hier is er een 3e toestand bijgekomen.
Maar het gaat nog steeds over 1 element (wat in binaire termen een bit zou zijn).
We moeten dit dus ook een trit noemen i.p.v. bit
http://en.wikipedia.org/wiki/Trit

Om te werken met trinaire elementen zou je een iets andere wiskunde moeten gebruiken.
Heel veel dingen die binair rekenen handig maken werken dan namelijk niet meer.

Er is ooit voor bits gekozen omdat het op heel veel manieren efficient is, o.a. de simpelheid van het in hardware implementeren.

wiskundig gezien is trinair het efficientst bij hoge getallen. er wordt dan gekeken naar het RW-product, het aantal getallen in je 'alfabet' (bij binair dus 0 en 1, bij trinair 0,1 en 2) vermenigvuldigd met de lengte van het getal.
in binair heb je steeds 'maar' 2 getallen in je alfabet, maar om een groot getal uit te drukken heb je er daar heel veel van nodig. in het decimaal stelsel heb je minder cijfers nodig om die getallen uit te drukken, maar heb je 'maar liefst' 10 cijfers in je alfabet.
maar inderdaad, hardwarematig is binair het gemakkelijkst te implementeren (magneten n-z, stroom hoog-laag, enz)

Nouja, gaat om de opslag he. In plaats van 2*2*2*2 ga je hier 3*3*3*3 waarden in 4 bits opslaan. Om dat vervolgens te vertalen naar binaire of decimale getallen is puur een kwestie van conversie.

Daarnaast zou men kunnen overgaan op trinaire berekeningen, welke wellicht sneller zijn dan binair?

Conversies kunnen natuurlijk altijd, maar Shoq heeft wel gelijk dat het niet handig werkt. 2^n = 3^m heeft geen oplossingen met n en m in de positieve gehele getallen, dus het is niet mogelijk om met een geheel aantal bits precies even veel getallen weer te kunnen geven als met een geheel aantal ... eh ... trits.

Als ze nou nog een vierde toestand erbij zouden kunnen kweken zou het ideaal zijn. :)


P.S. Ik vind het 'trinaire bits' uit de titel nogal een onzinterm. Trinaire binary digits? Noem het anders trinaire cijfers, want dat zijn het gewoon.

[Reactie gewijzigd door Ravek]


P.S. Ik vind het 'trinaire bits' uit de titel nogal een onzinterm. Trinaire binary digits? Noem het anders trinaire cijfers, want dat zijn het gewoon.
offtopic:
Doe dan trits :)

[Reactie gewijzigd door Bitage]


dus het is niet mogelijk om met een geheel aantal bits precies even veel getallen weer te kunnen geven als met een geheel aantal ... eh ... trits.
Dat probleem heb je nu al met floating point getallen. 0.5 is wel binair weer te geven, 0.1 niet.

Zie http://en.wikipedia.org/wiki/Floating_point .

Dat probleem is er altijd al geweest in de wiskunde en discrete representaties van getallen.
Want schrijf jij maar eens 1/3 uit....

@koelpasta: Simpel, 0.13 als je gebruik maakt van deze nanodraadjes :Y)

... serieus man. Dat heet vooruitgang.

Vrij eenvoudig: met twee stuks kan je 9 waarden maken, dus evenveel als (ruim) 3 normale bits. Voor elf bits heb je maar zeven 'trits' nodig, enzovoorts. Een chip die zo werkt zal wel een slimme controller moeten hebben en een gedeelte van het geheugen blijft vermoedelijk ongebruikt, maar waarom niet - de rest van de computer hoeft immers niet te weten of het binair of trinair of decimaal wordt opgeslagen, als die controller het maar netjes vertaalt. En dat lijkt mij het minste van de problemen :)

Je krijgt wel last van aignment dingetjes.
Het zal namelijk voorkomen dat als de computer een bepaalde (binaire) geheugenlocatie opvraagt die intern over 2 trinaire elementen opgeslagen is. Hierdoor zal het geheugen intern 2x een element moeten uitlezen wat snelheidsverlies betekent.

Trinair geheugen werkt pas goed als OF de rest van het systeem een stuk trager is OF de rest van het systeem ook trinair is.

Je hebt gewoon minder posities nodig om hetzelfde getal of dezelfde informatie op te slaan....

Het getal 27 kan je bijvoorbeeld opslaan als:
met 2 waarden = binair: 11011
met 3 waarden = 1000
met 10 waarden = decimaal: 27

Je hebt dus minder posities (of draden) nodig! En dus kunnen de geheugenchips kleiner worden. Natuurlijk moet er in de controller wel een vertaalslag naar het binaire systeem gedaan worden als de data verwerkt wordt door een hedendaagse cpu...

Maar je zult meer rekenkracht nodig hebben om de getallen die buiten het trinaire systeem vallen, weer te geven. Probeer maar eens 2 voor te stellen met dat systeem van je. Dat moet dan gebeuren op de manier waarop ze floating point getallen weergeven in binaire systemen, en dat is nog steeds een punt waarop processors hun tanden kapot bijten. Maar binair kunnen we tenminste elk geheel getal weergeven.

Het zal er dus maar van afhangen of die ene extra waardemogelijkheid in je bit voldoende opweegt tegen het nadelige feit dat een aantal getallen gewoonweg meer moeite kosten.


ik ben een drolletje. natuurlijk heeft Douwtjeh gelijk.

[Reactie gewijzigd door bluppfisk]


Niet om moeilijk te doen, maar kan je in een trinair systeem het getal 2 niet gewoon weergeven als uhm... nuja 2?
(als je het interval [0,1,2] gebruikt voor de drie verschillende toestanden van de uhmm trits)

zie ook wiki artikel

[edit: foutje]

[Reactie gewijzigd door Douwtjeh]


Een 8 bit getal kan tot 256 verschillende waarden bevatten indien het opgeslagen word op een binaire bit, indien dit een trinaire bit is loopt dit op tot 6561 verschillende waarden.

Door 3waardige bits door te sturen kan men ook hogere snelheden op bussen krijgen.
En je kan nog altijd ergens een vertaal controller tussen zetten om van 2 waardig naar 3 waardig om te zetten.

@onder: Dit is een begin de rest volgt wel... trouwens 0V, 1,25V, 2,5V voila, 3 waarden. Als ik me niet vergis zijn er trouwens al bussen die met 3 waardige bits werken.

[Reactie gewijzigd door kluyze]


Door 3waardige bits door te sturen kan men ook hogere snelheden op bussen krijgen.
Daarvoor zouden de bussen ook drie verschillende waarden per impuls moeten kunnen doorgeven en heeft hier verder weinig mee te maken. Het zou wel handig zijn als de processoren en de rest van het systeem ook met trinaire waardes zou gaan werken inplaats van enkel het geheugen.

Dit is gewoon een van de vele manieren om meer informatie per vierkante mm geheugen te kunnen opslaan.

"Daarvoor zouden de bussen ook drie verschillende waarden per impuls moeten kunnen doorgeven en heeft hier verder weinig mee te maken."

Even hierop voortgeborduurd:
Een bit (0 of 1) over een bus detecteren is eenvoudiger dan 3 verschillende waardes detecteren (trit).
Dit betekent dat de bussnelheid omlaag moet om errors te voorkomen.

Het vaststellen van een 3e waarde is ook lastiger dan het vaststellen van 1 van de extremen (hoog of laag) omdat bij een verandering van extreem naar extreem je ook over het gebied gaat van de 3e 'tussenwaarde' die de extra informatie voorstelt.
Het zou dus zomaar kunnen dat trinaire bussen maken zo veel lastiger is dan binaire bussen dat het niet rendabel is...

Dit betekent dat de bussnelheid omlaag moet om errors te voorkomen.
Dat is een kwestie van technische ontwikkeling.
De hoge snelheid komt er gewoon. Dat zal niet het probleem zijn. Twinitig jaar geleden hadden we ook nooit gedacht dat we 65nm chips konden maken die zonder hitte- en interferentieproblemen op 3+ GHz kunnen draaien.

[Reactie gewijzigd door Fireshade]


Ik heb mij wel eens laten vertellen dat die derde waarde redelijk elementair is in omgevingen waar een exacte benadering nadelig kan zijn zoals berekeningen aan complexe weerssystemen. De "third state" krijgt dan in plaast van een "0" / "nee" of een "1" / Yes de status "don't know"; waardoor hij buiten beschouwing gelaten wordt.
Je komt het ook tegen in fuzzy logic, generic- & evolutionary programming
Het operatingsystem is uiteraard vanaf de fundamenten opgebouwd daar mee om te gaan.

Misschien ligt het wel zo principieel als in het interlectueel geschil tussen Albert Einstein en Niels Bohr in de quantum mechnica. Einstein ontkende de verplichte keuze tussen "ja" en "nee" met de opmerking "God dobbelt niet".

[Reactie gewijzigd door uflex]


Dat heeft er geen hol mee te maken, wat jij zegt gaat alleen over WAT je opslaat, niet HOE.

Ik ben het met je eens. Je kan die derde toestand ook in een extra bit uitdrukken. Heb je zelfs nog een status over. Waarvoor zou je tot drie tellen, als tot twee of tot tien ook kan? Het is allemaal arbitrair.

Je moet wel wat kunstgrepen uithalen om die combinatie als node in een netwerk te functioneren. Zeker als 'vergeetachtigheid' een elementair bestandeel vormt van het model. Als bijvoorbeeld in een neuraal netwerk een bit ('1' of "0") een tijdlang niet aangesproken is vervalt hij naar die derde status (die van "'k weet nie")., waardoor zaken letterlijk in de vergetelheid raken en geen belasting meer vormen.

Het menselijk brein lijkt over zo'n omkeerbare 'garbage collecter' te beschikken en lijkt ook beter in staat met probleemoplossingen om te gaan in een minder exacte omgeving.

Het is misschen wat filosofisch of naief om enthousiast te worden wanneer de nanotechnologie ons een bouwsteen aanreikt die ons weer een stapje dichter bij natuur brengt.

Er komt een dag dat we echt weten hoe het zit|!

[Reactie gewijzigd door uflex]


Je zit er dicht bij, maar wat je zegt is niet geheel correct. De derde staat waar je naar refereert wordt vaak aangeduid met 'dc' (i.e. 'don't care'). Dit geeft aan dat de waarde van een bit op een bepaalde positie niet uitmaakt en is dus feitelijk een wildcard.

John Holland gebruikt deze wildcards in Schemata theory, welke gelimiteerd is tot Genetic Algorithms, aangezien deze een binaire genotype representatie gebruiken. Evolutionary Programming is een geheel andere branch binnen Evolutionary Computation en schemata theory is hier niet op van toepassing. Overigens wordt de wildcard dc gebruikt in veel methodes die met digitale systemen te maken hebben.

Ten tweede, de uitspraak 'God does not play dice' slaat erop dat Albert Einstein niet geloofde dat de wereld niet-deterministisch in elkaar zat, m.a.w. dat het zelfs theoretisch gezien niet mogelijk is om alles perfect te voorspellen als je alle wetten en de huidige staat van de wereld perfect kent. Niels Bohr en anderen stelden namelijk voor dat quantum mechanische processen stochastisch zijn en je dus alleen de kans dat een observatie optreedt kunt bereken, maar het nooit zeker kunt weten. Dit werd door Einstein opgevat als 'God plays dice'.

Kijk, hier komen we verder mee. Bedankt voor deze heldere uitleg.

Is die 'integer' benadering van de kwantum mechanica (de noodzaak 'positie' te kiezen, altijd 'hier' of 'daar' te moeten zijn, nooit te gelijkertijd 'dutty under test' en observer te kunnen zijn en de "armoede" die Einstein van dit beeld vond uiteindelijk toch niet het grote dilemma en ook de parallel met dit onderwerp?

Kortom: Is die strijd al uitgevochten ? Of kan de zoektocht in het menselijk brein en de informatie technolgie die ouwe Albert toch niet alsnog in het gelijk stellen?

[Reactie gewijzigd door uflex]


In mijn mening is het niet parallel, maar eerder orthogonaal met dit onderwerp. Bij een don't care geef je aan dat het niet uitmaakt of een bit 0 of 1 is, wat dus anders is dan don't know. In de meeste gevallen weet je bij een don't care wildcard best wat de eigenlijke waarde van de bit is (do know, don't care).

In de analogie met quantum mechanica zou je kunnen zeggen dat je voor dit 'deeltje' niet geinteresseerd bent in de observatie en je dus geeneens met de stochastische eigenschappen van kwantum mechanica te maken krijgt. Echter, de situatie met quantum mechanica zijn het tegenovergestelde: je wilt de exacte positie en impuls kunnen weten, maar het is niet mogelijk (do care, don't know).

Een snelle eerste toepassing die ik kan bedenken is fail safe geheugen. Je kunt in de huidige situatie deze geheugens toepassen en de 3e waarde als controlestand gebruiken.

misschien de eerste bit van de volgende reeks zien als de opvolger van de derde bit van de eerste reeks?

Trinair, ter verduidelijking dus 0, 1, 2 als waarde.

Wat zou dit momenteel voor toepassing hebben, aangezien systemen dit nu duidelijk nog niet ondersteunen. Tenzij je gewoon meer van die draadjes neerzet.
Edit @ shoq, je hebt gelijk. Bit = 0/1. Is meteen heel anders denken met 3 opties.

Word wel apart lijkt me. Geheugen chips kunnen dus 33% meer data bevatten in theorie.

[Reactie gewijzigd door bbr]


3x8 bytes beschikbaar? Je hebt gewoon 3^8 mogelijke combinaties dan, wat neerkomt op log2(3^8) bits = 12.68 bits = 1.5 byte.

simpler was geweest 2x1,5=3, dan kom je ook op een factor 1,5 uit :p

Een byte hoeft niet uit 8 bits te bestaan.

CDC had mainframes met byte van 6 bits.
Philpis heeft systemen gehad met bytes van 9 bits.

Als ik de tekst goed begrijp, kunnen ze zowel in de mantel als in de kern iets opslaan. Dan zou het dus niet 0,1 en 2 worden, maar 0,1 en nog een 1.
Maar wat ik dan niet begrijp, waar het dan niet 4 waarden kan opslaan (2 nullen en 2 enen), kan iemand dat uitleggen?

dat zal een materiaal eigenschap zijn.

bijv wanneer je meer energie nodig hebt, om de kern te berijken

(je zou dus eerst de mantel moeten laden) in dat geval is van buiten af 0 0 0 mogelijk
0 1 0 ook maar 0 0 1 niet omdat je de kern niet zou kunnen laden, zonder eerst de mantel, hierdoor houd je dus een trinair systeem.

Door zowel van de kern als de mantel gebruik te maken, slaagden de onderzoekers er echter in een derde geheugenstaat op te slaan
Daar staat dus niet dat ze op de kern en mantel onafhankelijk van elkaar twee gegevens kunnen opslaan. Alleen dat ze "iets" met de kern en mantel doen, waardoor ze in totaal 3 statussen kunnen onderscheiden.

Met acht draadjes van elk drie mogelijkheden kom je op 3^8 = 6561 mogelijkheden, wat tussen de 12 en 13 bits aan informatie in zit. Drie bytes levert je 16777216 mogelijkheden; dat is toch wel wat anders.

dat klopt niet, want je kan en moet dan altijd één bit in een van de drie bytes hoog hebben en de andere twee laag:
2^(3*8) = 16777216
3^8 = 6561
het makkelijkst om dit te implementeren is om een hardware tabelletje in de controller te bouwen die werkt met compacte dataeenheden, bijvoorbeeld een byte, nibble of octet:
00 => 000
01 => 001
02 => 010
10 => 011
11 => 100
12 => 101
20 => 110
21 => 111
22 => bad sector
waarbij het dan het mooist zou zijn als 22 de toestand is waar de stuctuur onder normale omstandigheden naartoe neigt (net zoals bits op een CD of diskette van nature naar een rust toestand gaan onder invloed van straling)

[Reactie gewijzigd door RoadRunner84]


Mijn eerste gedachte: goh, is het al weer bijna 1 april ;-)

Maar als zowel de kern als de mantel van weerstand kunnen wisselen, dan moet het toch mogelijk zijn om 4 waardes op te slaan in het geheugen? Zo vang je 2 bits in 1 geheugen-spot, hetgeen met praktischer lijkt dan 3 waardes op 1 plek (ivm hergebruik huidige code en compilers etc)..

Dat dacht ik initieel ook :
aan / uit voor de mantel, aan / uit voor de core.

Maar aangezien het systeem alleen de weerstand kan meten van de draad gaat dat helaas niet op. Tenzij je dus de weerstand zover kan beinvloeden dat je "wel" 4 waarden kan opslaan, dan zou het ineens wel een heel stuk schelen.

blijkbaar zijn er maar 3 van elkaar te onderscheiden toestanden in één element. goed, ik denk wel dat men hier over nagedacht heeft :)

telkens als ik dit soort nieuws lees vraag ik me wel steeds af of er van al die ontwikkelingen iets door zal breken binnen afzienbare tijd (maw voor dat ik oud en versleten ben)

[Reactie gewijzigd door Sir_Eleet]


aangezien ze het hier hebben over het instellen van een weerstand (hoge/lage weerstand) lijkt het mij gewoon als volgt te werken:

kern lage weerstand + mantel lage weerstand = lage weerstand
kern hoge weerstand + mantel hoge weerstand = hoge weerstand
kern hoge weerstand + mantel lage weerstand = middel waarde
kern lage weerstand + mantel hoge weerstand = middel waarde gelijk aan bovenstaande

=> dus in totaal 3 waarden. Laag, hoog en middel

Is het een rare gedachte dat hier op systeemniveau een soort vertaling gemaakt wordt van binaire data naar trinaire data?

Ik heb het idee dat het andersom nog zou kunnen, van trinair naar binair..
Maar je kan niet van 2 ineens 3 maken, dat lijkt me onlogisch..
Maar ik vind dit een hele vreemde situatie, je kan er naar mijn idee niets mee in huidige systemen.

Je kunt decimale getallen toch ook omzetten naar binaire getallen? Waarom zou dat dat niet op deze manier kunnen?

Sluit wel aan bij mijn referentiekader :
Ja,
Nee,
Ik weet het niet

Je kan echt wel data converteren tussen verschillende systemen hoor. Het decimaal getal 255 wordt binair bijvoorbeeld opgeslagen als 11111111. Als je dat in een ternair systeem overzet wordt dat (als ik het goed heb) 12120. Eh voila, direct al 3 bits winst gemaakt.

100110 wordt dat in trinair.
255=
1 * 3^5 [243]
+
0 * 3^4 [0]
+
0 * 3^3 [0]
+
1 * 3^2 [9]
+
1* 3^1 [3]
+
0 * 3^0 [0]

Zoals tss68nl al aangeeft, binair naar decimaal is maar omzetten.

Een bit is een bepaalde spanning (correcte term?). De reden waarom computers niet decimaal werken is omdat het moeilijk is (was) om 10 stabiele spanningswaarden van elkaar te onderscheiden. Anders moesten ze de grootste spanning veel te hoog zetten om redelijk stabiele intervallen te hebben waardoor het energieverbruik de lucht in gaat. Daarom dus binair, wel (een beetje) spanning of geen spanning.

Mensen, getallen zijn getallen, het maakt natuurlijk helemaal niets uit welke basis (binair, trinair, decimaal, etc.) er gebruikt wordt. Een getal is iets abstracts, de weergave is slechts, sja, de weergave ervan.

In een geheugen waarbij de basiscellen binair zijn heb je 8 cellen nodig om 256 verschillende waardes te kunnen opslaan (2^8=256). Een geheugen met een trinaire cellen heb je daarvoor maar (iets meer dan) 5 cellen voor nodig (3^5=243).

Het voordeel van trinair t.o.v. binair geheugen is dus dat je meer op kan slaan in een kleiner fysiek oppervlak.

Geen bits, maar tits dus. (ternary digits)

Correctie, trinary digits = trits :)
«  1  2  »

Op dit item kan niet meer gereageerd worden.

Volgende 16:29
Vorige 15:34
VNU Media logo Powered by True

© 1998 - 2008 Tweakers.net - Alle rechten voorbehouden

Uitgever van: