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

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

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

Архитектура компьютера

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

устройство ввода,

центральный процессор,

запоминающее  устройство,

устройство вывода.  

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

Устройства  хранения информации 

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

Устройства хранения информации делятся на 2 вида:

внешние (периферийные) устройства

внутренние устройства  

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

К внутренним устройствам  относятся оперативная память, кэш-память, CMOS-память, BIOS. Главным достоинством является скорость обработки информации. Но в то же время устройства внутренней памяти довольно дорогостоящи. 

Внешние:

НГМД(накопитель на гибких магнитных дисках) 

Использование гибких дисков уходит в прошлое. Бывают двух типов и обеспечивают хранение информации на дискетах одного из двух форматов: 5,25' или 3,5'. Дискеты формата 5,25' в настоящее время практически  не встречаются (максимальная емкость 1,2 Мб). Для дискет формата 3,5' максимальная емкость составляет 2,88 Мб, самый  распространенный формат емкости для  них – 1,44 Мб. Гибкие магнитные диски  помещаются в пластмассовый корпус. В центре дискеты имеется приспособление для захвата и обеспечения  вращения диска внутри пластмассового корпуса. Дискета вставляется в  дисковод, который вращается с  постоянной угловой скоростью. Все  дискеты перед употреблением  форматируются – на них наносится  служебная информация, обе поверхности  дискеты разбиваются на концентрические  окружности – дорожки, которые в  свою очередь делятся на сектора. Одноименные сектора обеих поверхностей образуют кластеры. Магнитные головки  примыкают к обеим поверхностям и при вращении диска проходят мимо всех кластеров дорожки. Перемещение  головок по радиусу с помощью  шагового двигателя обеспечивает доступ к каждой дорожке. Запись/чтение осуществляется целым числом кластеров, обычно под  управлением операционной системы. Однако в особых случаях можно  организовать запись/чтение и в обход  операционной системы, используя напрямую функции BIOS. В целях сохранения информации гибкие магнитные диски необходимо предохранять от воздействия сильных  магнитных полей и нагревания, так как такие воздействия  могут привести к размагничиванию  носителя и потере информации. 

Основные  параметры жесткого диска:

Емкость – винчестер  имеет объем от 40 Гб до 200 Гб.

Скорость чтения данных. Средний сегодняшний показатель – около 8 Мбайт/с.

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

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

Размер кэш-памяти – быстрой буферной памяти небольшого объема, в которую компьютер помещает наиболее часто используемые данные. У винчестера есть своя кэш-память размером до 8 Мбайт.

Фирма-производитель. Освоить современные технологии могут только крупнейшие производители, потому что организация изготовления сложнейших головок, пластин, контроллеров требует крупных финансовых и  интеллектуальных затрат. В настоящее  время жесткие диски производят семь компаний: Fujitsu, IBM-Hitachi, Maxtor, Samsung, Seagate, Toshiba и Western Digital. При этом каждая модель одного производителя имеет свои, только ей присущие особенности. 

Flash-карта 

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

Multimedia Card (MMC) и Secure Digital (SD) – сходит со сцены из-за ограниченной емкости (64 Мб и 256 Мб соответственно) и низкой скорости работы.

SmartMedia – основной формат для карт широкого применения (от банковских и проездных в метро до удостоверений личности). Тонкие пластинки весом 2 грамма имеют открыто расположенные контакты, но значительная для таких габаритов емкость (до 128 Мбайт) и скорость передачи данных (до 600 Кбайт/с) обусловили их проникновение в сферу цифровой фотографии и носимых МРЗ-устройств.

Memory Stick – “эксклюзивный” формат фирмы Sony, практически не используется другими компаниями. Максимальная емкость – 256 Мбайт, скорость передачи данных доходит до 410 Кбайт/с, цены сравнительно высокие.

CompactFlash (CF) – самый распространенный, универсальный и перспективный формат. Легко подключается к любому ноутбуку. Основная область применения – цифровая фотография. По емкости (до 3 Гбайт) сегодняшние CF-карты не уступают IBM Microdrive, однако отстают по скорости обмена данными (около 2 Мбайт/с).  

USB Flash Drive – последовательный интерфейс USB с пропускной способностью 12 Мбит/с или его современный вариант USB 2.0 с пропускной способностью до 480 Мбит/с. Сам носитель заключен в обтекаемый компактный корпус, напоминающий автомобильный брелок. Основные параметры (емкость и скорость работы) полностью совпадают с CompactFlash, поскольку чипы самой памяти остались прежними. Может служить не только “переносчиком” файлов, но и работать как обычный накопитель – с него можно запускать приложения, воспроизводить музыку и сжатое видео, редактировать и создавать файлы. Низкое среднее время доступа к данным на Flash-диске – менее 2,5 мс. Вероятно, накопители класса USB Flash Drive, особенно с интерфейсом USB 2.0, в перспективе смогут полностью заменить собой обычные дискеты и частично – перезаписываемые компакт-диски, носители Iomega ZIP и им подобные.

PC Card (PCMCIA ATA) – основной тип флэш-памяти для компактных компьютеров. В настоящее время существует четыре формата карточек PC Card: Type I, Type II, Type III и CardBus, различающиеся размерами, разъемами и рабочим напряжением. Для PC Card возможна обратная совместимость по разъемам “сверху вниз”. Емкость PC Card достигает 4 Гб, скорость – 20 Мб/с при обмене данными с жестким диском.

Miniature Card (MC) – карточка флэш-памяти, предназначена в основном для карманных компьютеров, мобильных телефонов и цифровых фотокамер. Стандартная емкость составляет 64 Мбайт и больше. 

Оптические CD,DVD,BD 

CD(Compact Disc)-оптический носитель информации в виде пластикового диска с отверстием в центре, процесс записи/считывания информации на/c который осуществляется при помощи лазера.CD становятся все более быстродействующими и дешёвыми. На диске CD промышленным способом записывается информация. Наибольшее распространение получили 5-дюймовые диски CD емкостью 670 Мбайт. По своим характеристикам они полностью идентичны обычным музыкальным компакт-дискам. Данные на диске записываются в виде спирали (в отличие от винчестера, данные на котором располагаются в виде концентрических окружностей). С точки зрения физики лазерный луч определяет цифровую последовательность единиц и нулей, записанных на CD, no форме микроскопических ямок (пит, pit) на его спирали.Сегодня, имея компьютер с записывающим дисководом CD, можно сделать диск менее чем за час. 

Внутренние:

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

Оперативная память (RAM – random access memory, ОЗУ) – устройство,

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

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

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

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

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

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

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

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

Кэш-память

Кэш-память (с  английского cash – запас)– устройство, имеющее очень короткое время доступа к данным. Встроенная в микросхему сверхбыстрая память. Обычно имеет размер 256 или 512 Кбайт, в мощных компьютерах до 1Гб и более.

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

По  принципу записи результатов  в оперативную  память различают  два типа кэш-памяти:

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

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

Микропроцессоры начиная от МП 80486 обладают встроенной в основное ядро МП кэш-памятью (или кэш-памятью 1-го уровня — L1), чем и обусловливается их высокая производительность. Микропроцессоры Pentium имеют кэш-память отдельно для данных и отдельно для команд: у Pentium емкость этой памяти небольшая — по 8 Кбайт, у Pentium MMX — по 16 Кбайт. У Pentium Pro и выше кроме кэш-памяти 1-го уровня есть и встроенная на микропроцессорную плату кэш-память 2-го уровня (L2) емкостью от 128 Кбайт до 2048 Кбайт. Эта встроенная кэш-память работает либо на полной тактовой частоте МП, либо на его половинной тактовой частоте.  

Следует иметь  в виду, что для всех МП может  использоваться дополнительная кэш-память 2-го (L2) или 3-го (L3) уровня, размещаемая  на материнской плате вне МП, емкость  которой может достигать нескольких мегабайтов (кэш на MB относится к  уровню 3, если МП, установленный на этой плате, имеет кэш 2-го уровня). Время  обращения к кэш-памяти зависит  от тактовой частоты, на которой кэш  работает, и составляет обычно 1-2 такта. Так, для кэш-памяти L1 МП Pentium характерно время обращения 2-5 нс, для кэш-памяти L2 и L3 это время доходит до 10 нс. Пропускная способность кэш-памяти зависит и от времени обращения, и от пропускной способности интерфейса и лежит в широких пределах от 300 до 3000 Мбайт/с.  

Использование кэш-памяти существенно увеличивает  производительность системы. Чем больше размер кэш-памяти, тем выше быстродействие, но эта зависимость нелинейная. Имеет  место постепенное уменьшение скорости роста общей производительности компьютера с ростом размера кэш-памяти. Для современных ПК рост производительности, как правило, практически прекращается после 1 Мбайт кэш-памяти L2. Создается  кэш-память на основе микросхем статической  памяти.  
 

CMOS-память

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

BIOS

BIOS- постоянная  память, т.е. память, хранящая информацию  при отключенном питании теоретически  сколь угодно долго,в которую данные занесены при ее изготовлении. Такой вид памяти называется ROM (read only memory). BIOS (Basic Input-Output System) – базовая система ввода-вывода – содержит наборы групп команд, называемых функциями, для непосредственного управления различными устройствами ПК, их тестирования при включении питания и осуществления начального этапа загрузки операционной системы компьютера. В BIOS содержится также программа настройки конфигурации компьютера – SETUP. Она позволяет установить некоторые характеристики устройств ПК. BIOS как система непосредственно ориентирована на конкретную аппаратную реализацию компьютера и может быть различной даже в однотипных компьютерах. 
 

Управление  памятью 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ярусно-параллельная форма графа (ЯПФ) — деление вершин ориентированного ациклического графа на перенумерованные подмножества Vi такие, что, если дуга e идет от вершины к вершине , то обязательно j < k.

Каждое из множеств Vi называется ярусом ЯПФ, i — его номером, количество вершин в ярусе — его шириной. Количество ярусов в ЯПФ называется её высотой, а максимальная ширина её ярусов — шириной ЯПФ.

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

Минимальной высотой  всех возможных ЯПФ графа является его критический путь. Построение ЯПФ с высотой, меньшей критического пути, невозможно.

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