ОТЛАДКА БЛОКА ПРЕОБРАЗОВАНИЯ АДРЕСОВ МИКРОПРОЦЕССОРА С.И. Аряшев, Б.Ю. Рогаткин, О.В. Сысоева Научно-исследовательский институт системных исследований РАН, [email protected] Блок быстрого преобразования виртуальных адресов микропроцессора (TLB) является одним из критических мест при разработке микропроцессора, как в плане максимальной частоты, так и в плане реальной производительности. Поэтому целесообразно реализовать этот блок в виде заказного, то есть блока, схемотехника и топология которого оптимизированы [1] для применения в конкретном микропроцессоре. В данном случае может использоваться быстродействующая схемотехника типа динамической с автоматическим восстановлением исходного состояния. Отладка блока преобразования адресов состоит из четырех основных этапов. Отладка модели уровня регистровых передач (RTL модель), моделирование в составе программируемой логической интегральной схемы (ПЛИС), смешанное моделирование с использованием блока, реализованного на библиотеке схемотехнических элементов – Netlist (список соединений), тестирование блока преобразования адресов с помощью схемы автономного тестирования. Все отладочные компоненты заказного блока схематично представлены на рис. 1. TLB (Список соединений) TLB (ПЛИС) TLB (RTL) TLB Автономная схема тестирования (64 ячейки, полно-ассоциативный) Рис. 1. Отладочные компоненты заказного блока Моделирование схем подобного уровня средствами стандартных программ схемотехнического моделирования типа SPICE целесообразно лишь на этапе схемотехнической проработки отдельных узлов, а затем проводится проверка функционирования блока в целом. При этом, в целях отладки, необходимо иметь функциональную RTL модель описанную на языке описания аппаратуры (Verilog, VHDL). Модель отлаживается в составе всего микропроцессора и принимается за эталонную. Требования к RTL модели следующие. Необходимо учитывать реальные задержки времен чтения и записи ячеек, что достигается использованием для ассоциативной и ответной части ячеек TLB моделей памяти, учитывающие задержки переключения вентилей на рабочей частоте. Для достижения максимальной рабочей частоты RTL модель должна учитывать особенности, а также удовлетворять требованиям программного обеспечения, с помощью которого будет осуществляться синтез проекта в целом (например, SINOPSYS, PKS и тому подобные). Для эффективной отладки такой модели крайне желательно иметь её аналог, созданного с помощью языка программирования высокого уровня (например, Си, Паскаль и тому подобные). Создание такой модели требует значительно меньше времени, так как позволяет использовать значительно большее количество конструкций языка и не учитывает синтез. Также, в целях отладки желательно иметь готовую микросхему микропроцессора, где имеется данный блок, функционально аналогичный проектируемому заказному блоку. На рис. 2. представлены составляющие отладки RTL модели. Вывод об успешности прохождения теста делается на основе совпадения содержимого регистров и потока инструкций микропроцессора, данные сравниваются после каждой выполненной инструкции из бинарного файла теста. Для моделирования (см. рис. 3) в составе ПЛИС [2] необходимо удовлетворить следующим требованиям. Модель заказного блока, созданная на языке описания аппаратуры (Verilog, VHDL) уровня регистровых передач (RTL) должна быть первое, написана так, чтобы полностью удовлетворять требованиям системы моделирования на кристалле (например, QUARTUS и тому подобные). Второе, модель должна быть промоделирована и полностью отлажена в составе всего микропроцессора с помощью соответствующего программного комплекса (например, NCSIM и другие). 281 Также необходимо, чтобы TLB занимал как можно меньше логических вентилей. Экономия достигается уменьшением количества ячеек TLB, от запланированного количества в итоге, что экономит использование памяти ПЛИС. Высокоуровневая модель Ограничения на модель Аппаратный прототип RTL Модель Рис. 2. Составляющие отладки RTL модели Необходимо чтобы модель, реализованная в ПЛИС в составе всего микропроцессора, обеспечивала прохождение пакета направленных TLB тестов. То есть таких тестов, для удачного завершения которых требуется корректное функционирование всей логики TLB. Отметим, что моделирование в ПЛИС не дает представления о корректной работе блока на рабочей частоте, для этих целей используется концепция смешанного моделирования (см. ниже). RTL Модель Бинарный файл теста Шина Средства моделирования Лог трасс Проверка/ Построение/Синтез Средство сравнения ПЛИС Шина Результат Лог трасс Рис. 3. Схема отладочного процесса при моделировании в ПЛИС Цель отладки заказного блока сводиться к достижению полного функционального соответствия заказного блока и эталонной RTL модели. В результате смешанного моделирования устанавливается соответствие по совпадению входных и выходных векторов обоих блоков, заказного и эталонного, в соответствующие моменты времени. Для этих целей используется специализированное программное обеспечение (ПО), например, UltraSim фирмы Cadence. В общих чертах схема отладочного процесса заказного блока проста (рис. 4). Разработчик получает базу с дампом входных и выходных сигналов (VCD файл), изменяющихся во времени. В этой базе отображена работа TLB в составе реального микропроцессора на основе эталонной модели. Далее проводится моделирование заказного блока со значениями входных векторов сигналов, взятыми из эталонной базы. Работа блока считается удачной, если после моделирования его выходные вектора сигналов совпали с соответствующими из базы. Для сравнения выходных векторов в автоматическом режиме необходимо наложить соответствующие ограничения на задержки и фронты сигналов. Отметим, что время моделирования значительно и определяется выбранным режимом моделирования и точностью обсчета. “Быстрые” цифровые модели не могут использоваться для моделирования TLB, так как этот блок содержит аналоговые элементы типа усилителей чтения. Оптимальным является использование смешанной аналого-цифровой (Mixed-signal) модели с повышенной точностью. На первых этапах отладки, целесообразно проводить тестирование на небольших интервалах времени, позволяющие проверить общую функциональность заказного блока. Такой подход позволяет сократить время, затраченное на получение первых результатов, т.к. в процесс отладки вовлечены несколько человек, занимающихся заказным блоком, также возможно оговорить все условия моделирования, формат получаемых результатов, модификацию существующих тестов для дополнительного тестирования проблемной логики. В дальнейшем, из таких небольших подтестов собирается база, содержащая глобальный тест, удачное завершение которого должно гарантировать функциональность заказного блока в составе всего микропроцессора. Соответствие сигналов устанавливается по содержанию файлов отчета, полученных после моделирования, где, в частности, перечислены все не совпавшие вектора и времена, и где они не 282 совпали. Чтобы определить причину возможных не совпадений, возможно, впоследствии, проанализировать вектора визуально, с помощью соответствующего ПО. Однако такой трудоемкий метод целесообразно применять на ранних этапах, в дальнейшем работоспособность заказного блока устанавливается исключительно по содержанию файлов отчета моделирования, т.н. автоматический режим сравнения. Отладочный процесс позволяет гибко протестировать заказной блок на требуемых частотах, во всех режимах, таких как запись, чтение и поиск, оценить среднюю потребляемую мощность и т.п. Эффективность отладки определяется не только разнообразием типов тестов, но и их количеством для каждого из режимов работы блока в отдельности. Это можно аргументировать тем, что в процессе отладки могут встретиться качественно другие ошибки, нежели чем, например, при отладке RTL модели блока TLB. В основном, такие ошибки обусловлены тонкостями работы транзисторной логики на переключении фронтов. RTL Модель Список соединений (SPICE Netlist) Бинарный файл теста Проверка/ Построение/ Синтез Симуляция VCD Файл Файл базы данных моделирования Файл конфигурации Файл отладочного лога Средство отображения сигналов Рис. 4. Схема отладочного процесса при «смешанном» моделировании В микросхеме необходимо предусмотреть схему автономного тестирования. Такая дополнительная схема позволяет определить функциональность TLB в составе готовой микросхемы микропроцессора без запуска специализированных программных тестов. Взаимодействие с такой схемой осуществляется по стандартному порту тестовой логики (IEEE Standard Test Access Port – TAP) [5]. Порт состоит как минимум из трех входных соединений и одного выходного. К входным соединениям относятся вход тестового тактирующего сигнала (TCK), сигнал выбора режима теста (TMS), вход последовательных данных и инструкций тестовой логики (TDI). К выходным портам относится выход последовательных данных и инструкций тестовой логики (TDO). Контроллер автономной схемы тестирования представляет собой синхронный автомат состояний, состояния изменяются на основе данных, полученных с входов TMS и TCK. Конфигурация схемы автономного тестирования и содержание тестов определяется на этапе проектирования. В общем случае, конфигурация схемы может быть таковой, что содержание тестов будет аналогично этапу тестирования заказного блока в режиме смешанного моделирования. Отметим, что разнообразие тестов в этом случае практически не ограничено, и определяется лишь целесообразностью их проведения. Блок схема автономной схемы тестирования представлена на рис. 5. Тестируемый TLB является т.н. мульти-трансляционным TLB (от англ. Complete-Subblock TLB, CSTLB) [3] и может хранить множество отображений виртуальных адресов памяти. Чтобы расширить диапазон адресов, отображаемых TLB, в CSTLB виртуальные страницы отображаются блоками. Страничный блок содержит несколько страниц, одного размера расположенных последовательно. Таким образом, TLB это функционально сложный блок, в котором используется заказная ассоциативная память с архитектурой 64x44 ячейки. Строка ассоциативной памяти (слово) имеет разветвленную структуру в соответствии с различными способами маскирования, примененными к соответствующим частям виртуального адреса. Маскирование осуществляется следующим образом: маскирующий бит (содержимое соответствующей ячейки памяти) управляет ключом, который соединяет маскируемую часть слова с шиной совпадения всего слова. Для ускорения получения результата сравнения в слове использован стробируемый усилитель, выход которого является сигналом совпадения (hit) в слове. Этот сигнал используется для выбора соответствующей строки в памяти физических адресов, а также для формирования адреса строки, в которой произошло совпадение, и сигнала совпадения в TLB. Таким образом, ассоциативная память TLB [4] принципиально отличается от обычной памяти, что в свою очередь требует индивидуального подхода к ее тестированию. Память физических адресов организована как обычная память с 283 произвольной выборкой, каждое слово которой, в соответствии с принципом работы CSTLB содержит два физических адреса. При обращении к строке считываются оба адреса, затем четный/нечетный адрес выбирается с помощью мультиплексора. Контрольный регистр Отладочный регистр Сигналы JTAG BIST контроллер Сигналы для рабочего режима Сигналы для режима теста TAP контроллер TLB Рис. 5. Блок схема автономной схемы тестирования Тестирование блока TLB предполагало 4 вида основных тестов, каждый из которых предполагал в своем составе ряд подтестов, направленных в свою очередь на проверку функциональности схемотехники ассоциативной памяти, памяти физических адресов и т.д. Проверкой осуществлялась для всех 64 ячеек в разных режимах. Исходя из тестируемого блока и интерфейса работы с ним, решено было воспользоваться смешанной схемой для построения тестовой логики автономной схемы тестирования. Был использован подход с контроллером, отслеживающим непосредственно текущий тест. В случае обнаружения ошибки тест приостанавливается и считывается статус с информацией об ошибке. Несмотря на всё разнообразие тестовых проходов в заказном блоке остаются пути, не покрытые тестом при «смешанном» моделировании. Например, внутренние аппаратные биты защиты ячеек от случайного совпадения при поиске или нарушение функциональности блока при определенных входных данных. Такого рода пути обнаруживаются многократным прогоном теста с различными входными данными. Поскольку команда преобразования адреса должна выполняться за один такт, а динамическая схемотехника диктует наличие целого ряда сигналов для предзаряда различных узлов, в TLB используется специальная схема формирования управляющих сигналов. Управляющие сигналы формируются на эквивалентных цепях. Например, схема формирования управляющего сигнала для усилителя чтения использует эквивалентное слово виртуального и физического адреса. Схема формирования управляющего сигнала для усилителя совпадения в слове использует эквивалентный столбец ячеек. Использование эквивалентных цепей обеспечивает малую зависимость последовательности управляющих сигналов от технологических разбросов и обеспечивает переносимость блока TLB на другую технологию без существенных доработок. ЛИТЕРАТУРА 1. 2. 3. 4. 5. Srilatha M., Klauser A. Low power TLB design for high performance microprocessors. // University of Colorado at Boulder. - 1998. - 19 c. Стешенко В. Б. ПЛИС фирмы «Altera»: элементная база, система проектирования и языки описания аппаратуры. // М.: Издательский дом «Додэка-XXI», 2002. - 576 с. Рогаткин Б. Ю. Повышение эффективности преобразования виртуальных адресов памяти с помощью буфера TLB. // Сборник научных трудов конференции “Электроника, микро- и наноэлектроника”. - 2004. - C. 200-204. Anderson E., A 64-Entry 167MHz Fully-Associative TLB for a RISC Microprocessor // ISSCC Digest of technical papers, Feb., 1996. - P. 360-361. IEEE Standard Test Access Port and Boundary-Scan Architecture. // IEEE Std 1149.1. 2001. - 208 p. 284