Dość proste, choć naiwne, podstawowe pytanie:
Czy posiadanie 4 stanów na „bit” zamiast 2 oznaczałoby dwa razy więcej miejsca do przechowywania? W przypadku, gdy nie jest to jasne, mam na myśli to, że każda „struktura pamięci” zamiast reprezentować tylko 2 wartości (podstawa 2: 0, 1), może reprezentować 4 wartości (podstawa 4: 0, 1, 2, 3 ).
Odpowiedzi:
Słowo, którego szukasz, to nie „bit”, ale „symbol”. „Symbol” to słowo używane do opisania procesu mapowania sygnałów sprzętowych (takich jak napięcia lub wzorce magnetyczne) na logiczne bity. Jeśli symbol może mieć 4 stany, może zakodować informacje o wartości 2 bitów.
Oczywiście w tym argumencie nie mówimy nic o wykorzystaniu zasobów przez symbol. Jeśli wysyłasz symbole wzdłuż drutu jako napięcia, różne symbole wyglądają coraz bardziej podobnie, gdy zwiększasz liczbę stanów na symbol. Jeśli mam drut 0-5 V i 2 stany na symbol (1 bit), moje dwa stany to 0 V i 5 V, z 5 V między każdym symbolem. Jeśli mam ten sam przewód, ale koduję 4 stany na symbol (2 bity), moje stany to 0 V, 1,66 V, 3,33 V i 5 V. To 1,66 V między każdym symbolem. Teraz hałas łatwiej zakłóca mój sygnał.
Istnieje prawo odnoszące się do nich, znane jako Prawo Shannona, które wiąże szerokość pasma (w bitach) ze wskaźnikiem błędów, które występują z powodu szumu na linii. Okazuje się, że istnieje ograniczenie liczby bitów, które można wcisnąć w drut. Używanie większej liczby symboli prowadzi do większej liczby błędów, co wymaga większej korekcji błędów.
Używamy tej techniki w prawdziwym życiu. Telewizja cyfrowa wykorzystuje QAM-64 z 64 stanami (a więc 6 bitów na symbol). Ethernet wykorzystuje 4 poziomy napięcia, więc 2 bity na symbol.
Edycja: Użyłem bitowej prędkości transmisji, a nie pamięci, ponieważ częściej widuje się symbole z większą liczbą stanów w transmisji, dzięki czemu historia jest bardziej przejrzysta. Jeśli ktoś chce przyjrzeć się pamięci i samej pamięci, można spojrzeć na komórki wielopoziomowe w pamięci flash, jak ktoś wspomniał w komentarzach. Taka pamięć wykorzystuje dokładnie to samo podejście, przechowując 3 bity jako 16 różnych poziomów naładowania kondensatora. (albo więcej!)
źródło
Jedna czwarta komórka pamięci może przechowywać dokładnie tyle samo informacji, co 2 binarne komórki pamięci:
Więc jeśli masz taką samą liczbę komórek pamięci, ale są one czwartorzędowe, masz dwa razy więcej pamięci. Ale jeśli ta komórka quad zajmuje dwa razy więcej miejsca na chipie, nie ma korzyści.
Lub inny sposób, jeśli miałbyś 1 gigaquad jakiejś kwarantanny, mógł pomieścić tyle informacji, co 2 gigabity normalnej pamięci binarnej, ponieważ każdy z nich mógł być wyrażony za pomocą dwóch bitów.
W pewnym sensie cała ta linia ma jedynie znaczenie akademickie. Możesz już myśleć, że układy pamięci przechowują na przykład komórki stanu 2 ^ 32, ponieważ nie możesz pobrać z nich 1 bitu, zawsze dostajesz pełne słowo. A jeśli w przyszłości ktoś wymyśli sposób, aby przechowywać to słowo w 4-stanowych komórkach fizycznych bardziej wydajnie niż w 2-stanowych komórkach, to byłoby to użyte, ale nie byłoby widoczne poza układem pamięci, nadal by sobie radził tylko pełne słowa pamięci, które mogą mieć na przykład 2 ^ 32 różne stany.
źródło
W teorii podstawowej tak. W rzeczywistości nie, ponieważ tak naprawdę nie przechowujemy danych w bitach (na dyskach twardych). Cort Ammon bardzo dobrze omawia problemy związane z transmisją danych. Pamięć RAM, pamięć podręczna i dyski SSD przechowują dane jako bity, ale dyski twarde różnią się ze względu na charakter ich fizycznego materiału i nasze starania, aby spakować na nich więcej danych. Większość danych jest nadal przechowywana na dyskach twardych, więc skupię się na nich. Wyjdę daleko poza wyjaśnienie, które znajdziesz w większości źródeł, ale spróbuję zacytować źródła tam, gdzie mogę. Źródła te należy odkopać ze starożytnych głębin Internetu, ponieważ jest to - w dużej mierze - prawdziwie zapomniana wiedza.
Po pierwsze, dyski twarde przechowują informacje z polami magnetycznymi na powierzchni talerzy napędu. Głowica napędowa odczytuje je, wykrywając strumień od zmiany w tym polu - jest to o wiele łatwiejsze do zmierzenia niż faktyczny kierunek i siła pola magnetycznego. ale jeśli pole składa się z 50 takich samych segmentów z rzędu, tak naprawdę nie może policzyć, że było ich 50 - odczytuje skok strumienia podczas odczytywania pierwszego segmentu, a następnie nie ma strumienia przez pewien czas i nie może śledzić czasu wystarczająco dokładnie, aby mieć pewność, że pole pozostało niezmienione dla 50 segmentów.
Podstawowym (nadmiernie uproszczonym) modelem jest więc przechowywanie trochę jako pary pól magnetycznych. Pierwszy zawsze byłby przełącznikiem z poprzedniego segmentu, a drugi byłby przerzuceniem reprezentującym 1 lub brakiem przerzucenia reprezentującym 0. Zatem 0 oznacza FN (przerzucenie zera), a 1 oznacza FF (przerzucenie). Czas napędu jest wystarczająco dokładny, aby rozpoznać różnicę między jednym skokiem strumienia a dwoma skokami strumienia w segmencie. Ten format nazywa się modulacją częstotliwości. To daje wyraźne sygnały, ALE oznacza to, że każdy kawałek pamięci wymaga dwóch miejsc na dysku - to bardzo nieefektywne. Tak więc żaden dysk twardy nie miał tak podstawowej formy kodowania; zamiast tego używał prostych sztuczek kompresyjnych. Najprostszym jest Modulacja częstotliwości zmodyfikowanej, która zmienia wzór tak, że dodatkowe odwrócenie magnetyczne jest używane tylko wtedy, gdy 0 jest poprzedzone innym 0. Pozwala to inżynierom wcisnąć prawie dwa razy więcej danych w to samo miejsce, a zatem zostało użyte na pierwszych dyskach twardych i jest formatem na dyskietkach. Następnie opracowano bardziej zaawansowany system o nazwie Run Length Limited z podobnym ogólnym pomysłem, do którego nie wejdę, ponieważ staje się znacznie bardziej skomplikowany i istnieje wiele implementacji.
Ale dzisiaj nie używamy takiego systemu. Zamiast tego używamy systemu o nazwie Partial Response, Maximum Likelihood (PRML). PRML wymaga, aby głowa odczytała długość i zebrała próbkę magnetyczną, a następnie porównała ją z zestawem referencyjnym przechowywanych próbek, aby ustalić, która z nich najlepiej pasuje. Pomija całą koncepcję szczytów strumienia, a zamiast tego stosuje dopasowanie wzorca (ja upraszczam, ale to uproszczenie jest tego warte), a wzór odpowiada zestawowi bitów. Wykorzystuje filtry szumów i inne technologie, aby usunąć potencjalne błędy. Najlepiej jest myśleć o tym jako o złożonym kształcie fali, a dysk twardy wie, jak przełożyć każdy kształt fali na zestaw bitów. W tym sensie dane są przechowywane bardziej w formacie analogowym niż cyfrowym,
Najlepszy przewodnik na ten temat znajduje się na stronie http://www.pcguide.com/ref/hdd/geom/data.htm (kliknij kilka razy przycisk Dalej, aby przeczytać całość), a istnieje kilka innych źródeł - głównie z ludzie, którzy stworzyli ogromne repozytoria wiedzy komputerowej, o których nikt nie ma powodu wiedzieć. Godne dodatkowe źródło (które jest dobre, ale nie do końca w 100% idealne, o ile mogę powiedzieć) znajduje się na stronie http://www.tomshardware.com/reviews/hard-drive-magnetic-storage-hdd 3005-6.html
TL; DR: Dyski twarde nie przechowują danych w formacie podobnym do zer i jedynek; zamiast tego używają złożonego przetwarzania sygnału do wtłaczania sygnałów do możliwie najmniejszej przestrzeni i dekodowania go podczas odczytu. Są więc naprawdę agnostyczne.
Nie zdziwiłbym się, że w pewnym momencie próbowano użyć pamięci masowej base-4 na dyskach SSD lub RAM. Wszystko zależy od fizyki i chemii materiałów. Inżynierowie i naukowcy popchną te materiały tak daleko, jak to możliwe, i będą podążać tą drogą, która da najlepsze wyniki.
źródło
Tak, posiadanie większej liczby stanów pozwoli każdej „komórce” pamięci lub każdemu symbolowi na linii transmisji danych przenosić więcej informacji.
Ale nie ma darmowego lunchu, musimy właściwie rozróżnić te stany. Okazuje się, że budowanie bramek binarnych jest łatwe i znacznie trudniejsze do budowania bramek, które wyróżniają, przetwarzają i regenerują więcej niż dwa poziomy logiki.
A potem pojawia się kwestia osłabionych sygnałów. W systemie dwupoziomowym możesz po prostu zaprojektować swój próg, aby działał z najgorszym przypadkiem, w cztero-stanowym systemie, w którym oczekuje się znacznego poziomu, musisz dostosować swoje progi do konkretnego tłumienia systemu, a nie tylko do najgorszego tłumienie obudowy. W praktyce oznacza to, że musisz dodać system pomiaru tłumienia do swojego systemu komunikacji.
Wszystko, co powiedział, że są sytuacje, w których dodatkowo złożoność robi sensu. Wiele dysków SSD wykorzystuje teraz więcej niż dwa poziomy na komórkę flash (znane jako MLC lub TLC), nowoczesne protokoły szybkiej komunikacji również prawie zawsze używają kodowania wielopoziomowego.
źródło
Być może zainteresuje Cię informacja, że Rosjanie opracowali układ trójskładnikowy zamiast binarny. Oznacza to, że każdy symbol może mieć wartości
-1
,0
lub1
. Tak więc każda brama fizyczna może przechowywać „trzy” wartości zamiast „dwóch”.Jak zaczniesz podejrzewać, może być bardziej skuteczny sposób na wdrożenie podstawowego systemu numeracji. (Chociaż ta zdolność do bardziej efektywnego wyrażania tego zależy od naszej zdolności do fizycznego wytwarzania na materiale.) Okazuje się, że stała
e
, podstawa logarytmu naturalnego (~ 2,71828), ma najlepszą ekonomikę podstawową, a następnie 3, a następnie 2, następnie 4.Ekonomia Radix to liczba, którą możesz przedstawić, w porównaniu do liczby symboli, które musisz wziąć, aby to zrobić.
Na przykład matematyczna liczba trzy jest reprezentowana jak
3
w podstawie 10, ale jak11
w podstawie 2 (binarnie). Baza 10 może wyrażać większe liczby za pomocą mniejszej liczby symboli niż binarna puszka, ale tablica symboli podstawy 10 jest 5 razy większa (0 ... 9) niż tablica symboli podstawy 2 (0, 1). Porównanie mocy ekspresyjnej z rozmiarem zestawu symboli nazywa się „oszczędnością podstawową” (podstawa jest liczbą podstawy, na przykład 2 w systemie binarnym lub „baza 2”). Naturalnym pytaniem jest, gdzie chcę znaleźć się w związku z tym kompromisem? Jaki numer powinienem przyjąć jako podstawa? Czy mogę zoptymalizować kompromis między mocą ekspresji a rozmiarem zestawu symboli?Jeśli spojrzysz na wykres w artykule o gospodarce radix na wikipedii, możesz porównać ekonomie różnych baz. W naszym przykładzie podstawa 2 ma ekonomię podstawową wynoszącą 1,0615, podczas gdy podstawa 10 ma ekonomię wynoszącą 1,5977. Im niższa liczba, tym lepiej, więc baza 2 jest bardziej wydajna niż baza 10.
Twoje pytanie dotyczące bazy 4 ma wydajność 1,0615, która jest tego samego rozmiaru co baza 2 (lub binarna), więc przyjęcie jej w stosunku do bazy 2 zapewnia średnio dokładnie taki sam rozmiar pamięci na liczbę.
Jeśli zastanawiasz się, czy istnieje idealna liczba do przyjęcia jako podstawa, ta tabela pokazuje, że nie jest to liczba całkowita, ale stała matematyczna
e
(~ 2,71828), która jest najlepsza, mając ekonomię 1,0. Oznacza to, że jest możliwie najbardziej wydajny. Dla każdego zestawu liczb, podstawae
da ci najlepszy rozmiar reprezentacji, biorąc pod uwagę jej tabelę symboli. To najlepszy „huk za grosze”.Tak więc, chociaż uważasz, że twoje pytanie jest być może proste i podstawowe, w rzeczywistości jest subtelnie złożone i bardzo warte rozważenia przy projektowaniu komputerów. Jeśli mógłbyś zaprojektować idealny dyskretny komputer, użycie bazy 4 oferuje tę samą ofertę - taką samą przestrzeń pod względem kosztów - jak wersja binarna (baza 2); użycie bazy 3 lub trójskładnikowej oferuje lepszą ofertę niż binarna (a Rosjanie zbudowali fizyczny, działający komputer z reprezentacją bazy 3 w tranzystorach); ale idealnie byłoby użyć bazy e. Nie wiem, czy ktokolwiek zbudował działający komputer fizyczny z bazą e, ale matematycznie oferowałby lepszą przestrzeń w porównaniu do binarnych i trójskładnikowych - w rzeczywistości najlepsza oferta spośród wszystkich liczb rzeczywistych.
źródło
Czy uwierzyłbyś, że mogę zakodować całą ludzką wiedzę za jednym razem?
Jeśli koduję trochę w jednym dopasowaniu, symbole mogą wyglądać następująco:
Przy wystarczającej liczbie dopasowań mogę powiedzieć wszystko. Ale mogę dodać dwa razy więcej przy tym samym dopasowaniu, jeśli dodam dwa kolejne symbole. Który może wyglądać następująco:
Dwa razy więcej informacji w tym samym meczu! Czemu nie? Po co przestać? Obróć każdy symbol o 45 stopni i ponownie podwoimy. 30, 15 i tak dalej. Wkrótce mam wystarczająco dużo symboli, że mogę powiedzieć wszystko i wszystko za jednym razem! Kiedy to zrobię, mamy jednak problem. Co mówi ten mecz?
Jak możesz być pewien, który symbol jest teraz? Ile czasu potrzebujesz, aby być pewnym? To jest pocieranie. Im więcej symboli dodam, tym więcej wysiłku zajmuje rozróżnienie ich.
Jeśli mówimy o meczu, to na pewno. Ale nawet jeśli to nie spowolniło naszej prędkości odczytu dopasowania, teraz zajmujemy więcej miejsca w kuchni. To zawsze coś.
źródło
Gdyby bit miał 4 stany zamiast dwóch w symbolu (bicie), to tak, miałbyś dwa razy więcej pamięci. To może, ale nie musi, zająć dwa razy więcej miejsca, w zależności od zastosowanej technologii.
Istnieje prawdziwy przykład, który masz przed oczami każdego dnia: Ethernet (który nie jest pamięcią, ale jest podobny, o ile przesyła dane), masz między innymi zwykły „szybki Ethernet” przy 100 MBit 100BASE -TX, a masz ethernet 1GbE.
Oczywiście 1GbE wymaga 10-krotnie wyższych częstotliwości niż 100 MBit (ponieważ 100 MBit wymaga 10-krotnie wyższej częstotliwości niż 10 MBit), dlatego też potrzebujesz droższych kabli. Oczywiście.
Ups ... to wcale nie jest prawda .
Sieć Ethernet 100 MBit przesyła dwie pary kabli przy 100 MHz, natomiast GbE transmituje przy 125 MHz przez 4 pary kabli.
Czekaj, więc GbE jest naprawdę tylko 2 1/2 razy szybszy niż 100 Mbit Ethernet? Dostaję tylko 250 MBitów na sekundę?
Nie, wykorzystuje również kodowanie 5-PAM, które może kodować 2,32 bitu na impuls na parę kabli, z czego 2 bity są wykorzystywane jako rzeczywista informacja, a reszta czyni sygnał bardziej odpornym na zakłócenia. Dzięki tym bitom ułamkowym 1000BASE-T jest również w stanie porzucić kodowanie 8B10B.
Podwoiłeś liczbę przewodów i nieznacznie zwiększyłeś częstotliwość, ale zyskujesz 10 razy większą przepustowość!
Teraz, jeśli uważasz, że to czysta magia, spójrz na to, jak działa cyfrowa telewizja kablowa , a jeśli nadal nie jesteś przekonany, zajrzyj do ADSL, który używa 32768-QAM do zakodowania 15 bitów w jednym symbolu.
Ten sam stary drut miedziany, to samo pasmo częstotliwości, przechodzi 15 razy więcej rzeczy.
EDYCJA:
Kolejnym bardzo oczywistym przykładem z prawdziwego życia, o którym całkowicie zapomniałem (ponieważ jest to po prostu zbyt oczywiste, najwyraźniej!), Który masz przed oczami na co dzień: pendrive USB.
Te zwykle używają pamięci flash MLC . Co to jest? Jest to rodzaj komórki pamięci, która przechowuje jeden z czterech różnych poziomów naładowania. To najmniejsza jednostka, do której można uzyskać dostęp na poziomie sprzętowym. Więc możesz powiedzieć, że twoje „bity” rzeczywiście mają 4 stany ( tak nie jest , tak naprawdę po prostu wyciągasz dwa bity zamiast jednego, i tak czy inaczej możesz czytać tylko całe sektory z urządzenia ... ale możesz na to spojrzeć w ten sposób).
Ta sama liczba komórek, ale podwójna pamięć. Tańsze, mniejsze, nieco mniej niezawodne, ale ... przede wszystkim tańsze .
źródło
Posiadanie 4 symboli na cyfrę zamiast dwóch oznacza, że możesz zapisać dwa razy więcej informacji w jednej cyfrze. Jednak wraz ze wzrostem liczby cyfr można przechowywać wykładniczo więcej informacji:
Każda n cyfr w bazie 2 może kodować 2 ^ n stanów, podczas gdy baza 4 może kodować 4 ^ n.
źródło
(4^n) / (2^n) = 2^n
co oznacza, że możesz reprezentować wykładniczo (2^n
razy) więcej stanów, ale to tylko dwukrotnielog2(4^n) / log2(2^n) = 2n / n = 2
więcej ( ) więcej pamięci. Pamiętaj, żestorage capacity in bits = log2(number of states)