Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Модель памяти



Одна из особенностей МП Intel – это использование сегментированной памяти. Полнокровное развитие персональных ЭВМ (PC) началось с появления 16-разрядных микропроцессоров. Изначально микропроцессоры предназначались для управляющих систем. Персональные ЭВМ проектировались для широкого круга пользователей как максимально дешевые индивидуальные (одна для одного) ЭВМ для эксплуатации без посредников (профессиональных программистов). Для этого они должны были быть снабжены определенными средствами программирования на основе простейших языков программирования (типа Бейсик), управляющей (операционной) программной системой и простейшими офисными системами: текстовыми редакторами, электронными таблицами и т.д.

16-разрядная адресация позволяла адресовать только 216 = 65 536 байт (64 Кбайт). Этого было достаточно для управляющих ЭВМ, но не для PC. Вероятно, по этой причине была выбрана модель структурированной математической памяти ( рис. 3.1.), состоящая из 16 сегментов по 65 536 байт (64 Кбайт). Этот прием позволил увеличить адресное пространство математической памяти в реальном режиме до 220 = 1 048 576 (1 Мбайт).

При этом первые 10 сегментов определялись как память пользователей, а остальные 6 сегментов – как системные (для операционной системы). Кроме этого, вводился еще один дополнительный сегмент (64 Кбайт) для адресации портов. Порты – это программно-доступные (адресуемые) регистры контроллеров устройств ввода-вывода. Это отдельное (дополнительное) адресное пространство процессора.

Биты в памяти, как и в регистрах, нумеруются с младших разрядов. Многобайтные операнды адресуются по номеру младшего байта. Размещение программных объектов без соблюдения правил целочисленных границ не рекомендуется.

Использование сегментированной математической памяти для расширения адресного пространства имеет и отрицательные стороны. Это несоответствие адресных структур математической и физической (линейной) памяти.

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

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

Вопросы для самопроверки:

1. Понятие сегментированной памяти.

2. Размер сегмента в МП IA-16.

3. Максимальное число сегментов в МП IA-16.

4. Процедура трансляции сегментов в МП IA-16.

5. Место хранения базовых адресов сегментов.

3.2.2. Порты ввода/вывода

МП позволяет адресовать порты в адресном пространстве портов (64 Кб) и адресном пространстве оперативной памяти.

Для адресации портов используются команды IN, INS (для ввода) и OUT, OUTS (для вывода), а для адресации ячеек памяти – любые адресные команды.

Для доступа к порту ввода/вывода, расположенному в адресном пространстве памяти, могут использоваться любые работающие с памятью команды. Это дает некоторую гибкость работы с портами. Например, команда MOV позволяет пересылать данные между портом и любым регистром. Команды AND, OR, и TEST позволяют манипулировать с отдельными битами управляющих регистров портов при программировании процедур ввода/вывода. Сегменты логической памяти, порты ввода/вывода и их отображение (возможное размещение) в памяти представлены на рис. 3.1.

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

Все сегменты (включая сегменты портов) в плоской памяти задаются двумя независимыми параметрами: сегментом (базовый адрес сегмента) и адресом объекта в сегменте (смещением в сегменте).

Адресное пространство портов:

· 216 = 65 536 однобайтных портов с нумерацией от 0 до 65 535 или

· 215 = 32 768 двухбайтных портов с нумерацией от 0 до 65 534 или

· 214 = 16 384 четырехбайтовых портов с нумерацией от 0 до 65 532.

В командах ввода/вывода адреса портов от 1 до 255 могут задаваться прямыми адресами:

· IN al, 24 – ввод байта из 24-го порта в регистр al,

· IN ax, 24 – ввод слова из 24-го порта в регистр ax,

· IN eax, 24 – ввод двойного слова из 24-го порта в регистр eax,

Задание в командах портов с адресами больших 255 производится с использованием регистра dx:

· MOV dx, 1024;засылка адреса порта в dx

· IN al, dx;ввод байта из 1024-го порта в регистр al,

· IN ax, 24;ввод слова из 1024-го порта в регистр ax,

Вопросы для самопроверки:

1. Понятие портов.

2. Методы адресации портов.

3. Адресация портов в МП IA.

4. Команды обращения к портам в МП IA-16.





Дата публикования: 2014-11-03; Прочитано: 574 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...