Современная архитектура компьютера
Процессор должен обмениваться данными с внутренней памятью и устройствами ввода и вывода. Выделить отдельные каналы для связи процессора с каждым из многочисленных устройств нереально. Вместо этого сделана общая линия связи, доступ к которой имеют все устройства, использующие её по очереди. Такой информационный канал называется шиной.
Шина (или магистраль) — это группа линий связи для обмена данными между несколькими устройствами компьютера.
Традиционно шина делится на три части — это:
шина данных, по которой передаются данные;
шина адреса, определяющая, куда именно передаётся информация;
шина управления, которая организует процесс обмена (несёт сигналы чтение/запись, обращение к внутренней/ внешней памяти, данные готовы/не готовы и т. п.).
На шину данных процессор выставляет данные для записи, на шину адреса — нужный адрес памяти, а на шину управления — сигналы для записи информации в память. Далее он вынужден ожидать, пока данные будут «взяты» с шины. В это время все остальные устройства постоянно «слушают» шину (проверяют её состояние). В нашем примере по сигналам на шине память обнаруживает, что для неё имеются данные. Она сохраняет их по заданному адресу и должна по шине управления сообщить процессору, что операция завершена. На практике, учитывая высокую надёжность работы памяти, сигнал подтверждения часто не используется: процессор просто выжидает определённое время и продолжает выполнение программы. Из этого примера понятно, что для успешного обмена данными по шине должны быть введены чёткие правила (их принято называть протоколом шины), которые должны соблюдать все устройства.
По сравнению с первыми ЭВМ, взаимодействие процессора с внешними устройствами организуется теперь по-другому. В классической архитектуре процессор контролировал все процессы ввода/вывода. Получалось так, что быстродействующий процессор тратил много времени на ожидание при работе с значительно более медленными внешними устройствами. Поэтому появились специальные электронные схемы, которые руководят обменом данными между процессором и внешними устройствами. В третьем поколении такие устройства назывались каналами ввода/ вывода, а в четвёртом — контроллерами.
Контроллер — это электронная схема для управления внешним устройством и простейшей предварительной обработки данных.
Современный контроллер — это специальный микропроцессор, предназначенный для обслуживания одного или нескольких однотипных устройства ввода/вывода (УВВ) или внешней памяти. Нагрузка на центральный процессор при этом существенно снижается, и это увеличивает эффективность работы всей системы в целом. Контроллер, собранный в виде отдельной микросхемы, называют микроконтроллером.
В качестве примера рассмотрим контроллер современного жёсткого диска. Его основная задача — по принятым от процессора координатам найти на диске требуемые данные, прочитать их и передать в ОЗУ. Но контроллер способен выполнять и другие, порой весьма нетривиальные функции. Так, он сохраняет в служебной области диска информацию обо всех имеющихся на магнитной поверхности некачественно изготовленных секторах (а их при современной высокой плотности записи избежать не удаётся!) и способен «на ходу» подменять их резервными, что создаёт видимость диска, который полностью свободен от дефектов.
Как видно на приведенной на рисунке схемы, теперь данные могут передаваться между внешними устройствами и ОЗУ напрямую, минуя процессор. Кроме того, наличие шины существенно упрощает подсоединение к ней новых устройств. Архитектуру, которую можно легко расширять за счёт подключения к шине новых устройств, часто называют магистрально-модульной архитектурой.
Если спецификация на шину (детальное описание всех её логических и физических параметров) является открытой (опубликована), то производители могут разрабатывать к такой шине любые дополнительные устройства. Такой подход называют принципом открытой архитектуры. При этом в компьютере предусмотрены стандартные разъёмы для подключения новых устройств, удовлетворяющих стандарту. Поэтому пользователь может собрать такой компьютер, который ему нужен. Необходимо только помнить, что при подключении любого нового устройства нужно установить специальную программу — драйвер, которая управляет обменом данными между этим устройством и процессором.
В современных компьютерах для повышения эффективности работы используется несколько шин, например, одна — между процессором и памятью, другая связывает процессор с видеосистемой и т. д.
Существуют три режима обмена данными между центральным процессором (ЦП) и внешними устройствами: программно управляемый ввод/вывод; обмен с устройствами по прерываниям; прямой доступ к памяти (ПДП).
При обмене по прерываниям устройства ввода/вывода в случае необходимости сами «требуют внимания» процессора. Например, клавиатура оповещает процессор каждый раз, когда была нажата или отпущена клавиша; всё остальное время процессор выполняет программу, «не отвлекаясь» на клавиатуру. Когда прерывание произошло, ЦП «откладывает» на некоторое время выполнение основной программы и переходит на служебную программу обработки прерывания. Завершив его обработку, ЦП снова возвращается к тому месту программы, где она оказалась прервана. При этом основная программа даже «не заметит» возникшей задержки. Этот режим обмена более сложен, но зато значительно эффективнее — процессор не тратит время на ожидание.
Представим себе, что в кабинете начальника идёт совещание и в этот момент по телефону поступает важная информация, требующая немедленного принятия решения. Секретарша, не дожидаясь конца совещания, сообщает начальнику о звонке. Тот, прервав свое выступление, снимает трубку, выясняет суть дела и сообщает свое решение. Затем он продолжает совещание, как ни в чем не бывало. Здесь роль ЦП играет начальник, а телефонный звонок — это запрос (требование) на прерывание. «Секретарша» в компьютере тоже предусмотрена — это контроллер прерываний, анализирующий и сортирующий все поступающие прерывания с учётом их важности (приоритета).
Механизм прерываний используется не только в аппаратной части, но и в программах, которые основаны на обработке событий (нажатий на клавиши, команд управления от мыши и т. п.). Такая технология лежит в основе современных операционных систем и применяется в системах разработки программ Microsoft Visual Studio, Delphi, Lazarus и им подобных.
В обоих описанных выше вариантах управление обменом выполнял центральный процессор. Именно он извлекал из памяти выводимые данные (или записывал туда вводимые), подсчитывал их количество и полностью контролировал работу шины. Если передаваемые данные не требуют сложной обработки, ЦП напрасно расходует время на проведение обмена. Чтобы освободить процессор от этой работы и увеличить скорость передачи крупных блоков данных от устройства ввода в память и обратно, применяется прямой доступ к памяти (ПДП, англ. DMA — Direct Memory Access).
Принципиальное отличие ПДП состоит в том, что в этом режиме процессор не производит обмен, а только подготавливает его, программируя контроллер ПДП: устанавливает режим обмена, а также передаёт начальный адрес ОЗУ и количество циклов обмена. Далее контроллер в ходе ПДП самостоятельно наращивает первое значение и уменьшает второе, что позволяет освободить центральный процессор.
Изложенный материал о режимах ввода/вывода может быть сведён в таблице (здесь УВВ обозначает устройство ввода/вывода).
Вид обмена
| Начинает
обмен
| Руководит
обменом
| Текущая
программа
| Программа
обмена
| Программный
| ЦП
| ЦП
| Программа обмена — часть текущей программы
| Прерывания
| УВВ
| ЦП
| Прерывается
| Специальная подпрограмма
| ПДП
| УВВ, ЦП
| Контроллер
ПДП
| Выполняется параллельно
| Отсутствует (обмен идёт аппаратно)
|
Не нашли, что искали? Воспользуйтесь поиском по сайту:
©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.
|