Основная память

Основная память

Xalion

В компьютерной памяти хранятся программы и данные. Из неё процессор считывает данные и записывает в неё другие.

Хранение этих данных в памяти создано на основе отличий между состояниями физических величин, например – тока.

Чем больше таких состояний, тем незначительнее отличия между ними, из-за этого память становится не надёжной.

В компьютерах используется двоичная система счисления, которая отражает состояние в ячейке: 1 – ток есть, 0 – тока нет.

Самая маленькая единица хранения информации в памяти – бит.

Бит – двоичный разряд, содержит 0 или 1.

Биты складываются в ячейки, из которых состоит компьютерная память. Каждая ячейка имеет свой уникальный адрес и содержит порцию данных.

Память состоит из групп ячеек. Данные в этих группах располагаются комбинациями 2 в степени k (2^k).

Адреса ячеек записываются в двоичном коде. m – длина двоичного кода. Максимальное количество адресуемых ячеек 2 в степени m (2^m).


3 вида организации 96-разрядной памяти

Современные компьютеры используют память с 8ми-разрядными ячейками – байтами. Несколько байт складывается в машинное слово.

Машинные слова позволяют процессору или языкам программирования работать со своим содержимым как с единым целым. Они определяют разрядность данных, команд и регистров.

В 32-битных архитектурах машинное слово равно 4 байтам (32/8). Содержат 32-разрядные регистры и команды для манипуляции с 32-разрядными словами.
В 64-битных архитектурах машинное слово равно 8 байтам (64/8) . Содержат 64-разрядные регистры и команды для манипуляций с 64-разрядными словами.


Байты в словах могут нумероваться двумя способами: справа налево и слева на право.

Машины, в которых байты в слове нумеруются слева направо (--->) называются big endian, а справа налево (<---) little endian.

Эти названия взяты из «Путешествий Гулливера». Разногласия по поводу того, как нужно разбивать вареные яйца привели к войне.

Нумерация памяти


Обыкновенные компьютеры, лэптопы, планшеты используют little endian, потому что при увеличении размера операнда, данные никуда не пропадут и не изменятся. Пример: 3210 ---> 3210'0000

Мейнфреймы используют big endian, для удобства сравнивания большого количества строк данных.

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

Пример: 00000110 – цифра 6 в big endian -----> 00000011 – 3 в little endian.


Нумерация слов в little и big edian

Простого решения этой проблемы не существует. Есть неэффективный способ – после каждой единицы данных помещать заголовок, который указывает какой тип данных следует за ним. Для обычных пользователей это не заметно, потому что в ОС встроены инверторы.


Следующая статья о том, как компьютер исправляет внутренние ошибки в памяти.

Report Page