jak najłatwiej skasować bezpowrtonie pamięć flash

dlaczego zakładasz, że inni są głupsi od Ciebie? Wbrew pozorom wiem, co piszę. I wiem, jak się koduje inormacje na nośnikach o niepewnym odczycie. Zadałem konkretne pytanie: zakładając 8 bit ADC i taką analogową komórkę, ODEJMUJĄC nadmiarowość konieczną dla uzyskania 1:10^15 BER, ile bitów na celę pozostanie? Nie wycieraj sobie twarzy hasłami z podstawowego kursu teorii informacji, tylko weź i policz. A przynajmniej rzetelnie oszacuj, podpierając się czymś wiecej niż tytuły rozdziałów.

Reply to
Marek Lewandowski
Loading thread data ...

dlaczego zakładasz, że inni są głupsi od Ciebie? Wbrew pozorom wiem, co piszę. I wiem, jak się koduje inormacje na nośnikach o niepewnym odczycie. Zadałem konkretne pytanie: zakładając 8 bit ADC i taką analogową komórkę, ODEJMUJĄC nadmiarowość konieczną dla uzyskania 1:10^15 BER, ile bitów na celę pozostanie? Nie wycieraj sobie twarzy hasłami z podstawowego kursu teorii informacji, tylko weź i policz. A przynajmniej rzetelnie oszacuj, podpierając się czymś wiecej niż tytuły rozdziałów.

A dlaczego zalozyles ze w komorce bedzie 8 bitow?a gdyby zamiast 8 bylo

4 lub 2 bity? Nie zakladam ze inni sa glupsi tylko widze ze tendencyjnie dobierasz przyklad by z gory udowodnic teze ze sie nie da... tylko ze takie uklady sa juz na rynku od kilku lat...
formatting link
tak wiec napewno da sie 2 bity, byc moze najnowsze opracowania samsunga maja juz 3 albo 4 bity - wniosek dla uzytkownika jest jeden - wieksza pojemnosc za te sama lub nizsza cene...
Reply to
PAndy

Stasiek_T Message-ID: <eopoqa$a13$ snipped-for-privacy@news.onet.pl>

,,Firma Winbond robi dość powszechnie znane układy do rejestracji dżwięku, [...] Wystarczy dodać przetwornik C-A na wejście i A-C na wyjście i już mamy pamięć w której jedna komórka ma np. bajt.''

Marek Lewandowski, Message-ID: <eoomof$b8o$ snipped-for-privacy@inews.gazeta.pl>

,,stosowane pamięci w kartach pamięci zbudowane są już na innej zasadzie, [...] na komórkę pamięci upychają już przynajmniej po dwa bity''

ja?

gdybyś czytał, a nie tylko pisał, to byś widział, że tyle, to ja już napisałem.

Reply to
Marek Lewandowski

Stasiek_T Message-ID: <eopoqa$a13$ snipped-for-privacy@news.onet.pl>

,,Firma Winbond robi dość powszechnie znane układy do rejestracji dżwięku, [...] Wystarczy dodać przetwornik C-A na wejście i A-C na wyjście i już mamy pamięć w której jedna komórka ma np. bajt.''

Marek Lewandowski, Message-ID: <eoomof$b8o$ snipped-for-privacy@inews.gazeta.pl>

,,stosowane pamięci w kartach pamięci zbudowane są już na innej zasadzie, [...] na komórkę pamięci upychają już przynajmniej po dwa bity''

ja?

gdybyś czytał, a nie tylko pisał, to byś widział, że tyle, to ja już napisałem.

-----------------------------------------------

Reasumujac Stasiek_T nie napisal nic o 8 bitach - Ty napisales 8 bitow od siebie... potem robi sie z tego zadyma na pol grupy... Teraz upycha sie 2 moze 3 lub 4 bity max - nie mozna wraz z doskonaleniem technologii wykluczyc jednak wspomnianych 8 bitow - to ze teraz jest to malo prawdopdobne nie oznacze ze nie jest niemozliwe bo sama idea funkcjonuje juz teraz - tak wiec nie rozumiem calego sporu

Reply to
PAndy

Ale co to ma udowodnić? Format PE w klasycznej postaci nie zawiera danych nadmiarowych. Weź skompresuj wymienione pliki np. archiwizatorem RAR dodając dane nadmiarowe. Spokojnie będziesz mógł zmodyfikować "parę bajtów", przy czym "parę bajtów" zależy od tego ile danych nadmiarowych dodasz.

No to zawierają, czy nie???

Dobrze wiesz, że są tzw. twierdzenia egzystencjalne, które szczegółów jednak nie zdradzają. Podstawy teorii informacji mówią tylko o istnieniu granicy przepustowości danego kanału informacyjnego. Znajdowanie konkretnych rozwiązań do danej sytuacji, tak by zbliżyć się do tej teoretycznej granicy, to już zdecydowanie zaawansowana sprawa.

Spróbuję co nieco policzyć:

Do komórki pamięci wpisywana jest wartość z przedziału od 0 do 255. Następnie koórka pamięci jest odczytywana. Odczyt komórki pamięci obarczony jest, od czasu do czasu, błędem "+1" lub "-1". Niech p oznacza prawdopodobieństwo popełnienia błędu typu "+1". Niech prawdopodobieństwo popełnienia błędu typu "-1" też wynosi p.

Dla ułatwienia sobie obliczeń wprowadzam, nieprzystające do problemu, założenia:

- gdy zapisano wartość 0 i przy odczycie wystąpi błąd typu "-1", to odczytaną wartością będzie 255;

- analogicznie z wartością 255 i błędem typu "+1". Tym sposobem każdą zapisaną wartość można traktować w jednakowy sposób.

Mamy więc kanał informacyjny: do komórki pamięci zapisywany jest symbol wejściowy; po odczycie uzyskujemy symbol wyjściowy. Kanał ten jest symetryczny (żadna wartość wejściowa, ani wyjściowa nie jest wyróżniona) Celem jest obliczyć przepustowość takiego kanału.

Przepustowość kanału to maksymalna ilość informacji wzajemnej przy optymalnym doborze prawdopodobieństw wejściowych. Ze względu na symetrię kanału optymalny dobór to taki, w którym symbole wejściowe pojawiają się z takim samym prawdopodobieństwem (rozkład prawdopodobieństwa liczb zapisywanych do komórek pamięci jest prostokątny; inaczej: prawdopodobieństwo, że na wejściu pojawi się liczba n wynosi 1/256, gdzie n oznacza dowolną wartość z przedziału 0 do 255).

Niech X oznacza zmienną losową reprezentującą liczbę zapisywaną do komórki, a Y odczytywaną z komórki pamięci. Ilość informacji wzajemnej: I(X; Y) = I(Y; X) = H(Y) - H(Y|X)

H(Y) oznacza entropię zmiennej losowej Y. Ze względu na to, że do komórki pamięci zapisywane są liczby z jednakowym prawdopodobieństwem, to, z powodu symetrii, na wyjściu (odczytywane z pamięci) będą pojawiać się liczby również z jednakowym prawdopodobieństwem 1/256. Entropia więc równa się: H(Y) = lg(256) = 8 bitów, gdzie lg oznacza logarytm o podstawie 2.

Teraz obliczam entropię warunkową H(Y|X), czyli jaka jest entropia zmiennej losowej Y, gdy znam wartość jaka została zapisana do komórki pamięci. Entropia warunkowa H(Y|X) jest średnią entropią warunkową z H(Y|X=n), gdzie n=0..255. Z powodu symetrii kanału: H(Y|X=i) = H(Y|X=j) dla i, j dowolnych z przedziału 0..255. Skoro entropie są jednakowe dla dowolnych wartości wejściowych, a symbole wejściowe są jednakowo prawdopodobne, to ich średnia, czyli entropia warunkowa H(Y|X) jest równa: H(Y|X) = H(Y|X = n).

Skoro n dowolne, to niech n = 1: H(Y|X=1) = P(Y=0|X=1) * lg(1/P(Y=0|X=1)) + P(Y=1|X=1) * lg(1/P(Y=1|X=1)) + P(Y=2|X=1) * lg(1/P(Y=2|X=1)) = p * lg (1/p) + (1-2p) * lg (1/(1-2p) + p * lg (1/p) = 2p*lg(1/p) + (1-2p)*lg(1/(1-2p))

Można podać już przepustowość kanału:

C = I(Y;X) = H(Y) - H(Y|X) = 8 bit - 2p*lg(1/p) + (1-2p)*lg(1/(1-2p))

Niech jedna na dziesięć komórek będzie przekłamana, czyli jedna na dwadzieścia "+1" i jedna na dwadzieścia "-1". Czyli p = 1/20

w takim przypadku:

C = ok. 7.431 bitów na komórkę pamięci. Tyle efektywnie bitów można zapisać w komórce pamięci. Jest to oczywiście maksimum teoretyczne przy założeniu, że komórek pamięci jest nieskończenie dużo. Inaczej: jeśli zapisujemy do komórek dane 8 bitowe, to żeby nic nie stracić, to trzeba dodać ok. 7.7% nadmiarowych informacji (8bit / 7.431bit - 1). Tyle maksima teoretyczne, w praktyce trochę więcej, ze względu na ograniczone długości bloków danych na jakich operujemy i wymagany BER.

Żeby policzyć ile nadmiarowych danych potrzeba dla wymaganego BER, trzeba znać rozmiar bloków danych na jakich operujemy, a także sposób kodowania. Wymyślenie optymalnego sposobu kodowania danych, raczej mnie przerośnie... coś mi mówi, że kod Gray'a byłby tu użyteczny.

Napiszę tylko tyle, że współczesne kody korekcyjne pozwalają zejść poniżej

1dB ponad to co wynika z teorii (dla bloków danych rzędu kB). Czyli dla naszego przypadku pewnie udało by się zejść poniżej 8.5% danych nadmiarowych.

pzdr mk

Reply to
mk

Że dla używania pamięci jako pamięci nie istnieje rozgraniczenie między ,,inny'' a ,,zupełnie inny''.

tak, jasne, użyj pamięci, dla której z góry wiesz, że co inngo piszesz, a co innego czytasz, ale pojemność podaj w ,,surowych'' bitach...

Zawierają informację pochodną względem zapisanych danych. Nie zawierają tych danych. Jeśli różnica semantyczna Ci umyka, streszczenie ksiażki zawiera informację o książce, ale nie książkę.

puste słowa, stoją w każdej książce. Konkrety proszę.

bzdura. Do komórki pamięci wprowadzony jest jakiś ładunek.

Jak doszedłeś do tego, że błąd mieści się w granicach 1LSB? Na podstawie jakich danych? Bo ja uważam, że błąd jest dla danego zakresu temperatur pracy i czasu przechowywania sporo większy.

Niech puszka konserw będzie otwarta. Postawiłeś postulat bez poparcia i jedziesz z wyliczeniami na absurdalnym założeniu.

przy założeniach nie mających nic wspólnego z zacytowanym hardwarem. A teraz weź przykład nieksiążkowy, za to rzeczywisty, ten o którym mówimy.

Reply to
Marek Lewandowski

Wystarczyło pogooglać: (4b/cell)

formatting link
(6b/cell; niestety trzeba mieć dostęp do dokumentów IEEE)
formatting link
I jescze (niestety również tylko dla subskrybentów IEEE): "256-Level Non-Volatile Analog Storage Device Using EEPROM Technology"
formatting link
pzdr mk

Reply to
mk

to co? W wielu maszynach bitu nie da się zaadresować, nie zaczyna przez to mieć innej definicji.

programujesz jak gdyby nigdy nic?

bajt to po fr. octet. np. dysk ma 160Go (Giga+octet)

Reply to
Marek Lewandowski

i jak dzielisz slowo na bajty ? I po co ?

J.

Reply to
J.F.

nie dzielę. Po co? Problem jest syntetyczny, bo praktycznie nie występują maszyny dzielące słowa powiedzmy 45bitowe na np. 15bitowe podjednostki, więc problem nazewnictwa nie występuje. W sytuacjach, gdzie może dojść do niejednoznaczności, zazwyczaj się definiuje pojęcia, których się używa, np. można sobie wtedy napisać, że na potrzeby tej publikacji przyjmuje się, że słowo oznacza 45 bitów a znak oznacza

15 bitów czy 725b czy ileśtam. Ale jak nic takiego nie stoi i ktoś napisze, że CPU pracuje ze słowem o szerokości 1.5 bajtu, to oznacza to, że słowo ma 12bit...

To _trochę_ tak, jakby upierać się, że kilogram może mieć więcej lub mniej niż 1000 gramów, bo są produkty pakowane tylko po 500g...

Reply to
Marek Lewandowski

nie dzielę. Po co? Problem jest syntetyczny, bo praktycznie nie występują maszyny dzielące słowa powiedzmy 45bitowe na np. 15bitowe podjednostki, więc problem nazewnictwa nie występuje. W sytuacjach, gdzie może dojść do niejednoznaczności, zazwyczaj się definiuje pojęcia, których się używa, np. można sobie wtedy napisać, że na potrzeby tej publikacji przyjmuje się, że słowo oznacza 45 bitów a znak oznacza

15 bitów czy 725b czy ileśtam. Ale jak nic takiego nie stoi i ktoś napisze, że CPU pracuje ze słowem o szerokości 1.5 bajtu, to oznacza to, że słowo ma 12bit...

uj zebys sie nie zdziwil - w dawnym ZSRR pewnie dalej stoja cuda pracujace na 12bitowych bajtach/slowach operujace na liczbach w systemie oktalnym... robili takie maszyny na procesorach segmentowych w technologii ECL do przetwarzania sygnalow - namiastki DSP lat 80 w ZSRR...

Reply to
PAndy

przecież nie pisałem, że nie występują, tylko że prawie nie występuja. Jest ich relatywnie niewiele i ludzie, którzy je programują, zazwyczaj nie zawracają sbie głowy rozważaniem, czy to dobrze, że słowo nie jest podzielne przez bajt, czy nie...

Pamiętam jeszcze eksperymentalne procesory: ,,szeregowy'' i ,,równoległy'' będące częścią jakiejś pracy doktorskiej z dziedziny przetwarzania danych, jeden CPU działał na 1bit szerokości szyny, przez co wprawdzie rdzeń był złożony (dane i instrukcje nadchodziły szeregowo), ale szyna na zewnątrz mogła być taktowana absurdalnie wysoko (bo nie było problemu nierównomierności czasów transportu dla poszczególnych bitów), drugi design upraszczał maksymalnie rdzeń: obsługiwane były tylko 2 instrukcje (bodajże XOR i NAND) kodowane na jednym bicie i szyna danych szeroka na ile się da. Taktowanie na zewnątrz było niskie, za to rdzeń stanowił banalny układ kombinacyjny i mógł być taktowany ad absurdum. W zależności od stosunku stopnia skomplikowania operacji i ilości danych do przetworzenia optimum wahało się między tymi ekstremami...

Reply to
Marek Lewandowski

Tak czy inaczej - problem sie zaczal w czasach gdy stalo ich wiecej, i wtedy jeszcze nie bylo takie pewne czy "byte" to 8 bitow czy nie. Stad pomysl oktetu. Za

formatting link
Originally a variable number of bits smaller than a word [...]

History The term byte was coined by Werner Buchholz in 1957 during the early design phase for the IBM Stretch computer. Originally it was defined in instructions by a 4-bit byte-size field, allowing from one to sixteen bits (the production design reduced this to a 3-bit byte-size field, allowing from one to eight bits in a byte); typical I/O equipment of the period used six-bit units. A fixed eight-bit byte size was later adopted and promulgated as a standard by the System/360 [..]

A teraz wejdzie Unicode i bajty znikna :-)

O ile pamietam to byly w produkcji maszynki mikroprogramowane, gdzie sie w miare latwo wpisywalo dosc dowolny procesor.

J.

Reply to
J.F.

przecież nie pisałem, że nie występują, tylko że prawie nie występuja. Jest ich relatywnie niewiele i ludzie, którzy je programują, zazwyczaj nie zawracają sbie głowy rozważaniem, czy to dobrze, że słowo nie jest podzielne przez bajt, czy nie...

Chodzi o to by ujednolicic pojecia - jesli mamy dwoch gosi ktorzy pod pojeciem bajt moga co innego widziec to lepeij definiowac czytelnie - ale jak mowie dyskusja tu juz na poziomie mocno akademickim sie toczy...

Pamiętam jeszcze eksperymentalne procesory: ,,szeregowy'' i ,,równoległy'' będące częścią jakiejś pracy doktorskiej z dziedziny przetwarzania danych, jeden CPU działał na 1bit szerokości szyny, przez co wprawdzie rdzeń był złożony (dane i instrukcje nadchodziły szeregowo), ale szyna na zewnątrz mogła być taktowana absurdalnie wysoko (bo nie było problemu nierównomierności czasów transportu dla poszczególnych bitów), drugi design upraszczał maksymalnie rdzeń: obsługiwane były tylko 2 instrukcje (bodajże XOR i NAND) kodowane na jednym bicie i szyna danych szeroka na ile się da. Taktowanie na zewnątrz było niskie, za to rdzeń stanowił banalny układ kombinacyjny i mógł być taktowany ad absurdum. W zależności od stosunku stopnia skomplikowania operacji i ilości danych do przetworzenia optimum wahało się między tymi ekstremami...

pomyslow bylo wiele - sa proof of concept dzialajcego CPU ktory ma jedna intrukcje skoku warunkowego... A takie DSP robili np rosjanie - jeden, jedno bitowy motylek FFT w ukladzie scalonym...nie mam przy sobie ichniego katalogu wiec symbolu nie podam...

Reply to
PAndy

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.