- •Архитектура вычислительных систем. Вычислительные машины, системы и сети
- •2 Простейшие типовые элементы вычислительных машин 21
- •10 Вычислительные системы параллельной обработки. 147
- •11 Организация микроконтроллеров и микроконтроллерных систем 165
- •12 Организация компьютерных сетей 174
- •13 Стандартизация компьютерных сетей. Эталонная модель взаимодействия открытых систем 182
- •1 Основные понятия вычислительной техники и принципы организации вычислительных систем
- •1.1 Основные понятия и определения
- •1.2 Принципы организации вычислительных машин и систем
- •1.3 Основные характеристики вычислительных машин и
- •1.4 Многоуровневая организация вычислительных процессов
- •Вопросы для самопроверки
- •2 Простейшие типовые элементы вычислительных машин
- •2.1 Комбинационные схемы
- •1) Конъюнкция (логическое умножение) .
- •2) Дизъюнкция (логическое сложение) .
- •3) Отрицание (инверсия) .
- •4) Конъюнкция и инверсия (Штрих Шеффера) .
- •5) Дизъюнкция и инверсия (Стрелка Пирса) .
- •6) Эквивалентность .
- •7) Отрицание эквивалентности .
- •2.2 Автоматы с памятью
- •2.3 Триггеры
- •2.4 Проблемы и перспективы развития элементной базы
- •Вопросы для самопроверки
- •3 Функциональные узлы комбинационного и
- •3.1 Функциональные узлы последовательного типа
- •3.1.1 Регистры
- •3.1.2 Счётчики
- •3.1 Функциональные узлы комбинационного типа
- •3.2.1 Шифраторы и дешифраторы
- •3.2.2 Компараторы
- •3.2.3 Сумматоры
- •Вопросы для самопроверки
- •4 Функциональная организация процессора
- •4.1 Основные характеристики и классификация процессоров
- •4.2 Физическая и функциональная структура процессора
- •4.2.1 Операционное устройство процессора
- •4.2.2 Шинный интерфейс процессора
- •4.3 Архитектурные принципы организации risc-процессоров
- •4.4 Производительность процессоров и архитектурные
- •Вопросы для самопроверки
- •5 Организация работы процессора
- •5.1 Классификация и структура команд процессора
- •5.2 Способы адресации данных и команд
- •5.2.1 Способы адресации данных
- •5.2.2 Способы адресации команд
- •5.3 Поток управления и механизм прерываний
- •Вопросы для самопроверки
- •6 Современное состояние и тенденции развития процессоров
- •6.1 Архитектурные особенности процессоров Pentium
- •6.2 Программная модель процессоров Pentium
- •6.2.1 Прикладная программная модель процессоров Pentium
- •6.2.2 Системная программная модель процессоров Pentium
- •6.2.3 Система команд и режимы адресации процессоров
- •6.3 Аппаратная организация защиты в процессорах Pentium
- •6.4 Аппаратные средства поддержки многозадачности
- •6.5 Перспективы развития процессоров
- •Вопросы для самопроверки
- •7 Память. Организация памяти.
- •7.1 Иерархическая организация памяти
- •7.2 Классификация запоминающих устройств
- •7.3 Структура основной памяти
- •7.4 Память с последовательным доступом
- •7.5 Ассоциативная память
- •7.6 Организация флэш-памяти
- •7.7 Архитектурные способы повышения скорости обмена между процессором и памятью
- •Вопросы для самопроверки
- •8 Управление памятью. Виртуальная память
- •8.1 Динамическое распределение памяти
- •8.2 Сегментная организация памяти
- •8.3 Страничная организация памяти
- •8.4 Сегментно-страничная организация памяти
- •Вопросы для самопроверки
- •9 Организация ввода-вывода информации. Системная шина
- •9.1 Организация шин. Системная шина
- •9.1.1 Структура системной шины
- •9.1.2 Протокол шины
- •9.1.3 Иерархия шин
- •9.2 Организация взаимодействия между периферийными устройствами и процессором и памятью вычислительных машин
- •9.3 Внешние интерфейсы вычислительных машин
- •9.3.1 Параллельный порт lpt и интерфейс Centronics
- •9.3.1 Последовательный порт com и интерфейс rs-232c
- •9.3.3 Универсальная последовательная шина usb
- •9.3.4 Беспроводные интерфейсы
- •Вопросы для самопроверки
- •10 Вычислительные системы параллельной обработки.
- •10.1 Параллельная обработка информации
- •10.2 Классификация систем параллельной обработки данных
- •10.2.1 Классификация Флинна
- •10.2.2 Классификация Головкина
- •10.2.3 Классификация многопроцессорных систем по
- •10.3 Вычислительные системы на кристалле. Многоядерные системы
- •10.4 Тенденции развития вс
- •Вопросы для самопроверки
- •11 Организация микроконтроллеров и микроконтроллерных систем
- •11.1 Общие сведения о системах управления
- •11.2 Организация микроконтроллеров и
- •11.3 Области применения и тенденции развития мк
- •Вопросы для самопроверки
- •12 Организация компьютерных сетей
- •12.1 Обобщённая структура компьютерных сетей
- •12.2 Классификация компьютерных сетей
- •Вопросы для самопроверки
- •13 Стандартизация компьютерных сетей. Эталонная модель взаимодействия открытых систем
- •13.1 Понятие «открытой системы». Взаимодействие
- •13.2 Эталонная модель взаимодействия открытых систем
- •13.3 Структура блоков информации
- •7 Прикладной
- •Вопросы для самопроверки
- •Архитектура вычислительных систем. Вычисдительные машины, системы и сети
10.3 Вычислительные системы на кристалле. Многоядерные системы
Возможность реализации всех блоков вычислительной системы на одном кристалле открывает новые возможности для разработчиков и позволяет улучшить общетехнические показатели системы: снизить стоимость, повысить быстродействие и надёжность. Опыт разработки дискретных систем показывает, что, в среднем, стоимость соединения на кристалле в 10 раз ниже, чем на печатной плате; задержки в связях на печатной плате в 10 раз больше, чем на кристалле; надёжность и помехозащищённость соединений на кристалле также существенно выше, чем на плате и в межплатных соединениях /2/.
В связи с развитием технологии производства СБИС, когда уровень интеграции превысил 1 млн. вентилей на кристалле, появилась возможность реализации системы на кристалле. Можно размещать на кристалле как унифицированные блоки: процессор, память, контроллеры шин, так и специализированные устройства, разделяемые средствами программируемой логики на той же СБИС. Общая структура системы на кристалле – System On Programmable Chip (SOPC) содержит следующие блоки (Рисунок 10.7) /2/: процессор, кэш-память, ОЗУ, интерфейс шины для связи с внешней памятью и другими устройствами, последовательный порт, поле программируемой логики для реализации специализированных блоков системы.
Получили развитие два направления создания кристаллов SOPC /2/: однородные и блочные.
В однородных кристаллах SOPC блоки конфигурируются в кристалле на базе программируемой логики. В таких системах используются готовые программы крупных блоков системы (процессора, контроллера шины и др.), так называемые, «единицы интеллектуальной собственности». Проектировщики системы выбирают необходимые блоки и размещают их на кристалле.
Рисунок 10.7 – Общая структура СБИС системы на кристалле
В блочных кристаллах SOPC определённые области кристалла заранее выделены под аппаратные ядра, которые (ядра) реализованы с использованием полного цикла проектирования. Это позволяет уменьшить площадь кристалла под блоки повысить его быстродействие. Недостатком является некоторое снижение гибкости системы, поскольку реализованные блоки нельзя изменить. Однако поле программируемой логики позволяет создавать специализированные блоки.
По мере роста интеграции параллельная обработка информации стала применяться и на уровне мультипроцессорной обработки. Переход к мультипроцессорным системам на кристалле позволяет замедлить рост потребляемой мощности при увеличении ресурсов кристалла. Мультипроцессорные системы на кристалле (многоядерные процессоры) обозначают аббревиатурой CMP (Chip Multi-Processor). Применение полноценных многопроцессорных систем не получило широкого распространения, поскольку требует сложных и дорогостоящих многопроцессорных материнских плат. Разработка многоядерных процессорных систем является перспективным направлением повышения производительности современных ВМ.
Ядро – кристалл кремния, на котором посредством микроскопических логических элементов реализована принципиальная схема процессора (архитектура). Многоядерный процессор – это центральный процессор, содержащий два и более вычислительных ядра на одном процессорном кристалле или в одном корпусе /22/.
Среди CMP – систем, в первую очередь, получили развитие симметричные системы – Symmetric General Purpose cores – мультипроцессорные системы на кристалле с симметричными ядрами общего назначения (Рисунок 10.8) /2/.
Рисунок 10.8 – Симметричная многоядерная архитектура с общей кэш L2
Симметричная архитектура предполагает однородность всех ядер и единообразие включения всех ядер в общую схему системы. В симметричных конфигурациях между ядрами разделяется общая память, например, кэш L2, как показано на рисунке 10.8. Минимальное число ядер в таких системах равно двум. Достоинством является относительная простота разработки, интенсивное взаимодействие ядер, простота программирования. В соответствии с /23/, все ядра равноправно участвуют и в управлении вычислительным процессом, и в выполнении прикладных задач. Модули ОС выполняются в любом доступном ядре. Ресурсы выделяются для каждой выполняемой задачи по мере возникновения в них потребностей и никак не закрепляются за ядром. В решении одной задачи могут участвовать сразу несколько ядер, если она допускает распараллеливание на несколько потоков. В случае отказа одного из ядер, симметричные системы, как правило, сравнительно просто реконфигурируются, что является их большим преимуществом. В то же время, такие системы плохо масштабируются: увеличение числа ядер ограничивается наличием разделяемой памяти.
Примечание. Выше говорилось, что параллельное выполнение вычислений может выполняться на разных уровнях: отдельных задач (процессов), последовательностей команд (процедур), отдельных команд. Если процесс рассматривать как выполняющуюся программу с необходимыми ей для этого ресурсами (памятью, регистрами, стеком и т.п.), то поток (тред, от англ. Thread – нить) – это последовательность команд. Несколько потоков могут существовать в рамках одного и того же процесса и совместно использовать его ресурсы. То есть, отдельная программа может быть разбита на фрагменты (потоки), содержащие последовательности команд, и эти потоки могут выполняться параллельно.
Применение различных способов организации внутрикристалльной памяти (регистров, кэшей) и механизмов динамического назначения команд на исполнение /2/, позволяет организовать параллельное выполнение нескольких тредов (потоков) в одном процессорном ядре с совместным использованием ресурсов на кристалле. На рисунке 10.9 приведён план кристалла многопотоковой мультиядерной системы с общим кэшем. Такие системы называются мультиплексорными системами на кристалле SMT (Simultaneous Multi-Threading).
По сравнению с обычными симметричными системами сложность разработки SMT-систем возрастает.
Рисунок 10.9 – Многопотоковая многоядерная архитектура с
общим кэшем
В ассиметричных кластерных мультипроцессорных системах ACCMP (Asymetric Cluster CMP) на кристалле размещается ассиметричный кластер процессорных ядер с различной специализированной аппаратурой. Например, кластер может содержать RISC-ядро процессора, ядра специализированных процессоров для цифровой обработки сигналов, блоки памяти, средства коммуникаций. Согласно /23/, функциональная неоднородность в таких архитектурах влечёт за собой структурные отличия во фрагментах системы, содержащих разные процессорные ядра и блоки. Например, они могут отличаться схемами подключения процессорных ядер к СШ, способами взаимодействия процессорных ядер с устройствами и т.д. Ассиметричные кластерные архитектуры являются хорошо масштабируемыми. В ассиметричных архитектурах функции управления вычислительным процессом полностью централизованы, и ОС работает только на одном процессоре. Этот процессор является ведущим, а все остальные - ведомыми. Ведущий берёт на себя функции распределения задач и ресурсов, а ведомые – работают только как обрабатывающие устройства. Ассиметричные архитектуры позволяют повысить производительность по сравнению с симметричными, но при этом требуется разработка специализированных ядер. Кроме того, такая специализация снижает надёжность системы, поскольку процессоры не являются взаимозаменяемыми.
Можно выделить три варианта конструктивного расположения ядер на кристалле:
1) Независимые процессорные ядра (каждое со своей памятью) расположены на одном кристалле и для связи используют общую системную шину.
2) Несколько одинаковых ядер расположены на разных кристаллах, но объединены вместе в одном корпусе процессора (многочиповый процессор).
3) Ядра могут быть тесно переплетены между собой на одном кристалле и могут использовать некоторые общие ресурсы кристалла (например, шину и кэш-память).
Преимущества и недостатки мультиядерных процессоров вытекают из преимуществ и недостатков параллельных ВС. Следует отметить, что в настоящее время многоядерные процессоры используются крайне неэффективно. Прирост быстродействия, во многом, зависит от типа приложения. У программ, которые не рассчитаны на работу с многоядерными процессорами, быстродействие увеличивается всего на 5%. А вот оптимизированные под многоядерные процессоры приложения работают быстрее уже на 50% /22/.