Помощь в написании студенческих работ
Антистрессовый сервис

Программная модель процессора

РефератПомощь в написанииУзнать стоимостьмоей работы

Дальнейшее усовершенствование системы команд привело к усложнению системы адресации ячеек оперативной памяти. Адреса оперативной памяти стали задавать не явно, а компонентами. Для хранения компонентов адреса стали использовать те же регистры. Появилась дополнительная индексная (адресная) арифметика для вычисления адреса по компонентам. Дополнительные регистры стали использоваться для хранения как… Читать ещё >

Программная модель процессора (реферат, курсовая, диплом, контрольная)

Программная модель процессора — это базовая совокупность систем и характеристик процессора, видимая программистам, работающим на нижних, «машинных» уровнях программирования, например на языке ассемблера.

Обычно к программной модели процессора относят:

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

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

Это:

  • · система прерывания,
  • · организация ввода/вывода,
  • · организация памяти.

Виды используемых структур памяти по принципам размещения и поиска информации

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

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

Особый статус имеют уровни кэш-памяти. Это элементы системы «оперативная память — процессор» .

По принципам размещения и поиска информации устройства оперативной памяти разделяются на:

  • · адресные,
  • · ассоциативные,
  • · стековые.

Адресная память

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

Обычно для хранения информации в ЭВМ используются двоичные элементы (хранимые значения — биты), а минимально адресуемой последовательностью бит является байт.

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

Байты укрупняются в слова. Для РС и мини-ЭВМ слово — это два байта, для полноразрядных ЭВМ корпорации IBM — четыре байта. В качестве программных объектов могут использоваться биты, байты, слова и более крупные объекты, кратные двоичной степени байта.

Ассоциативная память

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

Кроме функций записи и хранения, в таких системах памяти аппаратно реализуются функции ассоциативного поиска информации. В простейшем случае — это поиск информации по совпадению входного «эталона» -ключа с частью последовательности хранимой информации. Результаты ассоциативного поиска используются в операциях чтения или записи для поиска искомых строк данных.

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

Стековая память

Стековая память — это список со стратегией работы «последний вошел — первый вышел». Стековая память обычно реализуется на основе обычной линейной адресной памяти с использованием специального регистра — указателя стека (SP). Для стековой памяти определены две операции: занесение единицы данных в стек и удаление единицы данных из стека.

Организация оперативной памяти

Оперативная память — это основная память, на работу с которой ориентирован процессор, точнее программа, выполняемая процессором. Это адресная память.

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

Современные ЭВМ ориентированы на работу с «наращиваемым» объемом физической памяти. При этом:

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

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

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

Для снятия этого ограничения некоторые процессоры, например МП Intel, допускают использование множества адресных пространств. В этих случаях говорят о структурированной (сегментированной) математической памяти.

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

Структура и типы команд

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

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

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

  • 1. операцию,
  • 2. адрес или значение первого операнда,
  • 3. адрес или значение второго операнда,
  • 4. адрес сохранения результата,
  • 5. адрес следующей команды (или двух альтернативных адресов команды для реализации ветвлений).

Задание операции

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

Кроме исполняемой операции, код операции часто задает формат и тип обрабатываемых данных. Под форматом здесь понимается размерность операндов (байт, слово, двойное слово и т. д.), а под типом — тип арифметики (целочисленные операции, с плавающей точкой, векторные операции и т. д.).

Поле адресов

Если все перечисленные адреса задаются явно (соответствующими полями), то команда имеет четырехили пяти-адресную структуру. Два альтернативных адреса следующей команды необходимы для реализации ветвлений.

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

Трехадресная система команд.

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

Например, команда безусловного перехода:

Jmp (переход) .

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

Команды условной передачи управления позволяют разрабатывать разветвляющиеся и циклические программы. Разновидностью команд передачи управления являются команды передачи управления с возвратом (команды переходов на подпрограммы). При выполнении этих команд перед передачей управления на подпрограмму запоминается адрес возврата (содержимое счетчика команд до передачи управления). Адрес возврата используется другой разновидностью команд передачи управления — командами выхода из подпрограммы. Таким образом, переход к трехадресной системе команд сопровождается:

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

Двухадресная система команд

В качестве адреса результата операции можно использовать адрес одного из исходных операндов. При этом результат операции записывается «поверх» одного из операндов, значение которого теряется, но команда становится компактнее .

Это двухадресные команды. В двухадресных командах один адрес рассматривается как адрес-источник, а другой — как адрес-приемник.

Естественно, что в этих командах только операнд-источник можно задавать непосредственным значением.

Неизбежная потеря значения одного из операндов при использовании двухадресных команд потребовала введения в состав команд процессора команды пересылки (копирования) объекта-источника в ячейку приемника. Примером такой команды может служить команда пересылки MOV:

MOV А1, А2.

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

Одноадресная система команд

Дальнейшее уменьшение количества адресов, явно заданных в команде, приводит к одноадресной структуре команд.

В процессоре с одноадресной структурой команд предусматривается специальный регистр — аккумулятор. Это регистр, в котором находится один из операндов, и в который записывается результат операции (поверх исходного операнда).

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

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

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

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

Дальнейшее усовершенствование системы команд привело к усложнению системы адресации ячеек оперативной памяти. Адреса оперативной памяти стали задавать не явно, а компонентами. Для хранения компонентов адреса стали использовать те же регистры. Появилась дополнительная индексная (адресная) арифметика для вычисления адреса по компонентам. Дополнительные регистры стали использоваться для хранения как операндов, так и компонентов адреса. А регистры получили название «регистры общего назначения» (РОНы).

Многие фирмы (Intel, DEC) для гибкости системы программирования стали использовать множество формул (режимов адресации) для вычисления адресов.

С появлением РОНов команды снова стали двухадресными. Один — адрес оперативной памяти, другой — РОНа, или оба адреса — номера используемых РОНов.

В случае использования РОНов команды, в зависимости от расположения исходных операндов, разделяются на типы: регистр-регистр, регистр-память.

Команды типа регистр-регистр являются наиболее компактными по размерам и быстрыми по выполнению. Они используют короткие адреса и независимы от задержек при обращении к памяти. Как исключение, некоторые ЭВМ (например, IBM/370) сохранили команды и типа память-память.

Кроме РОНов, современные процессоры содержат ряд других программно доступных регистров, которые образуют регистровый файл процессора.

Режимы адресации

С появлением РОНов появилось два типа команд:

  • · команды структуры регистр/регистр (r/r): Коп R1, R2,
  • · команды структуры регистр/память (r/m): Коп R1, М2,

где:

R1, R2 — номера (адреса) РОНов.

M2 — полноразрядный адрес оперативной памяти.

Первый тип команд по отношению к данным является двухадресным (задаются адреса двух РОНов), но по отношению к памяти — безадресным.

Второй тип команд по отношению к данным тоже двухадресный, но по отношению к памяти — одноадресный (первый адрес является адресом РОНа).

Адреса памяти в современных процессорах задаются в большинстве случаев отдельными компонентами с указанием (явно или «по умолчанию») способа вычисления адреса. Способы вычисления адреса определяются режимами адресации. Задание операнда в команде его непосредственным значением (непосредственный операнд), прямым значением адреса (непосредственный адрес) или номером РОНа — это частные случаи режимов адресации.

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

  • 1. для уменьшения разрядности поля адреса в команде,
  • 2. для упрощения процедур обработки массивов.

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

  • 1. Двухместные операции.
  • 2. Назначение четвертого адреса в четырехадресной команде.
  • 3. Основные преимущества одноадресной системы команд.
  • 4. Причины использования задания адреса в сегменте тремя компонентами.
  • 5. Причины введения в состав процессора РОНов.
Показать весь текст
Заполнить форму текущей работой