Основные сведения о микропроцессорах

Автор работы: Пользователь скрыл имя, 17 Октября 2012 в 01:28, реферат

Описание работы

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

Содержание работы

Введение. Основные сведения о микропроцессорах………..2
Центральные процессоры……………………………………..3
Другие микропроцессоры: сопроцессоры…………………….8
Вспомогательные микросхемы………………………………...10
Советские разработки…………………………………………..12
Советские разработки: первые МПК…………………………..13
Вывод…………………………………………………………….15
Список используемой литературы……………………………...16

Файлы: 1 файл

реферат по информатике.doc

— 251.00 Кб (Скачать файл)

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

Традиционно ЦП должен «уметь» выполнять действия со следующими объектами:

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

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

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

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

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

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

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

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

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

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

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

Другие микропроцессоры: сопроцессоры.

   Хотя микропроцессоры Intel 80x86 являются мощными однокристальными процессорами, их системы команд недостаточно для эффективной реализации некоторых сложных применений. В этих случаях микропроцессоры необходимо дополнить сопроцессорами, которые расширяют системы команд в направлениях, обеспечивающих более эффективную реализацию требуемых специальных вычислений. Например, микропроцессоры 8086/8088 не имеют команд арифметики с плавающей точкой, а при использовании в качестве сопроцессора процессора числовых данных 8087 легко реализуются требования вычислений с плавающей точкой. Важно отметить, что при этом выигрыш достигается только при использовании программ, написанных специально для этого сопроцессора (или совместимого с ним).

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

     Хотя выбирать команды  может только главный ЦП, но  сопроцессор также получает все считанные команды и контролирует выполнение команд главным ЦП. В системе команд микропроцессоров Intel 80x86 имеется команда «передать сопроцессору», которая, как и любая другая, одновременно дешифруется сопроцессором и главным ЦП. Отметим, что в этой команде не указывается, для того ли она сопроцессора, который установлен в системе, или для какого-то другого. Поэтому программа должна сама определять не только наличие сопроцессора, но и его тип, и менять своё поведение соответствующим образом.

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

   Когда ЦП дешифрует команду  для сопроцессора, он может просто  перейти к следующей команде,  а может считать первое слово  операнда для сопроцессора из  памяти, а затем перейти к следующей  команде. Если ЦП считывает  первое слово операнда, сопроцессор перехватывает и само слово данных, и его 20-битный физический адрес в памяти. Когда операнд-источник длиннее одного слова, сопроцессор получает остальные слова посредством запроса циклов шины, когда обращается к ней только он; в это время ЦП ждёт её освобождения. Если же операнд команды является получателем, сопроцессор игнорирует считанное ЦП слово данных, а позднее запоминает результат по перехваченному адресу. В любом случает сопроцессор выдаёт сигнал занятости на системную шину и выполняет указанную в команде операцию, пока ЦП продолжает выполнение программы. Такая параллельная работа продолжается до тех пор, пока ЦП не понадобится сопроцессор для выполнения другой операции или ЦП не потребуется получить результат текущей операции. При этом ЦП должен ожидать, пока сопроцессор не снимет сигнал занятости с шины. Для этого специальная команда микропроцессоров Intel 80x86 – «ждать освобождения сопроцессора» – периодически проверяет линию занятости сопроцессора и при снятии с неё сигнала осуществляет передачу управления находящейся за ней команде.  

   Код операции «передать сопроцессору» занимает 5 бит. Эта команда имеет два операнда. Первый из них, длиной 6 бит, показывает код внешней операции, определяющий действия сопроцессора. Если второй операнд, длиной 5 бит, определяет ячейку памяти, ЦП считывает слово из этой ячейки для сопроцессора и предаёт сопроцессору адрес для запоминания результата. Если вторым операндом является регистр ЦП, недоступный сопроцессору, ЦП не делает ничего. Такой формат команды ограничивает число различных внешних команд, использующих память, до 64. Если вторым операндом является регистр ЦП, то его адрес бесполезен сопроцессору и потому поле адреса регистра в команде содержит часть кода внешней операции. Поэтому операций, не использующих память, может быть до 512. В случае использования операцией памяти адрес необходимой ячейки может следовать за описанными 16 битами. Таким образом, полная команда может занимать 16 или 32 бита.

  К одному микропроцессору 8086/8088 допускается подключать до двух сопроцессоров; при этом сопроцессорам необходимо назначать непересекающиеся подмножества кодов внешних операций, и каждый сопроцессор должен распознавать и выполнять операции своего подмножества. Это означает, в частности, что сопроцессоры должны быть различными. Подключаются оба сопроцессора к одним и тем же линиям системной шины, но к различным входам запроса циклов шины ЦП. Кроме того, сопроцессоры подключаются к различным входам запросов прерываний контроллера прерываний. Запрос прерывания формируются сопроцессором при возникновении ошибки в процессе дешифрации и выполнения его команд. Сопроцессор использует те же генератор синхронизации, контроллер шины, контроллер прерываний, защёлки адреса и приёмопередатчики, что и ЦП.

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

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

Вспомогательные микросхемы.

Ранее говорилось, что для поддержки  микропроцессоров 8086/8088 требуются следующие компоненты: генератор синхронизации, приёмопередатчики, регистры-защёлки адреса, контроллер системной шины, контроллер прерываний, контроллер ПДП, контроллер НГМД, контроллер клавиатуры, интерфейс периферийных устройств, последовательный интерфейс, программируемый таймер, контроллер динамических ОЗУ. Рассмотрим вкратце их функции:

Генератор синхронизации 8284/8284A

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

Приёмопередатчики 8286/8287

В зависимости от разрешения или запрещения доступа к памяти, передают или не передают в микросхемы памяти принятые данные, а при передаче данных усиливает их. Микропроцессору 8088 необходима одна такая микросхема, а микропроцессору 8086 – две. В настоящее время приёмопередатчики встроены в модули памяти.

Информация о работе Основные сведения о микропроцессорах