Массивы RAM можно комбинировать. Например, объединить два массива RAM «8 × 1».
В данном случае входы «Адрес» и «Запись» двух массивов RAM «8 × 1» соединены, поэтому в результате получается массив RAM «8 × 2».
Этот массив RAM хранит восемь значений, размер каждого из которых составляет два бита.
Кроме того, два массива RAM «8 × 1» можно объединить как отдельные защелки, используя селектор «2 на 1» и дешифратор «1 на 2».
Сигнал «Выборка», который подается как на дешифратор, так и на селектор, по сути, выбирает один из двух массивов RAM «8 × 1». На самом деле он является четвертой адресной линией. Таким образом, мы имеем дело с массивом RAM «16 × 1».
Этот массив RAM хранит 16 значений, размер каждого из которых составляет один бит. Количество значений, хранящихся в массиве RAM, напрямую зависит от количества входов «Адрес». В отсутствие таких входов (как в случае с однобитной и 8-битной защелками) может быть сохранено только одно значение. При наличии одного входа «Адрес» можно сохранить два значения. Два входа «Адрес» позволяют хранить четыре значения, три входа «Адрес» — восемь, четыре входа — шестнадцать. Такое отношение можно выразить с помощью уравнения:
Количество значений в массиве RAM = 2 количество входов «Адрес».
Я показал, как можно сконструировать небольшие массивы RAM, поэтому вам нетрудно будет представить гораздо более крупные. Например, такой.
Этот массив RAM хранит в общей сложности 8196 бит информации, которые организованы в виде 1024 значений по восемь бит каждое. Этот массив имеет десять входов «Адрес», так как 210 равно 1024, восемь входов и восемь выходов для данных.
Другими словами, этот массив RAM хранит 1024 байт. Он похож на почтовое отделение с 1024 абонентскими ящиками. В каждом из них хранится значение размером один байт (которое, правда, может представлять просто спам).
Одна тысяча двадцать четыре байта — килобайт, и здесь возникает большая путаница. Чаще всего приставка «кило-» (от греческого «тысяча») используется в метрической системе. Например, килограмм — это 1000 граммов, километр — 1000 метров. Однако килобайт составляет 1024 байт, а не 1000 байт.
Проблема в том, что метрическая система основана на степенях 10, а двоичные числа — на степенях 2, и этим системам никогда не сойтись. Степенями 10 являются 10, 100, 1000, 10 000, 100 000 и т. д., а степенями 2 — 2, 4, 8, 16, 32, 64 и т. д. Не существует степени 10, которая была бы равна некоторой степени 2.
Однако время от времени эти две системы сближаются. Да, значение 1000 достаточно близко к значению 1024. Выражаясь математическим языком, 2 в степени 10 «приблизительно равно» 10 в степени 3:
210 ≈ 103.
В этом соотношении нет ничего волшебного. Оно всего лишь подразумевает, что конкретная степень 2 приблизительно равна конкретной степени 10. Это совпадение позволяет людям использовать термин «килобайт памяти», подразумевая 1024 байта.
Килобайт сокращенно обозначается Кбайт (международное обозначение — Kb). Описанный выше массив RAM может хранить 1024 байт, или один килобайт (1 Кбайт).
Мы не подразумеваем, что в массиве RAM емкостью один килобайт хранится 1000 байт. В нем хранится больше тысячи байт, а именно 1024. Чтобы произвести впечатление знающего человека, следует говорить «один килобайт».
Один килобайт памяти имеет восемь входов и восемь выходов для данных, а также десять входов «Адрес». Поскольку доступ к байтам осуществляется с помощью десяти входов «Адрес», массив RAM хранит 210 байт. Всякий раз, когда добавляем еще один вход «Адрес», мы удваиваем объем памяти. Каждая строка следующей последовательности представляет собой удвоение памяти:
1 килобайт = 1024 байт = 210 байт ≈ 103 байт;
2 килобайта = 2048 байт = 211 байт;
4 килобайта = 4096 байт = 212 байт;
8 килобайт = 8192 байт = 213 байт;
16 килобайт = 16 384 байт = 214 байт;
32 килобайта = 32 768 байт = 215 байт;
64 килобайта = 65 536 байт = 216 байт;
128 килобайт = 131 072 байт = 217 байт;
256 килобайт = 262 144 байт = 218 байт;
512 килобайт = 524 288 байт = 219 байт;
1024 килобайт = 1 048 576 байт = 220 байт ≈ 106 байт.
Обратите внимание: указанные слева количества килобайтов — степени 2.
Ту же логику, которая позволяет называть 1024 байт килобайтом, мы можем использовать для того, чтобы назвать 1024 килобайт мегабайтом (приставка «мега-» — от греческого «великий»). Мегабайт сокращенно обозначается Мбайт (Mbyte, реже MB). Удвоение памяти продолжается:
1 мегабайт = 1 048 576 байт = 220 байт ≈ 106 байт;
2 мегабайта = 2 097 152 байт = 221 байт;
4 мегабайта = 4 194 304 байт = 222 байт;
8 мегабайт = 8 388 608 байт = 223 байт;
16 мегабайт = 16 777 216 байт = 224 байт;
32 мегабайта = 33 554 432 байт = 225 байт;
64 мегабайта = 67 108 864 байт = 226 байт;
128 мегабайт = 134 217 728 байт = 227 байт;
256 мегабайт = 268 435 456 байт = 228 байт;
512 мегабайт = 536 870 912 байт = 229 байт;
1024 мегабайт = 1 073 741 824 байт = 230 байт ≈ 109 байт.
Одна тысяча двадцать четыре мегабайта составляют гигабайт (приставка «гига-» — от греческого «гигантский»), который обозначается буквами Гб (GB).
Один терабайт (от греческого «чудовищный») равен 240 байт (приблизительно 1012), или 1 099 511 627 776 байт. Терабайт обозначается буквами Тб (TB).
Килобайт равен примерно тысяче байтов, мегабайт — миллиону, гигабайт — миллиарду, терабайт — триллиону байтов.
Петабайт равен 250, или 1 125 899 906 842 624 байт (приблизительно 1015, или квадриллион), а экзабайт равен 260, или 1 152 921 504 606 846 976 байт (приблизительно 1018, или квинтиллион).
Примите к сведению, что домашние компьютеры, купленные в период написания этой книги (1999 год), обычно имели 32 или 64 (иногда 128) мегабайта памяти с произвольным доступом
[19]. (Заметьте, я говорю о памяти RAM, а не о емкости жестких дисков.) Это 33 554 432 байт, или 67 108 864 байт, или 134 217 728 байт.