Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Запись текстов в памяти процессора.

Читайте также:
  1. H-5Fh— обычные (24-битные) дескрипторы памяти
  2. H-A8h — 32-битные дескрипторы памяти
  3. В оперативной памяти;
  4. ВЕРЕН ПАМЯТИ
  5. ВЕРЕН ПАМЯТИ.
  6. Видеозапись как документ или вещественное доказательство
  7. Видеозапись как средство фиксации криминалистически значимой информации

Все символы и буквы могут быть закодированы при помощи восьми двоичных символов. Наиболее распространенными таблицами являются таблицы ASCII с национальными расширениями, применяющиеся в DOS (и которые можно использовать для записи текстов в микропроцессорах), и таблицы ANSI, применяющиеся в WINDOWS. В таблицах ASCII и ANSI первые 128 символов совпадают. В этой части таблицы содержатся символы цифр, знаков препинания, латинские буквы верхнего и нижнего регистров и управляющие символы. Национальные расширения символьных таблиц и символы псевдографики содержатся в последних 128 кодах этих таблиц, поэтому русские тексты в операционных системах DOS и WINDOWS не совпадают.

Арифметико-логические устройства

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

Схема вычитателя числа A из числа B приведена на рисунке 1, а схема вычитателя числа B из числа A приведена на рисунке 2.

Рисунок 1. Схема вычитателя числа A из числа B.

Рисунок 2. Схема вычитателя числа B из числа A.

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

Рисунок 3. Структурная схема арифметического устройства.

В приведённой на рисунке 3 схеме используются четырёхвходовые коммутаторы, для управления каждым из которых достаточно двух бит. То есть для управления всей схемы в целом достаточно четырёх проводов управления. Попытаемся построить таблицу операций, которые будет выполнять эта схема. На результат операции будет влиять вход переноса сумматора PI, поэтому этот провод тоже включим в состав кода, управляющего схемой. Операции, которые выполняются арифметической схемой в зависимости от поданного на управляющие линии кода, приведены в таблице 1.

Проанализируем эту таблицу. Если на все управляющие входы подать низкий потенциал, то к входу сумматора будут подключены коды A и B без инверсии. В этом случае будет производиться операция суммирования. Эта ситуация отображена первыми двумя строками таблицы выполняемых операций. Операция вычитания осуществляется второй, третьей, восьмой и девятой строкой. В этом случае один из операндов поступает на вход сумматора через блок инверторов. Правда для получения дополнительного кода не хватает единицы, но её можно подать на вход переноса сумматора PI. Ещё одной часто используемой операцией является увеличение числа на единицу или уменьшение числа на единицу. Эти операции позволяют легко организовывать циклы в программе и переходить от предыдущего операнда к следующему. Такие операции могут быть выполнены при помощи кодов, записанных в строках четыре, семь, шестнадцать и двадцать пять. Кроме того, схема арифметического устройства может просто передавать на выход любой из входных кодов без изменения, что позволяет осуществлять копирование данных (суммирование с константой ноль) через это устройство без дополнительных схем коммутации.

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

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

 

Команды микропроцессора

Команды микропроцессора в отличие от микрокоманд разрабатываются независимо от аппаратуры микросхемы, поэтому их разрядность обычно совпадает с разрядностью микропроцессора. Команда микропроцессора состоит из инструкции и обозначается код операции КОП (или INS в англоязычной литературе). Команда микропроцессора может состоять только из кода операции, когда не требуется указывать адрес операнда (операнды это данные, над которыми команда производит какое либо действие), или может состоять из кода операции и адресов операндов или данных. Форматы команд очень сильно зависит от структуры процессора. Рассмотрим построение команд для восьмиразрядного процессора, построенного по структуре Фон-Неймана. Примеры построения команд для такого процессора приведены на рисунке 1.

Рисунок 1. Форматы различных команд микропроцессора.

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

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

Рисунок 2. Фрагмент исполняемого кода микропроцессора.

Чтобы уменьшить объём запоминаемой информации и увеличить наглядность исходного текста программы, каждой операции процессора придумывают мнемоническое обозначение. В качестве мнемонического обозначения операции обычно используют сокращения английских слов, обозначающих эту операцию. Например, для операции копирования используется мнемоническое обозначение MOV; для операции суммирования используется мнемоническое обозначение ADD; для операции вычитания используется мнемоническое обозначение SUB; для операции умножения используется мнемоническое обозначение MUL и т.д.

Для полного обозначения команды используется мнемоническое обозначение операции и используемые ею операнды, которые перечисляются через запятую. При этом в большинстве процессоров операнд приёмник информации записывается первым, а операнд источник информации вторым. Например:

MOV R0, A;Скопировать содержимое регистра A в регистр R0

ADD A, R5;Просуммировать содержимое регистров R5 и A, результат поместить в регистр A

Приведённые выше команды - это однобайтовые команды, так как в них используются только внутренние регистры процессора. Если в команде используется константа в качестве операнда или указывается адрес операнда в системной памяти, то команда будет занимать в системной памяти два или три байта. Например:

MOV A, 1025;Скопировать содержимое 1025 ячейки памяти в регистр A

ADD A, #110;Просуммировать содержимое регистра A с числом 110

Несмотря на то, что общий объём исходного текста программы увеличивается, скорость написания и особенно отладки программ в таком виде возрастает. Теперь вместо одного текста программы в памяти компьютера или на бумаге придется хранить два текста: один для человека, который в дальнейшем будем называть исходным текстом программы; другой для микропроцессора, который в дальнейшем будем называть загрузочным модулем.

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

Принципы работы микропроцессора.

В настоящее время наметилось два направления развития микропроцессоров:

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

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

В большинстве случаев быстродействие RISC процессоров выше чем CISC процессоров, однако при выборе процессора нужно учитывать все параметры в целом, т.к. тактовая частота может оказаться значительно ниже по сравнению с CISC процессором (особенно если в нём применяются специальные меры по повышению производительности), разрядность команды может оказаться выше чем у CISC процессора (что чаще всего и бывает). В результате общий объём исполняемой программы для RISC процессора превысит объём подобной программы для CISC процессора.

В качестве примера рассмотрим устройство процессора с полным набором команд. Здесь будет рассматриваться упрощённая модель процессора для облегчения понимания работы. CISC микропроцессор состоит из двух частей:

Блок обработки сигналов микропроцессора.

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

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

Рисунок 1. Блок обработки сигналов.

В этой схеме явно просматривается, что отдельные биты микрокоманды (показанной внизу схемы) управляют различными блоками БОС, поэтому их можно рассматривать независимо друг от друга. Такие группы бит называются полями микрокоманды и составляют формат этой микрокоманды. Кроме бит, управляющих блоком обработки сигналов есть биты, управляющие блоком микропрограммного управления. Формат микрокоманды рассматриваемого процессора приведён на рисунке 3. Результат выполнения микрокоманды записывается по сигналу общей синхронизации CLK.

Для хранения и декодирования выполняемой команды выделим восьмиразрядный регистр, который назовём RI.

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

Так как мы выбрали для примера восьмиразрядный микропроцессор, то и все регистры в этом процессоре восьмиразрядные. Максимальное число, которое можно записать в такой регистр - 255, но для большинства программ такого объёма памяти недостаточно. В приведённой на рисунке 1 схеме для того, чтобы получить 16-ти разрядный адрес используется два 8-ми разрядных регистра адреса. Теперь максимальное число, которое можно записать в этих двух регистрах будет 65535, что вполне достаточно для записи программ и обрабатываемых ими данных. Для того, чтобы различать регистр старшего и младшего байта адреса обозначим их как PCH - старший байт и PCL- младший байт. Это позволяет при помощи восьмиразрядного АЛУ формировать 16-ти разрядный адрес.

Программный счётчик хранит текущее значение ячейки памяти из которой считывается команда, но процессор может обращаться и к данным, поэтому для формирования адреса выделим ещё пару регистров RAH - старший байт и RAL - младший байт. Выходы этих регистров выведем за пределы микросхемы и будем использовать в качестве шестнадцатиразрядной шины адреса.

Ещё один регистр используется для формирования сигналов управления системной шины микропроцессора. В простейшем случае это сигналы записи (WR) и чтения (RD). Для формирования необходимых сигналов достаточно записывать в определённый бит регистра логический 0 или 1. Определим формат регистра управления. Пусть нулевой бит этого регистра будет сигналом записи, а первый бит этого регистра будет сигналом чтения. Остальные биты этого регистра пока не важны. Полученный формат приведён на рисунке 2.

Рисунок 2. Формат регистра управления (CR).

Блок микропрограммного управления

Блок микропрограммного управления предназначен для формирования последовательности микрокоманд блока обработки сигналов. В простейшем случае его можно построить на счетчике с возможностью предзаписи и ПЗУ. Схема такого блока приведена на рисунке 3.

Рисунок 3. Блок микропрограммного управления.

В этой схеме адрес очередной микрокоманды формирует двоичный счётчик. Если требуется осуществить безусловный или условный переход, то новый адрес записывается из ПЗУ в этот счётчик как в обычный параллельный регистр по сигналу параллельной записи V. Переход к следующему адресу микрокоманды производится по сигналу общей синхронизации CLK.

Рисунок 4. Формат микрокоманды процессора

Микропрограммирование

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

При изучении принципов работы ОЗУ и ПЗУ приводились временные диаграммы, которые необходимо сформировать, для того, чтобы записать или прочитать необходимую информацию. Выберем одну из этих диаграмм:

Рисунок 1. Временные диграммы считывания

Любую временную диаграмму формирует микропроцессор. Устройство микросхемы, на примере которой мы будем формировать необходимые для работы сигналы рассматривалось при обсуждении блока обработки сигналов. По принципиальной схеме блока обработки сигнала можно определить формат микрокоманды, управляющей этим блоком.

Работа любого цифрового устройства начинается с заранее заданных начальных условий. Эти начальные условия формируются специальным сигналом RESET (сброс), который формируется после подачи питания на схему. Договоримся, что сигнал сброса микропроцессора будет записывать в регистр программного счетчика PC нулевое значение. (Это условие справедливо не для всех процессоров. Например, IBM совместимые процессоры при сбросе микросхемы записывают в программный счётчик значение F0000h.)

Выполнение любой команды начинается с её считывания из системной памяти (ОЗУ или ПЗУ). Необходимые для этого микрокоманды подаются на входы управления БОС из блока микропрограммного управления БМУ, как только снимается сигнал сброса со счётчика микрокоманд БМУ. При считывании однобайтной команды достаточно считать из системной памяти только код операции и выполнить эту операцию. Временная диаграмма этого процесса приведена на рисунке 2. Последовательность операций, которые необходимо выполнить микропрограмме, показана стрелочками. Для считывания следующей команды микропрограмма запускается заново.

Рисунок 2. Временные диаграммы сигналов считывания команд из системной памяти.

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

  Поля микрокоманды БОС
N Описание константа источник A источник B команда приёмник
1) PCH -> RAH 1111 1111     0011 0 0  
2) PCL -> RAL 1111 1111     0011 0 0  

Затем сформируем сигнал считывания. Для этого в регистр управления запишем константу 1111 1101.

  Поля микрокоманды БОС
N Описание константа источник A источник B команда приёмник
3) const -> CR 1111 1101     0011 0 0  

Теперь можно считать число с шины данных, а так как системная память в этот момент выдаёт на нее код операции, то мы считаем именно этот код. Запишем его в регистр команд и снимем сигнал чтения с системной шины. Для этого в регистр управления запишем константу 1111 1111.

  Поля микрокоманды БОС
N Описание константа источник A источник B команда приёмник
4) data -> RI 1111 1111     1100 0 0  
5) const -> CR 1111 1111     0011 0 0  

Прежде, чем перейти к дальнейшему выполнению микропрограммы, увеличим содержимое счетчика команд на 1.

  Поля микрокоманды БОС
N Описание константа источник A источник B команда приёмник
6) PCL+1 -> PCL 1111 1111     1100 1 0  
7) PCH+C -> PCH 1111 1111     1100 1 0  

После считывания команды её необходимо декодировать. Это можно выполнить микропрограммным способом проверяя каждый бит регистра команд и осуществляя ветвление по результату проверки или включить в состав блока микропрограммного управления аппаратный дешифратор команд, который сможет осуществить ветвление микропрограммы на 256 ветвей за один такт синхронизации микропроцессора. Выберем именно этот путь. Восьмым тактом микропрограмма направляется на одну из 256 ветвей, отвечающую за выполнение считанной инструкции. Например, если была считана команда MOV A, R0, то следующая микрокоманда будет выглядеть следующим образом:

  Поля микрокоманды БОС
N Описание константа источник A источник B команда приёмник
9) R0 -> ACC 1111 1111     1100 0 0  

И так как в этом случае команда полностью выполнена, то счётчик микрокоманд сбрасывается для выполнения следующей команды.

Рассмотрим ещё один пример. Пусть из системной памяти считывается команда безусловного перехода JMP 1234. Первые восемь микрокоманд совпадают для всех команд микропроцессора. Различие наступает начиная с девятой команды, которая зависит от конкретной инструкции. При выполнении команды безусловного перехода необходимо считать адрес новой команды, который записан в байтах, следующих за кодом операции. Этот процесс аналогичен считыванию кода операции:

  Поля микрокоманды БОС
N Описание константа источник A источник B команда приёмник
9) PCH -> RAH 1111 1111     0011 0 0  
10) PCL -> RAL 1111 1111     0011 0 0  
11) const -> CR 1111 1110     0011 0 0  
12) data -> RI 1111 1111     1100 0 0  
13) const -> CR 1111 1111     0011 0 0  
14) PCL+1 -> PCL 1111 1111     1100 1 0  
15) PCH+C -> PCH 1111 1111     1100 1 0  

Теперь считаем второй байт адреса перехода.

  Поля микрокоманды БОС
N Описание константа источник A источник B команда приёмник
16) PCH -> RAH 1111 1111     0011 0 0  
17) PCL -> RAL 1111 1111     0011 0 0  
18) const -> CR 1111 1110     0011 0 0  
19) data -> PCH 1111 1111     1100 0 0  
20) const -> CR 1111 1111     0011 0 0  
21) RI -> PCL 1111 1111     1100 1 0  

В результате выполнения этой микропрограммы в программный счётчик будет загружен адрес, записанный во втором и третьем байтах команды безусловного перехода JMP 1234. Временная диаграмма, формируемая рассмотренной микропрограммой, приведена на рисунке 3.

Рисунок 3. Временная диаграмма выполнения команды JMP 1234.

Системная шина процессора.

Системная шина процессора предназначена для обмена информацией микропроцессора с любыми внутренними устройствами микропроцессорной системы (контроллера или компьютера). В качестве обязательных устройств, которые входят в состав любой микропроцессорной системы, можно назвать ОЗУ, ПЗУ, таймер и порты ввода-вывода. Структурная схема простейшего микропроцессорного устройства приведена на рисунке 1.

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

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

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

В некоторых случаях в понятие шина дополнительно включают требования по уровням напряжения, которыми представляются нули и единицы, передаваемые по её проводам. В состав требований могут быть включены длительности фронтов передаваемых сигналов, типы используемых разъёмов и их распайка, последовательность передаваемых сигналов и скорость их передачи.

Рисунок 1. Структурная схема подключения микропроцессорных устройств к системной шине.

При подключении различных устройств к системной шине возникает вопрос - как различать эти устройства между собой? Единственный способ сделать это использовать индивидуальный адрес для каждого устройства, подключенного к системной шине микропроцессора. Так как адресация производится к каждой ячейке устройства индивидуально, то возникает понятие адресного пространства, занимаемого каждым устройством и адресного пространства микропроцессорного устройства в целом.

Адресное пространство микропроцессорного устройства.

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

Для шестнадцатиразрядной шины это будет число 65535 (64K). Адресное пространство этой шины и распределение памяти микропроцессорной системы, изображённой на рисунке 1, приведено на рисунке 2, а распределение памяти микропроцессорной системы, изображённой на рисунке 1, приведено на рисунке 3.

Рисунок 2. Адресное пространство шестнадцатиразрядной шины адреса.

Рисунок 3. Распределение памяти микропроцессора с шестнадцатиразрядной шиной адреса.

Микропроцессоры после включения питания и выполнения процедуры сброса всегда начинают выполнение программы с определённого адреса, чаще всего нулевого. Однако есть и исключения. Например процессоры, на основе которых строятся универсальные компьютеры IBM PC или Macintosh стартуют не с нулевого адреса. Программа должна храниться в памяти, которая не стирается при выключении питания, то есть в ПЗУ.

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

При построении схемы необходимо декодировать старшие пять разрядов адреса (определить, чтобы они были равны 0). Это выполняется при помощи дешифратора адреса, который в данном случае вырождается в пятивходовую схему "ИЛИ-НЕ" Это связано с тем, что внутри ПЗУ уже есть одиннадцативходовый дешифратор адреса. При использовании дешифратора адреса, обращение к ячейкам памяти выше двух килобайт не приведёт к чтению ячеек ПЗУ, так как на входе выбора кристалла CS уровень напряжения останется высоким.

Теперь подключим микросхему ОЗУ. Для примера выберем микросхему объёмом 8 Кбайт. Для выбора любой из ячеек этой микросхемы достаточно тринадцатибитового адреса, поэтому необходимо дополнительно декодировать три оставшихся разряда адреса. Так как начальные ячейки памяти адресного пространства уже заняты ПЗУ, то использовать нельзя. Выберем следующую комбинацию цифр 001 и используем известные нам принципы построения схемы по произвольной таблице истинности. Дешифратор адреса выродится в данном случае в трёхвходовую схему "И-НЕ" с двумя инверторами на входе. Схема этого дешифратора приведена на рисунке 1. Приведённый дешифратор адреса обеспечивает нулевой уровень сигнала на входе CS только при комбинации старших бит 000. Обратите внимание, что так как объём ПЗУ меньше объёма ОЗУ, то между областью адресов ПЗУ и областью адресов ОЗУ образовалось пустое пространство неиспользуемых адресов памяти.

И, наконец, так как все микропроцессоры предназначены для обработки данных, поступающих извне, то в любой микропроцессорной системе должны присутствовать порты ввода-вывода. Порт ввода-вывода отображается в адресное пространство микропроцессорного устройства как одиночная ячейка памяти, поэтому порт ввода вывода можно разместить по любому свободному адресу. Проще всего построить дешифратор числа FFFFh. В этом случае дешифратор превращается в обычную 16-ти входовую схему "И-НЕ", поэтому и выберем эту ячейку памяти в адресном пространстве микропроцессора для размещения порта ввода-вывода.

Способы расширения адресного пространства микропроцессора.

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

Для расширения адресного пространства можно воспользоваться параллельным портом. Внешние выводы параллельного порта при этом используются в качестве старших битов адресной шины. Такой метод расширения адресного пространства называется страничным методом адресации. Регистр данных параллельного порта при использовании его для расширения адресного пространства будет называться переключателем страниц. Схема использования параллельного порта в качестве переключателя страниц памяти приведена на рисунке 4.

Рисунок 4. Использование параллельного порта в качестве переключателя страниц памяти.

В этой схеме параллельный порт используется в качестве простейшего контроллера памяти микропроцессорного устройства. При применении восьмиразрядного параллельного порта в микропроцессорной системе появились дополнительные восемь линий адреса. В результате адресное пространство микропроцессорной системы увеличилось до 16 Мегабайт. Структура нового адресного пространства приведена на рисунке 5, а принцип формирования нового адреса с использованием переключателя страниц приведён на рисунке 6.

Рисунок 5. Структура страничного адресного пространства.

Рисунок 6. Формирование адреса с использованием переключателя страниц.

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

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

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

Адресное пространство при использовании сегментного метода адресации приведено на рисунке 7.

Рисунок 7. Пример адресного пространства с разделением на сегменты.

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

Рисунок 8. Формирование адреса при сегментной адресации.

Ещё одним распространённым способом увеличения адресного пространства является применение окон. При использовании окон производится расширение не всего адресного пространства, а только его части. Внутри адресного пространства выделяется некоторая область, которая называется окном. В это окно может отображаться часть другого адресного пространства.

При использовании окон может быть использован как страничный метод отображения адресного пространства, так и сегментный метод отображения адресного пространства в окно.

При использовании страничного метода отображения, конкретная страница другого адресного пространства, которая в данный момент отображается в окно памяти, определяется переключателем страниц, построенному по такому же принципу как это было рассмотрено на рисунке 4.

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

Принцип построения оконной адресации при отображении страниц показан на рисунке 9.

Рисунок 9. Применение окна для расширения адресного пространства.

Оконная адресация часто используется при развитии микропроцессорных семейств, когда размера областей памяти, отведённых для конкретных задач в младших моделях семейства, не хватает для старших моделей семейства, а при этом нужно поддерживать аппаратную совместимость с младшими моделями семейства. В качестве примера можно привести микросхемы I81c96 фирмы INTEL или TMS320c5410 фирмы Texas Instrument, где для расширения области регистров специальных функций используется оконная адресация.

Причины широкого распространения микропроцессоров.

Цифровые микросхемы к настоящему времени достигли впечатляющего быстродействия при приемлемом токе потребления. Наиболее быстрые из цифровых микросхем обладают скоростью переключения порядка 3..5 нс. (серия микросхем 74ALS). В то же время приходится платить за быстродействие микросхем повышеным током потребления. Исключением являются микросхемы, построенные на основе КМОП технологии (например микросхемы серий 1564, 74HC, 74AHC). В этих микросхемах потребляемый ток прямо пропорционален скорости переключения логических вентилей в микросхеме. Т.е. микросхема автоматически увеличивает ток потребления, если от нее требуется большее быстродействие, поэтому в настоящее время подавляющее большинство микросхем выпускается именно по этой технологии.

Часто цифровые устройства выполняют достаточно сложные задачи. Возникает вопрос - раз микросхемы достигли такого высокого быстродействия, то нельзя ли использовать одну и ту же микросхему многократно? Тогда можно будет обменивать быстродействие микросхем на сложность решаемой задачи. Именно этот обмен и позволяют осуществлять микропроцессоры. В этих микросхемах многократно используется одно и то же устройство - АЛУ (арифметическо-логическое устройство). Поэтому возможен обмен предельного быстродействия микроконтроллера на сложность реализуемого устройства. Именно по этой причине стараются максимально увеличить быстродействие микропроцессоров - это позволяет реализовывать все более сложные устройства в одном и том же объеме.

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

В наибольшей степени все вышеперечисленные свойства проявляются в однокристальных микроЭВМ или как их чаще называют по области применения: микроконтроллерах. В микроконтроллерах на одном кристалле объединяются все составные части компьютера: микропроцессор (часто называют ядро микроконтроллера), ОЗУ, ПЗУ, таймеры и порты ввода-вывода.

Выводы:

Классификация микропроцессоров.

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

По внутренней структуре существует два основных принципа построения микропроцессоров:

По системе команд микропроцессоры отличаются огромным разнообразием, зависящим от фирмы-производителя. Тем не менее можно определить две крайние политики построения микропроцессоров:

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

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

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

В Гарвардской архитектуре принципиально различаются два вида памяти:

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

Отличие архитектуры Фон Неймана заключается в принципиальной возможности работы над управляющими программами точно так же как над данными. Это позволяет производит загрузку и выгрузку управляющих программ в произвольное место памяти процессора, которая в этой структуре не разделяется на память программ и память данных. Любой участок памяти может служить как памятью программ, так и памятью данных. Причём в разные моменты времени одна и та же область памяти может использоваться и как память программ и как память данных. Для того, чтобы программа могла работать в произвольной области памяти, её необходимо модернизировать перед загрузкой, то есть работать с нею как с обычными данными. Эта особенность архитектуры позволяет наиболее гибко управлять работой микропроцессорной системы, но создаёт принципиальную возможность искажения управляющей программы, что понижает надёжность работы аппаратуры. Эта архитектура используется в универсальных компьютерах и в некоторых видах микроконтроллеров.

Причины широкого распространения микропроцессоров.

Цифровые микросхемы к настоящему времени достигли впечатляющего быстродействия при приемлемом токе потребления. Наиболее быстрые из цифровых микросхем обладают скоростью переключения порядка 3..5 нс. (серия микросхем 74ALS). В то же время приходится платить за быстродействие микросхем повышеным током потребления. Исключением являются микросхемы, построенные на основе КМОП технологии (например микросхемы серий 1564, 74HC, 74AHC). В этих микросхемах потребляемый ток прямо пропорционален скорости переключения логических вентилей в микросхеме. Т.е. микросхема автоматически увеличивает ток потребления, если от нее требуется большее быстродействие, поэтому в настоящее время подавляющее большинство микросхем выпускается именно по этой технологии.

Часто цифровые устройства выполняют достаточно сложные задачи. Возникает вопрос - раз микросхемы достигли такого высокого быстродействия, то нельзя ли использовать одну и ту же микросхему многократно? Тогда можно будет обменивать быстродействие микросхем на сложность решаемой задачи. Именно этот обмен и позволяют осуществлять микропроцессоры. В этих микросхемах многократно используется одно и то же устройство - АЛУ (арифметическо-логическое устройство). Поэтому возможен обмен предельного быстродействия микроконтроллера на сложность реализуемого устройства. Именно по этой причине стараются максимально увеличить быстродействие микропроцессоров - это позволяет реализовывать все более сложные устройства в одном и том же объеме.

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

В наибольшей степени все вышеперечисленные свойства проявляются в однокристальных микроЭВМ или как их чаще называют по области применения: микроконтроллерах. В микроконтроллерах на одном кристалле объединяются все составные части компьютера: микропроцессор (часто называют ядро микроконтроллера), ОЗУ, ПЗУ, таймеры и порты ввода-вывода.

Выводы:

Классификация микропроцессоров.

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

По внутренней структуре существует два основных принципа построения микропроцессоров:

По системе команд микропроцессоры отличаются огромным разнообразием, зависящим от фирмы-производителя. Тем не менее можно определить две крайние политики построения микропроцессоров:

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

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

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

В Гарвардской архитектуре принципиально различаются два вида памяти:

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

Отличие архитектуры Фон Неймана заключается в принципиальной возможности работы над управляющими программами точно так же как над данными. Это позволяет производит загрузку и выгрузку управляющих программ в произвольное место памяти процессора, которая в этой структуре не разделяется на память программ и память данных. Любой участок памяти может служить как памятью программ, так и памятью данных. Причём в разные моменты времени одна и та же область памяти может использоваться и как память программ и как память данных. Для того, чтобы программа могла работать в произвольной области памяти, её необходимо модернизировать перед загрузкой, то есть работать с нею как с обычными данными. Эта особенность архитектуры позволяет наиболее гибко управлять работой микропроцессорной системы, но создаёт принципиальную возможность искажения управляющей программы, что понижает надёжность работы аппаратуры. Эта архитектура используется в универсальных компьютерах и в некоторых видах микроконтроллеров.

Универсальные микропроцессы.

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

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

Умножение внешней тактовой частоты внутри кристалла процессора производится при помощи цепи фазовой автоподстройки частоты, поэтому для установления стабильной внутренней частоты микропроцессора требуется некоторое время, определяемое обычно десятками микросекунд.

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

В качестве решения этой проблемы в современных компьютерах предлагается использование КЭШ-памяти. Эта память с точки зрения программиста никак не видна и общий объём системной памяти не увеличивает. Предназначение КЭШ-памяти - увеличить общее быстродействие системной памяти в целом.

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

Всю логику работы с КЭШ-памятью выполняет контроллер памяти, входящий в набор микросхем (Chip Set) материнской платы компьютера.

Рассмотренный выше метод увеличивает общее быстродействие системной памяти, но при этом быстродействие повышается только до значения тактовой частоты системной шины (внешняя тактовая частота микропроцессора). Согласовать внутреннее быстродействие микропроцессора и быстродействие системной шины позволяет использование внутренней КЭШ памяти. Естественно объём этой внутренней памяти меньше объёма КЭШ-памяти, расположенной на материнской плате компьютера.

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

Микроконтроллеры. Область применения

Термин контроллер образовался от английского слова to control - управлять. Эти устройства могут основываться на различных принципах работы от механических или оптических устройств до электронных аналоговых или цифровых устройств. Механические устройства управления обладают низкой надежностью и высокой стоимостью по сравнению с электронными блоками управления, поэтому в дальнейшем мы такие устройства рассматривать не будем. Электронные аналоговые устройства требуют постоянной регулировки в процессе эксплуатации, что увеличивает стоимость их эксплуатации. Поэтому такие устройства к настоящему времени почти не используются. Наиболее распространенными на сегодняшний день схемами управления являются схемы, построенные на основе цифровых микросхем.

В зависимости от стоимости и габаритов устройства, которым требуется управлять, определяются и требования к контроллеру. Если объект управления занимает десятки метров по площади, как, например, автоматические телефонные станции, базовые станции сотовых систем связи или радиорелейные линии связи, то в качестве контроллеров можно использовать универсальные компьютеры. Управление при этом можно осуществлять через встроенные порты компьютера (LPT, COM, USB или ETHERNET). В такие компьютеры при включении питания заносится управляющая программа, которая и превращает универсальный компьютер в контроллер.

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

Если же к контроллеру предъявляются особенные требования, такие, как работа в условиях тряски, расширенном диапазоне температур, воздействия агрессивных сред, то приходится использовать промышленные варианты универсальных компьютеров. Естественно, что эти компьютеры значительно дороже обычных универсальных компьютеров, но всё равно они позволяют экономить время разработки системы, за счёт того, что не нужно вести разработку аппаратуры контроллера.

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

Любые устройства, в том числе и устройства связи, радиоавтоматики или аудиовизуальной аппаратуры требуют присутствия в своем составе устройства управления (контроллера). Контроллеры требуются практически во всех предметах и устройствах, которые окружают нас. В качестве примера на рисунке 1 приведены узлы автомобиля, в которых применяются микроконтроллеры.

Рисунок 1 Узлы автомобиля, в которых применяются микроконтроллеры.

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

Рисунок 2. Малогабаритная радиостанция с применением микроконтроллеров.

Рисунок 3. Малогабаритная радиостанция с применением микроконтроллеров.

Как выглядит носимая радиостанция внутри показывает фотография, приведённая на рисунке 4.

Рисунок 4. Печатная плата приёмопередатчика носимой радиостанции.

Наиболее распространёнными в настоящее время являются микроконтроллеры семейства MCS-51. Это семейсво поддерживается рядом фирм - производителей микросхем. Не менее распространёнными в мире но не в России являются микроконтроллеры фирмы Motorola. Это такие семейства как HC05, HC07, HC11 и многие другие. Пожалуй, не менее популярными микроконтроллерами являются микроконтроллеры семейства AVR фирмы Atmel. Одно перечисление семейств микроконтроллеров может занять несколько страниц текста, поэтому ограничимся приведёнными семействами восьмиразрядных микроконтроллеров.

 


Дата добавления: 2015-08-09; просмотров: 138 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Представление чисел в двоичном коде с плавающей запятой.| студенческой молодежи в Челябинской области

mybiblioteka.su - 2015-2024 год. (0.056 сек.)