ИСТИНА |
Войти в систему Регистрация |
|
Интеллектуальная Система Тематического Исследования НАукометрических данных |
||
Последние десятилетия отмечены мощным развитием вычислительной техники. В ведущих странах мира полным ходом идут работы по созданию до 2020 года вычислительных комплексов мощностью порядка экзафлопса. Рост производительности обеспечивается в первую очередь за счет параллелизма и увеличения количества вычислительных блоков, требует соответствующего роста объемов и скорости оперативной памяти. ОЗУ экзафлопных систем, по современным расчетам, будет составлять экзабайт и более. Важнейшими научными и инженерно-техническими проблема-ми развития вычислительной техники сегодня является отставание производительности ОЗУ от производительности микропроцессоров, так называемый эффект "бутылочного горлышка"[1] и сложность обеспечения на программном и аппаратном уровнях взаимодействия сотен и тысяч вычислительных потоков с общими данными в памятью, когерентность данных, так называемая проблема "синхронизации вычислительных потоков"[2]. Элегантное решение проблемы совместного использования данных в памяти несколькими потоками (тредами) и синхронизации вычислительных потоков было предложено группой Питера Кегге [3] и заключалось в переносе функционала арбитража доступа к данным из программы пользователя и/или операционной системы (семафоры (semaphore), мьютексы (mutex) и прочее) прямо в контроллер памяти и созданию т.н. «умной памя-ти». В простейшей интерпретации «умной памяти» к данным в ОЗУ прилагается дополнительный признак, т. н. Full-Empty( далее FE) бит. Его значение, равное единице сигнализирует, что ячейка пуста и данные недоступны для чтения (например ожидается запись результата работы другого вычислительного потока), ноль - ячейка полна и данные доступны для считывания. Считывание возможно двумя способами: обычный, когда состояние ячейки не изменяется и "с изъятием данных когда FE-бит аппаратно переводится в состояние "пусто". В этом случае любой запрос на повторное чтение будет задержан до появления данных в ячейке. Таким образом реализуется простой и понятный механизм синхронизации любого количества потоков без использования громоздких глобальных барьеров, аппаратно, без накладных расходов и без программирования. В данной работе разработан контроллер памяти с дополнительными признаками, построенный по указанным выше принципам. Контроллер позволяет работать с ОЗУ типа DDR2 SDRAM, DDR3 SDRAM, RLDRAMIII, ZBT SRAM. Контроллер отлажен на ПЛИС Xilinx Virtex5 50T, Virtex6 240T. Рабочая частота 100-400 MHz. Кон-троллер поддерживает одновременную работу с 1024 вычислитель-ными потоками, максимальная длина очереди запросов - 1024 , латентность выполнения операций без дополнительных признаков данных зависит только от загруженности входной очереди и равняется количеству занятых в ней строк. Латентность контроллера памяти с дополнительными признаками nm-n+1, где m - кол-во отложенных запросов на чтение, n - кол-во "заполняющих"запросов на запись в очереди контроллера, m>n. Контроллер памяти с дополнительными признаками, разработан и применяется в рамках проекта MALT - Multicore Architecture with Lightweight Threads [4], открытый проект создания прото-типа масштабируемого сервера, предназначенного для примене-ния в хостинг-центрах и энергоэффективных ЦОД, содержаще-го тысячи или десятки тысяч предельно простых процессорных ядер с разрешением конфликтов одновременного доступа к данным на уровне контроллера общей памяти и аппаратными механизма-ми планирования и исполнения легких потоков, работающего под управлением единой POSIX-совместимой операционной системы.