Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Высокопроизводительные системы и подсистемы памяти. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
11.08.2026
Размер:
503 Кб
Скачать

module change_endian ( //in

input wire [63:0] data_in, // входные данные

input wire [1:0] size, // 2'h0 - байт, 2'h1 - полслова, 2'h2 - слово, 2'h3 – двойное слово

input wire en, // перестановка разрешена //out

output wire [63:0] data_out // выходные данные );

assign data_out = (en & (size != 2'h3)) ? // 64-bit не требуется переставлять

(

({64{size == 2'h0}} & {data_in[7:0], data_in[15:8], data_in[23:16], data_in[31:24], data_in[39:32], data_in[47:40], data_in[55:48], data_in[63:56]}) | // 8-bit перестановщик

({64{size == 2'h1}} & {data_in[15:0], data_in[31:16], data_in[47:32], data_in[63:48]}) | // 16-bit перестановщик

({64{size == 2'h2}} & {data_in[31:0], data_in[63:32]}) // 32-bit перестановщик ) :

data_in; // 64-bit или bypass endmodule

2.СИНХРОНИЗАЦИЯ АСИНХРОННЫХ СИГНАЛОВ

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

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

11

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

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

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

При проектировании синхронных схем необходимо всегда соблюдать времена предустановки (setup) сигналов данных на входе триггеров и их сохранения (hold) по отношению к тактовому сигналу (рис. 2.1). В современных САПР это, как правило, делается автоматически, при отсутствии требуемого времени выдается неопределенное состояние на выходе триггера. Расчеты делаются при заданном разбросе температур, напряжения питания и технологическом разбросе изготовления кристаллов. Все данные содержатся в библиотеке и технологическом файле (PDK, включающий Design Rule Specification, Process Specification, модели транзисторов и пр.), который поставляется разработчикам микросхем фабрикой-изготовителем.

Для использования внешних асинхронных сигналов в таких схемах необходимо их сначала синхронизовать (удовлетворить

12

требованиям предустановки и сохранения сигнала относительно фронта синхроимпульса, по которому происходит изменение состояний). На рис. 2.2 приведен пример синхронизации сигнала DATA_IN двумя D-триггерами.

Hold

Setup

CLK

Data

Рис. 2.1. Времена предустановки и сохранения сигнала данных (data) по отношению к тактовому сигналу (clk)

Рис. 2.2. Синхронизация асинхронных сигналов в синхронных системах

На первый взгляд может показаться, что достаточно только одного D-триггера, однако сигнал DATA_OUT в этом случае может не просто принять неопределенное состояние «0» или «1», а стать или единичным импульсом, или последовательностью «глитчей» (коротких импульсов, длительностью сопоставимых величине задержки внутренних элементов) в течение первого полупериода синхроимпульса. Это объясняется тем, что триггер в этом случае может заработать как генератор. Чаще всего на выходе появляется просто короткий импульс. Характер выходного сигнала зависит от реали-

13

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

CLK

DATA_IN

DATA 1

DATA OUT

Рис. 2.3. Временная диаграмма синхронизации асинхронных сигналов в синхронных системах

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

14

3.ПРОИЗВОДИТЕЛЬНОСТЬ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ

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

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

15

4. ОРГАНИЗАЦИЯ ПОДСИСТЕМЫ ПАМЯТИ

4.1. Методы доступа к памяти

Различают четыре основных типа доступа.

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

Прямой доступ. Режим последовательного обмена данными от заданного начального адреса до конечного адреса, определяемого, как правило, числом передаваемых данных. Для определения числа передаваемых данных встраивается счетчик, который при каждой передаче увеличивает свое значение на 1 до достижения числа передач, заданного в специальном регистре, или, наоборот, в счетчик записывается число требуемых передач, и при каждой передаче значение счетчика уменьшается на 1 до достижения 0. В микропроцессорах эту операцию обычно выполняет специализированный контроллер прямого доступа (DMA-контроллер), что позволяет микропроцессору заниматься во время пересылок другими задачами, и тем самым экономится процессорное время. Кроме того, такой режим позволяет существенно ускорить передачу данных. Режим наиболее эффективен при передаче данных большого объема. DMA-контроллеры могут иметь сложную структуру и передавать данные в разные области памяти, адрес которых вычисляется по заданной функции. Также может реализовываться функция преобразования виртуальных адресов в физические, для чего контроллеры содержат дополнительные таблицы преобразования виртуальных адресов в физические (TLB).

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

16

ности записей на носителе информации и позиции элемента внутри данной записи. Примером может служить ЗУ на винчестере.

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

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

1.Имеется в точности одна строка с заданным тэгом;

2.Имеется несколько строк с заданным тэгом;

3.Нет ни одной строки с заданным тэгом.

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

17

в ассоциативную память элемент данных помещается в СтрАП вместе с присущим этому элементу тэгом. Для этого можно использовать любую свободную СтрАП.

4.2. Иерархия подсистемы памяти

Память процессора делится на дисковую память и оперативное запоминающее устройство (ОЗУ). Производительность современных процессоров возрастает вдвое примерно каждые 1,5 года, растет число параллельно выполняющихся операций за счет увеличения числа ядер в микропроцессоре, встраивания различного рода сопроцессоров и ускорителей, улучшения архитектуры микропроцессоров в целом. Для возможности функционирования таких процессоров без простоя требуется соответствующее число входных данных, находящихся в памяти процессора. В то же время для микросхем памяти прирост быстродействия не превышает 9 % в год (удвоение за 10 лет), что выражается в увеличении разрыва в быстродействии между процессором и памятью приблизительно на 50 % в год. Если частота современных микропроцессоров превышает 3 ГГц, то частота динамической памяти составляет порядка 1 ГГц (передача данных идет по двум фронтам, что эквивалентно 2 ГГц). Однако при такой частоте памяти на считывание первого слова тратится порядка 14 тактов и только следующие три слова считываются за один такт, т.е. реальная частота поступления данных из памяти в микропроцессор существенно ниже частоты функционирования процессора. Как правило, частота процессорного ядра в несколько раз выше частоты памяти, а микросхема может содержать число ядер, превышающее в несколько раз число каналов памяти. Даже в стандартных программах доля инструкций загрузки и сохранения данных может составлять более 30 % от общего количество инструкций. Например, в системе тестов SPECCPU2000 для целочисленного набора тестов количество команд загрузки/сохранения составляет 33,2 %, для тестов с плавающей точкой – 32,6 % [1]. Для суперскалярных процессоров, выполняющих две инструкции за такт, требуется более 60 % инструкций загрузки и сохранения, а при выполнении трех инструкций за такт число обращений к памяти приближается к обращению в каждом такте. Таким образом, критическим местом с точки зрения произ-

18

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

Как «накормить» процессор данными и инструкциями? Для этого предпринимается целый ряд мер, и тем не менее для некоторых задач недостаток в скорости поступления данных является сдерживающим фактором повышения производительности вычислительных систем, т.е. производительность определяется параметрами каналов памяти. Увеличение ширины памяти и числа каналов является наиболее простым функционально и дорогостоящим в исполнении механизмом повышения производительности. Для высокопроизводительных процессоров число каналов памяти может достигать шести, ширина, как правило, составляет 64 разряда. Дальше реализуются специальные механизмы закачки данных во встроенную память микропроцессора, такие как DMA-передачи, осуществляемые встроенными контроллерами. Основным же механизмом повышения производительности является создание иерархической памяти с разным быстродействием (рис. 4.1). Более высокий уровень памяти меньше по емкости, быстрее и имеет большую стоимость в пересчете на бит, чем более низкий уровень. Уровни иерархии взаимосвязаны, все данные верхнего уровня находятся на более низком уровне. Однако в некоторых случаях возможно изменение микропроцессором данных на верхнем уровне без изменения на нижнем, в этом случае вводятся специальные механизмы, гарантирующие невозможность считывания неверных данных нижнего уровня другими устройствами. Основой такого подхода для повышения производительности является то, что встроенная память имеет существенно большую скорость, чем внешнее ОЗУ. Это объясняется прежде всего большими задержками при формировании сигналов внешней памяти на приемниках/передатчиках, ориентированных на большую входную емкость и параметры печатных плат, а также на использование встроенной статической, а не динамической памяти, позволяющей осуществлять доступ за один такт. Однако накристалльную память большой емкости сделать невозможно. Именно поэтому и строится иерархическая система.

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

19

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

Регистры микропроцессора

Кэш-память инструкций и данных первого уровня (L1)

Кэш-память второго уровня (L2)

Кэш-память третьего уровня (L3)

ОЗУ

Кэш-память дисков (реализуется в ОЗУ)

Дисковая память (flash, винчестеры, оптические диски, ленты)

Рис. 4.1. Схема иерархической памяти процессора

20

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]