Микропроцессорные устройства

Автор работы: Пользователь скрыл имя, 11 Января 2014 в 17:55, курс лекций

Краткое описание

Работа содержит конспекты лекций по дисциплине "Микропроцессорные устройства".

Вложенные файлы: 1 файл

mikroprocessornye_ustroistva.doc

— 3.69 Мб (Скачать файл)

Продемонстрируем правила сдвига и сложения на рассмотренном примере умножения 1710 и 1210:

10001

*

01100

      10001 множимое, сдвинутое влево на 2 разряда

    10001 множимое, сдвинутое влево на 3 разряда

    11001100 сумма сдвинутых множимых

 

 

 

 

Ещё пример: 93*45=4185

93     01011101

*     *

45     00101101

01011101

     01011101

   01011101

        01011101

418510=          1000001011001

 

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

Деление – это операция, обратная умножению. Иначе говоря, при делении  операцию вычитания повторяют до тех пор, пока уменьшаемое не станет меньше вычитаемого. Число этих повторений показывает, сколько раз вычитаемое укладывается в уменьшаемом. Двоичное деление осуществляется аналогично десятичному.

 

     Рассмотрим пример.

Разделить число 20410 на 1210

11001100                1100                            11001100=20410


1100                        10001                          1100=1210


      01100                                                   10001=1710


      01100

              0


Двоичное деление начинается с  анализа делимого и делителя. Сразу обнаруживаем, сто делитель точно укладывается в первые четыре цифры делимого, а потому записываем цифру 1 в поле, предоставленное для формирования частного. Умножаем делитель на 1 и вычитаем результат из 1100. Разность равна нулю, т.е. меньше делителя, а поэтому процесс деления можно продолжить. Объединяем нуль остатка со значением следующего разряда делимого, равным 1. Поскольку делитель укладывается ноль раз в числе 1, записываем 0 в поле представления частного, а число 1 объединяем со следующей цифрой делимого и т.д. Описываемая процедура продолжается до тех пор, пока делимое не оказывается исчерпанным.

 

Арифметика повышенной точности

      Обсудим, как в МП реализуется арифметика повышенной точности. При работе с МП часто выясняется, что длина слов, которыми он оперирует, недостаточна для достижения требуемой точности вычислений. Например, 8-разрядный МП использует числа в диапазоне от -128 до +127. Для большинства задач такой диапазон неприемлем. Используя два 8-битовых слова с представлением  отрицательных  чисел  в дополнительном  коде,  получим  диапазон от

-32768 до 32767. Для решения многих  задач указанной двойной точности  этого вполне достаточно. Однако иногда требуется тройная точность вычислений: 1 бит для знака и 23 бит для абсолютной величины числа. Диапазон чисел в случае тройной точности следующий: -8388608 до 8388607, включая 0. Однако при работе с арифметикой повышенной точности требуется большой объем памяти для хранения данных и более интенсивная работа МП. Пусть например, необходимо использовать арифметику тройной точности в 8-разрядной вычислительной системе. Для этого необходимо сначала  произвести обращение к младшему значащему байту каждого числа. После сложения двух байтов результат записывают в память, а возможные при этом переносы подлежат временному хранению. Затем из памяти извлекают следующие по значимости байты и складывают, прибавляя биты переноса, полученные в результате предыдущей операции сложения. Результат записывают в память на место специально зарезервированное для среднего байта суммы. Наконец из памяти извлекают старшие значащие байты, складывают их, к сумме добавляют биты переноса, полученные при предыдущей операции сложения, и результат записывают в область памяти, зарезервированную для старшего значащего байта суммы. Таким образом, требуется в три раза больше времени и объема памяти.

 

Арифметика чисел с  плавающей точкой

      Не все проблемы могут быть разрешены при использовании арифметики с повышенной точностью. До сих пор рассмотрение было ограничено целыми числами. Действия с дробными числами осуществляются в арифметике чисел с плавающей точкой (запятой), позволяющей МП отслеживать положение десятичной точки. Это достигается благодаря использованию представления десятичных дробей в нормализованном виде, т.е. в виде мантиссы, диапазон значений которой от 0,1 до 1, и порядка - показателя степени числа 10. Например, число 50 представляется как 0,5*102, а число -750 как -0,75*103.

      Числа с плавающей точкой хранятся в МП так же как и целые числа. Записывается мантисса со знаком и порядок со знаком. Представление числа в форме с плавающей точкой в 8-разрядном МП можно изобразить следующим образом.

 

 

Адрес байта

Содержимое байта

М+3 (4-й байт)

+ или – 7-битовый порядок

М+2 ( 3-й байт)

+ или – 7 старших битов мантиссы

М+1 (2-й байт)

8 средних битов мантиссы

М (1-й байт)

8 младших битов мантиссы


 

Число в форме с плавающей  точкой занимает 4 байт. Мантисса представлена как число тройной точности и занимает три байта. Старший бит третьего байта знаковый. Четвёртый байт занят порядком: 7 бит величины и 1 бит знака. Арифметика  чисел  с плавающей  точкой  позволяет  оперировать  числами  от

-223×2127 до (223-1)×2127. Следовательно, диапазон чисел очень большой.

                   

3. Архитектура микропроцессора

 

3.1 Внутреннее построение  микропроцессора

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

Архитектура МП – функциональные возможности аппаратных средств  МП, используемые для представления данных, машинных операций, описания алгоритмов и процессов вычислений.

С точки зрения пользователя-программиста под архитектурой МП в общем случае понимают совокупность следующих компонентов и характеристик:

- разрядность адресов  и данных;

- состав и назначение  программно-доступных регистров;

- формат и система  команд;

- режим адресации памяти;

- способы машинного  представления данных разного  типа;

- структура адресного  пространства;

- способы адресации  внешних устройств и средств  выполнения операций ввода-вывода;

- классы прерываний, особенности  инициирования и обработки прерываний.

Какими бы ни были рассматриваемые  МП, касающаяся их информация содержит много общего. Типовая документация содержит информацию о структуре ИС, схеме выводов ИС и назначение каждого из них. Схематизируется архитектура МП, описываются его основные свойства. Одновременно даются временные диаграммы и состав команд МП.

Структурная схема МП даёт наглядное  представление о его архитектуре  и позволяет рассмотреть работу МП по выполнению двух основных функций: обработке и манипулированию данными.

Использование структурной схемы  МП существенно облегчает понимание  того, как МП решает поставленные задачи. Рассмотрим структурную схему, представленную на рисунке 1. Изображённый 8-разрядный МП  приведен в качестве типичного примера и не является какой-либо конкретной моделью, выпускаемой промышленностью. 

      Структурная схема МП даёт наглядное представление о его архитектуре и позволяет рассмотреть работу МП по выполнению двух основных функций: обработке и манипулированию данными.

 

Рис.1 Структурная схема 8-разрядного МП

   

      Использование структурной схемы МП существенно облегчает понимание того, как МП решает поставленные задачи. Рассмотрим  структурную схему представленную на рис. 1

      МП состоит из трёх основных блоков: АЛУ, нескольких регистров и устройства управления. Для передачи данных между этими блоками МП используется внутренняя шина данных. Поясним назначение отдельных элементов структурной схемы.

3.2 Арифметико-логическое  устройство (АЛУ)

     АЛУ выполняет обработку данных. Типичными операциями, выполняемыми АЛУ являются сложение, инвертирование, сдвиг, а также операции инкремента и декремента. АЛУ содержит два входных порта и один выходной порт. Оба входных порта снабжены буферами, роль которых выполняют регистры временного хранения данных – буферные регистры. В конечном итоге АЛУ выполняет все арифметические и логические операции. Каждый порт соединён со своим буферным регистром, способным хранить для АЛУ одно слово данных. АЛУ принимает данные или с внутренней шины данных МП, или из специального регистра, именуемого аккумулятором. Единственный выходной порт АЛУ пересылает слово данных в аккумулятор. АЛУ оперирует одним или двумя словами в зависимости от вида выполняемой операции.

Схема десятичной коррекции позволяет  производить операции десятичной арифметики. Точнее, позволяет выполнять обработку данных, представленных в двоично-десятичной системе счисления.

3.3 Регистры МП

      Регистры являются важной составной частью любого МП. Количество и назначение регистров в МП зависит от его архитектуры. Однако все МП имеют шесть основных регистров: состояния, буферные, команд, адреса памяти, счетчик команд и аккумулятор. Остальные регистры предназначены для упрощения работы программиста. В процессе ознакомления с каждым из основных регистров следует обращать внимание на то,  какое влияние оказывает именно этот регистр на данные, проходящие через МП. Некоторые основные регистры не используются в качестве средства программирования. Это объясняется не их физическим отсутствием, а тем, что программисту не предоставляются средства изменения  содержимого этих регистров. Понимание влияния  каждого основного регистра на поток данных в МП позволяет получить правильное представление о его функционировании.

3.4 Аккумулятор

Аккумулятор – главный регистр  МП при различных манипуляциях с  данными. Для выполнения любой операции над данными прежде всего их необходимо поместить в аккумулятор. Данные поступают в него  с внутренней шины данных МП. В свою очередь аккумулятор может посылать данные на эту шину. На пути прохождения данных из аккумулятора в АЛУ находится буфер аккумулятора. Большинство арифметических и логических операций осуществляется путём использования АЛУ и аккумулятора. Любая из таких операций над двумя словами данных предполагает размещение одного из них в аккумуляторе, а другого в памяти или в каком-либо регистре. Результат операции АЛУ размещается в аккумуляторе. При этом исходное содержимое аккумулятора теряется.

      Количество разрядов аккумулятора соответствует разрядности шины данных МП, т.е. 8 бит. Некоторые МП имеют аккумуляторы двойной длины или группу аккумуляторов.

3.5 Счетчик команд (Program Counter (РС) - программный счётчик)

      Для корректного выполнения программы её команды должны поступать в строго определённом порядке. Счетчик команд следит за тем, какая команда выполняется, а какая подлежит выполнению следующей. Счетчик команд содержит адрес ячейки памяти следующей для выполнения команды. Для МП адресующихся к памяти объёмом 64 кбайта число разрядов счетчика команд равно 16. Счетчик команд (РС) соединён с внутренней шинной данных МП. Теоретически этот регистр может получать данные об адресах программы из любого блока МП, подключенного к внутренней шине. Однако в действительности данные поступают в счетчик команд из памяти ЭВМ.

      Для правильного понимания излагаемого отметим следующее. После извлечения команды из памяти МП автоматически даёт приращение содержимому счетчика команд. Это приращение СК получает как раз в тот момент, когда МП начинает выполнять команду, только что извлеченную из памяти. С этого момента  СК указывает, какой будет следующая команда. СК содержит адрес следующей выполняемой команды на протяжении всего времени выполнения текущей команды. Перед выполнением программы СК загружается адресом ячейки памяти, содержащей первую команду программы.

 

3.6 Регистр адреса памяти (регистр адреса)

      При каждом обращении к памяти ЭВМ регистр адреса памяти указывает (содержит) адрес ячейки памяти, которая подлежит использованию МП. Регистр адреса памяти содержит двоичное число – адрес области памяти. Выход этого регистра называется адресной шиной.

      В течение выборки команды из памяти регистр адреса памяти и счетчик команд имеют одинаковое содержимое, то есть регистр адреса памяти указывает местоположение команды извлекаемой из памяти. После декодирования команды счетчик команд получает приращение, а регистр адреса памяти приращения не получает. При выполнении команды содержимое регистра адреса памяти зависит от выполняемой команды. Если МП должен произвести ещё одно обращение к памяти, то регистр адреса памяти подлежит вторичному использованию при обработке команды. Для некоторых команд адресация к памяти не требуется. При обработки таких команд регистр адреса памяти используется только один раз -  в течении подцикла выборки команды из памяти. Регистр адреса памяти располагает количеством разрядов, достаточным для адресации любой области памяти ЭВМ. Для памяти 64 кбт-16 разрядов.

Информация о работе Микропроцессорные устройства