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

Петров Б.М., Уткина О.Н.

МОДЕЛЬ РАСЧЕТА ЖИВУЧЕСТИ ПЕРСПЕКТИВНЫХ НАНОМИКРОПРОЦЕССОРНЫХ СИСТЕМ С УЧЕТОМ ФУНКЦИОНАЛЬНОЙ ИЗБЫТОЧНОСТИ

ЗА СЧЕТ ИСПОЛЬЗОВАНИЯ РАЗЛИЧНЫХ МИКРОТЕХНОЛОГИЙ

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

Предложена новая модель, в отличие от имеющихся отечественных и зарубежных (приведенных в справочнике MIL-HDBK-217F) моделей расчета безотказности НМПС, в которой учитывается влияние на интенсивность отказов МП различных микротехнологий, наиболее сильно влияющих на безотказность и быстродействие МП.

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

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

- Операнд - величина, представляющая собой объект операции, выполняемой МП (слагаемые, сомножители).

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

В перспективных МП 2009 - 2015 г.г.: Bloomfield, Havendale, Lynnfield кроме использования новой высокоскоростной шины передачи данных QPI будет использоваться микротехнология многопоточной обработки Simultaneous Multi-Threading, которая известна как микротехнология Hyper-Threading с микроархитектурой NetBurst, которая обеспечивает многопоточную (thead - поток) обработку данных, а также работу с ядрами в многозадачном режиме, за счет наиболее эффективной загрузки всех имеющихся исполнительных блоков процессора и исключения пустых циклов.

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

Если при обращении процессора к кэш - памяти уровней L1, L2, L3 и к оперативной памяти, в них отсутствуют данные для обработки, тогда ЦП обращается к жёсткому диску, что приводит к потере времени. Эта микроархитектура повышает эффективность выполнения команд по сравнению с процессорами на базе микроархитектур предыдущих поколений, что повышает безотказность и быстродействие системы. На самом деле внутри такого процессора нет двух вычислительных ядер, а удвоены только массивы внутренних регистров, контроллеры прерываний, при этом получается, что оба логических процессора конкурируют за ресурсы одного вычислительного ядра и поэтому используют его более эффективно.

В основе технологии Hyper-Threading CPU лежит использование особенностей современных микропроцессоров, которые являются суперскалярными и конвейерными, т.е. выполнение команд на них происходит по этапам и на нескольких конвейерах параллельно. Совместное использование технологии HyperThreading CPU и многоконвейерной обработки предполагает многопоточные задачи, причем необходимо распараллелить эти потоки так, чтобы они не пересекались и не зависели друг от друга, иначе возникает снижение безотказности, поэтому безотказность зависит от структуры предварительного распараллеливания вычислительного алгоритма.

В современных процессорах при работе ядра с кэш - памятью выбираются инструкции из кэш - память уровня L1 размером 32 Кбайт (Instruction Cache), команды из памяти загружаются блоками фиксированной длины, из этих блоков выбираются инструкции и направляются на декодирование. Учитывая, что инструкции имеют переменную длину, а блоки памяти имеют фиксированную длину, возникает задача определения границ между отдельными командами и хранении этой информации или в кэш - памяти уровня L1 или в самом декодере, это позволяет поддерживать постоянный темп декодирования независимо от длины и структуры команд.

Для решения этой задачи используется процедура предварительного декодирования (PreDecode), которая перед декодированием производит выделение (Fetch) команд из выбранного блока, используя микротехнологию обнаружения циклов (Loop Stream Detector) и микротехнологию предсказания ветвлений в программе (Branch Prediction), процедура предварительного декодирования имеет буфер на 18 инструкций, который располагается до декодера, который является четырехканальным и в каждом такте декодирует до четырех инструкций.

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

Для повышения безотказности системы процедура предварительного декодирования использует еще микротехнологию Allocate & Rename, которая производит переименование и распределение дополнительных регистров процессора, а заодно позволяет добиться исполнения для быстрой команды, которая находится ближе (например в кэш - памяти уровня L1), пока «ждущий» регистр, в котором исполняемая команда дожидается загрузки значений операндов в регистр из кэш - памяти уровня L2 или из кэш -памяти уровня L3.

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

В перспективных МП 2009 - 2015 г.г.: Bloomfield, Havendale, Lynnfield для повышения безотказности и производительности системы в микротехнологии MacroFusion, во-первых расширен набор ко-

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

В перспективных МП 2009 - 2015 г.г.: Bloomfield, Havendale, Lynnfield для повышения безотказности и производительности системы в микротехнологии Loop Stream Detector при обнаружении циклов и в микротехнологии Branch Prediction предсказания ветвлений в программе, во-первых изменена последовательность выполнения операций, т.е. теперь блок обнаружении циклов идет за декодером, а не перед ним, поэтому инструкции будут пропускать не только фазу предсказания ветвлений и выборки, но и фазу декодирования, во-вторых изменена размерность буфера с 1B инструкций до 2B декодированных инструкций, что позволяет обнаруживать на 60% более длинные циклы, поэтому инструкции в цикле будут проходить через конвейер быстрее и чаще, что позволяет повысить безотказность и быстродействие.

В перспективных МП 2009 - 2015 г.г.: Bloomfield, Havendale, Lynnfield для повышения безотказности и производительности системы в микротехнологии ReOrder Buffer во-первых увеличен размер буфера с 9B микроинструкций до 12B микроинструкций, во-вторых существенно улучшен механизм предсказания ветвлений и переработаны исполнительные блоки, что позволило за один такт выполнять не

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

Следует несколько слов сказать о применении RAID - технологии, которая расшифровывается как Избыточный Массив Недорогих дисков или как Избыточный Массив Независимых дисков (Redundant Array of Inexpensive Disks или Redundant Array of Independent Disks). Существует несколько уровней RAID

- технологии; RAID-0, RAID-1, RAID-5, RAID-10/0+1, в зависимости от выбранного варианта организации дискового пространства можно или увеличить быстродействие, записывая параллельно через строчку попарно диски, или увеличить безотказность, резервируя папарно диски, или распределять информацию по зеркалированным дискам, выбирая зеркальную пару, для повышения и объема, и быстродействия, и безотказности дисковой системы. Количество различных комбинаций очень много, в зависимости от количества дисковых пар и от структурной схемы, и соответственно выигрыш (и проигрыш -

потери по емкости, быстродействию и безотказности в зависимости в какой паре произошел отказ) по

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

^m(t) = ^0(t) Х KHTX KMF Х KRAID,

где A,0(t) - базовая интенсивность отказов кристалла МП i - й технологии (с учетом времени от-

лаженности процесса производства и соответствия его современному уровню изготовления МП) относительно К-МОП технологии; Kht - коэффициент, учитывающий микротехнология Hyper-Threading с микроархитектурой NetBurst, которая обеспечивает многопоточную обработку данных, а также работу с ядрами в многозадачном режиме; Kmf - коэффициент, учитывающий микротехнологию MacroFusion, которая позволяет проводить слияние двух инструкций в одну (например, инструкцию сравнения и условного перехода), которая в дальнейшем выполняется как одна инструкция, эта микротехнология позволяет повысить безотказность, т.к. процессор за один такт выполняет не четыре инструкции, а пять или шесть инструкций; Kraid - коэффициент, учитывающий RAID - технологии, которая расшифровывается как Избыточный Массив Независимых дисков и в зависимости от выбранного варианта организации дискового пространства можно или увеличить быстродействие, записывая параллельно через строчку попарно диски, или увеличить безотказность, резервируя папарно диски, или распределять информацию по зеркалированным дискам, выбирая зеркальную пару, для повышения объема или быстродействия или безотказности дисковой системы.