Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Мультипроцессоры (основные понятия)

Содержание:

Введение

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

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

Объектом исследования является явление мультипроцессорности, предметом исследования – мультипроцессоры как аппаратное обеспечение.

Задачами данной работы являются:

  • обзор понятия мультипроцессорности;

  • разбор видов мультипроцессорности;

  • рассмотрение программных реализаций мультипроцессорности;

  • обзор понятия мультипроцессора;

  • проведение классификации мультипроцессоров;

  • изучение программирования мультипроцессоров;

  • рассмотрение истории мультипроцессоров.

В основу данного исследования легли работы Таненбаума, Паттерсона и Хеннеси.

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

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

Хеннесси является американским ученым, работающим в области микропроцессоров и информатики. Также он является основателем MIPS Computer Systems Inc. и ректором Стэнфордского университета.

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

1. Мультипроцессорность

1.1. Основные понятия мультипроцессорности

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

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

Существует несколько вариантов указанного понятия, определение многопроцессорности также имеет возможность меняться в зависимости от контекста, в основном завися от определения процессоров. В качестве примеров определений можно привести множество корпусов в одном системном модуле, множество чипов в одном корпусе и много ядер в одном кристалле[1].

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

1.2. Типы мультипроцессорности

1.2.1. Процессорная симметричность

В многопроцессорной системе допустимо, чтобы все центральные процессоры были равными или некоторые были зарезервированы для применения в особых целях. Совокупность конструктивных соображений программного обеспечения операционной и аппаратной системы определяет симметрию или ее отсутствие в данной системе. Например, программные или аппаратные соображения могут потребовать ответа только одного центрального процессора на все аппаратные прерывания, в то время, как вся остальная работа в системе будет распределена одинаково среди процессоров; или выполнение кода привилегированного режима будет ограничено только одним процессором, тогда, как код непривилегированного режима может быть выполнен на любой комбинации процессоров. Часто многопроцессорные системы проще проектировать с введением ограничений, но они имеют тенденцию быть менее эффективными чем системы, в которых используются все центральные процессоры[3] [5, 7].

Системы, обрабатывающие все центральные процессоры одинаково, называются SMP, системами с симметричной многопроцессорной обработкой. В системах, в которых все центральные процессоры не равны, системные ресурсы могут быть разделены многими способами, в том числе qq.v. (кластеризованной многопроцессорной обработкой), NUMA (многопроцессорной обработкой с неоднородным доступом к памяти) и ASMP (асимметричной многопроцессорной обработкой)[4].

1.2.2. Потоки команд и данных

В многопроцессорной обработке процессоры используются для выполнения одной последовательности команд во множественных контекстах (используемый в векторной обработке SIMD, множественные данные или часто или единственная машинная команда), множественные последовательности команд в единственном контексте (одиночный поток данных, множественный поток команд или Архитектура MISD, которая используется для избыточности в отказоустойчивых системах и иногда применяется, чтобы описать гиперпоточность или конвейерные процессоры), или множественные последовательности команд во множественных контекстах (множественные поток данных, множественный поток команд или MIMD)[5] [6].

1.2.3. Соединения процессоров

Многопроцессорные системы с сильной связью содержат несколько процессоров, подключенных на шинном уровне. Данный вид процессоров имеет доступ к центральной разделяемой памяти, или может участвовать в иерархии памяти и с разделяемой и с локальной памятью. В качестве примера мощной системы SMP можно привести IBM p690 Regatta. Процессоры Intel Xeon доминировали над многопроцессорным рынком для деловых рабочих станций и были единственной x86-опцией до 2004 года, когда был произведен выпуск линейки процессоров AMD Opteron. Обе линейки процессоров имели свой собственный встроенный кэш, но по-разному обеспечивали доступ к разделяемой памяти: процессоры Xeon через общий канал, а процессоры Opteron через независимые магистрали к системной оперативной памяти [6].

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

Многопроцессорные системы с гибкой связью часто называют кластерами. Они основаны на множественных автономных двойных или одиночных компьютерах, которые связаны через высокоскоростную систему связи. В качестве примера гибко связанной системы можно привести Кластер Беовульфа под управлением Linux[7].

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

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

1.3. Программные реализации

1.3.1. Многопроцессорная обработка с SISD

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

SISD-компьютеры являются обычными, традиционными последовательными компьютерами, в которых в каждый момент времени выполняется лишь одна операция над одним элементом данных, которое является числовым или каким-либо другим значением. Например, большинство персональных компьютеров до последнего времени попадает именно в эту категорию. Также иногда сюда относят некоторые типы векторных компьютеров, но это зависит от того, что понимать под потоком данных[9] [11].

1.3.2. Многопроцессорная обработка SIMD

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

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

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

Также программы должны быть специально тщательно написаны для того, чтобы иметь возможность максимально задействовать возможности архитектуры. Часто применяются специальные оптимизирующие компиляторы, которые спроектированы чтобы создать код специально для использования в этой среде. Некоторыми компиляторами в этой категории обеспечиваются специальные расширения или конструкции, чтобы позволить программистам непосредственно определять выполняющиеся параллельно операции. В качестве примера таких операций можно привести операторы DO FOR ALL в Фортране, используемого на ILLIAC IV, который был многопроцессорным суперкомпьютером с SIMD-архитектурой.

Многопроцессорная обработка SIMD находит широкое применение в некоторых областях, таких как компьютерное моделирование, но малополезна в бизнес-задачах и универсальном настольном компьютере[12] [4, 9, 11].

1.3.3. Многопроцессорная обработка MISD

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

1.3.4. Многопроцессорная обработка MIMD

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

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

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

Подобные конфликты могут возникнуть на аппаратном уровне между процессорами, и обычно должны решаться аппаратными средствами, или с комбинацией оборудования и программного обеспечения[16] [6, 10, 12].

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

2. Мультипроцессор

2.1. Понятие мультипроцессора

Мультипроцессор является это подклассом многопроцессорных компьютерных систем, в которых есть одно видимое для всех процессоров адресное пространство и несколько процессоров. В таксономии Флинна мультипроцессоры относятся к классу SM-MIMD-машин. Мультипроцессор запускает одну копию операционной системы с одним набором таблиц, в том числе следящих какие страницы памяти свободны[17] [10].

2.2. Классификация мультипроцессоров

По ролям, которые играют процессоры в мультипроцессорной системе, различают симметричные мультипроцессоры SMP и асимметричные мультипроцессоры AMP:

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

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

Технология ассиметричных процессоров была лишь переходной в 60-х годах до того момента, когда была отработана технология симетричных процессоров [18].

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

  • Uniform Memory Access;

  • Non Uniform Memory Access;

  • Cache Only Memory Access.

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

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

Такой способ работы с памятью используется в системах с симметричной мультипроцессорностью, поэтому термины SMP и UMA часто используются вместе как «SMP/UMA».

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

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

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

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

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

В качестве примера многопроцессорных машин с архитектурой ccNUMA можно привести серию машин компании Silicon Graphics SGI Origin 2000. Суперкомпьютер ASCI Blue Mountain является одним из самых мощных суперкомпьютеров 1999 года. Он представлял собой массово-параллельный кластер из 48 машин SGI Origin 2000 по 128 процессоров в каждой.

Также мультипроцессоры могут разделяться на процессоры гомогенного типа, когда все процессоры в системе одинаковы, или гетерогенного типа - когда процессоры в системе, наоборот, разного типа[23] [3, 6, 9, 12].

2.3. Программирование мультипроцессоров

При программировании мультипроцессоров можно использовать две модели программирования: message passing, при котором на каждом процессоре запускается отдельный процесс, и они обмениваются данными друг с другом путем обмена сообщениями, либо многопоточность, при которой на каждом процессоре запускается поток исполнения, и они обмениваются друг с другом данными через общие переменные в общей памяти. Многопоточное программирование используется либо неявно декларативно автоматически самим компилятором или с помощью директив компилятора, либо явно в компилируемых языках программирования с помощью системного API [24] [2].

2.3.1. Мультипоточность

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

Такие потоки называют также потоками выполнения; иногда называют «нитями» или неформально «тредами»[25].

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

Мультипоточность не следует путать ни с мультизадачностью, ни с мультипроцессорностью, несмотря на то, что операционные системы, реализующие мультизадачность, как правило, реализуют и мультипоточность[26].

К достоинствам мультипоточности в программировании можно отнести следующее:

  • повышение производительности процесса за счет распараллеливания процессорных вычислений и операций ввода-вывода;

  • меньшие относительно процесса временны́е затраты на создание потока;

  • упрощение программы в некоторых случаях за счет использования общего адресного пространства[27] [2, 6, 7].

2.3.2. Обмен сообщениями

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

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

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

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

Сообщения также часто используются в том же смысле, что и межпроцессное взаимодействие; другой широкораспространенной техникой являются конвейеры и потоки, где информация посылается в виде последовательности простейших элементов данных[31] [4, 5, 8].

2.4. История мультипроцессоров

Мультипроцессорные машины (SMP/UMA) стали предлагаться на рынке в конце 1980-х — начале 1990-х годов, сначала в виде минисуперкомпьютеров, а после как серверов обработки данных, что помогло быстро приобрести популярность на рынке серверного оборудования. Первыми мультипроцессорами с архитектурой x86 на базе процессоров Intel 80386 и Intel 486 стали сервера Compaq SystemPro, которые поступили на рынок в конце 1989 — в начале 1990 года. Рост предложений на рынке мультипроцессороных x86-серверов привел компанию Intel к созданию стандарта MultiProcessor Specification, ставшим на долгие годы стандартом де-факто для SMP-машин c архитектурой x86[32].

Первыми мультипроцессорами типа ccNUMA были компьютер Denelcor HEP компании Denelcor и KSR1 компании Kendall Square Research в середине 1980-х годов.

Были созданы также мультипроцессоры и без когерентности кэша, такие как nccNUMA.

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

Начиная с 2005 года все процессоры для потребительского рынка вычислительной техники выпускаются в многоядерном варианте, по сути являясь миниатюрными мультипроцессорами. Дальнейшее развитие данного направления приводит к появлению многоядерных мультипроцессоров, являющихся системами, в которых присутствует несколько процессоров, которые, в свою очередь, содержат по нескольку ядер. Наиболее распространенным вариантом серверов в дата-центрах на сегодняшний день является сервер с двумя 8-ядерными процессорами класса IBM POWER, Oracle SPARC или Intel Xeon, которые при этом еще и поддерживают аппаратное одновременное исполнение нескольких потоков[34] [10, 11, 12].

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

Заключение

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

В многопроцессорной обработке процессоры используются для выполнения одной последовательности команд во множественных контекстах, множественные последовательности команд в единственном контексте, или множественные последовательности команд во множественных контекстах. Были выделены 4 программные реализации многопроцессорной обработки: SISD, SIMD, MISD и MIMD.

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

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

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

  1. Баула В. Г. Архитектура ЭВМ и операционные среды / В. Г. Баула, А. Н. Томилин, Д. Ю. Волканов. – М.:Academia, 2011 – 336 с.

  2. Горнец Н. Н. ЭВМ и периферийные устройства. Компьютеры и вычислительные системы / Н. Н. Горнец, А. Г. Рощин. – М.:Academia, 2012 – 240 с.

  3. Гузенко Е. Н. Персональный компьютер. Лучший самоучитель / Е. Н. Гузенко, А. С. Сурядный. – Владимир: ВКТ, 2011. – 544 с.

  4. Гук М. Аппаратные средства IBM PC. Энциклопедия / М. Гук. – СПб.:Питер, 2014. – 1072 с.

  5. Леонтьев В. П. Новейшая энциклопедия. Компьютер и интернет 2016 / В. П. Леонтьев. – М.: Эскмо-пресс, 2016. – 560 с.

  6. Максимов Н. В. Архитектура ЭВМ и вычислительные системы / Н. В. Максимов, Т. Л. Партыка, И. И. Попов. – М.: Форум, Инфра-М, 2013. — 512 с.

  7. Новожилов О. П. Архитектура ЭВМ и систем / О. П. Новожилов. – М.:Юрайт, 2011 – 528 с.

  8. Орлов С. А. Организация ЭВМ и систем: Учебник для вузов / С. А. Орлов. – СПб.: Питер, 2014. – 688 с.

  9. Серрано Н. Сервисы, архитектура и унаследованные системы / Н. Серрано, Х. Эрнантес, Г. Галлардо // Открытые системы. – М., 2014. – №08. – С. 76-81.

  10. Паттерсон Д. Архитектура компьютера и проектирование компьютерных систем / Д. Паттерсон, Д. Хеннеси. – СПб.: Питер, 2012. – 784 с.

  11. Симонович С. Информатика. Базовый курс / С. Симонович. – СПб.: Питер, 2016. – 640 с.

  12. Таненбаум Э. Архитектура компьютера / Э. Таненбаум, Т. Остин. – СПб.: Питер, 2015. – 816 с.

  1. Гузенко Е. Н. Персональный компьютер. Лучший самоучитель / Е. Н. Гузенко, А. С. Сурядный. – Владимир: ВКТ, 2011. – С. 324.

  2. Горнец Н. Н. ЭВМ и периферийные устройства. Компьютеры и вы-числительные системы / Н. Н. Горнец, А. Г. Рощин. – М.:Academia, 2012 – С. 132.

  3. Леонтьев В. П. Новейшая энциклопедия. Компьютер и интернет 2016 / В. П. Леонтьев. – М.: Эскмо-пресс, 2016. – С. 315.

  4. Новожилов О. П. Архитектура ЭВМ и систем / О. П. Новожилов. – М.:Юрайт, 2011 – С. 246.

  5. Максимов Н. В. Архитектура ЭВМ и вычислительные системы / Н. В. Максимов, Т. Л. Партыка, И. И. Попов. – М.: Форум, Инфра-М, 2013. — С. 352.

  6. Баула В. Г. Архитектура ЭВМ и операционные среды / В. Г. Баула, А. Н. Томилин, Д. Ю. Волканов. – М.:Academia, 2011 – С. 256.

  7. Орлов С. А. Организация ЭВМ и систем: Учебник для вузов / С. А. Орлов. – СПб.: Питер, 2014. – С. 325.

  8. Гук М. Аппаратные средства IBM PC. Энциклопедия / М. Гук. – СПб.:Питер, 2014. – С. 621.

  9. Симонович С. Информатика. Базовый курс / С. Симонович. – СПб.: Питер, 2016. – С. 235.

  10. Серрано Н. Сервисы, архитектура и унаследованные системы / Н. Серрано, Х. Эрнантес, Г. Галлардо // Открытые системы. – М., 2014. – №08. – С. 76.

  11. Гук М. Аппаратные средства IBM PC. Энциклопедия / М. Гук. – СПб.:Питер, 2014. – С. 268.

  12. Симонович С. Информатика. Базовый курс / С. Симонович. – СПб.: Питер, 2016. – С. 367.

  13. Орлов С. А. Организация ЭВМ и систем: Учебник для вузов / С. А. Орлов. – СПб.: Питер, 2014. – С. 532.

  14. Паттерсон Д. Архитектура компьютера и проектирование компью-терных систем / Д. Паттерсон, Д. Хеннеси. – СПб.: Питер, 2012. – С. 468.

  15. Таненбаум Э. Архитектура компьютера / Э. Таненбаум, Т. Остин. – СПб.: Питер, 2015. – С. 647.

  16. Максимов Н. В. Архитектура ЭВМ и вычислительные системы / Н. В. Максимов, Т. Л. Партыка, И. И. Попов. – М.: Форум, Инфра-М, 2013. — С. 327.

  17. Паттерсон Д. Архитектура компьютера и проектирование компью-терных систем / Д. Паттерсон, Д. Хеннеси. – СПб.: Питер, 2012. – С. 367.

  18. Таненбаум Э. Архитектура компьютера / Э. Таненбаум, Т. Остин. – СПб.: Питер, 2015. – С. 283.

  19. Серрано Н. Сервисы, архитектура и унаследованные системы / Н. Серрано, Х. Эрнантес, Г. Галлардо // Открытые системы. – М., 2014. – №08. – С. 77.

  20. Максимов Н. В. Архитектура ЭВМ и вычислительные системы / Н. В. Максимов, Т. Л. Партыка, И. И. Попов. – М.: Форум, Инфра-М, 2013. — С. 247.

  21. Гузенко Е. Н. Персональный компьютер. Лучший самоучитель / Е. Н. Гузенко, А. С. Сурядный. – Владимир: ВКТ, 2011. – С. 278.

  22. Таненбаум Э. Архитектура компьютера / Э. Таненбаум, Т. Остин. – СПб.: Питер, 2015. – 816 с.

  23. Серрано Н. Сервисы, архитектура и унаследованные системы / Н. Серрано, Х. Эрнантес, Г. Галлардо // Открытые системы. – М., 2014. – №08. – С. 78.

  24. Горнец Н. Н. ЭВМ и периферийные устройства. Компьютеры и вычислительные системы / Н. Н. Горнец, А. Г. Рощин. – М.:Academia, 2012 – С. 84.

  25. Новожилов О. П. Архитектура ЭВМ и систем / О. П. Новожилов. – М.:Юрайт, 2011 – С. 483.

  26. Максимов Н. В. Архитектура ЭВМ и вычислительные системы / Н. В. Максимов, Т. Л. Партыка, И. И. Попов. – М.: Форум, Инфра-М, 2013. — С. 378.

  27. Горнец Н. Н. ЭВМ и периферийные устройства. Компьютеры и вычислительные системы / Н. Н. Горнец, А. Г. Рощин. – М.:Academia, 2012 – С. 178.

  28. Орлов С. А. Организация ЭВМ и систем: Учебник для вузов / С. А. Орлов. – СПб.: Питер, 2014. – С. 374.

  29. Леонтьев В. П. Новейшая энциклопедия. Компьютер и интернет 2016 / В. П. Леонтьев. – М.: Эскмо-пресс, 2016. – С. 247.

  30. Гук М. Аппаратные средства IBM PC. Энциклопедия / М. Гук. – СПб.:Питер, 2014. – С. 737.

  31. Леонтьев В. П. Новейшая энциклопедия. Компьютер и интернет 2016 / В. П. Леонтьев. – М.: Эскмо-пресс, 2016. – С. 275.

  32. Паттерсон Д. Архитектура компьютера и проектирование компью-терных систем / Д. Паттерсон, Д. Хеннеси. – СПб.: Питер, 2012. – С. 557.

  33. Таненбаум Э. Архитектура компьютера / Э. Таненбаум, Т. Остин. – СПб.: Питер, 2015. – С. 578.

  34. Симонович С. Информатика. Базовый курс / С. Симонович. – СПб.: Питер, 2016. – С. 577.