Предисловие
Доброго времени суток StopGame! Одним тёплым, весенним вечером
мне в голову пришла отчасти бредовая мысль: «А можно ли использовать процессор
в качестве памяти для компьютера?» и я решил более подробно изучить этот
вопрос. Сегодня мы вместе с вами разберёмся, возможно ли это хотя бы
теоретически и что потребуется для реализации. Буду стараться объяснять
подробно даже для тех, кто имеет малое представление о работе компьютера, но
порой всё равно будет тяжеловато понять написанный текст.
P.S:
Информации по данной теме в интернете практически нет, поэтому будут озвучены
лишь мои бредовые мысли. =)
P.S.S: Для сокращения написания я иногда буду писать
аббревиатуру «CPU» вместо
слова «процессор».
Какая память есть в компьютере?
Сначала взгляните на таблицу чуть
ниже, в ней представлено большинство видов памяти, которые используются в ПК.
После мы остановимся на главных из представленных и более подробно о них
поговорим.
P.S: О внешней
памяти мы говорить не будем, так как она не является обязательной для работы
компьютера.
В современных компьютерах имеется
два основных типа памяти: ОЗУ и ПЗУ.
-ОЗУ (оперативное запоминающее
устройство) — предназначено для временного хранения информации, так как в такой
памяти информация теряется при отключении питания. Данная память нужна для
обработки той информации, которая нужна непосредственно сейчас, то есть может
потребоваться на небольшой промежуток времени.
В ПК ОЗУ представлена в виде
микросхем «оперативной памяти» и сейчас именуется по поколениям, таким как: DDR1, DDR2, DDR3, DDR4. (Скоро
должна «появиться на прилавках» и ОЗУ пятого поколения: DDR5).
-ПЗУ же наоборот служит для
долговременного хранения информации, так как данные не теряются после
отключения питания от электросети. ПЗУ также обладает огромным объёмом по
сравнению с ОЗУ. Например на момент апреля 2021 года в «Steam» у пользователей наиболее популярный объём памяти
лежит в связке 16 гигабайт ОЗУ и более 1 терабайта (1024 гигабайта) ПЗУ.
В ПК ПЗУ представлена в виде HDD и SSD
накопителей, более известных как «Жёсткие диски» или «винчестеры».
Почему же нельзя использовать ПЗУ
также обработки информации вместо ОЗУ?
Ответ достаточно прост: ПЗУ чрезвычайно
медленная по сравнению с ОЗУ, а значит она будет являться «бутылочным горлышком»
(тормозить работу остальных компонентов) при работе ПК. Но это даже не самая
главная проблема ПЗУ.
Самая главная проблема состоит в
том, что ПЗУ вообще НЕ МОЖЕТ передавать данные к процессору непосредственно.
Чтобы передать данные с вашего жёсткого диска (ПЗУ), они должны сначала
скопироваться в ячейки оперативной памяти (ОЗУ), из которой процессор уже
сможет прочитать данные.
НЕ СТОИТ думать, что ОЗУ — это
самая быстрая память в компьютере. В следующем разделе мы с вами перейдём к по
настоящему быстрой памяти ПК.
Какая память есть в процессорах уже сейчас?
Давайте начнём с того, что практически во всех существующих
на данный момент процессорах уже есть память, но она обладает рядом
ограничений, одно их таких например маленький объём (не более 512 мегабайт даже
для очень мощных, серверных процессоров).
Такая память называется «КЭШ памятью» и используется для
сверхбыстрой обработки информации. (Но её скорость всё ещё не максимальная
среди всех запоминающих устройств в компьютере).
КЭШ память делится на несколько уровней: L1, L2, L3, L4 (от самой
быстрой «L1», до
самой медленной «L4»). Все
уровни (кроме L1)
располагаются непосредственно в кристалле (микросхеме) процессора и процессор
имеет к ним непосредственный доступ.
Также в процессоре существует ещё и «регистровая память»,
которая обладает САМЫМ БЫСТРЫМ ДОСТУПОМ К ЧТЕНИЮ И ЗАПИСИ ИНФОРМАЦИИ в
компьютере, но имеет совсем маленький объём и для долговременного хранения
информации не подходит, так как регистры в процессоре работают по следующему
алгоритму:
1. Получения
(чтения) информации извне. (Например из оперативной памяти, также называемой
ОЗУ).
2. Произведения
вычислений над полученными данными.
3. Запись
данных обратно в долговременную (ПЗУ), или оперативную память (ОЗУ).
4. Очистка
регистров, и циклический запуск алгоритма с пункта № 1.
Ниже представлена таблица скоростей памяти от самой быстрой
(сверху), к самой медленной (внизу):
И всё же мы так и не получили ответ на основной вопрос этого
блога: «Как же всё-таки можно использовать CPU как память и можно ли вообще?». К этой теме мы сейчас
перейдём, но для лучшего понимания информации нужно, чтобы вы поняли с помощью
чего работают все современные процессоры.
Главный элемент цифрового века — транзистор.
Название этой главы блога действительно очень близко к
правде, ведь если бы в 1950-х люди бы не изобрели транзисторы, мы бы не видел
мир таким, какой он есть сейчас. Не появились бы смартфоны, компьютеры,
телевизоры и практически вся остальная электроника.
Так как же работает этот загадочный элемент и почему он так
нужен в процессорах?
Объяснить работу транзистора можно очень просто — это
управляемый выключатель.
Представьте, что вам нужно включить свет в вашей комнате, для
этого вы нажимаете на выключатель, и он переходит из закрытого состояния в
открытое. Или представьте себе, что вы проснулись утром и вам нужно умыться,
для этого вы тоже открываете кран, чтобы вода потекла и после умывания
закрываете, чтобы вода прекратила течение. Транзистор работает точно также, у
него имеется три контакта, если упрощенно их можно назвать так: вход, выход,
управляющий контакт.
Когда на управляющем контакте есть напряжение, транзистор
считается открытым и электрический ток между входом и выходом течёт, а когда на
управляющий контакт не подаётся напряжение, транзистор считается закрытым и ток
между входом и выходом не течёт.
Вы что-нибудь слышали про «двоичную логику»? Ну это там, где
числа представляются в виде последовательности нулей и единиц, например:
0011101. В школах вам возможно часто говорили, что по принципу двоичного
кодирования работает компьютер и эти слова близки к правде. Как раз в принципе
двоичной логики и есть главная прелесть транзисторов: когда транзистор открыт,
то есть ток между входом и выходом течёт это можно представить, как 1, а когда
транзистор закрыт можно представить это как 0.
Как вы могли понять, на уровне «железа» никаких 0 и 1 нет,
они нужны для более понятного восприятия информации и в процессорах 0 и 1
представлены состоянием транзисторов: открыт (1)/закрыт (0). Вообще двоичная
логика применима ко всему, что может иметь два состояния: открыто/закрыто,
включено/выключено, клюёт/не клюёт и так далее.
Почему же транзисторы с двоичной логикой так важны в
производстве процессоров?
Потому что это очень удобно, так как можно произвести память
с такой же логикой и совмещать работу памяти и процессора будет намного проще,
чем когда память работает по другим принципам.
В современных процессорах количество транзисторов измеряется
миллиардами, а их размер нанометрами. Например сейчас новейшие процессоры
изготавливаются по архитектуре 7нм, что говорит о том, что один транзистор
имеет размер в 7 нанометров. На самом деле это невероятно маленький размер,
поэтому и удаётся поместить много миллиардов транзисторов в кристалл CPU, размером в несколько сантиметров.
И тут мы плавно переходим к тому, «а возможно ли всё-таки
использовать процессор как память?» Но перед этим буквально пару слов о том,
как работает память.
Память работает на самом деле по очень похожему принципу,
только вместо транзисторов там используются триггеры (на самом деле не только
триггеры, но поговорим мы сегодня только о них).
Триггер в памяти ПК — это можно сказать малюсенькая
батарейка, которая тоже имеет два состояния: есть заряд, нет заряда (заряжена/разряжена).
А это же тоже двоичная логика есть заряд (1)/нет заряда (0). Из множества таких
триггеров составляются микросхемы памяти, которые хранят информацию по битам.
Бит — это минимальная единица сохранения информации в ПК. Бит может иметь два
состояния 0 или 1. В один триггер можно поместить только один бит.
Так можно ли всё-таки использовать процессор как память?
Прочитав блог, вы думаю уже и сами поняли ответ на этот
вопрос.
Теоретически конечно это сделать возможно, но почему тогда
производители до сих пор выносят память, как отдельные устройства? Давайте
разбираться.
P.S: Практически же создание такого процессора скорее всего НЕВОЗМОЖНО и ниже описываются скорее мои МЫСЛИ И ДОГАДКИ, которые ЧРЕЗВЫЧАЙНО ФАНТАСТИЧНЫ.
Давайте далее называть процессор, который будет использоваться в качестве памяти: «память-процессор» для более удобного и короткого написания блога.
Одна из главных причин отсутствия даже прототипов таких память-процессоров состоит в том, что потребуется невероятно кардинальное изменение архитектуры производства таких процессоров, и даже если бы прототип такого память-процессора был создан, изменения в схеме были бы настолько огромными, что такое устройство уже не могло бы называться процессором.
Также всё дело в том, что процессор следит за состоянием битов (0
или 1) памяти, из которых получает информацию и как бы то странно не звучало,
но для использования процессора как памяти нам понадобится другой «процессор».
Более того, следить за состоянием транзисторов сложнее, чем
за состоянием триггеров памяти, поэтому для использования память-процессора будет необходим другой «процессор». Один процессор будет использоваться как
хранилище из транзисторов, а другой будет отслеживать состояние каждого
транзистора (открыт/закрыт, 0/1), то есть будет использовать транзисторы, как
триггеры.
Ещё немаловажный момент составляет то, что этот так называемый вспомогательный процессор, для отслеживания состояний память-процессора будет просто НЕВЕРОЯТНО СЛОЖЕН в производстве и даже попытка производства его лежит где-то в области фантастики. Этот вспомогательный процессор тоже мало что общего мог бы иметь с термином процессор, каким мы его понимаем сейчас, если бы был создан. Этот вспомогательный процессор по сути мог бы представлять из себя устройство наблюдения за течением тока в отдельных участках цепи, но опять же, создание такого устройства, которое могло бы следить за состоянием НЕСКОЛЬКИХ МИЛЛИАРДОВ ТРАНЗИСТОРОВ — ПРАКТИЧЕСКИ НЕВОЗМОЖНО (на данный момент).
Из-за кучи конструктивных особенностей да и из-за
соображений банальной логики производить так процессоры никто не будет. Это
также и экономически нецелесообразно.
Хотя если бы все транзисторы в процессоре например: «Intel I7-6950X»
использовались как триггеры, мы бы могли иметь 324 гигабайта памяти, что
безусловно намного больше, чем в большинстве компьютеров сейчас (если говорить
об ОЗУ). Посчитать это довольно просто: в данной модели процессора 3.2
миллиарда транзисторов, а значит 3.2 миллиарда потенциальных триггеров или
битов. Переведём их в гигабайты, путём деления: 3200000000 / 8 / 1024 /1024 = 324,4393687707641
гигабайта памяти.
Ещё одной большой проблемой было бы то, что такую память
можно использовать исключительно как ОЗУ, так как при отключении питания все
транзисторы закроются, то есть примут значение 0, что естественно не подходит
для долговременного хранения информации.
Большим плюсом было бы то, что потенциально скорость работы
такой памяти была бы в разы выше, чем всей ныне существующей.
Самой главной проблемой создания такого память-процессора —
его производство, поскольку скорее всего придётся кардинально менять внутреннее
строение и соединение транзисторов друг с другом, да и создание сопроцессора,
который бы следил за состоянием память-процессора будет ещё сложнее.
В теории это скорее всего память-процессор возможно было бы создать, но производителям ГОРАЗДО ПРОЩЕ сделать ставку на увеличении объёма кэш памяти и регистров, нежели создавать совершенно новое устройство, для которого ещё и потребуется создание сложнейшей логики работы.
Конечно не обязательно обрабатывать все транзисторы память-процессора
другим процессором, для этого можно создать другое устройство, но это лишь
мечты, которые скорее всего никогда своего воплощения не найдут.
Заключение
Я действительно старался подать материал максимально
упрощённо и многие моменты упустил для лучшего понимания, но однако местами
получилось не особо понятно, за что прошу меня простить.
Буду рад вашему плюсику, ещё увидимся на StopGame.ru.