Logo GenDocs.ru

Поиск по сайту:  


Загрузка...

Лекции по ВМСС - файл Глава 4.doc


Загрузка...
Лекции по ВМСС
скачать (35218.7 kb.)

Доступные файлы (18):

Глава 10.doc8030kb.25.01.2005 11:05скачать
Глава 11 ВЫЧИСЛИТЕЛЬНЫЕ СИСТЕМЫ.doc2232kb.28.01.2005 20:28скачать
Глава 12.doc4356kb.29.01.2005 18:29скачать
Глава 13.doc745kb.09.03.2005 15:11скачать
Глава 14.doc605kb.11.03.2005 15:19скачать
Глава 15.doc243kb.11.03.2005 15:35скачать
Глава 16.doc498kb.11.03.2005 15:43скачать
Глава 2.doc2062kb.24.02.2005 19:16скачать
Глава 3 ЭЛЕМЕНТНАЯ БАЗА ЭВМ.doc2589kb.24.02.2005 20:00скачать
Глава 4.doc1726kb.02.03.2005 20:36скачать
Глава 5 ЦЕНТРАЛЬНЫЕ УСТРОЙСТВА ЭВМ.doc1113kb.04.03.2005 13:56скачать
Глава 6.doc1177kb.04.03.2005 18:09скачать
Глава 7 ВНЕШНИЕ УСТРОЙСТВА ЭВМ.doc918kb.09.03.2005 14:44скачать
Глава 8.doc6796kb.25.01.2005 19:33скачать
Глава 9.doc4463kb.25.01.2005 18:23скачать
ОГЛАВЛЕНИЕ.doc45kb.11.03.2005 19:02скачать
УСЛОВНЫЕ ОБОЗНАЧЕНИЯ.doc41kb.04.03.2005 14:10скачать
учебник_введение.doc53kb.25.01.2005 11:37скачать

Глава 4.doc

Реклама MarketGid:
Загрузка...
Глава 4 ФУНКЦИОНАЛЬНАЯ И СТРУКТУРНАЯ ОРГАНИЗАЦИЯ ЭВМ

4.1. Общие принципы функциональной и структурной организации ЭВМ

Электронные вычислительные машины включают, кроме аппарат­ной части и программного обеспечения, большое количество функци­ональных средств. К ним относятся коды, с помощью которых обра­батываемая информация представляется в цифровом виде: арифме­тические коды — для выполнения арифметических преобразований числовой информации; помехозащищенные коды, используемые для защиты информации от искажений; коды формы, определяющие, как должна выглядеть обрабатываемая в ЭВМ информация при отобра­жении; цифровые коды аналоговых величин (звука, «живого видео») и др. Кроме кодов на функционирование ЭВМ оказывают влияние алгоритмы их формирования и обработки, технология выполнения различных процедур (например, начальной загрузки операционной системы; принятой в системе технологии обработки заданий пользо­вателей и др.), способы использования различных устройств и орга­низации их работы (например, организации системы прерываний или организации прямого доступа к памяти), устранения негативных яв­лений (например, таких, как фрагментация памяти) и др.

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

Реализованы принципы функционирования ЭВМ могут быть по-раз­ному: аппаратными, программно-аппаратными или программными сред­ствами. При аппаратной и программно-аппаратной реализации могут быть применены регистры, дешифраторы, сумматоры; блоки жесткого аппаратного управления или микропрограммного с управлением под­программами (комплексами микроопераций); устройства или комплек­сы устройств, реализованные в виде автономных систем (программи­руемых или с жестким управлением) и др. При программной реализа­ции могут быть применены различные виды программ.

Будем считать, что способы реализации функций ЭВМ составля­ют структурную организацию ЭВМ. Тогда элементная база, функци­ональные узлы и устройства ЭВМ, программные модули различных видов (обработчики прерываний, драйверы, com-, exe-, tsr-программы, bat-файлы и др.) являются структурными компонентами ЭВМ.

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

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

При неполной совместимости ЭВМ (при наличии различий в их функциональной организации) применяют эмуляторы, т.е. программ­ные преобразователи функциональных элементов.

Состав функциональных блоков и структурных средств неодно­роден. Поэтому в большинстве случаев функциональная и структур­ная организации будут рассматриваться в тех разделах, которые по­священы соответственно аппаратной части (hardware) или программ­ному обеспечению (software).
^ 4.2.Организация функционирования ЭВМ с магистральной архитектурой

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

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

В центральных устройствах основным узлом, связывающим мик­ропроцессорный комплект в единое целое, является системная маги­страль. Она состоит из трех узлов, называемых шинами: шина данных (ШД), шина адреса (ША), шина управления (ШУ). В состав системной магистрали входят регистры-защелки, в которых запоми­нается передаваемая информация, шинные формирователи, шинные арбитры, определяющие очередность доступа к системной магистра­ли, и др.

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

^ В состав центральных устройств ЭВМ входят: центральный про­цессор, основная память и ряд дополнительных узлов, выполняющих служебные функции: контроллер прерываний, таймер и контроллер прямого доступа к памяти (ПДП).

Периферийные устройства делятся на два вида: внешние ЗУ (НМД, НГМД, НМЛ) и устройства ввода-вывода (УВВ): клавиатура, дисп­лей, принтер, мышь, адаптер каналов связи (КС) и др.

Управляющая работой ЭВМ программа перед началом выполне­ния загружается в основную память (ОП). Адрес первой выполняе­мой команды передается микропроцессору и запоминается в счетчи­ке команд.

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

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

Результат выполнения операции выставляется микропроцессором на шину данных, на шину адреса выставляется адрес ОП, по которому этот результат необходимо записать, а на шину управления выставля­ется команда «Запись в ОП». Получив с шины управления команду, ОП считывает адрес и данные с системной магистрали, организует за­пись данных по указанному адресу и после выполнения команды выс­тавляет на шину управления сигнал, обозначающий, что число записа­но. Процессор, получив этот сигнал, начинает выборку очередной ко­манды: выставляет адрес из счетчика команд на шину адреса, формирует команду «Выборка из ОП» на шине управления и т.д.

В каждом цикле, получив команду в регистр команд и выделив код операции, процессор определяет, к какому устройству она отно­сится. Если команда должна выполняться процессором, организуется ее выполнение по описанному циклу. Если же команда предназначена для выполнения в другом устройстве ЭВМ, ЦП передает ее соответ­ствующему устройству. Процесс передачи команды другому устрой­ству предусматривает следующие действия:

• ЦП выставляет на шину адреса СМ адрес интересующего его уст­ройства;

• по шинам управления передается сигнал «Поиск устройства»;

• все устройства, подключенные к системной магистрали, получив этот сигнал, читают номер устройства с шины адреса и сравнива­ют его со своим номером. Устройства, для которых эти номера не совпадают, на эту команду не реагируют. Устройство с совпав­шим номером, вырабатывает сигнал отклика по шине управле­ния;

• ЦП, получив сигнал отклика, в простейшем случае выставляет име­ющуюся у него команду на шину данных и сопровождает ее по шине управления сигналом «Передаю команду»;

• получив сигнал о приеме команды, ЦП переходит к выполнению очередной своей команды, выставляя на шину адреса содержимое счетчика команд.

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

Для различных устройств могут использоваться разные логичес­кие последовательности действий, поэтому интерфейсов ввода-выво­да может в одной и той же ЭВМ использоваться несколько. Если их удается свести к одному, универсальному, то такой интерфейс назы­вается стандартным. В IBM PC есть два стандартных интерфейса для связи ЦП с внешними устройствами: параллельный (типа Centronics) и последовательный (типа RS-232).

Интерфейсы постоянно совершенствуются, поэтому с появлени­ем новых ЭВМ, новых внешних устройств и даже нового программ­ного обеспечения появляются и новые интерфейсы. Так, в программ­ном обеспечении, разработанном ведущими фирмами (в том числе фирмой Microsoft), все шире используется новый интерфейс «Plug and . Play» (Включи — и играй), который предназначен для облегчения си­стемной настройки ЭВМ при подключении новых устройств к маши­не. Этот интерфейс позволяет подключить с помощью кабеля новое устройство, а после включения ЭВМ ее программное обеспечение автоматически определяет состав подключенных устройств, их типы и настраивает машину на работу с ними без вмешательства систем­ного оператора.

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

Для ликвидации таких простоев и повышения эффективности ра­боты оборудования внешние устройства сделаны автономными: по­лучив от ЦП необходимую информацию, они самостоятельно орга­низуют свою работу по обмену данными. Процессор же, запустив внешнее устройство, пытается продолжить выполнение программы. При необходимости (если встретятся соответствующие команды) он может запустить в работу несколько других устройств (так как вне­шние устройства работают значительно медленнее процессора). Если же ему приходится переходить в режим ожидания, то, пользуясь тем, что в ОП может одновременно находиться не одна, а несколько про­грамм, ЦП переходит к выполнению очередной программы. При этом создается ситуация, когда в один и тот же момент времени различные устройства ЭВМ выполняют либо разные программы, либо разные части одной и той же программы. Такой режим работы ЭВМ называ­ется многопрограммным.
^ 4.3.Организация работы ЭВМ при выполнении задания пользователя

Организация процессов ввода, преобразования и отображения ре­зультатов относится к сфере системного программного обеспечения. Это сложные процессы, которые чаще всего делаются «прозрачны­ми», т.е. незаметными для пользователя. Один из них — реализация задания пользователя: профессиональный пользователь (программист) пишет задание для ЭВМ в виде программы на алгоритмическом язы­ке. Написанное задание (программа) представляет собой исходный модуль, сопровождаемый управляющими предложениями, указываю­щими операционной системе ЭВМ, на каком языке написана програм­ма и что с ней надо делать. Если программа пишется на алгоритми­ческом языке, то управляющие предложения — на языке управления операционной системой (в ЕС ЭВМ и IBM 360/370 этот язык называ­ется JCL — Job Control Language, в MS DOS IBM PC — это язык команд DOS, иногда оформляемый в виде bat-файла).

Исходный модуль перед исполнением должен быть переведен на внутренний язык машины. Эта операция выполняется специальной программой — транслятором (рис. 4.1). Трансляторы выполняются в виде двух разновидностей: интерпретаторы и компиляторы. Интер­претатор после перевода на язык машины каждого оператора алго­ритмического языка немедленно исполняет полученную машинную программу. Компилятор же сначала полностью переводит всю про­грамму, представленную ему в виде исходного модуля (ИМ), на язык машины. Получаемая при этом машинная программа представляет собой объектный модуль (ОМ). Результат работы компилятора может быть записан в библиотеку объектных модулей (БОМ) или передан другим программам для дальнейшей обработки, поскольку получен­ная машинная программа не готова к исполнению по двум причинам. Во-первых, она содержит неразрешенные внешние ссылки (т.е. обращение к программам, которые не содержатся в исходном модуле, но необходимы для работы основной программы, например к стан­дартным программам алгоритмического языка, таким, как извлече­ние корня квадратного, вычисление тригонометрических функ­ций и т.д.). Во-вторых, объектный модуль представляет собой машин­ную программу в условных адресах каждый объектный модуль начинается с адреса Oh, тогда как для исполнения программа должна быть «привязана» к конкретным физическим адресам основной памяти.

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

-

Рис. 4.1. Обработка заданий операционной системой

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

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

Если же программа только отлаживается или после каждого про­счета ее нужно будет модернизировать, то получение загрузочного модуля и обращение к программе выборки будут лишними операци­ями. Для их обхода вместо редактора связей может быть применен загрузчик программа, сочетающая в себе функции редактирова­ния связей и загрузки полученной машинной программы в основ­ную память для исполнения. Но при использовании загрузчика мно­гократные просчеты по программе проводить невыгодно, так как каждый раз приходится выполнять лишние операции редактирова­ния связей.
^ 4.4. Особенности управления основной памятью ЭВМ

4.4.1. Отображение адресного пространства программы на основную память

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

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

Выделение ресурсов может быть осуществлено самим програм­мистом (особенно, если он работает на языке, близком машинному), но может производиться и операционной системой.

Если выделение ресурсов производится перед выполнением про­граммы, такой процесс называется статическим перемещением, в результате которого программа «привязывается» к определенному месту в памяти вычислительной машины. Если же ресурсы выделяются в процессе выполнения программы, это называется динамичес­ким перемещением, и в этом случае программа не привязана к опреде­ленному месту в реальной памяти. Динамический режим можно реа­лизовать только с помощью операционной системы.

При статическом перемещении могут встретиться два случая:

• реальная память больше требуемого адресного пространства про­граммы. В этом случае загрузка программы в реальную память производится, начиная с 0-го адреса (рис. 4.2).



Рис. 4.2. Загрузка программы в избыточную реальную память

Загружаемая программа А является абсолютной программой, так как никакого изменения адресов в адресном пространстве, подготовленном компилятором, при загрузке в основную память не происходит — программа располагается с 0-го адреса реальной памяти;

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



Рис. 4.3. Загрузка программы в реальную память при недостатке памяти
В некоторых операционных системах адреса откомпилированной (с 0-го адреса) программы могут быть преобразованы в адреса ре­альной памяти, отличные от 0. При этом создается абсолютный мо­дуль, который требует размещения его в памяти всегда с одного и того же адреса.

При мультипрограммном режиме, если имеем программы А, В и С, для которых известно, что программа А выполняется при разме­щении в памяти с адреса 60 Кбайт до 90 Кбайт, В — с 60 Кбайт до 90 Кбайт, С — с 50 Кбайт до 120 Кбайт, организовать их совместное выполнение невозможно, так как им необходим один и тот же участок реальной памяти. Эти программы будут ждать друг друга либо их нужно заново редактировать с другого адреса.

При работе в мультипрограммном режиме может сложиться ситу­ация, когда между программами образуются незанятые участки па­мяти. На рис. 4.4 общий объем незанятой памяти, составляющий 50 Кбайт, достаточен, чтобы загрузить и программу D, находящуюся в ожидании. Но ее не удается загрузить, так как свободные участки памяти не являются смежными. Такое состояние называется фрагмен­тацией реальной памяти. Оно характерно для систем со статическим перемещением.



Рис. 4.4. Фрагментация реальной памяти

В системах с динамическим перемещением программ перемещаю­щий загрузчик размещает программу в свободной части памяти (рис. 4.5) и допускает использование ее несмежных участков.

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



^ 4.4.2. Адресная структура команд микропроцессора

и планирование ресурсов

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

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

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

Каждый сегмент программы должен иметь свое имя. Форма имени сегмента может быть любой, например номер (рис. 4.7, а,б).



Рис. 4.6. Фрагментация ОП. Загрузка сегментированной программы



Рис. 4.7. Форма имени сегмента: а - при выделении номеру сегмента 8 разрядов; б - при выделении номеру сегмента 16 разрядов

При таком представлении адрес будет состоять из двух частей: s, i, где sимя сегмента, / — адрес внутри сегмента.

Если ЭВМ имеет 32-битовую адресную структуру, максималь­ная длина адреса в единственном сегменте будет 32 разряда. Если 16 разрядов из 32 отвести под номер сегмента (а 16 — под смещение), то в этом случае все адресное пространство программы может состоять из 216 = 64 К сегментов. Сегмент может содержать 216 = 64 Кбайта (т.е. иметь адреса от 0 до 65535). При другой структуре адреса изменяется количество сегментов и их длина.

Структура адресов накладывает два важных ограничения:

• ограничивается максимальное число сегментов, которое может су­ществовать в адресном пространстве программы;

• ограничивается максимальное смещение любого адреса в сегменте.

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

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

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



-Рис. 4.8. Динамическая трансляция адресов при сегментной организации программы

Каждая строка таблицы сегментов содержит адрес начала сегмента в реальной памяти. Для каждого сегмента имеется одна строка таб­лицы.

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

В дополнение к таблице сегментов для динамической трансляции адреса используется специальный управляющий регистр, называемый регистром начала таблицы сегментов (РНТС или STOR — segment table origin register). В этот регистр занесен адрес таблицы сегментов выполняемой в данный момент программы.

На рис. 4.9 изображено выполнение программы D. В РНТС нахо­дится адрес таблицы сегментов этой программы. Если программа В прервет выполнение программы D, то в РНТС будет занесен началь­ный адрес таблицы сегментов программы В.




Рис.4.9 Технология динамической трансляции адресов

Допустим, для выполняемой программы D начальный адрес таб­лицы сегментов — 68000. В реальной вычислительной машине все дей­ствия выполняются в шестнадцатеричной системе счисления, мы же проведем вычисления для простоты в десятичной системе счис­ления.

Для обращения к адресу 15000 сегмента 1 производятся следую­щие действия:

• РНТС указывает на начало таблицы сегментов программы D — 68000;

• номер сегмента в относительном адресе используется как индекс при обращении к таблице сегментов. В данном примере обраще­ние производится к 1-й строке;

• адрес, хранимый в выбранной строке таблицы сегментов, есть ад­рес начала сегмента в реальной памяти. Смещение в относитель­ном адресе добавляется к начальному адресу, и результат является адресом в реальной памяти: 15000+75000=90000.

Для относительного адреса (сегмент 3, смещение 13000) будет по­лучен абсолютный адрес 218000.

При ДТА такое определение адресов ведется в процессе выполне­ния каждой команды.

Если операционной системе понадобится переместить исполняемую программу в другую часть памяти (например, чтобы исключить фраг­ментацию), сначала надо будет переслать команды и данные сег­мента. Затем строку таблицы сегментов для данного сегмента нужно изменить так, чтобы она содержала новый адрес, и выполнение про­граммы может быть продолжено. Это дает возможность динами­ческого управления реальной памятью в процессе выполнения про­граммы.

Использованием сегментации программ достигается уменьшение фрагментации основной памяти, но полностью фрагментация не уст­раняется — остаются фрагменты, длина которых меньше длины сег­ментов программы.

Если сегменты разделить на одну или несколько единиц, называе­мых страницами, которые имеют фиксированный размер, то, посколь­ку размер страницы достаточно мал по сравнению с обычным разме­ром сегментов, неиспользуемые фрагменты ОП значительно сокра­щаются в объеме — будет иметь место так называемая фрагментация внутри страниц. Следовательно, потери все-таки останутся, но они будут существенно меньше.

Сегментно-страничная организация добавляет еще один уровень в структуре адресного пространства программы. Теперь адресное пространство программы дробится на сегменты, внутри сегмен­тов — на страницы, а внутри страниц — на адреса байтов. Структу­ра адреса: (S, Р, i) — рис. 4.10, где Sимя сегмента внутри адрес­ного пространства программы; Р — имя внутри страницы; i — адрес внутри страницы.



Рис. 4.10. Адресная структура при сегментно-страничной организации памяти

Формирование сегментно-страничной структуры выполняется ав­томатически с помощью операционной системы.

Для динамической трансляции адресов каждому сегменту необхо­дима одна таблица сегментов и несколько таблиц страниц (рис. 4.11). Динамическая трансляция адресов будет выполняться следующим образом:

• регистр начала таблицы сегментов содержит начальный адрес таб­лицы сегментов выполняемой программы 28000;

• номер сегмента в относительном адресе используется как индекс для обращения к записи таблицы сегментов. Эта запись идентифи­цирует начало таблицы страницы (реальный адрес) 30000;

• номер страницы в относительном адресе используется как индекс для обращения к записи таблицы страниц. Эта запись идентифи­цирует начало страничного блока, содержащего эту страницу — 128000;

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

Все преимущества динамического перемещения с использованием сегментации и страничной организации достигаются благодаря ап­паратуре и программному обеспечению, а не пользователям систе­мы. Специальные программы во время загрузки разбивают адресное пространство программы на сегменты и страницы, строят таблицы сегментов и страниц. Средства ДТА автоматически транслируют адрес в процессе выполнения программы.



*

Рис. 4.11. Структурная схема формирования абсолютного адреса при сегментно-страничной организации ОП

^ 4.4.3.Виртуальная память

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

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

Виртуальная память имеет сегментно-страничную или страничную организацию и реализована в иерархической системе памяти ЭВМ. Часть ее размещается в страничных блоках основной памяти (page frames), а часть — в ячейках внешней страничной памяти (slot). Вне­шняя страничная память является частью внешней памяти. Ячейка (слот) — это записываемая область во внешней страничной памяти (например, на жестком магнитном диске). Она того же размера, что и страница.

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

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

Максимальный размер виртуальной памяти определяется только длиной физического адреса (32 бита): 232 = 4 Гбайта. Размер страницы в IBM PC фиксирован — 4 Кбайта. При таком объеме страниц для адресации байтов внутри страницы необходимо 12 бит. Поэтому ад­рес виртуальной памяти состоит из двух частей: номера страницы (20 бит) и смещения (12 бит).

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

Учитывая, что при виртуальной организации в основной памяти хранится только часть страниц, а основным хранилищем информации являются слоты на жестком диске, номера виртуальных страниц не­обходимо преобразовывать в номера физических страниц (слотов), в которых должны содержаться такие данные, как имя накопителя, но­мер цилиндра, номер головки, номер трека, номер сектора и т.д. Это преобразование осуществляется при помощи таблицы страниц. Если производить такое преобразование за один этап, потребуется линей­ная таблица, содержащая 1М элементов. При размере элемента таб­лицы 4 байта для хранения таблицы страниц необходим блок памяти 4 Мбайта, причем в мультизадачной среде такая таблица может по­требоваться для каждой задачи. Содержать эти страницы в ОП прак­тически невозможно. Поэтому в современных системах реализовано более гибкое двухуровневое преобразование, при котором линейный адрес делится не на две части (номер виртуальной страницы — 20 бит, смещение — 12 бит), а на три: каталог — 10 бит, таблица — 10 бит, смещение — 12 бит. В основной памяти при таком подходе постоянно должны храниться только каталог и активные таблицы страниц.

В каждой записи каталога страниц один из служебных битов (бит присутствия) указывает, является ли данная таблица активной (т.е. присутствует ли она в основной памяти). В записях каждой активной таблицы страниц аналогичный бит присутствия отмечает страницы, которые в настоящий момент находятся в основной памяти. Благода­ря такой организации сокращается количество обращений к внешней памяти, что сказывается на производительности ЭВМ.
^ 4.5.Система прерываний ЭВМ

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

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

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

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

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

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

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

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

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

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

Совокупность значений наиболее существенных информационных элементов называется вектором состояния или словом состояния процессора (в некоторых случаях оно называется словом состояния программы),

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

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

Наборы информационных элементов, образующих векторы состо­яния, отличаются у ЭВМ разных типов. В IBM PC вектор состояния включает содержимое счетчика команд, сегментных регистров, реги­стра флагов и аккумулятора (регистра АХ).

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

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

Запросы на прерывание могут возникать из-за сбоев в аппаратуре (зафиксированных схемами контроля), переполнения разрядной сет­ки, деления на нуль, выхода за установленные для данной программы области памяти, затребования периферийным устройством операции ввода-вывода, завершения операции ввода-вывода или возникнове­ния при этой операции особых условий и т.д.

Некоторые из этих запросов порождаются самой программой, но время их возникновения невозможно предсказать заранее.

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

ПЭВМ IBM PC может выполнять 256 различных прерываний, каж­дое из которых имеет свой номер (двухразрядное шестнадцатеричное число).

Все прерывания делятся на две группы: прерывания с номера OOh по номер IFh называются прерываниями базовой системы ввода-вы­вода (BIOS — Basic Input-Output System); прерывания с номера 20h no номер FFh называются прерываниями DOS. Прерывания DOS имеют более высокий уровень организации, чем прерывания BIOS, они стро­ятся на использовании модулей BIOS в качестве элементов.

Прерывания делятся на три типа: аппаратные, логические и про­граммные.

Аппаратные прерывания вырабатываются устройствами, требу­ющими внимания микропроцессора: прерывание № 2 — отказ питания; № 8 — от таймера; № 9 — от клавиатуры; № 12 — от адаптера связи; № 14 — от НГМД; № 15 — от устройства печати и др.

Запросы на логические прерывания вырабатываются внутри мик­ропроцессора при появлении «нештатных» ситуаций: прерывание № 0 — при попытке деления на 0; № 4 — при переполнении разрядной сетки арифметико-логического устройства; № 1 — при переводе мик­ропроцессора в пошаговый режим работы; № 3 — при достижении программой одной из контрольных точек. Последние два прерывания используются отладчиками программ для организации пошагового режима выполнения программ (трассировка) и для остановки програм­мы в заранее намеченных контрольных точках.

Запрос на программное прерывание формируется по команде «INT п», где п — номер вызываемого прерывания. Запрос на аппа­ратное или логическое прерывание вырабатывается в виде специального электрического сигнала.

Контрольные вопросы

1. Что относится к факторам, определяющим функциональную орга­низацию ЭВМ?

2. Как взаимодействуют устройства ЭВМ при выполнении процес­сорных операций?

3. Какие архитектурные решения необходимы для организации мно­гопрограммного режима работы ЭВМ?

4. Какие черты характеризуют стандартный интерфейс ЭВМ?

5. Какими этапами характеризуется организация обработки програм­мы, написанной на алгоритмическом языке?

6. Чем отличается интерпретатор от компилятора?

7. В чем заключаются процессы распределения, использования и ос­вобождения ресурсов в ЭВМ?

8. Какие существуют методы борьбы с фрагментацией памяти?

9. Изменится ли предельно допустимый объем основной памяти, если в команде изменить количество разрядов, отводимых под номер сегмента и номер страницы, оставив общую длину адреса неиз­менной?

10. Что собой представляет виртуальная память?

11. С какой целью в ЭВМ реализован режим прерываний?

12. Какая информация включается в состав слова состояния процес­сора?

13. Какие действия выполняют команды, вызывающие программные прерывания?

14. В чем заключается подготовка ЦП к выполнению программного прерывания?

15. Чем отличаются прерывания BIOS от прерываний DOS?







Скачать файл (35218.7 kb.)

Поиск по сайту:  

© gendocs.ru
При копировании укажите ссылку.
обратиться к администрации
Рейтинг@Mail.ru