Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Kandaurova_N_Vychislitelnye_sistemy_seti_i_telekommunikatsii

.pdf
Скачиваний:
245
Добавлен:
12.03.2016
Размер:
6.64 Mб
Скачать

А.П. Пятибратова. – 3-е изд., перераб. и доп. – М.: Финансы и статистика,

2005.

5.Пятибратов А.П. и др. Вычислительные системы, сети и телекоммуникации: учебник / А.П. Пятибратов, Л.П. Гудыно, А.А. Кириченко; под ред. А.П. Пятибратова. – 2-е изд., перераб. и доп. – М.: Финансы и статистика, 2002.

Лекция № 4. ФУНКЦИОНАЛЬНАЯ И СТРУКТУРНАЯ ОРГАНИЗАЦИЯ КОМПЬЮТЕРОВ

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

Коды, система команд, алгоритмы выполнения машинных операций, технология выполнения различных процедур и взаимодействия аппаратной части и программного обеспечения, способы использования устройств при организации их совместной работы, составляющие принципы функционирования компьютера, образуют функциональную организацию компьютера [6, 10, 21, 23].

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

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

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

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

4.2. Организация функционирования компьютеров с магистральной архитектурой

Комплект БИС, из которых состоит компьютер, называется микропроцессорным комплектом. В его состав входят: микропроцессор (МП), сопроцессоры, системный таймер, контроллер прерываний, контроллер прямого доступа к памяти, контроллеры устройств ввода-вывода.

51

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

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

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

образуют интерфейс системной шины.

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

Периферийные устройства делятся на два вида: внешние ЗУ

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

Программа, управляющая работой компьютера, перед началом выполнения загружается в основную память (ОП). Адрес первой выполняемой команды передается микропроцессору и запоминается в счетчике команд [6, 10, 21, 23].

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

врегистр команд.

Врегистре команд полученная команда разделяется на кодовую и адресную части. Код команды поступает в блок управления для выработки

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

52

заканчивается подготовка МП к выполнению операции и начинается ее выполнение в АУ.

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

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

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

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

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

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

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

счетчика команд.

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

вывода.

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

Интерфейс «Plug and Play» (включи и работай) позволяет подключать с помощью кабеля новые устройства, после чего программное обеспечение

53

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

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

4.3. Организация работы компьютера при выполнении задания пользователя

Организация процессов ввода, преобразования и отображения данных относится к сфере системного ПО. Профессиональный пользователь (программист) пишет задание для компьютера в виде программы на алгоритмическом языке. Написанная программа представляет собой исходный модуль, сопровождаемый управляющими предложениями, указывающими ОС компьютера, на каком языке написана программа и что с ней надо делать. Если программа пишется на алгоритмическом языке, то управляющие предложения – на языке управления ОС [6, 10, 21, 23].

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

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

54

редактор связей. В результате работы редактора связей образуется загрузочный модуль (ЗМ), который помещается в библиотеку ЗМ (БЗМ).

Привязка к памяти загрузочного модуля производится программой выборки во время переноса загрузочного модуля из БЗМ в основную память с учѐтом его размещения в памяти. После перемещения загрузочного модуля в основную память программа выборки инициирует ее выполнение.

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

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

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

55

4.4. Особенности управления основной памятью компьютера

Отображение адресного пространства программы на основную память. Для выполнения программы при ее загрузке в основную память ей выделяется часть машинных ресурсов для размещения команд, данных, управляющих таблиц и областей ввода-вывода, т.е. производится трансляция адресного пространства откомпилированной программы на адресное пространство реальной памяти [6, 10, 21, 23]. Выделение ресурсов может производиться программистом или ОС.

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

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

25]:

реальная память больше требуемого адресного пространства программы, загрузка программы в неѐ производится с 0-го адреса (рисунок 4.2). Загружаемая программа А является абсолютной программой, никакого изменения адресов в откомпилированном адресном пространстве при загрузке в основную память с 0-го адреса не происходит;

Реальная память

Адресное пространство

 

 

программы А

0

 

 

 

 

 

0

 

64 Кбайта

 

48 Кбайт

 

 

 

 

 

 

 

 

 

 

 

 

 

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

реальная память меньше требуемого адресного пространства программы (рисунок 4.3). Существует несколько методов решения проблемы: создать оверлейную структуру (разбить программу на части); сделать модули программы реентерабельными (одновременная работа модуля по нескольким обращениям из

разных частей или из разных программ) и т.д.

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

56

Если в мультипрограммном режиме программы А, В и С размещаются в реальной памяти в одних и тех же адресах, организовать их совместное выполнение невозможно. Эти программы будут ждать друг друга либо их нужно заново редактировать с разных адресов.

Реальная память

Адресное пространство

 

 

программы

0

 

 

 

48 Кбайт

 

0

 

 

 

64 Кбайта

 

 

 

 

 

 

 

 

Рисунок 4.3 – Загрузка программы в реальную память при недостатке памяти

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

Реальная память

 

 

 

 

 

ОС

 

 

 

 

 

20 Кбайт

 

 

 

 

 

Программа А

 

 

 

 

 

0 Кбайт

 

 

Программа D

10 Кбайт

 

50 Кбайт

Программа В

 

 

 

 

 

 

 

 

20 Кбайт

Программа С

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

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

Адресная структура команд микропроцессора и планирование ресурсов. Для борьбы с фрагментацией основной памяти адресное пространство программы может быть разбито на отдельные сегменты, слабо связанные между собой. Тогда программа D общей длиной 50 Кбайт может

57

быть представлена в виде ряда сегментов, загружаемых в различные области ОП (рисунок 4.6).

 

 

 

Реальная память

 

 

Адресное пространство

0

 

 

 

 

 

 

программы

 

Резедентная часть

 

 

 

 

 

 

 

 

 

 

 

ОС

 

 

 

 

α

 

 

 

0 Кбайт

 

 

 

 

 

 

 

 

Программа В

 

 

 

 

 

 

 

 

82 Кбайт

 

 

 

 

 

 

 

 

 

 

α+82 Кбайта

Перемещающий

загрузчик

FFFFF

Рисунок 4.5 – Размещение программы в свободной части ОП

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

 

 

ОП

 

 

 

0

 

 

 

 

 

ОС

 

 

 

 

 

 

 

 

75 Кбайт

 

 

 

 

20 Кбайт

 

Программа D

 

95 Кбайт

 

 

 

 

 

20 Кбайт

 

 

 

 

 

 

 

Программа А

 

Сегмент 1

125 Кбайт

 

 

 

Сегмент 2

10 Кбайт

 

10 Кбайт

 

135 Кбайт

 

 

Сегмент 3

20 Кбайт

 

Программа В

 

 

 

 

 

 

205 Кбайт

20 Кбайт

225 Кбайт

Программа С

256 Кбайт

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

Каждый сегмент программы должен иметь свое имя, например номер (рисунок 4.7, а,6). При таком представлении адрес будет состоять из двух частей: s, i, где s – имя сегмента, i – адрес внутри сегмента.

58

№ сегмента (s)

Смещение (i)

 

 

 

 

№ сегмента (s)

 

 

Смещение (i)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8 разрядов

 

24 разряда

 

 

 

 

16 разрядов

 

 

16 разряда

 

31

24

23

 

0

 

31

16

15

0

 

 

 

 

а

 

 

 

 

 

б

 

 

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

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

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

 

Адресное

 

 

 

 

 

ОП

пространство

Таблица сегментов

0

 

 

 

 

 

 

 

программы D

программы D

 

 

 

ОС

 

 

 

 

 

 

 

 

 

0

 

Номер

Адрес ОП

70 Кбайт

 

 

 

 

 

 

 

Программа D

 

Сегмент 1

 

сегмента

 

 

 

 

 

 

 

(сегмент 1)

 

20 Кбайт

 

 

 

 

 

 

 

 

 

1

70 Кбайт

90 Кбайт

 

 

 

0

 

Программа А

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Сегмент 2

 

 

125 Кбайт

125 Кбайт

 

 

 

10 Кбайт

 

2

 

Программа D

 

 

 

 

 

 

0

 

 

 

 

 

 

(сегмент 2)

 

 

3

 

 

 

 

 

 

 

 

 

 

 

Сегмент 3

 

205 Кбайт

135 Кбайт

 

Программа В

 

20 Кбайт

 

 

 

 

 

 

 

 

 

 

205 Кбайт

 

 

 

 

 

 

 

 

 

 

Программа D

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(сегмент 3)

 

 

 

 

 

225 Кбайт

 

 

 

 

 

 

 

 

Программа С

 

 

 

 

 

 

 

 

 

 

 

 

 

256 Кбайт

 

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

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

На рисунке 4.9 показана технология ДТА программы D. В РНТС находится адрес таблицы сегментов этой программы – 68000. Для

59

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]