1,2                                                 

ЭВМ – электронно-вычислительная машина, которая осуществляет действия с данными, представленными в той или иной форме.

К первому поколению относились ЭВМ, построенные в ос­новном на электровакуумных приборах.

Первая быстродействующая ЭВМ “ЭНИАК” (построена в 1946 г. в США) содержала около 18 тысяч ламп и потребляла более 100 кВт мощности электроэнергии. Машина работала в десятичной системе счисления. Сложение и вычитание произ­водились за 200 мкс, умножение – за 2800 мкс. Она пред­назначалась для решения дифференциальных уравнений в частных производных, а также некоторых других расчетов. В СССР в 1950 г. под руководством академика С. А. Лебедева в АН УССР была создана первая в Европе малая электронная счетная машина МЭСМ, которую можно отнести к классу машин общего назначения (в отличие от “ЭНИАК”, являю­щейся специализированной). Машина МЭСМ содержала около 2000 электронных ламп, работала по параллельно-по­следовательному принципу выполнения операций, имела быст­родействующую память на ламповых регистрах и внешнюю память на магнитном барабане. Структура и основные схемы этой машины являлись классическими, они положены в основу серии отечественных быстродействующих машин БЭСМ (1952 г.), БЭСМ-2, БЭСМ-4 и БЭСМ-6, созданных также под руководством академика С. А. Лебедева. Первые модели серии БЭСМ имели быстродействие до 10 тысяч арифметических дей­ствий в секунду. К первым ЭВМ широкого назначения в СССР относятся и машины М-1 (1952 г.), “Стрела” (1954 г.), “Урал-1” (1957 г.) и др.

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

Ко второму поколению относились ЭВМ, построенные в основном на полупроводниковых приборах. К ним относятся серийные машины М-20 и М-220, семейства серийных машин “Урал”, “Минск”, “Раздан” с быстродействием до 10–20 тысяч арифметических действий в секунду. В этот же период в Советском Союзе развиваются работы по созданию и применению цифровых управляющих вычислительных машин.

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

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

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

К машинам этого поколения относятся ЭВМ Единой систе­мы (ЕС) и Системы малых (СМ) ЭВМ.

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

Применение ЭВМ в научных исследованиях

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

ЭВМ в АСНИ могут использоваться для решения следующих основных задач:

1)  управление экспериментом;2)  подготовка отчетов и документации;3)  поддержание базы экспериментальных данных;4)         построение информационных и экспертных систем.

Эффективность применения ЭВМ в автоматизации научных исследований заключается в следующем:

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

увеличивается точность результатов и их достоверность;

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

в ходе интерактивного взаимодействия с АСНИ достигается усиление контроля за ходом эксперимента и возможность его оптимизации;

сокращается штат участников эксперимента.

На высших уровнях иерархии в АСНИ находятся информационная и экспертная системы.

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

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

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

Большой популярностью среди научных работников пользуются интегрированные пакеты АСНИ. Примером такого пакета является система MathCAD фирмы MathSoft, которая позволяет в интерактивном режиме создавать, редактировать и отображать на экране монитора широкий класс функций, решать уравнения, заданные в аналитической или графической форме. Система MathCAD имеет встроенные тригонометрические и гиперболические функции, позволяет оперировать как действительными, так и комплексными числами,

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

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

 Применение ЭВМ в медицине

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

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

Компьютерная томография представляет собой метод рентгенографического исследования, позволяющий при помощи специальной технологии получать рентгенограммы человеческого тела по слоям и удерживать эти снимки в памяти компьютера после специальной обработки; она дает возможность установить локализацию патологического процесса, оценить результаты лечения, в том числе лучевой терапии, выбрать подходы и объем оперативного вмешательства. Для этой цели используются специальные аппараты с вращающейся рентгеновской трубкой, которая перемещается вокруг неподвижного объекта, “построчно” обследуя все тело или его часть. Так как органы и ткани человека поглощают рентгеновское излучение в неравной  степени, изображения их выглядят в виде “штрихов” – установленного ЭВМ коэффициента поглощения для каждой  точки сканируемого слоя. Компьютерные томографы позволяют выделить слои от 2 до 10 мм при скорости сканирования одного слоя 2–5 секунд с моментальным воспроизведением изображения в черно-белом или цветном варианте.

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

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

 Применение ЭВМ в образовании

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

в качестве лабораторных установок, в том числе для моделирования процессов;

для решения задач и упражнений, курсового и дипломного проектирования;

для планирования и организации учебного процесса, разработки учебных планов и программ (АСУ учебным заведением);

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

математические модели учебного процесса);

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

для сбора и анализа статистических данных об учебном процессе.

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

Основные характеристики ЭВМ

Основные характеристики ЭВМ определяются характеристиками его компонентов. Каждый компонент представляет собой отдельное устрой­ство (device, unit), которое само по себе и во взаимодействии с другими устройствами и определяет характеристики ЭВМ.

Основными компонентами ЭВМ являются:

центральный процессор (ЦП); системная плата; основная память; жесткий диск; монитор; графическая карта;

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

 

3,4                                                     Процессор

Под архитектурой процессора понимается его программная модель, то есть про­граммно-видимые свойства.

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

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

В состав микропроцессора (МП) входят арифметико-логическое устройство (АЛУ), устройство управления (УУ) и группа регистров (рис. 1).

       Арифметико-логическое устройство

 Арифметико-логическое устройство (АЛУ) – часть микро­процессора, которая осуществляет арифметические и логические операции.

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

Сумматор – электрическая схема, используемая для сложения двоичных чисел.

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

 Устройство управления

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

Устройство управления содержит регистр команд, дешифратор команд и управляющее устройство, в состав которого входит управляющая память. Управляющая память содержит микропрограммы всех команд для данного МП.

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

Основные принципы работы современных процессоров

Про­цессор может работать в одном из двух режимов: режим реальной адресации (Real Address Mode), в котором возможна адресация до 1 Мбайт физической памяти, и защищенный режим виртуальной адресации (Protected Virtual Address Mode), в котором процессор позво­ляет адресовать до 4 Гбайт физической памяти и до 64 Тбайт виртуальной памяти каждой задачи.

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

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

Скалярным называют процессор с единственным конвейером, к этому типу отно­сятся все процессоры Intel до 486 включительно. Суперскалярный (superscalar) процессор имеет более одного (Pentium – два) конвейера, способных обрабаты­вать инструкции параллельно. Pentium является двухпотоковым процессором (имеет два конвейера), Pentium Pro – трехпотоковым.

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

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

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

Исполнение по предположению, называемое также спекулятивным (speculative execution), идет дальше – предсказанные после перехода инструкции не только декодируются, но и по возможности исполняются до проверки условия перехода. Если предсказание сбывается, то труд оказывается ненапрасным, если не сбыва­ется – конвейер оказывается недогруженным и простаивает несколько тактов.

Исполнение с изменением последовательности инструкций (out-of-order execution), свойственное RISC-архитектуре, теперь реализуется и для процессоров х86. При этом изменяется порядок внутренних манипуляций данными, а внешние (шин­ные) операции ввода/вывода и записи в память выполняются, конечно же, в по­рядке, предписанном програм­мным кодом. Однако эта способность процессора в наибольшей степени может блокироваться несовершенством программного кода (особенно 16-битных приложений), если он генерируется без учета возможности изменения порядка.

Технология Intel MMX улучшает компрессию/декомпрессию видео, работу с изображениями, шифрование и обработку сигналов ввода/вывода – т.е. все мультимедиа-операции, операции связи и сетевые взаимодействия. Основа MMX расширения процессорного ядра заключается в технологии обработки множественных данных в одной инструкции (Single Instruction Multiple Data - SIMD). Сегодняшние мультимедийные и коммуникационные приложения часто используют повторные циклы, выполнение которых, при использовании в менее чем 10% программных кодов, отнимает до 90% процессорного времени. Процесс SIMD (один поток команд и множество потоков данных) дает возможность одной инструкции исполнять одну и ту же функцию с различными данными и их частями. SIMD позволяет чипу уменьшить количество циклов с интенсивными вычислениями, характерными для обработки видео, аудио, графической информации и анимации.

Технологии MMX и SIMD требуют добавления все новых и новых инструкций (уже сейчас их 57 для MMX и 70 – для SIMD в Pentium III), обеспечивающих оптимальное выполнение алгоритмических задач. А при добавлении новых инструкций необходима переработка компи­ляторов всех языков программирования для введения и поддержки соответствующих инструкций и технологий. Конкуренты Intel предлагают альтернативные решения, при которых требуется минимальное число новых инструкций или вообще не требуется переработка компиляторов, а повышение производительности процессоров и скорости выполнения программ и вычислений достигается за счет внутренней оптимизации процессорного ядра.

Особенности процессора Intel Pentium 4

Intel Pentium 4 – это первый процессор в семействе 32-битных процессоров седьмого поколения от Intel.

 Несмотря на то что Intel Pentium 4 является процессором с архитектурой IA-32, характерной для 32-разрядных процессоров, последняя сильно отличается от архитектуры процессоров семейства P6 и даже получила специальное название – NetBurst.

Рассмотрим основные новшества, появившиеся в NetBurst.

Hyper-Pipelined Technology. Суть технологии Hyper-Pipelined (гиперконвейер) заключается в том, что Intel Pentium 4 имеет очень длинный конвейер, состоящий из 20 стадий. Для сравнения: конвейер у процессоров семейства P6 состоит всего из 10 стадий.

В Intel Pentium 4 интегрирован более совершенный механизм предсказания переходов. Количество ошибочно предсказанных переходов у него в среднем на 33% меньше, чем у процессоров с архитектурой P6.

Execution Trace Cache. Execution Trace Cache – это название и одновременно способ реализации кэша инструкций в архитектуре NetBurst. Смысловое содержание этого термина можно перевести как «кэш трассировки выполняемых микроопераций».

В Execution Trace Cache хранятся микрооперации, которые были получены в результате декодирования входного потока инструкций исполняемого кода и готовы для передачи на выполнение конвейеру. Емкость Execution Trace Cache составляет 12 Кбайт.

Execution Trace Cache устроен таким образом, что вместе с кодом каждой микрооперации в нем хранятся результаты выполнения ветвей кода для этой микрооперации – в той же строке кэша (cache line), что и сама микрооперация. Это позволяет легко и своевременно выявлять микрооперации, которые никогда не будут выполнены, и быстро удалять их из кэша инструкций, а также оперативно «вычищать» Execution Trace Cache от «лишних» микроопераций в случае обнаружения ошибочно предсказанного перехода. Последнее обстоятельство особенно важно, так как позволяет сократить общее время реинициализации конвейера после его остановки в результате выполнения перехода, который был «угадан» неправильно.

Rapid Execution Engine. Так, в архитектуре NetBurst назван блок выполнения арифметико-логических операций. Конструктив Rapid Execution Engine довольно оригинален: во-первых, он состоит из двух АЛУ-модулей, работающих параллельно; во-вторых, рабочая тактовая частота этих АЛУ-модулей в два раза выше тактовой частоты процессора – это достигается за счет регистрации как переднего, так и заднего фронта задающего тактового сигнала. Таким образом, каждый АЛУ-модуль способен выполнить до двух целочисленных операций за один рабочий такт процессора, а весь Rapid Execution Engine в целом – до четырех таких операций.

Advanced Dynamic Execution. Advanced Dynamic Execution – это обобщенное название механизма динамического выполнения команд, используемого в NetBurst. Аналогичный механизм используется в процессорах семейства P6, однако, в Intel Pentium 4 он улучшен.

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

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

 

   4-1                                                                Регистры процессора

Регистр – разновидность ОЗУ, встроенного в микропроцессор.

Рассмотрим состав и назначение регистров на примере микро­процессоров фирмы Intel.

Процессоры х86 имеют регистры, подразделяющиеся на следующие категории:

·   регистры общего назначения (общие регистры данных и адресов);

·   указатель команд (инструкций);

·   регистры сегментов;

·   регистр флагов;

·   управляющие регистры;

·   системные адресные регистры;

·   регистры отладки;

·   регистры тестирования;

·          модельно-специфические (зависящие от конкретной модели процессора) регистры.

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

Разрядность регистра – количество битов, которые может хранить регистр.

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

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

Регистр BX может использоваться для ссылки на ячейку памяти (указатель), т.е. 16-битовое значение, записанное в BX, может использоваться в качестве части адреса ячейки памяти, к которой производится обращение. По умолчанию, когда BX используется в качестве указателя на ячейку памяти, он ссылается на нее относительно сегментного регистра DS. Регистр BX может интерпретироваться, как два восьмибитовых регистра - BH и BL.

Специализация регистра CX - использование в качестве счетчика при выполнении циклов. Уменьшение значения счетчика и цикл - это часто используемый элемент программы, поэтому в процессоре 8086 используется специальная команда для того, чтобы циклы выполнялись быстрее и были более компактными. Эта команда называется LOOP. Инструкция LOOP вычитает 1 из CX и выполняет переход, если содержимое регистра CX не равно 0. Регистр CX можно интерпре­тировать, как два 8-разрядных регистра - CH и CL.

Регистр DX - это единственный регистр, который может исполь­зоваться в качестве указателя адреса ввода-вывода в командах IN и OUT. Фактически, кроме использования регистра DX нет другого способа адресоваться к портам ввода-вывода с 256 по 65535.

Другие уникальные качества регистра DX относятся к операциям деления и умножения. Когда вы делите 32-битовое делимое на 16-битовый делитель, старшие 16 битов делимого должны быть помещены в регистр DX (младшие 16 битов делимого должны быть помещены в регистр AX). После выполнения деления остаток также сохраняется в регистре DX (частное от деления будет записано в AX). Аналогично, когда вы перемножаете два 16-битовых сомножителя, старшие 16 битов произведения сохраняются в DX (младшие 16 битов записываются в регистр AX). Регистр DX можно интерпретировать как два 8-разрядных регистра - DH и DL.

Как и регистр BX, регистр SI может использоваться как указатель на ячейку памяти. Особенно полезно использовать регистр SI для ссылки на память в строковых командах процессора 8086, которые не только изменяют содержимое по адресу памяти, на который указывает SI, но к SI также добавляется или вычитается 1. Это может оказаться очень эффективным при организации доступа к последовательным ячейкам памяти (например, к строке текста). Кроме того, можно сделать так, что строковые команды будут автоматически определенное число раз повторять свои действия, так что отдельная команда может выполнить сотни, а иногда и тысячи действий.

Регистр DI очень похож на регистр SI в том плане, что его можно использовать в качестве указателя ячейки памяти. При использовании его в строковых командах регистр DI несколько отличается от регистра SI. В то время как SI всегда используется в строковых командах как указатель на исходную ячейку памяти (источник), DI всегда служит

указателем на целевую ячейку памяти (приемник). Кроме того, в строковых командах регистр SI обычно адресуется к памяти относительно сегментного регистра DS, в то время как DI всегда адресуется к памяти относительно сегментного регистра ES. Когда SI и DI используются в качестве указателей на ячейки памяти в других командах (не строковых), то они всегда адресуются к памяти относительно регистра DS.

Как и регистры BX, SI и DI, регистр BP, называемый базовым регистром, также может использоваться в качестве указателя на ячейку памяти, но здесь есть некоторые отличия. Регистры BX, SI и DI обычно ссылаются на память относительно сегментного регистра DS (или, в случае использования в строковых командах регистра DI, относительно сегментного регистра ES), а регистр BP адресуется к памяти относительно регистра SS (сегментный регистр стека). Регистр BP создан для обеспечения работы с параметрами процедур, локальными пере­менными и в других случаях, когда требуется адресация к памяти с использованием стека.

Регистр SP называется также указателем стека. Это «наименее общий» из регистров общего назначения, поскольку он практически всегда используется для специальной цели - обеспечения стека.

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

В стеке используется порядок запоминания байтов – «первый вошел – последний вышел». То есть последнее сохраненное в стеке значение будет первым значением, которое вы получите при чтении из стека.

Регистр SP в каждый момент времени указывает на вершину стека. Вершина стека - это то место, в котором в стеке сохраняется следующее помещенное туда значение. Действие, состоящее в занесении значений в стек, называют также «заталкиванием» (pushing) в стек (для этого используется команда PUSH). Аналогично, действие, состоящее в извлечении (выборке) значений из стека, называют также «вытал­киванием» (popping) из стека (для этого используется команда POP).

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

В 32-разрядных процессорах все регистры расширены до 32 бит и к прежнему обозна­чению их имен добавилась приставка Е (Extended – расширенный). Отсутствие приставки в имени означает ссылку на младшие 16 бит расширенных регистров. Инструкции, которые прежде адресовались к 16-разрядным регистрам, теперь могут адресоваться и к 32-разрядным расширенным при том же коде операции. Как и в 8086, возможно независимое обращение к младшему и старшему байтам регистров АХ, BX, CX и DX.

 Указатель команд

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

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

 Сегментные регистры

Основной предпосылкой сегментации памяти является следующее: процессор 8086 может адресоваться к 1 мегабайту памяти. Для адресации ко всем ячейкам адресного пространства в 1 мегабайт необходимы 20-разрядные сегментные регистры, однако процессор 8086 использует только 16-разрядные указатели на ячейки памяти. Поэтому в процессоре 8086 применяется двухступенчатая схема адресации. Каждый 16-разрядный указатель памяти или смещение комбинируется с содержимым 16-разрядного сегментного регистра для формирования

20-разрядного адреса памяти.

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

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

Вторая особенность использования сегментов состоит в том, что каждая ячейка памяти адресуется через многие возможные сочетания «сегмент:смещение». Например, адрес памяти 100h адресуется с помощью следующих значений «сегмент:смещение»: 0:100h, 1:F0h, 2:E0h и т.д., так как при вычислении всех этих пар «сегмент:смещение» получается значение адреса 100h.

Аналогично регистрам общего назначения каждый сегментный регистр играет свою, конкретную роль. Регистр CS указывает на код программы, DS указывает на данные, SS - на стек, ES - на дополни­тельный сегмент данных, который может использоваться так, как это необходимо. Рассмотрим сегментные регистры более подробно.

Регистр CS указывает на начало блока памяти объемом 64К, или сегмент кода, в котором находится следующая выполняемая команда. Следующая команда, которую нужно выполнить, находится по смещению, определяемому в сегменте кода регистром IP, т.е. на нее указывает адрес (в форме «сегмент: смещение») CS:IP. Процессор 8086 никогда не может извлечь команду из сегмента, отличного от того, который определяется регистром CS.

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

Регистр DS указывает на начало сегмента данных, которые представляет собой блок памяти объемом 64К, в котором находится большинство размещенных в памяти операндов. Обычно для ссылки на адреса памяти используются смещения, предполагающие использование регистров BX, SI или DI. В основном сегмент данных представляет собой то, о чем говорит его название: как правило, это сегмент, в котором находится текущий набор данных.

4-2    Регистр ES указывает на начало блока памяти объемом 64К, который называется дополнительным сегментом. Как и подразумевает его название, дополнительный сегмент не служит для какой-то конкретной цели, но доступен тогда, когда в нем возникает необходимость. Иногда сегмент ES используется для выделения дополнительного блока памяти объемом 64К для данных. Однако доступ к памяти в дополнительном сегменте менее эффективен, чем доступ к памяти в сегменте данных.

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

 Регистр состояния микропроцессора Intel 8086

16-разрядный регистр состояния FLAGS содержит всю необходимую информацию о состоянии процессора 8086 и результатах выполнения последней команды.

Битовые флаги:

OF - флаг переполнения;

DF - флаг направления;

IF - флаг прерывания;

TF - флаг трассировки;

SF - флаг знака;

ZF - флаг нуля;

AF - флаг дополнительного переноса;

PF - флаг четности;

CF - флаг переноса;

Флаг переполнения OF сигнализирует о переполнении, возникшем в результате сложения или вычитания.

Флаг направления DF определяет порядок сканирования цепочек байтов или слов в соответствующих командах: от меньших адресов к большим (DF = 0) или наоборот (DF = 1).

Флаг прерывания IF определяет реакцию процессора на запросы внешних прерываний по входу INT. Если IF = 0, запросы прерываний игнорируются (говорят также, что прерывания запрещены или замаскированы), а если IF = 1, процессор распознает запросы на прерывания и реагирует на них соответствующим образом. Состояние флага IF не влияет на восприятие внешних немаскируемых прерываний по входу NMI, а также внутренних (программных) прерываний.

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

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

Флаг нуля ZF сигнализирует о получении нулевого результата операции.

Флаг вспомогательного переноса AF фиксирует перенос (заем) из младшей тетрады в старшую 8- или 16-битного результата. Он необходим только для команд десятичной арифметики.

Флаг четности (паритета) PF фиксирует наличие четного числа единиц в младших 8 разрядах результата операции. Этот флаг предназначен для контроля правильности передачи данных.

Флаг CF фиксирует значение переноса (заема), возникающего при сложении или вычитании байтов или слов, а также значение выдвигаемого бита при сдвиге операнда.

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

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

Для 32-разрядных процессоров регистр флагов EFLAGS также расширен до 32 бит. Биты 0-15, опреде­ленные для 8086 и 80286, имеют прежнее назначение. Ряд флагов добавился с появлением процессоров 4-го и 5-го поколений.

 Управляющие регистры

Управляющие регистры (Control Registers) CRO, CR1, CR2, CR3 хранят признаки состояния процессора, общие для всех задач. Этих регистров в процессорах 8086/88 не было.

Регистр CRO обеспечивает общее управление режимами работы процессора. На­значение некоторых бит регистра CRO:

·   РЕ - разрешение защиты. Установка этого флага инструк­цией переводит процессор в защищенный режим.

·   МP - мониторинг сопроцессора.

·   ЕМ - эмуляция сопроцессора. Установка этого флага позволяет прозрач­но осуществлять его программную эмуляцию.

·   TS - флаг переключения задач, устанавливается автоматически при переключении задач.

·   ЕТ - индикатор поддержки инструкций математического со­процессора.

·   PG - включение механизма страничной переадресации памяти.

Регистр CR1 не используется.

Регистр CR2 хранит 32-битный линейный адрес, по которому был получен последний отказ страницы памяти.

Регистр CR3 используется для управления страничной орга­низацией памяти. В старших 20 битах хранится физичес­кий базовый адрес таблицы каталога страниц.

Регистр CR4 (присутствует в процессорах Pentium и выше) содержит биты разре­шения архитектурных расширений.

Прочие регистры

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

Регистры отладки (Debug Register) предназначены для задания и управления от­ладочными точками останова.

Состав регистров тестирования (Test Register) варьируется в зависимости от типа процессора. Процессоры 80386 имели только два регистра, предназначенных для тестирования кэша страничной переадресации, для процессора 486 состав регистров расширен.

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

 Представление команд в ЭВМ

Команда (инструкция) – элемент программы, приводящий к выполнению определенных действий.

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

Формат команды – количество и интерпретация разрядов, представляющих машинную команду.

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

Количество двоичных разрядов, отведенных под код операции, выбирается таким, чтобы можно было представить все выполняемые операции. Если ЭВМ выполняет М различных операции, то число разрядов в КОП должно быть не меньше log2M.

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

Обычно код команды имеет формат машинного слова или полуслова, реже полутора или двух слов. В некоторых машинах для представления команд используется несколько различных форматов. На рисунке 3 схематически показаны различные структуры кода команды.

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

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

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

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

·   команды арифметических операций для чисел с фиксированной и плавающей запятой;

·   команды десятичной арифметики;

·   команды логических (поразрядных) операций (И, ИЛИ и др.);

·   команды пересылки;

·   команды операций ввода-вывода;

·          команды управления порядком исполнения команд (команды передачи управления) и некоторые другие.

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

Процесс выполнения команды состоит из двух этапов: выборка и выполнение.

Цикл процессора – цикл выборки и выполнения команды.

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

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

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

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

 

 

 

5-1                                     Многоуровневая организация памяти

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

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

Характеристики устройств памяти

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

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

Таким образом, время доступа к памяти при считывании определяется по формуле

tобр_с = tдост_с + tсчит + tрег,

где tдост_с - промежуток времени между моментом начала операции считывания и моментом, когда становится возможным доступ к данной единице информации;

tсчит - продолжительность самого физического процесса считывания;

tрег - время, затрачиваемое на регенерацию информации (равно нулю для ЗУ, которым регенерация не требуется).

Время доступа при записи определяется по формуле

tобр_з = tдост_з + tподг + tзап,

где tдост_з - промежуток времени между моментом начала операции записи и моментом, когда становится возможным доступ к запоминающим элементам;

tподг - время подготовки, расходуемое на приведение в исходное состояние запоминающих элементов для записи заданной единицы информации;

tзап - время занесения информации.

В качестве продолжительности цикла обращения к памяти принимается величина

tобр = max(tобр_с, tобр_з).

 Регистровая память

Регистровая память, или СОЗУ (сверх ОЗУ), обладает наибольшим быстродействием. Она обычно реализуются на регистрах, поэтому в МП СОЗУ называется РОН. Объем памяти СОЗУ очень мал.

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

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

 Буферная память

 Кэширование памяти

Производительность ПК зависит не только от процессора. Большой потенциал производительности ПК связан с организацией и способом функционирования памя­ти. Важную роль при этом играет кэш-память.

Кэш-память выполняет функцию буфера между процессором и оперативной памятью.

Буфер – область памяти, используемая для временного хранения информации.

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

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

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

При управлении кэш-памятью речь идет не о простой памяти, организованной по принципу стека, которая теряет старые данные, если в нее считываются новые. С помощью специальных алгорит­мов, наиболее простым из которых является алгоритм LRU (Least Recently Used – алгоритм удаления наиболее давно использовавшихся данных), чаще используемые данные хранятся в этой памяти доль­ше, чем другие. Благодаря этому необходимость доступа к основ­ной памяти сводится к минимуму, и компьютер в целом работает быстрей.

В современных компьютерах кэш обычно строится по двухуровневой схеме. Первич­ный кэш (LI Cache) встроен во все процессоры класса 486 и выше; это внутренний кэш. Объем этого кэша невелик (8-32 Кбайт). Чтобы повысить производитель­ность, для данных и команд часто используется раздельный кэш (так называемая Гарвардская архитектура – противоположность Принстонской, использующей общую память для команд и данных). Вторичный кэш (L2 Cache) для процессо­ров 486 и Pentium является внешним (устанавливается на системной плате), а у Р6 и Pentium 4 располагается в одной упаковке с ядром и подключается к специальной внутрен­ней шине процессора, благодаря чему обеспечивается работа на полной тактовой частоте процессора.

Кэш-контроллер должен обеспечивать когерентность (coherency) – согласован­ность данных кэш-памяти обоих уровней с данными в основной памяти при том условии, что обращение к этим данным может производиться не только процессо­ром, но и другими активными (bus master) адаптерами, подключенными к шинам (PCI, VLB, ISA и т. д.). Следует также учесть, что процессоров может быть несколь­ко, и у каждого может быть свой внутренний кэш.

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

Принципы кэширования

Основная память компьютеров реализуется на относительно медленной динами­ческой памяти (DRAM), обращение к ней приводит к простою процессора – по­являются такты ожидания (wait states). Статическая память (SRAM), построен­ная, как и процессор, на триггерных ячейках, по своей природе способна догнать современные процессоры по быстродействию и сделать ненужными такты ожи­дания (или хотя бы сократить их количество). Разумным компромиссом для по­строения экономичных и производительных систем явился иерархический спо­соб организации оперативной памяти. Идея заключается в сочетании основной памяти большого объема на DRAM с относительно небольшой кэш-памятью на быстродействующих микросхемах SRAM.

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

 Кэш прямого отображения

В кэш-памяти прямого отображения адрес памяти, по которому происходит обра­щение, однозначно определяет строку кэша, в которой может находиться требуе­мый блок. Принцип работы такого кэша поясним на примере несекторированного кэша объемом 256 Кбайт с размером строки 32 байта и объемом кэшируемой основной памяти 64 Мбайт – типичный кэш системной платы для Pentium. Струк­туру памяти в такой системе иллюстрирует рис. 5.

Кэшируемая основная память условно разбивается на страницы (в данном случае по 256 Кбайт), размер которых совпадает с размером кэш-памяти (256 Кбайт). Кэш­-память (и, условно, страницы основной памяти) делятся на строки (256 Кбайт/32= 8 Кбайт строк). Архитектура прямого отображения подразумевает, что каждая строка кэша может отображать из любой страницы кэшируемой памяти толь­ко соответствующую ей строку (на рис. 5 они находятся на одном горизонталь­ном уровне). Поскольку объем основной памяти много больше объема кэша, на каждую строку кэша может претендовать множество блоков памяти с одинаковой младшей частью адреса (смещением внутри страницы). Одна строка в определен­ный момент может, естественно, содержать копию только одного из этих блоков. Номер (адрес) строки в кэш-памяти называется индексом (index). Тег несет инфор­мацию о том, какой именно блок занимает данную строку (то есть старшая часть адреса или номер страницы). Память тегов должна иметь количество ячеек, рав­ное количеству строк кэша, а ее разрядность должна быть достаточной, чтобы вместить старшие биты адреса кэшируемой памяти, не попавшие на шину адреса кэш-памяти. Кроме адресной части тега, с каждой строкой кэша связаны биты признаков действительности и модифицированности данных. В начале каждого обращения к кэшируемой памяти контроллер вначале считывает ячейку каталога с заданным индексом, сравнивает биты адреса тега со старшими битами адреса памяти и анализирует признак действи­тельности. Этот анализ выполняется в специальном цикле слежения (snoop cycle), иногда его назы­вают циклом запроса (inquire). Если в результате анализа выясняется, что требуе­мого блока нет в кэше, генерируется (или продолжается) цикл обращения к ос­новной памяти (случай кэш-промаха). В случае попадания запрос обслуживается кэш-памятью. В случае промаха после считывания основной памяти приемником информации новые данные помещаются в строку кэша (если она чистая), а в ее тег помещаются старшие биты адреса и устанавливается признак действительно­сти данных. Независимо от объема затребованных данных в кэш из основной па­мяти строка переписывается вся целиком (поскольку признак действительности относится ко всем ее байтам). Если контроллер кэша реализует упреждающее считывание (read ahead), то в последующие свободные циклы шины также обно­вится и следующая строка (если она была чистой). Чтение «про запас» позволяет при необходимости осуществлять пакетный цикл чтения из кэша через границу строки.

Такой кэш имеет самую простую аппаратную реализацию и применяется во вторичном кэше большинства системных плат. Однако ему присущ серьезный недостаток, вполне очевидный при рассмотрении рис. 5. Если в процессе вы­полнения программы процессору поочередно будут требоваться блоки памяти, смещенные относительно друг друга на величину, кратную размеру страницы (на рисунке эти блоки расположены на одной горизонтали в разных страницах), то кэш будет работать интенсивно, но вхолостую (cache trashing). Очередное обра­щение будет замещать данные, считанные в предыдущем и необходимые в следу­ющем обращении, – т.е. будет сплошная череда кэш-промахов. Переключение страниц в многозадачных ОС также снижает количество кэш-попаданий, что от­ражается на производительности системы. Увеличение размера кэша при сохра­нении архитектуры прямого отображения даст не очень существенный эффект, поскольку разные задачи будут претендовать на одни и те же строки кэша. Не увеличивая объема, можно повысить эффективность кэширования изменением структуры кэша, о чем пойдет речь ниже.

Объем кэшируемой памяти (Мcached) при архитектуре прямого отображения оп­ределяется объемом кэш-памяти (Vcache) и разрядностью памяти тегов (N):

Мcached = Vcache · 2N, в нашем случае Мcached = 256 Кбайт · 28 = 64 Мбайт.

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

 Наборно-ассоциативный кэш

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

В простейшем случае каждый блок памяти может помещаться в одну из двух строк (Two Way Set-Associative Cache – двухканальный наборно-ассоциативный кэш). Такой кэш должен содержать два банка памяти тегов (рис. 7).

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

5-2  блок, опреде­ляется сравнением тегов (как и в ассоциативном кэше), параллельно выполняе­мым для всех каналов кэша. Кроме того, с каждым набором должен быть связан признак, определяющий строку набора, подлежащую замещению новым блоком данных в случае кэш-промаха. Канди­датом на замещение обычно выбирается строка, к которой дольше всего не обра­щались (алгоритм LRU– Least Recently Used). При относительно большом коли­честве каналов (строк в наборе) прибегают к некоторому упрощению – алгоритм Pseudo-LRU для четырех строк (Four Way Set Associative Cache) позволяет при­нимать решения, используя всего 3 бита. Возможно также применение алгоритма замещения FIFO (первым вошел – первым вышел) или даже случайного (random) замещения, что проще, но менее эффективно.

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

 Ассоциативный кэш

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

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

 Логическое распределение оперативной памяти

Логическое распределение оперативной памяти определяется не только при­меняемой операционной системой, но и особенностями аппаратной реализа­ции IBM-совместимых PC. Знание строения ОЗУ необходимо для программ­ной оптимизации системы.

Можно выделить пять важнейших логических областей оперативной памяти:

·   Стандартная оперативная память (Conventional Memory);

·   ЕМS-память (Expanded Memory Specification) – дополнительная память;

·   UMA (Upper Memory Area) – верхняя память;

·   HMA (High Memory Area);

·   XMS (Extended Memory Specification) – расширенная память

Стандартная оперативная память

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

В то время как внутри PC обычно все выражается в двоичной системе счисле­ния (0 или 1), для адресации памяти применяется шестнадцатеричная, харак­теризующаяся наличием символа “h” после значения.

Стандартная память начинается от адреса 0000:0000 и про­должается до адреса А000:0000, занимая 640Кбайт. Этот невысокий верхний предел был установлен процес­сорами 8088 и 8086. Эти процессоры имели 20-разрядную адресную шину и поэтому могли адресовать только 1 Мбайт памяти (220=l 048 576 байт). В пределах этой памяти выше уровня 640 Кбайт фирмой IBM были зарезер­вированы 384 Кбайта для выполнения внутренних функций, на которых мы

остановимся ниже.

В стандартной памяти расположены таблица векторов прерываний, область данных BIOS, операционная система.

Таблица векторов прерываний

Само название говорит о том, что речь идет о таблице (состоящей из 256 элементов по 4 байта), в которой находятся вектора прерываний – адреса сервисных программ, входящих в состав операционной системы и BIOS. При этом речь идет о таких базовых функциях, как отображение символа на экране монитора или организация доступа к дисководу или жесткому диску и т. п. Но так как существуют различные операционные системы и версии BIOS, эти програм­мы-прерывания могут располагаться в различных местах стандартной опера­тивной памяти. В таблице прерываний указано их реальное местоположение. Таблица занимает место 1024 Байт (1 Кбайт) и начинается с адреса 0000h:0000h.

Область данных BIOS

Вслед за таблицей прерываний расположена область данных BIOS объемом 768 Байт. Здесь размещены, например, счетчик таймера, буфер клавиатуры и другая внутренняя информация.

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

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

Основная область памяти

Далее до адреса A000h:0000h все принадлежит только программам и данным. Этот адрес известен как граница 640 Кбайт, с которой успешно справляются мно­гие PC с процессором выше 80286.

 UMA

 

Верхняя память – участок памяти от 640Кб до 1 Мб.

Здесь находится информация, которая служит для сопряжения прикладных программ с раз­личными картами расширений, уста­новленными в PC. И поскольку иногда карты расширения, например, видеокарту, называют адаптером (Adapter), эту область памяти коротко называют сегментом адаптера или, поскольку речь идет об области памяти с более высокими адресами, UMA (Upper Memory Area). Эта верхняя память (Upper Memory) располагается по адресам от A0000h до FFFFFh (от 640 Кбайт до 1 Мбайт), ее размер составляет 384 Кбайт.

Рассматриваемая область памяти не однородна. В UMA размешается видеопа­мять и ПЗУ BIOS, а также могут находиться модули постоянной и оператив­ной памяти, конструктивно расположенные на картах расширения, подклю­ченных к PC. Поэтому среди этих блоков некоторые являются зарезервиро­ванными (пользователь не может их исполь­зовать), другие, напротив, свобод­ны. Свободные блоки, поскольку они находятся в верхней памяти, также называют UMB (Upper Memory Block).

EMS

Как уже упоминалось ранее, в верхней памяти имеются изрядные «дыры», которые представляют собой свободную память, самостоятельно не иденти­фицируемую системой. Пустуют, как правило, область расширения системно­го ROM BIOS или часть области под дополни­тельные модули ROM. Исполь­зовать эту память позволяет метод EMS (Expanded Memory Specification), появившийся прежде всего потому, что программы, использующие большое количество памяти, не могут разместиться в оперативной памяти до 640 Кбайт.

Для того чтобы преодолеть этот барьер, фирмы Lotus, Intel и Microsoft (отсюда название LIM) создали стандарт, который основывается на так называемом переключении банков (Bank Switchings), или блоков (страниц), памяти. В об­ласти UMB между видеобуфером и системным ROM BIOS выделяется неза­нятое «окно» (page frame) размером 64 Кбайт, разделенное на 4 логические страницы по 16 Кбайт. С помощью специального драйвера, например ЕММ386.ЕХЕ, строятся «ото­бражения» до четырех произвольных физических страниц из дополнительной (Expanded) памяти, расположенной на специаль­ной карте расширения, в логические. Поэтому эту память часто называют отображаемой памятью. При необходимости обращения к данным, располо­женным в дополнительной памяти, с помощью драйвера выбирается соответ­ствующее ранее построенное «отображение» физических страниц в логичес­кие. Когда процессор обращается к области памяти, входящей в «окно» (адрес памяти которого ниже 1 Мбайт), аппаратно происходит обращение к соответствую­щим страницам дополнительной памяти на плате расширения. Таким обра­зом, посредством адресации, реализуемой драйвером EMS, можно обращать­ся к 8 Мбайт (стандарт LIM 3.2) или к 32 Мбайт (стандарт LIM 4.0) дополнительной памяти, которая конструктивно расположена на отдельной карте расширения. На PC с процессорами 80386 и выше такая отдельная карта не нужна. EMS здесь может эмулироваться с помощью соответствующих драй­веров.

Для того чтобы использовать EMS-память, необходимо выполнение

двух условий:

·   прикладные программы должны уметь обращаться к драйверу EMS-па­мяти;

·   необходим специальный менеджер памяти (Expanded Memory Manager), со­кращенно EMM, который организует страницы и управляет ими. Ранее, для старых материнских плат, соответствующий драйвер поставлялся на отдельной дискете. В настоящее время этот драйвер входит в стандарт­ные поставки DOS и Windows, в этом случае он соответствует последне­му стандарту LIM и представляет собой файл ЕММ386.ЕХЕ. Этот драй­вер позволяет программно эмулировать дополнительную (Expanded) па­мять в расширенной (Extended) памяти.

 НМА

Первый блок величиной 64 Кбайта непосредственно выше границы 1 Мбайт оперативной памяти обозначают как НМА (High Memory Area). Своему сущест­вованию эта область целиком обязана несколько «ущербной» эмуляции процес­сора 8088 процессором 80286. Дело состоит в следующем. Вся стандартная па­мять, помимо того, что может быть представлена в виде 16 неперекрываемых блоков размером 64 Кбайта каждая (0–F), также может быть представлена и в виде перекрываемых 64 Кбайтных областей, называемых сегментами, которые, вообще говоря, могут начинаться через каждые 16 байт. Максимальный пол­ный адрес в виде сегмент: смещение, по которому может обратиться процессор 8088, – это FFFF:000Fh (20 адресных линий). Если увеличить это значение хотя бы на единицу, то произойдет циклический перенос (wrap around) и значе­ние адреса станет 0000:0000. Для процессора 80286 и выше в общем случае этого не случится, так как адресная шина этих процессоров больше 20 разрядов, но адрес памяти при этом превысит границу 1 Мбайт. Чтобы исправить эту ошибку, фир­ма IBM предусматривает на материнских платах PC специальные аппаратные средства, «заставляющие» процессор 80286 выполнять переход на низшие адре­са, как это было при работе процессора 8088. Однако такой переход может быть отменен чисто программным путем. Таким образом, PC с процессором не ниже 80286 в реальном режиме может дополнительно адресовать память в пределах FFFF:0010-FFFF:FFFFh, т.е. практически целый сегмент размером 64 Кбайт минус 16 байт. Особенно важным для понимания является тот факт, что область НМА доступна, по сути, в реальном режиме работы процессора.

                                                                                          XMS

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

Расширенная память – часть оперативной памяти в компьютерах с микропроцессорами Intel-80286, расположенная выше первого мегабайта.

XMS (eXtended Memory Specification) обозначает всю память выше границы 1 Мбайт, включая также НМА.

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

 

 

 

 

 

 

 

 

 

 

 

 

6                                                                       архитектур ЭВМ

 RISC и CISC архитектуры

Архитектура – аппаратные средства и программное обеспечение данного устройства.

Термин “архитектура системы” часто употребляется как в узком, так и в широком смысле этого слова. В узком смысле под архитектурой понимается архитектура системы команд.

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

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

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

RISC (Reduced (Restricted) Instruction Set Computer) – уменьшенный набор команд, которыми пользуется микропроцессор компьютера, содержащий только наиболее простые команды.

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

CISC (Complete Instruction Set Computer) – полный набор команд микропроцессора.

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

Лидером в разработке CISC-процессоров считается компания Intel со своей серией x86 и Pentium. Эта архитектура является практическим стандартом для рынка микрокомпьютеров. Для CISC-процессоров характерно:

- сравнительно небольшое число регистров общего назначения;

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

- большое количество методов адресации;

- большое количество форматов команд различной разрядности;

- преобладание двухадресного формата команд;

- наличие команд обработки типа регистр-память.

Основой архитектуры современных рабочих станций и серверов является RISC архитектура. Понятие RISC сформировалось на базе трех исследовательских проектов: процессора 801 компании IBM, процессора RISC университета Беркли и процессора MIPS Стенфордского университета. Главными идеями этих машин было отделение медленной памяти от высокоскоростных регистров и использование регистровых окон. Эти три процессора имели много общего. Все они придерживались архитектуры, отделяющей команды обработки от команд работы с памятью, и делали упор на эффективную конвейерную обработку. Система команд разрабатывалась таким образом, чтобы выполнение любой команды занимало небольшое количество машинных тактов (предпочтительно один машинный такт). Сама логика выполнения команд с целью повышения производительности ориентировалась на аппаратную, а не на микропрограммную реализацию. Чтобы упростить логику декодирования команд, использовались команды фиксированной длины и фиксированного формата.

Среди других особенностей RISC архитектур следует отметить наличие достаточно большого регистрового файла (в типовых RISC-процессорах реализуются 32 или большее число регистров по сравнению с 8–16 регистрами в CISC архитектурах), что позволяет большему объему данных храниться в регистрах на процессорном кристалле более длительное время и упрощает работу компилятора по распределению регистров под переменные. Для обработки данных процессора с RISC архитектурой, как правило, используются трехадресные команды, что помимо упрощения дешифрации дает возможность сохранять большее число переменных в регистрах без их последующей перезагрузки.

Система команд ЭВМ общего назначения

Методы адресации

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

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

Смещение (Displacement или Disp) – 8-, 16- или 32-битное число, включенное в команду.

База (Base) – содержимое базового регистра. Обычно используется для указа­ния на начало некоторого массива.

Индекс (Index) – содержимое индексного регистра. Обычно используется для выбора элемента массива.

Масштаб (Scale) – множитель (1, 2, 4 или 8), указанный в коде инструкции. Этот элемент используется для указания размера элемента массива, доступен только при 32-битной адресации.

Эффективный адрес вычисляется по формуле:

EA=Base + Index × Scale + Disp.

Отдельные слагаемые в этой формуле могут отсутствовать. Возможные режимы адресации приведены ниже:

.

 Типы команд

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

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

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

2.Инструкции двоичной арифметики выполняют все арифметические действия с байтами, словами и двойными словами, кодирующи­ми знаковые или беззнаковые целые числа.

3.Инструкции десятичной арифметики являются дополнением к предыдущим. Они позволяют оперировать с неупакованными (биты 7–4 равны нулю, биты 3–0 содер­жат десятичную цифру 0–9) или упакованными (биты 7–4 содержат старшую, биты 3–0 – младшую десятичную цифру 0–9) двоично-десятичными числами. Арифметические операции над этими числами требуют применения инструкций коррекции форматов.

4.Инструкции логических операций выполняют все функции булевой алгебры над байтами, словами или двойными словами.

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

6.Инструкции обработки бит и байт позволяют проверять и устанавливать значение указанного операнда, а также искать установленный бит. Битовые операции выполняются над 16- или 32-битными словами. Инструкция тестирования может выполняться над байтом, словом или двойным словом.

7.Передача управления осуществляется с помощью инструкций безусловных и условных переходов, вызовов процедур и прерываний (исключений). Безусловный переход (JMP) может быть как внутрисегментным (ближним или коротким), так и межсегментным (дальним). Адрес перехода может непосредственно указываться в команде, а при косвенной адресации он находится в регистре или памяти и может иметь дополнительные слагае­мые. Короткий переход (short) может передавать управление только на адрес на­значения, удаленный от текущего в пределах -128...+127 байт, ближний (near) – в пределах сегмента. При дальнем (far) переходе адрес назначения (непосредствен­ный или косвенный) включает новое значение указателя инструкций и значение (или селектор) сегмента кода, обеспечивая доступ к любой точке памяти (в преде­лах, разрешенных защитой).

Условные переходы в 8086 и 80286 возможны только короткие (8-байтное смеще­ние), процессоры 386+ допускают переход в пределах 16- или 32-байтного смеще­ния, в зависимости от режима адресации.

Инструкция вызова процедуры сохраняет адрес следующей за ней инст­рукции в стеке и передает управление в заданную точку.

8.Строковые операции выполняются с операн­дами в памяти. Операции могут использоваться с префиксами условно­го или безусловного повтора. Строковые инструкции ввода/вывода с префиксами повтора позволяют достигать высоких скоростей обмена с портами при условии полной загрузки процессора.

9.Операции с флагами  позволяют изменять значе­ния отдельных флагов, а также сохранять их значение в стеке и восстанавливать сохраненные значения.

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

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

 

 

 

 

 

8-1                                        организация прерываний

                                                                       Механизм прерываний

Назначение системы прерываний

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

Прерывание – реакция на входной сигнал запроса прерывания или команду прерывания.

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

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

 Порядок обработки прерывания

Основными функциями системы прерываний являются:

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

·   восстановление состояния прерванной программы;·   возврат к прерванной программе.

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

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

Прерывающая программа, как правило, состоит из трех частей:

1. Подготовительной, обеспечивающей сохранение состояния прерванной программы.

2. Основной, выполняющей затребованную запросом работу.3. Завершающей, обеспечивающей продолжение работы пре­рванной программы.

Приоритетное обслуживание запросов прерывания

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

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

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

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

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

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

Процедура прерывания с опросом источников прерывания

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

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

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

Векторное прерывание

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

Более гибким и динамичным является векторное прерывание, при котором исключается опрос источников прерывания.

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

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

                                                           Программное управление приоритетом

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

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

 Метод порога прерывания

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

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

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

Метод маски прерывания

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

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

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

 Организация системы прерываний микропроцессора х86

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

Рис. 12. Возможные источники прерываний

 Аппаратные прерывания. Контроллер прерываний

Аппаратное прерывание – прерывание, выполняемое в результате запроса, поступающего от периферийного оборудования.

Контроллер прерываний – устройство, которое обрабатывает сигналы аппаратных прерываний.

В отличие от программных прерываний аппаратные всегда возникают асинхронно от выполняющейся программы. Запросы на прерывания передаются по специальным сигнальным линиям, которые называются IRQ-линиями (Interrupt Request – запрос на прерывание).

Программируемый контроллер прерываний 8259, используемый в машинах IBM AT, предназначен для обработки до 8 приоритетных уровней прерываний. Возможно каскадирование микросхем, при этом общее число уровней прерывания будет достигать 64.

В машинах IBM AT имеется 15 линий сигналов прерывания, для обслуживания которых используются ведущая и одна ведомая микросхемы. Для каскадирования используется линия IRQ2 ведущей микросхемы. Ведомой микросхеме программным методом при­сваивается код, равный номеру входа IRQ ведущей микросхемы, с которым соединен выход запроса прерывания INT ведомой микросхемы. Внутри микросхемы приоритет зависит от номера IRQ и задается программно.

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

8-2      Исключением являются системы, которые могут работать по методу разделения прерываний. К ним относятся шина EISA, a также системы, соответствующие спецификации Plug and Play фирмы Intel. Разумеется, трудно найти программное обеспечение, которое могло бы управлять разделением прерываний, поэтому стандартное правило «каждому устройству – свое собственное прерывание» должно выполняться (рис. 13).

 Приоритеты прерываний распределены в следующем порядке (по убыванию приоритета):

IRQ0 - прерывание таймера;

IRQ1 - прерывание от клавиатуры;

IRQ8 - прерывание от часов реального времени;

IRQ9 - прерывание от контроллера графической платы;

IRQ10 - зарезервированная линия;

IRQ11 - зарезервированная линия;

IRQ12 - зарезервированная линия;

IRQ13 - прерывание от математического сопроцессора;

IRQ14 - прерывание от контроллера жестких дисков;

IRQ15 - прерывание от IDE-контроллера (CD-ROM);

IRQ3 - прерывание от последовательного порта COM2;IRQ4 - прерывание от последовательного порта COM1;

IRQ5 - зарезервированная линия;IRQ6 - прерывание от контроллера гибких дисков;IRQ7 - прерывание от параллельного порта (от принтера).

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

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

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

 Особенности обработки аппаратных прерываний

В микропроцессоре имеется два входа прерываний - маскируемого прерывания INT и немаскируемого прерывания NMI.

Обработка маскируемых прерываний

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

Если установлен сигнал на линии INT и установлен в 1 флажок разрешения прерывания IF в регистре флагов, то после завершения выполнения текущей команды происходит прерывание и процессор выполняет следующие действия:

1. Выдает контроллеру прерывания подтверждение прерывания.

2. Считывает из контроллера прерывания код типа прерывания.

3. Заносит в стек содержимое регистра флагов.

4. Заносит в стек содержимое регистров IP (указатель команд) и CS (регистр, хранящий базовый адрес).

5. Вызывает и выполняет процедуру прерывания.

6. Извлекает из стека содержимое CS и IP.

7. Извлекает из стека содержимое регистра флагов.

8. Возвращается к выполнению следующей команды прерванной программы.

Обработка немаскируемых прерываний.

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

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

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

Немаскируемые прерывания имеют фиксированный код 2. Немаскируемое прерывание выполняется быстрее маскируемого, так как не требует подтверждения и считывания типа.

Если установлен сигнал на линии NMI, то после завершения выполнения текущей команды происходит прерывание и процессор выполняет следующие действия:

1. Заносит в стек содержимое регистра флагов.

2. Заносит в стек содержимое регистра IP и CS, запоминая тем самым точку возврата из процедуры прерывания.

3. Вызывает и выполняет процедуру прерывания.

4. Извлекает из стека содержимое CS и IP.

5. Извлекает из стека содержимое регистра флагов.

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

 Внутренние прерывания

В процессоре 8086 предусмотрено несколько внутренних прерываний, генерируемых при выполнении программы. Команда INT n вызывает прерывание сразу после своего завершения. Тип прерывания n, закодированный программистом в команде, определяет вызываемую процедуру прерывания. Следовательно, эту команду можно использовать для отладки процедур прерываний, обслуживающих периферийные устройства.

Команда INTO генерирует прерывание типа 4 после своего завершения, если установлен флаг переполнения OF в регистре флагов.

Процессор самостоятельно генерирует прерывание типа 0 сразу  после выполнения команд деления DIV и IDIV, если имело место деление на 0.

Если установлен флаг пошаговой работы TF в регистре флагов, процессор автоматически генерирует прерывание типа 1 после выполнения каждой команды. Пошаговый режим предназначен для отладки программ.

Таблица векторов прерываний

Таблица векторов прерываний – таблица адресов обработчиков прерываний.

Таблица указателей векторов прерываний осуществляет связь между кодом типа прерывания и процедурой, которая обслуживает прерывание данного типа. Таблица занимает 1 Кбайт памяти с диапазоном адресов 0 - 3FFh и может содержать до 256 элементов.

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

Процедуры прерываний

Когда вызывается процедура прерывания, содержимое регистров флагов, CS и IP помещено в стек, а флаги IF и TF сброшены. Процедура может разрешить внешние прерывания командой STI, допуская прерывание самой себя запросом на входе INT. Кроме того, она может быть всегда прервана запросом на входе немаскируемых прерываний  NMI. Внутренние прерывания, возникающие при выполнении процедуры, будут также прерывать ее. В каждой процедуре необходимо тщательно следить за тем, чтобы в ней не возникло прерывание того типа, которое она обслуживает. Необходимо также задавать объем стека, рассчитанный на максимальную глубину вложения прерываний.

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

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

Процедура прерывания должна заканчиваться командой возврата из прерывания IRET. Перед ее выполнением предполагается, что стек находится в том состоянии, в каком он был сразу после вызова процедуры. Команда IRET извлекает три верхних слова из стека в регистры IP, CS и флагов.

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

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

    9-1                                    Система ввода-вывода

Основные понятия

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

Передача информации с периферийного устройства (ПУ) в ядро ЭВМ называется операцией ввода, а передача из ядра ЭВМ в периферийное устройство - операцией вывода.

Связь устройств ЭВМ друг с другом осуществляется с помощью средств сопряжения - интерфейсов.

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

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

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

BIOS (Basic Input Output System) - базовая система ввода-выво­да. Содержит набор основных функций управления стандартными внешними устройствами PC.

Назначение ROM BIOS состоит в выполнении наиболее простых и универсальных услуг, связанных с осуществлением ввода-вывода.

Обозначение ROM расшифровывается как Read Only Memory (память только для чтения, ПЗУ), т.е. информация может только считываться, но не мо­жет быть записана. На самом деле, все современные ROM BIOS позволяют в режиме обновления BIOS стирать и переписывать (обновлять) информацию BIOS.

ROM BIOS выполняет три основные функции:

·   предоставляет операционной системе аппаратные драйверы и осуществляет сопряжение между материнской платой и остальным PC;

·   содержит тест проверки системы, так называемый POST (Power On Self Test), который проверяет при включении PC все важнейшие компоненты;

·   содержит программу установки параметров BIOS и аппаратной кон­фигурации PC – CMOS Setup.

Принципы организации обменов данными

Можно выделить два характерных принципа построения систем ввода-вывода: ЭВМ с одним общим интерфейсом и ЭВМ с множеством интерфейсов и процессорами (каналами) ввода-вывода.

 Структура с одним общим интерфейсом

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

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

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

Для периферийных устройств с поблочной передачей данных (ЗУ на дисках, лентах и др.) применяется прямой доступ к памяти (ПДП) и контроллеры ПДП.

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

 Структура с каналами ввода-вывода

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

 

 

 

 

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

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

Можно выделить четыре типа интерфейсов: интерфейс основной памяти, интерфейс процессор-каналы, интерфейсы ввода-вывода, интерфейсы периферийных устройств (малые интерфейсы).

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

Интерфейс процессор-каналы предназначается для передачи информации между процессорами и каналами ввода-вывода.

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

Основные параметры интерфейсов

 Интерфейсы характеризуются следующими параметрами:

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

2. Максимальная частота передачи информационных сигналов через интерфейс лежит в диапазоне от десятков герц до тысяч мегагерц.

3. Максимально допустимое расстояние между соединяемыми устройствами имеет диапазон от десятков сантиметров до нескольких километров при использовании оптоволоконных линий.

4. Динамические параметры интерфейса – время передачи отдельного слова и блока данных с учетом продолжительности процедур подготовки и завершения передачи. Эти параметры особенно важны для систем реального времени.

5. Общее число линий (проводов) в интерфейсе.

6. Информационная ширина интерфейса - число бит данных, передаваемых параллельно через интерфейс. Различные интерфейсы имеют ширину 1, 8, 16, 32, 64, 128 или 256 бит.

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

 Параллельная и последовательная передача данных

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

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

В отличие от последовательной передачи данных параллельная передача, как правило, однонаправленная, т.е. данные передаются только в одном на­правлении.

В отличие от параллельной передачи данных отдельные биты пересылаются (или принимаются) пос­ледовательно друг за другом, при этом возможен обмен данными в двух на­правлениях. Уровень напряжения последовательного интерфейса изменяется в пределах от –25 В до +25 В. Благодаря этому относительно высокому значе­нию напряжения повышается помехоустойчивость, и данные могут переда­ваться без потерь по кабелю длиной 50 м и более.

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

 Методы передачи информации между устройствами ЭВМ

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

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

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

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

Конечно, второй режим сложнее, но у него есть серьезное преимущество: не нужен отдельный сигнал синхронизации.

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

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

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

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

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

 Индивидуальные каналы

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

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

Канал – путь передачи данных.

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

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

Каналы могут приводиться в действие следующими двумя способами:

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

·   через повторяющиеся опросы: арбитр шины периодически опрашивает ка­налы, чтобы узнать, можно ли выдать каналу новый заказ (polling).

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

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

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

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

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

3. Организация цепочки операций: иногда выгодно задавать не отдельные операции ввода-вывода, а сразу группу последовательных операций.

4. Блокировка контроля неправильной длины считанного массива бывает полезной при попытках извлечения хотя бы части информации из искаженного массива данных.

                                                         Основные типы каналов ввода-вывода

 Способ организации взаимодействия периферийного устройства с каналом определяется соотношением быстродействия оперативной памяти и периферийного устройства. По этому признаку периферийные устройства можно классифицировать на две группы: быстродействующие (ЗУ на дисках) - со скоростью обмена информацией 100 Кбайт/с - 100 Мбайт/с, и медленнодействующие (принтеры) - со скоростью от десятков байт до десятков килобайт в секунду. Оперативная память может выдавать и принимать данные со скоростью 1 - 100 Мбайт/с взависимости от типа микросхем памяти и архитектуры ОЗУ.

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

                                                                           Монопольный режим

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

На все время выполнения данной канальной программы канал недоступен другим периферийным устройствам.

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

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

                                                   Мультиплексный режим (режим разделения времени)

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

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

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

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

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

 Ввод-вывод с отображением на память

32-разрядные процессоры позволяют адресовать до 64 Кбайт однобайтных реги­стров (портов ввода/вывода) в отдельном от памяти пространстве. Процессоры могут обращаться к портам разрядностью в байт или слово, причем разрядность слова (16 или 32 байт) определяется текущим режимом адресации и может изме­няться с помощью префикса инструкций. При операциях ввода/вывода линии А[16:31] не используются. Адрес устройства задается либо в команде (только младший байт, старший – нулевой), либо берется из регистра DX (полный 16-бит­ный адрес).

В защищенном режиме инструкции ввода/вывода являются привилегированными. Это означает, что они могут исполняться задачами только с определенным уров­нем привилегий. Несанкционированная попытка выполнения этих инструкций вызо­вет исключение 13 (#GP) – нарушение защиты (сообщение General Protection Error).

Все операции с портами ввода/вывода выполняются без какого-либо кэширова­ния и строго в порядке, предписанном программным кодом. Это естественно, поскольку порты ввода/вывода используются для управления различными аппа­ратными средствами, и после­довательность управляющих воздействий и считы­ваний состояния не должна нарушаться. Для этих целей можно ис­пользовать и область пространства памяти – так называемое отображение ввода/ вывода на память. Тогда для этой области памяти должно быть запрещено кэши­рование и установлен строгий порядок записей. Процессоры Р6 позволяют этого добиться с помощью формирования атрибутов страниц памяти. Процессоры 4-5 поколения позволяют аппаратно запрещать кэширо­вание. Порядок операций у этих процессоров всегда строгий. Процессоры младших поколений кэширование не поддерживают, так что отображение ввода/вывода на память у них проблем не вызывает.

Порты ввода-вывода

Подсоединение периферийных устройств, таких как манипу­лятор типа мышь, внешний модем или принтер, к персонально­му компьютеру производится через так называемые устройства сопряжения, или адаптеры, на которых реализованы стандарт­ные или специальные интерфейсы. До недавнего времени подоб­ные адаптеры были выполнены в виде отдельных плат ввода-вывода – Input-Output (I/O) Card, вставляемых в разъемы рас­ширения на системной плате. Современные системные платы, как правило, интегрируют все необходимые адаптеры.

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

На практике стандартные последовательный и параллель­ный интерфейсы часто называют портами ввода-вывода.

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

Собст­венно, до последнего времени в качестве последовательного стан­дартного интерфейса используется разновидность RS-232C (Rec­ommended Standard), а в качестве параллельного – Centronics.

Порт называют после­довательным, когда информационные биты передаются последо­вательно один за другим и параллельным, когда несколько бит данных передаются одновременно. Если несколько адаптеров (последовательного и параллельного портов, приводов флоппи- и жестких дисков) конструктивно выполнены на отдельной плате, она называется, как правило, многофункциональной платой ввода-вывода (Multi I/O Card).

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

Поскольку параллельный порт в IBM PC-совместимом ком­пьютере чаще всего используется для подключения принтера, то его называют также принтер-портом. В MS-DOS компьютер работает максимум с тремя параллельными портами, которые имеют логические имена LPT1, LPT2 и LPT3. В адресном про­странстве компьютера резервируются базовые адреса этих пор­тов: 3ВСh, 378h и 278h. Первый адрес обычно используется, если принтер-порт находится,

9-3

например, на плате графического адап­тера Hercules или EGA. На плате Multi I/O Card адрес LPT1 – 378h, а LPT2 – 278h. Для принтерного порта LPT1 предусмот­рено аппаратное прерывание IRQ7, а для LPT2 – IRQ5, хотя на практике они обычно не применяются. Установка базовых ад­ресов портов и возможность использования прерываний настраи­ваются перестановкой перемычек (jumpers) на плате, описание которых приводится в технической документации для конкрет­ного адаптера или в программе начальной установки SETUP.

Сначала интерфейс Centronics был конструктивно реализован на нескольких ТТЛ-микросхемах. Именно на них в этом случае выполняются декодирование адреса, промежуточное хранение и инвертирование отдельных сигналов. Затем широкое распространение получили адапте­ры, в которых практически все функции отдельных ТТЛ-микро­схем объединены в одной БИС типа 82С11, выполненной по КМОП-технологии. Теперь все микросхемы портов и адаптеров «спрятаны» обычно в одной СБИС.

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

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

Адрес третьего порта (базовый адрес плюс 2) соответствует ре­гистру управления интерфейса. Этот регистр (read only – только для чтения) позволяет определить следующие состояния принте­ра:

- бит 0 = 0: сигнал Strobe активен (описание см. ниже),

- бит 1 = 0: сигнал Auto feed включен (описание см. ниже),

- бит 2 = 0: инициализа­ция принтера,

- бит 3 = 1: принтер вы­бран,

- бит 4 = 1: прерывание разрешено.

Распределение сигналов

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

Данные (линия 2-9 и 18-25)

Восемь линий данных передают восемь битов информации. Для каждой ли­нии данных имеется отдельный проводник заземления (18-25)

Подтверждение (линия 1,10,11)

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

Сигнал Strobe сообщает принтеру о том, что PC установил байтданных на линии данных и принтер может печатать символ.

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

Контроль принтера (линии 12-17)

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

Paper End

По линии 12 передается сообщение PC о том, что в принтере нет бумаги. Интерфейс реагирует на это, как на срыв передачи данных, и сигнализирует об этом по другим линиям (Select и Error). В противном случае принтер печа­тал бы без бумаги прямо по валику, что могло бы привести к серьезному повреждению головки принтера.

Select и Select Input

По линии 13 интерфейсу сообщается о том, в каком из состояний нахо­дится принтер, в состоянии On-line (готов) или Off-line (выключен или не готов). Уровень сигнала на линии 13 можно изменять вручную с помощью соот­ветствующих переключателей на панели управления принтера. Сигнал Se­lect Input, передаваемый по линии 17 или 36, устанавливает принтер в режим готовности к работе (On-line), например, после устранения какой-либо ошибки в его работе.

Error

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

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

При инициализации (линия Init – 16 или 31) принтер переходит в свое ис­ходное состояние. Для матричного принтера это означает, что его печатающая головка возвращается в исходное состояние. Кроме того, очищается буфер прин­тера, т. е. данные, обрабатываемые принтером, выгружаются из его памяти.

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

 Последовательный порт

Последовательный порт используется для подключения большинства периферийных устройств, таких как плоттер, прин­тер, мышь, внешний модем, программатор ПЗУ и т.д. До на­стоящего времени для последовательной связи IBM PC-совмес­тимых компьютеров исполь­зуются адаптеры с интерфейсом RS-232С. Описание этого интерфейса было опубликовано Американской промышленной ассоциаци­ей еще в 1969 году. Европейским аналогом RS-232 являются два стандарта, разработанных Международным союзом электросвя­зи (International Telecommunications Union, ITU): V.24 (механи­ческие характеристики) и V.28 (электрические характеристики). Хотя первоначально RS-232 был предназначен для связи цен­тральной машины с терминалами, его простота и богатые воз­можности обеспечили ему более широкое применение. В совре­менном IBM PC-совместимом компьютере, работающем под MS-DOS, может использоваться до четырех после­довательных пор­тов, имеющих логи­ческие имена соот­ветственно СОМ1, COM2, COM3 и COM4.

Выбор устройств, подключаемых к последовательному порту, значи­тельно шире, чем к параллельному, поэтому большинство PC одновременно оборудовано двумя ин­терфейсными разъемами для последовательной передачи данных. Обычно они различаются по внешнему виду. Разъемы последовательного интерфейса на PC имеют 9 и 25 контактов.

Главный элемент последовательного интерфейса – микросхема 8250 для ста­рых и 16450 UART (Universal Asynchron Receiver Transmitter) для новых плат контроллеров. Контроллер на базе чипа 8250 обеспечивает максимальную ско­рость передачи данных 9600 бод, а чип 16450 – 115200 бод.

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

Адреса и прерывания последовательных портов

Конфигурация

Последовательный интерфейс связывает два устройства. Для того чтобы «со­беседники» при обмене данными не перебивали друг друга, они должны иметь единый протокол приема-передачи, которым определяется последовательность обмена данными.

Скорость передачи данных

Номинальная скорость передачи – это скорость передачи данных, определяе­мая количеством элементов двоичной информации, передаваемых за 1 се­кунду.

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

Скорость передачи измеряется в бодах. Иногда вместо бод употребляют обозначение bps (bit per second) или бит/с.

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

Стартовый бит, стоп-бит, биты данных

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

Бит контроля четности

Для идентификации и распознавания ошибок при после­довательной передаче в состав байта данных дополнительно включают бит контроля четности (Parity bit). Существует несколько различных вариантов использования бита контроля четности:

·   бит контроля четности не посылается (No Parity),

·   бит контроля четности четный (Even Parity);

·   бит контроля четности нечетный (Odd Parity).

Значение бита контроля четности определяется бинарной суммой всех пере­даваемых битов данных.

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

Обычно на практике параметры указывают только в краткой формулировке. Например, запись 8Е1 обозначает протокол обмена данными с числом бит 8, битов контроля четности четный и один стоп-бит. Запись 7N2 указывает на 7 бит данных, без контроля четности и два стоп-бита.

Общие сведения об интерфейсе RS–232C

Интерфейс RS–232C является наиболее широко распростра­ненной стандартной последовательной связью между микрокомпью­терами и периферийными устройствами. Интерфейс, определенный стандартом Ассоциации электронной промышленности (EIA), под­разумевает наличие оборудования двух видов: терминального DTE и связного DCE.

Сигналы интерфейса RS–232C подразделяются на следующие классы:

·   Последовательные данные RXD - принимаемые данные (входные последовательные данные);TXD - передаваемые данные (выходные последовательные данные)). Интерфейс RS–232C обеспечивает два независимых последовательных канала данных: первичный (главный) и вторичный (вспомогательный). Оба канала могут работать в дуплексном режиме, т.е. одновременно осуществляют передачу и прием ин­формации.

·   Управляющие сигналы квитирования (CTS - сброс передачи. На этой линии периферийное устройство формирует сигнал низкого уровня, когда оно готово воспринимать информацию от процессора; RTS - запрос передачи. На эту линию микропроцессорная система выдает сигнал низкого уровня, когда она намерена передавать данные в пери­ферийное устройство). Сигналы квитирования – средство, с помощью которого обмен сигналами позволяет DTE начать диалог с DCE до фактической передачи или приема данных по последовательной линии связи.

 

 

9-4

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

На практике вспомогательный канал RS–232C применяется редко, и в асинхронном режиме вместо 25 линий используется 9 линий.

Виды сигналов

В большинстве схем, содержащих интерфейс RS–232C, данные передаются асинхронно, т.е. в виде последовательности пакета данных. Каждый пакет содержит один символ кода ASCII, причем информация в пакете достаточна для его декодирования без отдельного сигнала синхронизации.

Символы кода ASCII представляются семью битами, например буква А имеет код 1000001. Чтобы передать букву А по интерфейсу RS–232C, необходимо ввести дополнительные биты, обозначающие начало иконец пакета. Кроме того, желательно добавить лишний бит для простого контроля ошибок по паритету (четности).

Наиболее широко распространен формат, включающий в себя один стартовый бит, один бит паритета и два стоповых бита. Начало пакета данных всегда отмечает низкий уровень стартового бита. После него следует 7 бит данных символа кода ASCII. Бит четности содержит 1 или 0 так, чтобы общее число единиц в 8–битной группе было нечетным. Последним передаются два стоповых бита, представленных высоким уровнем напряжения. Эквивалентный ТТЛ–сигнал при передаче буквы А показан на рис. 10.

Таким образом, полное асинхронно передаваемое слово состоит из 11 бит (фактически данные содержат только 7 бит) и записывается в виде 01000001011.

Используемые в интерфейсе RS–232C уровни сигналов отличаются от уровней сигналов, действующих в компьютере. Логический 0 (SPACE) представляется положительным напряжением в диапазоне от +3 до +25 В, логическая 1 (MARK) – отрицательным напряжением в диапазоне от –3 до –25 В. На рис. 11 показан сигнал в том виде, в каком он существует на линиях TXD и RXD интерфейса RS–232C.

Рис. 11. Вид кода буквы А на сигнальных линиях TXD и RXD

 Развитие параллельного и последовательного интерфейсов

Начиная с середины 80-х XX века было очевидно, что после­довательный (RS-232С) и параллельный (Centronics) порты не обеспечивают достаточной скорости для подключения периферии, за исключением простейших устройств типа мыши, принтера и прочих не чувствительных к полосе пропускания устройств. Развитие парал­лельного интерфейса привело к принятию стандарта IEEE-1284 (ECP/EPP).

Усовершенствованный параллельный порт (EPP-Enhanced Parallel Port) разработан в 1991 году. Этот быстродействующий двунаправленный порт имеет пропускную способность в десять раз выше, чем стандартный параллельный порт. Разработан специально для подключения к параллельному порту таких устройств, как сетевые адаптеры, дисководы и накопители на магнитных лентах. Скорость передачи данных 1 – 2 Мбайт/с.

Порт с расширенными возможностями (ECP-Enhanced Capabilities Port) разработан в 1992 году. Порт обладает повышенной произво­дительностью, как и EPP. Основная цель разработки этого порта – поддержка недорогого подключения к компьютеру высокоскоростных принтеров, а не широкого спектра устройств, как в случае EPP порта. Существенным отличием ECP от EPP является использование канала прямого доступа к памяти. Это может вызывать конфликты с другим оборудованием, которое тоже использует DMA.

В современных компьютерах используются микросхемы для параллельных портов, которые могут работать как в режиме EPP, так и ECP.

Дальнейшее развитие параллельного интерфейса привело к появлению спецификации периферийной шины USB (Universal Serial Bus). Она разработана для подключения компьютерной периферии вне корпуса машины по стандарту plug-and-play, в результате отпадает необходимость в установке дополнительных плат в слоты расширения и в переконфигурировании системы. Персональные компьютеры, имеющие шину USB, позволяют подключать периферийные устройства и осуществляют их автоматическое конфигурирование, как только устройство физически будет присоединено к машине. При этом нет необходимости перезагружать или выключать компьютер, а также запускать программы установки и конфигурирования. USB-кабель содержит четыре проводника: два – витая пара, питание 5 В и общий провод. Таким образом, устройства разделяют одну сигнальную линию. Для коррекции одиночных ошибок на линии используется циклический код CRC. Помимо общего канала шириной в 12 Мбит/с в USB имеется так называемый подканал шириной в 1,5 Мбит/с для медленных устройств, таких как клавиатура, мышь, джойстик, перо и т.д. Это позволяет

снизить стоимость медленных USB-портов в этих устройствах, поскольку более высокая скорость для них не нужна. Шина USB позволяет одновременно подключать последовательно до 127 устройств, или концентраторов (т.е. устройств, через которые подключается еще несколько). Этими устройствами могут быть: телефоны, модемы, клавиатуры, мыши, устройства чтения CD-ROM, джойстики, ленточные и дисковые накопители, сканеры и принтеры. USB версии 2.0 обладает пропускной способностью до 480 Мбит/с.

Поддержка USB впервые была встроена в операционную систему в конце 1996 года (операционная система Windows 95 OSR 2.1). Включение поддержки USB в состав аппаратного обеспечения и операционной системы при режиме максимального благопри­ятствования производителям привело к огромному росту количества USB-устройств на рынке.

 ПДП – прямой доступ к памяти

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

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

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

Между тем, потенциально возможная скорость обмена данными при вводе-выводе определяется пропускной способностью памяти. Для быстрого ввода-вывода блоков данных используется прямой доступ к памяти (DMA – Direct Memory Access).

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

При этом МП освобождается от участия в обмене данными. ОЗУ связывается с МП и с аппаратурой, руководящей обменом данных, разными шинами. Обмен данными полностью управляется с помощью аппаратных средств. Инициатором обмена данными является ПУ, которое посылает запрос об обмене данными на флажок запроса ПДП. Флажок запроса активизирует блок ПДП. Блок ПДП посылает в память сигнал чтения или записи и определяет ячейку ОЗУ, с которой начнется обмен данными. Блок ПДП посылает эти сигналы, после того, как получит от МП сигнал подтверждения. Регистр данных передает данные из ОЗУ в ПУ и из ПУ в ОЗУ. При ПДП процессор освобождается от управления операциями ввода - вывода и может параллельно выполнять основную программу. ПДП обеспечивает более высокое быстродействие и более высокую производительность работы ЭВМ.

Прямым доступом к памяти управляет контроллер ПДП, который выполняет следующие функции:

1. Управление инициируемой процессором или ПУ передачей данных между ОП и ПУ.

2. Задание размера блока данных, который подлежит передаче, и области памяти, используемой при передаче.

3. Формирование адресов ячеек ОП, участвующих в передаче.

4. Подсчет числа переданных единиц данных (байт или слов) и определение момента завершения операции ввода-вывода.

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

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

В компьютерах, совместимых с IBM PC и PC/XT, для органи­зации прямого доступа в память используется одна 4-канальная микросхема 8237, канал 0 которой предназначен для реге­нерации динамической памяти. Каналы 2 и 3 предназначены для управления вы­сокоскоростной передачей данных между дисководами гибких дисков, винчестером и оперативной памятью соответственно. Только канал 1 доступен для дополнительного оборудова­ния.

IBM РС/АТ – совместимые компьютеры имеют уже 7 каналов прямого доступа к памяти. В первых компьютерах это достига­лось каскадным включением двух микросхем 8237, как и в слу­чае контроллеров прерываний. Поскольку прямой обмен данными между оперативной памятью и периферийными устройства­ми в IBM PC-совместимых компьютерах имеет некоторые суще­ственные ограничения (в том числе и по скорости), то в PC/AT задействован только канал 2 – для обмена с приводом флоппи-диска. Заметим, что для первых четырех каналов ПДП

    (0–3) пе­редача данных осуществляется побайтно, а для каналов 5–7 – 16-разрядными словами.

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

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

 

 

 

 

 

 

 

 

 

 

 

12-1                                Периферийные устройства ввода-вывода

 Классификация

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

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

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

• устройства вывода на промежуточный или машинный носитель (магнитные носители);

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

• устройства вывода информации во внешнюю среду (ЦАП, вывод на линию связи).

Наиболее распространенными  устройствами вывода являются: принтеры; графопостроители; стриммеры.

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

Принтеры

Принтер – устройство для отображения информации на бумаге.

Первичное разделение принтеров на классы обычно произ­водят по механизму нанесения отпечатков.

Матричные принтеры

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

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

Достоинства матричных принтеров:•         низкая стоимость отпечатка (в силу дешевизны крася­щей ленты);

   нетребовательность к бумаге.

Недостатки:•         отсутствие цветности (иногда применяют двухцветные ленты); •          шумность;

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

Лазерные принтеры

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

Достоинства лазерных принтеров:•           высокая скорость печати;•       большой ресурс работы;

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

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

   громоздкость;• большую электризацию воздуха.

Принтеры на светодиодах

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

К недостаткам относится трудность реализации цвета.

Принтеры разработаны сравнительно недавно японской компанией Oki.

Струйные принтеры

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

Достоинства:•       бесшумность;• компактность;• высокая цветность.Недостатки:•          высокая стоимость чернил;

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

Сублимационные принтеры

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

Изображение наносится на бумагу за счет испарения (суб­лимации) красителя со специальной пленки.

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

Достоинством принтеров является высокое качество, осо­бенно на светлых участках изображения.

К недостаткам следует отнести:•  невозможность печатать текстовые докуменограниченых размеров бумаги и ее дороговизны);• высокую цену принтера (за счет сложности конструк­ции) и расходных материалов.

Особенности офисных принтеров

Другое деление принтеров — домашние (home) и офисные (bisness), причем эту грань проводят и сами производители.

Офисные принтеры имеют следующие особенности:•      Высокая скорость печати. Она пропорционально по­вышает стоимость принтера. Скорость обычно состав­ляет 8, 12, 16 стр/мин, поэтому для офиса обычно вы­бирают лазерные принтеры – тяжелые, громоздкие и дорогие. Типичными пред­ставителями таких принтеров являются надежные и широко известные принтеры серии LazerJet фирмы Hewlett-Packard (HP).•       Сетевые возможности. Принтер обычно подключается к файл-серверу или даже к локальной сети как сетевое устройство.•    Увеличенный формат листа (A3 или даже А2), а также возможность печатать на конвер­тах.•          Несколько больших лотков для бумаги обеспечивают возможность, например, загружать каждый бумагой соответствующего размера.

 Графопостроитель

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

Поле для черчения у графопостроителей соответствует стандартам ISO (форматы А4-А0) или ANSI (форматы А-Е).

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

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

Модемы

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

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

Дуплексный режим передачи данных – режим, при котором передача данных осуществляется одновременно в обоих направлениях.

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

Одной из основных характеристик модема является скорость модуляции (modulation speed), которая определяет физическую скорость передачи данных без учета исправления ошибок и сжа­тия данных. Единицей измерения этого параметра является ко­личество бит в секунду (бит/с). Скорость модуляции не следует путать с пропускной способностью канала (throughput), которая может быть меньше или больше скорости модуляции в зависи­мости от качества линии, применения коррекции ошибок и сжа­тия передаваемых данных. Поскольку скорость передачи данных может измеряться как в битах в секунду, так и в бодах, то следует отметить, что это, — единицы разные. Бод определяет число изменений (модуляций) сигнала в се­кунду. Однако в зависимости от способа модуляции каждое из­менение сигнала может соответствовать не только одному, но и большему количеству бит.

MNP (Microsoft Network Protocols) - серия наиболее распространенных аппаратных протоколов, впервые реализованная на модемах фирмы Microsoft. Эти протоколы  обеспечивают  автоматическую коррекцию ошибок и компрессию передаваемых данных.

Режимы MNP-модемов

MNP-модем обеспечивает следующие режимы передачи данных:

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

• Режим прямой передачи.  Данный режим соответствует обычному модему,  не поддерживающему MNP-протокол. Буферизация данных не  производится  и аппаратная коррекция ошибок не выполняется.

• Режим с коррекцией ошибок и буферизацией.  Это стандартный режим работы при связи двух MNP-модемов. Если удаленный модем не поддерживает протокол MNP, связь не устанавливается.

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

Мышь

Мышь – манипулятор для ввода информации в компьютер.

 

12-3 Устройством ввода мыши являются находящиеся на ней клавиши. Большин­ство мышей имеют по две клавиши, а специальные модели имеют уже боль­ше трех клавиш. Мыши с одной клавишей применяются для компью­теров типа Apple.

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

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

Нормальное разрешение мыши лежит в диапазоне от 200 до 900 dpi. Мышь с разрешением более чем 1000 dpi позволяет очень точно вести и позициони­ровать курсор, при этом точность, естественно, зависит от выбранного разре­шения экрана монитора.

Мыши, подключаемые в последовательный порт (Serial Mouse)

Название Serial (последовательные) имеет отношение к виду и способу передачи данных. Информация о перемещении и состоянии клавиш мыши передается в ПК через последовательный порт. Для такой мыши нужен СОМ-порт и соответствующее прерывание (IRQ). Обычно это порт СОМ1 с прерыванием IRQ4 или порт COM2 с прерыванием IRQ3.

Мыши, подключаемые через порт PS/2

Мыши, подключаемые через специальный порт PS/2, пользуются в настоящее время наибольшей популярностью.

Мышь, использующая системную шину (Bus Mouse)

Bus Mouse — мышь, которая использует системную шину. По этой причине обычно в комплект ее поставки входит 8-разрядная карта расширения, кото­рая устанавливается в свободный слот и в тыльную часть которой подключа­ется мышь при помощи стандартного 9-контактного разъема. Большинство компьютеров типа laptop и notebook (а также модели ПК с корпусом ATX) имеют встроенные порты для Bus Mouse.

Оптическая мышь

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

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

Инфракрасные мыши

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

Преимущество свободного передвижения несколько снижается имеющимся при этом недостатком. Для безупречной передачи инфракрасного сигнала всегда должен быть установлен “зрительный” контакт между приемником и передатчиком.

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

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

Трэкболл

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

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

Существуют два основных отличия трэкболла от мыши.

   Трэкболл обладает стабильностью (неподвижностью) за счет тяжелого корпуса.

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

Специально для обладателей ПК типа notebook и laptop имеются встроенные или подключаемые трэкболлы.

 Джойстики

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

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

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

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

 Световое перо

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

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

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

Другая область применения светового пера — его совместное использование с дигитайзером. В этом случае све­товое перо выполняет “пишущую” функцию. Этот способ ввода информации поддерживается различным программным обеспечением. Например, програм­ма Windows for Pen Computing использует эту технику, для того чтобы превра­щать рукописный текст в цифровой код. Специальные приложения для диги­тайзеров, например Wacom, работают со световым пером для импортирования “нарисованных пером” рисунков и эскизов в формат векторной графики. Профессиональные световые перья обладают возможностью определять силу нажатия пера, толщину линии и т. д.

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

 Дигитайзеры

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

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

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

Графический планшет может иметь различные размеры: для профессиональной деятельности — форматы А1 или A3, для более простых работ — меньшие размеры.

 Цифровые камеры

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

Такая камера имеет оптику, аналогичную оптике обычного фотоаппа­рата. Правда, необходимость в фотопленке отсутствует, так как скани­руемое изображение принимает и преобразовывает в цифровую форму CCD-чип. CCD (Charge Coupled Device) - прибор с зарядовой связью (ПЗС), который преобразует оптический сигнал в электрический, при­чем считываемый с ПЗС аналоговый сигнал перекодируется при помо­щи аналого-цифрового преобразователя в цифровой и поэтому может непосредственно вводиться в ПК.

Для подобного ввода изображений имеются различные системы. Качество получаемого изображения определяет цену подобных устройств. Например, цветная цифровая камера CHINON ES-3000 входит в число наименее дорогих устройств и стоит порядка 1500 DM. Имея объем памяти 1 Мбайт, она позво­ляет снять пять кадров при разрешении 640х480 пикселов или 40 кадров при разрешении 320х240. Другие устройства, такие как Canon ION RC-560 или Kodak DCS 200, имеют более высокие параметры, однако и цены на них нахо­дятся совсем в другом диапазоне (около 15000 DM).

 Сканеры

Сканер – устройство для ввода информации с бумаги в компьютер.

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

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

12-3   нального сканирования графики следует применять качественный стационарный планшет­ный сканер, использовать профессиональное программное обеспечение, например программы обработки изображений Photostyler, PhotoShop и про­граммы оптического распознавания текста (OmniPage, Recognita, CuneiForm, FineReader и др.).

Черно-белые и цветные сканеры

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

Существует два метода передачи оттенков серого цвета.

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

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

Преобразование цветного оригинала в цифровой вид для ввода в ПК основа­но на аддитивном сложении цветов (модель RGB), т. е. любое цветное изо­бражение представляется в виде смешения трех цветов - красного (Red), зе­леного (Green) и синего (Blue).

Технически это реализуется следующим образом.

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

   В процессе сканирования цветной оригинал освещается белым светом, отраженный свет попадает на CCD-матрицу через систему специальных фильтров, которые разлагают белый свет на три компонента: красный, зеленый и синий. CCD-матрица имеет три линейки фотоэлементов, каж­дая из которых воспринимает только “свой цвет”. Далее происходит пред­варительная обработка информации для ввода в ПК. Подобная техноло­гия реализуется в сканерах таких фирм, как Hewlett-Packard, Richon и др.

При сканировании цветного оригинала следует помнить о том, что качество сканиро­вания пропорционально объему информации, вводимой в ПК. Сканирование с разрешением 800 dpi и 24-битной глубиной цвета (TrueColor) потребует несколько мегабайт свободного места на винчестере.

Ручной сканер

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

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

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

   Обычно ручные сканеры оснащены LED-индикатором, который сигна­лизирует светом, если вы перемещаете сканер слишком быстро.

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

Следующий недостаток ручного сканирования заключается в ширине полосы сканирования. Почти все ручные сканеры могут сканировать оригиналы ши­риной 100—105 мм. Для маленьких фотографий или рисунков этого может быть достаточно. Однако уже при сканировании текста, который обычно име­ет формат А4 (с шириной 210 мм), возникают проблемы, связанные с тем, что ручной сканер за один проход может считать только половину документа.

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

Обычно ручной сканер работает с разрешением 300—400 dpi. Технически это означает, что при разрешении 400 dpi должно иметься 400 CCD-сенсоров.

Не следует заблуждаться: ручной сканер с огромным разрешением 800 dpi не дает настоящие 800 dpi. При помощи методов, называемых интерполяцией, между фактически сканированными точками вставляются дополнительные точки, цвета или градации серого цвета, которые рассчитываются исходя из значений соседних точек. Например, если в результате сканирования один из пикселов имеет значение уровня серого 36, а соседний с ним 88, то предпола­гается, что значение уровня серого цвета для промежуточного пиксела могло бы быть равным 62. Таким образом, если вставить все оценочные значения пикселов в файл отсканированного изображения, то разрешающая способ­ность сканера как бы удвоится, т.е. вместо “аппаратных” 400 dpi станет равной “программной” 800 dpi.

Имеет ли вообще смысл полученное подобным образом высокое разрешение? Мы позволим себе в этом усомниться, ведь сканированное изображение мож­но обработать и позднее.

Сканирование само по себе является искусством, а, кроме того, определяется еще многими факторами: качеством оригинала, разрешением, количеством градаций серого цвета, количеством цветов и т. д.

Барабанные сканеры

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

Листовые сканеры

Стремление к миниатюризации аппаратных средств в области ПК привело к появлению на рынке листовых сканеров, являющихся “младшими братьями” барабанных сканеров.

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

Ширина сканируемого оригинала составляет, как правило, ширину листа фор­мата А4, а длина неограниченна и определяется мощностью ПК (CPU, RAM, объем винчестера).

В соответствии с технической реализацией процесса сканирования габарит­ные размеры листовых сканеров невелики: высота и длина составляют 10—15 см, а ширина несколько превышает формат А4.

В некоторых моделях листовых сканеров предусмотрена возможность скани­рования путем перемещения сканера по поверхности вводимого изображения. Подобные сканеры оборудованы колесиками, которые вращаются с помощью электродвигателя и заставляют сканер медленно “ползти” по оригиналу.

Планшетные сканеры

Планшетный сканер вполне приемлем для профессионального сканирования. В нем устранены основные недостатки ручного сканера.

Оригинал располагается в сканере на стеклянном листе, под которым головка чтения с CCD-сенсорами сканирует построчно документ с рав­номерной скоростью.

Обычно сканер может обрабатывать документы форматов до А4 включи­тельно (имеются модели, позволяющие сканировать и оригиналы форма­та A3 и более).

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

 Контроллеры внешних устройств

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

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

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

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

Особую важность приобретает выполнение функций управления и контроля ПУ. Эти функции возлагают на общие для групп периферийного оборудования унифицированные устройства  -  контроллеры.

Рассмотрим функции, выполняемые контроллерами ПУ, на примере контроллера НЖМД с широко распространенным интерфейсом IDE. Отличительная особенность этого интерфейса - реализация функций контроллера в накопителе.  При этом плата, которая является промежуточной между системной шиной ПК и НЖМД, представляет  собой довольно простое устройство,  содержащее дешифратор базовых адресов контроллера и  формирователи  сигналов интерфейса.

Контроллер жесткого диска позволяет:

   поддерживать формат данных на диске, совместимый с форматом данных ЭВМ;

   поддерживать не только стандартные, но также и задаваемые пользователем типы НЖМД;

   генерировать прерывание IRQ14;

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

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

   обнаруживать  ошибки в считываемой информации и корректировать пакеты ошибок;

   управлять  последовательностью размещения секторов на дорожке (чередованием);

   производить обмен данными с ЦП и ОЗУ в режиме программного ввода-вывода;

   производить внутреннюю диагностику аппаратуры адаптера.

Получив команды  и  данные  от ЦП через программно-доступные регистры, адаптер НЖМД начинает выполнять  операцию.  Передача  в ОЗУ компьютера считываемых данных, а также прием из ОЗУ записываемых данных происходят через буферную память адаптера НЖМД, необходимую для согласования временных параметров обмена данными между НЖМД и системной шиной,  а также для коррекции информации (при записи информации  на диск формируется циклический избыточный код контроля ошибок, который приписывается в конец каждого поля идентификатора сектора и каждого поля данных).

Рассмотрим состав и назначение регистров контроллера НЖМД.

Регистр данных 1F0h используется при выполнении операции чтения или записи сектора в программном  режиме  ввода-вывода.  Этот регистр недоступен,  пока не начнется операция чтения или записи.

Регистр ошибок 1F1h доступен только на чтение. Он определяет состояние контроллера после выполнения операции. Состояние этого регистра действительно в следующих случаях:

   после  выполнения команды,  если установлен бит “Error” в регистре состояния;

   после выполнения команды “Диагностика” или после выполнения внутренней диагностики контроллера по системному сбросу.

13.15                       Необходимость создания параллельных систем

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

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

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

                                                         Многомашинные и многопроцессорные ВС

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

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

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

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

Последовательная обработка – действия по обработке данных, которые осуществляются в порядке очередности их поступления.

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

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

Многомашинные и многопроцессорные ВС

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

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

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

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

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

Примером реализации МПС из стандартно выпускаемых процессоров Pentium является плата, построенная на чипсете фирмы INTEL PR440FX (второе название Providence) и операционной системы Windows NT (New Technology).

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

• общая шина;

• регулярные связи между модулями;

• коммутатор межмодульных связей.

Принципы организации МПС и ММС существенно отличаются в зависимости от их предназначения. Поэтому целесообразно различать:

1. ВС, ориентированные на достижение сверхвысокой производительности.

2. ВС, ориентированные на повышение надежности и живучести.

 

 

14                            Классификация систем параллельной обработки данных

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

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

Параллельные ЭВМ часто подразделяются по классификации Флинна на машины типа SIMD и MIMD.

Машины типа SIMD (Single Instruction Multiple Data) – ЭВМ с одним потоком команд при множественном потоке данных.

Машины типа MIMD (Multiple Instruction Multiple Data) – ЭВМ с множественным потоком команд при множественном потоке данных.

Как и любая другая, приведенная выше классификация несовершенна: существуют машины прямо в нее не попадающие, имеются также важные признаки, которые в этой классификации не учтены. В частности, к машинам типа SIMD часто относят векторные процессоры, хотя их высокая производительность зависит от другой формы параллелизма – конвейерной организации машины. Многопроцессорные векторные системы типа Cray Y–MP состоят из нескольких векторных процессоров и поэтому могут быть названы MSIMD (Multiple SIMD).

Можно выделить четыре основных типа архитектуры систем параллельной обработки:

1. Конвейерная и векторная обработка.

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

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

2. Машины типа SIMD.

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

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

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

3. Машины типа MIMD.

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

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

4. Многопроцессорные машины с SIMD-процессорами.

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

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

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

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

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

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

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

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

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

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

16-1                                        СисТемная шина

                                                                                  Шины

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

Системная шина – основная интерфейсная система компьютера, обеспечивающая сопряжение и связь всех его устройств между собой.

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

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

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

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

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

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

Шина данных. Разрядность шины

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

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

Современные процессоры допускают внешнее подключение большего числа линий данных: процессор 80286 - 16 линий дан­ных, процессоры 80386 DX и 80486 DX - 32 линии, а процессор Pentium - 64 линии данных.

 Адресная шина. Разрядность шины

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

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

В отличие от шины данных шина адреса является одно­направленной.

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

максимальное число адресов = 2n,

где n - разрядность адресной шины.

Процессор 8088 имел 20 адрес­ных линий, что в соответствии с приведенной формулой обеспе­чивало адресацию памяти объемом:

220 =1 048 576 байт = 1024 Кбайт = 1 Мбайт.

Это тот самый предельный объем памяти, который все еще имеет силу в операционной системе DOS.

Совсем иная ситуация с процессором 80286. Он имеет 24 ад­ресных линии и поэтому в состоянии управлять памятью объемом:

224 = 16 777 216 байт =16 Мбайт.

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

Процессоры 80386, 80486 и Pentium имеют 32 адресных ли­нии, что обеспечивает адресацию свыше 4 млрд. ячеек памяти. На системной плате с такими процессорами должно быть 32 линии, обеспечивающие обмен адресами между центральным процессо­ром и всеми важными периферийными микросхемами.

 Шина управления

Линии шины управления на системной плате служат для управления различными компонен­тами ПК. По выполняемой ими функции их можно сравнить с переводной стрелкой на железнодорожных путях.

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

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

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

 Цикл шины

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

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

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

Системные и локальные шины

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

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

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

Магистраль – совокупность всех шин.

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

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

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

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

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

Локальной шиной называется шина, электрически выходящая непосредственно на контакты микропроцессора. Она обычно объединяет процессор, память, схемы буферизации для системной шины и ее контроллер, а также некоторые вспомогательные схемы. Типичными примерами локальных шин являются VL-Bus и PCI.

На современных компьютерах часто используется специальная магистраль обмена данными с процессором – локальная видеошина. AGP (Accelerated Graphics Port - ускоренный графический порт) – скоростная шина для связи с графической картой. Разработана Intel для высокоскорост­ной графики. Основное преимущество этой шины заключается в скорости.

16-2 Разработка шины связана с реализацией ряда дополнительных возможностей. Решение о выборе той или иной возможности зависит от целевых параметров стоимости и производительности. Такими возможностями являются:

·   раздельные линии адреса и данных;

·   более широкие (имеющие большую разрядность) шины данных;

·   режим групповых пересылок (пересылки нескольких слов)

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

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

Стандарты шин

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

Иногда широкое распространение и популярность конкретных машин становятся причиной того, что их шина ввода/вывода становится стандартом де-факто. Примерами таких шин могут служить PDP-11 Unibus и IBM PC/AT Bus. Иногда стандарты появляются также в результате определенных достижений по стандартизации в некотором секторе рынка устройств ввода/вывода. Интеллектуальный периферийный интерфейс (IPI - Intelligent Peripheral Interface) и Ethernet являются примерами стандартов, появившихся в результате кооперации производителей. Успех того или иного стандарта в значительной степени определяется его принятием такими организациями как ANSI (Национальный институт по стандартизации США) или IEEE (Институт инженеров по электротехнике и радиоэлектронике). Иногда стандарт шины может быть прямо разработан одним из комитетов по станда­ртизации: примером такого стандарта шины является FutureBus.

Одной из популярных шин персональных компьютеров была системная шина IBM PC/XT, обеспечивавшая передачу 8 бит данных. Кроме того, эта шина включала 20 адресных линий, которые ограничивали адресное пространство пределом в 1 Мбайт. Для работы с внешними устройствами в этой шине были предусмотрены также 4 линии аппаратных прерываний (IRQ) и 4 линии для требования внешними устройствами прямого доступа к памяти (DMA). Для подключения плат расширения использовались специальные 62-контактные разъемы. При этом системная шина и микропроцессор синхронизировались от одного тактового генератора с частотой 4.77 МГц. Таким образом, теоретическая скорость передачи данных могладостигать немногим более 4 Мбайт/с.

Системная шина ISA (Industry Standard Architecture) впервые стала применяться в персональных компьютерах IBM PC/AT на базе процессора 80286. Для этой системной шины характерно наличие второго, 36-контактного дополнительного разъема для соответствующих плат расширения. За счет этого количество адресных линий было увеличено на 4, а данных - на 8, что позволило передавать параллельно 16 бит данных и обращаться к 16 Мбайт системной памяти. Количество линий аппаратных прерываний в этой шине было увеличено до 15, а каналов прямого доступа - до 7. Системная шина ISA полностью включала в себя возможности старой 8-разрядной шины. Шина ISA позволяет синхронизировать работу процессора и шины с разными тактовыми частотами. Она работает на частоте 8 МГц, что соответствует максимальной скорости передачи 16 Мбайт/с.

С появлением процессоров 80386, 80486 и Pentium шина ISA стала узким местом персональных компьютеров на их основе. Новая системная шина EISA (Extended Industry Standard Architecture), появившаяся в конце 1988 года, обеспечивает адресное пространство в 4 Гбайта, 32-битовую передачу данных (в том числе и в режиме DMA), улучшенную систему прерываний и арбитраж DMA, автоматическую конфигурацию системы и плат расширения. Устройства шины ISA могут работать на шине EISA. Шина EISA предусматривает централизованное управление доступом к шине за счет наличия специального устройства - арбитра шины. Поэтому к ней может подключаться несколько главных устройств шины. Улучшенная система прерываний позволяет подключать к каждой физической линии запроса на прерывание несколько устройств, что снимает проблему количества линий прерывания. Шина EISA тактируется частотой около 8 МГц и имеет максимальную теоретическую скорость передачи данных 33 Мбайт/с.

Шина MCA также обеспечивает 32-разрядную передачу данных, тактируется частотой 10 МГц, имеет средства автоматического конфигурирования и арбитража запросов. В отличие от EISA она не совместима с шиной ISA и используется только в компьютерах компании IBM.

Шина VL-bus, предложенная ассоциацией VESA (Video Electronics Standard Association), предназначалась для увеличения быстродействия видеоадаптеров и контроллеров дисковых накопителей для того, чтобы они могли работать с тактовой частотой до 40 МГц. Шина VL-bus имеет 32 линии данных и позволяет подключать до трех периферийных устройств, в качестве которых наряду с видеоадаптерами и дисковыми контроллерами могут выступать и сетевые адаптеры. Максимальная скорость передачи данных по шине VL-bus может составлять около 130 Мбайт/с.

Шина PCI (Peripheral Component Interconnect) также, как и шина VL-bus, поддерживает 32-битовый канал передачи данных между процессором и периферийными устройствами, работает на тактовой частоте 33 МГц и имеет максимальную пропускную способность 120 Мбайт/с. При работе с процессорами 80486 шина PCI дает примерно те же показатели производительности, что и шина VL-bus. Однако, в отличие от последней, шина PCI является процессорно независимой (шина VL-bus подключается непосредственно к процессору 80486 и только к нему). Ee легко подключить к различным центральным процессорам. В их числе Pentium, Alpha, R4400 и PowerPC.

Основные возможности шины РСI:

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

·   в PC используется 32-разрядная шина РСI с частотой 33 МГц. Однако шина РСI процессорно независимая, и спецификация допускает ширину в 64 разряда и часто­ту 66 МГц. Это используется, например, в компьютерах компании Sun, в серверах на базе ЦП Alpha и Intel Xeon. Слот 32-разрядной шины РСI имеет 124 контакта (у 64-разрядной есть еще дополнительная секция);

·   вставляемые платы автоматически конфигурируются (при старте) по стандарту Plug and Play, т.е. не надо вручную устанавливать перемычки и переключатели, чтобы избе­жать конфликтов с другими устройствами;

·   для пользователя шина предоставляет слоты (не более пяти). Это так называемый сегмент PCI;

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

·   есть режим Bits mastering, даю­щий устройству возможность брать управление шиной на себя и тем самым разгрузить ЦП;

·   начиная с версии 2.2 (внедрена в 1999 г.) в шину вклю­чена линия, управляющая пробуждением компьютера от РСI-устройства, например, модема, сетевой карты.

PCI Special Interest Group в октябре 1999 г. объявила о выхо­де спецификации PCI-X 1.0. Спецификация представляет собой окончательный вариант преемницы PCI-шины. Основным достоинством новой шины является увеличенная до 133 МГц частота при сохра­нившейся обратной совместимости с PCI-картами.

Одной из популярных шин ввода-вывода является шина SCSI.

Под термином SCSI - Small Computer System Interface (Интерфейс малых вычислительных систем) обычно понимается набор стандартов, разработанных Национальным институтом стандартов США (ANSI) и определяющих механизм реализации магистрали передачи данных между системной шиной компьютера и периферийными устройствами.

 

Hosted by uCoz