(To jest trzecia część czteroczęściowego wpisu, który przedstawia 10 GB/s w odpowiedniej perspektywie. W pierwszej części opisaliśmy, co hipotetyczny robot do oglądania filmów mógłby zrobić z dyskiem SSD 10 GB/s. Część 2 zdefiniowała standardowe jednostki miary – bity i bajty – używane w technologiach komputerowych. Ta część próbuje wyjaśnić szczególnie mylący problem z pamięcią masową i danymi: dwie powszechnie używane definicje dla tych samych przedrostków jednostek.)
Czy zdarzyło Ci się kupić system komputerowy z, powiedzmy, urządzeniem pamięci masowej o pojemności 500 GB, ale po pierwszym uruchomieniu system operacyjny zgłosił tylko 465 GB? Widzieliśmy w części 2, że giga- oznacza miliard, więc dysk o pojemności 500 GB powinien mieć pojemność 500 miliardów bajtów, a nie 465 miliardów. Prawda?
Prawo!
Ale też nie prawda.
Jeśli zdarzyło Ci się zgłębić tę rozbieżność, prawdopodobnie zdałeś sobie sprawę, że brakujące 35 GB wcale nie było brakujące. Chodzi o to, że giga- nie zawsze jest używane dokładnie tak, jak myślisz, że powinno. Tak jak wielu piekarzy uważa, że słowo tuzin oznacza 13, tak w niektórych kręgach giga- oznacza 1,073,741,824! Dla wielu z nas, którzy dorastali rozumiejąc, że miliard to 1 z dziewięcioma 0 po niej, ta „inna” definicja może wymagać pewnych wyjaśnień.
A Trip Down Memory Lane
Komputery używają informacji i instrukcji zawartych w plikach danych. Te pliki danych rezydują w dwóch miejscach w nowoczesnym systemie komputerowym: w pamięci pierwotnej i pamięci wtórnej. Pamięć podstawowa, obecnie najczęściej pamięć o dostępie swobodnym (RAM), zawiera dane, do których procesory komputera mają natychmiastowy dostęp. Pamięć wtórna to głównie pamięć długoterminowa, taka jak dyski twarde (HDD) i dyski półprzewodnikowe (SSD). Dane znajdujące się w pamięci wtórnej muszą najpierw zostać przeniesione do pamięci RAM, zanim komputer będzie mógł z nich skorzystać. Sytuacja jest podobna do biurka i szafki na akta: Dokumenty znajdujące się na biurku są jak pliki w pamięci RAM, ponieważ są jedynymi, do których użytkownik – podobnie jak procesor komputera – ma dostęp, może je odczytać i natychmiast podjąć działania; można również korzystać z dokumentów znajdujących się w szafce na akta lub w pamięci wtórnej, ale dopiero po ich pobraniu z szafki i umieszczeniu na biurku.
Rozmiar pliku, niezależnie od tego, gdzie się znajduje, jest zwykle wyrażany w bajtach. I jak wspomniano w części 2 tego postu, ponieważ rozmiary te zwykle biegną w tysiącach, milionach, a nawet miliardach bajtów, rozmiary te są rzadko wymieniane bez specjalnych prefiksów. Problem pojawia się, ponieważ producenci wtórnych urządzeń pamięci masowej historycznie używali tradycyjnego zestawu definicji prefiksów do pomiaru pojemności pamięci swoich dysków, podczas gdy producenci pamięci RAM i układów CPU zdecydowali się użyć innego zestawu definicji dla tych samych prefiksów!
A Tale of Two Systems
Większość przemysłu komputerowego i elektronicznego używa metrycznego lub dziesiętnego systemu prefiksów. Jego obecna forma została pierwotnie znormalizowana przez Międzynarodowy Układ Jednostek Miar (SI) w 1960 roku. Metryczny system prefiksów ma za podstawę liczbę 10, więc jego prefiksy odpowiadają liczbom, które są całkowitymi potęgami liczby 10. Kilo, na przykład, to 103 – co oznacza 10 pomnożone przez siebie trzy razy – lub 1,000. Kolejne przedrostki w systemie mogą być łatwo wyrażone jako potęgi tego 1000. Na przykład przedrostek mega- to 1,0002 (1,000,000), a giga- to 1,0003 (1,000,000,000). Przemysł pamięci masowej używa metrycznego systemu prefiksów do opisywania pojemności wtórnych urządzeń pamięci masowej.
Binarny system prefiksów wchodzi w grę, gdy mowa o pamięci podstawowej. Binarny system prefiksów ma za podstawę liczbę 2, więc jego prefiksy odpowiadają liczbom, które są całkowitymi potęgami 2. Gdy dane trafiają do pamięci podstawowej, każdej informacji przypisywany jest unikalny adres, który pozwala procesorowi znaleźć dane w razie potrzeby. W połowie lat 60. binarny schemat adresowania stał się standardem w architekturach komputerowych, ponieważ system binarny umożliwia najbardziej efektywne rozmieszczenie danych binarnych w pamięci w taki sposób, że wszystkie mają prawidłowe adresy.
Na początku pojemność pamięci głównej wyrażano w liczbach bezwzględnych, ale gdy pierwsi specjaliści komputerowi znaleźli potrzebę wyrażania większych pojemności pamięci, znaleźli również potrzebę stosowania prefiksów do ich opisania. Przemysł pamięci masowych już wcześniej przyjął system przedrostków metrycznych opartych na układzie SI. Dla wygody, ci specjaliści postanowili przyjąć również system przedrostków… z pewnymi modyfikacjami. Zauważyli, że liczba 1,024, czyli 210 (binarnie), jest w przybliżeniu równa 1,000, czyli 103 (dziesiętnie), więc zaczęli używać przedrostka kilo nie dla oznaczenia 1,000, ale dla 1,024! Kolejne przedrostki w systemie mogą być wyrażone jako potęgi tego 1,024. Mega-, na przykład, stał się 1,0242, a giga- stał się 1,0243.
Następująca tabela rozszerza tabelę przedstawioną w części 2 tego postu, zawierając nie tylko znaczenie każdego przedrostka, ale także dokładną wartość przedrostków obu systemów.
Należy jednak pamiętać, że całkowita pojemność naszego hipotetycznego dysku SSD to nadal 500 000 000 000 000 bajtów. Chodzi o to, że gdy podzielimy tę liczbę przez gigabajt, możemy otrzymać dwie różne wartości, ponieważ istnieją dwie różne definicje gigabajta. Jeśli zdefiniujesz gigabajt jako 1,0003 (lub 1,000,000,000) bajtów, jak to określa Międzynarodowy System Jednostek i jak to robią producenci pamięci masowych, wtedy 500,000,000,000 bajtów to tyle samo co 500 GB. Jeśli zdefiniujesz gigabajt jako 1,0243 (lub 1,073,741,824) bajtów, jak to robią producenci pamięci RAM i niektóre główne systemy operacyjne, wtedy 500,000,000,000 bajtów to tyle samo, co 465 GB.Na początku nie stanowiło to problemu – różnica w przybliżeniu była nieistotna. W końcu rozbieżność między kilobajtem metrycznym a binarnym wynosi tylko 2,4%. Co więcej, każdy, kto kiedykolwiek mówił o KB, wiedział już, czy chodzi o 1000 bajtów pamięci, czy o 1024 bajty pamięci. Ale w miarę upływu czasu pojemność zarówno pamięci, jak i pamięci masowej zaczęła się zwiększać. Wraz ze wzrostem pojemności, względne różnice między wartościami dziesiętnymi i binarnymi tego samego prefiksu stają się bardziej wyraźne. Na przykład, chociaż rozbieżność między binarnym i metrycznym kilo- może być tylko 2,4%, różnica między giga- w dwóch interpretacjach rośnie do 7,4%, a do 12,6%, gdy mówimy o peta-!
Ponieważ potencjalne problemy z tej rozbieżności, ruch w kręgach naukowych rozpoczął się w późnych latach 90-tych, aby formalnie ustanowić nową, odrębną konwencję nazewnictwa dla prefiksów dużych liczb binarnych. W 1998 roku powstałe w ten sposób prefiksy binarne zostały przyjęte przez organy normalizacyjne Międzynarodowej Komisji Elektrotechnicznej (IEC), Międzynarodowej Organizacji Normalizacyjnej (ISO) oraz Narodowego Instytutu Norm i Technologii (NIST) i są obecnie określane jako „prefiksy IEC”. Przedrostki w tym systemie mają na celu zapewnienie oczywistego rozróżnienia pomiędzy tymi dwoma systemami i są tworzone jako kontrakcje łączące dwie pierwsze litery przedrostków SI z literami bi (skrót od binary). Poniższa tabela przedstawia listę przedrostków i ich znaczenie.
Although the ramifications of wrongly using one prefix when you are supposed to use the other might not be as dramatic as the disconnect that resulted in the infamous 1999 burn up of NASA’s Mars Climate Orbiter, kiedy jego oprogramowanie obliczyło siłę pędników w „funtach”, ale osobny kawałek oprogramowania przyjął dane zakładając, że były one w jednostce metrycznej „niutonach”, zrozumienie różnicy między tymi systemami może uchronić Cię przed zaskoczeniem – lub przynajmniej przed zdezorientowaniem.Niestety, nie wszyscy producenci komputerów, oprogramowania i pamięci zaczęli jeszcze stosować standardowe definicje naukowe, więc nadal można spotkać się z tym samym prefiksem stosowanym zarówno w interpretacji metrycznej, jak i binarnej. Konsumenci nadal mogą być zdezorientowani, gdy zainstalowane urządzenie pamięci masowej wskazuje jedną pojemność przy użyciu standardowych prefiksów, ale ich system operacyjny, który może wyrażać pojemność pamięci podstawowej i pamięci wtórnej w kategoriach prefiksu binarnego, wyświetla coś, co wygląda jak inna pojemność. Obecnie, aby złagodzić zamieszanie, większość producentów pamięci masowych umieszcza na swoich produktach i w literaturze objaśnienia określające dokładną wartość używanego prefiksu.
Następna część tego wpisu będzie dotyczyć szybkości przesyłania danych i unikalnych czynników branych pod uwagę przy wyrażaniu ich za pomocą danych.
.