Fundamental cukup sederhana, meskipun naif, pertanyaan:
Apakah memiliki 4 status per "bit" daripada 2 berarti dua kali ruang penyimpanan? Dalam kasus yang tidak jelas, maksud saya seperti seolah-olah setiap "struktur penyimpanan", daripada hanya mewakili 2 nilai, (basis 2: 0, 1), dapat mewakili 4 nilai (basis 4: 0, 1, 2, 3 ).
Jawaban:
Kata yang Anda cari bukan "sedikit" tetapi "simbol." "Simbol" adalah kata yang digunakan untuk menggambarkan proses pemetaan sinyal perangkat keras (seperti tegangan atau pola magnetik) menjadi bit logis. Jika simbol memiliki 4 status, simbol dapat mengkodekan informasi senilai 2 bit.
Tentu saja, kami tidak mengatakan apa pun tentang penggunaan sumber daya simbol dalam argumen itu. Jika Anda mengirim simbol di sepanjang kawat sebagai voltase, simbol yang berbeda akan terlihat semakin mirip saat Anda meningkatkan jumlah status per simbol. Jika saya memiliki kabel 0-5V, dan 2 status per simbol (1 bit), kedua status saya adalah 0V dan 5V, dengan 5V di antara masing-masing simbol. Jika saya memiliki kabel yang sama, tetapi mengkodekan 4 status per simbol (2 bit), status saya adalah 0V, 1.66V, 3.33V dan 5V. Itu 1,66V antara masing-masing simbol. Sekarang lebih mudah untuk noise merusak sinyal saya.
Ada hukum yang menghubungkan ini, dikenal sebagai Hukum Shannon yang menghubungkan bandwidth (dalam bit) dengan tingkat kesalahan yang terjadi karena kebisingan di telepon. Ternyata ada batas berapa banyak bit yang bisa Anda masukkan di kawat. Menggunakan lebih banyak simbol menyebabkan lebih banyak kesalahan, membutuhkan lebih banyak koreksi kesalahan.
Kami menggunakan teknik ini dalam kehidupan nyata. Televisi digital menggunakan QAM-64, dengan 64 status (dan dengan demikian 6 bit per simbol). Ethernet menggunakan 4 level tegangan, jadi 2 bit per simbol.
Sunting: Saya menggunakan laju transmisi bit daripada penyimpanan karena lebih umum untuk melihat simbol dengan lebih banyak status dalam transmisi, sehingga saya bisa membuat ceritanya lebih jelas. Jika seseorang ingin secara khusus melihat penyimpanan dan penyimpanan saja, seseorang dapat melihat Multi-Level Cells dalam memori flash, seperti yang disebutkan Seseorang di suatu tempat di komentar. Memori semacam itu menggunakan pendekatan yang sama persis, menyimpan 3 bit sebagai 16 tingkat muatan kapasitor yang berbeda. (atau lebih!)
sumber
Satu sel memori kuarterner dapat menyimpan informasi sebanyak 2 sel memori biner:
Jadi, jika Anda memiliki jumlah sel memori yang sama, tetapi mereka adalah kuarterner, maka Anda memiliki memori dua kali lebih banyak. Tetapi jika sel quad ini membutuhkan ruang dua kali lebih banyak pada sebuah chip, maka tidak ada manfaatnya.
Atau cara lain, jika Anda memiliki 1 gigaquad dari beberapa penyimpanan quartenary, itu dapat menyimpan informasi sebanyak 2 gigabit dari memori biner normal, karena setiap quad dapat diekspresikan dengan dua bit.
Di satu sisi seluruh jalur ini hanya untuk kepentingan akademis. Anda sudah dapat berpikir bahwa chip memori menyimpan misalnya 2 ^ 32 sel keadaan, karena Anda tidak dapat mengambil 1 bit dari mereka, Anda selalu mendapatkan kata lengkap. Dan jika di masa depan seseorang menemukan cara untuk menyimpan kata itu dalam sel fisik 4-negara lebih efisien daripada sel 2-negara, maka itu akan digunakan, tetapi itu tidak akan terlihat di luar chip memori, itu masih akan menangani kata-kata memori penuh saja, yang dapat memiliki misalnya 2 ^ 32 negara yang berbeda.
sumber
Secara teori dasar, ya. Pada kenyataannya, tidak - karena kita sebenarnya tidak menyimpan data dalam bit (pada HDD). Cort Ammon mencakup masalah dalam pengiriman data dengan sangat baik. RAM, cache, dan SSD menyimpan data sebagai bit, tetapi HDD berbeda karena sifat materi fisiknya dan upaya kami untuk mengemas lebih banyak data ke dalamnya. Sebagian besar data masih tersimpan di HDD, jadi saya akan fokus pada itu. Saya akan melampaui penjelasan yang akan Anda temukan dari sebagian besar sumber, tetapi akan mencoba mengutip sumber di mana saya bisa. Sumber-sumber ini harus digali dari kedalaman kuno internet karena itu - sebagian besar - benar-benar melupakan pengetahuan.
Pertama, hard drive menyimpan informasi dengan medan magnet pada permukaan piring drive. Drive head membaca ini dengan merasakan fluks dari perubahan di bidang itu - ini jauh lebih mudah untuk diukur daripada arah dan kekuatan sebenarnya dari medan magnet. tetapi jika bidangnya adalah 50 dari segmen yang sama berturut-turut, itu tidak dapat benar-benar menghitung bahwa ada 50 - ia membaca lonjakan fluks ketika membaca segmen pertama, maka tidak ada fluks untuk sementara waktu setelah itu, dan tidak dapat melacak waktu cukup akurat untuk memastikan bahwa bidang tidak berubah untuk 50 segmen.
Jadi, model dasar (terlalu disederhanakan) adalah untuk menyimpan sedikit sebagai pasangan medan magnet. Yang pertama akan selalu menjadi switch dari segmen sebelumnya, dan yang kedua akan menjadi flip untuk mewakili 1 atau tidak flip untuk mewakili 0. Jadi 0 adalah FN (flip-null) dan 1 adalah FF (flip-flip). Waktu drive cukup akurat untuk mengenali perbedaan antara satu lonjakan fluks dan dua lonjakan fluks dalam suatu segmen. Format ini disebut Frekuensi Modulasi. Jadi ini memberikan sinyal yang jelas, TETAPI itu berarti bahwa setiap bit memori memerlukan dua ruang pada drive - itu sangat tidak efisien. Jadi tidak ada hard drive yang memiliki bentuk pengkodean yang paling mendasar ini; itu menggunakan trik kompresi sederhana sebagai gantinya. Yang paling sederhana adalah Modified Frequency Modulation, yang mengubah pola sehingga magnetic flip tambahan hanya digunakan jika 0 didahului oleh 0 lainnya. Ini memungkinkan para insinyur menjejalkan data hampir dua kali lipat lebih banyak ke ruang yang sama, dan dengan demikian digunakan pada HDD pertama, dan merupakan format pada floppy disk. Setelah itu, sistem yang lebih maju yang disebut Run Length Limited dikembangkan dengan ide umum yang serupa, yang tidak akan saya bahas karena semakin rumit dan ada banyak implementasi.
Tapi kami tidak menggunakan sistem seperti itu hari ini. Sebagai gantinya, kami menggunakan sistem yang disebut Partial Response, Maximum Likelihood (PRML). PRML mengharuskan kepala untuk membaca panjang dan mengumpulkan sampel magnetik, kemudian membandingkannya dengan set referensi sampel yang disimpan untuk menentukan mana yang paling cocok. Ia melupakan seluruh konsep paku fluks, dan alih-alih menggunakan pencocokan pola (saya terlalu menyederhanakan, tapi penyederhanaan yang berlebihan sepadan), dan polanya sesuai dengan serangkaian bit. Menggunakan filter noise dan teknologi lainnya untuk menghilangkan potensi kesalahan. Cara terbaik untuk menganggapnya sebagai bentuk gelombang yang kompleks, dan HDD tahu bagaimana menerjemahkan setiap bentuk gelombang menjadi satu set bit. Dalam hal ini, data sebenarnya disimpan lebih banyak dalam format analog daripada yang digital,
Panduan terbaik untuk ini adalah di http://www.pcguide.com/ref/hdd/geom/data.htm (tekan tombol Next beberapa kali untuk membaca semua itu) dan ada beberapa sumber lain - kebanyakan dari orang-orang yang menciptakan repositori besar-besaran dari pengetahuan komputer yang tidak seorang pun memiliki alasan untuk mengetahuinya. Sumber tambahan yang layak (yang bagus tapi tidak 100% sempurna sejauh yang saya tahu) ada di http://www.tomshardware.com/reviews/hard-drive-magnetic-storage-hdd, 3005-6.html
TL; DR: Disk hard drive tidak menyimpan data dalam format apa pun seperti 1 dan 0; mereka malah menggunakan pemrosesan sinyal yang rumit untuk menjejalkan sinyal ke ruang sekecil mungkin, dan mendekodekannya saat membaca. Jadi, mereka benar-benar basis-agnostik.
Saya tidak akan terkejut dengan penyimpanan basis-4 yang dicoba pada SSD atau RAM di beberapa titik. Itu semua tergantung pada fisika dan kimia bahan. Para insinyur dan ilmuwan akan mendorong bahan-bahan itu sejauh yang mereka bisa, dan akan mengejar rute apa pun yang menghasilkan hasil terbaik.
sumber
Ya, memiliki lebih banyak status akan memungkinkan setiap "sel" penyimpanan atau setiap simbol pada saluran transmisi data untuk membawa lebih banyak informasi.
Tetapi tidak ada makan siang gratis, kita harus benar-benar dapat membedakan negara-negara tersebut. Ternyata mudah untuk membangun gerbang logika biner dan jauh lebih sulit untuk membangun gerbang yang membedakan, memproses dan membuat ulang lebih dari dua level logika.
Dan kemudian ada masalah sinyal yang dilemahkan. Pada sistem dua tingkat, Anda cukup mendesain ambang Anda sehingga berfungsi dengan atenutasi kasus terburuk, pada sistem empat negara di mana atenasi signifikan diharapkan Anda perlu menyesuaikan ambang Anda dengan pelemahan khusus sistem Anda, tidak hanya untuk yang terburuk redaman -case. Dalam prakteknya itu berarti Anda perlu menambahkan sistem pengukuran redaman ke sistem komunikasi Anda.
Semua yang mengatakan ada situasi di mana kompleksitas ekstra TIDAK masuk akal. Banyak SSD sekarang menggunakan lebih dari dua level per sel flash (dikenal sebagai MLC atau TLC), protokol komunikasi modern berkecepatan tinggi juga hampir selalu menggunakan pengkodean multi-level.
sumber
Anda mungkin tertarik untuk mengetahui bahwa Rusia mengembangkan chip yang ternary , bukan binary. Itu berarti bahwa setiap simbol bisa memiliki nilai-nilai
-1
,0
atau1
. Jadi setiap gerbang fisik bisa menyimpan nilai "tiga", bukannya "dua".Ketika Anda mulai curiga, mungkin ada cara yang lebih efisien untuk menerapkan sistem penomoran pangkalan. (Walaupun kemampuan untuk mengekspresikan hal ini lebih efisien tergantung pada kemampuan kita untuk secara fisik membuat material.) Ternyata konstanta
e
, basis log natural (~ 2.71828), memiliki ekonomi radix terbaik, diikuti oleh 3, kemudian 2, lalu 4.Radix ekonomi adalah berapa banyak angka yang dapat Anda wakili versus berapa banyak simbol yang perlu Anda ambil untuk melakukannya.
Sebagai contoh, matematika nomor tiga direpresentasikan
3
dalam basis 10, tetapi seperti11
pada basis 2 (biner). Basis 10 dapat mengekspresikan angka yang lebih besar dengan simbol lebih sedikit daripada biner, tetapi tabel simbol dari basis 10 adalah 5x lebih besar (0 ... 9) dari tabel simbol basis 2 (0, 1). Membandingkan kekuatan ekspresif dengan ukuran set simbol disebut "radix economy" (radix menjadi jumlah basis, misalnya, 2 dalam biner, atau "basis 2"). Pertanyaan alami berikut adalah, di mana saya ingin berada dalam hal pengorbanan ini? Berapa nomor yang harus saya adopsi sebagai radix? Bisakah saya mengoptimalkan tradeoff antara kekuatan ekspresif dan ukuran set simbol?Jika Anda melihat grafik dalam artikel ekonomi radix di wikipedia, Anda dapat membandingkan ekonomi berbagai pangkalan. Dalam contoh kami, basis 2 memiliki ekonomi radix 1,0615, sedangkan basis 10 memiliki ekonomi 1,5977. Semakin rendah angkanya semakin baik, sehingga basis 2 lebih efisien daripada basis 10.
Pertanyaan Anda tentang basis 4 memiliki efisiensi 1,0615, yang ukurannya sama dengan basis 2 (atau biner), jadi mengadopsinya di atas basis 2 hanya memberi Anda ukuran penyimpanan yang sama persis per angka, rata-rata.
Jika Anda bertanya-tanya, maka apakah ada angka ideal untuk diadopsi sebagai basis, bagan ini menunjukkan kepada Anda bahwa, itu bukan bilangan bulat, tetapi konstanta matematika
e
(~ 2,71828) yang merupakan yang terbaik, memiliki ekonomi 1,0. Ini berarti bahwa itu seefisien mungkin. Untuk setiap set angka, rata-rata, pangkalane
akan memberi Anda ukuran representasi terbaik, mengingat tabel simbolnya. Ini adalah "bang for your buck" terbaik.Jadi, sementara Anda berpikir pertanyaan Anda mungkin sederhana dan mendasar, itu sebenarnya agak rumit, dan masalah yang sangat berharga untuk dipertimbangkan ketika merancang komputer. Jika Anda dapat merancang komputer diskrit yang ideal, menggunakan basis 4 menawarkan kesepakatan yang sama - ruang yang sama untuk biaya - seperti biner (basis 2); menggunakan basis 3, atau terner, menawarkan kesepakatan yang lebih baik daripada biner (dan Rusia memang membangun komputer yang berfungsi dengan representasi basis 3 dalam transistor); tetapi idealnya, Anda akan menggunakan basis e. Saya tidak tahu apakah ada yang membangun komputer fisik yang berfungsi dengan basis e, tetapi secara matematis, itu akan menawarkan ruang yang lebih baik daripada biner dan ternary - pada kenyataannya, kesepakatan terbaik dari semua bilangan real.
sumber
Apakah Anda percaya saya bisa menyandikan jumlah total pengetahuan manusia dengan satu pertandingan?
Jika saya menyandikan sedikit dalam satu kecocokan simbol mungkin terlihat seperti ini:
Dengan cukup kecocokan aku bisa mengatakan apa saja. Tapi saya bisa mengatakan dua kali lebih banyak dengan kecocokan yang sama jika saya menambahkan dua simbol lagi. Yang mungkin terlihat seperti ini:
Dua kali lebih banyak info dengan pertandingan yang sama! Mengapa tidak? Nah kenapa berhenti? Putar setiap simbol 45 derajat dan kami gandakan lagi. 30, 15, terus dan terus. Segera saya memiliki simbol yang cukup sehingga saya bisa mengatakan apa saja dengan hanya satu pertandingan! Setelah saya melakukan itu kita punya masalah. Apa yang dikatakan pertandingan ini?
Bagaimana Anda bisa yakin simbol mana yang sekarang? Berapa banyak waktu yang Anda butuhkan untuk memastikan? Itu intinya. Semakin banyak simbol yang saya tambahkan, semakin banyak upaya yang Anda lakukan untuk membedakannya.
Jika kita berbicara per pertandingan maka pasti. Tapi, bahkan jika itu tidak memperlambat kecepatan baca pertandingan kami, sekarang kami mengambil lebih banyak ruang meja dapur saya. Itu selalu sesuatu.
sumber
Jika bit memiliki 4 status alih-alih dua dalam simbol (bit), maka ya Anda akan memiliki dua kali jumlah memori. Ini mungkin atau mungkin tidak mengambil ruang dua kali lebih banyak, tergantung pada teknologi yang digunakan.
Ada contoh kehidupan nyata yang Anda miliki di depan mata Anda setiap hari: Ethernet (yang bukan memori, tetapi serupa sejauh mentransmisikan data) yang Anda miliki, antara lain, "ethernet cepat" biasa di 100 MBit 100BASE -TX, dan Anda memiliki ethernet 1GbE.
Jelas, 1GbE membutuhkan frekuensi 10 kali lebih tinggi dari 100 MBit (karena 100 MBit membutuhkan frekuensi 10 kali lebih tinggi dari 10 MBit), itu sebabnya Anda memerlukan kabel yang lebih mahal juga. Jelas sekali.
Ups ... itu tidak benar sama sekali .
100 MBit ethernet mentransmisikan lebih dari dua pasangan kabel pada 100 MHz sedangkan GbE mentransmisikan pada 125 MHz melalui 4 pasangan kabel.
Tunggu, jadi GbE sebenarnya hanya 2 1/2 kali lebih cepat dari 100 mbit ethernet? Saya hanya mendapatkan 250 MBit / s?
Tidak, itu juga menggunakan pengkodean 5-PAM, yang dapat menyandikan 2,32 bit per pulsa per pasangan kabel, yang mana 2 bit digunakan sebagai informasi aktual, dan sisanya membuat sinyal lebih tahan terhadap noise. Berkat bit-bit fraksional itu, 1000BASE-T juga dapat menghapus kode 8B10B.
Jadi, Anda telah menggandakan jumlah kabel, dan frekuensi sedikit meningkat, tetapi Anda mendapatkan 10 kali lebih banyak throughput!
Sekarang jika Anda berpikir ini adalah sihir belaka, lihat bagaimana televisi kabel digital bekerja , dan jika Anda masih tidak yakin, lihatlah ADSL, yang menggunakan 32768-QAM untuk menyandikan 15 bit dalam satu simbol.
Kawat tembaga tua yang sama, pita frekuensi yang sama, barang 15 kali lebih banyak melalui.
EDIT:
Contoh kehidupan nyata yang sangat jelas yang saya benar-benar lupa (karena terlalu jelas, tampaknya!) Yang Anda miliki di depan mata Anda setiap hari adalah: USB pendrives.
Mereka yang umumnya menggunakan memori flash MLC . Apa itu? Ini adalah jenis sel memori yang menyimpan satu dari empat level pengisian daya yang berbeda. Itu unit terkecil yang dapat Anda akses pada tingkat perangkat keras. Jadi Anda bisa mengatakan "bit" Anda memang memiliki 4 negara bagian (mereka tidak , Anda benar-benar hanya mengeluarkan dua bit, bukan satu, dan Anda hanya bisa membaca sektor lengkap dari perangkat ... tetapi Anda bisa melihatnya) seperti itu).
Jumlah sel yang sama, tetapi gandakan memori. Lebih murah, lebih kecil, agak kurang dapat diandalkan, tapi ... pertama dan terutama, lebih murah .
sumber
Memiliki 4 simbol per digit alih-alih dua berarti Anda dapat menyimpan informasi dua kali lebih banyak dalam satu digit. Namun, saat Anda menambah jumlah digit, Anda dapat menyimpan informasi secara eksponensial:
Setiap n digit dalam basis 2 dapat mengkodekan status 2 ^ n sedangkan basis 4 dapat mengkodekan 4 ^ n.
sumber
(4^n) / (2^n) = 2^n
yang berarti Anda dapat mewakili secara eksponensial (2^n
kali) lebih banyak negara tetapi itu hanya mewakili dua kali (log2(4^n) / log2(2^n) = 2n / n = 2
) lebih banyak penyimpanan. Ingat itustorage capacity in bits = log2(number of states)