Архитектура ЭВМ
Выбери формат для чтения
Загружаем конспект в формате doc
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
Лекция 1
Архитектура ЭВМ.
Архитектура ЭВМ — это абстрактное представление или описание физической системы (программы и комплекса аппаратных средств) с точки зрения программиста, разрабатывающего программы на машинно-ориентированном языке. Она в первом приближении определяет принципы организации вычислительной системы (ВС) и функции процессора и не отражает такие вопросы, как управление и передача данных внутри процессора, конструктивные особенности логических схем и специфика технологии их производства.
Магистрально-модульный принцип построения ВС
Магистрально модульный принцип построения вычислительной системы предполагает выделение общего универсального канала – магистрали для связи между элементами системы – модулями и определения общих правил взаимодействия. В центре ВС – центральный процессор (ЦП). Он управляет информационной связью между устройствами. Упрощённая структурная схема ВС изображена на рис.1. К магистрали подключены периферийные устройства (ПУ) , память и прочие устройства.
Рис.1. Магистрально-модульный принцип построения ВС
Информационная связь между устройствами компьютера осуществляется через информационную магистраль (другие названия — системная шина, канал обмена информацией). Магистраль — это кабель (или печатные проводники или линии соединения внутри кристалла интегральной схемы), состоящий из множества проводов. В простейшем случае можно выделить 3 группы проводов (шин). По одной группе проводов (шина данных) передается информация, по другой (шина адреса) — адрес памяти или порта периферийного устройства, к которому обращается процессор. Есть еще третья часть магистрали — шина управления, по ней передаются управляющие сигналы (например сигнал готовности устройства к работе, сигнал к началу работы устройства и др.). Количество одновременно передаваемых по шине бит данных называется разрядностью шины. Всякая информация, передаваемая от процессора к другим устройствам по шине данных, сопровождается адресом, передаваемым по адресной шине (как письмо сопровождается адресом на конверте). Это может быть адрес ячейки в оперативной памяти или адрес ячейки в постоянной памяти или адрес (номер порта) периферийного устройства.
Рис.2. Шины информационной магистрали
Чтобы обращаться к элементам системы, каждому из элементов должен быть присвоен некоторый уникальный идентификационный признак.
В качестве уникального механизма может быть использована единая адресная система. Взаимодействие устройств осуществляется через специальные встроенные в них регистры. Каждый регистр в такой системе имеет уникальный адрес, включая регистры ЦП.
Другой вариант организации предполагает отдельные адресные пространства для памяти и устройств ввода/вывода и, соответственно, различные команды для передачи данных в эти адресные пространства.
Рассмотрим типичную операцию (транзакцию) на шине. Шинная транзакция включает в себя две части: посылку адреса и прием (или посылку) данных. Шинные транзакции обычно определяются характером взаимодействия с памятью: транзакция типа "Чтение" передает данные из памяти (или в ЦП или в устройство ввода/вывода), транзакция типа "Запись" записывает данные в память.
В транзакции типа "Чтение" по шине сначала посылается в память адрес вместе с соответствующими сигналами управления, инициирующими чтение. Память отвечает, возвращая на шину данные, сопровождая их соответствующими сигналами управления, если они предсмотрены.
Транзакция типа "Запись" требует, чтобы ЦП или другое устройство послало в память адрес и данные и соответствующие управляющие сигналы.
Для ПУ, в случае раздельных адресных пространств, используют термины "Ввод" и "Вывод".
В некоторых ВС для экономии числа проводов (шин или места на кристалле ИС) совмещают шины адреса и данных, выполняя передачу необходимой информации в разные моменты времени транзакции, сопровождая её соответствующими управляющими сигналами.
Программная модель ПУ.
Программная модель – это то, как программист видит некоторое периферийное устройство.
Любое ПУ представлено для программиста и программы в виде набора регистров (портов) с некоторыми адресами. Обычно эти регистры на структурных схемах размещаются в контроллерах ПУ, которые являются связуюшим блоком между системной шиной и собственно ПУ. Все регистры имеют четкое функциональное назначение.
Структурно можно выделить три группы регистров (рис. 3):
1. Регистры управления.
2. Регистры состояния.
3. Регистры ввода/вывода данных.
Рис.3. Программная модель абстрактного ПУ.
Занесение некоторого значения в регистр управления позволяет задать тот или иной режим работы устройства. Обычно в них можно только записать данные, а прочитать нельзя.
Регистр состояния показывает, в каком состоянии находится ПУ в настоящий момент. Обычно содержимое этих регистров можно прочитать, но записать туда данные нельзя.
Через регистры ввода/вывода осуществляется обмен данными с ПУ.
Следует обратить внимание, что в зависимости от функциональных свойств ПУ у него может быть несколько регистров управления, регистров состояния и регистров ввода/вывода. Также возможно совмещение функции некоторых регистров. Например, совмещенный регистр состояния/управления. Иногда некоторых регистров может не быть.
Виды обмена данными
Программный обмен.
Участники обмена: ЦП и ПУ
Инициатор обмена - ЦП
Алгоритм обмена.
Процессор, выполняя соответствующую команду, выставляет на шину адреса значение, соответствующее адресу регистра контроллера периферийного устройства. В случае операции вывода на шину данных ЦП выставляет данные, подлежащие передаче. В зависимости от вида операции на шине управления выставляется сигнал на вывод или ввод.
По шине данных осуществляется передача данных от ЦП к ПУ или от ПУ к ЦП.
Обмен с использованием системы прерывания.
Участники обмена: ЦП и ПУ, с использованием контроллера прерываний.
Инициатор обмена: ПУ.
Алгоритм обмена.
По возникновению некоторого события ПУ через свой контроллер обращается к контроллеру прерываний по специально выделенной для этого ПУ линии прерываний на шине управления.
Контроллер прерываний помогает процессору найти место размещения подпрограммы обработки прерывания, используя информацию, заранее размещённую в нём. Эта подпрограмма вызывается и осуществляет программное взаимодействие с ПУ.
Пример.
Аналогией такого способа обмена может служить звонок во входную дверь, который звенит не тогда, когда вы хотите, а в произвольный момент времени и вы вынуждены прерваться на некоторое время и заняться этим вопросом.
Возникают вопросы: что будет происходить, если одновременно возникнет два запроса на прерывания от двух разных ПУ, и что делать будет, когда ЦП обрабатывает одно прерывание и возникает другое, более важное и срочное?
Чтобы упорядочить взаимодействие по прерываниям вводится система приоритетов прерываний, то есть иерархия важности прерываний. В зависимости от архитектурных особенностей ЦП и контроллера прерываний есть разных алгоритмы построения приоритетов.
Первый и самый простой – бесприоритетный механизм. В этом случае при возникновении некоторого прерывания никакие другие прерывания не могут быть обработаны до окончания обработки этого прерывания и выстраиваются в очередь обработки.
Второй механизм – с относительным приоритетом. В этом случае все прерывания имеют свои приоритеты, которые отличаются друг от друга. Пусть мы имеем три прерывания A,B и С, которые имеют приоритеты А>B>C. Пусть возникло прерывание B. Процессор перешел к программе его обработки. В время обработки возникли запросы на прерывания сначала С, затем А. Обработка прерывания B не была прервана и программа обработки прерывания B доработала до конца. Теперь, несмотря на то, что запрос на прерывание C пришел раньше, чем на A, происходит переход к обработке прерывания A, потому что оно обладает более высоким приоритетом (рис. 4).
Рис. 4. Обработка прерываний с относительным приоритетом.
Третий механизм – механизм с абсолютным приоритетом. Пусть у нас есть два источника прерывания A и B. С приоритетами A>B. Пусть поступил запрос на прерывание B. Процессор приступил к программе его обработки. В это время поступило прерывание A. Процессор прерывал программу по обработке прерывания B и перешел к обработке прерывания A. По окончании программы обработки прерывания A процессор вернулся и закончил обработку прерывания B.
Рис. 5. Обработка прерываний с абсолютным приоритетом.
В реальных процессорных системах часто смешиваются абсолютный и относительный механизмы приоритетов. В этом случае прерывания объединяются в группы абсолютных приоритетов. Внутри группы действуют относительные приоритеты.
Полинговые системы
В некоторых системах существует сложный механизм динамического изменения прерываний, то есть после выполнения некоторого прерывания его приоритет падает. Такие системы прерываний называются полинговыми. Пусть у нас есть три прерывания A,B,C с динамическими приоритетами A>B>C. Произошло прерывание A, и процессор его обработал. Теперь мы имеем приоритеты B>C>A.
В некоторых случаях приоритет прерывания повышается с течением времени.
Полинговые системы прерываний применяются в системах, где количество прерываний велико или велика частота их возникновения. При статических приоритетах может возникнуть ситуация, когда прерывание с низким приоритетом никогда не будет обработано, так как его постоянно будут вытеснять другие с более высоким приоритетом. Полинговые системы решают эту проблему.
Маскирование прерываний.
Маскирование прерываний – это программный механизм запрета обработки некоторых прерываний. Он осуществляется двумя способами.
Первый запрещает некоторое конкретное прерывание. Обычно это производится путем изменения определённого бита в соответствующем регистре контроллера периферийного устройстве, которые запрещает этому устройству выдавать запрос на прерывания в шину. Чаще однако этот бит находится в контроллере прерывания.
Второй механизм – более общий. Он запрещает ЦП обрабатывать прерывания, приоритет которых ниже заданного или вообще любое прерывание. В этом случае в соответствующем регистре процессора должен содержаться код уровня прерывания, ниже которого ЦП прерывания пока не обрабатывает.
Часто существует группа источников прерываний, который нельзя запрещать. Такие прерывания называются немаскируемыми. Соответственно, прерывания, которые можно запретить, называются маскируемыми.
Примеры прерываний.
Маскируемые:
1. Прерывание от таймера.
2. Прерывание по нажатию клавиши на клавиатуре.
3. Прерывание от мыши.
Немаскируемые:
1. Прерывание по недопустимому коду операции.
2. Прерывание по переполнению стека.
3. Прерывание по неисправности питания.
Перезапуск (рестарт) процессора тоже может являться особым видом немаскируемого прерывания, которое вызывается при нажатии кнопки RESET (сброс).
Обмен по прямому доступу к памяти (ПДП).
Участники обмена: ПУ и память под управлением контроллера ПДП.
Инициатор обмена – ПУ
Такой механизм обмена позволяет ПУ производить запись или чтение данных, не используя на этапе обмена ЦП. Это позволяет экономить вычислительные ресурсы системы и повышать ее производительность путём совмещения во времени работы ЦП и процесса ПДП.
Алгоритм обмена.
ПУ через свой контроллер по одной из шин управления выдает запрос на чтение/запись по ПДП. Контроллер ПДП (КПДП) информирует ЦП о желании занять шину. Когда ЦП освобождает магистраль, КПДП копирует данные из/в ПУ в/из память.
В зависимости от вида ПУ и задач, которые оно решает, КПДП может быть запрограммирован на единичный или блочный обмен данными.
На каждое периферийное устройство в КПДП выделяется канал обмена. Так как число таких каналов в контроллере ограничено, то и количество ПУ, которые могут использовать этот механизм обмена, тоже ограничено.
По окончании обмена ПУ может выступить источником прерываний.
В ранних компьютерах контроллер прерываний и КПДП исполнялись в виде отдельных микросхем. С ростом степени интеграции они переместились на кристалл ЦП.