- •История возникновения и развития вычислительной техники, разнообразие современных платформ вт
- •Классификация компьютеров. Поколения вычислительной техники.
- •3. Понятие архитектуры и структуры компьютера. Машина Фон Неймана. Гарвардская архитектура.
- •Состав и назначение основных устройств эвм.
- •5. Системы счисления. Представление чисел в компьютере.
- •6. Разрядная сетка. Двоичные коды. Переполнение разрядной сетки.
- •Переполнение разрядной сетки
- •7. Понятие кодирования. Двоично-десятичный код. Помехозащищенное кодирование.
- •Двоично-десятичный код, двоично-десятичные числа.
- •8. Понятие кодирования. Циклические коды. Циклические избыточные коды. Сжатие данных.,
- •9. Вентили. Булева алгебра. Способы задания булевых функций. Эквивалентность схем
- •10. Булева алгебра. Минимизация логических функций с помощью карт Карно. Сумматоры.
- •11. Логические цепи. Триггеры.
- •12. Триггерная схема. Регистры.
- •13. Организация статической памяти. Типы памяти эвм.
- •14. Процессор. Функции, параметры, структура процессора.
- •15. Процессор. Среда выполнения. Режимы процессора.
- •16. Схема адресации памяти. Сегментная организация памяти. Модели памяти.
- •17. Регистры процессора. Типы регистров, их назначение.
- •18. Язык Ассемблера. Директивы инициализации и описания данных. Директивы segment, Assume. Способы адресации.
16. Схема адресации памяти. Сегментная организация памяти. Модели памяти.
Адресация — осуществление ссылки (обращение) к устройству или элементу данных по его адресу[1]; установление соответствия между множеством однотипных объектов и множеством их адресов; метод идентификации местоположения объекта
Сегментная адресация памяти — схема логической адресации памяти компьютера в архитектуре x86. Линейный адрес конкретной ячейки памяти, который в некоторых режимах работы процессора будет совпадать с физическим адресом, делится на две части: сегмент и смещение. Сегментом называется условно выделенная область адресного пространства определённого размера, а смещением — адрес ячейки памяти относительно начала сегмента. Базой сегмента называется линейный адрес (адрес относительно всего объёма памяти), который указывает на начало сегмента в адресном пространстве. В результате получается сегментный (логический) адрес, который соответствует линейному адресу база сегмента+смещение и который выставляется процессором на шину адреса.
Модель памяти — это способ объединения кода, данных и стека программы в один или несколько физических сегментов.
В операционных системах, работающих в реальном режиме (фактически это MS DOS и её клоны), были определены следующие модели памяти:
-
крошечная (tiny) — код, данные и стек объединены в один физический сегмент, максимальный размер которого не мог превышать 64 Кбайта без 256 байтов (последние требовались для создания префикса программного сегмента (PSP) — специфической структуры данных MS DOS. Крошечную модель памяти использовали все COM-программы. По сути она является плоской моделью памяти, предназначенной для реального режима;
-
малая (small) — код и данные находятся в разных физических сегментах, размер каждого из которых не может превосходить 64 Кбайта. Строгой спецификации относительно размещения сегмента стека и PSP для этой и других моделей памяти нет;
-
средняя (medium) — код размещается в нескольких сегментах, каждый из которых имеет размер до 64 Кбайт; данные размещаются в одном сегменте длиной до 64 Кбайт;
-
компактная (compact) — код занимает один сегмент размером до 64 Кбайт, данные размещаются в нескольких сегментах, каждый из которых может иметь размер до 64 Кбайт;
-
большая (large) — код и данные занимают несколько физических сегментов каждый.
Разновидностью большой модели является гигантская (huge), отличающаяся представлением указателей на объекты (смещение всегда должно быть минимально возможным, а базовый адрес сегмента, соответственно, максимально возможным).
В операционных системах защищённого режима технически можно организовать те же самые модели памяти, что и в реальном режиме. Однако на практике наиболее распространённые ОС, в том числе Microsoft Windows и Linux, применяют только плоскую (flat) модель. Суть её заключается в том, что код, данные и стек программы объединяются в один физический сегмент размером 4 Гбайта (хотя собственно программе пользователя отводится меньший объём — чуть меньше 2 Гбайт в большинстве версий Windows и около 3 Гбайт в Linux).
Наконец, в 64-разрядном режиме может использоваться только плоская модель, поскольку механизм сегментации в нём не предусмотрен.