Высокопроизводительные системы и подсистемы памяти. Учебное пособие
.pdf
МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ЯДЕРНЫЙ УНИВЕРСИТЕТ «МИФИ»
С.Г. Бобков
ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ СИСТЕМЫ И ПОДСИСТЕМЫ ПАМЯТИ
Учебное пособие
Москва 2018
УДК 004.3(075.8) ББК 32.973-04(я7) Б72
Бобков С.Г. Высокопроизводительные системы и подсистемы памяти: Учебное пособие. – М.: НИЯУ МИФИ, 2018. – 48 с.
Курс лекций «Высокопроизводительные системы» читается на кафедре «Электроника» (№ 3) НИЯУ МИФИ уже более 10 лет. По основному материалу, излагаемому на лекциях, была подготовлена монография «Бобков С.Г. Высокопроизводительные вычислительные системы» (М.: НИИСИ РАН, 2014. 299 с.).
С учетом постоянного развития высокопроизводительных систем ежегодно в курс лекций вносятся изменения и дополнения. Одним из основных факторов повышения производительности вычислительных систем становится организация подсистемы памяти. Именно поэтому было подготовлено данное пособие, дополняющее материал вышеупомянутой монографии, основной упор в котором делается на подсистемы памяти.
Предназначено для студентов старших курсов, а также аспирантов, специализирующихся в области микро- и наноэлектроники.
Рецензент д-р техн. наук, проф. В.Я. Стенин.
ISBN 978-5-7262-2514-2 © Национальный исследовательский ядерный университет «МИФИ», 2018
© Бобков Сергей Геннадьевич, 2018
Редактор Е.Е. Шумакова Подписано в печать 30.11.2018. Формат 60×84 1/16
Печ. л. 3,0. Уч.-изд. л. 3,0. Тираж 100 экз. Изд. № 027-1. Заказ № _____.
__________________________________________________________
Национальный исследовательский ядерный университет «МИФИ». Типография НИЯУ МИФИ.
115409, Москва, Каширское ш., д. 31.
Оглавление |
|
ПРЕДИСЛОВИЕ.................................................................................... |
4 |
ВВЕДЕНИЕ ........................................................................................... |
5 |
1. ЕДИНИЦЫ ИЗМЕРЕНИЯ ОБЪЕМА ИНФОРМАЦИИ, |
|
РАСПОЛОЖЕНИЕ И ПОРЯДОК БИТОВ И БАЙТОВ .................... |
7 |
2. СИНХРОНИЗАЦИЯ АСИНХРОННЫХ СИГНАЛОВ................ |
11 |
3. ПРОИЗВОДИТЕЛЬНОСТЬ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ .. 15
4. ОРГАНИЗАЦИЯ ПОДСИСТЕМЫ ПАМЯТИ ............................. |
16 |
4.1. Методы доступа к памяти ........................................................ |
16 |
4.2. Иерархия подсистемы памяти.................................................. |
18 |
4.3. Полностью ассоциативная кэш-память................................... |
24 |
4.4. Индикаторы состояния строки................................................. |
28 |
4.5. Кэш-память с прямым отображением памяти........................ |
32 |
4.6. Кэш-память, ассоциативная по множеству ............................ |
34 |
4.7. Многопортовость кэш-памяти ................................................. |
36 |
4.8. Когерентность системы памяти............................................... |
39 |
4.9. TLB и виртуальная память........................................................ |
42 |
ЗАКЛЮЧЕНИЕ................................................................................... |
47 |
Список литературы ............................................................................. |
48 |
3
ПРЕДИСЛОВИЕ
В курсе лекций «Высокопроизводительные системы» основное внимание уделяется созданию современных высокопроизводительных микропроцессорных систем. Основной материал по курсу лекций имеется в работе [1].
Во введении курса рассмотрены этапы, маршруты и методики проектирования высокопроизводительных микросхем.
Далее рассматриваются архитектуры микропроцессоров, ориентированных на создание высокопроизводительных вычислительных систем вплоть до суперЭВМ. Приводится классификация микропроцессоров. Рассматриваются CISC, RISC, VLIW и EPIC процессоры. Основными ограничивающими факторами развития высокопроизводительных микропроцессоров и вычислительных систем в целом при переходе на суб-100 нм технологические нормы изготовления являются повышение потребления питания СБИС и снижение их надежности. Приводятся основные подходы решения этих задач. Рассмотрены методы снижения энергопотребления цифровых КМОП СБИС:
1.Снижение напряжения питания и уменьшение проектных
норм.
2.Динамическое управление частотой и напряжением питания.
3.Включение дополнительных тактов останова в конвейер.
4.Использование нескольких напряжений в одном кристалле.
5.Применение технологии «кремний на изоляторе».
6.Метод селективного отключения синхросигнала.
7.Использование средств САПР.
8.Принцип понижения энергопотребления адиабатических логических элементов.
9.Синхронная и асинхронная логики. Самосинхронные схемы, использование самосинхронных схем в потоковых процессорах.
Далее рассматриваются многопроцессорные системы. Основные типы архитектур параллельных ЭВМ: симметричные мультипроцессорные системы, системы с неоднородным доступом
4
к памяти, системы с массовым параллелизмом, кластерные системы, неоднородные системы.
Кратко рассмотрены программное обеспечение параллельных компьютеров, система управления ресурсами, модель SPMD и MPMD, межпроцессные взаимодействия.
Следующий раздел относится к компьютерным сетям. Дается классификация компьютерных сетей. Рассматриваются основные типы топологий сетей и сетевые протоколы. Более подробно рассматривается протокол USB. Далее рассматриваются основные типы коммуникационных сред: Hyper Transport (HT), PCI Express, Ethernet 10 Gbit, InfiniBand и более подробно стандарт RapidIO.
ВВЕДЕНИЕ
Производительность является основной характеристикой вычислительных систем. Для создания высокопроизводительных систем требуется решение комплекса мер по поднятию производительности с одновременным учетом таких факторов, как ограничения по потребляемой мощности, стоимости, надежности функционирования, габаритов.
Основным фактором повышения производительности является создание высокопроизводительного микропроцессора. Производительность микропроцессора определяется рядом факторов:
частотой его функционирования; архитектурой – возможностью одновременно выполнять не-
сколько инструкций за такт, обрабатывать несколько потоков данных, наличием нескольких ядер, архитектурными особенностями (например, возможностью аппаратного выполнения сложных функций, таких как sin , бабочка и пр.);
наличием большого объема встроенных кэш-памятей различного уровня (встроенная подсистема памяти) и системой команд.
Следующим фактором является организация подсистемы памяти в целом. Особенно остро встает вопрос повышения скорости обмена данными с ОЗУ для задач с большими объемами данных, не позволяющих эффективно использовать кэш-память. В таких случаях ускорение возможно за счет введения режимов прямого дос-
5
тупа к памяти (DMA), предвыборок, увеличения частоты и ширины памяти.
Для систем реального времени и многопроцессорных систем важно аппаратное выполнение функций синхронизации процессов, организация прерываний и контроля функционирования вычислительной системы и ее отдельных узлов.
Большие потери производительности (до нескольких раз для отдельных задач) вычислительных систем происходят при обмене между отдельными микросхемами в силу ограничений по скорости передач данных по плате. Поэтому интеграция функций на одном кристалле и создание систем на кристалле приводят не только к повышению надежности системы и уменьшению ее габаритов в силу уменьшения числа компонент, но и к повышению производительности системы в целом.
При создании микросборок (SiP) возможна оптимизация выводов кристаллов с учетом их характеристик и числа в микросборке, а также соответствующее снижение емкости контактов. Это приводит к уменьшению потребления питания и увеличению скорости обмена данными.
Уменьшение числа мостовых схем приводит к уменьшению задержки на передаваемые данные.
Создание комплектов СБИС под вычислительные системы для конкретных задач позволяет оптимизировать потребляемую мощность, габариты и повысить производительность таких систем.
Введение сопроцессоров под выделенные задачи позволяет в несколько раз поднять производительность систем на таких задачах. Для примера, в современных коммуникационных микропроцессорах имеются десятки встроенных сопроцессоров, аппаратно выполняющих функции сжатия данных, криптографии, контроля, TCP и пр.
Следующими шагами повышения производительности является создание многопроцессорных модулей и систем. Эффективность многопроцессорной системы во многом зависит от решаемых задач (возможности параллельного выполнения отдельных частей программы) и программного обеспечения, обеспечивающего параллельное выполнение задач. Особая роль в таких системах с точки зрения достижения требуемых параметров производительности
6
отводится коммуникационным системам. Именно поэтому в курсе лекций им будет уделено значительное внимание.
Многопроцессорные системы имеют сложную многоуровневую организацию. Можно найти некоторые аналогии такой организации с организацией общества, регионов, коллективов или отдельного человека. Даже термины зачастую берутся из нашей повседневной жизни – арбитр, нейроны, память.
Как показала работа на кафедре электроники НИЯУ МИФИ в течение многих лет, для успешного усвоения курса лекций «Высокопроизводительные системы» необходимо повторение (изучение) основ схемотехники. Этот материал прекрасно изложен в работе [2], которую можно найти в интернете. Ниже рассмотрим некоторые вопросы, которые помогут в освоении курса лекций.
1.ЕДИНИЦЫ ИЗМЕРЕНИЯ ОБЪЕМА ИНФОРМАЦИИ, РАСПОЛОЖЕНИЕ И ПОРЯДОК БИТОВ И БАЙТОВ
Единицами измерения объема информации являются:
бит – минимальная единица измерения информации, имеющая два состояния (включен или выключен, 1 или 0);
байт – последовательность из 8 бит. Крайний левый бит в байте является старшим. Используя один байт, можно закодировать один символ из 256 возможных (256 = 28).
Для измерения объема информации используется также термин «слово», однако, размер слова различный в зависимости от архитектуры микропроцессора, вычислительной или сетевой системы. В современных микроконтроллерах размер слова обычно от 1 до 4 байт, в высокопроизводительных микропроцессорах размер слова, как правило, 8 байт.
Для удобства работы с большими числами, как и в других единицах измерения (вес, длина и пр.), используются приставки:
1 Кбайт (килобайт, англ. Kb) = 210 байт = 1024 байт ~ 103 байт (примерно 1 тыс. байт);
1 Мбайт (мегабайт, англ. Mb) = 220 байт = 1024 килобайт ~ 106 байт; 1 Гбайт (гигабайт, англ. Gb) = 230 байт = 1024 мегабайт ~ 109 байт; 1 Тбайт (терабайт, англ. Tb) = 240 байт = 1024 гигабайт ~ 1012 байт; 1 Пбайт (петабайт, англ. Pb) = 250 байт = 1024 терабайт ~ 1015 байт;
7
1 Эбайт (эксабайт, англ. Eb) = 260 байт = 1024 петабайт ~ 1018 байт; 1 Збайт (зеттабайт, англ. Zb) = 270 байт = 1024 эксабайт ~ 1021 байт; 1 Йбайт (йоттабайт, англ. Yb) = 280 байт = 1024 зеттабайт ~
~1024 байт.
Вприведенной таблице степени двойки являются точными значениями килобайт, мегабайт, гигабайт, а степени числа 10 – приблизи-
тельными значениями, округленными в сторону уменьшения. Таким образом, 210 = 1024 байт является точным значением, а 103 – приблизительным значением килобайта, являющимся общепринятым.
Врамках одной группы битов конечный бит, находящийся на одном конце этой группы (обычно правом), называется наименее значимым битом (least significant bit, lsb), или просто младшим битом, а бит на другом конце группы называется наиболее значимым битом (most significant bit, msb), или старшим битом. Аналогичным образом, внутри одного слова можно выделить наименее значимый байт (least significant byte, LSB), или младший байт, и наиболее значимый байт (most significant byte, MSB), или старший байт.
Вотличие от порядка битов в байте порядок байтов в словах может быть различный в зависимости от архитектуры.
Порядок от младшего к старшему
Порядок от младшего к старшему, или little endian: запись начинается с младшего и заканчивается старшим байтом. Этот порядок записи принят в микропроцессорах с x86 архитектурой, в стандартах PCI, PCIe и многих других архитектурах. Порядок предложен и запатентован компанией Intel. Схема порядка расположения байтов и битов little endian представлена на рис. 1.1 для 32-разрядного слова.
бит 24 |
бит 16 |
бит 8 |
бит 0 |
Байт 3 |
Байт 2 |
Байт 1 |
Байт 0 |
Рис. 1.1 Порядок расположения байтов little endian
Порядок от старшего к младшему
Порядок от старшего к младшему, или big endian: запись начинается со старшего и заканчивается младшим байтом. Порядок введен компанией Motorola, поскольку порядок little endian был запатентован компанией Intel и необходимо было снизить зависи-
8
мость от конкурента. Этот порядок является стандартным для протоколов TCP/IP, он используется в заголовках пакетов данных и во многих протоколах более высокого уровня, разработанных для использования поверх TCP/IP. Данный порядок байтов используется процессорами IBM 360/370/390, Motorola 68000, SPARC, MIPS. Необходимо отметить, что компания Motorola была ведущей на рынке США в 80-х гг. (компьютеры Apple создавались на архитектуре Motorola 68000) и в отличие от компании Intel не препятствовала использованию данного порядка другими компаниями.
В этом же виде (используя представление в десятичной системе счисления) записываются числа индийско-арабскими цифрами в письменностях с порядком знаков слева направо (латиница, кириллица). Схема порядка расположения big endian байтов и битов представлена на рис. 1.2 для 32-разрядного слова.
бит 0 |
|
бит 8 |
бит 16 |
бит 24 |
|
Байт 0 |
Байт 1 |
|
Байт 2 |
|
Байт 3 |
Рис. 1.2. Порядок расположения байтов big endian
Переключаемый порядок
Многие процессоры могут работать и в порядке big endian, и в обратном, например ARM, PowerPC, MIPS. В микропроцессорах КОМДИВ нового поколения разработки ФГУ ФНЦ НИИСИ РАН также возможно переключение порядка байтов. Порядок байтов может задаваться аппаратно при включении питания или программно во время инициализации операционной системы.
Смешанный порядок
Смешанный порядок байтов, или middle endian, иногда используется при работе с числами, длина которых превышает машинное слово. Число представляется последовательностью машинных слов, которые записываются в формате, естественном для данной архитектуры, но сами слова следуют в обратном порядке.
В процессорах ARM используется смешанное представление для длинных вещественных чисел.
Для нормального функционирования нескольких устройств с различным порядком байтов создаются функциональные блоки, меняющие соответствующим образом порядок байтов. Такие блоки
9
называются перестановщиками байтов. Ниже, на рис. 1.3, приводится структурная схема перестановщика байтов big endian в little endian для 64-разрядного слова и RTL код этого блока.
Рис. 1.3. Структурная схема перестановщика байтов
Одним из важнейших этапов проектирования цифровой микроэлектронной аппаратуры является разработка описаний (модели) на уровне регистровых передач (Register Transfer level, RTL). Наиболее популярными языками являются VHDL и Verilog, называемые еще языками семейства HDL (Hardware Description Language). Синтаксис указанных языков близок к традиционным языкам программирования, таким как C и Ada. Ниже представлен RTL код перестановщика байтов на языке Verilog, структурная схема которого представлена на рис. 1.3.
10
