4427

Вычислительные системы, сети и телекоммуникации

Книга

Информатика, кибернетика и программирование

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

Русский

2012-11-20

945.2 KB

152 чел.

Предисловие

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

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

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

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

      Учебное пособие подготовлено кандидатом технических наук,  доцентом, проректором  ОГИС по информационным технологиям С. Ф. Храпским.

                                                                                                                          Автор

Введение

Важнейшее направление современного мирового развития – интенсивное внедрение и широкое практическое использование информационных и коммуникационных технологий (ИКТ) во всех сферах жизнедеятельности человеческого общества. Аппаратной основой (платформой) ИКТ являются технические средства (ТС)  обработки и передачи информации. ТС обработки информации традиционно именуются средствами вычислительной техники. ТС передачи (транспортировки) информации носят название коммуникационных технических средств (или технических средств связи). ТС на профессиональном жаргоне называют Hardware (дословно с англ. – «твердое изделие») в отличие от сущности Software (дословно с англ. – «мягкое изделие»), представляющую собой программное обеспечение (ПО) ИКТ. В общем случае ТС не могут функционировать без ПО, а программное обеспечение реализует свои функции только посредством ТС. Поэтому фактическая реализация ИКТ предполагает совместное использование и взаимодействие ТС и ПО, что находит свое отражение в объединенном термине Hard&Soft (дословно с англ. – «твердое и мягкое»). Настоящее учебное пособие ограничено рамками рассмотрения именно технических средств (Hardware).

Главнейшим и наиболее значимым техническим средством ИКТ (а точнее – целой совокупностью технических средств) безусловно является так называемая вычислительная машина (ВМ). В словосочетании «вычислительная машина» термин «машина» сохраняет свое традиционное толкование как некоторое техническое устройство, облегчающее трудовую деятельность человека (в данном случае  – умственную деятельность) по обеспечению его жизненных потребностей. Прилагательное «вычислительная» уже давно переросло свое дословное толкование и к настоящему времени под обработкой информации понимают не только «вычисления» (в узком смысле этого слова), а гораздо более широкий спектр операций с (или над) информацией, таких как сбор, ввод, формализация, фильтрация, сортировка,  хранение, накопление, защита, преобразование, выдача информации (и этот список типовых операций может быть продолжен). Поэтому современная трактовка указанного прилагательного предполагает именно такое его широкое толкование. Существует несколько близких по определению формулировок понятия  «вычислительная машина». В дальнейшем изложении будем иметь ввиду наиболее общее определение этого понятия, представленное в специальном стандарте терминов и определений в области систем обработки информации (ГОСТ 15971-90): «вычислительная машина – это комплекс технических средств, создающих возможность автоматизации обработки информации по заданному алгоритму и получения результата в необходимой форме». Понятие алгоритма согласно формулировке стандарта ISO 2382/1-84 Международной организации стандартов (ISO – International Standards Organization) представляет собой «конечный набор предписаний, определяющий решение задачи посредством конечного количества операций». Алгоритм решения той или иной задачи на ВМ имеет вид некоторой программы последовательных действий (вычислений). В соответствии с тем же стандартом ISO 2382/1-84, программа для ВМ – это «упорядоченная последовательность команд, подлежащая обработке». В результате реализации программы на ВМ порождается вычислительный процесс. Синонимом русскоязычного термина «вычислительная машина» является распространенный иноязычный термин «компьютер» (от «computer» – вычислитель). В утратившей в последнее время популярность  аббревиатуре «ЭВМ» (электронная вычислительная машина) подчеркивался факт построения основных функциональных устройств ВМ на базе электронных компонентов, что для современных машин очевидно.

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

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

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

 

  1.  Общие  сведения  о структурной организации, классификации, хронологии разработки

и основных характеристиках вычислительных машин и систем

1.1. Теоретические и технические предпосылки разработки электронных вычислительных устройств

      Предшественниками вычислительных машин были механические и электромеханические счетные устройства. Одним из первых прототипов механической счетной машины была суммирующая машина, сконструированная знаменитым французским ученым Блезом Паскалем в 1642 году. В этой машине, состоящей из движущихся дисков с прорезями, при суммировании чисел использовалась десятичная система исчисления. Известны и более ранние описания и чертежи подобных суммирующих машин.  В 1673 году выдающийся немецкий математик и философ Готфрид Лейбниц усовершенствовал машину Паскаля, что позволило перемножать  и делить числа. Существенным достижением стала разработка петербургским инженером Вильгодтом Однером в 1874 году так называемого механического «арифмометра», который мог производить четыре основных арифметических действия. Конструкция «арифмометров» неоднократно совершенствовалась, и эта механическая счетная машина достаточно эффективно использовалась для широкого круга практических расчетов вплоть до 70-х годов XX века.

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

Практическая реализация и дальнейшее развитие идей Бэббиджа были осуществлены американским изобретателем Германом Холлеритом. В 1890 году им было сконструировано электрическое перфокарточное устройство для решения статистических задач. На перфокартах кроме инструкций хранились также данные. Вычислительная машина Холлерита была для своего времени весьма производительным устройством обработки информации. В 1896 году ее автор основал корпорацию по производству  подобных электромеханических вычислительных устройств, которая после ряда преобразований превратилась в 1924 году во всемирно известную и процветающую до сих пор корпорацию по производству компьютеров IBM (International Business Machines).

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

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

      Основополагающей  теоретической предпосылкой для создания вычислительных машин в их современном представлении стала работа английского математика Алана Тьюринга, который в 1936 году заложил основы теории алгоритмов. Публикация Тьюринга стимулировала возникновение абстрактной теории  автоматов и во многом определила ее особенности. В своей работе Тьюринг описал абстрактную вычислительную машину, которая получила название машины Тьюринга. Машина Тьюринга представляет собой автоматическое устройство, способное находится в конечном числе внутренних состояний и снабженное бесконечной внешней памятью – лентой.  Среди состояний выделяются два: начальное и конечное. Лента разделена на  клетки. В каждую клетку может быть записана  любая из букв некоторого алфавита. В каждый момент времени машина Тьюринга находится в одном из своих состояний и, рассматривая одну из клеток ленты, воспринимает записанный в ней символ. В неконечном состоянии машина Тьюринга совершает шаг, который определяется ее текущим состоянием и символом на ленте, воспринимаемым  в данный момент. Перечисление всех возможных шагов машины Тьюринга  называется программой данной машины. Конфигурация машины Тьюринга определяется конкретным заполнением клеток ленты символами и внутренним состоянием, в котором машина находится. Если зафиксировать какую-либо неконечную конфигурацию машины в качестве исходной, то работа машины будет заключаться в последовательном преобразовании исходной конфигурации в соответствии с программой машины до тех пор, пока не будет достигнуто конечное состояние. Хотя Тьюринг не преследовал цели изобретения вычислительной машины, описанные им абстрактные принципы определили ряд особенностей конструктивного исполнения и функционирования современных  вычислительных машин. Например, бесконечная лента Тьюринга является явным аналогом оперативной памяти вычислительной машины.

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

       В 1940 году  американские инженеры Дж. Атанасов и К. Берри разработали модель полностью электронного вычислительного устройства, в математическую основу функционирования которого были заложены двоичная система исчисления Готфрида Лейбница и символическая логика английского математика XIX века  Джорджа Буля (так называемая «Булева алгебра»). Атанасов и Берри применили эти концепции для электронных устройств, в качестве памяти была впервые использована модель Тьюринга.

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

Чаще всего годом появления первой электронной вычислительной машины считается 1946 год, когда американцами Джоном Мочли и Преспером  Эккертом была сконструирована цифровая машина ENIAC (Electronic Numeral Integrator and Computer – «электронный цифровой сумматор и вычислитель), работающая на электронных вакуумных лампах. Эта машина во многом была прообразом современных универсальных вычислительных машин.

Огромный вклад в теорию и практику создания ВМ на начальном этапе их развития внес выдающийся американский математик Джон фон Нейман, участвовавший в разработке ENIAC и опубликовавший в 1945 году отчет, в котором были изложены основные принципы построения ВМ, ставшие классическими. Совокупность знаменитых «принципов фон Неймана» породило классическую архитектуру ВМ.  В нашей стране в 1947–1948 годах советским ученым С. А. Лебедевым независимо от фон Неймана были сформулированы более детальные и полные принципы построения электронных цифровых вычислительных машин, которые были применены при создании первых отечественных разработок ВМ (см. подраздел 1.3). Однако в силу засекреченности проводимых в СССР в то время работ, связанных с оборонной тематикой, соответствующих публикаций в открытой печати не последовало.

1.2. Структурная организация

и классификация вычислительных машин и систем

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

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

      Согласно принципу двоичного кодирования, вся информация (как  данные,  так  и  команды)  кодируются двоичными цифрами 0 и 1. Каждый тип информации представляется двоичной последовательностью и имеет свой формат. Последовательность битов в формате, имеющая определенный смысл, называется полем. В числовой информации обычно выделяют поле знака и поле значащих разрядов. В формате команды можно выделить поле кода операции  и поле адресов (адресную часть). Код операции представляет собой указание, какая операция должна быть выполнена, и задается с помощью двоичной комбинации. Вид адресной части и число составляющих ее адресов зависят от типа команды: в командах преобразования данных адресная часть содержит адреса объектов обработки (операндов) и результата; в командах изменения порядка вычислений – адрес следующей команды программы; в командах ввода/вывода – номер устройства ввода/вывода. Адресная часть также представляется двоичной последовательностью.

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

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

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

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

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

      Основы построения ВМ, разработанные Сергеем Алексеевичем  Лебедевым, заключаются в следующем:

      1) в состав ВМ должны входить устройства арифметики, памяти, ввода-вывода информации, управления;

      2) программа вычислений кодируется и хранится в памяти подобно числам;

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

      4) вычисления должны осуществляться автоматически на основе хранимой в памяти программы и операций над командами;

      5) помимо арифметических операций вводятся также логические – сравнения, условного и безусловного перехода, конъюнкции, дизъюнкции, отрицания;

      6) память строится по иерархическому принципу.   

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

Рис. 1.1. Структурная схема вычислительной  машины классической

                                                 архитектуры:

                                       информация,                   сигналы управления

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

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

      Так как УУ и АЛУ тесно взаимосвязаны, то их обычно рассматривают как единое устройство, называемое центральным процессором (ЦП) (CPU Central Processing Unit, «центральное процессорное устройство») или просто процессором. Помимо УУ и АЛУ в процессор входит также набор регистров общего назначения (РОН), служащих для промежуточного хранения информации в процессе ее обработки (на рис.1.1 не показаны).

      Задачей запоминающего устройства  является хранение программ и данных. ЗУ подразделяются на два класса –  основное («первичное» или «внутреннее») ЗУ (часто называемое основной памятью) и внешнее («вторичное» или «дополнительное») ЗУ (ВЗУ или внешняя память). Команды и данные  записываются в память и считываются из памяти под управлением процессора. Чтобы программа могла выполняться, команды и данные должны располагаться в основной памяти, организованной таким образом, что каждое двоичное слово хранится в отдельной ячейке памяти, идентифицируемой адресом. Основная память современных ВМ обычно строится на базе электронных полупроводниковых запоминающих устройств, обеспечивающих как считывание, так и запись информации. Такие устройства «энергозависимы» (то есть хранимая информация теряется при отключении электропитания) и их называют оперативными запоминающими устройствами (ОЗУ). Если необходимо, чтобы часть основной памяти была энергонезависимой, в состав основной памяти включают так называемые «постоянные» запоминающие устройства (ПЗУ), также обеспечивающие произвольный доступ, но хранящаяся в ПЗУ информация в штатном режиме  работы ВМ может только считываться (но не записываться). Размер ячейки основной памяти обычно принимается равным 8 двоичным разрядам (битам) – одному байту. Для хранения больших чисел используются 2, 4 или 8 байтов, размещаемых в ячейках с последовательными адресами. Количество битов в каждом слове обычно называют длиной машинного слова. Быстродействие основной памяти определяется скоростью работы электронных схем.

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

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

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

Рис. 1.2. Структурная схема вычислительной  машины на базе

общей  шины

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

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

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

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

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

      Рис. 1.3. Структурная схема многопроцессорной вычислительной

                                   машины с общей памятью

       

       Рис. 1.4. Структурная схема многомашинной вычислительной  системы

 

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

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

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

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

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

      Важнейшей функциональной характеристикой вычислительных машин и систем является их  производительность. Для оценки этой характеристики обычно применяется такая единица измерения производительности, как количество операций над числами с плавающей точкой в секунду – Flops (Floating point operations per second). Различают пиковую и реальную производительность вычислительных машин и систем. Пиковая производительность – это теоретическое значение, пропорциональное произведению тактовой частоты процессора на максимальное число операций, выполняемых за один такт (для однопроцессорных машин) или произведению пиковой производительности процессора на число процессоров в машине или системе (для многопроцессорных машин и систем). Пиковые значения производительности являются предельно оцениваемыми показателями и на практике они не достижимы. Реальная производительность вычислительных машин и систем определяется по результатам решения тестовых или реальных задач. Например, оценка производительности машин и  систем при включении их в мировой рейтинг Тор500 производится по результатам теста UNPACK – реальной академической задачи на решение системы линейных уравнений.

      Производительность вычислительных машин и систем, выраженная в единицах Flops (чаще всего в их производных: MFlops – миллион операций с плавающей точкой в секунду, GFlops – миллиард операций с плавающей точкой в секунду, TFlops – триллион операций с плавающей точкой в секунду), служит основным классификационным показателем, по которому вычислительные машины и системы ранжируются от скромных персональных компьютеров с производительностью, измеряемой единицами  MFlops, до самого мощного по состоянию на 2005 год суперкомпьютера с реальная производительностью, превышающей 100 TFlops. Производительность ВМ и ВС определяет области их практического использования (от индивидуальных пользователей с их локальными относительно несложными задачами до крупных организаций с трудоемкими научно-техническими и экономическими задачами).

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

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

      – высокая производительность;

      – разнообразие форм обрабатываемых данных (двоичных, десятичных, символьных) при большом диапазоне их изменения  и высокой точности их представления;

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

      – большая емкость оперативной памяти;

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

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

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

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

1.3. Хронология разработки и эволюции

вычислительных машин и систем

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

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

К ВМ первого поколения относятся несколько американских разработок, среди которых наиболее значимые – уже упоминавшийся ENIAC, а также универсальные вычислительные машины EDVAC (Electronic Discret Variable Automatic Computer  – «электронный автоматический компьютер с дискретными переменными») (1950 г.) и UNIVAC (Universal Automatic Computer  – «универсальный автоматический компьютер») (1952 г.).

      С 1948 года разработка вычислительных машин активно велась и в СССР под руководством  С. А. Лебедева в Институте электротехники Академии наук Украины. В 1951 году была введена в эксплуатацию МЭСМ (Малая Электронная Счетная Машина). МЭСМ стала не только первой универсальной ламповой вычислительной машиной в СССР, но и Европе. В 1952 году была построена еще одна отечественная ВМ – М-1 (И. С. Брук и др.). В 1953 году вступила в эксплуатацию самая производительная в Европе и одна из лучших в то время в мире ВМ  БЭСМ (Большая Электронная Счетная Машина), разработанная  под руководством академиков С. А. Лебедева, М. А. Лаврентьева, М. В. Келдыша в Институте точной механике и вычислительной техники Академии наук СССР. Примерно в то же время были выпущены средние по производительности ламповые ВМ  «Стрела» (Ю. А. Базилевский, Б. И. Рамеев) и М-2 (И. С. Брук и др.).  

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

Первой ВМ, выполненной полностью на полупроводниковых элементах, считается американская модель TRADIC (TRAnsistor   Digital Computer – «транзисторный цифровой компьютер»). Следует отметить также другие значимые разработки полупроводниковых ВМ второго поколения: TX-0, IBM 1620, 1790, 7030.

Среди отечественных разработок того периода времени прежде всего следует отметить рекордные серии машин БЭСМ-2, БЭСМ-3, БЭСМ-4 и М-20, М-40, а также серии машин «Минск», «Урал», «Днепр» и др.

На замену примитивному машинному языку, применявшемуся в ВМ первого поколения, пришел более совершенный машинный язык  низкого уровня – ассемблер, написание программ на котором стало более наглядным и понятным. С конца 1950-х годов ВМ стали интенсивно использоваться в государственных организациях, научно-исследовательских учреждениях, крупных промышленных и торговых предприятиях во всем мире. Расширение области применения ВМ потребовало создание новых технологий программирования. Были разработаны более естественные  и универсальные языки программирования, получившие название языков высокого уровня. Это, прежде всего языки Fortran (для научно-технических вычислений) и Cobol (для финансово-экономических расчетов). Именно со вторым поколением ВМ началось развитие индустрии программного обеспечения.

      В 1958 году американским инженером Джеком Килби была разработана первая интегральная микросхема – кремниевый полупроводниковый кристалл, на котором базируются миниатюрные активные элементы (транзисторы и диоды). Такая интегральная микросхема представляет собой логически законченный функциональный блок, соответствующий достаточно сложной транзисторной схеме. В том же году американец Роберт Нойс разработал промышленный образец интегральной микросхемы, так называемый «чип» (chip – дословно «стружка, щепка»). Отметим, что впоследствии именно Р. Нойс основал всемирно известную и наиболее крупную корпорацию  Intel (Integrated electronics) по производству интегральных микросхем.

Третье поколение ВМ (начало 1960-х годов – начало 1970-х годов)  характеризуется переходом от дискретных полупроводниковых элементов к интегральным микросхемам и началом применения полупроводниковых запоминающих устройств. Микросхемы позволяли сделать вычислительные машины более производительными, существенно снизить их габариты и потребление электроэнергии. В 1964 году на основе интегральных микросхем корпорацией IBM была выпущена первая ВМ серии System 360. Семейство машин IBM System 360 – самое многочисленное семейство машин третьего поколения и одно их самых удачных в истории производства ВМ. Выпуск IBM System 360 можно считать началом массового производства вычислительной техники.

Появление стандартизованного, хорошо масштабируемого семейства ВМ универсального назначения IBM System 360  привело к становлению новой идеологии выполнения вычислительных работ на  основе архитектуры так называемых «мэйнфреймов» (mainframe – дословно «главный остов, каркас»). Именно в этот период были реализованы важнейшие механизмы мультипрограммирования и поддержки многотерминального многопользовательского режима. Это стало возможным благодаря резко возросшим возможностям ВМ, при которых последовательное выполнение только одной программы становилось малоэффективным. В режиме же мультипрограммирования в памяти ВМ могут находиться одновременно несколько программ, попеременно выполняющихся на одном процессоре, что приводит к его более интенсивной загрузке, а, следовательно, к повышению производительности всей ВМ в целом. Многотерминальный режим позволил осуществить многопользовательскую «виртуально одновременную» работу с машиной нескольких десятков пользователей. Удаленные терминалы стало возможным размещать не только в пределах непосредственной близости от ВМ, и таким образом зародились первые прообразы сетевых технологий удаленного доступа посредством телефонных соединений или выделенных линий связи. Многотерминальные системы стали в определенной степени первыми аналогами вычислительных сетей, но при этом сохраняли сущность централизованной обработки информации автономно работающим мэйнфреймом.    

      Первой же полноценной по тем временам вычислительной сетью глобального типа стала реализация  в 1969 году проекта по объединению нескольких удаленных сверхмощных ВМ оборонных, управляющих и научных центров на территории США. Эти работы финансировались Министерством обороны США и поэтому первая глобальная сеть имела название ARPANet (Advanced Research Project Agency Net – сеть Агентства перспективных исследовательских программ Министерства обороны). Вначале ARPANet объединяла всего четыре ВМ, в 1971 году – уже четырнадцать, а в 1972 году – тридцать семь. В результате дальнейшей эволюции на базе ARPANet  и возникла современная глобальная сеть Интернет.

      Важной разработкой третьего поколения ВМ стали машины среднего класса (так называемые миниВМ) корпорации DEC (Digital Eguipment Corporation – «корпорация цифрового оборудования») – семейства PDP-VAX. Именно в этих машинах впервые была применена «открытая» архитектура с общей шиной (см. подраздел 1.2) ВМ средней производительности характеризовались высокой надежностью, компактностью, малым энергопотреблением и низкой стоимостью по сравнению со стоимостью высокопроизводительных ВМ типа IBM System 360. Это дало толчок к интенсивному применению миниВМ в небольших организациях и фирмах, а также образовательных учреждениях. 

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

В 1964 году появился язык программирования Бейсик (BASICBeginner`s  All-purpose Symbolic Instruction Code, «многоцелевой символьный программный код для начинающих»), предназначенный для обучения начинающих программистов. Бейсик обеспечивал быстрый ввод и проверку программ. Этот язык не очень подходил для написания серьезных программ, однако он давал общее представление о программировании и позволял быстро овладеть основными навыками программирования. В 1970 году швейцарец Никлас Вирт разработал язык программирования Паскаль, который оказался очень удобен для решения многих прикладных задач. Этот язык прекрасно обеспечивал применение методов структурного программирования, что стало необходимым при создании больших программных систем. Продолжалось совершенствование программного обеспечения. Операционные системы строились таким образом, чтобы поддерживать все большее количество внешних устройств, появились первые коммерческие операционные системы и новые прикладные программы.

      В 1967 году в СССР была сдана в эксплуатацию одна из лучших в мире ВМ третьего поколения – БЭСМ-6. Легендарная БЭСМ-6 долгое время служила базовой машиной для проведения больших объемов вычислительных работ, обеспечивших  выдающиеся успехи СССР в ядерной физике, атомной энергетике, авиастроении, аэродинамике, ракетно-космической технике, военно-технической промышленности, а также обеспечивших оборонную безопасность нашего государства. Продолжением семейства машин М-20 стали М-220 и М-222. Оригинальная миниВМ для инженерных расчетов «Мир» была разработана под руководством В. М. Глушкова. В качестве языка программирования этой ВМ использовался «алголоподобный» язык высокого уровня «АлМир». Следует отметить также оригинальные отечественные разработки миниВМ  «Проминь», «Раздан», «Наири».

В СССР по лицензионному соглашению с корпорациями IBM и DEC начали создаваться унифицированные серии «ЕС ЭВМ» (Единая Система ЭВМ), «СМ ЭВМ» (Система Малых ЭВМ)  и микроВМ «Электроника». В их основы были положены модели System 360, 370, PDP.

Дальнейшее развитие вычислительных машин связано с разработкой так называемых больших интегральных схем (БИС). Ещё в 1959 году инженеры фирмы Datapoint пришли к важному выводу о необходимости в ВМ центрального арифметико-логического блока, который мог бы управлять программами, вычислениями и устройствами машины. Сотрудники Datapoint имели ввиду микропроцессор, принципиальные технические решения которого они и разработали, а затем совместно с корпорацией  Intel стали осуществлять его промышленную доводку. В 1971 году Intel выпустила первый промышленный образец микропроцессора, представлявшего собой интегральную микросхему, на которой сосредоточено обрабатывающее устройство с собственной системой команд. Конструкция микропроцессора позволяет применять его для решения широкого круга задач, создавая при этом различные функциональные устройства. Использование микропроцессоров значительно упростило конструкцию ВМ. Практически сразу микропроцессоры получили широкое применение в различных системах управления от космических аппаратов до бытовых приборов.

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

      Одним из пионеров производства ПК была корпорация Apple. Её основатели Стив Джобс и Стив Возняк сконструировали первую модель ПК в 1976 году и назвали ее Apple I. В 1977 году корпорация Apple представила следующую модель ПК – Apple II. У новой модели был изящный пластиковый корпус со встроенной клавиатурой. Впервые компьютер приобрел черты относительно недорогого компактного бытового прибора с «дружелюбным» интерфейсом взаимодействия с пользователем. Объемы производства и продаж персональных компьютеров после этого резко возросли.

В 1981 году крупнейшая компьютерная корпорация IBM представила свой первый персональный компьютер IBM PC (Personal Computer – «персональный компьютер» ). В течение двух лет было продано более пяти миллионов этих компьютеров. В то же время корпорация Microsoft, основанная в 1975 году Биллом Гейтсом и Полом Алленом, начинает выпуск программного обеспечения для IBM PC. Появляются клоны IBM PC, но все они, так или иначе, отражают стандарты, заложенные IBM. Появление клонов IBM PC способствовало росту промышленного производства персональных компьютеров.

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

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

1980-е годы ознаменованы важнейшими для всего развития ИКТ решениями по объединению  ресурсов  миниВМ и микроВМ  посредством установления соединений между ними, следствием чего стало интенсивное развитие локальных вычислительных сетей и их технологий. Первые локальные сети были одноранговые, то есть все компьютеры, включенные в сеть, обладали равными правами и возможностями по отношению к другим  компьютерам сети, а кроме этого все сетевые компьютеры имели примерно одинаковый уровень производительности. Дальнейший прогресс в идеологии распределенной обработки информации привел к внедрению технологии «клиент – сервер» и построению локальных сетей с так называемым выделенным сервером. На сетевую ВМ, которая назначалась на роль выделенного сервера, возлагались некоторые служебные функции, например, хранения общей для всех остальных компьютеров сети информационной и программной базы, управления файлами и т.п.  Другими словами, такая ВМ являлась по сути обслуживающей для всех остальных рядовых (клиентских) машин (клиентских рабочих станций). Из-за специфического функционального назначения  – обслуживания за такими ВМ и закрепился термин сервер (server от «serve» – «обслуживать»). В зависимости от сложности решаемых задач сервер локальной сети может представлять собой такую же по производительности машину, как и клиентская ВМ, а может быть как более производительной машиной, так и менее производительной (что вполне допустимо и экономически оправданно в небольших сетях при малой загрузке сервера).

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

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

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

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

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

Резюме

      

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

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

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

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

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

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

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

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

             

Контрольные вопросы и задания

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

2. Объясните принцип действия и сферы применения аналоговых вычислительных машин.

3. Изложите последовательность работы абстрактной вычислительной машины Тьюринга.

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

5.  Какие ключевые идеи и принципы были внесены Джоном фон Нейманом в теорию и практику создания ВМ?   

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

7. Опишите состав и назначение основных функциональных устройств ВМ.

8. Чем отличается структурная схема ВМ на основе общей шины от классической структурной схемы ВМ?

9. Каковы  преимущества и недостатки «открытой» («шинной») архитектуры построения ВМ?

10. В  чем  отличие  шины  данных  от  адресной шины  и  шины управления?

11. Какие цели преследуются при создании многопроцессорных ВМ и многомашинных ВС?

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

13. Дайте определение понятиям гомогенности и гетерогенности ММВС.

14. Какой единицей измерения оценивается производительность ВМ и ВС?

15. Приведите классификацию ВМ и ВС по назначению.

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

17. По каким признакам принято различать поколения ВМ?

18. Охарактеризуйте наиболее значимые разработки ВМ первого поколения.

19. Какое изобретение легло в основу построения ВМ второго поколения?

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

21. К каким изменениям характеристик ВМ привело использование в них в качестве элементной базы сверхбольших интегральных микросхем?

22. Охарактеризуйте этапы развития вычислительной техники в СССР.

23. Каковы основные отличительные качества класса персональных ВМ?

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

25. Опишите первоначальные этапы зарождения и эволюции локальных вычислительных сетей.

26. Дайте определение понятию «сервер». Какую функциональную роль играют серверы в системах распределенной обработки информации?

2. Центральные процессоры вычислительных машин

        2.1. Назначение, состав и основные характеристики процессоров

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

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

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

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

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

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

      1) разрядностью его регистров;

      2) тактовой частотой работы процессора;

      3) количеством операций (инструкций), выполняемых за один такт работы процессора (IPCInstruction Per Cycle).

      Разрядность регистров определяет диапазон допустимых значений операндов (длину слова). Чем больше разрядность регистров процессора, тем более длинное слово (или большая порция данных) обрабатывается за один такт работы процессора и тем больше объем прямоадресуемой памяти. Исторически по мере развития процессоров происходил переход от первых 4-разрядных микропроцессоров к 8-разрядным и далее к 16- и 32-разрядным. Основной проблемой перехода к более высокой разрядности процессоров на сегодняшний день являются ограничения программного уровня. Так, для массового перехода от 32-разрядных процессоров к 64-разрядным необходима разработка практически  нового 64-разрядного программного обеспечения. Однако следует отметить, что в настоящее время для 64-разрядных процессоров предложены решения постепенной миграции от 32-разрядных к 64-разрядным программным приложениям.

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

      Для увеличения тактовой частоты работы процессоров постоянно совершенствуются технические и технологические решения, применяемые при производстве процессоров.  Одним из основных путей в этом направлении является снижение так называемых проектных норм (параметров) технологического процесса, определяющих размеры формируемых на полупроводниковой подложке элементов – транзисторов и межсоединений. За последние годы сменилось несколько поколений техпроцесса: 0,8 мкм – 0,5 мкм – 0,35 мкм – 0,25 мкм – 0,18 мкм – 0,13 мкм – 0,09 мкм. Каждый, как видно из приведенного ряда, уменьшает размеры элементов примерно на 30%, а их площадь (квадрат линейного размера) – примерно в 2 раза. Соответственно, плотность размещения элементов с каждым новым техпроцессом удваивается, что позволяет производить более сложные (с большим числом элементов) и более дешевые (меньшая площадь процессорного кристалла) процессоры. Другими продуктивными путями улучшения характеристик процессоров стало применение в их производстве новых материалов и соответствующих технологий, таких как использование в качестве проводящих областей и внутриядерных межсоединений меди вместо алюминия  («медная» технология), использование вместо двуокиси кремния специальных диэлектриков с низкой проницаемостью (технология «Low-K-диэлектриков»), применение для уменьшения емкости транзисторов специального изолирующего слоя между кремниевой подложкой и слоем кремния, в котором формируются транзисторы (технология «кремний-на-изоляторе»), изменение параметров кристаллической решетки кремния путем размещения слоя кремния на специальном полупроводниковом слое (подложке), имеющим большие межатомные расстояния (технология «растянутого кремния»). Суть технологии «растянутого» (напряженного) кремния заключается в том, что кристаллическая решетка подложки «растягивается» таким образом, чтобы атомы разошлись на большее расстояние. Подстраиваясь под кристаллическую решетку подложки, атомы кремния «раздвигаются» на большее расстояние. В результате сопротивление движению электронов через кристаллическую решетку уменьшается, транзисторы могут пропускать больший ток, а следовательно и быстрее срабатывать, выделяя при этом меньше тепла. Эти решения позволили добиться повышения тактовой частоты, на которой способны работать процессоры, а также снизить удельные тепловыделения (за счет уменьшения потерь на перезарядку емкости транзисторов, уменьшения резистивных потерь в межсоединениях и снижения напряжения питания).

Увеличение количества операций (инструкций), выполняемых за один такт работы процессора (параметр IPC),  достигается путем эффективного кэширования (см. подраздел 3.4) и совершенствования архитектурного построения процессора.

2.2. Архитектурные способы повышения производительности процессоров

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

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

      В классическом процессоре реализация некоторой произвольной команды сводится к выполнению нескольких последовательных операций (этапов). Типовой набор таких простейших этапов в самом общем и простом случае может быть представлен следующим перечнем: этап A   выборка команды, т.е. чтение очередной команды из памяти и занесение ее в регистр команды; этап B  декодирование команды, т.е. определение кода операции (или операций, так как команда может содержать несколько операций) и способов адресации операндов; этап C  вычисление адресов операндов, т.е. вычисление исполнительных адресов каждого из операндов в соответствии с указанным в команде способом их адресации; этап D  выборка операндов, т.е. извлечение операндов из памяти (эта операция не нужна для операндов, находящихся в регистрах); этап E  исполнение команды, т.е. исполнение указанной операции;

этап F  запись результата, т.е. занесение результата в память.

      Если упрощенно считать, что каждая команда обязательно проходит все шесть этапов, а выполнение каждого из этапов требует некоторой условной единицы времени (например, это может быть такт работы процессора), то для выполнения шести элементарных этапов некоторой команды K1 в классическом процессоре потребуется 6 условных единиц времени работы процессора T. Для выполнения же двух аналогичных команд K1 и K2  соответственно потребуется 12 условных единиц времени, для выполнения трех команд – 18 условных единиц времени и т.д.

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

      

                                 ИСПОЛНИТЕЛЬНЫЕ   БЛОКИ

     

    A    

  B    

  C    

  D    

  E    

  F    

                       \/         \/          \/          \/         \/          \/

                       

 T1    

 К1    

     

     

     

     

      

 T2    

     

 К1    

   

              – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –

              – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –

 T5    

     

    

     

     

К1     

     

      

 T6    

     

    

     

     

    

 К1    

      

 T7    

 К2    

     

     

     

    

     

      

 T8    

     

 К2    

     

    

    

    

              – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –

              – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –

 T11    

     

     

     

     

 К2    

     

      

 T12    

     

    

    

     

    

 К2   

      

      Рис.2.1. Условная схема работы последовательной цепочки

                     исполнительных блоков (ступеней) процессора

                    при классическом варианте их загрузки: K – команда,

                    T – условная единица времени работы процессора

                                   ИСПОЛНИТЕЛЬНЫЕ   БЛОКИ

     

   A    

  B    

  C    

  D    

  E    

  F    

                       \/         \/          \/          \/         \/          \/

                       

 T1    

 К1    

     

     

     

     

      

 T2    

 К2    

 К1    

   

      

 T3    

 К3    

 К2    

 К1    

     

     

     

      

 T4    

 К4    

 К3    

 К2    

 К1    

     

     

      

 T5    

 К5    

 К4    

 К3    

 К2    

 К1    

     

      

 T6    

 К6    

 К5    

 К4    

 К3    

 К2    

 К1    

      

 T7    

 К7    

 К6    

 К5    

 К4    

 К3    

 К2   

      

 T8    

 К8    

 К7    

 К6    

 К5    

 К4    

 К3    

      

 T9    

 К9    

 К8    

 К7    

 К6    

 К5    

 К4    

      

 T10    

 К10    

 К9    

 К8    

 К7    

 К6    

 К5    

      

 T11    

 К11    

 К10    

 К9    

 К8    

 К7    

 К6    

      

 T12    

 К12    

 К11    

 К10    

 К9    

 К8    

 К7    

      Рис.2.2. Условная схема работы последовательной цепочки

                     исполнительных блоков (ступеней) процессора

                    при варианте их конвейерной загрузки: K – команда,

                    T – условная единица времени работы процессора

      Легко подсчитать, что в последнем случае (рис.2.2), например, за 12 условных единиц времени (T1  T12) будет выполнено 7 команд (K1  K7)  и еще 5 команд (K8  K12) уже будут находиться на разных этапах выполнения. В классическом же варианте (рис.2.1) за эквивалентный  промежуток времени будет выполнено только 2 команды, а для выполнения 7 команд потребуется 6 × 7 = 42 условных единицы времени.

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

      Различают следующие конфликтные ситуации, которые принято именовать термином «риск»:

      – риск по ресурсам, или структурный риск;

– риск по данным;

– риск по управлению (неоднозначность при выборке следующей команды в случае команд перехода).

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

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

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

1) команда Kj читает N до того, как команда Ki успела записать новое значение N, то есть Kj ошибочно получит старое значение N вместо нового;

2) команда Kj записывает новое значение N до того, как команда Ki успела прочитать N, то есть команда Ki ошибочно получит новое значение N вместо старого;

3) команда Kj  записывает новое значение N прежде, чем команда Ki успела записать в качестве N свое значение, то есть N ошибочно содержит i-е значение N вместо j-го.

4) команда Kj читает N прежде команды Ki.  

Первая ситуация – наиболее частый вид конфликтов по данным, поскольку операция чтения в цикле команды (этап D) предшествует операции записи (этап F). Третья ситуация не вызывает особых проблем в конвейерах, где команды следуют в порядке, определенном программой, и могут производить запись только на этапе F. В худшем случае, когда одна команда догоняет другую из-за приостановки последней, имеет место конфликт по ресурсу – попытка одновременного доступа к одной и той же ячейке. Четвертая ситуация не вызывает никаких конфликтов, поскольку как Ki, так и Kj получат верное значение N.

      Для преодоления конфликтов по данным важны своевременное обнаружение потенциального конфликта и его устранение. При этом используются как программные, так и аппаратные методы. Программные методы ориентированы на устранение самой возможности конфликтов еще на стадии компиляции программы. Например, оптимизирующий компилятор пытается создать такой объектный код, чтобы между командами, склонными к конфликтам, находилось достаточное количество нейтральных в этом плане команд. Если это не удается, то между конфликтующими командами компилятор вставляет необходимое количество «пустых» команд. Аппаратные методы применяются для непосредственного устранения возникающих конфликтов по данным. Наиболее очевидным решением является остановка команды Kj на несколько тактов для того, чтобы команда Ki успела завершиться или, по крайней мере, миновать ступень конвейера, вызвавшую конфликт. Соответственно задерживаются и команды, следующие в конвейере за командой Kj. Иногда возможна приостановка только команд Kj, не задерживая следующие за ней команды. Этот прием более эффективен, но требует существенного аппаратного усложнения конвейера.

Риск по управлению обусловлен командами, изменяющими естественный порядок вычислений, что создает наибольшие проблемы практической реализации эффективного конвейера. Канонический конвейер ориентирован на линейные программы. В нем ступень выборки извлекает команды из последовательных ячеек памяти, используя для этого счетчик команд. Адрес очередной команды в линейной программе формируется автоматически, за счет прибавления к содержимому счетчика команд числа, равного длине текущей команды в байтах. Реальные программы практически никогда не бывают линейными. В них как правило обязательно присутствуют команды управления, изменяющие последовательность вычислений. Это команды безусловных и условных переходов, команды вызова процедур, команды возврата из процедур и т. п. Доля подобных команд в программе в среднем  составляет не менее 15 – 20%. Неоднозначность при выборке следующей команды в случае команд перехода может приводить к приостановке конвейера, что в целом снижает производительность процессора.

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

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

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

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

1) вычисление исполнительного адреса перехода на ступени декодирования команды;

2) использование буфера адресов перехода;

3) использование кэш-памяти для хранения команд, расположенных в точке перехода;

4) использование буфера цикла.

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

Буфер адресов перехода (Branch Target Buffer – ВТВ) представляет собой кэш-память небольшой емкости, в которой хранятся исполнительные адреса точек перехода нескольких последних команд. Перед выборкой очередной команды ее адрес (содержимое счетчика команд) сравнивается с адресами команд, представленных в ВТВ. Для команды, найденной в буфере адресов перехода, исполнительный адрес точки перехода не вычисляется, а берется из ВТВ, благодаря чему выборка команды из точки перехода может быть начата на один такт раньше. Команда, ссылка на которую в ВТВ отсутствует, обрабатывается стандартным образом. Если это команда перехода, то полученный при ее выполнении исполнительный адрес точки перехода заносится в ВТВ, при условии, что команда завершилась переходом. Применение ВТВ дает наибольший эффект, когда отдельные команды перехода в программе выполняются многократно, что типично для циклов.

Кэш-память команд, расположенных в точке перехода (Branch Target Instruction Cache – BTIC), – это усовершенствованный вариант ВТВ, где в кэш-память помимо исполнительного адреса команды в точке перехода записывается также и код этой команды. За счет увеличения емкости кэш-памяти BTIC позволяет при повторном выполнении команды перехода исключить не только этап вычисления исполнительного адреса точки перехода, но и этап выборки расположенной там команды. Преимущества данного подхода в наибольшей степени проявляются при многократном исполнении одних и тех же команд перехода, главным образом при реализации программных циклов.

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

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

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

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

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

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

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

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

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

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

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

В целом, динамические стратегии по сравнению со статическими стратегиями обеспечивают более высокую точность предсказания, которая может достигать 99%, а  в среднем составляет не менее 85% – 95%.

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

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

      Важное значение имеет архитектурное исполнение процессора с точки зрения степени сложности (или «комплексности») команд, с которыми процессор способен работать. С самого начала развития языков программирования основной задачей было их совершенствование в направлении упрощения для программистов процесса написания программ. Это привело к возникновению и интенсивному практическому использованию языков программирования высокого уровня (ЯВУ). Операции, характерные для ЯВУ, становились все более сложными по сравнению с операциями, реализуемыми простыми машинными командами, что стало приводить к неэффективному выполнению программ. Для разрешения этой проблемы разработчики процессоров непрерывно ВМ расширяли систему команд, дополняя ее командами, реализующими сложные операторы ЯВУ на аппаратурном уровне. Такие процессоры принято называть процессорами с полным набором команд или процессорами с CISC-архитектурой (Complex Instruction Set ComputerCISC). CISC-архитектура во многом позволяет сократить разрыв между сложными операторами программы и системой команд процессора, их реализующих. Однако это приводит к существенному усложнению электронных схем, т.е. аппаратных средств процессора (особенно реализующих функции управления), что в целом ограничивает возможности увеличения его производительности указанными ранее способами. Особые сложности связаны с организацией эффективного конвейера команд, который, как уже отмечалось, является одним из наиболее действенных механизмов повышения производительности процессоров.

      Более простая по аппаратной реализации так называемая архитектура с сокращенным набором команд или RISC-архитектура (Reduced Instruction Set ComputerRISC) базируется на использовании менее сложных команд, чем в CISC-архитектуре. Основные усилия в RISC-архитектуре направлены на построение максимально эффективного конвейера команд, то есть такого, где все команды извлекаются из памяти и поступают в процессор на обработку в виде равномерного потока. При этом ни одна команда не должна находиться в состоянии ожидания, а процессор должен оставаться загруженным на протяжении всего времени. Для RISC-архитектуры характерны команды стандартной длины, равной ширине шины данных, соединяющей процессор и память. Вследствие сокращения числа выполняемых команд, форматов команд и данных, а также видов адресации существенно упрощается устройство управления, что приводит к значительному снижению задержек в формировании сигналов управления. Естественно, что в сокращенном списке команд должны оставаться те, которые используются наиболее часто. Известно, что около 85% времени выполнения типовых программ приходится на относительно малую часть команд, составляющую примерно 15%. К наиболее часто востребуемым действиям относятся пересылка данных, арифметические и логические операции. В RISC-архитектуре максимально сокращено число команд, имеющих доступ к памяти для выборки операндов и/или записи результатов. При этом доступ к памяти во время исполнения осуществляется только командами «чтение» и «запись», а все операции, кроме «чтение» и «запись», имеют тип «регистр регистр». Для упрощения выполнения большинства команд и приведения их к типу «регистр регистр» процессор должен быть снабжен значительным числом регистров общего назначения. Большое число регистров в процессоре позволяет обеспечить временное хранение промежуточных результатов, используемых как операнды в последующих операциях, что ведет к уменьшению числа обращений к памяти и ускорению выполнения операций. Однако увеличение числа регистров общего назначения способно дать эффект только при определенном предельном увеличение их числа и разумном их использовании. Оптимизация использования регистров в RISC-процессорах обеспечивается как программными, так и аппаратными средствами. Программная оптимизация использования регистров выполняется на этапе компиляции программы, написанной на языке высокого уровня. Компилятор стремится так распределить регистры процессора, чтобы разместить в них те переменные, которые в течение заданного периода времени будут использоваться наиболее интенсивно. Аппаратная оптимизация использования регистров в RISC-процессорах ориентирована на сокращение затрат времени при работе с процедурами, так как наибольшее время в программах, написанных на языках высокого уровня, расходуется на вызовы процедур и возврат из них, что связано с созданием и обработкой большого числа локальных переменных и констант.

      Таким образом, применение RISC-архитектуры ведет к сокращению времени выполнения программы, а соответственно к увеличению быстродействия за счет сокращения числа циклов на команду. Более простое схемное исполнение устройства управления приводит к снижению его стоимости и повышению надежности. Недостатки же  RISC-архитектуры являются следствием ее преимуществ. Принципиальный недостаток сокращенное число команд: на выполнение ряда функций приходится тратить несколько команд вместо одной в CISC. Это удлиняет код программы, увеличивает загрузку памяти и трафик обмена информацией между памятью и процессором. В среднем RISC-программа примерно на 30% длиннее CISC-программы, реализующей те же функции. Хотя большое число регистров в RISC-архитектуре дает существенные преимущества, однако оно усложняет схему декодирования номера регистра, тем самым увеличивая время доступа к регистрам.

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

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

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

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

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

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

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

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

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

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

      1) упорядоченная выдача и упорядоченное завершение;

      2) упорядоченная выдача и неупорядоченное завершение;

      3) неупорядоченная выдача и неупорядоченное завершение.

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

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

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

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

      1) устранить зависимость команд по данным, то есть исключить использование в качестве операнда «устаревшего» значения регистра и не допускать, чтобы очередная команда программы из-за нарушения последовательности выполнения команд заносила свой результат в регистр еще до того, как это сделала предшествующая команда;

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

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

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

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

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

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

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

В последнее время благодаря развитию технологии производства микросхем начинает применяться процессорная VLIW-архитектура  с командными словами сверхбольшой длины или со сверхдлинными командами (Very Long Instruction Word VLIW). Идея VLIW-архитектуры базируется на том, что задача эффективного планирования параллельного выполнения нескольких команд возлагается на «разумный» компилятор. Такой компилятор вначале исследует исходную программу с целью обнаружить все команды, которые могут быть выполнены одновременно, причем так, чтобы это не приводило к возникновению конфликтов. В процессе анализа компилятор может даже частично имитировать выполнение рассматриваемой программы. На следующем этапе компилятор пытается объединить такие команды в пакеты, каждый из которых рассматривается как одна сверхдлинная команда. Объединение нескольких простых команд в одну сверхдлинную производится по следующим правилам:

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

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

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

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

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

Дальнейшим развитием технологии VLIW стал новый подход к архитектуре процессора, известный как EPIC-архитектура, предполагающая  вычисления с явным параллелизмом команд (Explicitly Parallel Instruction Computing EPIC). По сути  EPIC является усовершенствованным вариантом VLIW. В EPIC предполагается наличие в процессоре 128 штук 64-разрядных регистров общего назначения и 128 штук 80-разрядных регистров с плавающей запятой. Команды упаковываются (группируются) компилятором в сверхдлинную команду связку длиною в 128 разрядов. Связка содержит три команды и шаблон, в котором указываются зависимости между командами, а также между другими связками. Одна связка, состоящая из трех команд, соответствует набору из трех функциональных блоков процессора. Процессоры с технологией EPIC могут содержать разное количество таких наборов из блоков, оставаясь при этом совместимыми по коду. Логика выдачи команд на исполнение сложнее, чем в традиционных процессорах VLIW-архитектуры, но намного проще, чем у суперскалярных процессоров с неупорядоченной выдачей. Концепция EPIC, сохраняя все достоинства архитектурной организации VLIW, обладает лучшей масштабируемостью архитектуры до большого количества функциональных блоков.

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

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

2.3. История разработки микропроцессоров и эволюции их характеристик

      История микропроцессорной техники берет свое начало с выпуска в 1971 году корпорацией Intel первого в мире микропроцессора  i4004. Этот микропроцессор был 4-разрядным и первоначально предназначался для использования в электронных калькуляторах. Уже через год Intel разработала 8-разрядный микропроцессор i8008, а еще через два года –  i8080, на базе которого был собран первый коммерческий компьютер «персонального» Altair 8800.

В 1978 году появился 16-разрядный микропроцессор  i8086, а через год вышла его более дешевая модификация i8088, имевшая 16-разрядные внутренние регистры, но 8-разрядную внешнюю шину данных. Это позволяло использовать совместно с i8088 недорогие 8-разрядные сопутствующие микросхемы, что и побудило корпорацию IBM выбрать i8088 в качестве процессора для своего знаменитого первого образца персонального компьютера IBM РС (IBM Personal Computer), который приобрел широкую популярность и быстрое распространение.

16-разрядные процессоры (далее для краткости будем употреблять термин «процессор» в общепринятом написании без приставки «микро», имея ее в виду) i8086 (i8088) заложили основы системы команд х86, базирующейся на CISC-архитектуре. Эта система команд стала стандартом де-факто на долгие годы.

Следующая модель от Intel – 16-разрядный i80286 (1982 г.) имел 16-разрядную внешнюю шину данных и 24 адресные линии, способные адресовать 16 Мбайт памяти (в отличие от 1 Мбайт адресного пространства у процессоров i8086 с 20-ю адресными линиями). В процессоре i80286 было впервые реализовано управление виртуальной памятью, организованной для обмена данными между оперативной памятью и внешними запоминающими устройствами.

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

Для перечисленных выше моделей процессоров х86 корпорацией Intel были разработаны так называемые математические сопроцессоры (i8087,  i80287,  i80387). Математический сопроцессор представляет собой вычислительное устройство со своим набором регистров, архитектура которого оптимизирована под выполнение операций с плавающей точкой (причем не только сложения, вычитания, умножения и деления, но и более сложных операций, таких как  вычисление  логарифмов,  тригонометрических  функций и некоторых других). Сопроцессоры  вплоть до модели i80387 не были интегрированы в ядро основного процессора и размещались отдельно от него, обеспечивая при этом совместную работу. Для работы нового исполнительного блока потребовалось расширение системы команд определенным набором инструкций. Этот блок получил название х87. Обработка инструкций х87 производилась следующим образом: их выборкой, декодированием и выдачей результатов занимался основной процессор, тогда как за исполнение инструкций отвечал сопроцессор, который подключался по мере необходимости. При этом в целях совместимости сохранялась возможность выполнения операций с плавающей точкой на АЛУ основного процессора. Но в этом случае проигрыш в производительности был весьма ощутим.

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

Для компьютеров на базе i8086 и i80286 сопроцессор был редко устанавливаемым устройством, а вместе с процессором i80386 математический сопроцессор уже стал употребляться практически всегда. На сложных математических вычислениях сопроцессор позволял увеличить производительность ВМ в 20–30 раз.

На начальном этапе развития процессоров основными показателями прогресса были увеличение разрядности (4 – 8 – 16 – 32 разряда) и увеличение тактовой частоты работы процессора (i4004 – 108 КГц, i8008 – 2 МГц, i8086 – от 4,77 до 12 МГц, i80286 – от 6 до 20 МГц, i80368 – от 16 до 40 МГц). Однако рост быстродействия центрального процессора стало существенно опережать рост быстродействие оперативной памяти ВМ. Чтобы скорость работы ВМ в целом не ограничивалась быстродействием оперативной памяти, между процессорами старших моделей i80386 и основной памятью начали устанавливать небольшую по объему кэш-память, имеющую существенно более высокую скорость работы по сравнению с основной памятью.

На каждом из этапов эволюции процессоров с корпорацией Intel конкурировали другие производители, такие как корпорации IBM, AMD (American Micro Devises), NEC (Nippon Electronics Corporation), Cyrix, Weitek. В период повышения роли сопроцессоров конкурирующие корпорации особое внимание  уделяли именно разработке новых сопроцессоров. Так, сопроцессоры Cyrix работали на 20–40%  быстрее сопроцессоров Intel, а сопроцессоры Weitek – даже в 2–4 раза.

Выпуском в 1989 году нового процессора   i80486 корпорация Intel избавилась от конкурентов на «сопроцессорном фронте». В процессор i80486 были введены два новшества: внутрь ядра процессора интегрированы сопроцессор и кэш-память объемом 8 Кбайт. Блок сопроцессора получил название FРU (Floating Point Unit, т. е. «устройство для обработки вещественных чисел») На этой стадии развития блок FРU оснащался набором 80-разрядных регистров, что позволяло оперировать с вещественными числами двойной точности. Набор реализуемых этим процессором  команд возрос до 220.

Первое поколение процессоров i80486 (i80486DX) работало на тактовых частотах от 25 до 50 МГц. В следующем поколении этих процессоров было внедрен способ  умножения внешней тактовой частоты, при котором система, состоящая из процессора, сопроцессора и кэш-памяти, работала на частоте, превышающей в 2–3 раза частоты работы системной шины и основной оперативной памяти, которые составляли 33 МГц. Таким образом, процессорная система i80486DX2 работала на частоте 66 МГц, а i80486DX4 – на 100 МГц. Клоны процессоров i80486, выпускаемые по лицензионному соглашению корпорацией AMD, работали и на более высоких частотах, а сама корпорация AMD на протяжении всей истории была и является основным серьезным конкурентом  Intel.

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

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

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

Pentium имел 32-разрядную адресную шину и 64-разрядную шину данных, две раздельные 8 килобайтные кэш-памяти (для данных и для команд). Эти процессоры выпускались с тактовыми частотами от 60 до 200 МГц. В процессоре Pentium была впервые применена суперскалярная архитектура. Pentium содержал два пятиступенчатых конвейера, функционирующих параллельно и обрабатывающих две команды за один такт. В Intel Pentium использовались следующие особенности обработки команд. После блоков предварительной выборки и первой стадии декодирования инструкции разделялись на два конвейера, в которых происходили их окончательная дешифрация, выполнение и запись результатов. Эти  конвейеры не были полностью независимыми. Команды по ним продвигались только в связке, то есть, если на выполнение конкретной стадии у одной инструкции уходил один такт, а у другой – два такта, то первый конвейер был вынужден простаивать.

       В 1995 году был выпущен процессор шестого поколения Intel Pentium Pro,  работа которого предусматривалась на частотах 150 – 200 МГц.  По внутренней и внешней разрядности он был аналогичен процессору Pentium и также содержал раздельную кэш-память для данных и для команд емкостью по 8 Кбайт. Однако новый процессор значительно отличался от предыдущего по архитектуре. В процессорах Pentium Pro в составе ядра появился кэш второго уровня. Он был менее быстрым, чем кэш первого уровня, но зато его объем варьировался в пределах от 256 Кбайт до 2 Мбайт. Заметим, что в настоящее время подобная иерархия кэш-памяти стала общепринятой, а серверные варианты процессоров оснащаются кэш-памятью третьего и даже четвертого уровней относительно большого объема (подробнее кэш-памяти см. в разделе 3).

Pentium Pro имел три конвейера с более высокой степенью конвейеризации и большим, чем у Pentium, числом ступеней в блоке арифметических операций. В Pentium Pro получили применение методы динамического исполнения команд, а также механизмы предсказания передач управления в программах при условных переходах. У корпорации AMD первенцем динамического исполнения команд стал процессор К6. Отметим, что только за счет архитектурных новаций производительность процессора Intel Pentium Pro по отношению к Intel 8086 выросла в десятки раз. Хорошей иллюстрацией к вышесказанному является тот факт, что у процессора Intel 8086 на обработку одной команды (инструкции) требовалось 12 тактов работы процессора, тогда как процессор Intel Pentium Pro в среднем выполнял две команды за такт. То есть производительность за один такт увеличилась в среднем в 24 раза. При этом тактовые частоты за тот же период выросли в меньшее число раз (15–20 раз), что наглядно подчеркивает важную роль архитектуры процессора в повышении его общей производительности.

С середины 1990-х годов персональный компьютер постепенно стал превращаться в мультимедийный центр. Быстро растущая производительность уже позволяла обычным ПК решать задачи обработки изображений, звука и даже видео. Развитие подобных приложений происходило настолько бурными темпами, что довольно быстро назрел вопрос внедрения в процессор специализированных исполнительных устройств для обработки так называемых потоковых данных, когда по одной команде обрабатываются множественные «наборы» («потоки» или «векторы») операндов. В первоначальном варианте системы команд х86 использовался принцип однопоточности команд и данных SISD (Single InstructionSingle Data, т.е. «одна инструкция – один набор операндов»). При этом каждая команда одновременно могла обрабатывать только один набор операндов. И даже в том случае, если несколько последовательно расположенных команд оперировали одними и теми же данными, их выполнение не могло быть оптимизировано.

Принцип однопоточности команд и многопоточности данных SIMD (Single  Instruction – Multiple Data, т. е. «одна инструкция – много наборов операндов») позволил существенно ускорить обработку однотипных данных, которые очень часто используются в мультимедийных приложениях. Например, при умножении массива переменных на определенное число при однопоточной схеме работы процессор будет циклически повторять одни и те же действия для каждой переменной, в том числе много раз декодировать одну и ту же команду умножения. Работая же по многопоточной схеме, процессор только один раз декодирует инструкцию, а дальше будет заниматься только вычислениями и пересылкой данных. Кроме того, при наличии соответствующих аппаратных средств он может одновременно выполнять несколько операций. Естественно, такая схема работы процессора значительно повышает эффективность вычислений.

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

Корпорация Intel произвела модификацию своего процессора пятого поколения Pentium и в начале 1997 года выпустила процессор Pentium MMX (ММХ – MultiMedia eXtensions, «мультимедийные расширения»). Исполнительный блок ММХ был предназначен для оптимизации обработки потоков целочисленных данных, что ускоряло быстродействие при работе со звуком и графикой. Отметим, что ММХ являлся первой реализацией многопоточной схемы на процессорах семейства х86. Расширение ММХ дополнило систему команд х86 новыми командами (57 дополнительных инструкций). В распоряжении ММХ-инструкций находилось восемь 64-разрядных регистров, что позволяло одновременно обрабатывать не только 64-разрядные операнды, но и пары 32-разрядных, четверки 16-разрядных и, наконец, восьмерки 8-разрядных операндов. Таким образом, за счет упаковки данных, наличия специальных команд, которые умеют эти данные одновременно обрабатывать, и самого исполнительного устройства становилось возможным существенно увеличить производительность процессора.

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

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

В середине 1997 года Intel представила новую модификацию ранее разработанного процессора шестого поколения Pentium Pro. Этот процессор получил торговую марку Pentium II. В нем использовались высокопроизводительная технология обработки информации, впервые внедренная в Pentium Pro, и расширенная система команд ММХ. Pentium II имел увеличенную кэш-память первого уровня (16+16 Кбайт) и кэш-память второго уровня емкостью 512 Кбайт. Важным отличием Pentium II являлась архитектура двойной независимой шины, первые варианты введения которой были уже у Pentium Pro. В этой архитектуре процессор обменивается данными с кэшем второго уровня по специализированной высокоскоростной шине (часто называемой backsidebus – «шина заднего фронта»), отделенной от основной системной шины (frontsidebus или FSB – «шина переднего фронта»), которая работает на частоте материнской платы. Наличие более скоростного канала обмена с кэш-памятью второго уровня существенно увеличивало быстродействие системы в целом. Процессоры Pentium II поддерживали двухпроцессорную конфигурацию ПК и выпускались в частотных модификациях от 233 до 600 МГц. Разрядность шины адреса у процессоров Pentium ММХ и Pentium II составляла 36 бит, что увеличивало потенциальный объем адресного пространства памяти до 64 Гбайт.

С 1998 года корпорация Intel начинает выпускать «облегченные» и, соответственно, более дешевые варианты своих базовых процессоров. Такие процессоры получили торговую марку Celeron, которая используется и по сей день. Первые процессоры Celeron являлись модификацией Pentium II с полным отсутствием или относительно небольшим объемом вторичного кэша (128 Кбайт), а также сокращенной разрядностью адресной шины с 36 до 32 бит. Процессоры Celeron были и остаются весьма популярными для установки в недорогих ПК, не слишком требовательных к производительности.

Модернизация Pentium II привела к разработке процессора Pentium III (1999 г.), который относят к шестому поколению процессоров. Главным отличием нового процессора стало использование в нем нового набора инструкций SSE, которые являются дальнейшим развитием системы потоковых команд SIMD. SSE (Streaming SIMD Extensions – «потоковые SIMD расширения») представляет собой подсистему команд, предназначенных для обработки уже не только целочисленных, но и вещественных данных. SSE по сравнению с ММХ представляет гораздо больше возможностей для повышения быстродействия процессора. Исполнительный блок SSE изначально оснащен восьмеркой 128-битных физических регистров ММХ, поэтому он может функционировать одновременно с FPU. В новую подсистему команд включены операции обработки упакованных вещественных и целых чисел. Однако, несмотря на значительный объем регистров ММХ, максимально допустимая разрядность вещественных чисел составляет 32 бита. Это позволяет программистам оперировать лишь с данными одинарной точности, что, конечно, является существенным недостатком SSE. Применение SSE при обработке ранее созданного программного кода естественно невозможно. Для этого требуется как минимум перекомпиляция с использованием специальных библиотек, а как максимум – оптимизация алгоритмов. Кроме того, чтобы ощутить преимущества потоковых команд, процессор необходимо перевести в специальный режим, что требует соответствующей поддержки от операционной системы. Поэтому поначалу инструкции SSE внедрялись в практику довольно медленно. Но со временем появились программы, оптимизированные под этот набор инструкций (игры, кодеки, графические редакторы и многое другое), и стало понятно, что SSE – большой шаг вперед в развитии схемы SIMD.

Еще до внедрения технологии SSE в процессоры Intel корпорация AMD предложила свой собственный набор SIMD-инструкций под названием «3DNow!». Впервые его поддержка была включена в процессор AMD К6-2. Этот набор инструкций представляет собой подсистему команд, ускоряющих выполнение операций трехмерной графики. Как и SSE, 3DNow! позволяет оперировать  вещественными числами. Недостатком первой реализации данной технологии в процессоре AMD К6-2 следует признать тот факт, что блок 3DNow! фактически подменял FPU. В седьмом поколении этот недочет был исправлен. Но, к сожалению, технология 3DNow! так и не получила широкой поддержки разработчиков программ ввиду ее узкой направленности. К тому же в настоящее время основную работу по обработке изображений выполняют так называемые графические видеоакселераторы (см. подраздел 4.2), что существенно уменьшает значимость данного набора инструкций.

Необходимо отметить, что производители х86-процессоров, оставаясь в рамках CISC-архитектуры, постепенно переводили микроархитектуру процессоров на идеологически более совершенную основу – архитектуру RISC. Для использования такого подхода поступающие CISC-команды сначала переводятся во внутренние RISC-команды, которые и исполняются процессором. Корпорация  Intel начала применять элементы RISC-архитектуры еще в четвертом поколении своих процессоров (процессор i486), однако только в шестом поколении (Pentium Pro, Pentium II и Pentium III) переход на использование внутренних RISC-команд был полностью завершен. Корпорация AMD перешла на внутреннюю RISC-архитектуру еще в процессоре пятого поколения К5.

В середине 1999 года корпорация AMD выпустила первый процессор седьмого поколения, которому была присвоена торговая марка Athlon. В этом процессоре была достигнута высокая степень параллелизма исполняемых инструкций и существенно возросла производительность операций над вещественными числами за счет трех полностью конвейеризированных исполнительных блоков. Была также применена высокопроизводительная системная шина с частотами 100 и 133 МГц с передачей данных по обоим фронтам тактового импульса (таким образом фактическая частота передачи данных при этом составляла 200 и 266 МГц, а пропускная способность – 1,6 и 2,1 Гбайт/с соответственно). Новый процессор в отличие от процессоров предыдущего поколения был значительно лучше оптимизирован для достижения высоких тактовых частот, что оказалось решающим фактором его дальнейшего успеха.

Выпуск процессоров Athlon заставил корпорацию Intel форсировать разработку своего 32-разрядного процессора седьмого поколения, промышленные образцы которого под торговой маркой Pentium 4 поступили в продажу к концу 2000 года. Главные архитектурные нововведения в Pentium 4 носят фирменное название архитектуры NetBurst  и заключаются в следующих механизмах и технологиях. Во-первых, в Pentium 4 для достижения максимальных тактовых частот резко увеличены длины конвейеров (до 20 стадий) и эта архитектура по определению Intel получила название гиперконвейеризированной (hyperpipelining). Однако еще раз отметим, что производительность процессора не зависит прямо пропорционально от длины конвейера и для каждой конкретной архитектуры существует оптимальное значение числа стадий, которое к тому же зависит от тактовой частоты процессора и даже типа выполняемых приложений. Основное достоинство длинного конвейера заключается в возможности соответствующего увеличения тактовой частоты работы процессора. С другой стороны, у длинного конвейера могут быть велики потери за счет остановок, что приводит к снижению  производительности. Например, AMD в своих процессорах использует относительно более короткие конвейеры, чем в процессорах Intel, но у процессоров AMD выше степень скалярности (пространственного распараллеливания обработки данных). Например, в процессоре AMD Athlon, как уже указывалось выше, имеется три исполнительных блока для обработки чисел с плавающей запятой.

Другим важным нововведением в Pentium 4 стала передача четырех пакетов данных по системной шине за один такт. Таким образом, при физической тактовой частоте шины 100, 133 и 200 МГц для передачи данных используются оба фронта тактового сигнала плюс сдвиг фазы на 90 градусов, в результате чего эффективная частота передачи составляет 400, 533 и 800 МГц, а пропускная способность – 3,2; 4,3 и 6,4 Гбайт/с соответственно.

В Pentium 4 были внедрены быстрый исполнительный механизм (Rapid Execution Engine) и трассирующий кэш (Execution Trace Cache). Оба они призваны скомпенсировать издержки сверхдлинного конвейера. Первый делает это за счет увеличения вдвое частоты работы каждого из двух АЛУ по сравнению с частотой работы процессора, а второй  – за счет изменения алгоритма работы кэш-памяти первого уровня для команд, в которой кэшируются уже декодированные инструкции, сгруппированные в соответствии с предсказанными переходами (трассами). Это позволяет очень быстро загрузить конвейер командами в случае неправильно предсказанного перехода. Кэш-память первого уровня для данных в Pentium 4 стала быстрее – ее размер был уменьшен в два раза (до 8 Кбайт). Кэш-память второго уровня также стала быстрее, но в данном случае уже за счет имевшегося резерва – данные передаются на каждый такт, а не через такт. Были усовершенствованы и другие блоки процессора, увеличена эффективность предсказания переходов, введена дополнительная буферизация.

В процессоре Pentium 4 корпорация Intel сделала очередной (ставший уже традиционным) шаг в совершенствовании архитектуры х86 – ввела новое расширение команд SSE2 для потоковых SIMD-инструкций. Набор SSE2 содержит 144 инструкции и позволяет работать со 128-разрядными данными: целочисленными и с плавающей точкой (отметим, что предшествующий набор SSE работал с 64-разрядными данными, а ММХ – только с целочисленными). Кроме того, в SSE2 появились новые инструкции для управления кэшированием, а именно для осуществления предварительной выборки и потоковой передачи данных. Результатом внедрения SSE2 стал значительный рост производительности процессора в мультимедийных приложениях, многих играх, задачах кодирования видео, научных расчетах. Фактически оказалось, что блок, ответственный за обработку SIMD-инструкций в процессорах Pentium 4, оказался мощнее, чем FPU. Подчеркнем, что все отличия SSE2 от SSE заключаются в системе команд и не касаются архитектуры процессора.

      В процессорах  Pentium 4 поддерживается новая технология Hyper-Threading. Суть этой технологии (название которой можно перевести как «многопоточность») заключается в том, что при исполнении нескольких потоков (т. е. нескольких приложений либо многопоточного приложения) процессор имеет возможность распределять ресурсы между ними. Такая схема коренным образом отличается от многозадачного режима работы, так как в последнем случае процессор распределяет лишь процессорное время, постоянно переключаясь между задачами. На практике Hyper-Threading реализуется следующим образом. Для программиста и операционной системы процессор с поддержкой этой технологии представляется как пара логических процессоров. На этапе выборки и дешифрации команд данная технология не вносит никаких изменений в процесс обработки данных, но после того, как команды «разложены» на микроинструкции, становится возможным параллельное исполнение двух потоков. Если, к примеру, текущая инструкция из первого потока осуществляет сложение целых чисел, а из второго – умножение вещественных, то они будут выполняться одновременно, задействовав ALU и FPU соответственно. При этом для каждой из них будут выделяться логические регистры путем переименования физических. Естественно, может возникнуть конфликтная ситуация, когда обоим потокам потребуются одни и те же исполнительные устройства. В этом случае процессор сам решает, какой из потоков имеет больший приоритет. Тесты  процессоров Intel Pentium 4  с Hyper-Threading указывают на то, что во многих приложениях, работающих «в одиночку», данная технология не приводит к заметному росту быстродействия. С другой стороны, к примеру, в задачах кодирования видеоинформации и обработки изображений увеличение производительности достигает 10–15%. Но наибольший прирост производительности (до 30–40%) Hyper-Threading обеспечивает при одновременном выполнении нескольких приложений, поэтому новая технология имеет очевидные преимущества.

      Необходимо отметить, что начиная с процессоров пятого поколения, корпорация Intel, а затем и другие фирмы-производители стали присваивать собственные имена процессорным ядрам (кристаллам), как элементам, во многом определяющим производительность процессоров. Таким образом, процессоры одной линии, построенные на разных ядрах, имеют как бы двойное наименование, которое указывается в их технических характеристиках. Каждое новое ядро с новым именем становится более совершенным по сравнению с предыдущим, а соответственно появление в наименовании процессора нового имени его ядра свидетельствуют об улучшении технических характеристик процессора. Например, процессоры Pentium III прошли следующую эволюцию ядер: KatmaiCoppermine Tualatin, а семейство Celeron: DeschutesMendocinoCoppermineTualatinWillametteNorthwoodPrescott.

      Процессоры Pentium 4 образца 2003 года, изготовленные на основе процессорного ядра Northwood (выполнено по 0,13-мкм технологии с применением медных соединений, имеет площадь 146 мм2 и содержит 55 млн транзисторов) достигли частоты 3,4 ГГц, имели кэш-память второго уровня объемом 512 Кбайт, передача данных осуществлялась по системной шине с эффективной частотой 800 МГц (при реальной частоте шины FSB на материнской плате – 200 МГц).

      В это же время наивысший уровень процессоров AMD определялся процессором Athlon XP с рейтингом 3200+ (тактовая частота 2250 МГц), кэш-памятью первого уровня 128 Кбайт (64+64), кэш-памятью  второго уровня 512 Кбайт и шиной с частотой 400 МГц. Старшие модели  Athlon XP реализованы на процессорном ядре Barton  с 0,13-мкм технологией и с использованием медных соединений, площадь ядра – 115 мм2, количество транзисторов – около 54 млн шт. Под рейтингом (или «номером модели») корпорация AMD понимает некоторую эффективную (условную) частоту, которая, по заявлениям AMD,  определяется в результате тестирования процессора на различных приложениях и обозначает частоту, на которой должен работать некий эталонный процессор, чтобы иметь такую же производительность, как и тестируемый.

      Соблюдая примерный паритет в производительности на реальных приложениях по сравнению с процессорами AMD Athlon XP, процессоры Pentium 4 работают на значительно более высоких частотах, но обладают при этом меньшими значениями параметра IPC. Это связано с различием в подходах корпораций Intel и AMD к проектированию процессоров, вследствие чего архитектуры Pentium 4    и  Athlon отличаются чрезвычайно сильно. Поэтому сравнение их только по тактовой частоте абсолютно бессмысленно.

      Для рынка недорогих настольных компьютеров корпорация AMD предложила к 2003 году свой модельный ряд недорогих процессоров Duron на ядре Morgan (0,18-мкм техпроцесс, площадь ядра – 106 мм2, количество транзисторов  – около 25 млн), а также процессоры Athlon XP для нижнего ценового диапазона с более низкими рейтингами («младшие» модели от 1600+ до 2000+ с ядром Thoroughbred, имеющими выгодное соотношение цена/производительность).

В табл. 2.1 представлены основные технические и технологические характеристики базовых процессоров х86 с первого по седьмое поколения.

                                                                                   Таблица 2.1

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

базовых  процессоров х86 с первого по седьмое поколения

Поколение

     Семейство

    процессоров

Год  начала      выпуска

Разрядность, бит

Тактовая частота

    процессора,

          МГц

      Частота системной шины,

      МГц

Кэш-память  L1,

        Кбайт

Кэш-память  L2,

        Кбайт

   Норма  тех-

процесса,  мкм

Количество тран- зисторов, млн

 

1

Intel 8086

Intel 8088

1978

1979

16

16

4,77 - 8

4,77 - 8

4,77-8

4,77-8

 

 

  

 

 

 

 

 3

 3

0,07

0,07

2

Intel 80286

1982

16

8 - 20

8 - 20

  

 

1,5  

0,18

3

Intel 80386

1985

32

16 - 33

16 - 33

  

 

 1  

0,28

4

Intel 80486

1989

32

25 - 100

25 - 33

  8

 

 1  

1,2

5

Intel Pentium

Intel Pentium

       MMX

1993

1997

32

32

60 - 200

166-233

60 - 66

66

8+8

16+16

 

  

0,5

0,35

3,3

5,0

6

Intel

Pentium Pro

Pentium II

Pentium III

1995

1997

1999

32

32

32

150-200

233-600

450 –

    1400

66

66-100

100

      133

8+8

16+16

16+16

256

512

256/

512

0,35

0,250,180,13

5,5

7,5

10 

 40

 7

AMD Athlon

Intel

Pentium 4

1999

2000

32

32

500 –

    2200

1300 –

    3400

200 

      400

400 

      800

64+64

8+12 K оп.

256/

512

256/

512

0,180,13

0,180,13

22

  54

42

  55

      Отметим, что корпорациями Intel и AMD при производстве процессоров Celeron и Duron для компьютеров нижнего ценового диапазона за основу берутся сложные базовые модели процессоров, производительность которых искусственно снижается. Однако такой важный  параметр, как тепловыделение, остается практически на прежнем уровне. В результате требуются почти такие же затраты на охлаждение (а соответственно и необходимость установки мощных и шумных охлаждающих вентиляторов), как и высокопроизводительных «старших» моделей процессоров. Фирма VIA реализует свою идеологию создания процессоров для сегмента малопроизводительных недорогих компьютеров, которая заключается в достижении приемлемого (для систем низшего класса) уровня производительности минимальными средствами с отказом от дорогостоящих решений, рассчитанных на принципиально другой, более высокий уровень производительности. При этом архитектура процессора оптимизируется с целью минимизации количества транзисторов и площади кристалла, что позволяет уменьшить как энергопотребление, так и стоимость. В 2003 году был представлен процессор VIA С3, разработанный с учетом указанных принципов минимизации. Процессор VIA С3 с частотой 1ГГц построен на 0,13-мкм ядре Ezra-T, имеет 128 Кбайт кэш-памяти первого уровня и 64 Кбайт – второго. Число транзисторов – 15,8 млн, площадь кристалла – всего 52 мм2, а потребляемая мощность  – 12 Вт. Благодаря небольшой площади кристалла процессор имеет вполне конкурентоспособную цену, а при такой малой мощности можно при объемном радиаторе обойтись без охлаждающего вентилятора, снизив тем самым уровень шума и потребляемой энергии.

В 2004 году основным модельным рядом AMD для настольных компьютеров стало семейство процессоров Athlon 64. Помимо эффективной архитектуры, позволяющей процессорам Athlon 64 показывать высокий уровень быстродействия при сравнительно небольших тактовых частотах, эти процессоры обладают и некоторыми другими  достоинствами. Например, в Athlon 64 реализована технология Cool’n’Quiet, позволяющая снижать частоту работы процессора в моменты его неполной загрузки, а соответственно снижать его тепловыделение и энергопотребление. Кроме того, процессор оснащен средствами Enhanced Virus Protection, защищающими ПК от вирусных программ. При использовании 0,13-мкм и 0,09-мкм техпроцессов Athlon 64 имеет  частоты 2,2 – 2,4 ГГц. Процессоры Athlon 64 выпускаются на базе трех различных ядер: ClawHammer, NewCastle и Winchester. У ядра ClawHammer, исторически ставшего первым процессорным ядром Athlon 64, объем кэш-памяти второго уровня составляет 1 Мбайт. Ядро NewCastle, спроектированное AMD позднее, обладает вдвое меньшим объемом кэш-памяти второго уровня – 512 Кбайт. Оба ядра изготавливаются по 0,13-мкм технологическому процессу. Более же совершенная технология с 0,09-мкм проектными нормами используется при изготовлении ядра Winchester (кэш-память второго уровня – 512 Кбайт). Заметим, что наличие в процессорах AMD технологии AMD64 никоим образом не уменьшает ни функциональности, ни производительности этих продуктов в привычных 32-битных режимах.

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

      В 2004 году корпорация AMD также предложила  новое семейство процессоров для недорогих компьютеров, получившее название Sempron. Эти процессоры фактически представляют собой переименованные процессоры Athlon XP. Модельный ряд процессоров Sempron с рейтингами до 2800+ составляют процессоры с частотой шины 333 МГц, частотами ядра до 2 ГГц и объемом кэш-памяти второго уровня объемом 256 Кбайт. Sempron 3000+ – это процессор на ядре Barton с частотой 2 ГГц, 333-МГц шиной и кэш-памятью второго уровня объемом 512 Кбайт.

      В 2004 году продолжилось и развитие процессоров семейства Pentium 4. С переходом на 0,09-мкм технологический процесс корпорация Intel разработала новое процессорное ядро, получившее название Prescott, которое, как и его предшественники Willamette и Northwood, основано на архитектуре NetBurst. Основная идея этой архитектуры – достижение высокой производительности благодаря функционированию процессора на высокой тактовой частоте. В Prescott по сравнению с предшествующими ядрами архитектура NetBurst несколько усовершенствована. Так, в Prescott удлинен исполнительный конвейер до 31 ступени. При этом частоты Pentium 4 на ядре Prescott к 2005 году достигли 3,8 ГГц (для сравнения укажем, что в процессоре Pentium III с 0,13-мкм ядром Taulatin и конвейером с 10 стадиями максимальная частота превысила 1,5 ГГц, а в процессоре Pentium 4 с 0,13-мкм ядром Northwood и конвейером с 20 стадиями максимальная частота достигла 3 ГГц и выше). Для того чтобы производительность процессоров на новом ядре Prescott на одинаковых частотах с Northwood не снизилась, в процессорах на ядрах Prescott увеличена кэш-память второго уровня с 512 Кбайт до 1 Мбайт, а кэш-память первого уровня для данных – с 8 Кбайт до 16 Кбайт. Размер же кэш-памяти для  инструкций остался неизменным: он способен вместить 12 000 микроинструкций (микроопераций или микрокоманд), что примерно эквивалентно объему в 8 –16 Кбайт.

      В ядре Prescott  усовершенствовано предсказание ветвлений – основной метод борьбы с простоями процессора, вызванными необходимостью очистки и повторного заполнения длинного конвейера после неправильно предсказанных переходов. Работа блока предсказания переходов, применяющегося в процессорах с NetBurst-архитектурой, основывается на использовании буфера, в котором накапливается статистика выполненных переходов. То есть, для предсказания переходов используется вероятностная модель – преимущественным направлением перехода процессор считает то направление, которое наиболее вероятно согласно накопленным статистическим данным. Этот алгоритм очень неплохо проявил себя на практике, однако он совершенно бесполезен в случае отсутствия статистики по конкретному переходу. Процессоры на ядре Northwood в этом случае всегда выбирали направление перехода «назад», вполне обоснованно считая, что самые распространенные условные переходы – это условия продолжения циклов. В Prescott эта статическая схема предсказания переходов была существенно доработана. Теперь, если по встретившемуся переходу статистика отсутствует, модуль предсказания перехода не делает однозначного вывода о его направлении, а основывает свое решение на анализе расстояния, на которое совершается переход, поскольку обратные переходы в циклах редко совершаются за некую эмпирически найденную границу. Кроме того, была усовершенствована и схема динамического предсказания переходов. В результате, если у процессоров на ядре Northwood число неправильно предсказанных переходов в среднем составляло 0,86 на 100 инструкций, то теперь эта величина – 0,75 неправильных переходов на 100 инструкций. Иными словами, количество неправильно предсказанных переходов снизилось на 12%.

      Второе улучшение, реализованное в Prescott, – ускоренное исполнение некоторых команд. Несмотря на то, что количество целочисленных АЛУ в процессоре осталось прежним – два для простых инструкций, работающих на удвоенной частоте ядра, и одно для сложных инструкций, – скорость исполнения отдельных команд в Prescott возросла. Связано это с некоторыми изменениями в архитектуре АЛУ. Так, в одно из двух «быстрых» АЛУ был добавлен блок обычного циклического сдвига. Теперь такие инструкции исполняются быстрее, поскольку в предыдущих реализациях Pentium 4 сдвиги трактовались как сложные инструкции и выполнялись на «медленном» АЛУ. Также гораздо быстрее в процессорах на ядре Prescott  выполняются операции целочисленного умножения. В предыдущих реализациях NetBurst целочисленное умножение выполнялось блоком FPU с предварительным переводом операндов сначала в формат с плавающей точкой, а потом обратно. В Prescott же операции целочисленного умножения стали выполняться целочисленным АЛУ, что ощутимо снизило время их выполнения. Так, скорость выполнения сдвигов возросла по меньшей мере в четыре раза, а целочисленные умножения стали выполняться примерно на 25% быстрее.

      Третье усовершенствование NetBurst в Prescott – оптимизация алгоритма предварительной выборки данных. Она призвана уменьшить отрицательный эффект от ситуаций, когда в кэш-памяти процессора отсутствуют данные для обработки. Усовершенствования затрагивают как программную предвыборку, инициируемую работающей программой, так и аппаратную предвыборку.

      Еще одно новшество ядра Prescott – это модернизация технологии Hyper-Threading за счет увеличения количества эксклюзивных ресурсов процессора для каждого потока, внедрения двух новых специальных инструкций для управления несколькими потоками и возможности в Prescott распараллеливать некоторые процессы, которые в Northwood могли выполняться только по одному (в частности, это касается одновременной работы потоков с кэш-памятью). В ядре Prescott доработан набор SIMD-инструкций, получивший наименование SSE3 и содержащий 13 новых инструкций. Расширилась и функциональность процессоров Pentium 4. Процессоры Pentium 4 на ядре Prescott совместимы с технологией EM64T (Intel Extended Memory 64 Technology), практически полностью идентичной 64-битным расширениям AMD64. Intel реализовала технологию Execute Disable Bit, аналогичную Enhanced Virus Protection корпорации AMD, и начинает  снабжать свои процессоры семейства Pentium 4 средствами Intel Enhanced SpeedStep, подобными Cool’n’Quiet от AMD.

      Кроме обычных процессоров Pentium 4, среди предложений Intel есть и процессор Pentium 4 Extreme Edition, позиционирование которого сходно с позиционированием Athlon 64 FX корпорации AMD: этот процессор ориентирован на самых требовательных пользователей. Pentium 4 Extreme Edition с частотой 3,46 ГГц выполнен на ядре Gallatin с 0,13-мкм техпроцессом, построенном, в свою очередь, на базе ядра Northwood. Основное отличие Pentium 4 Extreme Edition от обычных процессоров Pentium 4 на ядре Northwood – наличие кэш-памяти третьего уровня объемом 2 Мбайт и использование 1066-МГц системной шины.

      К 2005 году на смену традиционным массовым процессорам Celeron пришли процессоры семейства Celeron D с ядром Prescott. Благодаря новому ядру процессоры Celeron D приобрели увеличенную до 256 Кбайт кэш-память второго уровня, 533-МГц системную шину и совместимость с набором инструкций SSE3. Эти изменения заметно повысили производительность процессоров Celeron D по сравнению с предыдущим семейством Celeron, благодаря чему они стали достаточно удачным выбором с точки зрения соотношения цена/производительность.

      Хотя доминирующее положение на рынке ПК занимают процессоры с архитектурой «x86», следует отметить разработку достаточно прогрессивного процессора для менее распространенного семейства компьютеров Macintosh фирмы Apple. Такой разработкой стал  64-разрядный RISC-процессор IBM PowerPC 970, именуемый фирмой Apple как PowerPC G5. Процессор PowerPC G5 – это дальнейшее развитие довольно успешного предшественника – Power4. Однако если Power4 предназначался для серверов и высокопроизводительных рабочих станций, то PowerPC G5 ориентирован на настольные ПК. В новом процессоре отсутствует кэш-память третьего уровня. При разработке этого процессора существенное  внимание было уделено скорости работы с потоковыми данными, вследствие чего значительно изменилась системная шина этого процессора. PowerPC G5 изготавливается на производственных мощностях IBM с применением техпроцесса 0,13-мкм. Конвейер PowerPC G5, как и конвейеры процессоров  AMD, относительно невелик и состоит из десяти ступеней.

      Корпорация IBM решила не отказываться от полной обратной совместимости со старыми 32-разрядными приложениями. Это позволяет использовать на компьютерах серии Apple PowerMac G5 как старые 32-разрядные, так и новые 64-разрядные операционные системы MacOS и приложения. Увеличение же разрядности регистров процессора повлекло за собой рост доступного для процессора адресного пространства до 4 Тбайт. В рассматриваемом процессоре объем кэш-памяти второго уровня составляет 512 Кбайт, кэш-память первого уровня имеет 64 Кбайт для инструкций и 32 Кбайт для данных. При этом по пропускной способности и латентности кэш-память PowerPC G5 не уступают кэш-памяти Pentium 4.

К настоящему времени ведущими разработчиками и изготовителями современных процессоров для класса персональных компьютеров клона IBM PC являются корпорации Intel (примерно 82% рынка) и AMD (около 17% рынка). Очень незначительная часть (менее 1%) приходится на долю фирм VIA (C3) и Transmeta (Crusoe). От проникновения других архитектур этот рынок надежно защищен гигантским объемом программного обеспечения, ориентированного на архитектуру x86. Однако можно утверждать, что причины столь внушительного превосходства Intel носят главным образом не технологический, а исторический и маркетинговый характер.

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

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

      

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

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

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

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

Ситуация на рынке процессоров для портативных мобильных компьютеров до некоторых пор во многом определялась положением дел на рынке центральных процессоров для настольных ПК.

      Корпорациями AMD и Intel  для мобильных компьютеров предлагались те же самые процессоры с добавлением в них лишь технологии энергосбережения. При этом использование мобильного аналога высокопроизводительного процессора Pentium 4  – его модификации Pentium 4-М – с длинным конвейером и чрезвычайно высокими тактовыми частотами приводит к достаточно большому потреблению энергии, а поэтому возможно лишь в относительно тяжелых и громоздких переносных компьютерах. Именно поэтому Intel предложила новый мобильный процессор Pentium М со специализированной архитектурой. Базой для разработки Pentium М была выбрана архитектура предыдущего поколения процессоров Pentium III, однако  для увеличения тактовой частоты конвейер в Pentium М удлинен по сравнению с конвейером  Pentium III, кэш-память первого уровня расширена до 64 Кбайт, второго уровня – до 1 – 2 Мбайт. Кроме того, добавлена реализация набора инструкций  SSE2. Pentium М обладает усовершенствованным блоком предсказания переходов и поддерживает специальные технологии, призванные обеспечивать более рациональное использование ресурсов с точки зрения уменьшения энергопотребления. Pentium М имеет относительно невысокое тепловыделение, поскольку многие его блоки при отсутствии обращений к ним просто отключаются или переходят в состояние ожидания.

      Процессоры семейства Pentium M на ядре Banias с 0,13-мкм техпроцессом рассчитаны на тактовые частоты от 1,3 до 1,7 ГГц и 400-МГц системную шину, их энергопотребление не превышает 24 Вт. Pentium M на ядре Dothan с 0,09-мкм техпроцессом имеют вдвое большую кэш-память второго уровня (2 Мбайт), тактовые частоты от 1,5 до 2 ГГц, 400-МГц системную шину и энергопотребление не более 21 Вт. Все процессоры семейства Pentium M оснащены средствами Enhanced Intel SpeedStep. Благодаря этой технологии программное обеспечение ноутбука получает контроль над множителем тактовой частоты ЦП, что используется для ее понижения в моменты неполной загрузки процессора вплоть до 600 МГц. При этом время работы ноутбука от батарей заметно повышается, поскольку энергопотребление Pentium M в  экономичном режиме снижается до 6–8 Вт.

      Корпорация AMD противопоставила модельному ряду Pentium M корпорации Intel свои процессоры семейства Mobile Athlon 64 и Turion 64. Эти процессоры имеют архитектуру, полностью аналогичную архитектуре «настольных» моделей Athlon 64. Процессоры Turion 64 совместимы с 64-битными расширениями AMD64. Модельный ряд  Turion 64 представлен, во-первых, процессорами с кэш-памятью второго уровня объемом 1 Мбайт, которые имеют частоты от 1,6 до 2,2 ГГц  и энергопотребление до 60 Вт, во-вторых, процессорами с вдвое меньшей кэш-памятью второго уровня (512 Кбайт), которые имеют частоты от 1,6 до 2,0 ГГц  и энергопотребление до 35 Вт. Для снижения энергопотребления в этих процессорах применена фирменная технология PowerNow!, по сути аналогичная технологиям Cool’n’Quiet и Intel Enhanced SpeedStep. Программное обеспечение ноутбука также имеет возможность управления коэффициентом умножения частоты процессора, благодаря чему частота может быть снижена до 800 МГц, а энергопотребление процессора при этом составляет около 12 Вт.

      Для суперпортативных мобильных компьютеров (субноутбуков и мининоутбуков)  Intel предлагает специальные классы процессоров: Low Voltage Pentium M и Ultra Low Voltage Pentium M.   Эти процессоры благодаря пониженному напряжению питания и уменьшенной тактовой частоте имеют гораздо более низкие энергопотребление и тепловыделение. Так, у процессоров Low Voltage Pentium M на ядре Dothan тактовая частота 1,4 – 1,5 ГГц и максимальное энергопотребление 10 Вт. Класс процессоров Ultra Low Voltage Pentium M еще более экономичен: такие процессоры на ядре Dothan имеют тактовые частоты 1,0 – 1,2 ГГц и  энергопотребление, не превышающее 5 Вт. Напряжение питания этих процессоров составляет всего 0,96–1,05 В.   

      Для рынка недорогих ноутбуков корпорация Intel предлагает семейство процессоров Celeron M, представляющих собой упрощенные версии процессоров Pentium M. Celeron M с ядром Dothan работает на частотах от 1,3 до 1,5 ГГц, имеет кэш-память второго уровня объемом 1 Мбайт, частоту системной шины –  400 МГц, энергопотребление – до 21 Вт. У Celeron M отсутствует технология Enhanced Intel SpeedStep, поэтому  Celeron M менее экономичен, чем Pentium M. Помимо обычных Celeron M корпорацией Intel разработано семейство процессоров Ultra Low Voltage Celeron M, предназначенных для ультракомпактных ноутбуков. Эти процессоры имеют частоты 0,9 и 1,0 ГГц. Пониженные частоты и невысокое напряжение питания позволяют этим процессорам иметь энергопотребление всего 5 Вт.  

      Семейство процессоров AMD Mobile Sempron представляет собой упрощенные и удешевленные версии процессоров Mobile Athlon 64 и Turion 64. Такие процессоры на ядре Sonora укладываются в рамки энергопотребления до 25 Вт, имеют тактовые частоты  1,6 и 1,8 ГГц, кэш-память второго уровня объемом 128 – 256 Кбайт, работают с 800-МГц системной шиной HyperTransport. Процессоры  Mobile Sempron оснащены фирменными средствами энергосбережения – технологией PowerNow!, позволяющей понижать тактовую частоту в моменты неполной загрузки.

2.5. Процессоры для высокопроизводительных

вычислительных машин и систем

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

На рынке процессоров для высокопроизводительных вычислительных машин и систем (особенно в сегменте самых мощных из них) до последнего времени преобладали традиционные для этой сферы применения процессоры, такие как Alpha корпорации DEC, UltraSPARC корпорации Sun Microsystems, PA-RISC корпорации Hewlett-Packard, Power корпорации IBM, MIPS корпорации SGL. Однако лидирующие позиции на нем начинают занимать производители х86-процессоров, которым удалось практически полностью занять средний и нижний ценовые сегменты. И AMD, и Intel пользуются на этом рынке примерно той же стратегией, что и на мобильном. Они предлагают адаптированные для данных условий процессоры своих модельных рядов, доля продаж которых применительно к высокопроизводительным вычислительным машинам и системам благодаря относительно невысокой цене и большому количеству программного обеспечения для х86-архитектуры непрерывно увеличивается. Intel предлагает серию процессоров Хеоn двух модификаций. Первая из этих модификаций – Хеоn DP для рабочих станций и двухпроцессорных серверов – представляет собой практически полный аналог Pentium 4 с поддержкой многопроцессорности. Другая модификация – многопроцессорная версия Хеоn МP – оснащается кэш-памятью третьего уровня, объем которой составляет 1 или 2 Мбайт. Эти процессоры чаще всего используются в четырехпроцессорных конфигурациях, они имеют 400-МГц системную шину и оснащены средствами Hyper-Threading. AMD для высокопроизводительных вычислительных машин и систем до недавнего времени предлагала серию процессоров Athlon MP, представляющих собой полный аналог Athlon ХP, но способных работать в двухпроцессорных конфигурациях. Athlon MP смог завоевать немалую популярность благодаря выгодному сочетанию цена/производительность.

Дальнейшее усиление позиций корпораций Intel и AMD связано с внедрением 64-разрядных процессоров. Самые производительные вычислительные системы уже давно строятся на базе 64-разрядных RISC-процессоров, таких, например, как вышеупомянутые процессоры Alpha, Power, UltraSPARC, PA-RICS. Переход на 64 разряда дает то же, что в свое время дал переход от 8 к 16 и затем от 16 к 32 разрядам: значительное увеличение объема прямоадресуемой памяти и повышение скорости и/или точности некоторых вычислений. Intel и AMD при проектировании 64-разрядных процессоров используют почти прямо противоположные подходы. Создаваемая Intel архитектура не является продолжением х86. Хотя возможность использования программного обеспечения для х86 остается, делать это нецелесообразно, так как достигаемый при этом уровень производительности невысок. AMD же, наоборот, предлагает 64-разрядное расширение архитектуры х86, способное эффективно работать как на 32-, так и на 64-разрядных задачах. 64-разрядная архитектура IA-64 разрабатывается Intel с 1994 года при активном участии корпорации Hewlett-Packard. Эта архитектура имеет идеологию VLIW и реализована в ее  усовершенствованном варианте EPIC. Архитектура IA-64 впервые была применена Intel в 2001 году в процессоре Itanium с ядром Merced. Это сложный и дорогой процессор, содержащий 325 млн транзисторов: 25 млн в процессорном ядре, включая кэш-память первого и второго уровней объемом 32 и 96 Кбайт соответственно, и по 75 млн в каждой из четырех дополнительных микросхем, составляющих в сумме кэш-память третьего уровня объемом 4 Мбайт. Itanium поддерживает до 4 включенных параллельно процессоров (для их большего количества необходим соответствующий мост). На этом процессоре удалось достичь тактовой частоты 800 МГц и не более. Следующим шагом стал выпуск в 2002 году процессора Itanium 2 на базе ядра McKinley. По сравнению с Merced он быстрее, компактнее и намного лучше по всем основным параметрам. В Itanium 2 кэш-память второго уровня увеличена до 256 Кбайт, кэш-память третьего уровня ( до 3 Мбайт) интегрирована в процессорное ядро.

      Предлагаемое AMD 64-разрядное решение х86-64 реализуется в архитектуре Hammer, относящейся к восьмому поколению процессоров х86. Архитектура Hammer достаточно близка к архитектуре процессора Athlon, то есть является ее 64-разрядным расширением. Также имеется девять исполнительных блоков и конвейер длиной 12 стадий (конвейер увеличен на две стадии для увеличения предельных тактовых частот). Длина регистров увеличена до 64 бит, добавлено несколько новых регистров. Введено некоторое количество новых 64-разрядных инструкций. Поддерживается новый и весьма эффективный набор операций с плавающей точкой, использующий 16 новых 128-разрядных регистров. Объем кэш-памяти второго уровня – до 1 Мбайт.

      64-разрядный процессор AMD Opteron представлен в 2003 году. Он стартовал с частоты 1400 МГц.  Opteron  имеет много преимуществ как перед 64-разрядными серверными процессорами Intel, так  и перед традиционными  64-разрядными процессорами Alpha, Power PC, UltraSPARC, MIPS. Основной плюс Opteron: при относительно невысоких значениях цены и тепловыделения эти процессоры обладают высокой производительностью. Важным моментом следует признать и то, что разработка корпорации AMD, несмотря на 64-разрядную архитектуру, уже сейчас обеспечена достаточным количеством программного обеспечения. В первую очередь это заслуга архитектуры х86-64, которая благодаря своей обратной совместимости с 32-разрядной системой команд  х86 позволяет без потерь и даже с выигрышем в быстродействии исполнять обычный 32-битный программный код.

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

                                                                                            Таблица 2.2

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

Модель

процессора

Кодовое

наименование     процессорного

ядра

Тактовая частота

процессора,  ГГц  

Частота системной шины,  MГц

Кэш-память  L2,

        Кбайт

Норма  тех-

процесса,  мкм

Типичное

тепловыделение,

           Вт

Intel

Xeon DP

  Gallatin

  Nocona

  Irwindale

3,2

3,6

3,6

533

800

800

 512

 512

2048

 

0,13

0,09

0,09

70–75

70–75

70–75

Intel

Xeon MP

  

  Gallatin

  Potomac

  Cranford

3,0

3,33

3,66

 

400

400

400

  512

 1024

 1024

0,13

0,09

0,09

67–74

67–74

67–74

Intel

Itanium 2

  

  McKinley

  Madison

  Deerfield

  Madison 9M

1,0

1,6

1,6

1,6

400

533

667

800

  256

  256

  256

  256

0,18

0,13

0,13

0,09

 100

 120

 120

 120

Intel

Pentium D

  

  Prescott

3,2

800

2048

 

0,09

  69

AMD

Opteron

SledgeHammer

Venus/Troy/Athens

Denmark/Italy

 2,4

2,6

2,2

  800

1000

1000

1024

1024

2048

0,13

0,09

0,09

55–95

55–95

55–95

IBM

Power4+,

Power5

            –

1,9

 800

2048

0,13

 140

Резюме

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

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

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

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

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

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

      Процессоры ВМ прошли  сложный путь эволюции от первого относительно простого 4-разрядного микропроцессора  i4004 до современных 32- и 64-разрядных высокопроизводительных процессоров Pentium 4, Xeon, Itanium корпорации Intel и Athlon XP, Athlon 64, Opteron корпорации AMD, а также других менее распространенных моделей. Для рынка недорогих массовых компьютеров корпорациями Intel и AMD предлагаются более дешевые варианты своих базовых процессоров: Celeron, Duron, Sempron. Ведущие производители процессоров (а это, главным образом, Intel и AMD) все более четко позиционируют свои изделия по классам компьютеров, для которых эти процессоры предназначаются. Процессоры для мобильных переносных ПК характеризуются малыми величинами энергопотребления и тепловыделения. Процессорам для высокопроизводительных вычислительных машин и систем присущи более сложные схемные решения. Специфическими особенностями таких процессоров являются повышенные частотные характеристики и увеличенные объемы кэш-памяти, а также переход на 64-разрядную архитектуру.

Контрольные вопросы и задания

1. Какие функции выполняет процессор в вычислительной машине?

2. Что такое процессорные регистры и каково их назначение?

3. От каких параметров зависит производительность процессора?

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

5. Опишите механизм конвейерной обработки команд в процессоре.

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

7. На основе каких механизмов решаются проблемы условных переходов в конвейере команд процессора?

8. Чем отличается статический метод предсказания переходов в конвейере процессора от динамического метода?

9. Дайте понятие суперскалярной архитектуры процессора.

10. Назовите основные отличия архитектур процессоров CISK, RISK и VLIW.

11. Опишите векторные и матричные схемы работы процессоров.

12. Охарактеризуйте первые модели микропроцессоров корпорации Intel (от i8086  до  i80386).

13. Поясните функции математического сопроцессора.   

14. Чем отличались процессоры семейства  i80486 от предыдущих разработок корпорации Intel и других производителей процессоров?

15. Дайте общую характеристику процессоров  семейства Intel  Pentium.    

16. Назовите основные усовершенствования, впервые примененные в процессорах  Pentium MMX и Pentium Pro.

17.  Какими параметрами отличаются процессоры с торговым наименованием  Intel Celeron от исходных («полных») процессоров Intel Pentium?

18. Охарактеризуйте основные нововведения в процессорах Intel Pentium 4 и   AMD Athlon.

19. Назовите основные различия в архитектуре и параметрах современных процессоров корпораций  Intel  и AMD.    

20. Каковы особенности разработки процессоров для мобильных ПК?

21. Какие преимущества дает переход к 64-разрядной архитектуре процессоров и какие сложности возникают при ее практическом внедрении?

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

23. Какие типы процессоров наиболее часто используются в настоящее время при разработке новых многопроцессорных вычислительных комплексов.

3. Запоминающие устройства

вычислительных машин

         3.1. Назначение, характеристики, типы запоминающих устройств и основные принципы их построения

 

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

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

  1.  емкость хранения информации;

2) быстродействие ЗУ при операциях записи-чтения;

      3) удельная стоимость хранения единицы информации.

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

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

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

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

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

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

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

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

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

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

      Основными типами энергозависимой памяти  на электронных микросхемах являются статическая память (Static RAM – SRAM) и динамическая память (Dynamic RAM – DRAM). Исторически сложившееся использование аббревиатура RAM – Random Access Memory («память с произвольным доступом») для именования именно этих типов памяти не совсем корректно, поскольку памятью с произвольным доступом являются также и другие типы памяти, в частности, энергонезависимые типы ЗУ (см. далее).

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

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

      Энергонезависимые способы хранения информации на основе электронных микросхем прошли значительную эволюцию своего развития и совершенствования. Микросхемы энергонезависимой памяти относят к классу микросхем типа ROM (Read-Only Memory – «память только для чтения»). Однако, как будет следовать из дальнейшего изложения, название такой памяти – «память только для чтения» – также не является полностью корректным, потому что современные типы микросхем типа ROM допускают достаточно простые способы записи и изменения хранящейся информации.  Микросхемы типа ROM по возможностям и способу программирования разделяют на программируемые при изготовлении, однократно программируемые после изготовления и многократно программируемые.

      К микросхемам, программируемым при изготовлении, относятся микросхемы, часто именуемые MROM (MaskProgrammable ROM – «память только для чтения, программируемая с помощью маски»). Занесение информации в масочные микросхемы составляет часть производственного процесса и заключается в подключении или неподключении запоминающего элемента к разрядной линии считывания. В зависимости от этого из запоминающего элемента будет извлекаться 1 или 0. В роли перемычки выступает транзистор, расположенный на пересечении адресной и разрядной линий. Какие именно запоминающие элементы должны быть подключены к выходной линии, определяет маска, «закрывающая» определенные участки кристалла. В настоящее время масочные микросхемы – это один из наиболее дешевых видов ROM. Для них характерна высокая плотность упаковки запоминающих элементов на кристалле и высокие скорости считывания информации. Основной сферой применения масочных микросхем являются устройства, требующие хранения фиксированной информации. Например, они часто используют для хранения шрифтов в  печатающих устройствах.

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

      Класс многократно программируемых микросхем состоит из нескольких групп устройств. Обычно выделяют группы микросхем  EPROM, UV-EPROM, EEPROM и так называемую флэш-память.

      Микросхема памяти EPROM (Erasable Programmable ROM – «многократно программируемая память только для чтения») была основана на транзисторах типа МОП (металл – оксид – полупроводник). Запись данных в ячейки такого транзистора производилась путем облучения рентгеновскими лучами, который давал возможность неоднократно перезаписывать данные памяти, хотя количество циклов было ограниченным.

      В микросхемах UV-EPROM (Ultra-Violet Erasable Programmable ROM – «программируемая память только для чтения, стираемая  ультрафиолетовыми лучами») запись информации производится электрическими сигналами, однако перед операцией записи содержимое всех ячеек должно быть приведено к одинаковому состоянию (стерто) путем воздействия на микросхему ультрафиолетовым облучением. Микросхема помещается в керамический корпус, имеющий кварцевое окно, через которое и производится ультрафиолетовое облучение. Чтобы предотвратить случайное стирание информации, после облучения кварцевое окно заклеивают непрозрачной пленкой. Процесс стирания может выполняться многократно. Заряженный запоминающий элемент соответствует двоичному нулю, а разряженный – единице. Цикл программирования занимает несколько сотен миллисекунд. По сравнению с PROM микросхемы EPROM дороже, но возможность многократного перепрограммирования часто является определяющей.

Более привлекательным вариантом многократно программируемой памяти является электрически стираемая программируемая постоянная память EEPROM (Electrically Erasable Programmable ROM – «электрически стираемая программируемая память только для чтения»). Стирание и запись информации в эту память производятся побайтово, причем стирание – не отдельный процесс, а лишь этап, происходящий автоматически при записи. Операция записи занимает существенно больше времени, чем считывание – несколько сотен микросекунд на байт. В микросхеме используется тот же принцип хранения информации, что и в EPROM. Программирование EEPROM не требует специального программатора и реализуется средствами самой микросхемы. Выпускаются два варианта микросхем: с последовательным и параллельным доступом, причем на долю первых приходится 90% всего выпуска микросхем этого типа. В EEPROM с доступом по последовательному каналу (SEEPROM – Serial EEPROM) адреса, данные и управляющие команды передаются по одному проводу и синхронизируются импульсами на тактовом входе. Преимуществом SEEPROM являются малые габариты и минимальное число линий ввода/вывода, а недостатком – большое время доступа. В целом EEPROM дороже, чем UV-EPROM, а микросхемы имеют менее плотную упаковку ячеек, то есть меньшую емкость.

      Флэш-память – разновидность  энергонезависимой перезаписываемой памяти на электронных микросхемах. Она впервые анонсирована в середине 1980-х годов корпорацией Toshiba, а затем и корпорация Intel выпустила свой вариант флэш-памяти, после чего начался интенсивный процесс развития этого вида памяти.

      В настоящее время выпускается два основных типа флэш-памяти: NOR (логика ячеек NOT OR) и NAND (логика ячеек NOT AND). В качестве элементарных запоминающих ячеек во флэш-памяти используются транзисторы (один или два), которые подключены к разрядным шинам в памяти типа NOR параллельно, а в  памяти типа NAND – последовательно. Идея хранения данных основана на том, что такой транзистор способен сохранять заряд, соответственно позволяя определить его наличие или отсутствие и таким образом кодировать двоичную информацию. При записи заряд помещается на управляющий затвор транзистора (посредством переноса электронов или с использованием квантово-механических эффектов туннелирования – это зависит от типа памяти). Слово «флэш» (flash) в названии памяти скорее всего возникло из-за того, что операция записи требует подачи на сток и управляющий затвор транзистора высокого напряжения (отсюда flash, которое можно перевести как «молния», «вспышка»). Электроны с энергией, достаточной для преодоления потенциального барьера, создаваемого пленкой диэлектрика, переносятся на затвор, тем самым изменяя вольт-амперные характеристики транзистора. Аналогично, при стирании высокое напряжение подается на исток.

При организации логической схемы типа NOR требуется контакт на каждом транзисторе, а в схеме NAND используется контактная матрица. Благодаря этому схема NAND позволяет определить не только наличие или отсутствие заряда в ячейке, но и допускает измерение его величины, что дает возможность хранения двух битов информации в одном транзисторе (так называемые многоуровневые ячейки). Teoретически возможно хранение даже трех и более битов (известны образцы схем, хранящие до 8 бит), но на практике изготовление таких микросхем сопряжено с рядом технологических сложностей. Кроме того, хотя такой подход дает возможность снизить удельную стоимость хранения данных, он требует усложнения контроллеров и памяти. Память типа NOR обеспечивает возможность произвольного чтения-записи данных (вплоть до отдельных байтов) и быстрое считывание, но при этом относительно медленные схемы записи и стирания. Кроме того, такая память имеет довольно крупные ячейки (так как к каждой необходимо подвести контакт), что вызывает закономерные сложности в изготовлении и повышении емкости. Память типа NAND обеспечивает блочный доступ, быстрые процедуры стирания и записи, дешевизну и простоту наращивания емкости модулей. Данные на флэш-памяти NAND считываются поблочно. Размер единичного блока варьируется от 256 байт до 256 Кбайт, практически все современные микросхемы позволяют работать с блоками разного размера. Эта схема значительно снижает скорость записи небольших объемов данных в произвольные области памяти, но в то же время и увеличивает быстродействие при последовательной записи больших массивов данных. Благодаря блочной организации флэш-памяти NAND она дешевле сопоставимой по емкости памяти других типов.

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

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

      В запоминающих устройствах на магнитных носителях информация записывается и считывается с поверхности специального носителя (диска, ленты, карты), покрытого магнитным слоем. Запись и чтение производятся так называемыми магнитными головками, представляющими собой электромагниты с сердечником и обмоткой, по которой пропускается электрический ток. До записи информации ориентация на носителе элементарных магнитных участков (диполей или доменов) хаотичная, усредненное значение магнитной индукции на всех участках носителя близко к нулю. Информация записывается на магнитный слой с помощью электромагнитных импульсов нужной полярности, генерируемых током в обмотке головки. Головка намагничивает находящийся непосредственно под ней участок магнитного слоя носителя, изменяя таким образом вектор его намагниченности. После записи ориентация диполей становится упорядоченной. Диполи с противоположными направлениями векторов намагниченности интерпретируются соответственно как 0 или 1. Эта же головка используется и для чтения информации. В этом случае изменение магнитного поля вблизи головки, вызываемое движением носителя информации, индуцирует напряжение в обмотке. Управляющие схемы фиксируют полярность этого напряжения, определяют состояние магнитного покрытия диска и декодируют ранее записанную информацию. В штатном режиме считывание происходит без разрушения информации и может выполняться многократно. Перемагничивание участков магнитного слоя может происходить лишь в том случае, если магнитное поле в них преодолеет некоторый порог (так называемую коэрцитивную силу), свойственный данному носителю. Этот режим обеспечивается при новой записи или при намеренном удалении («стирании») информации. Информация на магнитных носителях сохраняется энергонезависимо и долговременно.

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

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

3.2. Иерархия запоминающих устройств

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

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

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

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

      Опираясь на накопленные статистические сведения, иногда свойства локальности выражают в численной форме в виде так называемого правила «90/10»: 90% времени работы программы связано с доступом к 10% адресного пространства этой программы.

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

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

      Центральное место в иерархии памяти ВМ занимает основное ЗУ (основная или внутренняя память). С точки зрения структурной организации ВМ (см. подраздел 1.2)  основное ЗУ является определяющим и минимально необходимым запоминающим устройством. Основное ЗУ включает в себя два типа устройств: оперативные запоминающие устройства (ОЗУ) и постоянные запоминающие устройства (ПЗУ).

      ОЗУ (или оперативная память) образует преимущественную долю основной памяти и называется оперативным, потому что используется для временного оперативного хранения информации (программ и данных) и оперативного обмена этой информацией с процессором, внешней памятью и периферийными подсистемами ВМ. В ОЗУ допускается как запись, так и считывание информации, причем обе операции выполняются однотипно, практически с одной и той же скоростью, и производятся с помощью электрических сигналов. Оперативная память в подавляющем большинстве практических случаев строится на базе микросхем динамической памяти DRAM. Хотя и предлагаются другие механизмы оперативного сохранения информации (например, микросхемы памяти типов MRAM и FeRRAM), ни одному из них пока не удалось даже приблизиться к тому соотношению емкости, стоимости и скорости работы, которое обеспечивают микросхемы на основе традиционного механизма DRAM. Известные и широко применяемые для других типов памяти быстродействующие микросхемы SRAM занимают относительно большую площадь и не позволяют получить недорогие микросхемы высокой емкости. Существующие менее дорогостоящие технологии не обеспечивают достаточного быстродействия, а недорогие и сравнительно быстрые технологии (например, флэш-память) пока имеют ограниченный для условий работы ОЗУ срок службы. То есть, элементарная ячейка DRAM до сих пор остается практически единственным вариантом фундамента, на котором строятся все массовые типы современной оперативной памяти.   

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

      ПЗУ строится на основе различных вариантов микросхем класса ROM и используется для энергонезависимого хранения постоянной или, по-другому, неизменной (точнее редко изменяемой) программной и справочной информации – комплекта программ базовой системы ввода/вывода (BIOSBasic Input Output System), драйверов постоянно используемых устройств, программ тестирования аппаратных средств, таблиц знакогенераторов, стандартных справочных сообщений и т. п.

      BIOS реализует следующие основные функции:

      1) выполнение при включении компьютера так называемой проверки POST (Power On Self Test) – тестовой проверки всех важнейших компонентов системы;

  1.  запуск загрузчика операционной системы – Bootstrap Loader;
  2.  обслуживание аппаратных прерываний от системных устройств – BIOS Hardware Interrupts;
  3.  предоставление операционной системе аппаратных драйверов и осуществление сопряжения между системной платой и компонентами компьютера – ROM BIOS Services;
  4.  предоставление для настройки специальной программы установки параметров BIOS и аппаратной конфигурации компьютера – программы  CMOS Setup.

В момент включения компьютера в его ОЗУ нет ни данных, ни программ, но процессору для работы нужны команды, в том числе и в первый момент времени после включения. Поэтому сразу после включения на его адресной шине выставляется стартовый адрес. Это происходит аппаратно, без участия программ (всегда одинаково). Этот исходный адрес указывает не ОЗУ (которое в момент включения компьютера является пустым), а область ПЗУ, где записан комплект программ BIOS. Из BIOS считываются команды, и начинается процесс запуска компьютера. Работа ряда стандартных устройств обслуживается программами (драйверами), входящими в BIOS, но такими средствами нельзя обеспечить работу со всеми возможными устройствами. Сведения о параметрах других внешних устройств, например, жестких и гибких дисках, а также сведения о конфигурации компьютера и ее изменениях записываются и хранятся в специальной области энергонезависимой памяти, называемой (традиционно по термину технологии изготовления) CMOS Memory. Она размещается в специальной микросхеме – контроллере. На этот контроллер непрерывно подается питание от специальной аккумуляторной батареи, расположенной на системной (материнской) плате, поэтому содержимое CMOS Memory сохраняется при выключении компьютера. Иногда такую память называют ППЗУ –  «полупостоянное» ЗУ. От ПЗУ эта память отличается тем, что данные в нее можно записывать и изменять автоматически или самостоятельно с помощью программы CMOS Setup в соответствии с тем, какие аппаратные компоненты входят в состав данного компьютера. В микросхеме CMOS хранятся сведения о гибких и жестких дисках, о процессоре, о некоторых других устройствах материнской платы. Программы, записанные в BIOS, считывают данные о составе оборудования компьютера из микросхемы CMOS, после чего они могут выполнить обращение к жесткому (а при необходимости и к гибкому или оптическому диску) и передать управление тем программам, которые там записаны. Кроме сохранения установок CMOS Setup аккумуляторная батарея обеспечивает постоянный ход часов реального времени (Real Time ClockRTC) и переключение даты.

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

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

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

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

      Оптимальное распределение разных типов ЗУ по уровням иерархии памяти способствует существенному повышению производительности ВМ в целом.

     3.3. Организация, функционирование и характеристики запоминающих устройств основной памяти

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

Ячейки динамической памяти объединяются в двумерную матрицу, где каждая ячейка адресуется номерами строки и столбца, на пересечении которых она находится. К микросхемам памяти подводятся шины управления, адреса и данных, которые используются для передачи соответственно команд (управляющих работой микросхем памяти), адресов строк и столбцов, данных (подробнее об указанных шинах см. в разделе 5). При матричной организации микросхем памяти реализуется координатный принцип адресации ячеек. Адрес ячейки, поступающий по шине адреса ВМ, пропускается через блок логики выбора, где он разделяется на две составляющие: адрес строки и адрес столбца. Адреса строки и столбца запоминаются соответственно в регистре адреса строки и регистре адреса столбца микросхемы. Регистры соединены каждый со своим дешифратором. Выходы дешифраторов образуют систему горизонтальных и вертикальных линий, к которым подсоединены запоминающие элементы матрицы, при этом каждый запоминающий элемент расположен на пересечении одной горизонтальной и одной вертикальной линии. Запоминающие элементы, объединенные общим «горизонтальным» проводом, принято называть строкой (row). Запоминающие элементы, подключенные к общему «вертикальному» проводу, называют столбцом (column). Фактически «вертикальных» проводов в микросхеме должно быть, по крайней мере, вдвое больше, чем это требуется для адресации, поскольку к каждому запоминающему элементу необходимо подключить линию, по которой будет передаваться считанная и записываемая информация.

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

      Для синхронизации процессов фиксации и обработки адресной информации внутри микросхемы адрес строки (RA – Row Address) сопровождается сигналом RAS (Row Address Strobe – строб адреса строки), а адрес столбца (СА – Column Address) – сигналом CAS (Column Address Strobe – строб адреса столбца). Вторую букву в аббревиатурах RAS и CAS иногда расшифровывают как Access – «доступ», то есть имеется строб доступа к строке и строб доступа к столбцу. Чтобы стробирование было надежным, эти сигналы подаются с задержкой, достаточной для завершения переходных процессов на шине адреса и в адресных цепях микросхемы.

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

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

      Рис.3.1. Временная диаграмма цикла чтения-записи данных

SDRAM-памяти

 

      Затем микросхема считывает данные с конденсаторов нужной строки и записывает их в буферный усилитель. Для выполнения этой операции микросхеме требуется какое-то время, называемое «RAS-to-CAS Delay» (задержка сигнала СAS после сигнала  RAS), которое обычно составляет 2–3 тактовых цикла и обозначается Trcd. Далее на шине адреса выставляется адрес столбца (или столбцов), а на шине управления активизируется стробирующий сигнал столбцов CAS. Микросхема, приняв сигнал CAS, «понимает», с каким элементом  (элементами) строки данных, записанной ранее в буферный усилитель,  предстоит работать, и готовится к тому, чтобы «выдать» его (их) значения на шину данных. Для совершения этой операции ей тоже требуется время, называемое «CAS Latency» (задержка после сигнала CAS), которое, как правило, составляет 2 – 3 тактовых цикла и обозначается Tcl.

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

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

Затем производится зарядка конденсаторов. На этом этапе значения ячеек строки, находящейся в буферном усилителе, записываются в соответствующие конденсаторы микросхемы памяти, после чего микросхема будет снова готова к выполнению очередного цикла чтения-записи данных. Длительность этого этапа называется RAS Precharge Time (время заряда до сигнала RAS), поскольку, как только он завершится, на шину управления можно снова подавать сигнала RAS . Промежуток времени, необходимый для этого этапа, составляет 2 – 3 тактовых цикла и обозначается Trp.

В последнее время все рабочие характеристики модулей SDRAM-памяти записываются в установленные на них SPD-микросхемы (Serial Presence Detect – «определение серийных характеристик»). Системная плата может считывать данные, «прошитые» в SPD-микросхемах, и в соответствии с ними автоматически устанавливать режим работы с модулями SDRAM-памяти. Однако ряд рабочих параметров SDRAM-памяти все же можно настроить средствами программы настройки BIOS современных системных плат, что можно использовать для разгона или, наоборот, замедления памяти (если память работает неустойчиво). Отметим наиболее важные из них:

DRAM Clock – частота тактового сигнала шины памяти. Стандартно – 100, 133 МГц или By SPD (в соответствии со значением, хранящимся в SPD-микросхеме);

      RAS-to-CAS Delay – время задержки сигнала CAS после сигнала RAS  (2 или 3 тактовых цикла);

СAS Latency – время задержки после сигнала CAS (2; 2,5 или 3 тактовых цикла);

      RAS Precharge Time – время заряда до сигнала RAS (2  или 3 тактовых цикла).

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

В SDRAM-памяти данные могут читаться в режиме произвольного или пакетного (burst) доступа. При произвольном доступе по шине данных однократно передается один элемент данных (например, одно слово), после чего цикл чтения заканчивается. При этом от момента подачи сигнала RAS до момента начала передачи данных по шине в идеальном случае проходит пять тактовых циклов: ожидание в течение времени «RAS-to-CAS Delay» – 2 такта, подача на адресную шину адреса столбца (или столбцов) и активирование на командной шине сигнала CAS – 1 такт, ожидание в течение времени «CAS Latency» – 2 такта. При пакетном доступе после передачи по шине первого элемента данных цикл чтения не заканчивается, а продолжается. При этом каждый последующий такт контроллера памяти считывает еще один элемент данных, который находился в той же строке данных, что и первый, и вместе с ним был «выдан» микросхемой памяти на шину данных. Как правило, при пакетном доступе за один цикл чтения обрабатывается до четырех или восьми элементов. В идеальном случае при передаче четырех элементов эта схема обозначается как «5-1-1-1», а при восьми – «5-1-1-1–1-1-1-1». Поэтому параметр DRAM Timing, соответствующий схеме работы SDRAM-памяти, может иметь характерные значения 5-1-1-1, 5-2-2-2, а параметр DRAM Burst Length, обозначающий количество элементов, передаваемых за один цикл в пакетном режиме, принимает значения 4 или 8.

Емкость основной памяти современных ВМ слишком велика, чтобы ее можно было реализовать на базе единственной микросхемы. Необходимость объединения нескольких микросхем ЗУ возникает также, когда разрядность ячеек в микросхеме ЗУ меньше разрядности слов ВМ. Отдельные микросхемы памяти могут объединяться в логические банки, с которыми возможна одновременная работа. Такой прием называется «чередованием банков» (Bank Interleaving) и он ускоряет работу памяти. Например, если требуется последовательно считать данные сначала из первого банка, а потом из второго, то контроллер памяти может начать считывать данные из второго банка, не дожидаясь окончания цикла чтения из первого. Стандартные значения параметра Bank Interleave: Disabled – не использовать чередование банков, 2 Bank  – чередование между двумя банками, 4 Bank – чередование между четырьмя банками.

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

Важнейшей характеристикой микросхемы памяти является быстродействие. Оно определяется временем выполнения элементарных действий между двумя операциями чтения либо записи данных. Последовательность этих операций называют рабочим циклом (или циклом обращения). Он включает указание адреса данных, чтение (запись). Время, необходимое для чтения (записи) данных по случайному адресу, называется временем доступа (Access time). Для современных микросхем оно составляет от 40 до 60 нс, что соответствует частоте появления данных от 16,7 до 25 МГц на выходе микросхемы.

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

По мере усовершенствования микросхем DRAM (FPM DRAM, EDO DRAM, BEDO DRAM, SDRAM) длительность времени цикла обращения уменьшалась и стала показателем их быстродействия. В синхронной памяти SDRAM для запуска сигналов стробирования используется внешний импульс от системной шины, поступающий с той же частотой, на которой она работает. Поэтому вместо указания времени цикла обращения (типовые значения составляют 12, 10, 8, 7 и 6 нс) для модулей SDRAM указывают максимально допустимую рабочую частоту в мегагерцах.

В обозначении модулей памяти встречается аббревиатура ECC – это технология выявления и исправления ошибок (Error Checking and Correction), которая заменила так называемый контроль четности в современных модулях памяти. При этом каждый бит данных включается более чем в одну контрольную сумму, поэтому при возникновении в нем ошибки возможно восстановить адрес и исправить сбойный бит.

      Асинхронная память типа DRAM ранее выпускалась в виде так называемых модулей конструктива SIMM (Single Inline Memory Module – «односторонне расположенные контакты модулей памяти»). Пришедшая ей на смену синхронная память SDRAM имеет модули памяти конструктива DIMM (Double Inline Memory Module – «двусторонне расположенные контакты модулей памяти») и 64-разрядный интерфейс. Память SDRAM начала свой путь с частоты 66 МГц (обозначение модулей – PC66) и объемов памяти 16, 32, 64 Мбайт. Затем частоты были повышены до 100 МГц (PC100) и 133МГц (PC133), а объемы – до 128, 256, 512 Мбайт. Пиковая пропускная способность памяти PC 133 достигает 1064 Мбайт/с. К настоящему времени SDRAM считается устаревшей модификацией синхронной памяти.

С интенсивным увеличением рабочих частот новых процессоров их производительность стала существенно ограничиваться частотными возможностями оперативной памяти. Это особенно актуально для высокоскоростных процессоров класса Pentium 4, имеющих шины с пропускной способностью 4,26;  6,4 Гбайт/с и выше, которые вынуждены при отсутствии необходимых данных в кэш-памяти простаивать в ожидании данных из  ОЗУ в течение значительного количества тактов. С появлением  новых мощных операционных систем ужесточились требования и к объему ОЗУ. При малых объемах ОЗУ операционной системе приходится чаще считывать данные с жесткого диска, быстродействие которого гораздо ниже, чем оперативной памяти. Это также существенно сказывается на производительности ВМ в целом.

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

      Частота ячейки DRAM за все время существования этой памяти, насчитывающее несколько десятилетий, изменилась всего на порядок и приблизилась к своему технологическому пределу. При сохранении классической организации ячейки памяти поднимать частоту ее работы достаточно сложно. Для этого необходимо, также как и в процессорных микросхемах, уменьшение геометрических размеров ячейки. Однако переход на новые технологические процессы требует больших финансовых затрат, что приводит к существенному повышению стоимости такой памяти. Увеличение ширины шины памяти также ограничено технологическими возможностями. Например, проектирование разводки и производство системных плат с 128-битной шиной гораздо более трудоемки и финансово затратны по сравнению с теми платами, на которых разведены только 64-битные шины памяти.  А стоимость разработки и производства плат с 256-битной шиной настолько велико, что фактически оправданно только для сегмента дорогостоящих высокопроизводительных серверов.

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

     

Рис 3.2. Архитектура модулей памяти на базе микросхем DRAM:

а – SDR,  б – DDR,   в – DDR2

(Fс – частота микросхемы, Fш – частота шины, Fэ – эффективная частота)

Как уже было сказано, память SDRAM состоит из массива ячеек DRAM, буферов ввода-вывода и усилителей уровня сигнала (I/O buffers), а также схемы питания и регенерации. Все три подсистемы работают на одной тактовой частоте, то есть синхронно. Для примера выберем частоту 100 МГц. Это означает, что из массива ячеек памяти данные по шине шириной 64 бита, попадают в буферы ввода-вывода. Оттуда они по такой же шине шириной 64 бита передаются дальше, контроллеру памяти. Модуль памяти, составленный из таких микросхем, известен как память PC 100 с пропускной способностью 800 Мбайт/с. Данные передаются один раз за такт по переднему фронту сигнала.

      Улучшенным вариантом памяти SDRAM стала память типа DDR SDRAM (Double Data Rate SDRAM – «синхронная память с удвоенной скоростью передачи данных»). После появления DDR SDRAM обычную память SDRAM начали именовать идентично: SDR SDRAM (Single Data Rate SDRAM SDRAM – «синхронная память с одинарной скоростью передачи данных»). Память DDR SDRAM получила свое название потому, что позволяет при той же тактовой частоте работы микросхем передавать данные вдвое быстрее, чем классическая SDRAM, а именно по два раза за такт – по переднему и заднему фронтам сигнала. При этом сами ячейки памяти DRAM работают на прежних частотах, а обеспечивается разделение внутренней и внешней шин: внутренняя имеет вдвое большую ширину, что позволяет увеличить скорость передачи данных внутри микросхемы. Другими словами, внутренняя шина между массивом ячеек DRAM и буферами ввода-вывода вдвое шире внешней шины от буфера к контроллеру, но последняя имеет вдвое более высокую частоту.

Проиллюстрируем это цифрами: пусть ширина внутренней шины микросхемы памяти 32 бита, а частота массива ячеек 100 МГц. Тогда для SDRAM памяти буфер передает данные по внешней шине шириной 32 бита с той же частотой 100 МГц, т. е. на всем пути никаких изменений не происходит. И поскольку у модуля памяти разрядность шины 64 бита, данные читаются одновременно из двух микросхем. В памяти DDR в этом случае данные из массива ячеек памяти по внутренней 64-битной шине с частотой 100 МГц передаются в буфер ввода-вывода. А контроллеру они передаются по вдвое более узкой 32-битной шине, но зато за каждый такт передается вдвое больше битов, т. е. результирующая производительность вдвое больше, чем у отдельной ячейки памяти. Разрядность модуля 64 бита, поэтому считывание ведется одновременно из двух его микросхем.

      Представленный в примере вариант исполнения памяти получил название DDR200 (по эффективной частоте передачи данных), однако используется и обозначение PC1600 (по пропускной способности шины памяти). Соответственно ячейки DRAM в памяти DDR266 (PC2100) работают на частоте 133 МГц, в DDR333 (PC2700) – 166 МГц, в DDR400 (PC3200) – 200 МГц, в DDR550 (PC4400) – 275 МГц. Последующее наращивание частоты работы ячеек весьма проблематично и никакого запаса производительности технология DDR пока не имеет.

      Однако дальнейшее развитие память DDR получила благодаря использованию принципов мультиплексирования, аналогичных выше описанным. Так же, как и в обычной DDR-памяти, микросхема выдает данные на буферы ввода-вывода по широкой внутренней 64-битной шине с частотой 100 МГц. Однако теперь они уходят из буфера по еще более быстрой и еще более высокочастотной шине – из буфера к контроллеру памяти ведет 16-битная шина, работающая на удвоенной частоте – 200 МГц, что вместе с передачей данных дважды за такт обеспечивает эффективную частоту модуля памяти 400 МГц. Соответственно 64-битные шины модуля памяти позволяют передавать данные из четырех микросхем (банков) одновременно. Такой модуль памяти обозначается DDR2-400, его название образовано по аналогии с памятью DDR: в соответствии с эффективной частотой передачи данных к контроллеру памяти.

Таким образом, используя массивы ячеек DRAM с одинаковой частотой (100 МГц), в разных типах памяти достигается различная производительность модуля памяти. Для SDRAM это 800 Мбайт/с, для DDR200 уже вдвое больше – 1600 Мбайт/с, а для DDR2-400 – 3200 Мбайт/с и для  DDR2-533 – 4256 Мбайт/с.  Благодаря принципам мультиплексирования удалось, сохранив низкую частоту работы ячейки памяти, получить высокую пропускную способность модуля памяти.

Важно подчеркнуть, что пропускная способность описывает лишь теоретическую предельную производительность модуля памяти, на которую значительное влияние оказывают задержки. Как уже упоминалось выше, ячейка памяти доступна для чтения далеко не всегда из-за необходимости такой процедуры, как регенерация. Кроме того, даже если ячейка доступна, то мгновенно получить данные не удается ввиду наличия еще и других видов задержек, таких как время выставления адреса столбца, строки, минимальное время между выставлением адресов. Эти задержки – следствие архитектуры ячейки памяти DRAM и будут, разумеется, присутствовать в любом типе памяти, построенном на ее базе. В приведенном выше примере частота работы массива ячеек в модулях PC100, DDR200 и DDR2-400 одинакова (100 МГц), значит и суммарное время задержки будет одним и тем же (оно равно произведению длительности такта на количество тактов задержки). Однако, например, при использовании вместо модуля  PC100 более быстрого модуля  PC133, ячейки DRAM в котором работают на частоте 133 МГц, память DDR200, имея превосходство по пропускной способности, по задержкам будет более медленной, чем PC 133. Действительно, при одинаковом количестве тактов задержки частота PC133 на треть выше (а такт соответственно на треть короче). В результате заметный эффект от внедрения памяти DDR появился лишь тогда, когда появилась память DDR266 со сравнимыми с PC133 задержками.

      Следует отметить, что согласно статистическим данным, наибольшая частота обращений к памяти (более 50%) приходится на уже открытые страницы памяти, следовательно наиболее существенное влияние на быстродействие модулей памяти оказывает упоминавшийся выше параметр CAS Latency (время задержки после сигнала CAS), часто обозначаемый в характеристиках модулей памяти как параметр CL. Наиболее качественные модули памяти имеют значение CL=2. Стандартным уровнем считается CL=2,5. Однако, так как длительность такта с ростом частоты уменьшается, сохранять низкий уровень задержек при повышенных частотах труднее. В связи с этим при высоких частотах (333 и 400 МГц) не всегда удается обеспечить стабильную работу памяти в режиме CL=2.

      Принципы мультиплексирования, аналогичные примененным в памяти DDR2, впервые были реализованы корпорацией Rambus в 1997 году в памяти, известной как RDRAM (Rambus DRAM). В ней также были повышены эффективные тактовые частоты до 400 МГц при одновременном уменьшении ширины выборки до 16 бит. Для борьбы с электромагнитной индукцией и интенсивным тепловыделением (так как этот тип памяти работал на высоких частотах) модули RDRAM закрывались защитным металлическим кожухом и имели специальные теплорассеивающие радиаторы.

Корпорация Intel  в 2001–2002 гг. активно продвигала на рынке память RDRAM, однако в дальнейшем в силу маркетинговых соображений переориентировалась на более дешевую, чем Rambus, память DDR SDRAM.

      Важнейшие характеристики основных типов микросхем памяти представлены в табл. 3.1.

Таблица 3.1

Характеристики основных типов микросхем памяти

Наименование

Максимальная  физическая частота,

     МГц

Максимальная  эффективная

частота,

МГц

Ширина

шины,

 бит

Пропускная способность,

Мбайт/с

SDR SDRAM

DDR SDRAM

DDR2  SDRAM

133

275

133

        

        133

550

533

64

64

64

1064

4400

4256

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

     3.4. Организация и функционирование кэш-памяти

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

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

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

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

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

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

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

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

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

Другой возможный алгоритм замещения – алгоритм, работающий по принципу очереди типа «первый вошел, первый вышел» (First In First Out – FIFO). Здесь заменяется строка, дольше всего находившаяся в кэш-памяти. Алгоритм легко реализуется с помощью рассмотренной ранее очереди, с той лишь разницей, что после обращения к строке положение соответствующей ссылки в очереди не меняется.

Еще один алгоритм – алгоритм замены «наименее часто использовавшейся строки» (Least Frequently Used – LFU). При реализации этого алгоритма каждая строка связывается со счетчиком обращений, к содержимому которого после каждого обращения добавляется единица. Первой заменяется та строка в кэш-памяти, счетчик которой содержит наименьшее число.

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

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

Для разрешения первой из рассмотренных ситуаций (когда процессор выполняет операцию записи) в системах с кэш-памятью предусмотрены определенные методы обновления ОЗУ, которые можно разбить на две большие группы: методы сквозной записи (write through) и методы обратной записи (write back). По методу сквозной записи прежде всего обновляется слово, хранящееся в ОЗУ. Если в кэш-памяти существует копия этого слова, то она также обновляется. Если же в кэш-памяти отсутствует нужная копия, то либо из ОЗУ в кэш-память пересылается блок, содержащий обновленное слово (сквозная запись с отображением), либо этого не делается (сквозная запись без отображения). Согласно методу обратной записи, слово заносится только в кэш-память. Если соответствующей строки в кэш-памяти нет, то нужный блок сначала пересылается из ОЗУ, после чего запись все равно выполняется исключительно в кэш-память. При замещении строки ее необходимо предварительно переслать в соответствующее место ОЗУ. Для метода обратной записи, в отличие от алгоритма сквозной записи, характерно то, что при каждом чтении из ОЗУ осуществляются две пересылки между ОЗУ и кэш-памятью.

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

      В современных ВМ применяется многоуровневая иерархия кэш-памяти. Так простейшая двухуровневая система включает  кэш-память первого уровня (L1), расположенную между процессором и кэш-памятью второго уровня (L2), которая в свою очередь расположена между L1 и ОЗУ. При доступе к памяти процессор сначала обращается к кэш-памяти первого уровня. В случае промаха производится обращение к кэш-памяти второго уровня. Если информация отсутствует и в L2, выполняется обращение к ОЗУ и соответствующий блок заносится сначала в L2, а затем и в L1. Благодаря такой процедуре часто запрашиваемая информация может быть быстро восстановлена из кэш-памяти второго уровня. Потенциальная экономия за счет применения L2 зависит от вероятности попаданий как в L1, так и в L2. В целом практическое использование кэш-памяти второго уровня существенно повышает производительность работы ВМ. Для ускорения обмена информацией процессора с кэш-памятью второго уровня их часто соединяют специальной шиной, так называемой шиной заднего плана, в отличие от шины переднего плана, связывающую процессор с ОЗУ. Дальнейшее увеличение эффективности работы системы памяти достигается введением кэш-памяти третьего (L3) и даже четвертого (L4) уровней. Характер взаимодействия очередного уровня с предшествующим аналогичен описанному для L1 и L2.

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

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

3.5. Внешние запоминающие устройства на магнитных дисках

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

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

Носителем информации в НГМД (FDDFloppy Disk Driver) является гибкий пластиковый диск, на который нанесен ферромагнитный слой. Долгое время стандартный диаметр такого диска для ПК равнялся 5,25 дюйма. Затем на компьютерах типа AТ впервые появились накопители для дискет формата 3,5 дюйма, которые применяются и в настоящее время. Гибкий диск в этих дискетах заключен в жесткий пластиковый конверт (корпус), что лучше защищает диск от пыли и деформации. Все накопители формата 3,5 дюйма имеют 80 треков, а по продольной плотности существуют три градации:  9,  18 или 36 секторов на треке (соответственно,  емкость дискеты 720 Кб;  1,44 Мб и 2,88 Мб). Емкость 1,44 Мб (стандарт HD) является  наиболее распространенной. Дискеты с емкостью 2,88 Мб (стандарт ED) широкого распространения не получили ввиду необходимости специальных дисководов для работы с такими дискетами.

Для подключения  НГМД используется 34-проводной (34-жильный)  шлейф (ленточный кабель) с  перевернутым фрагментом из 7 проводов с номерами 10 – 16. Этот поворот  позволяет подключать к контроллеру одним шлейфом до двух НГМД, причем адрес накопителя определяется его положением на шлейфе: для привода «А:» фрагмент перевернут, для «В:» – нет. При установке параметров в CMOS Setup «А:» и «В:» можно менять местами без переключения кабеля.

Скорость вращения диска в НГМД – 300 об/мин, скорость обмена данными около 500 Кбайт/сек, среднее время доступа – около 100 мс.

      Накопители на жестких магнитных дисках (НЖМД или HDDHard Disk Drive) являются главными устройствами дисковой памяти большинства ВМ. Закрепившимся неофициальным названием НЖМД является  термин «винчестер», возникший из-за случайного совпадения обозначения первых НЖМД с обозначением знаменитой американской винтовки типа «Винчестер». К НЖМД предъявляются следующие основные требования: большой объем хранения, малое время доступа, большие скорости передачи данных, высокая надежность. НЖМД состоит из следующих четырех главных элементов, каждый из которых вносит свой вклад в его общие характеристики: носителя  (пакета дисковых пластин, вращающихся на одной оси), магнитных головок чтения-записи, позиционера (устройства, «наводящего» головки на нужную дорожку) и контроллера, обеспечивающего согласованное управление всеми элементами диска и передачу данных между ним и компьютером.

      Пластины представляют собой диски из алюминиевого сплава или стеклообразного материала (стеклообразные пластины получили в последнее время более широкое распространение), поверхность которых покрыта несколькими слоями магнитных и немагнитных материалов, защищенных сверху тонким слоем алмазоподобного графита. Пластины укреплены на шпинделе двигателя, который вращает их с весьма высокими угловыми скоростями (до 15 тыс. об/мин). Головка «парит» над поверхностью вращающейся пластины на расстояниях порядка 10–15 нм. Расстояние от головки до магнитного слоя при этом заметно больше – до 30 нм. Защитный слой, наносимый на головку и пластины, обладает чрезвычайно высокой прочностью, так что «падение» головки на поверхность пластины в случае, например, непредвиденной остановки двигателя не приводит в современных накопителях к выходу их из строя, как это было в НЖМД первых поколений.

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

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

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

      Диски выпускаемых в настоящее время НЖМД имеют диаметр, равный 3,5 дюйма для стационарных «настольных» компьютеров и 2,5; 1,8; 1,0; 0,8 дюйма для ноутбуков и других сверхпортативных компьютеров.  Скорости вращения для 3,5-дюймовых дисков составляют 15000, 10000, 7200 и 5400 об/мин, для 2,5-дюймовых и более миниатюрных дисков 7200, 5400, 4200 и 3600 об/мин.

      Емкость предлагаемых к продаже НЖМД к настоящему времени составляет до 250300 Гбайт, а плотность записи до 60–70 Гбит на квадратный дюйм. Характерна явная тенденция к увеличению значений этих параметров.

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

Сложнее обстоит дело со временем доступа к данным, хотя и на него влияет увеличение поперечной плотности записи, т. к. позволяет при той же емкости уменьшить диаметр пластины, а, следовательно, путь, проходимый головкой в поисках нужной дорожки. К сожалению, кроме времени поиска, то есть времени перемещения головки на нужную дорожку, которое зависит от быстродействия позиционера, существует еще так называемое «скрытое» время задержки, или  латентность (latency), то есть время от выхода головки на заданную дорожку до появления под ней нужного сектора с данными. Естественно, что в лучшем случае оно может равняться нулю, а в худшем – времени полного оборота диска. Принято считать, что в среднем латентность равна времени полуоборота, что для скоростей вращения современных дисков, равных 5400, 7200, 10 000 и 15 000 об/мин, составляет 5,6;  4,2;  3 и 2 мс соответственно.

Еще один параметр, влияющий на производительность (хотя и не столь существенно), – объем кэш-памяти (или буферной памяти) контроллера диска. Объем кэш-памяти, который в накопителях предыдущих поколений не превышал 512 Кбайт, к настоящему времени в большинстве недорогих моделей широкого применения уже составляет до 2 Мбайт, а в профессиональных  моделях достигает 8 и даже 16 Мбайт.

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

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

В последнее время наблюдается все более широкое внедрение в массовые компьютеры технологии объединения нескольких накопителей в единый дисковый массив, ранее применяемой  лишь в высокопроизводительных системах. Эта технология носит наименование RAID (Redundant Array of Independed Disks – избыточный массив независимых дисков). Создание RAID-массива преследует три основные цели: увеличить объем устройства хранения информации, повысить скорость передачи данных и надежность хранения. По достижении первой цели при надлежащей организации размещения данных легко «вытекает» и вторая: достаточно размещать последовательные блоки данных с чередованием на разных дисках при наличии буферизации, чтобы во время чтения/записи скорость передачи информации между дисковым массивом и компьютером стала равной сумме скоростей, с которыми происходит обмен между отдельными накопителями. Третья цель противоречит первым двум: надежность хранения данных может быть увеличена только при обеспечении избыточности, т. е. при увеличении доли служебной информации, что приводит к уменьшению доли полезной. Следовательно, технология RAID позволяет решать самые разные задачи, начиная от простого пропорционального расширения дискового пространства и, следовательно, роста скорости обмена данными, до обеспечения их сохранности при полном выходе из строя одного или даже нескольких накопителей.

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

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

    3.6. Внешние запоминающие устройства

на магнитных   лентах

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

Отсчет истории современных кассетных ленточных накопителей обычно ведется с 1972 года, когда корпорация 3М представила накопитель на так называемой «четверть-дюймовой» кассете QIC с 6-мм пленкой (Quarter-Inch tape Cartridge – «картридж с четверть-дюймовой пленкой»). Кассета QIC похожа на обычную аудиокассету, имеет подающую и приемную катушки, соединенные специальным приводным ремнем, а лента приводится в движение ведущим валом, к которому лента прижимается резиновым роликом. Данные записываются на продольные дорожки,  параллельные краям ленты. Количество дорожек в современных накопителях может доходить до 144. С обеих сторон от записывающей головки располагаются головки чтения, обеспечивающие немедленный контроль записи и перезапись блока в случае обнаружения ошибок (независимо от направления движения ленты).

Множество стандартов, принятых за время существования QIC, привело к тому, что большинство таких накопителей стали несовместимыми друг с другом. Кассеты нового стандарта Travan продолжили линию QIC. Они отличаются повышенной стабильностью конструкции, включают механизмы поддержания постоянного натяжения ленты и другие усовершенствования. Кассеты этого стандарта (TR-4, TR-5, TR-6) широко применяются в настоящее время. Лента в них имеет ширину 8 мм (0,315 дюйма). Емкость 72-дорожечной кассеты TR-4 составляет 4 Гбайт (при использовании сжатия – до 8 Гбайт), скорость передачи данных может достигать 1,2 Мбайт/с. Для 108-дорожечной кассеты TR-5 эти показатели равны соответственно 10 (20) Гбайт и 1,8 Мбайт/с, для 144-дорожечной кассеты TR-6 – 16 (32) Гбайт и 2,7 Мбайт/с.

В 1988 г разработан стандарт DDS (Digital Data Storage – «хранение цифровых данных»), определяющий способ записи на цифровые звуковые ленты DAT (Digital Audio Таре) произвольных цифровых данных. В накопителях DAT для записи на 4-мм ленту используется технология спиральной развертки, аналогичная применяемой для видеозаписи. Более высокие показатели емкости и производительности в этом случае достигаются ценой повышенного износа ленты (плотно прилегающей к вращающемуся со скоростью 2000 об/мин блоку головок) и заметно большей стоимостью. Стандарты серии DDS предусматривали кассеты емкостью до 20 Гбайт и скоростью передачи до 4,8 Мбайт/с, сохраняя совместимость с носителями более ранних стандартов.

В 1996 году был выпущен первый накопитель Mammoth на основе нового лентопротяжного механизма без ведущих валов, обеспечившего гораздо более бережное обращение с лентой, а следовательно, возможность применения более современных тонких лент.  Накопители Mammoth к 2001 году имели емкость до 60 Гбайт, а скорость передачи – до 12 Мбайт/с.

В 1996 году также появились накопители на 8-мм ленте со спиральной разверткой, в которых была применена разработанная  IBM технология сжатия данных, повышающая коэффициент компрессии до 2,6:1. Эти накопители имели  емкостью до 260 Гбайт и скоростью передачи данных до 31 Мбайт/с.

В 1998 году корпорация Quantum представила новую технологию SuperDLT (Digital Linear Tape – «цифровая линейная лента») с лазерной системой точного позиционирования головки относительно ленты. Современный вариант SuperDLT имеет емкость 220 Гбайт и скорость передачи данных до 32 Мбайт/с. Накопители формата Ultrium имеют максимальную емкость до 200 Гбайт и скорость передачи данных до 40 Мбайт/с.

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

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

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

     3.7. Внешние запоминающие устройства

на оптических дисках

Первые оптические компакт-диски CD-DA (Compact DiskDigital Audio – «цифровой звуковой компакт-диск) и CD-ROM (Compact DiskRead-Only Memory) для записи, соответственно, звука и данных появились в начале 1980-х годов. На сегодняшний день компакт-диски являются недорогими, массово производимыми, надежными носителями информации как в бытовой аудиовидеотехнике, так и в вычислительной технике. В настоящее время накопитель на оптическом компакт-диске является практически обязательным компонентом современного компьютера. С момента своего появления технология производства CD-устройств постоянно развивается и совершенствуется.

Классический компакт-диск CD-ROM, получивший массовое распространение, представляют собой пластиковый поликарбонатный диск (чаще всего диаметром 4,72 дюйма) и имеет двухслойное покрытие: во-первых, отражающий слой из алюминия, золота, серебра или других металлов и сплавов, во-вторых, защитный слой из лака. Запись информации на такие диски осуществляется в производственных условиях лазерным лучом большой мощности, который «выжигает» на поликарбонатной основе компакт-диска спиральную дорожку с микроскопическими впадинами («питами» от pits – «углубления»). С помощью питов, собственно, и кодируется двоичная битовая информация, записываемая на диск (см. подраздел 3.1). В результате этого процесса создается так называемый первичный диск («мастер-диск»). Дальнейшее тиражирование компакт-дисков производится с помощью первичного диска методом литья под давлением или высокоточной штамповки.

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

Важнейшей характеристикой накопителей на оптических дисках является максимальная скорость, с которой данные пересылаются от носителя информации в компьютер. Непосредственно со скоростью передачи данных связан такой параметр, как скорость вращения диска. Первые дисководы CD-ROM передавали данные со скоростью 150 Кбайт/с. В последующих поколениях устройств  скорость увеличивалась, как правило, кратно этой скорости. Поэтому приводы назывались «накопители с двух-, трех-, четырехкратной скоростью» и т. д. К низкоскоростным накопителям CD-ROM предъявлялось требование обеспечения постоянной линейной скорости считывания данных. Поэтому в них угловая скорость CD изменялась в зависимости от местонахождения считываемого (записываемого) участка дорожки для того, чтобы обеспечить постоянную линейную скорость носителя над головкой. Так при считывании информации с внутренней части диска скорость вращения должна составлять около 500 об/мин, а при считывании с внешней части – около 200 об/мин, т. е. изменяться в 2,5 раза. Такая технология давала возможность работы с постоянной оптимальной плотностью записываемых данных и относительно высокой емкостью дисков. Скоростные CD-ROM, начиная с коэффициента кратности 12х, обеспечивают трафик нужной минимальной величины в любом месте диска даже при постоянной угловой скорости вращения. Поэтому современные высокоскоростные накопители имеют постоянную угловую скорость и тем самым непостоянную линейную. На периферийных участках данные считываются с большей скоростью (4–7,8 Мбайт/с). Средняя скорость считывания при этом гораздо ближе к минимальным значениям, поскольку запись на диске начинается с внутренних областей.

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

В конце 1980-х годов появились компакт-диски с возможностью однократной записи CD-R (Compact Disk Recordable – «записываемый компакт-диск»). Для хранения информации в них используется записывающий слой из органического полимерного красителя, оптически «темнеющего» от нагревания под воздействием лазерного луча. Длина волны лазерного луча (как и при чтении) составляет 780 нм, однако его интенсивность при записи на порядок выше, чем при чтении. «Затемненные» участки диска CD-R подобны питам и изменяют физические параметры отраженного лазерного луча.

      Во второй половине 1990-х годов начат выпуск более универсальных накопителей и дисков CD-RW (Compact Disk ReWritable – «компакт-диск перезаписываемый») с возможностью перезаписи и многократной записи. В отличие от органических красителей, используемых для формирования активного слоя в дисках CD-R, в CD-RW активным слоем является специальный поликристаллический сплав (серебро–индий–сурьма–теллур), который переходит в жидкое состояние при сильном (500–700оС) нагреве лазером. При последующем быстром остывании жидких участков они остаются в аморфном состоянии, поэтому их отражающая способность отличается от поликристаллических участков. Возврат аморфных участков в кристаллическое состояние осуществляется путем более слабого нагрева ниже точки плавления, но выше точки кристаллизации (примерно 200оС). Выше и ниже активного слоя располагаются два слоя диэлектрика (обычно двуокиси кремния), отводящих от активного слоя излишнее тепло в процессе записи. Все эти слои прикрыты отражающим слоем и нанесены на поликарбонатную основу, в которой выпрессованы спиральные углубления (они необходимы для точного позиционирования головки и несут адресную и временную информацию).

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

Наиболее распространенная емкость CD-дисков – 650–700 Мбайт. С целью существенного увеличения этой емкости было разработано семейство новых оптических дисков, получивших название DVD (Digital Versatile Disk – «цифровой многофункциональный диск»). В результате ряда технологических усовершенствований удалось увеличить емкость диска DVD в 7–25 раз по сравнению с емкостью точно такого же по размерам традиционного СD. Прежде всего этому способствовало применение вместо инфракрасного лазера с длиной волны 780 нм лазера красного диапазона с длиной волны 635 или 650 нм. Уменьшение длины волны позволило сократить минимальный размер питов и шаг дорожек, что дало общий выигрыш в емкости в 4,5 раза. Остальное было получено за счет применения более эффективных кодов коррекции ошибок, которые позволили значительно уменьшить процент, отводимый на эти коды в каждом пакете данных.

Диски DVD выпускаются не только односторонними и однослойными, но и в двухслойном и двустороннем исполнении. Возможность изготовления двухслойных дисков (отражающий материал первого слоя является полупрозрачным, так что можно фокусировать лазер на находящимся над ним втором отражающем слое) позволила поднять емкость еще почти в два раза (на самом деле несколько меньше, поскольку в полупрозрачном слое не удается достичь такой же плотности записи, как в полностью отражающем слое). Двухсторонний диск, который представляет собой как бы два односторонних, склеенных отражающими слоями внутрь (общая толщина диска при этом остается неизменной), еще в два раза увеличил возможную емкость DVD. Для идентификации DVD-дисков используется следующая кодировка: DVD-5 (односторонний однослойный с емкостью 4,7 Гбайт), DVD-9 (односторонний двухслойный с емкостью  8,5 Гбайт), DVD-10 (двусторонний однослойный  с емкостью 9,4 Гбайт) и DVD-18 (двусторонний двухслойный с емкостью около 17 Гбайт). Повышение плотности размещения данных на диске привело к автоматическому увеличению скорости передачи данных при той же скорости вращения носителя. Так, если в накопителе CD-ROM 1X данные передаются со скоростью 150 Кбайт/с, то в DVD-ROM 1X скорость передачи достигает 1250 Кбайт/с, что соответствует CD-ROM 8Х. Например, в накопителях DVD скорость 16Х соответствует гипотетической скорости 128Х в CD-ROM.

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

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

 

    3.8. Внешние запоминающие устройства                                     на мобильных носителях информации

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

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

Первыми и до сих пор практически используемыми переносными (мобильными) носителями информации являются гибкие магнитные диски (дискеты) наиболее популярного формата «3,5 дюйма» емкостью 1,44 Мбайт. Крайне низкая по современным меркам емкость такой дискеты уже достаточно давно инициирует различные разработки и технологии мобильных носителей информации, которые могли бы прийти на смену традиционной дискете – явному непревзойденному долгожителю компьютерного мира.

Одним из очевидных вариантов решения проблемы повышения емкости мобильных носителей информации является применение переносных жестких магнитных дисков. Жесткие диски, без сомнения, обладают одними из самых лучших показателей удельной стоимости хранимой информации среди всех используемых устройств. Они имеют высокое быстродействие и достаточно большую емкость. Для удобства временной установки и переноса жесткого диска предложены специальные устройства, одно из которых, называемое Mobil Rack («мобильная рама»), конструктивно выполнено в виде двух частей. Одна часть – это вставляемая в «отсек» системного блока «база», а вторая часть –  переносной контейнер, в который помешается жесткий диск. При этом достаточно один раз открыть корпус системного блока, прикрепить «базу» в системном  блоке и подключить необходимые разъемы интерфейса и питания. Контейнер с жестким диском может многократно легко вставляться и выниматься из «базы» без применения крепежных элементов. Несомненным плюсом Mobil Rack является его относительно невысокая стоимость. Но при постоянной переноске жесткого диска растет вероятность его физических повреждений. Необходимо также учитывать, что «винчестер», как любой другой магнитный носитель информации, подвержен влиянию электромагнитных полей, способных вызвать частичную или полную потерю информации на нем.

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

      Несколько лет назад корпорацией Iomega были разработаны накопители на гибких магнитных дисках ZIP, которые предлагались в качестве замены морально устаревших 3,5-дюймовых гибких дисков. Первые модели ZIP имели емкость 100 и 250 Мбайт и в то время лидировали среди накопителей для переноса данных. Однако в последующем (несмотря на предложенный накопитель Iomega ZIP емкостью 750 Мбайт) их практически вытеснили с рынка накопители CD-R и CD-RW, а затем и накопители на дисках DVD как сравнительно более емкие и дешевые ЗУ. Эта же участь постигла и другие разработки, такие как магнитооптические диски, накопители на сменных дисках типа LS-120, SyQuest, SyJet, Jaz и др.

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

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

 

                                        Резюме

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

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

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

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

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

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

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

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

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

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

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

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

      В качестве  внешних запоминающих устройств на магнитных носителях информации применяются накопители информации на жестких и гибких магнитных дисках, накопители информации на магнитных лентах. Последние обычно используют для архивации и резервного копирования больших объемов информации. Во внешних запоминающих устройствах на оптических носителях информации используются оптические компакт-диски разных типов: допускающие только чтение информации, допускающие однократную запись информации, позволяющие стирать и многократно перезаписывать информацию. Новые «цифровые» многофункциональные оптические диски типа DVD позволяют увеличить емкость записываемой и хранимой информации в 7–25 раз по сравнению с емкостью обычных оптических компакт-дисков.

      В качестве внешних мобильных носителей информации наряду с традиционными носителями, такими как накопители информации на гибких магнитных дисках и оптических дисках, находят применение переносные НЖМД, внешние НЖМД и относительно новый тип мобильных носителей информации – флэш-накопители.

Контрольные вопросы и задания

1. Какие функции выполняют запоминающие устройства в ВМ?

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

4. Какие технологические типы запоминающих устройств наиболее распространены в вычислительной технике?

5. Представьте понятие «энергонезависимости» запоминающего устройства.

6. Назовите и охарактеризуйте основные типы энергозависимой памяти  на электронных микросхемах.

7. На какие типы по возможностям и способу программирования подразделяют микросхемы энергонезависимой памяти?

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

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

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

12. Опишите свойства пространственной  и временной локальности команд и данных программы.

13. Представьте иерархию запоминающих устройств ВМ.

14. Каковы назначение и основные функции постоянных ЗУ?

15. Для чего предназначена энергонезависимая память  CMOS Memory?

16.Дайте определение синхронной динамической памяти и опишите последовательность ее работы.

17. Перечислите важнейшие параметры памяти SDRAM.

18. В чем отличие памяти DDR2 SDRAM от DDR SDRAM и SDR SDRAM?

19. Представьте назначение, организацию и функционирование кэш-памяти.

20. Поясните назначение внешних запоминающих устройств ВМ.

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

22. Перечислите и дайте определения  важнейшим характеристикам устройств внешней памяти.

23. Каковы основные параметры современных накопителей информации на жестких магнитных дисках?

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

4. Устройства ввода-вывода информации

4.1. Устройства ввода информации

    

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

Наряду с клавиатурой важнейшими устройствами управления и ввода информации являются различные типы так называемых манипуляторов-указателей. Наиболее популярный манипулятор-указатель –  устройство типа «мышь». «Мышь» передает информацию о своем перемещении по плоскости и нажатии кнопок (двух или более).  «Мышь»  делает удобным манипулирование такими широко распространенными графическими объектами, как  окна,  меню,  кнопки, пиктограммы и т. п. Традиционная компьютерная «мышь» реализует оптико-механический принцип кодирования перемещения. С поверхностью стола соприкасается тяжелый шарик сравнительно большого  диаметра. Ролики, прижатые к поверхности шарика, установлены на перпендикулярных друг  другу  осях с двумя датчиками. Датчики, представляющие собой оптопары (светодиод–фотодиод), располагаются по разные стороны дисков с прорезями. Порядок, в котором освещаются фоточувствительные элементы, определяет направление перемещения мыши, а частота приходящих от них импульсов – скорость. Более точного позиционирования курсора позволяет добиться оптическая «мышь». Современные оптические «мыши»  имеют встроенный видеодатчик, процессор которого обрабатывает получаемое изображение. Такая «мышь» ориентируется на оптические «неровности» любой поверхности. Манипулятор-указатель типа трекбол (trackball – «шариковая дорожка») представляет собой как бы перевернутую «мышь», шарик которой вращают пальцами. Иногда его встраивают в клавиатуру (чаще в портативных компьютерах). Трекболу не требуется площадка для движения (которая необходима «мыши»), так как позиция курсора рассчитывается исключительно по вращению шарика.В последнее время все большее применение в качестве компактных манипуляторов-указателей (главным образом в мобильных компьютера), находят сенсорные панели, чувствительные к прикосновению пальца пользователя. Популярными игровыми манипуляторами  является так называемые джойстики (joystick – «игровая палочка»), которые имеют разнообразное конструктивное исполнение, разный уровень сложности, наличие рычагов или руля и многочисленных функциональных кнопок.

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

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

      Основными типами фотоприемников современных сканеров являются фотоприемники на основе ПЗС («приборов с зарядовой связью» – Couple-Charged Device, CCD)  и фотоприемники на основе КДИ («контактных датчиков изображения» – Contact Image Sensor, CIS).  Преимуществами фотоприемников на основе ПЗС  являются относительно высокая чувствительность и широкий спектральный диапазон, а недостатками – ограниченность разрешения, существование «фотонных шумов» (вносящих искажения в результаты  сканирования), так называемое  «растекание» заряда (приводящее к расплывчатости ярких деталей изображения).  Положительными сторонами КДИ-сканеров являются более простое конструктивное  исполнение, меньшие габариты и потребляемая мощность, чем у ПЗС-сканеров, большая равномерность качества получаемого изображения, меньшая чувствительность к внешним условиям работы.

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

В сканерах, работающих «на просвет» оригинала (например, слайдов) источник освещения и фотоприемник находятся по разные стороны от оригинала.

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

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

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

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

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

Разрешение сканера обычно измеряется в пикселах  на дюйм (pixel per inchppi).

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

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

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

Современные распространенные  образцы планшетных сканеров обеспечивают оптическое разрешение 1200 х 2400 ррi, глубину цвета – от 36 до 48 бит, оптический диапазон – до 5 единиц.

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

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

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

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

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

                       

4.2. Компоненты видеоподсистемы  вычислительных машин

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

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

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

Разрешение является важнейшим параметром, характеризующим работу в графической среде. Для количественного описания этого параметра используется понятие так называемого пиксела (минимального элемента изображения). Разрешение определяется количественно произведением пикселов, укладывающихся по горизонтали и вертикали экрана. При этом, как правило, принимается стандартный ряд значений (режимов работы видеоадаптера): 640х480 (VGAVideo Graphical Adapter), 800х600 (SVGASuper VGA), 1024х768 (XGAeXtra VGA), 1280х1024 (SXGASuper eXtra VGA), 1600х1200 (UXGA –  Ultra eXtra VGA).

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

В самом общем случае видеоадаптер включает в себя следующие основные элементы:

      – видеопамять, предназначенную для хранения цифрового изображения;

– набор микросхем, реализующий все необходимые функции

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

– схемы интерфейса с шиной ввода/вывода ВМ;

– память ROM Video BIOS, в которой хранится расширение BIOS, предназначенное для управления видеоподсистемой ВМ;

– цифро-аналоговый преобразователь, выполняющий преобразование цифровых данных, хранящихся в видеопамяти, в аналоговый видеосигнал;

– тактовые генераторы.

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

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

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

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

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

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

– освобождения центрального процессора от необходимости выполнения множества элементарных операций с содержимым видеопамяти.

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

По некоторым оценкам за последние годы темпы технологического развития графических микросхем сравнялись с темпами развития центральных процессоров. Так же как и в производстве центральных процессоров, переход на новые проектные нормы означает увеличение допустимой максимальной тактовой частоты и количества логических элементов, что, в свою очередь, дает возможность реализовывать более мощные архитектурные решения. Современные поколения графических микросхем изготавливаются по 0,15-мкм проектным нормам и содержат более 60 млн транзисторов, рабочие частоты достигли 300 МГц  и выше. Графические адаптеры на базе этих микросхем комплектуются  быстрой памятью DDR SDRAM   с суммарным  объемом  128 Мбайт и более.

Традиционными и пока наиболее распространенными видеомониторами являются мониторы на основе электронно-лучевых трубокЭЛТ-мониторы (англоязычный  аналог – CRT, Cathode Ray Tube). Изображение на экране таких мониторов получается в результате облучения люминофорного (на основе светящегося под действием облучения фосфора) покрытия внутренней поверхности экрана монитора пучком электронов, разогнанных в вакуумной колбе. Для получения цветного изображения на поверхность экрана наносятся миниатюрные точки или полоски фосфора трех различных составов, каждый из которых при облучении испускает красный, зеленый или синий свет. Исторически наиболее распространенной технологией является технология, когда три разных электронных луча попадают на соответствующие им точки и, изменяя интенсивность облучения, формируют цвет и яркость точки на экране монитора. Группы из трех точек (так называемые триады), излучающие свет различной окраски, расположены очень компактно, и для глаза человека создается впечатление единой цветовой точки. В результате смешения трех основных цветов (красный – Red(R), зеленый – Green(G), синий – Blue(B)) формируется любой цвет из всей возможной гаммы цветов. Это так называемая RGB-модель аддитивного смешения цветов.

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

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

      Важнейшим параметром монитора является шаг точки (Dot Pitch) или, как принято его называть, размер «зерна» экрана. Шаг точки – это расстояние между соседними светящимися точками или полосками экрана одного цвета.  Чем меньше этот параметр, тем четче и точнее полученное изображение. Этот параметр измеряется в долях миллиметра и для современных мониторов приемлемым считается шаг точки 0,28–0,24 мм и менее.

      Для формирования изображения электронный луч сканирует по экрану слева направо и сверху вниз. Совокупность точек экрана, формирующих изображение, представляет собой так называемый растр. Когда луч достигает правого края экрана, он гаснет и возвращается налево. Когда луч доходит до нижнего правого края экрана, он гаснет и возвращается в левый верхний угол. Таким образом за некоторое время формируется изображение всего экрана. Важным параметром монитора является так называемая частота регенерации (обновления) изображения, которая измеряется количеством раз полной смены изображения экрана в секунду (устаревший термин – «частота кадров»). Этот параметр зависит не только от монитора, но и от свойств и настроек видеоадаптера, но предельные возможности определяет монитор. Измеряется частота регенерации в Гц. Чем она выше, тем меньше заметное глазу мерцание экрана. На сегодняшний день приемлемыми (комфортными) значениями этого параметра являются частоты от 85 Гц и выше. Очевидна связь между разрешением и частотой регенерации.  

      На величину максимального разрешения непосредственно влияет так называемая частота горизонтальной развертки (измеряемая в кГц). Значение горизонтальной развертки монитора показывает, какое предельное число горизонтальных строк может прочертить электронный луч на экране монитора за секунду. Чем выше эта величина, тем большее разрешение может поддерживать монитор при приемлемой частоте регенерации («частоте кадров»).

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

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

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

      1) LCD (Liquid Crystals Display) – жидкокристаллический (ЖК) дисплей;

      2) PDP (Plasma Display Panel) – плазменная дисплейная панель;

      3) OLED (Organic Light Emitting Diodes) – органические светоизлучающие диоды;

      4) PLED ( Polimer Light Emitting Diodes) – полимерные  светоизлучающие диоды.

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

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

Большинство жидких кристаллов – это органические вещества, состоящие из длинных, стержнеподобных молекул. Эти молекулы расположены так, что их оси параллельны друг другу. Направлением осей молекул жидких кристаллов можно управлять, нанося на поверхность, к которой они прилегают, множество мельчайших параллельных желобков. Таким образом, поместив жидкий кристалл между двумя стеклами, желобки на которых развернуты под углом 90°, можно получить такое его состояние, при котором молекулярные слои постепенно меняют свое направление на угол от 0° (внизу) до 90° (вверху). При этом плоскость поляризации света, следуя вдоль направления слоев молекул, также повернется на 90°. Если оба стекла снабдить поляризаторами, углы которых также будут развернуты на 90° относительно друг друга, то такой набор элементов будет пропускать свет. При подаче электрического напряжения поперек слоя жидкого кристалла молекулы меняют ориентацию, выстраиваясь вдоль направления электрического поля. При этом поворот плоскости поляризации в жидком кристалле меняется до 0°. Свет, прошедший первый поляризатор, не может пройти сквозь второй, и система теряет прозрачность.

В отличие от электронно-лучевой трубки, ЖК-панель не излучает свет, а лишь пропускает или поглощает излучение от источника подсветки. В настоящее время большинство ЖК-панелей для вывода компьютерных изображений выполнены по технологии TFT-AM (Thin Film Transistor-Active Matrix – «тонкопленочный транзистор-активная матрица»). При этом каждый элемент подключен к матрице электродов через тонкопленочный транзистор.

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

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

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

Достоинствами плазменной технологии являются высокие светотехнические параметры плазменных панелей (яркость изображения свыше 300 кд/м2 при контрастности  не менее 350:1 и угле обзора до 160 градусов) и долговечность (технический ресурс их составляет не менее 30000 часов, а у традиционных ЭЛТ – не более 15000 – 20000 часов). Недостатки плазменных панелей – относительно большое энергопотребление и относительно высокая цена, которая однако имеет явную тенденцию к снижению.

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

OLED- и LEP- дисплеи обладают целым рядом достоинств по сравнению с широко используемыми в настоящее время технологиями – ЭЛТ, ЖК и плазменной. Главное преимущество новых технологий – это использование для формирования изображения самоизлучающих веществ. Благодаря тому, что отпадает необходимость в применении лампы подсветки (как в ЖК-устройствах), такие мониторы отличаются чрезвычайно малой толщиной и весом, потребляют меньше электроэнергии и практически не выделяют тепла. Кроме того, подобная конструкция позволила добиться значительного улучшения качества изображения, обеспечить очень широкий угол обзора (не менее 160 градусов), а также повысить яркость и контрастность изображения до уровня, недостижимого для современной ЖК-технологии. Использование люминесцирующих материалов позволяет сделать эффективная площадь пиксела практически равной его полной площади, чего в принципе невозможно добиться в случае ЖК-технологии.  Дополнительным преимуществом OLED- и LEP-дисплеев является чрезвычайно малое время реакции (не превышающее единиц миллисекунд).

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

К современным устройствам визуального отображения информации относятся также устройства, ориентированные на решение презентационных и мультимедийных задач: проекционные аппараты, устройства формирования объемных (стереоскопических) изображений (различного рода 3D-очки, 3D-мониторы и проекторы, «шлемы виртуальной реальности» и т.п.). Их рассмотрение выходит за рамки данного учебного пособия

          

4.3. Компоненты аудиоподсистемы  вычислительных машин

      Аудиоподсистема ВМ – это комплекс программно-аппаратных средств, предназначенный для следующих целей:

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

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

      – микширования (смешивания) при записи или воспроизведении  сигналов от нескольких источников;

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

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

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

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

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

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

Интерфейс MIDI (Musical Instrument Digital Interface – «цифровой интерфейс музыкальных инструментов») регламентируется специальным стандартом, включающим спецификации на аппаратный интерфейс (типы каналов, кабели, порты), а также описание протокола обмена информацией между MIDI-устройствами. Этот протокол позволяет электронным музыкальным инструментам обмениваться информацией и работать совместно.

4.4. Печатающие устройства

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

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

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

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

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

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

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

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

Качество печати матричного принтера характеризуется его разрешением, т.е. количеством точек, которое печатается на одном дюйме (dots per inch – dpi). Разрешающая способность наиболее распространенных современных матричных принтеров составляет до 360 dpi  при скорости печати до 400 знаков в секунду.

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

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

  1.  струйная печать с электростатическим управлением;
  2.  термоэлектрическая струйная печать;
  3.  пьезоэлектрическая струйная печать.

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

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

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

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

Очевидным преимуществом струйной технологии печати перед другими является легкость обеспечения цветной печати, так как для этого достаточно лишь использовать чернила разных цветов.  При этом в отличие от цветных мониторов, в которых используется  аддитивная  модель смешения цветов RGB, при цветной печати используется субтрактивная модель смешения цветов, в которой для образования какого-либо оттенка надо вычесть из белого цвета «лишние»  составляющие. Базовыми цветами в этой модели являются голубой(Cyan), пурпурный (Мagenta) и желтый (Yellow). Для получения истинно черного цвета к трем основным цветам добавляют черный  (blacK). Такая  расширенная модель называется CMYK (CyanMagentaYellowblacK).  Для повышения качества печати в дополнение к основным цветам используют светло-пурпурный и светло-голубой цвета, а иногда еще и светло-желтый.

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

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

Современные модели предлагаемых к продаже струйных принтеров имеют печатающие головки с несколькими сотнями штук сопел, достигают разрешения 2400 х 1200 dpi – 2880 х 720 dpi, обеспечивают максимальную скорость печати черно-белых изображений до 20 страниц в минуту и цветных – до 13.

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

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

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

Альтернативой лазерных принтеров, описанных выше, являются так называемые светодиодные или LED-принтеры (Light Emitting Diode – «диоды, испускающие свет»), которые также работают по фотоэлектронной технологии печати. В отличие от лазерных принтеров, в светодиодных принтерах изображение на фотобарабане формируется не лазерным лучом, построчно пробегающим по поверхности, а лучами неподвижной линейки большого числа светодиодов (светодиодной матрицы), высвечивающих сразу же целую строку на фотобарабане. Конструктивно и эксплуатационно светодиодные принтеры значительно проще лазерных принтеров, они имеют меньшую стоимость. Однако их разрешающая способность жестко ограничена числом и плотностью расположения светодиодов в линейке.

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

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

Современные образцы черно-белых лазерных принтеров обеспечивают разрешение до 1200 dpi и максимальную скорость печати до 40 страниц в минуту, цветные лазерные принтеры –  до 1200 dpi и 12 страниц в минуту.

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

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

Следует выделить группу принтеров специального назначения. К этой группе принтеров обычно относят два типа специализированных принтеров:

  1.  принтеры для портативных компьютеров;
  2.  принтеры большого формата (плоттеры).

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

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

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

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

Резюме

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

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

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

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

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

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

Контрольные вопросы и задания

1. Перечислите и охарактеризуйте основные устройства ввода информации вычислительных машин.

2. Для чего предназначены и как устроены сканеры?

3. Приведите характеристики современных сканеров.

4. Какие функции выполняет видеоадаптер в ВМ?

5. Какие основные компоненты входят в состав видеоадаптера?

6. Какие характеристики монитора определяют качество изображения на его экране?

7. Опишите принцип действия жидкокристаллического дисплея.

8. Изложите принцип работы плазменной дисплейной панели.

9. Какими достоинствами обладают перспективные OLED- и LEP-дисплеи?

10. Для каких целей предназначена аудиосистема ВМ?

11. Какие компоненты входят в состав  акустической системы?

12. Перечислите основные технологии печати.

13. Охарактеризуйте технологию ударной  печати.

14. Каковы преимущества и недостатки принтеров ударной  печати со шрифтоносителем?

15. Опишите принцип действия,  основные характеристики и области применения матричных принтеров.

16. Как устроены и где используются термопринтеры?

17. Как работает термоэлектрическая печатающая головка?

18. Каков принцип действия пьезоэлектрической печатающей головки?

19. Назовите основные преимущества и недостатки технологии струйной печати.

20. Приведите основные технические характеристики современных моделей струйных принтеров.

21. Опишите устройство и принцип работы лазерного принтера.

22. Как устроены светодиодные принтеры, каковы их достоинства и недостатки по сравнению с традиционными лазерными принтерами?

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

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

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

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

27. Приведите классификацию широкоформатных принтеров.

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

29. В чем различие между планшетными и барабанными плоттерами?

5. Организация  коммуникаций функциональных

устройств вычислительных машин

5.1. Общие понятия

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

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

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

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

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

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

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

      Когда два устройства обмениваются информацией по шине, одно из них должно инициировать обмен и управлять им. Такого рода устройство называют ведущим (bus master), то есть ведущим   является то устройство, которое способно взять на себя владение шиной и управлять пересылкой данных. Ведущее устройство не обязательно использует данные само. Оно, например, может захватить управление шиной в интересах другого устройства. Устройства, не обладающие возможностями инициирования транзакции, носят название ведомых (bus slave). В принципе к шине может быть подключено несколько потенциальных ведущих устройств, но в любой момент времени активным может быть только одно из них: если несколько устройств передают информацию одновременно, их сигналы перекрываются и искажаются. Для предотвращения одновременной активности нескольких ведущих устройств в любой шине предусматривается процедура допуска к управлению шиной только одного из претендентов (так называемый арбитраж). В то же время некоторые шины допускают широковещательный режим записи, когда информация одного ведущего устройства передается сразу нескольким ведомым устройствам (здесь арбитраж не требуется). Сигнал, направленный одним устройством, доступен всем остальным устройствам, подключенным к шине.

      Любая транзакция на шине начинается с выставления ведущим устройством адресной информации. Адрес позволяет выбрать ведомое устройство и установить соединение между ним и ведущим. Для передачи адреса используется часть сигнальных линий шины – шина адреса (ША). На ША могут выдаваться адреса ячеек памяти, номера регистров центрального процессора, адреса «портов»  ввода/вывода, к которым подключают периферийные устройства ввода/вывода, и т.п. Многообразие видов адресов предполагает наличие дополнительной информации, уточняющей вид, используемый в данной транзакции (такая информация может косвенно содержаться в самом адресе, но чаще передается по специальным управляющим линиям шины). Разнообразной может быть и структура адреса. Так, в адресе может конкретизироваться лишь определенная часть ведомого, например, старшие биты адреса могут указывать на один из модулей основной памяти, в то время как младшие биты определяют ячейку внутри этого модуля. В некоторых шинах предусмотрены адреса специального вида, обеспечивающие одновременный выбор определенной группы ведомых либо всех ведомых сразу. Такая возможность обычно практикуется в транзакциях записи (от ведущего к ведомым), однако существует также специальный вид транзакции чтения (одновременно от нескольких ведомых общему ведущему). Англоязычное название такой транзакции чтения «broadcall» может быть переведено как «широковещательный опрос». Информация, возвращаемая ведущему, представляет собой результат побитового логического сложения данных, поступивших от всех адресуемых ведомых.

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

      Совокупность линий, служащих для пересылки данных между устройствами ВМ – шина данных (ШД) – имеет такие важнейшие характеристики, как ширина и пропускная способность. Ширина ШД определяется количеством бит информации, которое может быть передано по шине за одну транзакцию (цикл шины). Цикл шины следует отличать от периода тактовых импульсов, так как одна транзакция на шине может занимать несколько тактовых периодов. Типовая ширина ШД составляет обычно 32, 64 или 128 бит. Ширину ШД выбирают кратной целому числу байтов, причем это число, как правило, представляет собой целую степень числа 2.

      Элемент данных, задействующий всю ширину ШД, принято называть «словом», хотя в архитектуре некоторых ВМ понятие «слово» трактуется по-другому, то есть слово может иметь разрядность, не совпадающую с шириной шины данных.

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

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

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

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

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

5.2. Арбитраж шин

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

5.3. Физические аспекты передачи информации по шинам

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

      Схему, меняющую напряжение на сигнальной шине, обычно называют драйвером (или возбудителем) шины. Таким драйвером может быть любая цифровая схема, на выходе которой имеется один из двух возможных уровней напряжения. При реализации шины предусматривается возможность отключения драйвера от сигнальной линии на период, когда он не использует шину. Один из возможных способов обеспечения подобного режима – применение драйвера, выход которого может находиться в одном из трех состояний: «высокий уровень напряжения» («high»), «низкий уровень напряжения» («low») и «отключен» («off»). Для перевода в состояние «off», эквивалентное отключению выхода драйвера от сигнальной линии, используется специальный вход драйвера. Режим «off» необходим для исключения возможности одновременного управления шиной двумя или более устройствами, в противном случае на линиях могут возникать пиковые выбросы напряжения или искаженные сигналы, которые кроме некорректной передачи информации могут привести к преждевременному отказу электронных компонентов. Совместное использование линии шины несколькими устройствами возможно также за счет подключения этой линии к выходу драйвера через резистор, соединенный с источником питания. Этот способ исключает электрические конфликты на шине.

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

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

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

      Теоретическая граница скорости распространения сигнала по шине – это скорость света в свободном пространстве, то есть около 300 мм/нс. Реальная скорость распространения, определяемая физическими характеристиками сигнальных линий и нагрузкой, не превышает  70%  скорости света.

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

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

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

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

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

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

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

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

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

      В цикле асинхронной шины для подтверждения успешности транзакции используется двунаправленный обмен сигналами управления. Такая процедура называется квитированием установления связи или «рукопожатием» (handshake).

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