Реферат: Алгоритм работы процессора
Рис. 1 Внутреннее строение процессора
Все элементы процессора синхронизируются с использованием частоты часов, которые определяют скорость выполнения операций. Самые первые процессоры работали на частоте 100kHz, сегодня рядовая частота процессора - 2000MHz, иначе говоря, часики тикают 2000 миллионов раз в секунду, а каждый тик влечет за собой выполнение многих действий. Счетчик Команд (PC) - внутренний указатель, содержащий адрес следующей выполняемой команды. Когда приходит время для ее исполнения, Управляющий Модуль помещает инструкцию из памяти в регистр инструкций (IR). В то же самое время Счетчик команд увеличивается, так чтобы указывать на последующую инструкцию, а процессор выполняет инструкцию в IR. Некоторые инструкции управляют самим Управляющим Модулем, так если инструкция гласит 'перейти на адрес 2749', величина 2749 записывается в Счетчик Команд, чтобы процессор выполнял эту инструкцию следующей.
Многие инструкции задействуют Арифметико-логическое Устройство (АЛУ), работающее совместно с Регистрами Общего Назначения - место для временного хранения, которое может загружать и выгружать данные из памяти. Типичной инструкцией АЛУ может служить добавление содержимого ячейки памяти к регистру общего назначения. АЛУ также устанавливает биты Регистра Состояний (Status register - SR) при выполнении инструкций для хранения информации о ее результате. Например, SR имеет биты, указывающие на нулевой результат, переполнение, перенос и так далее. Модуль Управления использует информацию в SR для выполнения условных операций, таких как 'перейти по адресу 7410 если выполнение предыдущей инструкции вызвало переполнение'.
Это почти все что касается самого общего рассказа о процессорах - почти любая операция может быть выполнена последовательностью простых инструкций, подобных описанным.
2.2. Алгоритм работы процессора
Весь алгоритм работы процессора можно описать в трех строчках
НЦ
| чтение команды из памяти по адресу, записанному в СК
| увеличение СК на длину прочитанной команды
| выполнение прочитанной команды
КЦ
Однако для полного представления необходимо определить логические схемы выполнения тех или иных команд, вычисления величин, а это уже функции Арифметико-логического Устройства
2.2.1. Арифметико-логическое Устройство
На уровне логических схем АЛУ состоит из логических элементов, сумматоров, триггеров и некоторых других элементов.
Логический элемент - электронная схема, реализующая элементарную переключающую функцию. При реализации функций переключения входные переменные соответствуют входным сигналам, а выходной сигнал представляет собой значение функции. Всего существует десять логических элементов, реализующих десять логических (элементарных или сложных) функций.
Логическая схема может реализовать сложную функцию алгебры логики, а может входить в состав другого функционального блока процессора (сумматора, дешифратора, регистра, триггера.)
Триггер - электронная схема с двумя устойчивыми состояниями, предназначенная для хранения одного бита информации. Триггер переходит из одного устойчивого состояния в другое при воздействии некоторого входного сигнала. Триггер имеет вход для установки в состояние 0 (X0) и в 1 (X1). На выходе выдается состояние триггера, которое выдается в прямом (Y) и в инверсном (Y1) виде. В компьютерах используют синхронизируемые и не синхронизируемые триггеры. Синхронизируемый триггер - это триггер, изменение состояния которого осуществляется только в момент подачи сигнала синхронизации V.
Рис. 2. Схема реализации триггера - защелки на элементах И-НЕ (a) и ИЛИ-НЕ (b).
Триггер-защелка фиксирует состояние входного сигнала, поданного на один из его входов (рисунок 2.)
Рис. 3. Схема реализации RS-триггера на элементах И-НЕ.
RS-триггер - двухвходовый триггер с раздельными входами для установки в 0 или 1 (рисунок 3.) При подачи единичного сигнала на вход R (-X0) триггер переходит в состояние 0 (Y=0, Y1=1), а при подачи на вход S (=X1) единичного сигнала -- в состояние 1 (Y=1, Y1=0). Одновременная подача единичного сигнала на оба входа запрещена. Обычно RS-триггеры бывают синхронизируемыми (вход для синхронизации - V).
Рис. 4. Схема реализации T-триггера.
T-триггер - одновходовый триггер со счетным входом: информация подается одновременно на два входа. При подаче сигнала состояние триггера меняется на противоположное (рисунок 4.) Он, как правило, является не синхронизируемым, и позволяет не только хранить информацию, но и осуществлять сложение по модулю 2.
Рис. 5. Схема реализации D-триггера.
D-триггер выполняет функцию задержки входного сигнала на один такт синхронизации (рисунок 5.). Сигнал, появившийся на входе D (=X0) в момент времени T, задерживается в нем и появляется на выходе Y в момент времени T+1.
JK-триггер - двухвходовый триггер, допускающий раздельную установку состояния 0 и 1, а также смену текущего состояния (режим со счетным входом), осуществляемую при подаче на оба входа единичного сигнала. Вход K в этом триггере соответствует входу R (=X0) RS-триггера, а вход J - S (=X1).
DF-триггер - двухвходовый триггер, позволяющий по одному входу реализовать режим D-триггера, а по другому -- модифицировать режим работы. Вход D соответствует X1, а F - X0. При F=0 DF-триггер сохраняет текущее состояние. Сигнал F=1 устанавливает триггер в состояние 0. При D=1 и F=1 триггер устанавливается в состояние 1.
Триггеры с неустойчивыми состояниями называются вибраторами. Схема с одним неустойчивым состоянием (триггер Шмидта, одновибратор) генерирует импульсный сигнал определенной длительности. Схема с двумя неустойчивыми состояниями называется мультивибратором и служит для генерации последовательности прямоугольных сигналов. Он используется тактовым генератором.
Рис. 6. Реализация регистра.
Регистр - схема для приема, хранения и передачи n-разрядного блока данных Они используются для промежуточного хранения, сдвига, преобразования и инверсии данных. Регистры выполняются на триггерах и логических элементах. Их число и тип определяются разрядностью слова и назначением регистра. Если регистр не требует предварительного сброса данных, (то есть установки всех его ячеек в ноль), то новые данные заменяют в нем старые. Схема регистра показана на рисунке 6.
Рис. 7. Реализация одноразрядного сумматора с переносом знака.
В зависимости от способа управления различают несколько типов триггеров: D- (с одним входом), RS- (с двумя входами), T- (со счетным входом), RST- (с двумя входами и счетным выходом) триггеры, и универсальные триггеры: JK- и DF-триггеры.
Целочисленное АЛУ
Целочисленное арифметико-логическое устройство является, наверное, первым универсальным АЛУ. Это АЛУ могло работать с целыми числами и вещественными числами с фиксированной.
Не смотря на большое число команд микропроцессора, это устройство фактически все команды сводит к девяти элементарным операциям. Все оно приведены в таблице.
Элементарные операции целочисленного АЛУ. | |||
Операция | Обозначение |
Количество |
Подсистема |
Сложение | + | 2 | Сумматор |
Вычитание | - | 3 | Cумматор и регистр |
Логическое умножение, И | ^, &, and | 2 | Логические схемы |
Логическое сложение, ИЛИ | V, |, or | 2 | Логические схемы |
Сдвиг влево | << | 2 | Регистр |
Сдвиг вправо | >> | 2 | Регистр |
Инверсия (НЕ) | !,not | 1 | Логические схемы |
Увеличение
на 1, |
++,inc | 1 | Сумматор |
Уменьшение
на 1, |
--,dec | 1 | Сумматор |
Именно эти операции выполняются за один такт микропроцессора, и имеют наибольшую скорость выполнения. Фактически все другие операции осуществляются с помощью этих девяти базовых. Так, умножение восьмиразрядных целых чисел A и B выполняются по следующему алгоритму:
- Обнуляется результат.
- Если последний разряд числа B - единица, ток результату прибавляется число A.
- Число A сдвигается на разряд влево, а число B -- на разряд вправо.
- Повторяются шаги со второго по третий семь раз.
Заметим, что сдвиг влево на 1 разряд соответствует умножению на два, а сдвиг вправо на один разряд - целочисленному делению на два.
Команда изменения знака числа будет следующей:
- Вначале происходит инверсия числа.
- После этого производится инкремент результата (т.е. к нему прибавляется единица.)
- Таким образом число переводится в дополнительный код. Команда определения знака числа основывается просто на проверке самого старшего бита.
АЛУ для чисел с плавающей точкой
При проведении операций с плавающей точкой логика расчетов усложняется. Дело в том, что операции приходится выполнять на числах, имеющих не только разные мантиссы, но и разные порядки. Поэтому перед проведением операций над вещественными числами нужна нормализация, то есть приведение двух вещественных чисел к одному порядку.(обычно большему по величине из двух чисел). Для этих целей в арифметико-логическом устройстве с плавающей точкой отдельно производится действия с порядком, отдельно -- с мантиссой. Нормализация происходит следующим образом:
1. Находится разность порядков большего и меньшего числа.
2. Мантисса меньшего числа сдвигается вправо на число бит, равное разности, полученное на шаге 1.
После этого производятся обычные целочисленные операции с мантиссой. Далее, после получения результата вычислений иногда производится коррекция мантиссы числа с плавающей точкой. Алгоритм коррекции следующий:
1. Убираются все незначащие нули в левой части мантисса. Для этого осуществляется сдвиг влево мантиссы на n разрядов (n -- число незначащих нулей слева.)
2. После этого число n вычитается из порядка.
Как правило, операцию коррекции вызывают принудительно, а не запускают автоматически.
При работе этого устройства необходимо, чтобы ему правильно передавался и порядок, и мантиссу числа. Именно поэтому в большинстве устройств для проведения операций с плавающей точкой все операнды и результаты, а также промежуточные числа хранились в единообразной форме. Обычно ею является формат вещественных чисел с расширенной точностью, длиной 80 бит (10 байт). Преобразованием чисел в этот формат и из этого формата в формат других вещественных и целых чисел осуществляется устройством управления сопроцессора.
2.2.2. Прерывания процессора
При работе процессорной системы могут возникать особые случаи, когда процессор вынужден прерывать работу текущей программы и переходить к обработке этого особого случая, более срочного и важного. Причинами прерывания текущей программы может быть:
· внешний сигнал по шине управления - маскируемых прерываний и немаскируемого прерывания;
· аномальная ситуация, сложившаяся при выполнении команды программы и препятствующую ее дальнейшему выполнению;
· находящаяся в программе команда прерывания.
Первая из указанных выше причин относится к аппаратным прерываниям, а две другие - к программным прерываниям. Отметим, что аппаратные прерывания непредсказуемы и могут возникать в любые моменты времени.
С помощью аппаратных прерываний осуществляется взаимодействие процессора с устройствами ввода-вывода ( клавиатурой, диском, модемом и т.п.), таймером и внутренними часами, сообщается о возникновении ошибки на шине или в памяти, об аварийном выключении сети и т.п. При возникновении аппаратного прерывания процессор выявляет его источник, сохраняет минимальный контекст текущей программы (включая адрес возврата), и переключается на специальную программу -- обработчик прерывания ( interrupt handler). Эта программа правильно реагирует на возникшую ситуацию (например, помещает символ с клавиатуры в буфер, считывает сектор с диска и т.п.), что называется 1обслуживанием прерывания. После обслуживания прерывания процессор возвращается к прерванной программе, как будто прерываний не было.
Программные прерывания обычно называются особыми случаями, или исключениями (exception). Особые случаи возникают, например, при делении на ноль, нарушения при защите по привилегиям, превышении длины сегмента, выходе за границу массива. Как правило, предсказать эти исключения невозможно. Однако встречающаяся в программе 1команда прерывания вполне предсказуема и находится под управлением программиста. Реакция процессора на программное прерывание такое же, как и на аппаратное прерывание, однако его обработка производится 1обработчиком особого случая (exception handler).
Все особые случаи квалифицируются на:
Нарушение (fault). Особый случай, который процессор может обнаружить до возникновения фактической ошибки (например -- нарушение правил привилегий). После обработки нарушения можно продолжить программу, осуществив повторное выполнение (рестарт) виноватой команды. Иногда это исключение называют отказом.
Ловушка (trap). Особый случай, который возникает после окончания виноватой программы. После обслуживания ловушки процессор продолжает выполнение программы с команды, находящейся после виноватой. Типичный пример -- команда прерывания INT n в процессорах семейства x86 или прерывание при переполнении.
Авария (abort) -- возникает при столь серьезной ошибке, что контекст программы теряется и продолжать ее невозможно. Причину аварии установить нельзя, поэтому рестарт невозможен и ее необходимо прекратить. Иногда авария называется выходом из процесса.
Обработка всех прерывания и особых случаев происходит, в общем, одинаково и состоит из двух основных этапов. На первом этапе процессор выполняет некоторые "рефлексивные" операции, которые одинаковы для всех прерываний и исключений, и которыми программист управлять не может. На втором этапе запускается созданный программистом обработчик прерывания или исключения. Все служебные действия процессор производит автоматически.
Заключение
Переход на новые технологии изготовления процессоров, разработка новых алгоритмов их работы является перспективным продвижением данной отрасли. По прогнозам ученых скорость процессоров через 10 лет может достичь 20-ти кратного увеличения по сравнению с современными процессорами.
Автоматизм работы процессора, возможность выполнения длинных последовательных команд без участия человека – одна из основных отличительных особенностей ЭВМ как универсальной машины по обработке информации.
Список используемой литературы
1. «Микропроцессоры и микропроцессорные комплекты интегральных микросхем», справочник, под ред. В.А. Шахнова, том 2, Москва «Радио и связь», 1998.
2. А.С. Басманов «МП и ОЭВМ», Москва, «Мир», 1998.
3. В.В. Сташин, А.В. Урусов «Программирование цифровых устройств на однокристальных микроконтроллерах», Москва, «Энергоатомиздат», 2001.
4. «Микропроцессоры», Учебное пособие в 5-ти книгах, под редакцией В.А. Шахнова, Москва «Высшая школа», 1998.
5. «Новейшая энциклопедия персонального компьютера 2002», Москва «ОЛМА-ПРЕСС» 2002 год.