Состав и функционирование минимальной эвм с шинной организацией 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Состав и функционирование минимальной эвм с шинной организацией



ПРИНЦИПЫ ФОН НЕЙМАНА

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

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

§ информация кодируется в двоичной форме и разделяется на единицы, называемые словами;

§ алгоритм представляется в форме последовательности управляющих слов, которые определяют смысл операции; эти управляющие слова называются командами; совокупность команд, представляющая алгоритм, называется программой;

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

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

Практически можно реализовать принцип фон Неймана множеством различных способов.

Перед тем как описать принципы функционирования ЭВМ, введем несколько определений.

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

Термин организация ЭВМ определяет, как реализованы возможности ЭВМ.

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


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

Еще большее изумление у человека, незнакомого с вычислительной техникой, вызывает тот факт, что все разнообразие решаемых на ЭВМ задач реализуется с помощью небольшого набора очень простых команд. Система команд у типичной ЭВМ включает в себя всего 60 - 150 базовых команд. Все команды, в основном, служат для выполнения очень простых действий, таких как, прочитать, запомнить, сложить, сдвинуть, сравнить, и т. д. Интеллектуальность ЭВМ достигается за счет того, что ЭВМ способна выполнять программы, состоящие из большого числа таких простых действий с огромной, недостижимой для человека скоростью.


КОМАНДЫ ЭВМ

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

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

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

Команды обработки данных. Данную группу команд с точки зрения выполняемых над данными операций можно подразделить на арифметические (сложить, вычесть, умножить и т. д), логические (операции “И”, “ИЛИ”, “НЕ” и т. д.) и команды сдвига. Команды этого типа могут иметь один или два операнда. Операнды могут храниться в регистрах центрального процессора, в памяти или в самой команде. Результат операции формируется в регистре - приемнике или в специализированном регистре - аккумуляторе. Команды данной группы формируют признаки результатов, устанавливаемые в регистре флагов процессора: перенос из старшего разряда, переполнение, нулевой результат и др. К арифметическим командам относят также и команды сравнения. Обычно для сравнения двух чисел процессор выполняет операцию вычитания. По результату вычитания устанавливаются флаги во флаговом регистре процессора. Очевидно, что если сравниваемые величины равны, результат вычитания будет нулевым и во флаговом регистре установится флаг нулевого результата. Если первая из сравниваемых величин больше - результат вычитания будет отрицательным и установится флаг отрицательного результата и т. д. Результат вычитания не сохраняется в памяти, по состоянию флагового регистра можно судить о результатах сравнения двух величин. Многие процессоры имеют команды сравнения операнда с нулем. В некоторых процессорах имеются команды проверки или щустановки состояния отдельных битов в операнде.

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

Простейшей командой передачи управления является команда безусловного перехода JMP <адрес>, которая загружает адрес перехода, указанный в команде в программный счетчик.

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

IF (A>B) then goto L;

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

СРАВНИТЬ A и B

Обмен по прерываниям

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

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

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

Человек подходит к телефону и начинает разговор с приятелем. В это время на кухне закипает чайник. “Что там такое? Ах, это чайник!” Ладно, пусть себе покипит, приятель рассказывает что-то интересное, на чайник можно пока не обращать внимания.

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

Теперь несколько изменим ситуацию. Пусть опять чтение было прервано телефонным звонком и в процессе разговора опять на кухне что-то закипело. Только на этот раз закипел не чайник, а молоко. Это уже серьезнее. Человек говорит в телефонную трубку - “извини, сейчас!”, откладывает трубку и бежит на кухню обслуживать убегающее молоко. Молоко снято с плиты, оно спокойно остывает, можно вернуться к телефонному разговору. Он опять берет трубку и спрашивает: “Так на чем мы остановились? Ах, да!”, - и продолжает разговор; закончив его, возвращается к книге.

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

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

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

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

1. Получить запрос прерывания.

2. Идентифицировать запрос и выбрать соответствующую процедуру обслуживания прерывания.

3. Сохранить информацию о состоянии прерываемой работы.

4. Обслужить прерывание.

5. Восстановить состояние прерванной работы и вернуться к ее выполнению.

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

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

В состав шины управления входит несколько линий запроса прерывания IRQ n (Interrupt ReQuire). Каждая из линий имеет свой уникальный приоритет n. Различные устройства, в зависимости от их важности, подключаются к различным линиям запроса прерываний. Кроме того, имеется одна или несколько линий подтверждения прерываний INTA (INTerrupt Acnowlege).

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

1. Запрос прерывания. Когда периферийное устройство выполнило требуемые действия и его контроллеру необходимо “привлечь к себе внимание” процессора, он формирует запрос прерывания, активизируя “свою” линию IRQ. Часть центрального процессора, которая называется арбитром прерываний, анализирует приоритет поступившего запроса и сравнивает его с текущим приоритетом задачи, выполняемой процессором. Если приоритет запроса выше приоритета процессора, центральный процессор завершает выполнение текущей команды и приступает к выполнению цикла подтверждения прерывания.

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

В памяти ЭВМ хранится вектор прерываний - массив адресов подпрограмм обслуживания прерываний. Считанный с шины данных код процессор использует как номер элемента вектора прерываний. По этому номеру из массива извлекается один из элементов - адрес требуемой подпрограммы обслуживания прерывания.

3. Сохранение информации о состоянии процессора. После того, как обработка прерывания будет закончена, процессору нужно вернуться к выполнению прерванной задачи. Для того, чтобы это сделать, необходимо запомнить, в каком состоянии был процессор в результате выполнения предыдущей команды. Напомним, что все арифметические команды формируют признаки результатов во флаговом регистре процессора. Например, если процессор выполнял команду сравнения и был прерван, как он сможет выполнить следующую команду условного ветвления, если «не помнит» признаки, установленные при сравнении? Следовательно, при возникновении прерывания процессору необходимо сохранить содержимое своего флагового регистра. Кроме того, необходимо запомнить адрес команды, на которой прервалось выполнение программы, чтобы вернуться к ее выполнению после завершения прерывания. Напомним, что адрес команды, подлежащей выполнению, хранится в программном счетчике. Для сохранения всей необходимой информации используется аппаратный стек, принципы использования которого приведены выше при описании реализации механизма подпрограмм. Таким образом, при возникновении прерывания процессору необходимо включить в стек как минимум регистр флагов и программный счетчик. Арбитр прерываний запоминает, какой приоритет имел процессор при возникновении прерывания. Эта информация может сохраняться вместе с флаговым регистром процессора (как в ЭВМ PDP-11), а может фиксироваться в схеме арбитра (как в персональных ЭВМ фирмы IBM).

Подпрограмме обработки прерывания могут понадобиться для работы регистры процессора. Так как обработчик прерывания “не знает”, чем были заняты регистры процессора до прерывания, используемые регистры также необходимо сохранить. Для сохранения рабочих регистров также используется стек. В предельном случае потребуется запоминать содержимое всех регистров процессора. Процессы запоминания содержимого внутренних регистров после восприятия сигнала прерывания и восстановления его после окончания обработки прерывания называются контекстным переключением. Скорость контекстного переключения оказывает заметное влияние на производительность ЭВМ, особенно в условиях интенсивных прерываний. Поэтому во многих процессорах предусматриваются средства ускорения контекстных переключений, например, команды, которые загружают в стек и извлекают из стека содержимое группы регистров (пример - команды PUSHA и POPA процессора 80286). В идеальном случае контекстное переключение должно требовать минимум команд и времени.

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

5. Восстановление состояния процессора. После того, как обработка прерывания завершена, процессор выполняет команду возврат из прерывания. Эта команда, подобно команде возврата из подпрограммы, выталкивает из стека адрес возврата и помещает его в программный счетчик. В отличие от возврата из подпрограммы, при возврате из прерывания из стека восстанавливается и содержимое регистра флагов. Если арбитр прерываний аппаратно является частью процессора (как в PDP-11), восстановление информации о приоритете процессора до прерывания происходит автоматически. Если арбитр является внешней по отношению к центральному процессору схемой (как в персональных ЭВМ фирмы IBM), процессору необходимо проинформировать арбитра о том, что обслуживание прерывания завершено и необходимо восстановить информацию о приоритете. Если подпрограмма обслуживания прерывания сохраняла содержимое регистров процессора в стеке, то перед окончанием обработки прерывания она обязана восстановить содержимое регистров.

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

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

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

Однако необходимо отметить, что реализация механизма прерываний требует некоторых потерь времени на выполнение арбитража, подтверждение прерывания, сохранение информации о состоянии процессора и восстановление этой информации после окончания прерывания. Так в ЭВМ с процессором 8086 и тактовой частотой 4 МГц издержки на организацию обработки прерывания составляют около 40 мкс. Эта величина учитывает только аппаратные издержки механизма прерываний без учета времени, затрачиваемого на сохранение и восстановление регистров центрального процессора, используемых подпрограммой обслуживания прерываний. Следует учитывать также то, что некоторые операционные системы могут накладывать свои ограничения на действия, выполняемые подпрограммами обслуживания прерываний. Наличие этих ограничений приводит к дополнительным издержкам времени. Для ЭВМ PDP-11 с операционной системой RT-11 величина этих издержек может составлять до 100 - 150 мкс. Поэтому максимальная скорость обмена данными по прерываниям будет меньше максимальной скорости программно-управляемого обмена данными. Применение прерываний имеет смысл только в том случае, когда необходимо совместить выполнение полезной вычислительной работы с обслуживанием нескольких медленных внешних устройств. В других случаях более предпочтительным могут оказаться другие способы обмена данными.

ПРИНЦИПЫ ФОН НЕЙМАНА

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

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

§ информация кодируется в двоичной форме и разделяется на единицы, называемые словами;

§ алгоритм представляется в форме последовательности управляющих слов, которые определяют смысл операции; эти управляющие слова называются командами; совокупность команд, представляющая алгоритм, называется программой;

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

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

Практически можно реализовать принцип фон Неймана множеством различных способов.

Перед тем как описать принципы функционирования ЭВМ, введем несколько определений.

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

Термин организация ЭВМ определяет, как реализованы возможности ЭВМ.

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


СОСТАВ И ФУНКЦИОНИРОВАНИЕ МИНИМАЛЬНОЙ ЭВМ С ШИННОЙ ОРГАНИЗАЦИЕЙ

Шинная организация является простейшей формой организации ЭВМ. Подобная ЭВМ имеет в своем составе следующие функциональные блоки (см. рис. 1).

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

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

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

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

Кроме того, в АЛУ имеется набор программно - доступных быстродействующих ячеек памяти, которые называются регистрами процессора. Регистры составляют основу архитектуры процессора. Среди обязательного набора регистров можно отметить следующие. Регистр данных служит для временного хранения промежуточных результатов при выполнении операций. Регистр - аккумулятор содержит данные временного хранения, которые используются в процессе вычислений (например, в нем формируется результат выполнения команды умножения). Регистр - указатель стека используется при операциях со стеком, т. е. такой структурой данных, которая работает по принципу: последним вошел - первым вышел, т.е. последнее записанное в него значение извлекается из него первым. Пока отметим только, что стеки используются для организации подпрограмм. Индексные, указательные и базовые регистры используются для хранения и вычисления адресов операндов в памяти. Регистры - счетчики используются для организации циклических участков в программах. Регистры общего назначения, имеющиеся во многих ЭВМ, могут использоваться для любых целей. Точное назначение такого регистра определяет программист при написании программы. Они могут использоваться для временного хранения данных, в качестве аккумуляторов, а также в качестве индексных, базовых, указательных регистров. Количество регистров и связей между ними оказывает существенное влияние на сложность и стоимость процессора. Однако, с другой стороны, наличие большого количества регистров с богатым набором возможностей упрощает программирование и повышает гибкость программного обеспечения. Кроме перечисленных регистров в состав АЛУ могут входить внутренние системные регистры, недоступные программно и используемые во время внутренних пересылок информации при выполнении команд.

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

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

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

Шина состоит из отдельных проводников (линий). Сигналы по линиям шины могут передаваться либо импульсами (наличие импульса соответствует логической единице, а отсутствие импульса – нулю), либо уровнем напряжения (например, высокий уровень - логическая единица, низкий – ноль). Шириной шины называется количество линий (проводников), входящих в состав шины. Ширина шины адреса определяет размер адресного пространства ЭВМ. Если, например, количество линий адреса, используемых для адресации памяти, равно 20, то общее количество адресуемых ячеек памяти составит 220, т.е. примерно один миллион ячеек (точнее 1048576 ячеек).

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

Из управляющих линий пока выделим следующие.

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

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

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

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

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

Такой способ обмена данными называется асинхронным обменом, а сама операция запроса/подтверждения носит названия квитирования или рукопожатия (handshake) и широко применяется при построении системы шин различного назначения в различных ЭВМ.

Функционирование ЭВМ с приведенной выше структурой можно описать следующим обобщенным алгоритмом (см. рис. 3).

1. Инициализация. После включения ЭВМ или операции сброса в регистры центрального процессора заносятся некоторые начальные значения. Обычно в процессе инициализации в память ЭВМ помещается программа, называемая первичным загрузчиком. Основное назначение первичного загрузчика - загрузить в память с устройства внешней памяти операционную систему. Эта программа может быть размещена в энергонезависимом устройстве памяти или автоматически считываться с некоторого устройства внешней памяти. Мы не будем здесь подробно останавливаться на механизмах загрузки операционной системы, тем более, что они могут существенно различаться для разных типов ЭВМ. Пока будем полагать, что в памяти некоторым “волшебным” образом оказалась первая из подлежащих выполнению программ. Программному счетчику присваивается начальное значение, равное адресу первой команды программы указанной выше.

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



Поделиться:


Последнее изменение этой страницы: 2016-12-30; просмотров: 526; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.16.66.206 (0.047 с.)