Реферат: Архитектура микропроцессоров
--PAGE_BREAK--Система команд микропроцессораНесмотря на бурную эволюцию вычислительной техники, основной набор команд довольно слабо изменился. Система команд любой ЭВМ обязательно содержит следующие группы команд обработки информации.
1. Команды передачи данных (перепись), копирующие информацию из одного места в другое.
2. Арифметические операции, к которым в основном относят операции сложения и вычитания. Умножение и деление обычно реализуется с помощью специальных программ.
3. Логические операции, позволяющие компьютеру производить анализ получаемой информации. Простейшими примерами команд рассматриваемой группы могут служить сравнение, а также известные логические операции и, или, не.
4. Сдвиги двоичного кода влево и вправо. В некоторых случаях сдвиги используются для реализации умножения и деления.
5. Команды ввода и вывода информации для обмена с внешними устройствами. В некоторых ЭВМ внешние устройства являются специальными служебными адресами памяти, поэтому ввод и вывод осуществляется с помощью команд переписи.
6. Команды управления, реализующие нелинейные алгоритмы. Сюда относят условный и безусловный переходы, а также команды обращения к подпрограмме (переход с возвратом). Часто к этой группе относят операции по управлению процессором типа останов или нет операции.
Любая команда ЭВМ обычно состоит из двух частей – операционной и адресной. Операционная часть называемая также кодом операции указывает, какое действие необходимо выполнить с информацией. Операционная часть имеется у любой команды. Адресная часть описывает, где используемая информация хранится и куда поместить результат. В некоторых командах управления работой машины адресная часть может отсутствовать, например, в команде останова.
Код операции можно представить себе как некоторый условный номер в общем списке команд. В основном этот список построен в соответствии с определенными внутренними закономерностями.
Адресная часть обладает значительно большим разнообразием. Основу адресной части составляет операнд. В зависимости от количества возможных операндов команды могут быть одно- и двухадресные. В двухадресных командахрезультат записывается либо в специальный регистр (сумматор), либо вместо одного из операндов.
Способы адресации данных
Способы (или методы) адресации не что иное, как способы указания на те или иные ячейки памяти, с которыми должен манипулировать оператор. Существует много различных методов адресации. Количество их зависит от типа процессора. Наличие большого количества способов адресации обеспечивает высокую гибкость в построении программ и является большим преимуществом системы команд данного типа ЭВМ. Способы адресации практически одинаковы для всех команд, в которых присутствуют операнды. В своей курсовой я подробно рассматриваю только три основных метода адресации, которые применяются почти во всех процессорах.
Регистровая адресация. При этом способе операндом является один из регистров общего назначения. Число хранится непосредственно в регистре. Записывается как Rn, где n – номер регистра.
Косвенная адресация. При этом способе адресации в одном из регистров общего назначения содержится не само число, с которым нужно работать, а его адрес, то есть номер ячейки памяти, в котором число находится. Записывается как (Rn), где n – номер регистра.
Автоинкрементная адресация. Этот вид адресации несколько сложнее двух предыдущих. Помимо основного действия (косвенного обращения к ячейке памяти), при использовании этого метода, происходит еще изменение адреса этого обращения. В данном случае увеличивается указатель адреса ячейки памяти, к которой мы обращаемся, то есть содержимое регистра, служащего указателем адреса. Данное увеличение происходит автоматически, без какой-либо команды. Записывается эта адресация как (Rn)+. То, что знак + стоит после имени регистра, намекает на порядок выполнения команды: сначала происходит операция с ячейкой, на которую указывает адрес помещенный в регистр Rn, а потом уже содержимое регистра увеличивается на 2 (если оператор работает со словом, то переход к адресу следующего слова), или на 1 (если оператор работает с байтом, переход к адресу следующего байта). Данный способ адресации применяется для работы с массивами и при использовании стека (например, при использовании подпрограмм).
Существует еще один особый способ адресации, который рассматривается отдельно. Речь идет о работе со стеком. Стек – неявный способ адресации данных, при котором информация записывается и считывается только последовательным образом с использованием указателя стека. Стек всегда имеет единственный вход и выход информации – для хранения его адреса и нужен указатель стека. При записи данных в стек процессор проделает следующее:
1) уменьшит указатель стека на 2 (целое число занимает в памяти 2 байта);
2) запишет данные по полученному адресу.
При извлечении данных из стека процессор проделает следу шее:
1) считает данные из стека;
2) увеличит указатель на 2.
В командах работы со стеком адрес ОЗУ не фигурирует в явном виде. Но при этом молчаливо предполагается, что указатель стека уже задан. При задании указателя надо быть внимательным. Если указатель стека определен неправильно, то запись в стек может разрушить полезную информацию в ОЗУ.
Таким образом, мы рассмотрели способы адресации информации, которые существуют почти во всех типах процессора и которые я использовал в своем имитаторе.
продолжение
--PAGE_BREAK--Руководство пользователя. Описание программы
Изложенную выше структуру микропроцессора я попытался реализовать в своей программе.
Основную часть программы составляет Редактор. Он представляет собой место, где вводится программа, которую выполняет процессор. Каждая команда вводится в свою ячейку, имеющую адрес. Размер адресного пространства редактора составляет 1Кб. Начальная ячейка имеет адрес 1000, конечная – 2024. В качестве операнда в одно- и двухадресных командах выступает один из регистров общего назначения. Я выделил следующую систему команд.
1.
Одноадресные команды.
Представлены в следующей форме: Операция операнд ОП1.
Очистить ОП1– обнуляет значение операнда.
Увеличить на 1 ОП1 – увеличивает значение операнда.
Уменьшить на 1 ОП1 – уменьшает значение операнда.
2.
Двухадресные команды.
Представлены в следующей форме: Операция первый операнд ОП1 второй операнд ОП2.
Переслать ОП1 в ОП2 – пересылает значение первого операнда во второй операнд.
Добавить ОП1 к ОП2– добавляет значение первого операнда ко второму операнду, результат во втором операнде.
Вычесть ОП1 из ОП2 – вычитает значение первого операнда из второго операнда, результат во втором операнде.
Сравнить ОП1 с ОП2 – сравнивает разность второго и первого операнда с нулем, значения операндов не меняются, результат влияет на состояние регистра состояний.
3.
Безадресные команды.
Возврат из подпрограммы – осуществляет возврат из подпрограммы в ячейку, следующую за командой вызвавшей эту подпрограмму, используется только в подпрограммах
Стоп – команда останова, ставится обязательно в конце программы, после ее выполнения ни какие команды не выполняются.
4.
Команды перехода.
Переход на К слов – безусловный переход – осуществляет переход на К слов.
Вызов подпрограммы по адресу – переход на адрес К с запоминанием адреса возврата для команды возврата из подпрограммы.
Если
<> переход на К слов – переход на К слов, если результат <>0.
Если = переход на К слов – переход на К слов, если результат =.
Если
>= переход на К слов – переход на К слов, если результат >=0.
Если
> переход на К слов – переход на К слов, если результат >0.
Если
< переход на К слов – переход на К слов, если результат <0.
Если
<= переход на К слов – переход на К слов, если результат <=0.
Работа команды условного перехода осуществляется следующим образом: если анализируемое условие справедливо, то переход происходит. В противном случае никаких действий не производится, а значит, переход игнорируется и процессор, как обычно, выбирает следующую команду. Справедливость анализируемого условия определяется по состоянию регистра состояний, которое в свою очередь зависит от результата команды сравнения.
Таким образом, выше изложена операционная часть команд, которые выполняет мой имитатор. Посмотрим, какими способами могут быть представленыоперанды ОП1 и ОП2. Для своего проекта я отобрал три наиболее простых из имеющихся в реальных процессорах метода адресации. Это регистровый, косвенный и автоинкрементный способы адресации, подробно они рассматриваются в первой части моей курсовой работы.
Не менее важной частью программы является часть Регистры, в которой расположены регистры используемые в моем проекте. Для своего имитатора процессора я решил использовать восемь шестнадцати разрядных регистровобщего назначения (c R0 по R7) и особого регистра, в котором отражается текущее состояние процессора – регистра состояний PS.
Любой из регистров общего назначения может использоваться в командах на равных основаниях. Вместе с тем имеется два выделенных регистра, содержимое которых моя программа использует для собственных нужд. Прежде всего это регистр R7, выполняющий роль счетчика команд. Другим выделенным регистром является указатель стека R6. Остальные 6 регистров, обозначаемые R0 -R5, пользователь может использовать по своему усмотрению. Уместно заметить, что выделенные регистры программы R6 и R7 могут использоваться в любой команде наряду с обычными регистрами общего назначения R0 — R5. Как уже упоминалось регистрыобшего назначения шестнадцати разрядные, то есть диапазон принимаемых значений от -32768 до 32767.
Регистр состояний PS в моем проекте является двухбитным. Его особенностью является то, что каждый его бит имеет самостоятельное значение и может использоваться процессором отдельно от других. Используемые биты регистра обозначаются N и Z. Управляющие признаки N (Negative) характеризует наличие знака минус у результата операций: если число отрицательое, то N=1, в случае неотрицательного значения N=0. Бит Z (Zero) говорит о равенстве или неравенстве нулю результата: в первом случае Z=1, иначеZ=0.Значение этих битов зависит от результата операции сравнения и влияет в свою очередь на операцию условного перехода. Регистр состояний управляется только программно и недоступен пользователю.
Третью часть программы составляет Память. Эта часть моей программы реализована в отдельном окне, которое можно убрать. Если окно открыто, то оно всегда находится поверх главного окна. Окно Память предназначено для демонстрации работы процессора с памятью ЭВМ. В памяти хранится программа, которая написанная пользователем, представленная в машинных кодах. В моем проекте коды реализованы в десятичной системе счисления. Также в памяти можно хранить данные в тех ячейках, которые не отводятся под программу. При использовании косвенной и автоинкрементной адресаций обращение идет к данным, которые хранятся именно в памяти.
Таковы основные части моей программы. Рассмотрим теперь состав главного меню программы. Меню состоит из трех пунктов: файл, правка, пуск. Рассмотрим каждое из них по отдельности.
Пункт меню Файл позволяет работать с написанной пользователем программой как с отдельным файлом и включает следующие подпункты:
· Новый – создает новый файл, очищая редактор и регистры.
· Открыть – открывает файл.
· Сохранить – сохраняет в файл с расширением pdp и текущим именем.
· Сохранить как – сохраняет в файл с расширением pdp и новым именем.
· Выход – выход из имитатора.
Пункт меню Правка включает пункты подменю, которые позволяют редактировать текст программы написанной пользователем. В нем имеются следующие подпункты:
· Очистить – полностью удаляет содержимое либо только редактора, либо только регистров, либо редактора и регистров одновременно. Имя файла при этом не меняется (в этом отличие от пункта меню Новый).
· Вставить – вставляет в редакторе пустую строку перед текущей.
· Удалить – удаляет текущую строку в редакторе.
Пункт меню Пуск предназначен для исполнения написанной пользователем программы. Включает следующие подпункты:
· Пуск – запускает написанную пользователем программу.
· По шагам – позволяет выполнять каждую команду по отдельности.
· Стоп – осуществляет прерывание запущенной программы.
· Пауза – позволяет сделать паузу при выполнении запущенной программы
· Продолжить – продолжает исполнение программы, после нажатия паузы.
Некоторые подпункты этого пункта доступны только при исполнении программы.
Некоторые пункты главного меню вынесены как кнопки. Также вы можете увидеть кнопку Память, при нажатии на которую появляется окно Память.
Итак, вы познакомились со структурой моего имитатора. Теперь можно приступить к написанию программы.
продолжение
--PAGE_BREAK--
еще рефераты
Еще работы по информатике
Реферат по информатике
Математическое моделирование управления движения поезда
18 Июня 2015
Реферат по информатике
Компьютерное оборудованиеhard
2 Сентября 2013
Реферат по информатике
Кодирование различных типов информации. Состав системного блока
2 Сентября 2013
Реферат по информатике
Корпоративные ЛВС
2 Сентября 2013