Любые данные в компе — это нули и единички. Текст, который вы читаете прямо на данный момент, передался с нашего сервера прямо на ваш комп и записался в памяти — он представляет собой последовательность нулей и единичек. Прямо на данный момент вы смотрите на ваш монитор, который состоит из пикселей и показывает наш веб-сайт. Изображение — это тоже нули и единицы. Видео — это нули и единицы. Музыка — нули и единицы. Хоть какой контент, доступный на вашем компе можно представить в виде нулей и единиц. Но как?

Оперативка — это сложное устройство, и знать его работу полезно любому

Стоит начать с того, что комп соображает лишь двоичную систему счисления. В жизни мы используем десятичную, потому что у нас 10 пальцев и нам она просто удобнее, но у компа нет 10 пальцев — он может работать лишь с логическими устройствами, которые работают лишь в 2-ух состояниях — включен либо выключен, есть подача тока либо нет подачи тока. Если логическое устройство интенсивно, означает подача тока есть и бит равен единице, если подачи тока нет, означает бит равен нулю. Бит — это самая малая единица измерения. 1 бит может иметь всего два состояния 1 и 0. 1 б — это 8 бит. Таковым образом, если перебрать все вероятные композиции нулей и единиц, получим, что в 1 б может храниться 256 композиций битов либо 2 в степени 8. К примеру, «0000001», «0000010» либо «10110010» — всякую буковку британского алфавита можно представить в виде 8 битов (1 б).

Двоичный код смотрится конкретно так!

Благодаря разным кодировкам мы можем представить всякую информацию в двоичном виде. То же касается и наших программ, написанных на разных языках программирования. Чтоб запустить какую-либо программку, её нужно скомпилировать в двоичный код. Таковым образом, в двоичном виде можно представлять как данные, так и аннотации (код) для работы с этими данными. Есть к тому же интерпретируемые языки (JavaScript, Python), в этом случае интерпретатор по ходу выполнения программки анализирует код и составляет его в язык, понятный нашему компу, другими словами в последовательность нулей и единиц, и в этом случае нет необходимости составлять программку всякий раз при желании запустить её.

Как работает микропроцессор?

Недозволено гласить о памяти, не сказав пару слов о микропроцессоре. Микропроцессор и оперативной память достаточно похожи, потому что в обоих вариантах употребляются логические устройства, которые могут принимать только два состояния. Но микропроцессор делает задачки, связанные с вычислениями. Для этого у него имеется устройство управления — конкретно на него поступают наши аннотации, арифметико-логическое устройство — оно отвечает за все арифметические операции (сложение, вычитание и так дальше) и регистры.

Потому что аннотации, поступающие на микропроцессор, работают с данными из памяти, эти данные необходимо кое-где хранить. Брать их повсевременно из оперативки — очень длительно, потому в микропроцессоре имеется своя память, представленная в виде нескольких регистров — она является самой резвой памятью в компе.

Что такое регистр? Регистр в микропроцессоре представлен в виде триггера, который может хранить 1 бит инфы. Триггер — это один из огромного количества логических частей в микрочипах. Благодаря собственной логике он способен хранить информацию. Вот так смотрится D-триггер:

Это D-триггер и он способен хранить информацию. Каждое простейшее логическое устройство, включая D-триггер, состоит из логических операций. На фото выше можно увидеть символ «&» — это логическое И

Таблица истинности для логического «И»

Верхний переключатель «D» в D-триггере меняет значение бита, а нижний «C» включает либо отключает его хранение. Для вас наверное любопытно, как устроен этот «D-триггер». Подробнее работу триггеров вы сможете изучить по видеоролику ниже:

Кроме D-триггера, есть также RS-триггер, JK-триггер и остальные. Данной теме посвящена не одна книжка, сможете изучить логические устройства микрочипов без помощи других. Было бы хорошо углубиться к тому же в тему квантовых микропроцессоров, поэтому что разумеется, что будущее конкретно за ними.

Из чего же состоит оперативка?

Сейчас вернемся к нашей памяти, она представляет собой огромную группу регистров, которые хранят данные. Существует SRAM (статическая память) и DRAM (динамическая память). В статической памяти регистры представлены в виде триггеров, а в динамический в виде конденсаторов, которые с течением времени могут терять заряд. Сейчас в ОЗУ употребляется конкретно DRAM, где любая ячейка — это транзистор и конденсатор, который при отсутствии питания теряет все данные. Конкретно потому, когда мы отключаем комп, оперативка очищается. Все драйвера и остальные принципиальные программки комп в выключенном состоянии хранит на SSD, а уже при включении он вносит нужные данные в оперативку.

Ячейка динамической оперативки, как уже было сказано выше, состоит из конденсатора и транзистора, хранит она 1 бит инфы. Поточнее, саму информацию хранит конденсатор, а за переключения состояния отвечает транзистор. Конденсатор мы можем представить в виде маленького ведерка, который заполняется электронами при подаче тока. Подробнее работу динамической оперативки мы разглядели еще 7 годов назад. С того времени не много что поменялось в принципах её работы. Если конденсатор заполнен электронами, его состояние равно единице, другими словами на выходе имеем 1 бит инфы. Если же нет, то нулю.

Как комп запоминает данные в ОЗУ?

Последовательность битов либо 1 б «01000001», записанный в ОЗУ, может означать что угодно — это быть может число «65», буковка «А» либо цвет рисунки. Чтоб операционная система могла осознавать, что означают эти биты, были выдуманы разные шифровки для различных типов данных: MP3, WAV, MPEG4, ASCII, Unicode, BMP, Jpeg. К примеру, давайте попытаемся записать кириллическую буковку «р» в нашу память. Для этого поначалу нужно перевести её в формат Unicode-символа (шестнадцатеричное число). «р» в Unicode-таблице это «0440». Дальше мы должны избрать, в которой шифровке будем сохранять число, пусть это будет UTF-16. Тогда в двоичной системе Unicode-символ воспримет вид «00000100 01000000». И уже это значение мы можем записывать в ОЗУ. Оно состоит из 2-ух б. А вот если б мы взяли английскую «s», в двоичном виде она бы смотрелась вот так «01110011».

Дело в том, что британский алфавит занимает только 1 б, потому что в UTF-кодировке он умещается в спектр чисел от 0 до 255. В 256 композиций тихо вмещаются числа от 0 до 9 и британский алфавит, а вот другие знаки уже нет, потому, к примеру, для российских знаков необходимо 2 б, а для японских либо китайских знаков нам пригодится уже 3 и даже 4 б.

Источник