Битовая последовательность данных или инструкций передаваемых процессору это

Антивирусные программы и технологии

Антивирусы— сканеры вирусов.

Вирусы имеют некие механизмы видоизменения. Эти механизмы называются

мутационными механизмами.

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

Способы распознавания вирусов:

1)

поиск вирусов (сканирование) по программам компенсатора и декомпенсатора:

Но разработчики вирусов добавляют шифратор и дешифратор:

2)

проверка целостности работы:

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

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

проверка поведения:

Существует ряд параметров, которым процесс должен удовлетворять. Если процесс начинает вести себя подозрительно, то он блокируется, а затем выдаётся сообщение, что что-то не так.

Хорошие антивирусные программы совмещают все эти три подхода.Правила, которые следует соблюдать:

  1. Использовать ОС, которые предоставляют необходимый уровень безопасности
  2. Нужно устанавливать лицензионное программное обеспечение
  3. Нужно пользоваться надёжными лицензионными антивирусными программами
  4. Необходимо создавать резервные копии

При работе с мобильными программами (интернетом) существует 2 принципиальных вида программ:

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

Для безопасной работы программы ОС применяют различные свойства и приёмы:

1)

«Песочница»

Для программы выделяется определённое место, в котором она может работать.

2)

Интерпретация

Программы апплетов или агентов компилируются в некий машинный язык (например, Java). После этого вместо программы работает её интерпретатор. Таким образом осуществляется проверка каждой команды перед исполнением.

9 Многопроцессорные системы

9.1 Последовательные и параллельные архитектуры ЭВМ

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

Двухпроцессорные ПК, мощные серверы с множеством процессоров, суперкомпьютеры

Преимущества:

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

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

ОС многопроцессорных ЭВМ должны дополнительно гарантировать, что:

— все процессоры загружены работой

— процессы равномерно распределены в системе

— выполнение взаимосвязанных процессов синхронизировано

— процессы работают с постоянными копиями данных, хранящихся в общей памяти

— обеспечивается взаимное исключение для выхода из тупиковых ситуаций

Классификация многопроцессорных систем:

— по структуре каналов обработки данных

— по схеме соединений процессоров

— по способу распределения ресурсов между процессорами

— по разделению функций ОС между процессорами

— по способу работы с памятью

Классификация многопроцессорных систем:

— по структуре каналов обработки данных

— по схеме соединения процессоров

— по способу распределения ресурсов между процессорами

— по разделению функций ОС между процессорами

— по способу работы с памятью

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

Архитектуры компьютеров можно классифицировать по структуре каналов обработки данных, основываясь на понятии потоков данных и команд.
Классификация последовательных и параллельных архитектур ЭВМ:

SISD (Single Instruction, Single Data)— архитектура компьютеров, в которой один процессор последовательно выполняет инструкцию за инструкцией из потока команд над элементами данных (к этой архитектуре относятся традиционные одноядерные однопроцессорные компьютеры)

MISD (Multiple Instruction stream, Single Data stream) – архитектура компьютеров, содержащих несколько вычислительных элементов, выполняющих независимые параллельные потоки операций над одним потоком данных (к этой архитектуре относятся многоядерные процессоры)

SIMD (Single instruction, Multiple data)— архитектура компьютеров, состоящих из нескольких процессорных элементов, одновременно выполняющих одни и те же инструкции над различными элементами данных (к этой архитектуре относят векторные и матричные процессоры)

MIMD (Multiple Instruction stream, Multiple Data stream)— архитектура компьютеров, состоящая из множества полноценных процессоров, каждый из которых выполняет свою последовательность инструкций над своим потоком данных (это полноценная параллельная архитектура настоящих многопроцессорных систем)
Векторный процессор – разновидность SIMD-компьютера, в котором используется один одноядерный процессор, одновременно выполняющий одну и ту же инструкцию над несколькими элементами данных. Матричный процессор— SIMD- система, состоящая из множества простых процессоров, каждый из которых выполняет такое же действие, как и остальные процессоры системы, но над своим элементом данных.
В системах SISD и SIMD не могут выполняться параллельно несколько вычислительных потоков. Однако потоки выполняемые в MISD- системах работают с одними и теми же данными и поэтому не являются независимыми. Параллелизм в полной мере свойственен только MIMD.

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

Замечание:

Архитектура ЭВМ Джона фон Неймана является последовательной SISD архитектурой с одним потоком данных и одним потоком команд.

10. Ввод-вывод

Важнейшая функция ОС — управление всеми устройствами ввода-вывода (перехват сообщений, обеспечение интерфейса)

Большой диапазон скоростей (интернет, диски- 100Мб, мышь- 100 кб)

Ввод- вывод:— механическая часть — электронная часть (процессор-контроллер, адаптер)

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

Интерфейс может управляться контроллером. Устройством и процессом является интерфейс низкого уровня.

У каждого контроллера есть

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

У каждого устройства есть

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

каждому регистру присваивается номер

IN REG PORT

OUT REG PORT

— прямой доступ к памяти— доступ прямого отображения на адресное пространство

POP- 11

10.1 Принципы программного ввода-вывода

  1. Независимость ввода-вывода от устройств
  2. Принципы единообразного именования
  3. Принцип обработки ошибок
  4. Синхронный (блокирующий)
  5. Асинхронный

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

10.2 Способы ввода-вывода

1)Программный ввод-вывод:

Например, хотим напечатать страницу.

Посылается запрос на доступ к устройству: «Можем напечатать или нет?» -> (да)

->страница помещается в пространство ядра -> запрос: «Готов ли принтер?» -> (да) -> в буфер памяти принтера -> печать

2)Управляемый прерываниями ввод-вывод:

На печать одного символа выделяется 10 мс.

Первый символ на печать — Процессор прерывается — Следующий символ на печать — Процессор прерывается

3)Ввод-вывод с прямым доступом к памяти

В машину вмонтирован специальный контроллер- DMA (direct memory allocation). Прерывания не доходят до центрального процессора, а скорость контроллера уменьшается.

10.3 Программные уровни ввода-вывода

1)Обработчик прерываний (либо обрабатывает прерывания, либо блокирует драйвер)

Если не обработалось прерывание, то происходит:

— запоминание текущего состояния процесса

— сохранение содержимого всех регистров

— контекст процесса

— запоминание содержимого стека

— выдача подтверждения контроллеру прерываний

— копирование содержимого регистров с того места, где произошло прерывание, в таблицу процессов

— запуск процедуры обработки прерываний

— выбор процесса, которому передаётся управление

— установка контекста другого процесса

— загрузка регистров нового процесса

— передача управления следующему процессу

2)Драйверы устройств

Драйвер- программа для управления устройства ввода-вывода, подключённого к компьютеру.
Замечания:

  1. пишется производителем устройств
  2. подчиняется международным стандартам
  3. могут управлять несколькими устройствами.

Устройство подключается к ОС через программы- драйверы

Процессоры миллионов компьютеров по всему миру знают только одно — непрерывно выполнять инструкции. А что такое инструкция? Читай дальше что бы узнать.

Инструкция ЦП

Что такое инструкция?

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

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

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

Инструкции по адресации

ОЗУ ЦП

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

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

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

Типы инструкций в ЦП

РИСК-В_3

Вот краткое изложение наиболее распространенных инструкций, используемых различными процессорами. Эти инструкции являются общими для всех регистров и наборов инструкций, независимо от того, являются ли они x86, ARM, MIPS, PowerPC и так далее. Также не имеет значения, является ли набор инструкций RISC или CISC.

  • Арифметические манипуляции инструкции — это те, которые выполняют операции математической обработки, такие как сложение, вычитание, умножение и деление. А также более сложные операции, такие как тригонометрические формулы, квадратные корни, степени.
  • Наблюдения и советы этой статьи мы подготовили на основании опыта команды логические инструкции — это второй тип инструкций, выполняемых ALU, на самом деле они представляют собой двоичные операции, имитирующие работу логических вентилей. То есть AND, OR, XOR, NAND, NOR, XNOR и NOT.
  • Инструкции по манипулированию битами основаны на манипулировании битами идемной строки с помощью таких инструкций, как сдвиг бита влево или вправо, изменение порядка или их переключение.
  • Инструкции по перемещению данных отвечает за перемещение данных из одной части памяти в другую, из одной памяти в другую, из процессора в память и из памяти в процессор.
  • Инструкции по управлению программой те, которые активируются при выполнении определенных условий, таких как
  • Наблюдения и советы этой статьи мы подготовили на основании опыта команды инструкции по переходу — это те, которые указывают, что программа переходит не к следующему адресу памяти, а к конкретному адресу памяти, который отмечен инструкцией перехода.

Типы данных и множественность инструкций

процессоры

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

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

Эта статья про единицу информации. Для использования в других целях, см Бит (значения) .

Бит является самым основным единица информации в компьютерных и цифровых коммуникаций . Название это сокращение от двоичной цифры . Бит представляет логическое состояние с одним из двух возможных значений . Эти значения обычно представлены как «
1 » или « 0 »
, но обычно используются другие представления, такие как истина / ложь , да / нет , + / или вкл / выкл .

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

Символом двоичной цифры является либо «бит» согласно рекомендации стандарта IEC 80000-13 : 2008, либо символ нижнего регистра «b», как рекомендовано стандартом IEEE 1541-2002 .

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

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

История

Кодирование данных дискретными битами использовалось в перфокартах, изобретенных Базилем Бушоном и Жан-Батистом Соколом (1732 г.), разработанных Жозефом Мари Жаккардом (1804 г.), а затем принятых Семеном Корсаковым , Чарльзом Бэббиджем , Германом Холлеритом и ранними производители компьютеров, такие как IBM . Вариантом этой идеи была перфорированная бумажная лента . Во всех этих системах носитель (карта или лента) концептуально содержал множество позиций отверстий; каждая позиция могла быть либо перфорирована, либо нет, таким образом неся один бит информации. Битовое кодирование текста также использовалось в азбуке Морзе (1844 г.) и ранних машинах цифровой связи, таких как телетайпы и биржевые тикеры (1870 г.).

Ральф Хартли предложил использовать логарифмическую меру информации в 1928 году. Клод Э. Шеннон впервые использовал слово «бит» в своей основополагающей статье 1948 года « Математическая теория коммуникации ». Он приписал его происхождение Джону У. Тьюки , который 9 января 1947 года написал меморандум Bell Labs, в котором он сократил «двоичную информационную цифру» до просто «бит». Ванневар Буш написал в 1936 году «биты информации», которые можно было хранить на перфокартах, используемых в механических компьютерах того времени. Первый программируемый компьютер, построенный Конрадом Цузе , использовал двоичную запись чисел.

Физическое представление

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

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

Для устройств, использующих положительную логику , цифровое значение 1 (или логическое значение true) представлено более положительным напряжением по сравнению с представлением 0 . Конкретные напряжения различаются для разных семейств логики, и допускаются вариации, чтобы учесть старение компонентов и помехоустойчивость. Например, в транзисторно-транзисторной логике (ТТЛ) и совместимых схемах цифровые значения 0 и 1 на выходе устройства представлены не более 0,4 В и не менее 2,6 В соответственно; в то время как входы TTL предназначены для распознавания 0,8 В или ниже как 0 и 2,2 В или выше как 1 .

Передача и обработка

Биты передаются по одному при последовательной передаче и несколькими битами при параллельной передаче . Операция побитового необязательно обрабатывает биты по одному за раз. Скорость передачи данных обычно измеряется в десятичных единицах СИ, кратных единице бит в секунду (бит / с), например кбит / с.

Место хранения

В самых ранних неэлектронных устройствах обработки информации, таких как ткацкий станок Жаккарда или аналитическая машина Бэббиджа , бит часто сохранялся как положение механического рычага или шестерни или наличие или отсутствие отверстия в определенной точке бумажной карты. или ленту . Первые электрические устройства для дискретной логики (такие как схемы управления лифтами и светофорами , телефонные переключатели и компьютер Конрада Цузе) представляли биты как состояния электрических реле, которые могли быть либо «разомкнутыми», либо «замкнутыми». Когда реле были заменены электронными лампами , начиная с 1940-х годов, производители компьютеров экспериментировали с различными методами хранения, такими как импульсы давления, идущие по ртутной линии задержки , заряды, хранящиеся на внутренней поверхности электронно-лучевой трубки , или непрозрачные пятна. напечатанные на стеклянных дисках по фотолитографии техники.

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

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

Единица и символ

Бит не определен в Международной системе единиц (СИ). Однако Международная электротехническая комиссия выпустила стандарт IEC 60027 , в котором указано, что символ двоичной цифры должен быть «бит», и его следует использовать во всех кратных, таких как «кбит», для килобита. Однако строчная буква «b» также широко используется и была рекомендована стандартом IEEE 1541 (2002) . Напротив, заглавная буква «B» является стандартным и обычным символом для байта.

Многобитовые блоки

  • v
  • т
  • е
Десятичный
Ценить  Метрическая 
1000 кбит килобит
1000 2 Мбит мегабит
1000 3 Гбит гигабит
1000 4 Тбит терабит
1000 5 Pbit петабит
1000 6 Ebit эксабит
1000 7 Збит зеттабит
1000 8 Ybit йоттабит
Двоичный
Ценить  IEC  Традиционный 
1024 Кибит кибибит Кбит Кб килобит
1024 2 Мибит мебибит Мбит МБ мегабит
1024 3 Гибит гибибит Гбит Гб гигабит
1024 4 Тибит тебибит Тбит Tb терабит
1024 5 Пибит Pebibit
1024 6 Эйбит Exbibit
1024 7 Зибит зебибит
1024 8 Yibit йобибит
Порядки величины данных

Несколько бит

Множественные биты могут быть выражены и представлены несколькими способами. Для удобства представления часто повторяющихся групп битов в информационных технологиях традиционно использовалось несколько единиц информации . Наиболее распространенным является единичный байт , введенный Вернером Бухгольцем в июне 1956 года, который исторически использовался для представления группы битов, используемых для кодирования одного символа текста (до тех пор, пока многобайтовая кодировка UTF-8 не взяла верх) в компьютере, и для этого причина, по которой он использовался в качестве основного адресуемого элемента во многих компьютерных архитектурах . Тенденция в проектировании оборудования сошлась на наиболее распространенной реализации использования восьми бит на байт, как это широко используется сегодня. Однако из-за двусмысленности, связанной с базовым дизайном аппаратного обеспечения, единичный октет был определен для явного обозначения последовательности из восьми битов.

Компьютеры обычно обрабатывают биты группами фиксированного размера, обычно называемыми « словами ». Как и в случае с байтом, количество битов в слове также зависит от конструкции оборудования и обычно составляет от 8 до 80 бит или даже больше в некоторых специализированных компьютерах. В 21 веке у розничных персональных или серверных компьютеров размер слова составляет 32 или 64 бита.

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

Информационная емкость и сжатие информации

Когда информационная емкость системы хранения или канала связи представлена ​​в битах или битах в секунду , это часто относится к двоичным цифрам, которые представляют собой аппаратную способность компьютера хранить двоичные данные ( 0 или 1 , вверх или вниз, текущее или нет. , так далее.). Информационная емкость системы хранения — это только верхняя граница количества хранимой в ней информации. Если два возможных значения одного бита памяти не равновероятны, этот бит памяти содержит менее одного бита информации. Если значение полностью предсказуемо, то считывание этого значения не дает никакой информации (нулевые энтропийные биты, поскольку нет разрешения неопределенности и, следовательно, информация недоступна). Если компьютерный файл, который использует n  битов памяти, содержит только m  <  n  битов информации, то эта информация в принципе может быть закодирована примерно m  битами, по крайней мере, в среднем. Этот принцип лежит в основе технологии сжатия данных. По аналогии, двоичные цифры оборудования относятся к объему доступного пространства для хранения (например, количество ведер, доступных для хранения вещей), и к информационному содержанию заполнения, которое имеет разные уровни детализации (мелкая или грубая, т. Е. сжатая или несжатая информация). Когда детализация более мелкая — когда информация более сжатая, — в том же ведре может содержаться больше.

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

Битовые вычисления

Некоторые побитовые инструкции компьютерного процессора (такие как набор битов ) работают на уровне манипулирования битами, а не данными, интерпретируемыми как совокупность битов.

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

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

Прочие информационные блоки

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

Единицы информации, используемые в теории информации, включают шеннон (Sh), естественную единицу информации (nat) и хартли (Hart). Один шеннон — это максимальное ожидаемое значение информации, необходимой для определения состояния одного бита хранилища. Они связаны соотношением 1 Sh ≈ 0,693 nat ≈ 0,301 Hart.

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

Смотрите также

  • Байт
  • Целое число (информатика)
  • Примитивный тип данных
  • Трит (тройная цифра)
  • Кубит (квантовый бит)
  • Bitstream
  • Энтропия (теория информации)
  • Битрейт и скорость передачи
  • Двоичная система счисления
  • Троичная система счисления
  • Шеннон (единица)

использованная литература

внешние ссылки

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

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

  • Что такое микропроцессоры?
  • Принцип действия
  • Шины
  • Арифметико-логическое устройство и внутренние регистры
  • Декодер, блок управления и память
  • Интерфейс
  • Передача информации
  • Интерфейсные устройства
  • Языки программирования
  • Набор команд микрокомпьютера
  • Память микропроцессора
  • Инструкции микропроцессора
  • Работа микропроцессора на примере вычисления факториала
  • Декодирование

Что такое микропроцессоры?

Компьютер, большой и не очень, функционально (в упрощенной форме) может быть представлен в виде блок-схемы, состоящей из трех основных частей:

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

Микропроцессор является интегральной схемой, предназначенной для работы в качестве ЦПУ микрокомпьютера.

Принцип действия

Назначение микропроцессора заключается в считывании каждой команды из памяти, ее декодировании и выполнении.

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

Такая внутренняя или организационная структура ЦПУ, определяющая его работу, называется его архитектурой.

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

Декодер, блок управления и память - фотография 7

Шины

Микрокомпьютер оперирует двоичным кодом. Бинарная информация представлена двоичными цифрами, называемыми битами. Группа битов образует машинное слово (их количество зависит от конкретной реализации). Обычные размеры слова равны 4, 8, 12, 16, 32 и 64 бит. Байт и полубайт представляют собой набор из 8 и 4 бит соответственно.

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

Интерфейс - фотография 8

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

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

В состав микропроцессора обычно входит и ряд регистров. Они используются для временного хранения команд, данных и адресов во время выполнения программы. Например, у микропроцессора Intel 8085 имеется 8-битный аккумулятор (Acc), 6 8-битных регистров общего назначения (B, C, D, E, H и L), 8-разрядный регистр команд (IR), в котором хранится следующая исполняемая инструкция, 16-битный программный счетчик с адресом следующей команды, которую необходимо выбрать из памяти в IR, 16-битный указатель стека, регистр флагов, который сигнализирует о выполнении определенных условий, возникающих во время выполнения логических и арифметических операций, и некоторые другие специальные регистры для внутренних процессов, доступа к которым у программиста нет.

Декодер, блок управления и память

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

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

Передача информации - изображение 9

Интерфейс

Если к ЦПУ необходимо подключить одно или несколько устройств ввода-вывода, то возникает необходимость в соответствующем интерфейсе. Он выполняет следующие 4 функции:

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

Передача информации

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

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

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

Интерфейсные устройства - фотография 10

Интерфейсные устройства

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

Языки программирования

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

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

Писать программы на ассемблере очень утомительно и требует много времени. Поэтому широкое распространение получили языки высокого уровня, такие как Fortran, Cobol, Algol, Pascal, которые можно затем перевести на язык машины. В этом случае одному оператору обычно соответствует несколько инструкций машинного языка.

Языки программирования - фотография 11

Набор команд микрокомпьютера

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

Обычно он состоит из 5 групп:

  1. Группа передачи данных. Данные команды помогают перемещать информацию между регистрами внутри микропроцессора, между памятью и регистром или ячейками памяти.
  2. Арифметическая группа позволяет складывать, вычитать, увеличивать или уменьшать данные в памяти или регистрах (например, сложить содержимое двух регистров ЦПУ).
  3. Логическая группа используется для операций И, ИЛИ, ИСКЛЮЧАЮЩЕГО ИЛИ, сравнения, циклического сдвига, дополнения данных в памяти или регистрах (например, чтобы пропустить через схему ИЛИ содержимое двух регистров микропроцессора).
  4. Группа ветвления включает безусловные и условные переходы, вызов подпрограмм и возвращение из них. Условные инструкции служат для того, чтобы определенная операция выполнялась только в случае выполнения определенного условия (например, если требуется перейти к конкретной команде, когда результат последнего вычисления был равен нулю). Они обеспечивают возможность программе самой принимать решения.
  5. Группа стека, ввода-вывода и управления микропроцессором производит передачу данных между ЦПУ и периферией, манипулирует стеком и изменяет внутренние флаги управления. Эти команды позволяют программисту остановить устройство, перевести его в нерабочее состояние, включить и отключить систему прерываний и т. д.

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

Набор команд микрокомпьютера - фото 12

Память микропроцессора

Инструкции микропроцессора - изображение 18

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

Выше мы писали о шинах (адресной и данных), а также о каналах чтения (RD) и записи (WR). Эти шины и каналы соединены с памятью: оперативной (ОЗУ, RAM) и постоянным запоминающим устройством (ПЗУ, ROM). В нашем примере рассматривается микропроцессор, ширина каждой из шин которого составляет 8 бит. Это значит, что он способен выполнять адресацию 256 байт (два в восьмой степени). В один момент времени он может считывать из памяти или записывать в нее 8 бит данных. Предположим, что этот простой микропроцессор располагает 128 байтами ПЗУ (начиная с адреса 0) или 128 байтами оперативной памяти (начиная с адреса 128).

Модуль постоянной памяти содержит определенный предварительно установленный постоянный набор байт. Адресная шина запрашивает у ПЗУ определенный байт, который следует передать шине данных. Когда канал чтения (RD) меняет свое состояние, модуль ПЗУ предоставляет запрошенный байт шине данных. То есть в данном случае возможно только чтение данных.

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

Более того, теоретически компьютер может обойтись и вовсе без оперативной памяти. Многие микроконтроллеры позволяют размещать необходимые байты данных непосредственно в чип процессора. Но без ПЗУ обойтись невозможно. В персональных компьютерах ПЗУ называется базовой системой ввода и вывода (БСВВ, BIOS, Basic Input/Output System). Свою работу при запуске микропроцессор начинает с выполнения команд, найденных им в BIOS.

Команды BIOS выполняют тестирование аппаратного обеспечения компьютера, а затем они обращаются к жесткому диску и выбирают загрузочный сектор. Этот загрузочный сектор является отдельной небольшой программой, которую BIOS сначала считывает с диска, а затем размещает в оперативной памяти. После этого микропроцессор начинает выполнять команды расположенного в ОЗУ загрузочного сектора. Программа загрузочного сектора сообщает микропроцессору о том, какие данные (предназначенные для последующего выполнения процессором) следует дополнительно переместить с жесткого диска в оперативную память. Именно так происходит процесс загрузки процессором операционной системы.

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

Работа микропроцессора на примере вычисления факториала - фотография 19

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

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

  • LOADA mem — Загрузить (load) регистр A из некоторого адреса памяти
  • LOADB mem — Загрузить (load) регистр B из некоторого адреса памяти
  • CONB con — Загрузить постоянное значение (constant value) в регистр B
  • SAVEB mem — Сохранить (save) значение регистра B в памяти по определенному адресу
  • SAVEC mem — Сохранить (save) значение регистра C в памяти по определенному адресу
  • ADD — Сложить (add) значения регистров A и B. Результат действия сохранить в регистре C
  • SUB — Вычесть (subtract) значение регистра B из значения регистра A. Результат действия сохранить в регистре C
  • MUL — Перемножить (multiply) значения регистров A и B. Результат действия сохранить в регистре C
  • DIV — Разделить (divide) значение регистра A на значение регистра B. Результат действия сохранить в регистре C
  • COM — Сравнить (compare) значения регистров A и B. Результат передать в тестовый регистр
  • JUMP addr — Перепрыгнуть (jump) к указанному адресу
  • JEQ addr — Если выполняется условие равенства значений двух регистров, перепрыгнуть (jump) к указанному адресу
  • JNEQ addr — Если условие равенства значений двух регистров не выполняется, перепрыгнуть (jump) к указанному адресу
  • JG addr — Если значение больше, перепрыгнуть (jump) к указанному адресу
  • JGE addr — Если значение больше или равно, перепрыгнуть (jump) к указанному адресу
  • JL addr — Если значение меньше, перепрыгнуть (jump) к указанному адресу
  • JLE addr — Если значение меньше или равно, перепрыгнуть (jump) к указанному адресу
  • STOP — Остановить (stop) выполнение

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

Работа микропроцессора на примере вычисления факториала

Декодирование - фотография 20

Рассмотрим работу микропроцессора на конкретном примере выполнения им простой программы, которая вычисляет факториал от числа «5». Сначала решим эту задачку «в тетради»:

факториал от 5 = 5! = 5 * 4 * 3 * 2 * 1 = 120

На языке программирования C этот фрагмент кода, выполняющего данное вычисление, будет выглядеть следующим образом:

a=1;f=1;while (a < = 5){ f = f * a; a = a + 1;}

Когда эта программа завершит свою работу, переменная f будет содержать значение факториала от пяти.

Компилятор C транслирует (то есть переводит) этот код в набор инструкций языка ассемблера. В рассматриваемом нами процессоре оперативная память начинается с адреса 128, а постоянная память (которая содержит язык ассемблера) начинается с адреса 0. Следовательно, на языке данного процессора эта программа будет выглядеть так:

// Предположим, что a по адресу 128// Предположим, что F по адресу 1290 CONB 1 // a=1;1 SAVEB 1282 CONB 1 // f=1;3 SAVEB 1294 LOADA 128 // if a > 5 the jump to 175 CONB 56 COM7 JG 178 LOADA 129 // f=f*a;9 LOADB 12810 MUL11 SAVEC 12912 LOADA 128 // a=a+1;13 CONB 114 ADD15 SAVEC 12816 JUMP 4 // loop back to if17 STOP

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

  • LOADA — 1
  • LOADB — 2
  • CONB — 3
  • SAVEB — 4
  • SAVEC mem — 5
  • ADD — 6
  • SUB — 7
  • MUL — 8
  • DIV — 9
  • COM — 10
  • JUMP addr — 11
  • JEQ addr — 12
  • JNEQ addr — 13
  • JG addr — 14
  • JGE addr — 15
  • JL addr — 16
  • JLE addr — 17
  • STOP — 18

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

// Предположим, что a по адресу 128// Предположим, что F по адресу 129Addr машинная команда/значение0 3 // CONB 11 12 4 // SAVEB 1283 1284 3 // CONB 15 16 4 // SAVEB 1297 1298 1 // LOADA 1289 12810 3 // CONB 511 512 10 // COM13 14 // JG 1714 3115 1 // LOADA 12916 12917 2 // LOADB 12818 12819 8 // MUL20 5 // SAVEC 12921 12922 1 // LOADA 12823 12824 3 // CONB 125 126 6 // ADD27 5 // SAVEC 12828 12829 11 // JUMP 430 831 18 // STOP

Как вы заметили, семь строчек кода на языке C были преобразованы в 18 строчек на языке ассемблера. Они заняли в ПЗУ 32 байта.

Декодирование

Микропроцессоры: производительность и тенденции - фотография 21

Понравилась статья? Расскажите друзьям:

Оцените статью, для нас это очень важно:

Проголосовавших: 6 чел.
Средний рейтинг: 5 из 5.

Микропроцессор – Обзор

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

Микропроцессор состоит из ALU, массива регистров и блока управления. АЛУ выполняет арифметические и логические операции с данными, полученными из памяти или устройства ввода. Массив регистров состоит из регистров, обозначенных буквами, как B, C, D, E, H, L и аккумулятора. Блок управления контролирует поток данных и инструкций внутри компьютера.

Блок-схема базового микрокомпьютера

Базовый микрокомпьютер

Как работает микропроцессор?

Микропроцессор следует последовательности: выборка, декодирование, а затем выполнение.

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

Список терминов, используемых в микропроцессоре

Вот список некоторых часто используемых терминов в микропроцессоре:

  • Набор инструкций – это набор инструкций, которые может понять микропроцессор.

  • Полоса пропускания – это число битов, обрабатываемых в одной инструкции.

  • Тактовая частота – определяет количество операций в секунду, которые может выполнять процессор. Он выражается в мегагерцах (МГц) или гигагерцах (ГГц). Он также известен как тактовая частота.

  • Длина слова – зависит от ширины внутренней шины данных, регистров, ALU и т. Д. 8-разрядный микропроцессор может одновременно обрабатывать 8-разрядные данные. Длина слова варьируется от 4 до 64 бит в зависимости от типа микрокомпьютера.

  • Типы данных – Микропроцессор имеет несколько форматов типов данных, таких как двоичные, BCD, ASCII, числа со знаком и без знака.

Набор инструкций – это набор инструкций, которые может понять микропроцессор.

Полоса пропускания – это число битов, обрабатываемых в одной инструкции.

Тактовая частота – определяет количество операций в секунду, которые может выполнять процессор. Он выражается в мегагерцах (МГц) или гигагерцах (ГГц). Он также известен как тактовая частота.

Длина слова – зависит от ширины внутренней шины данных, регистров, ALU и т. Д. 8-разрядный микропроцессор может одновременно обрабатывать 8-разрядные данные. Длина слова варьируется от 4 до 64 бит в зависимости от типа микрокомпьютера.

Типы данных – Микропроцессор имеет несколько форматов типов данных, таких как двоичные, BCD, ASCII, числа со знаком и без знака.

Особенности микропроцессора

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

  • Экономически эффективный – микропроцессорные чипы доступны по низким ценам и, как следствие, имеют низкую стоимость.

  • Размер – микропроцессор имеет небольшой размер чипа, поэтому является портативным.

  • Низкое энергопотребление – Микропроцессоры изготавливаются с использованием металлооксидной полупроводниковой технологии, которая имеет низкое энергопотребление.

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

  • Надежность – частота отказов IC в микропроцессорах очень низка, поэтому она надежна.

Экономически эффективный – микропроцессорные чипы доступны по низким ценам и, как следствие, имеют низкую стоимость.

Размер – микропроцессор имеет небольшой размер чипа, поэтому является портативным.

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

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

Надежность – частота отказов IC в микропроцессорах очень низка, поэтому она надежна.

Микропроцессор – Классификация

Микропроцессор можно разделить на три категории –

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

RISC-процессор

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

Некоторые из процессоров RISC –

  • Мощность ПК: 601, 604, 615, 620
  • DEC Alpha: 210642, 211066, 21068, 21164
  • MIPS: TS (R10000) RISC-процессор
  • PA-RISC: HP 7100LC

Архитектура РИСК

Микропроцессорная архитектура RISC использует высокооптимизированный набор инструкций. Он используется в портативных устройствах, таких как Apple iPod, благодаря своей энергоэффективности.

Архитектура РИСК

Характеристики РИСК

Основные характеристики процессора RISC следующие:

  • Он состоит из простых инструкций.

  • Он поддерживает различные форматы типов данных.

  • Он использует простые режимы адресации и инструкции фиксированной длины для конвейерной обработки.

  • Он поддерживает регистр для использования в любом контексте.

  • Время выполнения одного цикла.

  • Инструкции «LOAD» и «STORE» используются для доступа к ячейке памяти.

  • Он состоит из большего количества регистров.

  • Он состоит из меньшего количества транзисторов.

Он состоит из простых инструкций.

Он поддерживает различные форматы типов данных.

Он использует простые режимы адресации и инструкции фиксированной длины для конвейерной обработки.

Он поддерживает регистр для использования в любом контексте.

Время выполнения одного цикла.

Инструкции «LOAD» и «STORE» используются для доступа к ячейке памяти.

Он состоит из большего количества регистров.

Он состоит из меньшего количества транзисторов.

CISC Процессор

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

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

Некоторые из процессоров CISC –

  • IBM 370/168
  • VAX 11/780
  • Intel 80486

Архитектура CISC

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

Архитектура CISC

Характеристики CISC

  • Разнообразие режимов адресации.
  • Большое количество инструкций.
  • Переменная длина форматов команд.
  • Для выполнения одной инструкции может потребоваться несколько циклов.
  • Логика декодирования инструкций сложна.
  • Для поддержки нескольких режимов адресации требуется одна инструкция.

Специальные процессоры

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

сопроцессор

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

Например – Математический сопроцессор.

Некоторые математические сопроцессоры Intel –

  • 8087-используется с 8086
  • 80287-используется с 80286
  • 80387-используется с 80386

Процессор ввода / вывода

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

Например

  • Контроллер прямого доступа к памяти
  • Контроллер клавиатуры / мыши
  • Контроллер графического дисплея
  • Контроллер порта SCSI

Транспутер (Транзистор Компьютер)

Транспьютер – это специально разработанный микропроцессор с собственной локальной памятью и связями для соединения одного транспортера с другим транспортом для межпроцессорной связи. Впервые он был разработан в 1980 году компанией Inmos и нацелен на использование технологии СБИС.

Транспортер может использоваться как однопроцессорная система или может быть подключен к внешним каналам, что снижает стоимость строительства и повышает производительность.

Например – 16-битный T212, 32-битный T425, процессоры с плавающей запятой (T800, T805 и T9000).

DSP (цифровой сигнальный процессор)

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

DSP содержит следующие компоненты –

  • Память программ – хранит программы, которые DSP будет использовать для обработки данных.

  • Память данных – хранит информацию для обработки.

  • Compute Engine – выполняет математическую обработку, получая доступ к программе из памяти программ и данным из памяти данных.

  • Ввод / вывод – он подключается к внешнему миру.

Память программ – хранит программы, которые DSP будет использовать для обработки данных.

Память данных – хранит информацию для обработки.

Compute Engine – выполняет математическую обработку, получая доступ к программе из памяти программ и данным из памяти данных.

Ввод / вывод – он подключается к внешнему миру.

Его приложения –

  • Синтез звука и музыки
  • Аудио и видео компрессия
  • Обработка видеосигнала
  • 2D и 3D графическое ускорение.

Например – серия TMS 320 от Texas Instrument, например, TMS 320C40, TMS320C50.

Микропроцессор – 8085 Архитектура

8085 произносится как «восемьдесят восемьдесят пять» микропроцессор. Это 8-битный микропроцессор, разработанный Intel в 1977 году с использованием технологии NMOS.

Он имеет следующую конфигурацию –

  • 8-битная шина данных
  • 16-битная адресная шина, которая может адресовать до 64 КБ
  • 16-битный программный счетчик
  • 16-битный указатель стека
  • Шесть 8-битных регистров, расположенных попарно: BC, DE, HL
  • Требуется питание + 5 В для работы на однофазных тактовых частотах 3,2 МГц

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

Микропроцессор 8085 – Функциональные блоки

8085 состоит из следующих функциональных блоков –

аккумуляторный

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

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

Как следует из названия, он выполняет арифметические и логические операции, такие как сложение, вычитание, AND, OR и т. Д. Над 8-битными данными.

Регистр общего назначения

В процессоре 8085 имеется 6 регистров общего назначения, то есть B, C, D, E, H & L. Каждый регистр может содержать 8-битные данные.

Эти регистры могут работать в паре для хранения 16-битных данных, и их комбинация сочетания похожа на BC, DE & HL.

Счетчик команд

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

Указатель стека

Это также 16-битный регистр, работающий как стек, который всегда увеличивается / уменьшается на 2 во время операций push & pop.

Временный регистр

Это 8-битный регистр, который содержит временные данные арифметических и логических операций.

Флаг регистр

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

Это набор из 5 шлепанцев –

  • Приметы)
  • Ноль (Z)
  • Вспомогательный Carry (AC)
  • Паритет (P)
  • Нести (С)

Его битовая позиция показана в следующей таблице –

D7 D6 D5 D4 D3 D2 D1 Д0
S Z переменный ток п CY

Регистр команд и декодер

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

Сроки и блок управления

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

  • Управляющие сигналы: ГОТОВ, RD ‘, WR’, ALE
  • Сигналы состояния: S0, S1, IO / M ‘
  • Сигналы DMA: ДЕРЖАТЬ, HLDA
  • Сигналы RESET: RESET IN, RESET OUT

Управление прерываниями

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

В микропроцессоре 8085 имеется 5 сигналов прерывания: INTR, RST 7.5, RST 6.5, RST 5.5, TRAP.

Управление последовательным вводом / выводом

Он управляет последовательной передачей данных с помощью этих двух инструкций: SID (данные последовательного ввода) и SOD (данные последовательного ввода).

Адресный буфер и адресный буфер данных

Содержимое, хранящееся в указателе стека и программном счетчике, загружается в буфер адресов и буфер данных-адресов для связи с ЦП. Микросхемы памяти и ввода / вывода подключены к этим шинам; CPU может обмениваться нужными данными с памятью и чипами ввода / вывода.

Адресная шина и шина данных

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

8085 Архитектура

Мы попытались изобразить архитектуру 8085 с помощью следующего изображения –

8085 Архитектура

Микропроцессор – 8085 контактов

На следующем рисунке изображена схема контактов микропроцессора 8085 –

Конфигурация контактов 8085

Контакты микропроцессора 8085 можно разделить на семь групп:

Адресная шина

A15-A8, он несет самый значительный 8-битный адрес памяти / ввода-вывода.

Шина данных

AD7-AD0, он несет наименее значимый 8-битный адрес и шину данных.

Сигналы управления и состояния

Эти сигналы используются для определения характера операции. Есть 3 сигнала управления и 3 сигнала состояния.

Три управляющих сигнала: RD, WR и ALE.

  • RD – этот сигнал указывает, что выбранное устройство ввода-вывода или запоминающее устройство должно быть прочитано и готово к приему данных, доступных на шине данных.

  • WR – этот сигнал указывает, что данные на шине данных должны быть записаны в выбранную память или место ввода / вывода.

  • ALE – это положительный импульс, генерируемый микропроцессором при запуске новой операции. Когда пульс становится высоким, это указывает на адрес. Когда пульс идет вниз, это указывает на данные.

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

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

ALE – это положительный импульс, генерируемый микропроцессором при запуске новой операции. Когда пульс становится высоким, это указывает на адрес. Когда пульс идет вниз, это указывает на данные.

Три сигнала состояния: IO / M, S0 и S1.

IO / М

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

S1 & S0

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

Источник питания

Есть 2 источника питания – VCC и VSS. VCC указывает источник питания + 5 В, а VSS указывает сигнал заземления.

Тактовые сигналы

Есть 3 тактовых сигнала, то есть X1, X2, CLK OUT.

  • X1, X2 – Кристалл (RC, LC N / W) подключен к этим двум контактам и используется для установки частоты внутреннего тактового генератора. Эта частота внутренне делится на 2.

  • CLK OUT – этот сигнал используется в качестве системных часов для устройств, подключенных к микропроцессору.

X1, X2 – Кристалл (RC, LC N / W) подключен к этим двум контактам и используется для установки частоты внутреннего тактового генератора. Эта частота внутренне делится на 2.

CLK OUT – этот сигнал используется в качестве системных часов для устройств, подключенных к микропроцессору.

Прерывания и внешние сигналы

Прерывания – это сигналы, генерируемые внешними устройствами для запроса микропроцессора на выполнение задачи. Существует 5 сигналов прерывания, т.е. TRAP, RST 7.5, RST 6.5, RST 5.5 и INTR. Мы подробно обсудим прерывания в разделе прерываний.

  • INTA – это сигнал подтверждения прерывания.

  • RESET IN – этот сигнал используется для сброса микропроцессора путем установки счетчика программы на ноль.

  • RESET OUT – этот сигнал используется для сброса всех подключенных устройств при сбросе микропроцессора.

  • ГОТОВ – этот сигнал указывает на то, что устройство готово к отправке или получению данных. Если READY имеет низкий уровень, тогда процессор должен ждать, пока READY поднимется до высокого уровня.

  • HOLD – этот сигнал указывает, что другой мастер запрашивает использование адреса и шин данных.

  • HLDA (HOLD Acknowledge) – указывает на то, что ЦП получил запрос HOLD, и он освободит шину в следующем тактовом цикле. HLDA устанавливается на низкий уровень после снятия сигнала HOLD.

INTA – это сигнал подтверждения прерывания.

RESET IN – этот сигнал используется для сброса микропроцессора путем установки счетчика программы на ноль.

RESET OUT – этот сигнал используется для сброса всех подключенных устройств при сбросе микропроцессора.

ГОТОВ – этот сигнал указывает на то, что устройство готово к отправке или получению данных. Если READY имеет низкий уровень, тогда процессор должен ждать, пока READY поднимется до высокого уровня.

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

HLDA (HOLD Acknowledge) – указывает на то, что ЦП получил запрос HOLD, и он освободит шину в следующем тактовом цикле. HLDA устанавливается на низкий уровень после снятия сигнала HOLD.

Последовательные сигналы ввода / вывода

Есть 2 последовательных сигнала, то есть SID и SOD, и эти сигналы используются для последовательной связи.

  • SOD (строка данных последовательного выхода) – выходной SOD устанавливается / сбрасывается в соответствии с инструкцией SIM.

  • SID (строка последовательного ввода данных) – данные в этой строке загружаются в аккумулятор при каждом выполнении команды RIM.

SOD (строка данных последовательного выхода) – выходной SOD устанавливается / сбрасывается в соответствии с инструкцией SIM.

SID (строка последовательного ввода данных) – данные в этой строке загружаются в аккумулятор при каждом выполнении команды RIM.

8085 адресация режимов и прерываний

Теперь давайте обсудим режимы адресации в микропроцессоре 8085.

Режимы адресации в 8085 году

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

Режим немедленной адресации

В этом режиме 8/16-битные данные указываются в самой инструкции как один из ее операндов. Например: MVI K, 20F: означает, что 20F скопирован в регистр K.

Зарегистрировать режим адресации

В этом режиме данные копируются из одного регистра в другой. Например: MOV K, B: означает, что данные в регистре B копируются в регистр K.

Режим прямой адресации

В этом режиме данные напрямую копируются с заданного адреса в регистр. Например: LDB 5000K: означает, что данные по адресу 5000K копируются в регистр B.

Режим косвенной адресации

В этом режиме данные передаются из одного регистра в другой, используя адрес, указанный регистром. Например: MOV K, B: означает, что данные передаются с адреса памяти, указанного регистром, в регистр K.

Подразумеваемый режим адресации

Этот режим не требует никакого операнда; данные определяются самим кодом операции. Например: CMP.

Прерывает в 8085

Прерывания – это сигналы, генерируемые внешними устройствами для запроса микропроцессора для выполнения задачи. Существует 5 сигналов прерывания, т.е. TRAP, RST 7.5, RST 6.5, RST 5.5 и INTR.

Прерывания классифицируются на следующие группы в зависимости от их параметра –

  • Векторное прерывание – в этом типе прерывания адрес прерывания известен процессору. Например: RST7.5, RST6.5, RST5.5, TRAP.

  • Невекторное прерывание – В этом типе прерывания адрес прерывания не известен процессору, поэтому для прерывания адрес прерывания должен отправляться внешним устройством. Например: INTR.

  • Маскируемое прерывание – в этом типе прерывания мы можем отключить прерывание, написав некоторые инструкции в программу. Например: RST7.5, RST6.5, RST5.5.

  • Немаскируемое прерывание – в этом типе прерывания мы не можем отключить прерывание, записав некоторые инструкции в программу. Например: TRAP.

  • Программное прерывание. В этом типе прерывания программист должен добавить в программу инструкции для выполнения прерывания. В 8085 есть 8 программных прерываний, то есть RST0, RST1, RST2, RST3, RST4, RST5, RST6 и RST7.

  • Аппаратное прерывание. В 8085 в качестве аппаратных прерываний используются 5 контактов прерывания, т. Е. TRAP, RST7.5, RST6.5, RST5.5, INTA.

Векторное прерывание – в этом типе прерывания адрес прерывания известен процессору. Например: RST7.5, RST6.5, RST5.5, TRAP.

Невекторное прерывание – В этом типе прерывания адрес прерывания не известен процессору, поэтому для прерывания адрес прерывания должен отправляться внешним устройством. Например: INTR.

Маскируемое прерывание – в этом типе прерывания мы можем отключить прерывание, написав некоторые инструкции в программу. Например: RST7.5, RST6.5, RST5.5.

Немаскируемое прерывание – в этом типе прерывания мы не можем отключить прерывание, записав некоторые инструкции в программу. Например: TRAP.

Программное прерывание. В этом типе прерывания программист должен добавить в программу инструкции для выполнения прерывания. В 8085 есть 8 программных прерываний, то есть RST0, RST1, RST2, RST3, RST4, RST5, RST6 и RST7.

Аппаратное прерывание. В 8085 в качестве аппаратных прерываний используются 5 контактов прерывания, т. Е. TRAP, RST7.5, RST6.5, RST5.5, INTA.

Примечание. NTA не является прерыванием, оно используется микропроцессором для отправки подтверждения. TRAP имеет самый высокий приоритет, затем RST7.5 и так далее.

Программа обработки прерываний (ISR)

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

TRAP

Это немаскируемое прерывание, имеющее самый высокий приоритет среди всех прерываний. По умолчанию он включен, пока не получит подтверждение. В случае сбоя он выполняется как ISR и отправляет данные в резервную память. Это прерывание передает управление в местоположение 0024H.

RST7.5

Это маскируемое прерывание, имеющее второй по приоритетности приоритет среди всех прерываний. Когда выполняется это прерывание, процессор сохраняет содержимое регистра ПК в стек и переходит на адрес 003CH.

RST 6.5

Это маскируемое прерывание, имеющее третий самый высокий приоритет среди всех прерываний. Когда выполняется это прерывание, процессор сохраняет содержимое регистра ПК в стек и переходит по адресу 0034H.

RST 5.5

Это маскируемое прерывание. Когда выполняется это прерывание, процессор сохраняет содержимое регистра ПК в стек и переходит по адресу 002CH.

ВВЕДЕНИ

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

Когда сигнал INTR становится высоким , могут произойти следующие события:

  • Микропроцессор проверяет состояние сигнала INTR во время выполнения каждой инструкции.

  • Когда сигнал INTR высокий, микропроцессор завершает свою текущую команду и посылает активный сигнал подтверждения прерывания низкого уровня.

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

Микропроцессор проверяет состояние сигнала INTR во время выполнения каждой инструкции.

Когда сигнал INTR высокий, микропроцессор завершает свою текущую команду и посылает активный сигнал подтверждения прерывания низкого уровня.

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

Микропроцессор – 8085 инструкций

Давайте посмотрим на программирование микропроцессора 8085.

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

S.No. Инструкция и описание
1 Инструкция по управлению

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

2 Логические Инструкции

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

3 Инструкции по ветвлению

Ниже приведена таблица со списком команд ветвления с их значениями.

4 Арифметические инструкции

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

5 Инструкция по передаче данных

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

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

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

Ниже приведена таблица со списком команд ветвления с их значениями.

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

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

8085 – Демонстрационные программы

Теперь давайте посмотрим на некоторые демонстрации программ, используя приведенные выше инструкции:

Добавление двух 8-битных чисел

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

Проблема демо

(3005H) = 14H 
   (3006H) = 89H

Результат

14H + 89H = 9DH

Код программы можно записать так:

 LXI H 3005H: «HL points 3005H» 
 MOV A, M: «Получение первого операнда» 
 INX H: «HL points 3006H» 
 ДОБАВИТЬ М: «Добавить второй операнд» 
 INX H: "HL points 3007H" 
 MOV M, A: «Сохранить результат на 3007H» 
 HLT: «Программа выхода» 

Обмен местами памяти

Напишите программу для обмена данными в 5000M и 6000M памяти.

LDA 5000M   : "Getting the contents at5000M location into accumulator" 
MOV B, A    : "Save the contents into B register" 
LDA 6000M   : "Getting the contents at 6000M location into accumulator" 
STA 5000M   : "Store the contents of accumulator at address 5000M" 
MOV A, B    : "Get the saved contents back into A register" 
STA 6000M   : "Store the contents of accumulator at address 6000M" 

Упорядочить числа в порядке возрастания

Напишите программу, чтобы расположить первые 10 чисел с адреса памяти 3000H в порядке возрастания.

MVI B, 09         :"Initialize counter"      
START             :"LXI H, 3000H: Initialize memory pointer" 
MVI C, 09H        :"Initialize counter 2" 
BACK: MOV A, M    :"Get the number" 
INX H             :"Increment memory pointer" 
CMP M             :"Compare number with next number" 
JC SKIP           :"If less, don’t interchange" 
JZ SKIP           :"If equal, don’t interchange" 
MOV D, M 
MOV M, A 
DCX H 
MOV M, D 
INX H             :"Interchange two numbers" 
SKIP:DCR C        :"Decrement counter 2" 
JNZ BACK          :"If not zero, repeat" 
DCR B             :"Decrement counter 1" 
JNZ START 
HLT               :"Terminate program execution" 

Микропроцессор – 8086 Обзор

Микропроцессор 8086 – это расширенная версия микропроцессора 8085, разработанная Intel в 1976 году. Это 16-разрядный микропроцессор с 20 адресными строками и 16 строками данных, который обеспечивает хранение до 1 МБ. Он состоит из мощного набора команд, который позволяет легко выполнять такие операции, как умножение и деление.

Он поддерживает два режима работы, то есть Максимальный режим и Минимальный режим. Режим Maximum подходит для системы с несколькими процессорами, а режим Minimum подходит для системы с одним процессором.

Особенности 8086

Наиболее характерные особенности микропроцессора 8086:

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

  • Это был первый 16-битный процессор с 16-битным ALU, 16-битными регистрами, внутренней шиной данных и 16-битной внешней шиной данных, что привело к более быстрой обработке.

  • Это доступно в 3 версиях, основанных на частоте операции –

    • 8086 → 5 МГц

    • 8086-2 → 8 МГц

    • (c) 8086-1 → 10 МГц

  • Он использует два этапа конвейерной обработки: этап извлечения и этап выполнения, что повышает производительность.

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

  • Этап выполнения выполняет эти инструкции.

  • Имеет 256 векторных прерываний.

  • Он состоит из 29 000 транзисторов.

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

Это был первый 16-битный процессор с 16-битным ALU, 16-битными регистрами, внутренней шиной данных и 16-битной внешней шиной данных, что привело к более быстрой обработке.

Это доступно в 3 версиях, основанных на частоте операции –

8086 → 5 МГц

8086-2 → 8 МГц

(c) 8086-1 → 10 МГц

Он использует два этапа конвейерной обработки: этап извлечения и этап выполнения, что повышает производительность.

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

Этап выполнения выполняет эти инструкции.

Имеет 256 векторных прерываний.

Он состоит из 29 000 транзисторов.

Сравнение микропроцессора 8085 и 8086

  • Размер – 8085 – это 8-битный микропроцессор, тогда как 8086 – это 16-битный микропроцессор.

  • Адресная шина – 8085 имеет 16-разрядную адресную шину, а 8086 имеет 20-разрядную адресную шину.

  • Память – 8085 может получить доступ до 64 КБ, а 8086 – до 1 МБ памяти.

  • Инструкция – 8085 не имеет очереди команд, тогда как 8086 имеет очередь команд.

  • Конвейерная обработка – 8085 не поддерживает конвейерную архитектуру, в то время как 8086 поддерживает конвейерную архитектуру.

  • I / O – 8085 может адресовать 2 ^ 8 = 256 I / O, тогда как 8086 может обращаться к 2 ^ 16 = 65 536 I / O.

  • Стоимость – стоимость 8085 низкая, а 8086 высокая.

Размер – 8085 – это 8-битный микропроцессор, тогда как 8086 – это 16-битный микропроцессор.

Адресная шина – 8085 имеет 16-разрядную адресную шину, а 8086 имеет 20-разрядную адресную шину.

Память – 8085 может получить доступ до 64 КБ, а 8086 – до 1 МБ памяти.

Инструкция – 8085 не имеет очереди команд, тогда как 8086 имеет очередь команд.

Конвейерная обработка – 8085 не поддерживает конвейерную архитектуру, в то время как 8086 поддерживает конвейерную архитектуру.

I / O – 8085 может адресовать 2 ^ 8 = 256 I / O, тогда как 8086 может обращаться к 2 ^ 16 = 65 536 I / O.

Стоимость – стоимость 8085 низкая, а 8086 высокая.

Архитектура 8086 года

Следующая диаграмма изображает архитектуру микропроцессора 8086 –

Архитектура 8086 года

Микропроцессор – 8086 функциональных блоков

Микропроцессор 8086 разделен на два функциональных блока: EU (исполнительный модуль) и BIU (шинный интерфейсный модуль).

ЕС (исполнительный блок)

Блок выполнения дает инструкции для BIU, в которых указывается, откуда следует извлечь данные, а затем декодировать и выполнять эти инструкции. Его функция заключается в управлении операциями с данными с использованием декодера команд и ALU. EU не имеет прямого соединения с системными шинами, как показано на рисунке выше, он выполняет операции над данными через BIU.

Давайте теперь обсудим функциональные части 8086 микропроцессоров.

ALU

Он обрабатывает все арифметические и логические операции, такие как операции +, -, ×, /, OR, AND, NOT.

Флаг Регистр

Это 16-битный регистр, который ведет себя как триггер, то есть он меняет свое состояние в соответствии с результатом, сохраненным в аккумуляторе. У этого есть 9 флагов, и они разделены на 2 группы – Условные Флаги и Контрольные Флаги.

Условные флаги

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

  • Флаг переноса – этот флаг указывает условие переполнения для арифметических операций.

  • Вспомогательный флаг – Когда операция выполняется в ALU, это приводит к переносу / кургану от нижнего полубайта (то есть D0 – D3) к верхнему полубайту (то есть D4 – D7), тогда этот флаг устанавливается, то есть перенос, данный битом D3 для D4 – флаг AF. Процессор использует этот флаг для выполнения двоичного преобразования в BCD.

  • Флаг четности – этот флаг используется для указания четности результата, т. Е. Когда младшие 8 битов результата содержат четное число единиц, устанавливается флаг четности. Для нечетного числа 1 флаг четности сбрасывается.

  • Флаг нуля – этот флаг равен 1, если результат арифметической или логической операции равен нулю, в противном случае он равен 0.

  • Флаг знака – этот флаг содержит знак результата, т. Е. Когда результат операции отрицательный, тогда флаг знака устанавливается в 1, а в 0.

  • Флаг переполнения – этот флаг представляет результат при превышении емкости системы.

Флаг переноса – этот флаг указывает условие переполнения для арифметических операций.

Вспомогательный флаг – Когда операция выполняется в ALU, это приводит к переносу / кургану от нижнего полубайта (то есть D0 – D3) к верхнему полубайту (то есть D4 – D7), тогда этот флаг устанавливается, то есть перенос, данный битом D3 для D4 – флаг AF. Процессор использует этот флаг для выполнения двоичного преобразования в BCD.

Флаг четности – этот флаг используется для указания четности результата, т. Е. Когда младшие 8 битов результата содержат четное число единиц, устанавливается флаг четности. Для нечетного числа 1 флаг четности сбрасывается.

Флаг нуля – этот флаг равен 1, если результат арифметической или логической операции равен нулю, в противном случае он равен 0.

Флаг знака – этот флаг содержит знак результата, т. Е. Когда результат операции отрицательный, тогда флаг знака устанавливается в 1, а в 0.

Флаг переполнения – этот флаг представляет результат при превышении емкости системы.

Контрольные Флаги

Флаги управления управляют операциями исполнительного блока. Ниже приведен список контрольных флагов –

  • Флаг прерывания – используется для одноэтапного управления и позволяет пользователю выполнять одну инструкцию за один раз для отладки. Если он установлен, то программа может быть запущена в одношаговом режиме.

  • Флаг прерывания – это флаг включения / отключения прерывания, то есть используемый для разрешения / запрета прерывания программы. Он установлен в 1 для состояния разрешения прерывания и в 0 для условия отключения прерывания.

  • Флаг направления – используется в строковой операции. Как следует из названия, когда оно установлено, к строковым байтам обращаются от старшего адреса памяти к младшему адресу памяти и наоборот.

Флаг прерывания – используется для одноэтапного управления и позволяет пользователю выполнять одну инструкцию за один раз для отладки. Если он установлен, то программа может быть запущена в одношаговом режиме.

Флаг прерывания – это флаг включения / отключения прерывания, то есть используемый для разрешения / запрета прерывания программы. Он установлен в 1 для состояния разрешения прерывания и в 0 для условия отключения прерывания.

Флаг направления – используется в строковой операции. Как следует из названия, когда оно установлено, к строковым байтам обращаются от старшего адреса памяти к младшему адресу памяти и наоборот.

Регистр общего назначения

Существует 8 регистров общего назначения: AH, AL, BH, BL, CH, CL, DH и DL. Эти регистры могут использоваться отдельно для хранения 8-битных данных и могут использоваться парами для хранения 16-битных данных. Допустимые регистровые пары: AH и AL, BH и BL, CH и CL, а также DH и DL. Это относится к AX, BX, CX и DX соответственно.

  • Регистр AX – Он также известен как регистр аккумулятора. Он используется для хранения операндов для арифметических операций.

  • Регистр BX – используется в качестве базового регистра. Он используется для хранения начального базового адреса области памяти в сегменте данных.

  • Регистр CX – он называется счетчиком. Он используется в инструкции цикла для хранения счетчика цикла.

  • Регистр DX – этот регистр используется для хранения адреса порта ввода / вывода для команды ввода / вывода.

Регистр AX – Он также известен как регистр аккумулятора. Он используется для хранения операндов для арифметических операций.

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

Регистр CX – он называется счетчиком. Он используется в инструкции цикла для хранения счетчика цикла.

Регистр DX – этот регистр используется для хранения адреса порта ввода / вывода для команды ввода / вывода.

Регистр указателя стека

Это 16-битный регистр, который содержит адрес от начала сегмента до ячейки памяти, где слово было недавно сохранено в стеке.

BIU (блок шинного интерфейса)

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

Он имеет следующие функциональные части –

  • Очередь инструкций – BIU содержит очередь инструкций. BIU получает до 6 байтов следующих инструкций и сохраняет их в очереди инструкций. Когда EU выполняет инструкции и готов к их следующей инструкции, он просто читает инструкцию из этой очереди команд, что приводит к увеличению скорости выполнения.

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

  • Сегментный регистр – BIU имеет 4 сегментных шины, то есть CS, DS, SS & ES. Он содержит адреса команд и данных в памяти, которые используются процессором для доступа к ячейкам памяти. Он также содержит 1 указатель регистра IP, который содержит адрес следующей инструкции, выполняемой ЕС.

    • CS – это означает сегмент кода. Он используется для адресации области памяти в сегменте кода памяти, где хранится исполняемая программа.

    • DS – это означает сегмент данных. Он состоит из данных, используемых программой и доступных в сегменте данных по адресу смещения или содержимому другого регистра, который содержит адрес смещения.

    • SS – это означает сегмент стека. Он обрабатывает память для хранения данных и адресов во время выполнения.

    • ES – Это означает дополнительный сегмент. ES – это дополнительный сегмент данных, который используется строкой для хранения дополнительных данных назначения.

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

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

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

Сегментный регистр – BIU имеет 4 сегментных шины, то есть CS, DS, SS & ES. Он содержит адреса команд и данных в памяти, которые используются процессором для доступа к ячейкам памяти. Он также содержит 1 указатель регистра IP, который содержит адрес следующей инструкции, выполняемой ЕС.

CS – это означает сегмент кода. Он используется для адресации области памяти в сегменте кода памяти, где хранится исполняемая программа.

DS – это означает сегмент данных. Он состоит из данных, используемых программой и доступных в сегменте данных по адресу смещения или содержимому другого регистра, который содержит адрес смещения.

SS – это означает сегмент стека. Он обрабатывает память для хранения данных и адресов во время выполнения.

ES – Это означает дополнительный сегмент. ES – это дополнительный сегмент данных, который используется строкой для хранения дополнительных данных назначения.

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

Микропроцессор – 8086 Pin Configuration

8086 был первым 16-разрядным микропроцессором, доступным в 40-контактном DIP (Dual Inline Package) чипе. Теперь давайте подробно обсудим конфигурацию контактов микропроцессора 8086.

8086 Pin Diagram

Вот схема контактов микропроцессора 8086 –

8086 Pin Diagram

Давайте теперь обсудим сигналы в деталях –

Сигналы питания и частоты

Он использует питание 5 В постоянного тока на выводе V CC 40 и заземление на выводах 1 и 20 V SS для своей работы.

Тактовый сигнал

Тактовый сигнал подается через контакт 19. Он обеспечивает синхронизацию процессора для операций. Его частота различна для разных версий: 5 МГц, 8 МГц и 10 МГц.

Адрес / шина данных

AD0-AD15. Это 16 адрес / шина данных. AD0-AD7 переносит байтовые данные младшего разряда, а AD8AD15 переносит байтовые данные старшего порядка. В течение первого тактового цикла он переносит 16-битный адрес и после этого переносит 16-битные данные.

Адрес / статус шины

A16-A19 / S3-S6. Это 4 адреса / статус шины. В течение первого тактового цикла он несет 4-битный адрес, а затем передает сигналы состояния.

S7 / ППТ

BHE расшифровывается как Bus High Enable. Он доступен на выводе 34 и используется для индикации передачи данных с использованием шины данных D8-D15. Этот сигнал низкий в течение первого тактового цикла, после чего он активен.

Читать ( $ overline {RD} $ )

Он доступен на выводе 32 и используется для считывания сигнала для операции чтения.

готовы

Он доступен на выводе 22. Это сигнал подтверждения от устройств ввода-вывода о том, что данные передаются. Это активный высокий сигнал. Когда он высокий, это означает, что устройство готово для передачи данных. Когда оно низкое, это указывает на состояние ожидания.

СБРОС

Он доступен на выводе 21 и используется для возобновления выполнения. Это заставляет процессор немедленно прекратить свою текущую деятельность. Этот сигнал является активным высоким в течение первых 4 тактов для СБРОСА микропроцессора.

ВВЕДЕНИ

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

NMI

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

$ Overline {TEST} $

Этот сигнал похож на состояние ожидания и доступен на выводе 23. Когда этот сигнал высокий, то процессор должен ждать состояния IDLE, иначе выполнение продолжается.

MN / $ overline {MX} $

Он обозначает Minimum / Maximum и доступен на выводе 33. Он указывает, в каком режиме должен работать процессор; когда он высокий, он работает в минимальном режиме и наоборот.

INTA

Это сигнал подтверждения прерывания и идентификатор, доступный на выводе 24. Когда микропроцессор получает этот сигнал, он подтверждает прерывание.

ALE

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

DEN

Он обозначает Data Enable и доступен на выводе 26. Он используется для включения Transreceiver 8286. Transreceiver – это устройство, используемое для отделения данных от адреса / шины данных.

DT / R

Он обозначает сигнал передачи / приема данных и доступен на выводе 27. Он определяет направление потока данных через трансивер. Когда он высокий, данные передаются и наоборот.

М / МО

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

WR

Он обозначает сигнал записи и доступен на выводе 29. Он используется для записи данных в память или устройство вывода в зависимости от состояния сигнала M / IO.

HLDA

Он обозначает сигнал подтверждения приема и доступен на выводе 30. Этот сигнал подтверждает сигнал HOLD.

ДЕРЖАТЬ

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

QS 1 и QS 0

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

QS 0 QS 1 Статус
0 0 Нет операции
0 1 Первый байт кода операции из очереди
1 0 Очистить очередь
1 1 Последующий байт из очереди

S 0 , S 1 , S 2

Это сигналы состояния, которые обеспечивают состояние работы, которое используется контроллером шины 8288 для генерации сигналов управления памятью и вводом / выводом. Они доступны на контактах 26, 27 и 28. Ниже приведена таблица, показывающая их статус –

S 2 S 1 S 0 Статус
0 0 0 Подтверждение прерывания
0 0 1 Чтение ввода / вывода
0 1 0 I / O Write
0 1 1 стой
1 0 0 Извлечение кода операции
1 0 1 Чтение памяти
1 1 0 Запись в память
1 1 1 пассивный

ЗАМОК

Когда этот сигнал активен, он указывает другим процессорам не просить ЦП покинуть системную шину. Он активируется с помощью префикса LOCK любой инструкции и доступен на выводе 29.

RQ / GT 1 и RQ / GT 0

Это сигналы Запроса / Предоставления, используемые другими процессорами, запрашивающими ЦПУ освободить системную шину. Когда ЦП получает сигнал, он отправляет подтверждение. RQ / GT 0 имеет более высокий приоритет, чем RQ / GT 1 .

Микропроцессор – 8086 инструкционных наборов

Микропроцессор 8086 поддерживает 8 типов инструкций –

  • Инструкция по передаче данных
  • Арифметические инструкции
  • Инструкции по управлению битами
  • Строковые Инструкции
  • Инструкции по переносу выполнения программы (инструкции по ветвлению и петле)
  • Инструкция по управлению процессором
  • Инструкции по контролю итерации
  • Инструкции по прерыванию

Давайте теперь обсудим эти наборы команд в деталях.

Инструкция по передаче данных

Эти инструкции используются для передачи данных из исходного операнда в целевой операнд. Ниже приведен список инструкций в этой группе –

Инструкция по переводу слова

  • MOV – используется для копирования байта или слова из предоставленного источника в указанное место назначения.

  • PPUSH – используется для размещения слова в верхней части стека.

  • POP – используется для получения слова с вершины стека в указанное место.

  • PUSHA – используется для помещения всех регистров в стек.

  • POPA – используется для получения слов из стека во все регистры.

  • XCHG – используется для обмена данными из двух мест.

  • XLAT – используется для перевода байта в AL с использованием таблицы в памяти.

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

PPUSH – используется для размещения слова в верхней части стека.

POP – используется для получения слова с вершины стека в указанное место.

PUSHA – используется для помещения всех регистров в стек.

POPA – используется для получения слов из стека во все регистры.

XCHG – используется для обмена данными из двух мест.

XLAT – используется для перевода байта в AL с использованием таблицы в памяти.

Инструкция по переносу портов ввода и вывода

  • IN – используется для чтения байта или слова из предоставленного порта в аккумулятор.

  • OUT – используется для отправки байта или слова из аккумулятора в указанный порт.

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

OUT – используется для отправки байта или слова из аккумулятора в указанный порт.

Инструкция по переводу адреса

  • LEA – используется для загрузки адреса операнда в предоставленный регистр.

  • LDS – используется для загрузки регистра DS и другого предоставленного регистра из памяти

  • LES – используется для загрузки регистра ES и другого предоставленного регистра из памяти.

LEA – используется для загрузки адреса операнда в предоставленный регистр.

LDS – используется для загрузки регистра DS и другого предоставленного регистра из памяти

LES – используется для загрузки регистра ES и другого предоставленного регистра из памяти.

Инструкция по передаче флаговых регистров

  • LAHF – используется для загрузки AH младшим байтом регистра флага.

  • SAHF – используется для сохранения регистра AH в младший байт регистра флага.

  • PUSHF – используется для копирования регистра флага в верхней части стека.

  • POPF – используется для копирования слова из верхней части стека в регистр флага.

LAHF – используется для загрузки AH младшим байтом регистра флага.

SAHF – используется для сохранения регистра AH в младший байт регистра флага.

PUSHF – используется для копирования регистра флага в верхней части стека.

POPF – используется для копирования слова из верхней части стека в регистр флага.

Арифметические инструкции

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

Ниже приведен список инструкций в этой группе –

Инструкция по выполнению сложения

  • ДОБАВИТЬ – Используется для добавления предоставленного байта в байт / слово в слово.

  • ADC – используется для добавления с переносом.

  • INC – используется для увеличения предоставленного байта / слова на 1.

  • AAA – Используется для настройки ASCII после добавления.

  • DAA – используется для настройки десятичной дроби после операции сложения / вычитания.

ДОБАВИТЬ – Используется для добавления предоставленного байта в байт / слово в слово.

ADC – используется для добавления с переносом.

INC – используется для увеличения предоставленного байта / слова на 1.

AAA – Используется для настройки ASCII после добавления.

DAA – используется для настройки десятичной дроби после операции сложения / вычитания.

Инструкция по выполнению вычитания

  • SUB – Используется для вычитания байта из байта / слова из слова.

  • SBB – Используется для вычитания с заимствованием.

  • DEC – используется для уменьшения предоставленного байта / слова на 1.

  • NPG – Используется для отрицания каждого бита предоставленного байта / слова и добавления дополнения 1/2.

  • CMP – используется для сравнения 2 предоставленных байтов / слов.

  • AAS – Используется для настройки кодов ASCII после вычитания.

  • DAS – используется для настройки десятичной дроби после вычитания.

SUB – Используется для вычитания байта из байта / слова из слова.

SBB – Используется для вычитания с заимствованием.

DEC – используется для уменьшения предоставленного байта / слова на 1.

NPG – Используется для отрицания каждого бита предоставленного байта / слова и добавления дополнения 1/2.

CMP – используется для сравнения 2 предоставленных байтов / слов.

AAS – Используется для настройки кодов ASCII после вычитания.

DAS – используется для настройки десятичной дроби после вычитания.

Инструкция по выполнению умножения

  • MUL – используется для умножения байта без знака на слово / слово за словом.

  • IMUL – используется для умножения подписанного байта за байтом / слово за словом.

  • AAM – используется для настройки кодов ASCII после умножения.

MUL – используется для умножения байта без знака на слово / слово за словом.

IMUL – используется для умножения подписанного байта за байтом / слово за словом.

AAM – используется для настройки кодов ASCII после умножения.

Инструкция по выполнению деления

  • DIV – Используется для деления беззнакового слова по байту или без знака двойного слова по слову.

  • IDIV – Используется для деления подписанного слова в байтах или подписанного двойного слова в слово.

  • AAD – используется для настройки кодов ASCII после деления.

  • CBW – используется для заполнения старшего байта слова копиями знакового бита младшего байта.

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

DIV – Используется для деления беззнакового слова по байту или без знака двойного слова по слову.

IDIV – Используется для деления подписанного слова в байтах или подписанного двойного слова в слово.

AAD – используется для настройки кодов ASCII после деления.

CBW – используется для заполнения старшего байта слова копиями знакового бита младшего байта.

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

Инструкции по управлению битами

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

Ниже приведен список инструкций в этой группе –

Инструкция по выполнению логической операции

  • НЕ – используется для инвертирования каждого бита или слова.

  • И – Используется для добавления каждого бита в байте / слове с соответствующим битом в другом байте / слове.

  • ИЛИ – Используется для умножения каждого бита в байте / слове на соответствующий бит в другом байте / слове.

  • XOR – используется для выполнения операции Exclusive-OR над каждым битом в байте / слове с соответствующим битом в другом байте / слове.

  • TEST – используется для добавления операндов для обновления флагов, без влияния на операнды.

НЕ – используется для инвертирования каждого бита или слова.

И – Используется для добавления каждого бита в байте / слове с соответствующим битом в другом байте / слове.

ИЛИ – Используется для умножения каждого бита в байте / слове на соответствующий бит в другом байте / слове.

XOR – используется для выполнения операции Exclusive-OR над каждым битом в байте / слове с соответствующим битом в другом байте / слове.

TEST – используется для добавления операндов для обновления флагов, без влияния на операнды.

Инструкция по выполнению сменных операций

  • SHL / SAL – используется для сдвига битов байта / слова влево и установки нуля (S) в младших битах.

  • SHR – используется для сдвига битов байта / слова вправо и установки нуля (S) в старших битах.

  • SAR – используется для сдвига битов байта / слова вправо и копирования старого MSB в новый MSB.

SHL / SAL – используется для сдвига битов байта / слова влево и установки нуля (S) в младших битах.

SHR – используется для сдвига битов байта / слова вправо и установки нуля (S) в старших битах.

SAR – используется для сдвига битов байта / слова вправо и копирования старого MSB в новый MSB.

Инструкции для выполнения операций поворота

  • ROL – Используется для поворота битов байта / слова влево, то есть от MSB к LSB и к сигналу переноса [CF].

  • ROR – используется для поворота битов байта / слова вправо, то есть от LSB к MSB и к сигналу переноса [CF].

  • RCR – используется для поворота битов байта / слова вправо, то есть от LSB к CF и CF к MSB.

  • RCL – используется для поворота битов байта / слова влево, то есть от MSB к CF и от CF к LSB.

ROL – Используется для поворота битов байта / слова влево, то есть от MSB к LSB и к сигналу переноса [CF].

ROR – используется для поворота битов байта / слова вправо, то есть от LSB к MSB и к сигналу переноса [CF].

RCR – используется для поворота битов байта / слова вправо, то есть от LSB к CF и CF к MSB.

RCL – используется для поворота битов байта / слова влево, то есть от MSB к CF и от CF к LSB.

Строковые Инструкции

Строка – это группа байтов / слов, и их память всегда выделяется в последовательном порядке.

Ниже приведен список инструкций в этой группе –

  • REP – Используется для повторения данной инструкции до CX ≠ 0.

  • REPE / REPZ – Используется для повторения данной инструкции до тех пор, пока CX = 0 или нулевой флаг ZF = 1.

  • REPNE / REPNZ – используется для повторения данной инструкции до тех пор, пока CX = 0 или нулевой флаг ZF = 1.

  • MOVS / MOVSB ​​/ MOVSW – используется для перемещения байта / слова из одной строки в другую.

  • COMS / COMPSB / COMPSW – используется для сравнения двух строковых байтов / слов.

  • INS / INSB / INSW – используется в качестве входной строки / байта / слова из порта ввода-вывода в указанное место памяти.

  • OUTS / OUTSB / OUTSW – используется в качестве выходной строки / байта / слова из предоставленной ячейки памяти в порт ввода / вывода.

  • SCAS / SCASB / SCASW – Используется для сканирования строки и сравнения ее байта с байтом в AL или слова строки со словом в AX.

  • LODS / LODSB / LODSW – используется для сохранения байта строки в AL или слова строки в AX.

REP – Используется для повторения данной инструкции до CX ≠ 0.

REPE / REPZ – Используется для повторения данной инструкции до тех пор, пока CX = 0 или нулевой флаг ZF = 1.

REPNE / REPNZ – используется для повторения данной инструкции до тех пор, пока CX = 0 или нулевой флаг ZF = 1.

MOVS / MOVSB ​​/ MOVSW – используется для перемещения байта / слова из одной строки в другую.

COMS / COMPSB / COMPSW – используется для сравнения двух строковых байтов / слов.

INS / INSB / INSW – используется в качестве входной строки / байта / слова из порта ввода-вывода в указанное место памяти.

OUTS / OUTSB / OUTSW – используется в качестве выходной строки / байта / слова из предоставленной ячейки памяти в порт ввода / вывода.

SCAS / SCASB / SCASW – Используется для сканирования строки и сравнения ее байта с байтом в AL или слова строки со словом в AX.

LODS / LODSB / LODSW – используется для сохранения байта строки в AL или слова строки в AX.

Инструкции переноса выполнения программы (инструкции ветвления и петли)

Эти инструкции используются для передачи / ветвления команд во время исполнения. Он включает в себя следующие инструкции –

Инструкция по передаче инструкции во время исполнения без каких-либо условий –

  • CALL – используется для вызова процедуры и сохранения адреса возврата в стек.

  • RET – используется для возврата из процедуры в основную программу.

  • JMP – используется для перехода к указанному адресу для перехода к следующей инструкции.

CALL – используется для вызова процедуры и сохранения адреса возврата в стек.

RET – используется для возврата из процедуры в основную программу.

JMP – используется для перехода к указанному адресу для перехода к следующей инструкции.

Инструкция для передачи инструкции во время исполнения с некоторыми условиями –

  • JA / JNBE – Используется для перехода, если выполнено указание выше / не ниже / равно.

  • JAE / JNB – используется для перехода, если инструкция выше / не ниже удовлетворяет.

  • JBE / JNA – Используется для перехода, если инструкция ниже / равно / не выше удовлетворяет.

  • JC – используется для прыжка, если флаг переноса CF = 1

  • JE / JZ – используется для перехода, если равен / ноль флаг ZF = 1

  • JG / JNLE – используется для перехода, если инструкция больше / не меньше / равна.

  • JGE / JNL – используется для перехода, если выполнено больше / равно / не меньше, чем инструкция.

  • JL / JNGE – используется для перехода, если удовлетворяется инструкция меньше / не больше / равно.

  • JLE / JNG – используется для перехода, если выполнено меньше / равно / если не больше, чем инструкция.

  • JNC – используется для прыжка, если нет флага переноса (CF = 0)

  • JNE / JNZ – используется для перехода, если не равен / нулевой флаг ZF = 0

  • JNO – используется для перехода, если нет флага переполнения OF = 0

  • JNP / JPO – используется для перехода, если не четность / четность нечетная PF = 0

  • JNS – используется для прыжка, если не знак SF = 0

  • JO – используется для перехода, если флаг переполнения OF = 1

  • JP / JPE – используется для перехода, если четность / четность даже PF = 1

  • JS – Используется для перехода, если флаг знака SF = 1

JA / JNBE – Используется для перехода, если выполнено указание выше / не ниже / равно.

JAE / JNB – используется для перехода, если инструкция выше / не ниже удовлетворяет.

JBE / JNA – Используется для перехода, если инструкция ниже / равно / не выше удовлетворяет.

JC – используется для прыжка, если флаг переноса CF = 1

JE / JZ – используется для перехода, если равен / ноль флаг ZF = 1

JG / JNLE – используется для перехода, если инструкция больше / не меньше / равна.

JGE / JNL – используется для перехода, если выполнено больше / равно / не меньше, чем инструкция.

JL / JNGE – используется для перехода, если удовлетворяется инструкция меньше / не больше / равно.

JLE / JNG – используется для перехода, если выполнено меньше / равно / если не больше, чем инструкция.

JNC – используется для прыжка, если нет флага переноса (CF = 0)

JNE / JNZ – используется для перехода, если не равен / нулевой флаг ZF = 0

JNO – используется для перехода, если нет флага переполнения OF = 0

JNP / JPO – используется для перехода, если не четность / четность нечетная PF = 0

JNS – используется для прыжка, если не знак SF = 0

JO – используется для перехода, если флаг переполнения OF = 1

JP / JPE – используется для перехода, если четность / четность даже PF = 1

JS – Используется для перехода, если флаг знака SF = 1

Инструкция по управлению процессором

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

Ниже приведены инструкции в этой группе:

  • STC – используется для установки флага переноса CF на 1

  • CLC – используется для сброса / сброса флага переноса CF на 0

  • CMC – используется для установки дополнения в состоянии флага переноса CF.

  • STD – используется для установки флага направления DF на 1

  • CLD – используется для сброса / сброса флага направления DF на 0

  • STI – используется для установки флага разрешения прерывания на 1, т. Е. Для включения входа INTR.

  • CLI – используется для сброса флага разрешения прерываний на 0, т. Е. Для отключения входа INTR.

STC – используется для установки флага переноса CF на 1

CLC – используется для сброса / сброса флага переноса CF на 0

CMC – используется для установки дополнения в состоянии флага переноса CF.

STD – используется для установки флага направления DF на 1

CLD – используется для сброса / сброса флага направления DF на 0

STI – используется для установки флага разрешения прерывания на 1, т. Е. Для включения входа INTR.

CLI – используется для сброса флага разрешения прерываний на 0, т. Е. Для отключения входа INTR.

Инструкции по контролю итерации

Эти инструкции используются для выполнения данных инструкций несколько раз. Ниже приведен список инструкций в этой группе –

  • LOOP – используется для зацикливания группы команд до тех пор, пока условие не будет удовлетворено, то есть CX = 0

  • LOOPE / LOOPZ – используется для зацикливания группы команд до тех пор, пока она не удовлетворит ZF = 1 и CX = 0

  • LOOPNE / LOOPNZ – используется для зацикливания группы команд до тех пор, пока она не удовлетворит ZF = 0 и CX = 0

  • JCXZ – используется для перехода к указанному адресу, если CX = 0

LOOP – используется для зацикливания группы команд до тех пор, пока условие не будет удовлетворено, то есть CX = 0

LOOPE / LOOPZ – используется для зацикливания группы команд до тех пор, пока она не удовлетворит ZF = 1 и CX = 0

LOOPNE / LOOPNZ – используется для зацикливания группы команд до тех пор, пока она не удовлетворит ZF = 0 и CX = 0

JCXZ – используется для перехода к указанному адресу, если CX = 0

Инструкции по прерыванию

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

  • INT – Используется для прерывания программы во время выполнения и вызова указанной службы.

  • INTO – используется для прерывания программы во время выполнения, если OF = 1

  • IRET – используется для возврата из службы прерываний в основную программу

INT – Используется для прерывания программы во время выполнения и вызова указанной службы.

INTO – используется для прерывания программы во время выполнения, если OF = 1

IRET – используется для возврата из службы прерываний в основную программу

Микропроцессор – 8086 прерываний

Прерывание – это метод создания временной остановки во время выполнения программы и позволяет периферийным устройствам получать доступ к микропроцессору. Микропроцессор отвечает на это прерывание ISR (подпрограммой обработки прерываний), которая представляет собой короткую программу для инструктирования микропроцессора о том, как обрабатывать прерывание.

На следующем рисунке показаны типы прерываний, которые мы имеем в микропроцессоре 8086 –

Прерывания

Аппаратные прерывания

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

8086 имеет два вывода аппаратного прерывания, то есть NMI и INTR. NMI является немаскируемым прерыванием, а INTR является маскируемым прерыванием, имеющим более низкий приоритет. Еще один связанный контакт прерывания – это INTA, называемый подтверждением прерывания.

NMI

Это один немаскируемый вывод прерывания (NMI), имеющий более высокий приоритет, чем маскируемый вывод запроса прерывания (INTR), и он имеет прерывание типа 2.

Когда это прерывание активировано, происходят следующие действия:

  • Завершает текущую инструкцию, которая выполняется.

  • Помещает значения регистра флага в стек.

  • Выдвигает значение CS (сегмент кода) и значение IP (указатель инструкции) адреса возврата в стек.

  • IP загружается из содержимого слова местоположения 00008H.

  • CS загружается из содержимого следующего слова местоположения 0000AH.

  • Флаг прерывания и флаг прерывания сбрасываются в 0.

Завершает текущую инструкцию, которая выполняется.

Помещает значения регистра флага в стек.

Выдвигает значение CS (сегмент кода) и значение IP (указатель инструкции) адреса возврата в стек.

IP загружается из содержимого слова местоположения 00008H.

CS загружается из содержимого следующего слова местоположения 0000AH.

Флаг прерывания и флаг прерывания сбрасываются в 0.

ВВЕДЕНИ

INTR является маскируемым прерыванием, потому что микропроцессор будет прерываться только в том случае, если прерывания разрешены с использованием команды установки флага прерывания. Его не следует включать с помощью команды очистки флага прерывания.

Прерывание INTR активируется портом ввода / вывода. Если прерывание включено и NMI отключено, то микропроцессор сначала завершает текущее выполнение и дважды посылает «0» на вывод INTA. Первый «0» означает, что INTA информирует внешнее устройство о готовности, а во время второго «0» микропроцессор получает 8-битный, скажем, X, от программируемого контроллера прерываний.

Эти действия предпринимаются микропроцессором –

  • Сначала завершает текущую инструкцию.

  • Активирует выход INTA и получает тип прерывания, скажем, X.

  • Значение регистра флага, значение CS возвращаемого адреса и значение IP возвращаемого адреса помещаются в стек.

  • Значение IP загружается из содержимого слова местоположения X × 4

  • CS загружается из содержимого местоположения следующего слова.

  • Флаг прерывания и флаг прерывания сбрасываются на 0

Сначала завершает текущую инструкцию.

Активирует выход INTA и получает тип прерывания, скажем, X.

Значение регистра флага, значение CS возвращаемого адреса и значение IP возвращаемого адреса помещаются в стек.

Значение IP загружается из содержимого слова местоположения X × 4

CS загружается из содержимого местоположения следующего слова.

Флаг прерывания и флаг прерывания сбрасываются на 0

Программные прерывания

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

INT- инструкция прерывания с номером типа

Это 2-байтовая инструкция. Первый байт предоставляет код операции, а второй байт – номер типа прерывания. В этой группе 256 типов прерываний.

Его выполнение включает в себя следующие этапы –

  • Значение регистра флага помещается в стек.

  • Значение CS адреса возврата и значение IP адреса возврата помещаются в стек.

  • IP загружается из содержимого слова местоположения «номер типа» × 4

  • CS загружается из содержимого местоположения следующего слова.

  • Флаг прерывания и Флаг ловушки сбрасываются на 0

Значение регистра флага помещается в стек.

Значение CS адреса возврата и значение IP адреса возврата помещаются в стек.

IP загружается из содержимого слова местоположения «номер типа» × 4

CS загружается из содержимого местоположения следующего слова.

Флаг прерывания и Флаг ловушки сбрасываются на 0

Начальный адрес для прерывания типа 0 – 000000H, для прерывания типа 1 – 00004H, аналогично для типа 2 – 00008H и так далее. Первые пять указателей являются выделенными указателями прерывания. то есть

  • Прерывание ТИПА 0 представляет деление на нулевую ситуацию.

  • Прерывание ТИПА 1 представляет одношаговое выполнение во время отладки программы.

  • Прерывание типа 2 представляет немаскируемое прерывание NMI.

  • Прерывание ТИПА 3 представляет прерывание точки останова.

  • Прерывание ТИПА 4 представляет прерывание переполнения.

Прерывание ТИПА 0 представляет деление на нулевую ситуацию.

Прерывание ТИПА 1 представляет одношаговое выполнение во время отладки программы.

Прерывание типа 2 представляет немаскируемое прерывание NMI.

Прерывание ТИПА 3 представляет прерывание точки останова.

Прерывание ТИПА 4 представляет прерывание переполнения.

Прерывания от типа 5 до типа 31 зарезервированы для других усовершенствованных микропроцессоров, а прерывания от 32 до типа 255 доступны для аппаратных и программных прерываний.

INT 3-точка прерывания Инструкция по прерыванию

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

Его выполнение включает в себя следующие этапы –

  • Значение регистра флага помещается в стек.

  • Значение CS адреса возврата и значение IP адреса возврата помещаются в стек.

  • IP загружается из содержимого слова местоположения 3 × 4 = 0000CH

  • CS загружается из содержимого местоположения следующего слова.

  • Флаг прерывания и Флаг ловушки сбрасываются на 0

Значение регистра флага помещается в стек.

Значение CS адреса возврата и значение IP адреса возврата помещаются в стек.

IP загружается из содержимого слова местоположения 3 × 4 = 0000CH

CS загружается из содержимого местоположения следующего слова.

Флаг прерывания и Флаг ловушки сбрасываются на 0

INTO – прерывание по команде переполнения

Это однобайтовая инструкция и их мнемоническое INTO . Код операции для этой инструкции – CEH. Как следует из названия, это условная команда прерывания, то есть она активна, только когда флаг переполнения установлен в 1 и переходит к обработчику прерываний, чей номер типа прерывания равен 4. Если флаг переполнения сбрасывается, то выполнение продолжается до Следующая инструкция.

Его выполнение включает в себя следующие этапы –

  • Значения регистров флага помещаются в стек.

  • Значение CS адреса возврата и значение IP адреса возврата помещаются в стек.

  • IP загружается из содержимого слова местоположения 4 × 4 = 00010H

  • CS загружается из содержимого местоположения следующего слова.

  • Флаг прерывания и флаг Trap сбрасываются на 0

Значения регистров флага помещаются в стек.

Значение CS адреса возврата и значение IP адреса возврата помещаются в стек.

IP загружается из содержимого слова местоположения 4 × 4 = 00010H

CS загружается из содержимого местоположения следующего слова.

Флаг прерывания и флаг Trap сбрасываются на 0

Микропроцессор – 8086 режимов адресации

Различные способы обозначения исходного операнда в инструкции известны как режимы адресации . В программировании 8086 есть 8 различных режимов адресации –

Режим немедленной адресации

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

пример

MOV CX, 4929 H, ADD AX, 2387 H,  MOV AL, FFH 

Зарегистрировать режим адресации

Это означает, что регистр является источником операнда для инструкции.

пример

MOV CX, AX   ; copies the contents of the 16-bit AX register into  
             ; the 16-bit CX register),  
ADD BX, AX 

Режим прямой адресации

Режим адресации, в котором эффективный адрес ячейки памяти записывается непосредственно в инструкции.

пример

MOV AX, [1592H], MOV AL, [0300H]

Зарегистрировать режим косвенной адресации

Этот режим адресации позволяет адресовать данные в любом месте памяти через адрес смещения, который хранится в любом из следующих регистров: BP, BX, DI & SI.

пример

MOV AX, [BX]  ; Suppose the register BX contains 4895H, then the contents  
              ; 4895H are moved to AX 
ADD CX, {BX} 

Основанный режим адресации

В этом режиме адресации адрес смещения операнда задается суммой содержимого регистров BX / BP и смещения 8 бит / 16 бит.

пример

MOV DX, [BX+04], ADD CL, [BX+08]

Режим индексированной адресации

В этом режиме адресации адрес смещения операндов находится путем сложения содержимого регистра SI или DI и смещения 8-бит / 16-бит.

пример

MOV BX, [SI+16], ADD AL, [DI+16] 

Режим адресации на основе индекса

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

пример

ADD CX, [AX+SI], MOV AX, [AX+DI] 

На основе индексируется с режимом смещения

В этом режиме адресации смещение операндов вычисляется путем добавления содержимого базового регистра. Индекс регистрирует содержимое и смещение 8 или 16 бит.

пример

MOV AX, [BX+DI+08], ADD CX, [BX+SI+16] 

Обзор многопроцессорной конфигурации

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

  • Конфигурация сопроцессора
  • Тесно связанная конфигурация
  • Слабосвязанная конфигурация

Конфигурация сопроцессора

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

8086 и 8088 могут выполнять большинство операций, но их набор команд не способен выполнять сложные математические операции, поэтому в этих случаях микропроцессору требуется математический сопроцессор, такой как математический сопроцессор Intel 8087, который может легко выполнять эти операции очень быстро.

Блок-схема конфигурации сопроцессора

Конфигурация сопроцессора

Как сопроцессор и процессор связаны?

  • Сопроцессор и процессор соединены через сигналы TEST, RQ- / GT- и QS 0 & QS 1 .

  • Сигнал TEST подключается к контакту BUSY сопроцессора, а остальные 3 контакта подключаются к 3 контактам сопроцессора с тем же именем.

  • Сигнал TEST определяет активность сопроцессора, т.е. сопроцессор занят или находится в режиме ожидания.

  • RT- / GT- используется для автобусного арбитража.

  • Сопроцессор использует QS 0 и QS 1 для отслеживания состояния очереди хост-процессора.

Сопроцессор и процессор соединены через сигналы TEST, RQ- / GT- и QS 0 & QS 1 .

Сигнал TEST подключается к контакту BUSY сопроцессора, а остальные 3 контакта подключаются к 3 контактам сопроцессора с тем же именем.

Сигнал TEST определяет активность сопроцессора, т.е. сопроцессор занят или находится в режиме ожидания.

RT- / GT- используется для автобусного арбитража.

Сопроцессор использует QS 0 и QS 1 для отслеживания состояния очереди хост-процессора.

Тесно связанная конфигурация

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

Блок-схема тесно связанной конфигурации

Тесно связанная конфигурация

Как связаны процессор и независимый процессор?

  • Связь между хостом и независимым процессором осуществляется через пространство памяти.

  • Ни одна из инструкций не используется для связи, как WAIT, ESC и т. Д.

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

  • Затем независимый процессор обращается к памяти для выполнения задачи.

  • После завершения задачи он отправляет подтверждение хост-процессору, используя сигнал состояния или запрос прерывания.

Связь между хостом и независимым процессором осуществляется через пространство памяти.

Ни одна из инструкций не используется для связи, как WAIT, ESC и т. Д.

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

Затем независимый процессор обращается к памяти для выполнения задачи.

После завершения задачи он отправляет подтверждение хост-процессору, используя сигнал состояния или запрос прерывания.

Слабосвязанная конфигурация

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

Блок-схема слабосвязанной конфигурации

Слабосвязанная конфигурация

преимущества

  • Наличие более одного процессора приводит к повышению эффективности.

  • Каждый из процессоров имеет собственную локальную шину для доступа к локальным устройствам памяти / ввода-вывода. Это облегчает параллельную обработку.

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

Наличие более одного процессора приводит к повышению эффективности.

Каждый из процессоров имеет собственную локальную шину для доступа к локальным устройствам памяти / ввода-вывода. Это облегчает параллельную обработку.

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

8087 Числовой процессор данных

Процессор числовых данных 8087 также известен как математический сопроцессор, расширение числового процессора и модуль с плавающей запятой . Это был первый математический сопроцессор, разработанный Intel для сопряжения с 8086/8088, что привело к более простому и быстрому вычислению.

Как только инструкции идентифицированы процессором 8086/8088, они передаются сопроцессору 8087 для дальнейшего выполнения.

Типы данных, поддерживаемые 8087:

  • Двоичные целые числа
  • Упакованные десятичные числа
  • Вещественные числа
  • Временный реальный формат

Наиболее характерные особенности процессора обработки цифровых данных 8087:

  • Он поддерживает данные типа integer, float и real, размером от 2 до 10 байтов.

  • Скорость обработки настолько высока, что она может рассчитать умножение двух 64-битных действительных чисел за ~ 27 мкс, а также вычислить квадратный корень за ~ 35 мкс.

  • Это соответствует стандартам IEEE с плавающей запятой.

Он поддерживает данные типа integer, float и real, размером от 2 до 10 байтов.

Скорость обработки настолько высока, что она может рассчитать умножение двух 64-битных действительных чисел за ~ 27 мкс, а также вычислить квадратный корень за ~ 35 мкс.

Это соответствует стандартам IEEE с плавающей запятой.

8087 Архитектура

Архитектура 8087 разделена на две группы: блок управления (CU) и блок расширения чисел (NEU).

  • Блок управления обрабатывает весь обмен данными между процессором и памятью, например, получает и декодирует инструкции, считывает и записывает операнды памяти, поддерживает параллельную очередь и т. Д. Все инструкции сопроцессора являются инструкциями ESC, т. Е. Начинаются с «F», сопроцессор выполняет только команды ESC, в то время как другие инструкции выполняются микропроцессором.

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

Блок управления обрабатывает весь обмен данными между процессором и памятью, например, получает и декодирует инструкции, считывает и записывает операнды памяти, поддерживает параллельную очередь и т. Д. Все инструкции сопроцессора являются инструкциями ESC, т. Е. Начинаются с «F», сопроцессор выполняет только команды ESC, в то время как другие инструкции выполняются микропроцессором.

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

Архитектура сопроцессора 8087 выглядит следующим образом –

Архитектура 8087 года

8087 Pin Описание

Давайте сначала взглянем на схему контактов 8087 –

Диаграмма контактов 8087

В следующем списке приведено описание Pin 8087 –

  • AD 0 – AD 15 – это линии адреса / данных с мультиплексированием по времени, которые переносят адреса в течение первого тактового цикла и данные со второго тактового цикла и далее.

  • A 19 / S 6 – A 16 / S – Эти строки являются мультиплексированными по времени адресными / статусными строками. Он функционирует аналогично соответствующим контактам 8086. S 6 , S 4 и S3 постоянно высокие, в то время как S 5 постоянно низкие.

  • $ overline {BHE} $ / S 7 – во время первого тактового цикла $ overline {BHE} $ / S 7 используется для включения данных на старший байт шины данных 8086 и после этого работает как строка состояния S 7 .

  • QS 1 , QS 0 – это входные сигналы состояния очереди, которые обеспечивают состояние очереди команд, их состояние, как показано в следующей таблице:

AD 0 – AD 15 – это линии адреса / данных с мультиплексированием по времени, которые переносят адреса в течение первого тактового цикла и данные со второго тактового цикла и далее.

A 19 / S 6 – A 16 / S – Эти строки являются мультиплексированными по времени адресными / статусными строками. Он функционирует аналогично соответствующим контактам 8086. S 6 , S 4 и S3 постоянно высокие, в то время как S 5 постоянно низкие.

$ overline {BHE} $ / S 7 – во время первого тактового цикла $ overline {BHE} $ / S 7 используется для включения данных на старший байт шины данных 8086 и после этого работает как строка состояния S 7 .

QS 1 , QS 0 – это входные сигналы состояния очереди, которые обеспечивают состояние очереди команд, их состояние, как показано в следующей таблице:

QS 0 QS 1 Статус
0 0 Нет операции
0 1 Первый байт кода операции из очереди
1 0 Очистить очередь
1 1 Последующий байт из очереди
  • INT – это сигнал прерывания, который изменяется на высокий уровень, когда во время выполнения было получено немаскированное исключение.

  • BUSY – это выходной сигнал, когда он высокий, он указывает на состояние занятости процессора.

  • READY – это входной сигнал, используемый для информирования сопроцессора о том, готова ли шина к приему данных или нет.

  • СБРОС – это входной сигнал, используемый для отклонения внутренних операций сопроцессора и подготовки его к дальнейшему выполнению, когда этого требует ЦП.

  • CLK – Вход CLK обеспечивает основные временные характеристики для работы процессора.

  • VCC – это сигнал источника питания, который требует + 5В для работы схемы.

  • S 0 , S 1 , S 2 – это сигналы состояния, которые обеспечивают состояние операции, которое используется контроллером шины 8087 для генерации сигналов памяти и управляющих сигналов ввода / вывода. Эти сигналы активны в течение четвертого тактового цикла.

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

BUSY – это выходной сигнал, когда он высокий, он указывает на состояние занятости процессора.

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

СБРОС – это входной сигнал, используемый для отклонения внутренних операций сопроцессора и подготовки его к дальнейшему выполнению, когда этого требует ЦП.

CLK – Вход CLK обеспечивает основные временные характеристики для работы процессора.

VCC – это сигнал источника питания, который требует + 5В для работы схемы.

S 0 , S 1 , S 2 – это сигналы состояния, которые обеспечивают состояние операции, которое используется контроллером шины 8087 для генерации сигналов памяти и управляющих сигналов ввода / вывода. Эти сигналы активны в течение четвертого тактового цикла.

S 2 S 1 S 0 Состояние очереди
0 Икс Икс неиспользуемый
1 0 0 неиспользуемый
1 0 1 Чтение памяти
1 1 0 Запись в память
1 1 1 пассивный
  • RQ / GT 1 и RQ / GT 0 – это сигналы Запрос / Предоставление, используемые процессорами 8087 для получения контроля над шиной от хост-процессора 8086/8088 для передачи операндов.

RQ / GT 1 и RQ / GT 0 – это сигналы Запрос / Предоставление, используемые процессорами 8087 для получения контроля над шиной от хост-процессора 8086/8088 для передачи операндов.

Микропроцессор – интерфейс ввода-вывода

В этой главе мы обсудим Интерфейс памяти и Интерфейс ввода-вывода с 8085.

Интерфейс – это путь для связи между двумя компонентами. Интерфейс бывает двух типов: интерфейс памяти и интерфейс ввода / вывода.

Интерфейс памяти

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

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

IO Interfacing

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

Блок-схема памяти и интерфейса ввода-вывода

Сопряжение

8085 Интерфейсные Пины

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

  • A 15 – A 8 (Высшая адресная шина)
  • AD 7 – AD 0 (нижний адрес / шина данных)
  • ALE
  • RD
  • WR
  • ГОТОВЫ

Способы связи – микропроцессор с внешним миром?

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

  • Интерфейс последовательной связи
  • Параллельный интерфейс связи

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

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

8279 – Программируемая клавиатура

Программируемый контроллер клавиатуры / дисплея 8279 разработан компанией Intel, которая связывает клавиатуру с процессором. Сначала клавиатура сканирует клавиатуру и определяет, была ли нажата какая-либо клавиша. Затем он отправляет их относительный ответ нажатой клавиши в ЦП и наоборот.

Сколько способов клавиатура связана с процессором?

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

В режиме опроса ЦПУ периодически считывает внутренний флаг 8279, чтобы проверить, нажата ли какая-либо клавиша или нет при нажатии клавиши.

Как работает клавиатура 8279?

Клавиатура состоит максимум из 64 клавиш, которые взаимодействуют с процессором с помощью кодов клавиш. Эти коды клавиш сбрасываются и сохраняются в 8-байтовом FIFORAM, к которому может обращаться ЦП. Если в FIFO введено более 8 символов, это означает, что одновременно нажимается более восьми клавиш. Это когда статус переполнения установлен.

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

Архитектура и описание

8279 Архитектура

Контроль ввода / вывода и буфер данных

Этот блок контролирует поток данных через микропроцессор. Он включается только когда D низкий. Его буфер данных связывает внешнюю шину системы с внутренней шиной микропроцессора. Контакты A0, RD и WR используются для команд, состояний или операций чтения / записи данных.

Регистр контроля и синхронизации и контроль синхронизации

Это устройство содержит регистры для хранения клавиатуры, режимов отображения и других операций, запрограммированных ЦПУ. Блок синхронизации и управления управляет временем работы схемы.

Счетчик сканирования

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

В режиме декодированного сканирования счетчик внутренне декодирует младшие 2 бита и обеспечивает декодированное сканирование 1 из 4 на SL 0 -SL 3 .

Буферы возврата, отладка клавиатуры и контроль

Этот блок сначала сканирует закрытие клавиш по строкам, если он найден, тогда блок отладки клавиатуры отклоняет ввод ключа. В случае, если та же клавиша обнаружена, код этой клавиши напрямую передается в ОЗУ датчика вместе со статусом клавиши SHIFT & CONTROL.

FIFO / датчик ОЗУ и логика состояния

Это устройство действует как 8-байтовая ОЗУ «первым пришел – первым обслужен» (FIFO), где код клавиши каждой нажатой клавиши вводится в ОЗУ в соответствии с их последовательностью. Логика состояния генерирует запрос прерывания после каждой операции чтения FIFO, пока FIFO не станет пустым.

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

Показать регистры адресов и показать ОЗУ

Этот блок состоит из регистров адреса дисплея, которые содержат адреса слова, в настоящее время считываемого / записываемого ЦП в / из ОЗУ дисплея.

8279 – Пин Описание

На следующем рисунке показана схема контактов 8279 –

8279 Pin Diagram

Линии шины данных, DB 0 – DB 7

Это 8 двунаправленных линий шины данных, используемых для передачи данных в / из ЦП.

CLK

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

СБРОС

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

CS Chip Select

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

А 0

Этот вывод указывает передачу команды / информации о состоянии. Когда оно низкое, это указывает на передачу данных.

RD, WR

Этот контакт чтения / записи позволяет буферу данных отправлять / получать данные по шине данных.

IRQ

Эта линия вывода прерывания становится высокой, когда в ОЗУ датчика FIFO есть данные. Строка прерывания уменьшается с каждой операцией чтения ОЗУ FIFO. Однако, если ОЗУ FIFO дополнительно содержит какую-либо запись кода ключа, которая должна быть прочитана ЦП, этот вывод снова повышается, чтобы создать прерывание для ЦП.

V ss , V cc

Это линии заземления и питания микропроцессора.

SL 0 – SL 3

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

RL 0 – RL 7

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

СДВИГ

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

CNTL / STB – режим управления / стробирования I / P

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

BD

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

OUTA 0 – OUTA 3 и OUTB 0 – OUTB 3

Это выходные порты для двух 16×4 или одного 16×8 внутренних регистров обновления дисплея. Данные из этих строк синхронизируются со строками сканирования для сканирования дисплея и клавиатуры.

Операционные режимы 8279

В 8279 есть два режима работы – режим ввода и режим вывода .

Режим ввода

Этот режим имеет дело с вводом, данным с клавиатуры, и этот режим далее классифицирован на 3 режима.

  • Режим сканированной клавиатуры – в этом режиме матрица клавиш может быть сопряжена с использованием либо кодированного, либо декодированного сканирования. При кодированном сканировании, клавиатуре 8 × 8 или в декодированном сканировании может быть подключена клавиатура 4 × 8. Код клавиши, нажатой с состояниями SHIFT и CONTROL, сохраняется в ОЗУ FIFO.

  • Сканированная матрица датчиков – в этом режиме матрица датчиков может быть сопряжена с процессором с использованием сканирования кодером или декодером. При сканировании кодера может быть сопряжена матрица датчиков 8 × 8 или со сканированием декодера матрица датчиков 4 × 8.

  • Strobed Input – в этом режиме, когда линия управления установлена ​​на 0, данные на обратных линиях сохраняются в байтах FIFO.

Режим сканированной клавиатуры – в этом режиме матрица клавиш может быть сопряжена с использованием либо кодированного, либо декодированного сканирования. При кодированном сканировании, клавиатуре 8 × 8 или в декодированном сканировании может быть подключена клавиатура 4 × 8. Код клавиши, нажатой с состояниями SHIFT и CONTROL, сохраняется в ОЗУ FIFO.

Сканированная матрица датчиков – в этом режиме матрица датчиков может быть сопряжена с процессором с использованием сканирования кодером или декодером. При сканировании кодера может быть сопряжена матрица датчиков 8 × 8 или со сканированием декодера матрица датчиков 4 × 8.

Strobed Input – в этом режиме, когда линия управления установлена ​​на 0, данные на обратных линиях сохраняются в байтах FIFO.

Режим вывода

Этот режим имеет дело с операциями, связанными с отображением. Этот режим далее классифицируется на два режима вывода.

  • Сканирование дисплея – этот режим позволяет организовать мультиплексные дисплеи 8/16 символов в виде двух 4-битных / одиночных 8-битных блоков отображения.

  • Отображение ввода – этот режим позволяет вводить данные для отображения с правой или левой стороны.

Сканирование дисплея – этот режим позволяет организовать мультиплексные дисплеи 8/16 символов в виде двух 4-битных / одиночных 8-битных блоков отображения.

Отображение ввода – этот режим позволяет вводить данные для отображения с правой или левой стороны.

Микропроцессор – контроллер 8257 DMA

DMA означает прямой доступ к памяти. Он разработан Intel для быстрой передачи данных. Это позволяет устройству передавать данные непосредственно в / из памяти без какого-либо вмешательства ЦП.

Используя контроллер DMA, устройство запрашивает у ЦП свои данные, адрес и управляющую шину, поэтому устройство может передавать данные непосредственно в / из памяти. Передача данных DMA начинается только после получения сигнала HLDA от CPU.

Как выполняются операции DMA?

Ниже приведена последовательность операций, выполняемых DMA –

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

  • Контроллер DMA отправляет запрос удержания (HRQ) в ЦП и ожидает, пока ЦП утвердит HLDA.

  • Затем микропроцессор делит три состояния на всю шину данных, адресную шину и управляющую шину. ЦП покидает контроль над шиной и подтверждает запрос HOLD через сигнал HLDA.

  • Теперь процессор находится в состоянии HOLD, и контроллер DMA должен управлять операциями по шинам между процессором, памятью и устройствами ввода-вывода.

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

Контроллер DMA отправляет запрос удержания (HRQ) в ЦП и ожидает, пока ЦП утвердит HLDA.

Затем микропроцессор делит три состояния на всю шину данных, адресную шину и управляющую шину. ЦП покидает контроль над шиной и подтверждает запрос HOLD через сигнал HLDA.

Теперь процессор находится в состоянии HOLD, и контроллер DMA должен управлять операциями по шинам между процессором, памятью и устройствами ввода-вывода.

Особенности 8257

Вот список некоторых выдающихся особенностей 8257 –

  • Он имеет четыре канала, которые можно использовать на четырех устройствах ввода-вывода.

  • Каждый канал имеет 16-битный адрес и 14-битный счетчик.

  • Каждый канал может передавать данные до 64 КБ.

  • Каждый канал может быть запрограммирован независимо.

  • Каждый канал может выполнять операции чтения чтения, записи записи и проверки операций передачи.

  • Он генерирует сигнал MARK для периферийного устройства о том, что было передано 128 байтов.

  • Это требует однофазных часов.

  • Его частота колеблется от 250 Гц до 3 МГц.

  • Он работает в 2 режимах, то есть в режиме Master и Slave .

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

Каждый канал имеет 16-битный адрес и 14-битный счетчик.

Каждый канал может передавать данные до 64 КБ.

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

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

Он генерирует сигнал MARK для периферийного устройства о том, что было передано 128 байтов.

Это требует однофазных часов.

Его частота колеблется от 250 Гц до 3 МГц.

Он работает в 2 режимах, то есть в режиме Master и Slave .

8257 Архитектура

На следующем изображении показана архитектура 8257 –

8257 Архитектура

8257 Pin Описание

На следующем рисунке показана схема контактов контроллера прямого доступа к памяти 8257 –

8257 Pin Схема

DRQ 0 −DRQ 3

Это четыре отдельных канала ввода запроса DMA, которые используются периферийными устройствами для использования услуг DMA. Когда выбран режим с фиксированным приоритетом, то DRQ 0 имеет самый высокий приоритет, а DRQ 3 имеет самый низкий приоритет среди них.

DACK o – DACK 3

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

Д о – Д 7

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

IOR

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

IOW

Это активная линия с тремя состояниями в двух направлениях, которая используется для загрузки содержимого шины данных в регистр 8-битного режима или в верхний / нижний байт 16-битного регистра адресов DMA или регистра подсчета терминалов. В режиме мастера он используется для загрузки данных на периферийные устройства во время цикла чтения памяти DMA.

CLK

Это сигнал тактовой частоты, который требуется для внутренней работы 8257.

СБРОС

Этот сигнал используется для сброса контроллера DMA путем отключения всех каналов DMA.

A o – A 3

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

CS

Это линия выбора активных и низких фишек. В режиме Slave он разрешает операции чтения / записи в / из 8257. В режиме мастера он отключает операции чтения / записи в / из 8257.

А 4 – А 7

Это верхний полубайт младшего байтового адреса, сгенерированного DMA в режиме мастера.

ГОТОВЫ

Это активный высокий асинхронный входной сигнал, который подготавливает DMA путем вставки состояний ожидания.

HRQ

Этот сигнал используется для приема сигнала запроса удержания от устройства вывода. В подчиненном режиме он связан с линией входа DRQ 8257. В режиме Master он связан со входом HOLD ЦПУ.

HLDA

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

МЭМР

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

MEMW

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

ADST

Этот сигнал используется для преобразования старшего байта адреса памяти, сгенерированного контроллером DMA, в защелки.

АЕН

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

TC

Он обозначает «Количество терминалов», которое указывает текущий цикл DMA для существующих периферийных устройств.

ОТМЕТКА

Знак будет активироваться после каждых 128 циклов или целых кратных с самого начала. Это указывает на то, что текущий цикл DMA является 128-м циклом с момента предыдущего вывода MARK на выбранное периферийное устройство.

V cc

Это сигнал мощности, необходимый для работы схемы.

Микроконтроллеры – Обзор

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

Общий микроконтроллер состоит из процессора, памяти (RAM, ROM, EPROM), последовательных портов, периферийных устройств (таймеры, счетчики) и т. Д.

Разница между микропроцессором и микроконтроллером

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

микроконтроллер Микропроцессор
Микроконтроллеры используются для выполнения одной задачи в приложении. Микропроцессоры используются для больших приложений.
Его проектирование и стоимость оборудования низкие. Его проектирование и стоимость оборудования высоки.
Легко заменить. Не так легко заменить.
Он построен по технологии CMOS, которая требует меньше энергии для работы. Потребляемая мощность высока, потому что он должен контролировать всю систему.
Он состоит из ЦП, ОЗУ, ПЗУ, портов ввода / вывода. Он не состоит из ОЗУ, ПЗУ, портов ввода / вывода. Он использует свои контакты для взаимодействия с периферийными устройствами.

Типы микроконтроллеров

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

Немного

На основе битовой конфигурации микроконтроллер делится на три категории.

  • 8-битный микроконтроллер. Этот тип микроконтроллера используется для выполнения арифметических и логических операций, таких как сложение, вычитание, умножение и т. Д. Например, Intel 8031 ​​и 8051 представляют собой 8-битный микроконтроллер.

  • 16-разрядный микроконтроллер – этот тип микроконтроллера используется для выполнения арифметических и логических операций, где требуется более высокая точность и производительность. Например, Intel 8096 представляет собой 16-разрядный микроконтроллер.

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

8-битный микроконтроллер. Этот тип микроконтроллера используется для выполнения арифметических и логических операций, таких как сложение, вычитание, умножение и т. Д. Например, Intel 8031 ​​и 8051 представляют собой 8-битный микроконтроллер.

16-разрядный микроконтроллер – этот тип микроконтроллера используется для выполнения арифметических и логических операций, где требуется более высокая точность и производительность. Например, Intel 8096 представляет собой 16-разрядный микроконтроллер.

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

объем памяти

В зависимости от конфигурации памяти микроконтроллер делится на две категории.

  • Микроконтроллер с внешней памятью. Микроконтроллеры такого типа спроектированы таким образом, что на чипе отсутствует программная память. Следовательно, он называется микроконтроллером внешней памяти. Например: микроконтроллер Intel 8031.

  • Микроконтроллер со встроенной памятью. Этот тип микроконтроллера спроектирован таким образом, что микроконтроллер имеет все программы и память данных, счетчики и таймеры, прерывания, порты ввода / вывода встроены в микросхему. Например: микроконтроллер Intel 8051.

Микроконтроллер с внешней памятью. Микроконтроллеры такого типа спроектированы таким образом, что на чипе отсутствует программная память. Следовательно, он называется микроконтроллером внешней памяти. Например: микроконтроллер Intel 8031.

Микроконтроллер со встроенной памятью. Этот тип микроконтроллера спроектирован таким образом, что микроконтроллер имеет все программы и память данных, счетчики и таймеры, прерывания, порты ввода / вывода встроены в микросхему. Например: микроконтроллер Intel 8051.

Набор инструкций

На основе конфигурации набора команд микроконтроллер делится на две категории.

  • CISC – CISC расшифровывается как компьютер с комплексными инструкциями. Это позволяет пользователю вставить одну инструкцию в качестве альтернативы многим простым инструкциям.

  • RISC – RISC расшифровывается как Компьютеры с сокращенным набором команд. Это сокращает время работы за счет сокращения тактового цикла на инструкцию.

CISC – CISC расшифровывается как компьютер с комплексными инструкциями. Это позволяет пользователю вставить одну инструкцию в качестве альтернативы многим простым инструкциям.

RISC – RISC расшифровывается как Компьютеры с сокращенным набором команд. Это сокращает время работы за счет сокращения тактового цикла на инструкцию.

Применение микроконтроллеров

Микроконтроллеры широко используются в различных устройствах, таких как –

  • Светочувствительные и контролирующие устройства, такие как LED.

  • Приборы для измерения и контроля температуры, такие как микроволновая печь, дымоходы.

  • Пожарная сигнализация и устройства безопасности, такие как пожарная сигнализация.

  • Измерительные приборы, такие как вольтметр.

Светочувствительные и контролирующие устройства, такие как LED.

Приборы для измерения и контроля температуры, такие как микроволновая печь, дымоходы.

Пожарная сигнализация и устройства безопасности, такие как пожарная сигнализация.

Измерительные приборы, такие как вольтметр.

Микроконтроллеры – архитектура 8051

Микроконтроллер 8051 разработан Intel в 1981 году. Это 8-битный микроконтроллер. Он состоит из 40-контактного DIP (двойной встроенный пакет), 4 КБ памяти ROM и 128 байтов памяти RAM, 2 16-битных таймеров. Он состоит из четырех параллельных 8-битных портов, которые программируются и адресуются в соответствии с требованиями. Кристаллический генератор на кристалле встроен в микроконтроллер с частотой кристалла 12 МГц.

Давайте теперь обсудим архитектуру микроконтроллера 8051.

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

8051 Архитектура

Микроконтроллеры – 8051 Pin Описание

Схема выводов микроконтроллера 8051 выглядит следующим образом:

Схема контактов 8051

  • Контакты с 1 по 8 – Эти контакты известны как Порт 1. Этот порт не выполняет никаких других функций. Это внутренний двунаправленный порт ввода-вывода.

  • Вывод 9 – это вывод RESET, который используется для сброса микроконтроллера к его начальным значениям.

  • Контакты с 10 по 17 – эти контакты известны как порт 3. Этот порт выполняет некоторые функции, такие как прерывания, вход таймера, сигналы управления, сигналы последовательной связи RxD и TxD и т. Д.

  • Выводы 18 и 19 – эти выводы используются для сопряжения внешнего кристалла, чтобы получить системные часы.

  • Контакт 20 – Этот контакт обеспечивает питание цепи.

  • Контакты с 21 по 28 – эти контакты известны как порт 2. Он служит портом ввода / вывода. Сигналы шины адреса более высокого порядка также мультиплексируются с использованием этого порта.

  • Вывод 29 – это вывод PSEN, означающий включение хранилища программ. Используется для считывания сигнала из внешней памяти программ.

  • Вывод 30 – это вывод EA, который обозначает вход внешнего доступа. Он используется для включения / выключения интерфейса внешней памяти.

  • Вывод 31 – это вывод ALE, который обозначает включение фиксации адреса. Он используется для демультиплексирования сигнала адрес-данные порта.

  • Контакты с 32 по 39 – эти контакты известны как порт 0. Он служит портом ввода / вывода. Адрес младшего разряда и сигналы шины данных мультиплексируются через этот порт.

  • Вывод 40 – этот вывод используется для подачи питания в цепь.

Контакты с 1 по 8 – Эти контакты известны как Порт 1. Этот порт не выполняет никаких других функций. Это внутренний двунаправленный порт ввода-вывода.

Вывод 9 – это вывод RESET, который используется для сброса микроконтроллера к его начальным значениям.

Контакты с 10 по 17 – эти контакты известны как порт 3. Этот порт выполняет некоторые функции, такие как прерывания, вход таймера, сигналы управления, сигналы последовательной связи RxD и TxD и т. Д.

Выводы 18 и 19 – эти выводы используются для сопряжения внешнего кристалла, чтобы получить системные часы.

Контакт 20 – Этот контакт обеспечивает питание цепи.

Контакты с 21 по 28 – эти контакты известны как порт 2. Он служит портом ввода / вывода. Сигналы шины адреса более высокого порядка также мультиплексируются с использованием этого порта.

Вывод 29 – это вывод PSEN, означающий включение хранилища программ. Используется для считывания сигнала из внешней памяти программ.

Вывод 30 – это вывод EA, который обозначает вход внешнего доступа. Он используется для включения / выключения интерфейса внешней памяти.

Вывод 31 – это вывод ALE, который обозначает включение фиксации адреса. Он используется для демультиплексирования сигнала адрес-данные порта.

Контакты с 32 по 39 – эти контакты известны как порт 0. Он служит портом ввода / вывода. Адрес младшего разряда и сигналы шины данных мультиплексируются через этот порт.

Вывод 40 – этот вывод используется для подачи питания в цепь.

Микроконтроллеры 8051 Входные выходные порты

Микроконтроллеры 8051 имеют 4 порта ввода-вывода каждый из 8-битных, которые можно настроить как вход или выход. Следовательно, всего 32 входных / выходных контакта позволяют микроконтроллеру быть связанным с периферийными устройствами.

  • Конфигурация выводов, т.е. вывод можно настроить как 1 для входа и 0 для выхода в соответствии с логическим состоянием.

    • Вывод входа / выхода (I / O) – Все цепи в микроконтроллере должны быть подключены к одному из его выводов, кроме порта P0, поскольку в него не встроены подтягивающие резисторы.

    • Входной вывод – Логика 1 применяется к биту P-регистра. Выходной FE-транзистор выключен, а другой вывод остается подключенным к напряжению источника питания через подтягивающий резистор высокого сопротивления.

  • Порт 0Порт P0 (ноль) характеризуется двумя функциями –

    • Когда используется внешняя память, к ней применяется младший байт адреса (адреса A0A7), в противном случае все биты этого порта конфигурируются как вход / выход.

    • Когда порт P0 сконфигурирован как выход, тогда другие порты, состоящие из выводов со встроенным подтягивающим резистором, подключенным его концом к источнику питания 5 В, на выводах этого порта этот резистор не используется.

Конфигурация выводов, т.е. вывод можно настроить как 1 для входа и 0 для выхода в соответствии с логическим состоянием.

Вывод входа / выхода (I / O) – Все цепи в микроконтроллере должны быть подключены к одному из его выводов, кроме порта P0, поскольку в него не встроены подтягивающие резисторы.

Входной вывод – Логика 1 применяется к биту P-регистра. Выходной FE-транзистор выключен, а другой вывод остается подключенным к напряжению источника питания через подтягивающий резистор высокого сопротивления.

Порт 0Порт P0 (ноль) характеризуется двумя функциями –

Когда используется внешняя память, к ней применяется младший байт адреса (адреса A0A7), в противном случае все биты этого порта конфигурируются как вход / выход.

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

Конфигурация входа

Если какой-либо вывод этого порта сконфигурирован как вход, то он действует так, как будто он «плавает», т. Е. Вход имеет неограниченное входное сопротивление и неопределенный потенциал.

Конфигурация выхода

Когда вывод сконфигурирован как выход, он действует как «открытый сток». При применении логики 0 к биту порта соответствующий вывод будет подключен к заземлению (0 В), а при применении логики 1 внешний выход будет оставаться «плавающим».

Чтобы применить логику 1 (5 В) к этому выходному контакту, необходимо создать внешний подтягивающий резистор.

Порт 1

P1 является истинным портом ввода / вывода, так как у него нет альтернативных функций, как в P0, но этот порт можно настроить только как общий ввод / вывод. Он имеет встроенный подтягивающий резистор и полностью совместим с цепями TTL.

Порт 2

P2 аналогичен P0, когда используется внешняя память. Контакты этого порта занимают адреса, предназначенные для внешней микросхемы памяти. Этот порт может использоваться для старшего байта адреса с адресами A8-A15. Если память не добавлена, этот порт можно использовать как общий порт ввода-вывода, аналогичный порту 1.

Порт 3

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

Ограничения тока на контактах

  • Когда выводы сконфигурированы как выход (т. Е. Логический 0), то выводы одного порта могут получать ток 10 мА.

  • Когда эти выводы настроены как входы (т. Е. Логическая 1), тогда встроенные подтягивающие резисторы обеспечивают очень слабый ток, но могут активировать до 4 входов TTL серии LS.

  • Если все 8 бит порта активны, то общий ток должен быть ограничен 15 мА (порт P0: 26 мА).

  • Если все порты (32 бита) активны, то максимальный максимальный ток должен быть ограничен 71 мА.

Когда выводы сконфигурированы как выход (т. Е. Логический 0), то выводы одного порта могут получать ток 10 мА.

Когда эти выводы настроены как входы (т. Е. Логическая 1), тогда встроенные подтягивающие резисторы обеспечивают очень слабый ток, но могут активировать до 4 входов TTL серии LS.

Если все 8 бит порта активны, то общий ток должен быть ограничен 15 мА (порт P0: 26 мА).

Если все порты (32 бита) активны, то максимальный максимальный ток должен быть ограничен 71 мА.

Микроконтроллеры – 8051 Прерывания

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

8051 имеет 5 сигналов прерывания, то есть INT0, TFO, INT1, TF1, RI / TI. Каждое прерывание можно включить или отключить, установив биты регистра IE, и всю систему прерываний можно отключить, очистив бит EA того же регистра.

IE (Разрешение прерывания) Регистрация

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

IE Регистрация

Е.А. IE.7 Это отключает все прерывания. Когда EA = 0, прерывание не будет подтверждено, а EA = 1 разрешает прерывание по отдельности.
IE.6 Зарезервировано для будущего использования.
IE.5 Зарезервировано для будущего использования.
ES IE.4 Включает / отключает прерывание последовательного порта.
ET1 IE.3 Включает / отключает прерывание переполнения таймера1.
EX1 IE.2 Включает / отключает внешнее прерывание1.
ET0 IE.1 Включает / отключает прерывание переполнения таймера 0.
EX0 IE.0 Включает / отключает внешнее прерывание0.

Регистр IP (приоритет прерывания)

Мы можем изменить уровни приоритета прерываний, изменив соответствующий бит в регистре приоритетов прерываний (IP), как показано на следующем рисунке.

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

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

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

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

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

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

Регистр IP

IP.6 Зарезервировано для будущего использования.
IP.5 Зарезервировано для будущего использования.
PS IP.4 Он определяет уровень приоритета прерывания последовательного порта.
PT1 IP.3 Он определяет прерывание по таймеру 1 приоритета.
PX1 IP.2 Он определяет уровень приоритета внешнего прерывания.
PT0 IP.1 Он определяет уровень приоритета прерывания timer0.
PX0 IP.0 Он определяет внешнее прерывание с нулевым уровнем приоритета.

TCON Зарегистрироваться

Регистр TCON определяет тип внешнего прерывания для микроконтроллера.

8255A – Программируемый периферийный интерфейс

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

Он состоит из трех 8-битных двунаправленных портов ввода / вывода (24I / O линий), которые могут быть настроены в соответствии с требованиями.

Порты 8255А

8255A имеет три порта: порт A, порт B и порт C.

  • Порт A содержит один 8-разрядный выходной фиксатор / буфер и один 8-разрядный входной буфер.

  • Порт B похож на Порт A.

  • Порт C может быть разделен на две части: PORT C нижний (PC0-PC3) и PORT C верхний (PC7-PC4) с помощью управляющего слова.

Порт A содержит один 8-разрядный выходной фиксатор / буфер и один 8-разрядный входной буфер.

Порт B похож на Порт A.

Порт C может быть разделен на две части: PORT C нижний (PC0-PC3) и PORT C верхний (PC7-PC4) с помощью управляющего слова.

Эти три порта дополнительно разделены на две группы, то есть группа A включает в себя PORT A и верхний PORT C. Группа B включает в себя PORT B ​​и нижний PORT C. Эти две группы могут быть запрограммированы в трех разных режимах, т.е. первый режим называется как mode 0, второй режим называется режимом 1, а третий режим называется режимом 2.

Режимы работы

8255A имеет три различных режима работы –

  • Режим 0 – в этом режиме порт A и B используются как два 8-битных порта, а порт C – как два 4-битных порта. Каждый порт может быть запрограммирован либо в режиме ввода, либо в режиме вывода, где выходы заблокированы, а входы не заблокированы. Порты не имеют возможности прерывания.

  • Режим 1 – В этом режиме порты A и B используются как 8-битные порты ввода / вывода. Они могут быть настроены как входные или выходные порты. Каждый порт использует три линии от порта C в качестве сигналов квитирования. Входы и выходы заблокированы.

  • Режим 2 – В этом режиме порт A может быть настроен как двунаправленный порт, а порт B – в режиме 0 или режиме 1. Порт A использует пять сигналов от порта C в качестве сигналов квитирования для передачи данных. Оставшиеся три сигнала от порта C могут использоваться как простой ввод-вывод или как квитирование для порта B.

Режим 0 – в этом режиме порт A и B используются как два 8-битных порта, а порт C – как два 4-битных порта. Каждый порт может быть запрограммирован либо в режиме ввода, либо в режиме вывода, где выходы заблокированы, а входы не заблокированы. Порты не имеют возможности прерывания.

Режим 1 – В этом режиме порты A и B используются как 8-битные порты ввода / вывода. Они могут быть настроены как входные или выходные порты. Каждый порт использует три линии от порта C в качестве сигналов квитирования. Входы и выходы заблокированы.

Режим 2 – В этом режиме порт A может быть настроен как двунаправленный порт, а порт B – в режиме 0 или режиме 1. Порт A использует пять сигналов от порта C в качестве сигналов квитирования для передачи данных. Оставшиеся три сигнала от порта C могут использоваться как простой ввод-вывод или как квитирование для порта B.

Особенности 8255A

Выдающиеся особенности 8255A следующие:

  • Он состоит из 3 8-битных портов ввода-вывода, т.е. PA, PB и ПК.

  • Шина адреса / данных должна быть внешне demux’d.

  • Это TTL-совместимый.

  • Это улучшило способность вождения постоянного тока.

Он состоит из 3 8-битных портов ввода-вывода, т.е. PA, PB и ПК.

Шина адреса / данных должна быть внешне demux’d.

Это TTL-совместимый.

Это улучшило способность вождения постоянного тока.

8255 Архитектура

На следующем рисунке показана архитектура 8255A –

8255A Архитектура

Intel 8255A – Описание контактов

Давайте сначала взглянем на схему контактов Intel 8255A –

8255A Схема контактов

Теперь давайте обсудим функциональное описание контактов в 8255A.

Буфер данных

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

Логика управления чтением / записью

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

CS

Это означает Chip Select. НИЗКИЙ на этом входе выбирает микросхему и обеспечивает связь между 8255A и CPU. Он подключен к декодированному адресу, а A 0 и A 1 подключены к адресным линиям микропроцессора.

Их результат зависит от следующих условий –

CS А 1 А 0 Результат
0 0 0 ПОРТ А
0 0 1 ПОРТ Б
0 1 0 ПОРТ С
0 1 1 Контрольный регистр
1 Икс Икс Нет выбора

WR

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

СБРОС

Это активный высокий сигнал. Он очищает регистр управления и устанавливает все порты в режиме ввода.

RD

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

А 0 и А 1

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

А 1 А 0 RD WR CS Результат
0 0 0 1 0

Операция ввода

ПОРТ А → Шина данных

0 1 0 1 0 ПОРТ B → Шина данных
1 0 0 1 0 ПОРТ C → Шина данных
0 0 1 0 0

Операция вывода

Шина данных → ПОРТ А

0 1 1 0 0 Шина данных → ПОРТ А
1 0 1 0 0 Шина данных → ПОРТ B
1 1 1 0 0 Шина данных → ПОРТ D

Операция ввода

Операция вывода

Intel 8253 – Программируемый интервальный таймер

Intel 8253 и 8254 представляют собой программируемые интервальные таймеры (PTI), разработанные для микропроцессоров для выполнения функций синхронизации и подсчета с использованием трех 16-разрядных регистров. Каждый счетчик имеет 2 входа, то есть Clock & Gate, и 1 контакт для выхода «OUT». Для работы счетчика в его регистр загружается 16-битный счетчик. По команде он начинает уменьшать счет до тех пор, пока не достигнет 0, а затем генерирует импульс, который можно использовать для прерывания ЦП.

Разница между 8253 и 8254

В следующей таблице различаются функции 8253 и 8254 –

8253 8254
Его рабочая частота составляет 0 – 2,6 МГц. Его рабочая частота составляет 0 – 10 МГц.
Использует технологию N-MOS Использует технологию H-MOS
Команда Read-Back недоступна Доступна команда Read-Back
Чтение и запись одного и того же счетчика не могут чередоваться. Чтение и запись одного и того же счетчика могут чередоваться.

Особенности 8253/54

Наиболее характерные особенности 8253/54:

  • Он имеет три независимых 16-битных счетчика вниз.

  • Он может обрабатывать входы от постоянного тока до 10 МГц.

  • Эти три счетчика могут быть запрограммированы для двоичного или BCD-счетчика.

  • Он совместим практически со всеми микропроцессорами.

  • 8254 имеет мощную команду READ BACK, которая позволяет пользователю проверять значение счетчика, запрограммированный режим, текущий режим и текущее состояние счетчика.

Он имеет три независимых 16-битных счетчика вниз.

Он может обрабатывать входы от постоянного тока до 10 МГц.

Эти три счетчика могут быть запрограммированы для двоичного или BCD-счетчика.

Он совместим практически со всеми микропроцессорами.

8254 имеет мощную команду READ BACK, которая позволяет пользователю проверять значение счетчика, запрограммированный режим, текущий режим и текущее состояние счетчика.

8254 Архитектура

Архитектура 8254 выглядит следующим образом –

8254 Архитектура

8254 Pin Описание

Вот схема контактов 8254 –

8254 Pin Описание

На рисунке выше показаны три счетчика, буфер шины данных, логика управления чтением / записью и регистр управления. Каждый счетчик имеет два входных сигнала – CLOCK & GATE и один выходной сигнал – OUT.

Буфер данных

Это трехсторонний, двунаправленный, 8-битный буфер, который используется для интерфейса 8253/54 с системной шиной данных. У него есть три основные функции –

  • Программирование режимов 8253/54.
  • Загрузка регистров счета.
  • Чтение значений счетчика.

Чтение / запись логики

Он включает в себя 5 сигналов, то есть RD, WR, CS и адресные линии A 0 и A 1 . В режиме периферийного ввода / вывода сигналы RD и WR подключаются к IOR и IOW соответственно. В режиме ввода-вывода с отображением в памяти они подключены к MEMR и MEMW.

Адресные линии A 0 и A 1 ЦПУ подключены к линиям A 0 и A 1 8253/54, а CS привязан к декодированному адресу. Регистр командного слова и счетчики выбираются в соответствии с сигналами в строках A 0 и A 1 .

А 1 А 0 Результат
0 0 Счетчик 0
0 1 Счетчик 1
1 0 Счетчик 2
1 1 Регистр управляющих слов
Икс Икс Нет выбора

Регистр управляющих слов

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

А 1 А 0 RD WR CS Результат
0 0 1 0 0 Счетчик записи 0
0 1 1 0 0 Счетчик записи 1
1 0 1 0 0 Счетчик записи 2
1 1 1 0 0 Напишите контрольное слово
0 0 0 1 0 Счетчик чтения 0
0 1 0 1 0 Считать счетчик 1
1 0 0 1 0 Считать счетчик 2
1 1 0 1 0 Нет операции
Икс Икс 1 1 0 Нет операции
Икс Икс Икс Икс 1 Нет операции

Счетчики

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

Intel 8253/54 – рабочие режимы

8253/54 может работать в 6 различных режимах. В этой главе мы обсудим эти режимы работы.

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

Первоначально выходной сигнал низкий после установки режима. Выход остается НИЗКИМ после загрузки значения счетчика в счетчик.

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

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

Может использоваться как моностабильный мультивибратор.

В этом режиме вход затвора используется как триггерный вход.

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

Выход обычно высокий после инициализации.

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

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

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

Счет фиксируется, когда сигнал GATE становится НИЗКИМ.

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

Этот режим генерирует строб в ответ на внешний сигнал.

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

После того, как он инициализирован, выходной сигнал становится высоким.

Когда счетчик контактов достигнут, выходной сигнал понижается в течение одного тактового цикла.

Понравилась статья? Поделить с друзьями:
  • Инструкция по обработке хлебного шкафа в доу
  • Выражает признательность руководству
  • Фнс по костромской области руководство
  • Артезин инструкция по применению цена отзывы аналоги таблетки цена
  • Лакрикан глазные капли для собак инструкция