Logo GenDocs.ru

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


Загрузка...

Ответы - Организации ЭВМ и систем - файл 1.doc


Ответы - Организации ЭВМ и систем
скачать (299 kb.)

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

1.doc299kb.29.11.2011 20:54скачать

содержание
Загрузка...

1.doc

1   2   3   4   5
Реклама MarketGid:
Загрузка...

Серверы


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

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

Файловые серверы небольших рабочих групп (не более 20-30 человек) проще всего реализуются на платформе персональных компьютеров и программном обеспечении Novell NetWare. Файл-сервер, в данном случае, выполняет роль центрального хранилища данных. Серверы прикладных систем и высокопроизводительные машины для среды "клиент-сервер" значительно отличаются требованиями к аппаратным и программным средствам.

Скорость процессора для серверов с интенсивным вводом/выводом некритична. Они должны быть оснащены достаточно мощными блоками питания для возможности установки дополнительных плат расширения и дисковых накопителей. Желательно применение устройства бесперебойного питания. Оперативная память обычно имеет объем не менее 32 Мбайт, что позволит операционной системе (например, NetWare) использовать большие дисковые кэши и увеличить производительность сервера. Как правило, для работы с многозадачными операционными системами такие серверы оснащаются интерфейсом SCSI (или Fast SCSI). Распределение данных по нескольким жестким дискам может значительно повысить производительность.

Мейнфреймы


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

Основными поставщиками мейнфреймов являются известные компьютерные компании IBM, Amdahl, ICL, Siemens Nixdorf и некоторые другие, но ведущая роль принадлежит безусловно компании IBM. Именно архитектура системы IBM/360, выпущенной в 1964 году, и ее последующие поколения стали образцом для подражания. В нашей стране в течение многих лет выпускались машины ряда ЕС ЭВМ, являвшиеся отечественным аналогом этой системы.

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

Кластерные архитектуры


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

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

В последние годы в литературе по вычислительной технике все чаще употребляется термин "системы высокой готовности" (High Availability Systems). Все типы систем высокой готовности имеют общую цель - минимизацию времени простоя. Имеется два типа времени простоя компьютера: плановое и неплановое. Минимизация каждого из них требует различной стратегии и технологии. Плановое время простоя обычно включает время, принятое руководством, для проведения работ по модернизации системы и для ее обслуживания. Неплановое время простоя является результатом отказа системы или компонента. Хотя системы высокой готовности возможно больше ассоциируются с минимизацией неплановых простоев, они оказываются также полезными для уменьшения планового времени простоя.

^ 4. Структурная схема ЭВМ. Назначение основных блоков схемы.

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

Процессоры.

Центральный процессор —это мозг компьютера. Его задача — выполнять программы, находящиеся в основ­ной памяти. Он вызывает команды из памяти, определяет их тип, а затем выпол­няет их одну за другой. Компоненты соединены шиной, представляющей собой набор параллельно связанных проводов, по которым передаются адреса, данные и сигналы управления. Шины могут быть внешними (связывающими процессор с памятью и устройствами ввода-вывода) и внутренними.

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

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

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

Еще один фактор в пользу интерпретации — существование быстрых постоян­ных запоминающих устройств (так называемых командных ПЗУ) для хранения интерпретаторов.

Шины.

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

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

Терминалы.

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

Существует несколько видов клавиатур. У первых компьютеров IBM PC под каж­дой клавишей находился переключатель, который давал ощутимую отдачу и щел­кал при нажатии клавиши. Сегодня у самых дешевых клавиатур при нажатии кла­виш происходит лишь механический контакт с печатной платой. У клавиатур получше между клавишами и печатной платой кладется слой из эластичного мате­риала (особого типа резины). Под каждой клавишей находится небольшой купол, который прогибается в случае нажатия клавиши. Проводящий материал, нахо­дящийся внутри купола, замыкает схему. У некоторых клавиатур под каждой кла­вишей находится магнит, который при нажатии клавиши проходит через катушку и таким образом вызывает электрический ток. Также используются другие мето­ды, как механические, так и электромагнитные.
^ Жидкокристаллические мониторы.

Жидкие кристаллы представляют собой вязкие органические молекулы, которые двигаются, как молекулы жидкостей, но при этом имеют структуру, как у кристалла. Они были открыты австрийским ботаником Рейницером (Rheinitzer) в 1888 году и впервые стали применяться при изготовлении различных дисплеев (для кальку­ляторов, часов и т. п.) в 1960 году. Когда молекулы расположены в одну линию, оптические качества кристалла зависят от направления и поляризации воздей­ствующего света. При использовании электрического поля линия молекул, а сле­довательно, и оптические свойства могут изменяться. Если воздействовать лучом света на жидкий кристалл, интенсивность света, исходящего из самого жидкого кристалла, может контролироваться с помощью электричества. Это свойство ис­пользуется при создании индикаторных дисплеев.

Мыши.

Мышь — это маленькая пластиковая коробка, которая лежит на столе рядом с клавиатурой. Если ее двигать по столу, курсор на экране тоже будет двигаться, позволяя пользователям указывать на элементы экрана. У мыши есть одна, две или три кнопки, нажатие на которые дает возможность пользователям выбирать строки меню.

^ Существует три типа мышей: механические, оптические и оптомеханические. У мышей первого типа снизу торчат резиновые колесики, оси которых расположе­ны перпендикулярно друг к другу. Если мышь передвигается в вертикальном на­правлении, то вращается одно колесо, а если в горизонтальном, то другое. Каждое колесико приводит в действие резистор (потенциометр).

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

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

^ Монохромные принтеры

Самыми дешевыми являются матричные принтеры, у которых печатающая го­ловка последовательно проходит каждую строку печати. Головка содержит от 7 до 24 игл, возбуждаемых электромагнитным полем. Дешевые матричные принтеры имеют 7 игл для печати, скажем, 80 символов в строке в матрице 5x7. В результате строка печати состоит из 7 горизонтальных линий, а каждая из этих линий состоит из 5x80=400 точек. Каждая точка может печататься или не печататься в зависимо­сти от того, какая нужна буква. Качество печати можно повышать двумя способами: использовать большее количество игл и создавать наложение точек.

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

^ Лазерный принтер. Это устройство сочетает хорошее качество печати, универсальность, высокую скорость работы и умеренную стоимость. В лазерных принтерах используется почти такая же технология, как в фотокопировальных устройствах. Многие компании производят устройства, совмещающие свойства копировальной машины, принтера и иногда также факса. Главной частью этого принтера является вращающийся барабан (в некоторых более дорогостоящих сис­темах вместо барабана используется лента). Перед печатью каждого листа барабан получает напряжение около 1000 вольт и окружается фоточувствительным мате­риалом. Свет лазера проходит вдоль барабана (по длине) почти как пучок элект­ронов в электронно-лучевой трубке, только вместо напряжения для сканирования барабана используется вращающееся восьмиугольное зеркало. Луч света модули­руется, и в результате получается определенный набор темных и светлых участ­ков. Участки, на которые воздействует луч, теряют свой электрический заряд.

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

^ Цветные принтеры.

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

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

^ 5. Общие принципы построения современных ЭВМ.

Основным принципом построения всех современных ЭВМ является программное

управление. В основе его лежит представление алгоритма решения любой задачи в

виде программы вычислений.

“Алгоритм - конечный набор предписаний, определяющий решение задачи

посредством конечного количества операций”. “Программа (для ЭВМ) -

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

Все вычисления, предписанные алгоритмом решения задачи, должны быть

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

слов - команд. Каждая команда содержит указания на конкретную выполняемую

операцию, место нахождения (адреса) операндов и ряд служебных признаков.

Операнды - переменные, значения которых участвуют в операциях преобразования

данных. Список (массив) всех переменных (входных данных, промежуточных

значений и результатов вычислений) является еще одним неотъемлемым элементом

любой программы.

Для доступа к программам, командам и операндам используются их адреса. В

качестве адресов выступают номера ячеек памяти ЭВМ, предназначенных для

хранения объектов. Информация (командная и данные: числовая, текстовая,

графическая и т. п.) кодируется двоичными цифрами 0 и 1. Поэтому различные

типы информации, размещенные в памяти ЭВМ, практически неразличимы,

идентификация их возможна лишь при выполнении программы, согласно ее логике,

по контексту.

Каждый тип информации имеет форматы - структурные единицы информации,

закодированные двоичными цифрами 0 и 1. Обычно все форматы данных,

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

Последовательность битов в формате, имеющая определенный смысл, называется

полем. Например, в каждой команде программы различают поле кода операций, поле

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

разряды, поле значащих разрядов чисел, старшие и младшие разряды.

Последовательность, состоящая из определенного принятого для данной ЭВМ числа

байтов, называется словом. Для больших ЭВМ размер слова составляет четыре

байта, для ПЭВМ - два байта. В качестве структурных элементов информации

различают также полуслово, двойное слово и др.

Схема ЭВМ, отвечающая программному принципу управления, логично вытекает из

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

некоторому алгоритму (программе). Обобщенная структурная схема ЭВМ первых

поколений представлена на рис. 1.1.

В любой ЭВМ имеются устройства ввода информации (УВв), с помощью которых

пользователи вводят в ЭВМ программы решаемых задач и данные к ним. Введенная

информация полностью или частично сначала запоминается в оперативном

запоминающем устройстве (ОЗУ), а затем переносится во внешнее запоминающее

устройство (ВЗУ), предназначенное для длительного хранения информации, где

преобразуется в специальный программный объект - файл. “Файл -

идентифицированная совокупность экземпляров полностью описанного в конкретной

программе типа данных, находящихся вне программы во внешней памяти и доступных

программе посредством специальных операций (ГОСТ 20866 - 85) ”.

Рис. 1.1. Структурная схема ЭВМ первого и второго поколений

При использовании файла в вычислительном процессе его содержимое переносится в

ОЗУ. Затем программная информация команда за командой считывается в устройство

управления (УУ).

Устройство управления предназначается для автоматического выполнения программ

путем принудительной координации всех остальных устройств ЭВМ. Цепи сигналов

управления показаны на рис. 1.1 штриховыми линиями. Вызываемые из ОЗУ команды

дешифрируются устройством управления:

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

операндов, принимающих участие в данной операции.

В зависимости от количества используемых в команде операндов различаются одно

-, двух -, трехадресные и безадресные команды. В одноадресных командах

указывается, где находится один из двух обрабатываемых операндов. Второй

операнд должен быть помещен заранее в арифметическое устройство (для этого в

систему команд вводятся специальные команды пересылки данных между

устройствами).

Двухадресные команды содержат указания о двух операндах, размещаемых в памяти

(или в регистрах и памяти). После выполнения команды в один из этих адресов

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

В трехадресных командах обычно два адреса указывают, где находятся исходные

операнды, а третий - куда необходимо поместить результат.

В безадресных командах обычно обрабатывается один операнд, который до и после

операции находится на одном из регистров арифметико-логического устройства

(АЛУ). Кроме того, безадресные команды используются для выполнения служебных

операций (очистить экран, заблокировать клавиатуру, снять блокировку и др.).

Все команды программы выполняются последовательно, команда за командой, в том

порядке, как они записаны в памяти ЭВМ (естественный порядок следования

команд). Этот порядок характерен для линейных программ, т. е. программ, не

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

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

результатов r (r = 0, r < 0, r > 0 и др.) устройство управления использует для

изменения порядка выполнения команд программы.

АЛУ выполняет арифметические и логические операции над данными. Основной

частью АЛУ является операционный автомат, в состав которого входят сумматоры,

счетчики, регистры, логические преобразователи и др. Оно каждый раз

перенастраивается на выполнение очередной операции. Результаты выполнения

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

регистров АЛУ или записываются в память. Результаты, полученные после

выполнения всей программы вычислений, передаются на устройства вывода (УВыв)

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

графопостроитель и др.

Современные ЭВМ имеют достаточно развитые системы машинных операций. Например,

ЭВМ типа IBM PC имеют около 200 различных операций (170 - 230 в зависимости от

типа микропроцессора). Любая операция в ЭВМ выполняется по определенной

микропрограмме, реализуемой в схемах АЛУ соответствующей последовательностью

сигналов управления (микрокоманд). Каждая отдельная микрокоманда - это

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

сдвига, перезаписи информации и т. п.

Уже в первых ЭВМ для увеличения их производительности широко применялось

совмещение операций. При этом последовательные фазы выполнения отдельных

команд программы (формирование адресов операндов, выборка операндов,

выполнение операции, отсылка результата) выполнялись отдельными

функциональными блоками. В своей работе они образовывали своеобразный

конвейер, а их параллельная работа позволяла обрабатывать различные фазы

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

поколений. Но все же первые ЭВМ имели очень сильную централизацию управления,

единые стандарты форматов команд и данных, “жесткое” построение циклов

выполнения отдельных операций, что во многом объясняется ограниченными

возможностями используемой в них элементной базы. Центральное УУ обслуживало

не только вычислительные операции, но и операции ввода - вывода, пересылок

данных между ЗУ и др. Все это позволяло в какой - то степени упростить

аппаратуру ЭВМ, но сильно сдерживало рост их производительности.

В ЭВМ третьего поколения произошло усложнение структуры за счет разделения

процессов ввода - вывода информации и ее обработки.
^ 7. Принципы разработки современных ЭВМ.

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

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

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

Компьютер должен начинать выполнение большого числа команд. В совре­менных компьютерах используется много различных способов для увеличения производительности, главное из которых возможность обращаться к как можно большему количеству команд в секунду. Процессор 500-MIPS способен присту­пать к выполнению 500 млн. команд в секунду, и при этом не имеет значения, сколь­ко времени занимает само выполнение этих команд. (MIPS — это сокращение от Millions of Instructions Per Second — «миллионы команд в секунду».) Этот прин­цип предполагает, что параллелизм может играть главную роль в улучшении про­изводительности, поскольку приступать к большому количеству команд за корот­кий промежуток времени можно только в том случае, если одновременно может выполняться несколько команд.

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

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

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

^ Должно быть большое количество регистров. Поскольку доступ к памяти про­исходит довольно медленно, в компьютере должно быть много регистров (по край­ней мере 32). Если слово однажды вызвано из памяти, при наличии большого чис­ла регистров оно может содержаться в регистре до тех пор, пока будет не нужно. Возвращение слова из регистра в память и новая загрузка этого же слова в регистр нежелательны. Лучший способ избежать излишних перемещений — наличие до­статочного количества регистров.
^ 8. Организация памяти. Характеристики памяти. Организация и принципы функционирования кэш-памяти.

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

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

Успешное или неуспешное обращение к более высокому уровню называются соответственно попаданием (hit) или промахом (miss). Попадание - есть обращение к объекту в памяти, который найден на более высоком уровне, в то время как промах означает, что он не найден на этом уровне. Доля попаданий (hit rate) или коэффициент попаданий (hit ratio) есть доля обращений, найденных на более высоком уровне. Иногда она представляется процентами. Доля промахов (miss rate) есть доля обращений, которые не найдены на более высоком уровне.

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

^ Организация кэш-памяти

Концепция кэш-памяти возникла раньше чем архитектура IBM/360, и сегодня кэш-память имеется практически в любом классе компьютеров, а в некоторых компьютерах - во множественном числе.

Все термины, которые были определены раньше могут быть использованы и для кэш-памяти, хотя слово "строка" (line) часто употребляется вместо слова "блок" (block).

На рис. 7.1 представлен типичный набор параметров, который используется для описания кэш-памяти.

Размер блока (строки)

4-128 байт

Время попадания (hit time)

1-4 такта синхронизации
(обычно 1 такт)

Потери при промахе (miss penalty)
(Время доступа - access time)
(Время пересылки - transfer time)

8-32 такта синхронизации
(6-10 тактов синхронизации)
(2-22 такта синхронизации)

Доля промахов (miss rate)

1%-20%

Размер кэш-памяти

4 Кбайт - 16 Мбайт

Рис. 7.1. Типовые значения ключевых параметров для кэш-памяти рабочих станций и серверов.

1. Где может размещаться блок в кэш-памяти?

Принципы размещения блоков в кэш-памяти определяют три основных типа их организации:

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

(адрес блока кэш-памяти) =

(адрес блока основной памяти) mod (число блоков в кэш-памяти)

  • Если некоторый блок основной памяти может располагаться на любом месте кэш-памяти, то кэш называется полностью ассоциативным (fully associative).

  • Если некоторый блок основной памяти может располагаться на ограниченном множестве мест в кэш-памяти, то кэш называется множественно-ассоциативным (set associative). Обычно множество представляет собой группу из двух или большего числа блоков в кэше. Если множество состоит из n блоков, то такое размещение называется множественно-ассоциативным с n каналами (n-way set associative). Для размещения блока прежде всего необходимо определить множество. Множество определяется младшими разрядами адреса блока памяти (индексом):

(адрес множества кэш-памяти) =

(адрес блока основной памяти) mod (число множеств в кэш-памяти)

Далее, блок может размещаться на любом месте данного множества.

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

^ 2. Как найти блок, находящийся в кэш-памяти?

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

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

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

^ 3. Какой блок кэш-памяти должен быть замещен при промахе?

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

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

Во втором случае, чтобы уменьшить вероятность выбрасывания информации, которая скоро может потребоваться, все обращения к блокам фиксируются. Заменяется тот блок, который не использовался дольше всех (LRU - Least-Recently Used).

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

^ 4. Что происходит во время записи?

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

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

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

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

  • сквозная запись (write through, store through) - информация записывается в два места: в блок кэш-памяти и в блок более низкого уровня памяти.

  • запись с обратным копированием (write back, copy back, store in) - информация записывается только в блок кэш-памяти. Модифицированный блок кэш-памяти записывается в основную память только когда он замещается. Для сокращения частоты копирования блоков при замещении обычно с каждым блоком кэш-памяти связывается так называемый бит модификации (dirty bit). Этот бит состояния показывает был ли модифицирован блок, находящийся в кэш-памяти. Если он не модифицировался, то обратное копирование отменяется, поскольку более низкий уровень содержит ту же самую информацию, что и кэш-память.

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

Когда процессор ожидает завершения записи при выполнении сквозной записи, то говорят, что он приостанавливается для записи (write stall). Общий прием минимизации остановов по записи связан с использованием буфера записи (write buffer), который позволяет процессору продолжить выполнение команд во время обновления содержимого памяти. Следует отметить, что остановы по записи могут возникать и при наличии буфера записи.

При промахе во время записи имеются две дополнительные возможности:

  • разместить запись в кэш-памяти (write allocate) (называется также выборкой при записи (fetch on write)). Блок загружается в кэш-память, вслед за чем выполняются действия аналогичные выполняющимся при выполнении записи с попаданием. Это похоже на промах при чтении.

  • не размещать запись в кэш-памяти (называется также записью в окружение (write around)). Блок модифицируется на более низком уровне и не загружается в кэш-память.

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

^ Увеличение производительности кэш-памяти

Формула для среднего времени доступа к памяти в системах с кэш-памятью выглядит следующим образом:

Среднее время доступа = Время обращения при попадании + Доля промахов x Потери при промахе

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

9. Система команд. Основные этапы выполнения команды.
^

Типы команд


Команды традиционного машинного уровня можно разделить на несколько типов:

Тип операции

Примеры

Арифметические и логические

Целочисленные арифметические и логические операции: сложение, вычитание, логическое сложение, логическое умножение и т.д.

Пересылки данных

Операции загрузки/записи

Управление потоком команд

Безусловные и условные переходы, вызовы процедур и возвраты

Системные операции

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

Операции с плавающей точкой

Операции сложения, вычитания, умножения и деления над вещественными числами

Десятичные операции

Десятичное сложение, умножение, преобразование форматов и т.д.

Операции над строками

Пересылки, сравнения и поиск строк

11. Организация ввода-вывода информации.
1   2   3   4   5



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

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

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