Jaký smysl má násobit šířku slova počtem stavů každé cifry?!? To by mělo smysl kdyby implementace jednoho bitu měla cenu 2, tritu 3, atd.. ale je poměrně zřejmé že „cena“ ve smyslu die area neporoste lineárně, ale spíš kvadraticky, protože třeba kombinační logika v ALU musí pro operace nad 2 argumenty dekódovat N2 stavů.
Ma to smysl, typicky u komunikacnich kanalu (telefonni linky jsou asi nejznamejsi priklad), kde se pouze dva stavy prenasi neefektivne. Viz Shannonuv teorem a veci okolo nej (castecne i teorie informace). Zajimave je, ze u vyvazene trojkove soustavy je|byly by ALU stejne slozita „binarni“ ALU, pokud bereme v uvahu i zaporna cisla (protoze nasobeni v 3-soustave je reseno pomoci jednoduche tabulky 3×3, cele se to da vyresit jednoduchou matici diod).
Tak mi to nedalo, a namaloval jsem si to i pro paměťovou buňku. Pro binární logiku je nejjednodušší statický buffer tvořený dvěma invertory, které mají křížem propojené vstupy a výstupy- potřebujete 4 tranzistory. Pro trit potřebujete 3 stabilní stavy, takže 3 hradla. Každé z nich musí nulovat ta ostatní, takže potřebujete 3 dvouvstupová NAND hradla, celkem 12 tranzistorů.
Takže jedním tritem sice nahradíte log(3)/log(2) = 1.58 bitů, ale spotřebujete na to 12/4 = 3× tolik tranzistorů. Takže trojková soustava je neefektivní faktorem 1.89, a proto se asi taky nepoužívá…
No jo, ale to uz to implementujete pres binarni system (hradla NAND). Predpokladal bych, ze efektivni implementace bude nativni, tedy tri mozne stabilni analogove stavy. Kdyz tedy pominu, ze se v clanku pise jen o polovodicovych diodach, tranzistory jsou asi budoucnost.
Ale jenom hadam.
Ze se to nebude az tak pohodlne a vyhodne skladat z dnesnich soucastek je asi jasne.
Nejake aktivni prvky tam mit museli, jako tvarovace signalu a invertory. Predpokladam, ze vzhledem k male integraci je spotreba moc netrapila, takze pouzivali zesilovace v linearnim rezimu, jeden tranzistor nebo elektronka + bizuterie. Nejlepsi je, ze zapojeni zakladnich hradel pak vypada prakticky stejne pro tri stavovou i dvoustavovou logiku. Zalezi jen co do toho pustite.
Zajimavy je, ze se uz dlouhou dobu uvazuje, ze pametove bunky DRAM (kondik+tranzistor) a NAND flash budou vicestavove, protoze s dnesni „presnosti“ zesilovacu v pametovych modulech neni problem rozeznat >2 stavy. Je to samozrejme neco jineheho, nez se snazit vytvorin n-stavovou statickou bunku, to mas pravdu, ale obecne >2 stavove pametove bunky zas takovy problem nejsou (a uz vubec ne napriklad pri magnetickem zaznamu atd.)
Jenže to jsi spáchal podobnou zrůzdnost jako je BCD, kde se binárně emuluje desítková soustava s využitím 62,5% možných stavů. Zkus si to namalovat znova, ale místo tranzistorů použij tercistory*, které napájíš střídavým napětím a můžou mít tři stavy: 0 – zavřený, 1 – propouští kladné půlvlny, /1 – propouští záporné. Uvidíš že výsledek bude podstatně lepší.
* Tercistor neexistuje, takže si pro něj můžeš vymyslet vlastní značku ;-).
Ano, další řešení by bylo zavést dvojí napájecí napětí, a tři stavy kódovat jako VDD, 0, -VDD. Při použití tranzistorů s vysokým Vt (přibližně 4/3 VDD) by klasický binární invertor pro pásmo –1/3 VDD .. +1/3 VDD dával na výstupu Z, takže připojením rezistoru by se dal definovat chybějící stav 0.
No, stabilní i jednoduché (režie jen 1 rezistor na hradlo) by to asi bylo, ale ty jedničky by krapet topily, a výhody žádné.
Mozna to souvisi s cenou jako teoretickou spotrebou energie – jednotlive stavy potrebuji mit od sebe urcity energeticky odstup, aby nepreskakovaly samy vlivem teploty, a od toho se odviji IIRC teoreticka minimalni spotreba pri operacich.
Ale pak by byla cena umerna poctu stavu minus jedne, a to by zase nahravalo dvojce.
Die area v te dobe nebyla relevantni meritko…