Студопедия — Модель оперативной памяти с точки зрения программиста
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Модель оперативной памяти с точки зрения программиста






Глава 4. Модели оперативной памяти

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

Оперативная память с точки зрения программиста это некоторое хранилище, состоящее из множества одинаковых ячеек, в каждой из которых может располагаться определенное количество информации.

Машинные команды большинства архитектур (команды ассемблера) оперируют, в основном, такими единицами информации:

один разряд (бит) - мельчайшая единица информации;

байт – 8 разрядов;

полуслово – 2 байта;

слово – 4 байта;

двойное слово – 8 байт;

четверное слово – 16 байт.

Примечание. В самых современных компьютерах существуют 256- и 512- разрядные (32 и 64 байта, соответственно) единицы информации.

При проектировании оперативной памяти компьютера необходимо решить ряд проблем:

какой объем оперативной памяти необходим (количество ячеек);

какого размера должна быть ячейка (т.е., сколько разрядов информации можно в ней хранить);

как различать ячейки;

в каком порядке записывать информацию в ячейку, а затем считывать;

в каком порядке записывать информацию, состоящую из большой последовательности разрядов в ячейки, а затем считывать ее;

как быстро должна работать оперативная память;

какие операции оперативная память должна выполнять;

как долго должна сохранять информацию при отключении питания;

какая стоимость.

Каким должно быть количество объектов в хранилище?

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

Для универсальных компьютеров хотелось бы иметь возможность хранить в оперативной памяти очень большое число объектов (блоков). Реально объем хранилища всегда будет ограничен, пусть даже и очень большой величиной.

В современных универсальных персональных компьютерах объем оперативной памяти составляет 4, 8, 16 и более миллиардов ячеек. В серверах необходимы объемы оперативной памяти, исчисляемые десятками и сотнями миллиардов ячеек. В суперкомпьютерах необходима оперативная память в 1015 и более ячеек.

В мобильных специализированных компьютерах (смартфоны, планшеты и т.п. устройства) объемы оперативной памяти составляют единицы миллиардов ячеек.

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

Общая тенденция такова, что объемы оперативной памяти в компьютерах постоянно увеличиваются.

 

 

Как различать ячейки и сколько их необходимо?

Каждый блок в хранилище располагается в определенном месте (в ячейке).

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

Однако, то, что удобно для человека, не всегда является лучшим вариантом для аппаратной реализации.

С точки зрения аппаратуры у символьных имен имеется ряд недостатков:

- разное количество символов в каждом имени. Если же ввести ограничения и стабилизировать длину имени, то:

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

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

- аппаратуре трудно работать напрямую с символьными именами. Ведь вся вычислительная техника основана на работе с двоичными цифрами.

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

Требование о большом размере хранилища сохраняется. Задача состоит в том, каким числом двоичных разрядов ограничиться для адресации ячеек.

При 16-разрядных адресах можно различать 64К ячеек (где К=1024=210).

При 32-разрядных адресах можно различать уже свыше 4 миллиардов (232) ячеек.

При 64-разрядных адресах можно различать уже свыше 264 ячеек.

В структурах ядер процессоров для хранения и обработки адресов используются регистры общего назначения (РОН). Если эти регистры 32-разрядные, то в компьютере ограничивается количество адресов ячеек оперативной памяти - не более 232.

Если РОН 64-разрядные, то в компьютере ограничивается количество адресов ячеек оперативной памяти - не более 264. Реально достаточно трудно даже называть величину 264. Это примерно 16*1018. Пока трудно представить себе как такой объем оперативной памяти может быть физически реализован.

Однако, проблема количества адресов, таким образом решена и решена надолго. Насколько надолго, ответить трудно. Можно вспомнить, что в 80-х годах прошлого века не помышляли о размерах оперативной памяти больше 4 миллиардов (232) ячеек. А реально в существовавших тогда суперкомпьютерах объем оперативной памяти составлял десятки миллионов ячеек. Однако уже к концу 20-го века, то есть примерно через 30 лет после введения ограничения в 32 разряда, возникла необходимость работать с оперативными памятями размерами большими, чем 4 миллиарда ячеек.

Можно надеяться, что количество адресов 16*1018 обеспечит нормальное развитие вычислительной техники на долгие годы.

 

Каким должен быть размер одной ячейки?

Программисты работают с данными самых различных размеров, а именно:

- с разрядами;

- с байтами (8 разрядов);

- с полусловами (16 разрядов);

- со словами (32 разрядами);

- с двойными словами (64 разрядами);

– с учетверенными словами (128 разрядов) и т.д.

Для программиста было бы удобно хранить в любой ячейке данные любого размера. Тогда выполнялись бы соответствие – адрес – данные. Это означает, что размер ячейки должен быть переменного размера от одного разряда до n разрядов, где n =128, 256, 512 или еще больше, если в этом будет необходимость.

Если иметь ячейку максимального размера, например 512 разрядов, тогда в одной ячейке можно хранить данные всех размеров от 1 до 512 разрядов. Так как компьютер должен быть достаточно универсальным, то такой подход приведет к неэффективному использованию оперативной памяти. Если в программе, например, идет работа с 32-разрядными данными, то свыше 93% места не используется. Еще хуже положение, когда работа будет вестись с байтами (8 разрядов).

Иметь ячейку оперативной памяти размером в один разряд - также очень неэкономично. Для того, что бы адресовать любой разряд любой переменной в оперативной памяти надо иметь, например, 512*N адресов, где N – количество ячеек в оперативной памяти. При N = 232 это означает, что для адресации одной ячейки надо иметь 29*232 = 241 адресов. А обрабатывать то адрес необходимо в регистрах общего назначения. Следовательно, они должны быть не менее чем 41-разрядными.

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

Итак, минимальный и максимальный размеры ячейки не обеспечивают хорошего решения.

Логично было бы выбрать размер одной ячейки такой величины, чтобы все другие размеры переменных были степенями двойки этого размера. Разумно, оказалось, выбрать размер ячейки 8 разрядов - байт. Тогда все другие размеры переменных в оперативной памяти будут 2, 4, 8, 16 и т.д. байт.

Итак, тогда в каждой ячейке оперативной памяти может располагаться 8 разрядов, и адрес ячейки будет в диапазоне от 0 до 2n-1, где n – разрядность РОН.

 

 







Дата добавления: 2015-10-19; просмотров: 1340. Нарушение авторских прав; Мы поможем в написании вашей работы!



Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...

Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...

ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...

Седалищно-прямокишечная ямка Седалищно-прямокишечная (анальная) ямка, fossa ischiorectalis (ischioanalis) – это парное углубление в области промежности, находящееся по бокам от конечного отдела прямой кишки и седалищных бугров, заполненное жировой клетчаткой, сосудами, нервами и...

Основные структурные физиотерапевтические подразделения Физиотерапевтическое подразделение является одним из структурных подразделений лечебно-профилактического учреждения, которое предназначено для оказания физиотерапевтической помощи...

Почему важны муниципальные выборы? Туристическая фирма оставляет за собой право, в случае причин непреодолимого характера, вносить некоторые изменения в программу тура без уменьшения общего объема и качества услуг, в том числе предоставлять замену отеля на равнозначный...

Приложение Г: Особенности заполнение справки формы ву-45   После выполнения полного опробования тормозов, а так же после сокращенного, если предварительно на станции было произведено полное опробование тормозов состава от стационарной установки с автоматической регистрацией параметров или без...

Измерение следующих дефектов: ползун, выщербина, неравномерный прокат, равномерный прокат, кольцевая выработка, откол обода колеса, тонкий гребень, протёртость средней части оси Величину проката определяют с помощью вертикального движка 2 сухаря 3 шаблона 1 по кругу катания...

Неисправности автосцепки, с которыми запрещается постановка вагонов в поезд. Причины саморасцепов ЗАПРЕЩАЕТСЯ: постановка в поезда и следование в них вагонов, у которых автосцепное устройство имеет хотя бы одну из следующих неисправностей: - трещину в корпусе автосцепки, излом деталей механизма...

Studopedia.info - Студопедия - 2014-2024 год . (0.007 сек.) русская версия | украинская версия