Построение тестовых программ для проверки подсистем управления памяти микропроцессоров презентация

Содержание

Место задачи в разработке аппаратного обеспечения ... output sm_out; reg [1:0] c, next_state; always @ (posedge sm_cl) begin    if (reset == 1'b1) c

Слайд 1Построение тестовых программ для проверки подсистем управления памяти микропроцессоров
Евгений Корныхин

научный руководитель: д.ф.-м.н.

А.К.Петренко

Слайд 2Место задачи в разработке аппаратного обеспечения
...
output sm_out;
reg [1:0] c, next_state;
always

@ (posedge sm_cl) begin    if (reset == 1'b1) c <= 2'b00;    else c <= next_state; end
...




проектные документы

design на Verilog

микропроцессор

тестирование design’а


Слайд 3Системное тестирование
генерация тестовых программ
эмулятор
микропроцессора
(эталон)
( на Си )
cравнение трасс
Возникла ошибка
Успешный прогон
cимуляция design’а (на Verilog)
lui

s1,0x27
ori s1,s1,0xc8
lui s3,0x4e
ori s3,s3,0xf7 ...

проводится «сравнением с эталоном»



Слайд 4Подсистемы управления памяти (MMU)
Memory


instri+2
instri+1
instri
Pipeline


Слайд 5Задача построения нацеленных тестов
факторизация пространства ситуаций
нацеленные на ситуации тесты
пример ситуации: в

1-й инструкции происходит «деление на ноль», во 2-й – происходит кэш-промах

задача – построение теста для данной ситуации

Слайд 6Ситуации в MMU
для отдельных инструкций:
возникновение исключительных ситуаций
промахи/попадания в кэшах разных уровней,

в TLB
кэшируемые/некэшируемые обращения в память
отображаемые/неотображаемые вирт.адреса
для цепочек инструкций:
зависимости по регистрам (read/write)
зависимости по адресам (одинаковые/разные физич./вирт. адреса)
зависимости по содержимому (считывается то, что было записано ранее)
одинаковые/разные страницы вирт.памяти
одинаковые/разные строки кэш-памяти
запись/чтение совместно с исключит.ситуациями
«длинные» цепочки инструкций (~10 инстр-й)

Слайд 7Актуальность и задача
Актуальность:
необходимы методы построения тестов, нацеленных на верификацию MMU в

конвейерных микропроцессорах

Задача:
разработать метод построения нацеленных тестов, пригодный для ситуаций из «длинных» цепочек инструкций на MMU

Слайд 8Существующие методы построения нацеленных тестов
прямое конструирование программ (MicroTESK)
псевдослучайное дополнение (SEGUE)
сведение к

системам уравнений (RAVEN, Genesys-Pro)

Слайд 9Схема предлагаемого подхода
ситуация S
(шаблон
программы)
модель инструкции1 в ситуации S
...
модель блока1 MMU
...



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

2. построить уравнения

3. решить

уравнения


4. составить текст тестовой программы


Слайд 10Модель блока MMU
пример:
какие блоки MMU нужны для ситуации (кэш, таблица страниц,

TLB)
блок моделируется ассоциативным массивом
модель блока – значения заданных характеристик:
структурные характеристики
поведение строк блока

L1 {
policy=LRU; lines=4;
regbits=7;
key(tag:24);
data(d:32); keyMatch(k:30) {
k[29:6] = tag
};
}


Слайд 11Модель инструкции
пример:
(это «вариант» исполнения инстр-и в ситуации)?????
утверждения истинности условий на битовых

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

LOAD (y,x,c) :
«промах в L1»
[var y:64; var x:64; const c:16;]

phys <- x + (64)c; assume: phys[1:0]=0^2
miss(phys) {replace(y)};
hit(phys)
{load(y)};


Слайд 12Связь моделей инструкций, моделей блоков MMU и шаблонов
DIV x, y, z

<деление на 0>
LOAD y, x, c <промах в L1>

ситуация в виде
шаблона программы

DIV – деление на 0 (x,y,z) {

}

LOAD – промах в L1 (y,x,c) {

... L1 ...
}


1. формализация поведения


2. формализация состояния

кэш L1 {

}


Слайд 13Декомпозиция ситуации
ситуация
hit(miss) pi
hit(miss) pi+1
. . .

цепочка промахов/ попаданий в блок1
load(store) qi,di
load(store) qi+1,di+1
. . .

цепочка загрузки/ сохранения данных в

блоке1

. . .

. . .


phys = x + (64)c

phys[1:0] = 0^2

. . .

условия на значения регистров, адресов, других промежуточных значений


Слайд 14Построение уравнений
hit(miss) pi
load(store) qi,di
phys[1:0] = 0^2
система уравнений (битовая и целочисленная арифметика)
Hit(p1,

…, pi; pi+1) = ( pi+1 ∈{p1,…,pi} Λ ¬Ev(p1, …, pi; pi+1) )

Miss(p1, …, pi; pi+1) = ( pi+1 ∈{p1,…,pi} Λ Ev(p1, …, pi; pi+1) )

Load(qi, di) = ( if qi = qi-1 then di=di-1 elsif qi = qi-2 then di=di-2 else … endif )

phys[1:0] = 0^2 …


это новые методы


Слайд 15Теоремы корректности и полноты методов построения уравнений
доказана корректность: если система уравнений

для шаблона совместна, то ее решение «удовлетворяет» шаблону

доказана полнота: если для шаблона существует тест, то среди решений системы уравнений есть этот тест (если система уравнений несовместна, то шаблону не соответствует ни один тест)

Слайд 16Особенности предлагаемых методов
единая система уравнений
компактность уравнений (в них выражается не изменение

состояния, а зависимости адресов)
блоки инициализируются цепочкой обращений в них по адресам – адреса вычисляет решатель уравнений
hit и miss в качестве выразительных возможностей языка описания инструкций

Слайд 17Где предлагаемые методы работают
многоуровневая кэш-память
обращение в память с / без

виртуальной памяти
сквозная запись / отложенная запись
доп.условия на строки кэш-памяти
virtually indexed кэш-память
virtually tagged кэш-память

Слайд 18Где эти методы не работают
псевдослучайное вытеснение
псевдослучайный выбор блоков MMU в

инструкции
временные ограничения (длительности, зависимости от скорости выполнения)
циклические действия (например, sqrt)
кэш-память инструкций

 
но и тестирование, нацеленное на эти особенности, надо проводить иначе

Слайд 19Реализация


существующий генератор
шаблонов
описания инструкций
(xml)
конструктор текстов asm (Java)
тесты
(asm)
~100стр. на вариант исполнения инструкции
~2000стр.
~1000стр.
уравнения (smt) 100-500стр.
генератор уравнений (ruby)
описания блоков MMU
(xml)
~10стр. на блок
шаблон теста
решение равнений


Слайд 20Эксперименты
увеличение допустимого размера шаблонов (было 2-3, стало 9-12)
среднее время построения одного теста –

1-30с.
решатель уравнений внешний (Z3)

Слайд 21Практическое использование
микропроцессор архитектуры MIPS
кэши 16кБ (L1), 256кБ (L2), TLB 48 строк,

microTLB 4 строки
обнаружено несколько новых критичных ошибок
?????

Слайд 22Результаты ?????
модель состояния, описывающая характеристики блоков MMU
модель инструкции в виде соотношений

битовых строк и свойств наличия или отсутствия данных в блоках
метод построения разрешаемых уравнений для шаблонов в виде уравнений над битовыми строками без описания изменения состояния MMU
методы описания стратегий вытеснения c помощью уравнений над битовыми строками и ограничениями сумм бит

Слайд 23Публикации
1. статья в «Программировании» [из списка ВАК]
2. статья в «Вычислительных методах

и программировании»
3-4. статьи на SYRCoSE-2008 и 2009
5. статья на EWDTS-2009
6-7. статьи в сборниках трудов ИСП РАН (тт.15, 17)

Слайд 24Примеры описаний инструкций
       

status="readonly" />                     rs            
rs
   

 
    
            rt
            
rt

    

 
    
                
rs
                    
rs

                

                
                     rt
                     
rt
 
                

    
            temp

            temp

    

арифметическое переполнение
ADD rd, rs, rt


Слайд 25Уравнения (constraints)


Слайд 26Уравнения (constraints)


Слайд 27Теоремы о количестве адресов, инициализирующих блок
общий случай: m ≤ n ·

(n + 2w)

для LRU: m ≤ n · w + M

n – количество промахов/попаданий (~ длина шаблона)
M – количество промахов
w – ассоциативность блока

Слайд 28Метод построения уравнений для стратегий вытеснения
Ev(x1,…,xi;x) = ( ux(x1) + …

+ ux(xi) > C )
C – константа (значение зависит от стратегии вытеснения)
ux(xk) = 1, если xk «способствует вытеснению» x; 0, иначе
для LRU: ux(xk) = ( x∉{xk,…,xi} Λ xk∉{xk+1,…,xi} )

Обратная связь

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

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

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


Для правообладателей

Яндекс.Метрика