Курсовая работа архитектура эвм

Курсовая работа

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

Четвертое поколение ЭВМ на основе интегральных схем с большой степенью интеграции элементов (БИС) появилась в начале 70-х годов, и существенно изменило параметры ЭВМ, вместе с тем возник совершенно новый класс ВТ на основе БИС — микропроцессорные вычислительные машины — микроЭВМ.

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

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

Распространение персональных компьютеров к концу 70-х годов привело к некоторому снижению спроса на большие ЭВМ и мини ЭВМ. Это стало предметом серьезного беспокойства фирмы IBM (International Bussines Machines Corporation) — ведущей компании по производству больших ЭВМ, и в 1979 году фирма IBM решила попробовать свои силы на рынке персональных компьютеров.

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

Прежде всего, в качестве основного микропроцессора компьютера был выбран новейший тогда 16-разрядный микропроцессор Intel-8088.Его использование позволило значительно увеличить потенциальные возможности компьютера, так как новый микропроцессор позволял работать с 1 Мбайтом памяти, а все имевшиеся тогда компьютеры были ограничены 64 Кбайтами. В компьютере были использованы и другие комплектующие различных фирм, а его программное обеспечение было поручено разработать небольшой фирме Microsoft.

15 стр., 7333 слов

Повесть временных лет

... Разыскания о древнейших русских летописных сводах. СПб., 1908; Повесть временных лет. Пг., 1916), поскольку они послужили исходной основой для всех других построений и предоставили научно-методические принципы ... над его составлением осуществил игумен монастыря Иоанн. На основе этого свода и была составлена собственно "Повесть временных лет". Однако и последняя, согласно Шахматову, имела свое ...

В августе 1981 года новый компьютер под названием IBM PC был официально представлен публике и вскоре после этого он приобрел большую популярность у пользователей. Через один-два года компьютер IBM PC занял ведущее место на рынке, вытеснив модели 8-битовых компьютеров. Фактически IBM PC стал стандартом персонального компьютера. Сейчас такие компьютеры («совместимые с IBM PC») составляют около 90% всех производимых в мире персональных компьютеров.

3. Структурный анализ ЭВМ на базе микропроцессоров

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

  • центрального процессора;
  • основной памяти;
  • внешней памяти;
  • периферийных устройств.

Основные электронные компоненты, определяющие архитектуру компьютера, размещаются на основной плате компьютера, которая называется системной или материнской (MotherBoard).

А контроллеры и адаптеры дополнительных устройств, либо сами эти устройства, выполняются в виде плат расширения (DаughterBoard — дочерняя плата) и подключаются к шине с помощью разъёмов расширения, называемых также слотами расширения (англ. slot — щель, паз).

3.1 Функционально-структурная организация. Основные блоки ПК и их значение

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

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

Структура компьютера — это некоторая модель, устанавливающая состав, порядок и принципы взаимодействия входящих в нее компонентов.

Персональный компьютер-это настольная или переносная ЭВМ, удовлетворяющая требованиям общедоступности и универсальности применения.

Достоинствами ПК являются:

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

ч. наработки на отказ).

3.2 Структура персонального компьютера

Рассмотрим состав и назначение основных блоков ПК.

Примечание. Здесь и далее организация ПК рассматривается применительно к самым распространенным в настоящее время IBM PC-подобным компьютерам.

8 стр., 3682 слов

Архитектура компьютера и защита информации

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

Структурная схема ПК на рис. 1.

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

Рис. 1. Структурная схема персонального компьютера

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

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

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

3.3 Микропроцессор

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

Компоненты микропроцессора:

  • АЛУ выполняет логические и арифметические операции
  • Устройство управления управляет всеми устройствами ПК
  • Регистры используются для хранения данных и адресов
  • Схема управления шиной и портами — осуществляет подготовку устройств к обмену данными между микропроцессором и портом ввода — вывода, а также управляет шиной адреса и управления.

Основные характеристики процессора:

  • Разрядность — число двоичных разрядов, одновременно обрабатываемых при выполнении одной команды. Большинство современных процессоров — это 32 — разрядные процессоры, но выпускаются и 64 — разрядные процессоры.
  • Тактовая частота — количество циклов работы устройства за единицу времени. Чем выше тактовая частота, тем выше производительность.
  • Наличие встроенного математического сопроцессора
  • Наличие и размер Кэш- памяти.

3.4 Оперативная память

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

Из нее процессор считывает программы и исходные данные для обработки в свои регистры, в нее записывает полученные результаты. Название “оперативная” эта память получила потому, что она работает очень быстро, в результате процессору не приходится ждать при чтении или записи данных в память.

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

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

6 стр., 2717 слов

Информационная технология обработки данных

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

Основные параметры, которые характеризуют ОЗУ — это емкость и время обращения к памяти. ОЗУ типа DDR SDRAM (синхронная память с двойной скорость передачи данных) считается наиболее перспективной для ПК.

3.5 Кэш-память

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

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

3.6 Контроллеры

Только та информация, которая хранится в ОЗУ, доступна процессору для обработки. Поэтому необходимо, чтобы в его оперативной памяти находились программа и данные.

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

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

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

3.7 Системная магистраль

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

Для подключения контроллеров или адаптеров современные ПК снабжены такими слотами как PCI и USB. Слоты PCI — E Express для подключения новых устройств к более скоростной шине данных. Слоты AGP предназначены для подключения видеоадаптера.

В современных компьютерах широкое распространение шина USB.

USB (Universal Serial Bus —универсальная последовательная шина) является промышленным стандартом расширения архитектуры PC, ориентированным на интеграцию с телефонией и устройствами бытовой электроники. Версии стандарта 1.0 была опубликована в начале 1996 года. Версия 2000 года опубликована спецификация USB 2.0, в которой предусмотрено 40-кратное увеличение пропускной способности шины. Первоначально (в версиях 1.0 и 1.1) шина обеспечивала две скорости передачи информации: полная скорость, FS (full speed) — 12 Мбит/с и низкая скорость, LS (low speed) — 1,5 Мбит/с. В версии 2.0 определена еще и высокая скорость, HS (high speed) — 480 Мбит/с. что позволяет существенно расширить круг устройств, подключаемых к шипе. В одной и той же системе могут присутствовать и одновременно работать устройства со всеми тремя скоростями. Шина позволяет с использованием промежуточных хабов соединять устройства, удаленные от компьютера, на расстоянии 25 метров.

3 стр., 1177 слов

ЭВМ. Расширение системы команд Streaming simd extension (sse, sse2, sse3, sse4)

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

Шина USB обеспечивает обмен данными между хост-компьютером и множеством периферийных устройств (ПУ).

USB является единой централизованной аппаратно-программной системой массового обслуживания множества устройств и множества прикладных программных процессов. Связь программных процессов со всеми устройствами обеспечивает хост-контроллер с многоуровневой программной поддержкой. Этим USB существенно отличается от традиционных периферийных интерфейсов (портов LPT. COM, GAME, клавиатуры, мыши и т. п.

Для подключения накопителей (жестких дисков и компакт-дисков) используются интерфейсы IDE, SATA и SCSI. Интерфейс — это совокупность средств соединения и связи устройств компьютера.

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

Слоты (разъемы) расширения конфигурации ПК предназначены для подключения дополнительных устройств к основной шине данных компьютера. К основным платам расширения, предназначенным для подключения к шине дополнительных устройств, относятся:

  • Видеоадаптеры (видеокарты)
  • Звуковые платы
  • Внутренние модемы
  • Сетевые адаптеры (для подключения к локальной сети)
  • SCSI — адаптеры

3.8 Внешняя память. Классификация накопителей

Для хранения программ и данных в ПК используются накопители различных типов. Накопители — это устройства для записи и считывания информации с различных носителей информации. Различают накопители со сменным и встроенным носителем.

По типу носителя информации накопители разделяются на накопители на магнитных лентах и дисковые накопители. К накопителям на магнитных лентах относятся стримеры и др. Более широкий класс накопителей составляют дисковые накопители.

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

К дисковым накопителям относятся:

  • накопители на флоппи-дисках;
  • накопители на несменных жестких дисках (винчестеры);
  • накопители на сменных жестких дисках;
  • накопители на магнитооптических дисках;
  • накопители на оптических дисках (CD-R CD-RW CD-ROM) с однократной записью
  • накопители на оптических DVD — дисках (DVD-R DVD-RW DVD-ROM и др.)

    3.9.

Дополнительные устройства

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

По назначению дополнительные устройства разделяются на:

  • устройства ввода (трэкболлы, джойстики, световые перья, сканеры, цифровые камеры, диджитайзеры)
  • устройства вывода (плоттеры или графопостроители)
  • устройства хранения (стримеры, zip — накопители, магнитооптические накопители, накопители HiFD и др.)
  • устройства обмена (модемы)

4. Анализ структуры современного микропроцессора

Будучи выпущенным в 1995 году, процессор Intel Pentium Pro стал первым CPU с архитектурой P6. С тех пор прошло уже достаточно много времени, сменилось несколько поколений процессоров, однако, по сути, архитектура не менялась. Семейства Pentium II, Pentium III и Celeron имеют все то же строение ядра, отличаясь по сути только размером и организацией кеша второго уровня и наличием набора команд SSE, появившегося в Pentium III. Естественно, рано или поздно архитектура P6 должна была устареть. И дело тут вовсе не в невозможности дальнейшего наращивания тактовых частот и даже не в обострившейся в последнее время конкуренцией с AMD. Конечно, нельзя отрицать тот факт, что, достигнув частоты в 1 ГГц, Intel столкнулся с проблемами в дальнейшем наращивании частоты своих процессоров: Pentium III 1.13 ГГц даже пришлось отзывать в связи с его нестабильностью. Однако, эту проблему легко можно решить переходом на 0.13 мкм процесс — тем более, что его повсеместное внедрение не за горами. Настоящая причина необходимости новой архитектуры кроется глубже. К сожалению, дальнейшее наращивание частоты существующих процессоров приводит все к меньшему росту их производительности. Проблема в том, что латентности, то есть задержки, возникающие при обращении к тем или иным узлам процессора, по нынешним меркам в P6 уже слишком велики. Именно это явилось основной причиной, по которой Intel затеял разработку Pentium 4, которая выполнена с чистого листа. Таким образом, анонсированный сегодня Pentium 4 — совершенно новый процессор, ничего общего не имеющий со своими предшественниками. Внутренняя структура (микроархитектура) процессора Pentium 4 значительно отличается от микроархитектуры предшествующих моделей Pentium II, Pentium III, Celeron. В его основе лежит архитектура, названная Intel NetBurst architecture. Этим названием Intel хотел подчеркнуть, что основная цель нового процессора — ускорить выполнение задач потоковой обработки данных, напрямую связанных с бурно развивающимся Internet.

4.1 Микроархитектура процессоров Pentium 4

Основные особенности процессора Pentium 4 связаны с его микроархитектурой. Микроархитектура процессора определяет реализацию его внутренней структуры, принципы выполнения поступающих команд, способы размещения и обработки данных. Как анонсировала компания Intel, новая микроархитектура процессора Pentium 4, получившая название NetBurst (пакетно-сетевая), ориентирована на эффективную работу с Интернет-приложениями. Необходимо отметить, что в микроархитектуре NetBurst реализованы многие принципы, использованные в предыдущей модели Pentium III (микроархитектура P6).

Характерными чертами этой микроархитектуры являются:

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

Практическая реализация данных принципов в структуре процессора Pentium 4 имеет ряд существенных особенностей (рис. 2).

Рис. 2. Общая структура Pentium 4

4.2 Система команд микропроцессора и способов адресации

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

1. Команды передачи данных (перепись), копирующие информацию из одного места в другое.

2. Арифметические операции, к которым в основном относят операции сложения и вычитания. Умножение и деление обычно реализуется с помощью специальных программ.

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

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

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

6. Команды управления, реализующие нелинейные алгоритмы. Сюда относят условный и безусловный переходы, а также команды обращения к подпрограмме (переход с возвратом).

Часто к этой группе относят операции по управлению процессором типа останов или нет операции.

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

Код операции можно представить себе как некоторый условный номер в общем списке команд. В основном этот список построен в соответствии с определенными внутренними закономерностями.

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

4.3 Способы адресации данных

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

Регистровая адресация. При этом способе операндом является один из регистров общего назначения. Число хранится непосредственно в регистре. Записывается как Rn, где n — номер регистра.

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

Автоинкрементная адресация. Этот вид адресации несколько сложнее двух предыдущих. Помимо основного действия (косвенного обращения к ячейке памяти), при использовании этого метода, происходит еще изменение адреса этого обращения. В данном случае увеличивается указатель адреса ячейки памяти, к которой мы обращаемся, то есть содержимое регистра, служащего указателем адреса. Данное увеличение происходит автоматически, без какой-либо команды. Записывается эта адресация как (Rn)+. То, что знак + стоит после имени регистра, намекает на порядок выполнения команды: сначала происходит операция с ячейкой, на которую указывает адрес, помещенный в регистр Rn, а потом уже содержимое регистра увеличивается на 2 (если оператор работает со словом, то переход к адресу следующего слова), или на 1 (если оператор работает с байтом, переход к адресу следующего байта).

Данный способ адресации применяется для работы с массивами и при использовании стека (например, при использовании подпрограмм).

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

1) уменьшит указатель стека на 2 (целое число занимает в памяти 2 байта);

2) запишет данные по полученному адресу.

При извлечении данных из стека процессор проделает следу шее:

1) считает данные из стека;

2) увеличит указатель на 2.

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

Логический адрес состоит из двух элементов: селектор сегмента и относительный адрес (смещение).

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

Для вычисления линейного адреса процессор выполняет следующие действия:

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

Если страничная трансляция отключена, то сформированный линейный адрес считается физическим и выставляется на шину процессора для выполнения цикла чтения или записи памяти.

Селектор — это 16-битный идентификатор сегмента. Он содержит индекс дескриптора в дескрипторной таблице, бит определяющий, к какой дескрипторной таблице производится обращение (LDT или GDT), а также запрашиваемые права доступа к сегменту. Если селектор хранится в сегментном регистре, то обращение к дескрипторным таблицам происходит только при загрузке селектора в сегментный регистр, т.к. каждый сегментный регистр хранит соответствующий дескриптор в программно-недоступном («теневом») регистре-кэше.

Формат селектора:

— Индекс выбирает один из 8192 дескрипторов в таблице дескрипторов. Процессор умножает значение этого индекса на восемь (длину дескриптора) и добавляет результат к базовому адресу таблицы дескрипторов. Таким образом получается линейный адрес требуемого дескриптора.

  • TI — индикатор таблицы определяет таблицу дескрипторов, на которую ссылается селектор: TI=0 означает глобальную дескрипторную таблицу (GDT), а TI=1 — используемую в настоящий момент локальную дескрипторную таблицу (LDT).

  • RPL — запрашиваемый уровень привилегий (Requested Privilege Level).

    Используется механизмом защиты.

Первый элемент GDT процессором не используется. Селектор, имеющий нулевые индекс и индикатор таблицы, т.е. селектор, указывающий на первый элемент GDT, называется нуль-селектором. Загрузка нуль-селектора в любой регистр сегмента, отличный от регистра CS или SS, не вызывает исключение. Но использование этого регистра сегмента для доступа к памяти вызывает нарушение общей защиты. Это удобно для выявления случайных ссылок.

Для вычисления линейного адреса используются специальные структуры — дескрипторы. Дескриптор — это 8-байтная единица описательной информации, распознаваемая устройством управления памятью в защищенном режиме, хранящаяся в дескрипторной таблице. Дескриптор сегмента содержит базовый адрес описываемого сегмента, предел сегмента и права доступа к сегменту. В защищенном режиме сегменты могут начинаться с любого линейного адреса (который называется базовым адресом сегмента) и иметь любой предел вплоть до 4Гбайт.

Формат дескриптора:

  • Базовый адрес сегмента (Base Address) определяет место сегмента внутри линейного 4Гбайтного адресного пространства. Процессор объединяет три фрагмента базового адреса для формирования одного 32-разрядного значения.
  • Предел сегмента (Segment Limit) определяет размер сегмента.

Задает максимальное (для сегментов стека — минимальное) смещение в сегменте, обращение по которому не вызывает нарушения общей защиты. Процессор связывает две части поля границы для формирования 20-разрядного результата. Затем он интерпретирует поле границы одним из двух способов в зависимости от состояния бита гранулярности: в единицах байт для определения границы до 1Мбайт (G=0); в единицах страниц по 4Кбайт для определения границы до 4Гбайт (G=1), при загрузке поле границы сдвигается влево на 12 бит и младшие биты выставляются в 1.

  • G — бит гранулярности (Granularity) определяет размер единиц, в которых интерпретируется поле предела. Если G=0, то граница интерпретируется в байтах, иначе в единицах по 4Кбайт.
  • D — размер по умолчанию (Default size).

    Задает разрядность данных по умолчанию для дескрипторов сегментов данных или разрядность команд по умолчанию для дескрипторов сегментов кода: D=0 — 16 бит, D=1 — 32 бит.

  • AVL (available) — может использоваться по усмотрению системного программиста.

— P — бит присутствия (Present).

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

  • DPL — уровень привилегий дескриптора (Descriptor Privilege Level) используется механизмом защиты.
  • S — бит системного дескриптора (System): определяет, является ли данный сегмент системным (S=0) или же сегментом кода/данных (S=1).

  • Тип дескриптора (Type).

Интерпретация этого поля зависит от вида дескриптора. В дескрипторах сегментов кода или данных это поле содержит 3-разрядный тип и один бит флага обращения. Дескрипторы системных сегментов используют все 4 бита.

Типы дескрипторов сегментов:

0 E W A

Сегменты данных

E (expand-down) — расширяется вниз (для стека)

W (writable) — разрешена запись

A (accessed) — бит обращения

0 0 0 x

сегмент данных, только чтение

0 0 1 x

сегмент данных, чтение-запись

0 1 0 x

сегмент стека, только чтение

0 1 1 x

сегмент стека, чтение-запись

1 C R A

Сегменты кода

C (conforming) — подчиняемый

R (readable) — разрешено чтение

A (accessed) — бит обращения

1 0 0 x

сегмент кода, только исполнение

1 0 1 x

сегмент кода, исполнение-чтение

1 1 0 x

подчиняемый код, только исполнение

1 1 1 x

подчиняемый код, исполнение-чтение

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

В качестве сегментов стека используют сегменты данных, доступные для чтения и записи. Попытка загрузить в SS селектор незаписываемого сегмента приведет к нарушению общей защиты. Для динамического изменения размера стека удобно использовать сегменты данных с расширением вниз (бит E=1).

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

Сегменты кода могут быть либо обычными, либо подчиняемыми (бит C=1).

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

5. Операционная система WINDOWS 98

Наше аппаратное обеспечение позволяет использовать в качестве операционной системы (ОС) «Microsoft Windows 98 Second Edition». Эта ОС позволит нам использовать большой спектр программ, разработанных для работы с подсистемой Win32. Управлять дополнительной памятью будет ОС с помощью встроенного драйвера дополнительной памяти (XMS) «himem.sys». Windows 98 SE может эмулировать расширенную память (EMS) за счет дополнительной, поэтому отказываемся от аппаратных модулей расширенной памяти.

Операционная система Windows 98 SE — это разработанная фирмой Microsoft надстройка над операционной системой DOS, обеспечивающая большое количество удобств для программистов и пользователей. Все большее число пользователей компьютеров используют Windows и разнообразные прикладные программы в своей работе.

Широчайшее распространение Windows 98 сделало ее фактическим стандартом во всем компьютерном мире. В последнее время фактически все новые программы разрабатываются для их эксплуатации в среде Windows 98.

В отличие от оболочек типа Norton Commander, Windows 98 не только обеспечивает удобный и наглядный интерфейс для операций с файлами, дисками и т.д., но и предоставляет новые возможности для запускаемых в «родной» среде программ. Разумеется, Windows работает и с программами, разработанными под DOS, но в этом случае все возможности системы не используются.

Системные требования для Windows 98 SE: процессор 66МГц, 24Мб RAM и по крайней мере 210Мб свободного дискового пространства. Эти требования более чем удовлетворяют нашей ВС.

5.1 Преимущества Windows 98

Рассмотрим преимущества Windows 98 для пользователей и разработчиков прикладных программ:

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

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

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

Динамическое подключение библиотек. Windows обеспечивает автоматическое подключение библиотек подпрограмм во время выполнения программы. Формат библиотек (DLL-файлов) и порядок вызова библиотечных подпрограмм стандартизованы.

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

Механизм связи и внедрения объектов (Object Linking and Embedding, OLE) — новый способ обмена данными между приложениями, при котором есть возможность комбинировать изображение, звук, текст и т.д.

Динамический обмен данными (Dynamic Data Exchange, DDE) — одна программа может использовать данные, созданные другой программой.

Буфер обмена данными (Clipboard) — одна программа может поместить данные в этот буфер, а другая — использовать данные из буфера.

Использование масштабируемых шрифтов True Type. В Windows действует принцип WYSIWYG (What you see is what you get), который означает, что информация, которая на экране, соответствует тому, что выдается принтером при распечатке. Шрифты True Type, используемые в Windows, содержат не растровые а контурные описания символов.

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

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

Совместимость с DOS-приложениями. Работа в среде Windows не вынуждает отказываться от использования DOS-программы. Более того, для запуска DOS-программ, как правило, нет необходимости выходить из Windows. Однако DOS-программы под управлением Windows выполняются медленнее.

Удобство поддержки устройств. Windows упрощает работу с внешними устройствами.

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

5.2 Недостатки Windows 98

Описанные выше преимущества Windows достаются за счет значительного увеличения нагрузки на аппаратные средства компьютера. Часто программы с приблизительно одинаковыми возможностями для DOS и Windows отличаются по требованиям к ресурсам компьютера в десятки раз. К счастью развитие компьютерной индустрии вскоре скомпенсировало это повышение требований к ресурсам. Сейчас компьютеров, не способных работать с Windows 98 уже не выпускается.

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

Наиболее существенный недостаток Windows — это ее весьма малая возможность. Некорректная работа любой Windows-программы может вызвать «зависание» всей Windows. Кроме того, ограниченность указанных ресурсов Windows более 3-4 серьезных программ, сколько бы в компьютере ни было оперативной памяти и дискового пространства.

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

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

6. Многопроцессорные системы

Мультипроцессорная обработка — одновременное выполнение двух и более процессов (программ) несколькими процессорами вычислительной системы. Мультипроцессорная обработка предполагает наличие независимых потоков команд: разных процессов или потоков (нитей) одного процесса.

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

Рис. 3. Многопроцессорная конфигурация

6.1 SIMD и MIMD машины

Мультипроцессорные системы делятся на два типа SIMD и MIMD машины.

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

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

Многопроцессорные системы за годы развития вычислительной техники претерпели ряд этапов своего развития. Исторически первой стала осваиваться технология SIMD. Однако в настоящее время наметился устойчивый интерес к архитектурам MIMD. Этот интерес главным образом определяется двумя факторами:

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

2. Архитектура MIMD может использовать все преимущества современной микропроцессорной технологии на основе строгого учета соотношения стоимость/производительность. В действительности практически все современные многопроцессорные системы строятся на тех же микропроцессорах, которые можно найти в персональных компьютерах, рабочих станциях и небольших однопроцессорных серверах.

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

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

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

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

Рис. 4. Типовая архитектура мультипроцессорной системы с общей памятью

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

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

Рис. 5. Типовая архитектура машины с распределенной памятью

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

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

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

6.2 Модели связи и архитектуры памяти

Как уже было отмечено, любая крупномасштабная многопроцессорная система должна использовать множество устройств памяти, которые физически распределяются вместе с процессорами. Имеется две альтернативных организации адресации этих устройств памяти и связанных с этим два альтернативных метода для передачи данных между процессорами. Физически отдельные устройства памяти могут адресоваться как логически единое адресное пространство, что означает, что любой процессор может выполнять обращения к любым ячейкам памяти, предполагая, что он имеет соответствующие права доступа. Такие машины называются машинами с распределенной разделяемой (общей) памятью (DSM — distributed shared memory), масштабируемые архитектуры с разделяемой памятью, а иногда NUMA — Non-Uniform Memory Access, поскольку время доступа зависит от расположения ячейки в памяти.

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

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

Каждый из этих механизмов обмена имеет свои преимущества. Для обмена в общей памяти это включает:

  • Совместимость с хорошо понятными используемыми как в однопроцессорных, так и маломасштабных многопроцессорных системах, механизмами, которые используют для обмена общую память.
  • Простота программирования, когда модели обмена между процессорами сложные или динамически меняются во время выполнения. Подобные преимущества упрощают конструирование компилятора.
  • Более низкая задержка обмена и лучшее использование полосы пропускания при обмене малыми порциями данных.
  • Возможность использования аппаратно управляемого кэширования для снижения частоты.
  • 7. Способы измерения производительности

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

При этом предполагается, что все операнды выбираются из внутрикристальной кэш-памяти данных, а команды — из кэш-памяти команд. Разумеется, подобная ситуация чисто гипотетическая, и на практике ни одна система не в состоянии работать сколько-нибудь длительное время с пиковой производительностью, хотя и может приближаться к этой величине. Например, на текстах Linpack при больших размерностях обрабатываемых матриц (1000) почти все компьютеры демонстрируют производительность в диапазоне от 0,8 до 0,95 от пикового значения.

Пиковая производительность является единственной по-настоящему объективным параметром (для его определения необходимо знать несколько параметров процессора) и совершенно не зависит от типа выполняемой программы. Речь идёт о тактовой частоте процессора, которая для подавляющего большинства современных компьютеров определяет темп формирования результатов на выходе арифметического конвейера, и числе арифметических конвейеров. Не трудно установить соответствие между единицами измерения тактовой частоты и производительности процессора. Очевидно, что 1 Мгц соответствует 1 MFLOPS или 1 MIPS-пиковой производительности одного конвейера, в зависимости от того, какой тип операций рассматривается — с плавающей или с фиксированной точкой. Не следует забывать также о разрядности обрабатываемых чисел, чтобы избежать не корректного сравнения производительности для 32- 64- разрядных данных. Но в любом случае правила вычисления пиковой производительности, при всей их внешней простоте, могут оказаться чрезвычайно полезными при обсуждении достоинств компьютеров. Чтобы определить пиковую производительность машин, надо умножить тактовую частоту на количество параллельно выполняемых операций. Например, арифметическое устройство Pentium, каждый такт может формировать один результат полно разрядной (64 бит) операций с плавающей точкой или два результата 32-х разрядных целочисленных операций. Следовательно, для Pentium/90 пиковая производительность равна 90 MFLOPS при выполнении вычислений с плавающей точкой и 180 MIPS при целочисленной 32-х разрядной обработке. Особенно удобно использовать показатели предельного быстродействия для сравнения возможностей процессоров в первом приближении. Американские специалисты по контролю за экспортом вооружений при оценке уровня производительности компьютеров используют показатель основной теоретической производительности (CTP), измеряемой в Mtops — миллионах теоретических операций в секунду. CTP зависит только от аппаратных средств компьютера(тактовой частоты, набора функциональных устройств, пропускной способности и набора внутренних шин, длины разрядной сетки и так далее).