Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Описание поведенческой модели процессора
Операторы и операнды для описания поведения инструкций, массивов аргументов и функций
Арифметические и логические операции В PPDL предусмотрены следующие операции над целыми числами: Арифметические операции: ‘+’ (сложение),’-‘ (вычитание),’*’(умножение),/ (деление), Логические побитовые операции: ‘&’(логическое «И»),|(логическое «ИЛИ), ’^’ (побитовое сложение), ‘~’(отрицание) Операция присвоения: = Операции сдвига: ‘<<’ (логический сдвиг влево),>> (логический сдвиг вправо), Операции сравнения: ‘<’ (меньше), ‘>’ (больше),’==’ (равно),’!=’(не равно), Операция отрицания: ‘!’ Условный оператор: ‘?’
Операторы условного выполнения
В PPDL предусмотрены операторы условного выполнения: if(cond) expr else expr
Для выполнения последовательности операций внутри условия используются фигурные скобки: If(cond) { expr1; expr2; … } else { expr1; expr2; … } Работа операторов if-else полностью аналогична работе соответствующих операторов в языках С\С++ Операторы преобразования типов данных и преобразование к знаковому числу
По умолчанию все целочисленные операторы являются беззнаковыми. Для приведения выражения к знаковому типу применяется оператор signed. Пример: R = (signed) A + (signed)B; // сложение двух чисел с учетом знака
В PPDL предусмотрены операторы: bits2f – интерпретация целого числа как число типа float bits2d - интерпретация целого числа как число типа double bitsf – *представление числа типа float как битовый вектор bitsd - *представление числа типа double как битовый вектор
* В ppdl регистры или FIFO блоки могут быть только целочисленными. Поэтому, при записи результата выражения, имеющего тип float или double, чтобы избежать округления результата и записать результат «как есть», необходимо применить оператор bitsf (для результата типа float) или bitsd (для результата типа double). Оператор цикла for for (begin; end_condition; increment) { for_body; } Где: Begin – начальная инициализация end_condition – условие продолжение цикла increment – изменение счетчиков по окончании каждой итерации цикла
Поведение оператора for в ppdl полностью аналогично поведению for в языках C/С++. Оператор ожидания следующего такта: wait Оператор wait останавливает выполнение инструкции или функции на один такт. В симуляторе при вызове wait Оператор выбора switch/case Конструкция switch/case предназначена для выбора
switch(exp) { case const1: exp1; exp2; … break;
case const2: exp1; exp2; … break;
case constN: exp1; exp2; … break;
default: exp1; exp2; … break;
}
Операторы обращения к битам и операторы объединения выражений exp[bit_num] –обращение (чтение или запись) к биту с номером bit_num. exp[start_bit:end_bit] –обращение (чтение или запись) к битам начиная со start_bit заканчивая end_bit включительно.
В качестве выражения exp могут выступать: 1. Аргументы инструкции, описанные в коде команды (см. ниже) 2. Регистры процессора 3. Элементы ФИФО блоков 4. Ячейки памяти, доступные через шины памяти по адресу. 5. Константы 6. Элементы списка – регистры, ФИФО или ячейки памяти Оператор конкатенации подвыражений Оператор '[exp1,exp2]’ объединяет пару выражений exp1 (старшая часть) и exp2 (младшая часть) в значение (если в правой части выражения) или переменную (если в левой части выражения). Размер объединенной переменной в битах равен сумме размеров составляющих выражений. Например, если мы имеем два регистра ar0 и gr0 размером по 32 бита каждый, то в конструкции int64 x =[ar0,gr0]; в старшие 32 бита x будет записано значение ar0, а в младшие – значение gr0
При присвоении паре регистров [ar0, gr0 ] = 0x55555555AAAAAAA; …после выполнения выражения в ar0 будет записано 0x55555555, а в gr0 – 0xAAAAAAAA
Допустимо использование вложенных операторов конкатенации, например [gr0, [gr1,gr2 ]].
В текущей версии PPDL максимальный размер конкатенированного выражения не должен превышать 64 бита.
|
|||||
Последнее изменение этой страницы: 2021-07-18; просмотров: 29; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.223.119.17 (0.005 с.) |