exc_chain_stack_bounds, exc_ainstr_page_miss, Классификация особых ситуаций точные (21) exc_illegal_opcode, exc_priv_action, exc_fp_disabled, exc_fp_stack_u, exc_diag_ct_cond, exc_diag_instr_addr


Чтобы посмотреть презентацию с картинками, оформлением и слайдами, скачайте ее файл и откройте в PowerPoint на своем компьютере.
Текстовое содержимое слайдов презентации:

Лекция 4: Прерывания (особые ситуации) Широкая команда E2KФорматы данных, тэгиСпекулятивный режимКлассификация особых ситуацийОбработка прерывания exc_data_pageРегистры TIR, устройство Cellar байт n+3 байт n+2 байт n+1 байт n байт n+7 байт n+6 байт n+5 байт n+4 cлово n cлово n + 4 двойное cлово Широкая команда E2K В E2K существует 2 типа командных потоков: «главный» («синхронный», «командный») поток подкачки массива («асинхронный»)Команды обоих типов адресуются в режиме little endian. Широкая команда E2K Синхронная команда может иметь длину от 1 до 8 двойных слов и выровнена до двойного слова. Команда состоит из слов без тегов (слогов) и полуслов (полуслогов), которые по отдельности или в комбинациях кодируют операции.Асинхронная команда имеет фиксированную длину 2 двойных слова. байт n+3 байт n+2 байт n+1 байт n слог j 31 0 байт n+1 байт n 15 0 полуслог j байт n+3 байт n+2 байт n+1 байт n байт n+7 байт n+6 байт n+5 байт n+4 полуслог j+1 полуслог j полуслог j+2 пусто (нули) Последовательность слогов компонуется в слова. В случае последовательности нечетной длины оставшееся полуслово заполняется нулями. Широкая команда E2K Далее рассматриваем синхронную команду (из синхронного потока). Формат слога: Формат полуслога: до 3 слово Слоги условного выполнения CDS (Conditional Syllab) до 3 слово Слоги предикатов логических каналов PLS (Predicate Logic Syllab ) до 4 слово Слоги литералов LTS (Literal Syllab) до 6 полуслово Слоги каналов обращения к массивам AAS (Array Access Syllab) до 4 полуслово Слоги расширения арифметико-логических каналов ALES (Arithmetic Logic Extention Syllab) до 2 слово Слоги управления CS (Control Syllab) до 6 слово Слоги арифметико-логических каналов ALS (Arithmetic Logic Syllab) 1 слово Слог коротких операций SS (Stub Syllab) 1 слово Слог заголовка HS (Header Syllab) Количество в 1 ШК Формат Тип Обозначение Широкая команда E2K Типы (полу)слогов: Слог заголовка:HS \Слог коротких операций:SS |Слоги AL каналов: ALS0 |… ALS5 | фрагмент f1Слоги управления: CS0 /CS1 > фрагмент f2  средняя точкаПолуслоги расширения:ALES0 \…ALES4 | фрагмент f3Полуслоги каналов обращения к массивам:AAS0 |…AAS5 /«Дыра» для выравнивания команды: 0 / 0.5 / 1 / 1.5 слоговЛитеральные слоги:LTS3 \…LTS0 |Слоги предикатов логических каналов:PLS2 | фрагмент f4PLS1 |PLS0 |Слоги условного выполнения:CDS2 |CDS1 |CDS0 / «длина команды» Широкая команда E2K Метод упаковки команды: ! function ‘fbBlt’, entry = 70162, value = 0x53ab40, size=0x10850, sect = ELF_TEXT num = 10…1420<0000005414b8> HS ec311446 M_5414b8: loop_mode SS 806f24a0 ct %ctpr1 ? #NOT_LOOP_END ipd 2 abn abnf=1, abnt=1 abp abpf=1, abpt=1 alc alcf=1, alct=1ALS0c80be913 pandd, 0, sm, %db[11], %dg9, %db[19]ALS1cb15e80b pxord, 1, sm, %db[21], %dg8, %bd[11]ALS391c81412 addd, 3, sm 8, %db[20], %db[18] ? pcntlALS491c01415 addd, 4, sm 0, %db[20], %db[21]ALS52117c013 std, 5 %db[19], [%db[23] + 0]ALES01c001c0AAS00014001 movad, 1 area=0, ind=0, am=1, be=0, %db[1]CDS044410000 rlp, cd00 %pcntl, > alc3 Широкая команда E2K Пример (дизассемблер): С точки зрения разрядности:8 бит- байт (byte);2 байта- полуслово (halfword, hword);4 байта- слово (word), имеет 2 дополнительных разряда (тег) для кодировки типа;8 байт- двойное слово (double-word, dword), имеет 4 дополнительных разряда (тег) для кодировки типа;16 байт- квадро слово (quad-word, qword), имеет 8 дополнительных разрядов (тег) для кодировки типа.Грубо все данные подразделяются на 2 категории: числовые значения (Numeric Value - NV) и адресные значения (Address Value – AV). NV имеют нулевые теги, AV – ненулевые. Форматы данных, теги Составляющее слово адресного типа квадро формата. tagaddr128 11 Составляющее слово адресного типа двойного формата. tagaddr64 10 Специальный тип одинарного формата. tagaddr32 01 Числовой тип одинарного формата или составляющее слово числового типа двойного, расширенного или квадро форматов. tagnvs 00 комметарий id tag Коды тегов одинарного слова: Тип DT (Diagnostic Type) состоит из DW (Diagnostic Word): itag = 1 Тип ET (Diagnostic Type) состоит из DW (Diagnostic Word): itag = 0 x x tag itag 29 0 30 31 t1-t0 Форматы данных, теги Составляющее слово адресного типа квадро формата. tagaddr128 (AV) 11 Составляющее слово адресного типа двойного формата. tagaddr64 (AV) 10 Специальный тип одинарного формата. tagaddr32 (DT, ET ) 01 Числовой тип одинарного формата или составляющее слово числового типа двойного, расширенного или квадро форматов. tagnvs (NV) 00 комметарий id tag Коды тегов одинарного слова: Тип DT (Diagnostic Type) состоит из DW (Diagnostic Word): itag = 1 Тип ET (Empty Type) состоит из DW (Diagnostic Word): itag = 0 x x tag itag 29 0 30 31 t1-t0 Форматы данных, теги Спекулятивный режим Определены 3 возможных режима выполнения операции: неспекулятивный, спекулятивный, полуспекулятивный. Они отличаются только в одном – в обработке особых ситуаций: В неспекулятивном режиме особая ситуация вызывает вход в обработчик прерываний. В спекулятивном режиме реакция на особую ситуацию откладывается до подходящего момента. Входа в обработчик прерываний не происходит, возвращается диагностическое значение. В полуспекулятивном режиме вход в обработчик прерываний происходит только для exc_data_page.page_miss. Для остальных особых ситуаций – это спекулятивный режим. Прерывание, которое случается асинхронно по отношению к командному потоку (внешнее пррывание). Все команды, выданные к моменту прерывания завершаются как обычно; тип прерывания содержится в одном из регистров TIRj. IP возврата указывает на первую невыполненную из-за прерывания команду. асинхронные Команда, которая вызвала прерывание произвела некоторый видимый эффект, сохранена информация о конкретной операции, вызвавшей прерывание. Прерванная команда может быть повторена или смоделирована. IP команды вызвавшей прерывание – в одном из регистров TIRj. IP возврата – одна из следующих команд. Гарантировано что не выполнялась команда, содержащая операцию-потребитель результата прервавшейся операции. отложенные Команда, которая вызвала прерывание произвела некоторый видимый эффект, отсутствует информация о конкретной операции, вызвавшей прерывание. Не может быть повторена или смоделирована. IP команды вызвавшей прерывание – в одном из регистров TIRj. IP возврата – одна из следующих команд. Гарантировано что не выполнялась команда, содержащая операцию-потребитель результата прервавшейся операции. неточные Команда, которая вызвала прерывание нет произвела никакого видимого эффекта и может быть повторно выполнена после возврата из обработчика прерывания. IP команды, вызвавшей прерывание содержится в TIR0. IP возврата = IP команды, вызвавшей прерывание. точные Классификация особых ситуаций exc_proc_stack_bounds, exc_chain_stack_bounds, exc_ainstr_page_miss, exc_ainstr_page_prot, exc_interrupt, exc_mem_lock_as, exc_mem_error асинхронные (7) exc_d_interrupt, exc_last_wish, exc_data_page, exc_mem_lock отложенные (4) exc_div, exc_fp, exc_data_debug неточные(3) exc_illegal_opcode, exc_priv_action, exc_fp_disabled, exc_fp_stack_u, exc_diag_ct_cond, exc_diag_instr_addr, exc_illegal_instr_addr, exc_instr_debug, exc_window_bounds, exc_user_stack_bounds, exc_fp_stack_o, exc_diag_cond, exc_diag_operand, exc_illegal_operand, exc_aray_bounds, exc_access_rights, exc_addr_not_aligned, exc_instr_page_miss, exc_instr_page_prot, exc_base_not_aligned, exc_software_trap точные (21) Классификация особых ситуаций exc_proc_stack_bounds, exc_chain_stack_bounds, exc_ainstr_page_miss, exc_ainstr_page_prot, exc_interrupt, exc_mem_lock_as, exc_mem_error асинхронные (7) exc_d_interrupt, exc_last_wish, exc_data_page, exc_mem_lock отложенные (4) exc_div, exc_fp, exc_data_debug неточные(3) exc_illegal_opcode, exc_priv_action, exc_fp_disabled, exc_fp_stack_u, exc_diag_ct_cond, exc_diag_instr_addr, exc_illegal_instr_addr, exc_instr_debug, exc_window_bounds, exc_user_stack_bounds, exc_fp_stack_o, exc_diag_cond, exc_diag_operand, exc_illegal_operand, exc_aray_bounds, exc_access_rights, exc_addr_not_aligned, exc_instr_page_miss, exc_instr_page_prot, exc_base_not_aligned, exc_software_trap точные (21) Классификация особых ситуаций exc_proc_stack_bounds, exc_chain_stack_bounds, exc_ainstr_page_miss, exc_ainstr_page_prot, exc_interrupt, exc_mem_lock_as, exc_mem_error асинхронные (7) exc_d_interrupt, exc_last_wish, exc_data_page, exc_mem_lock отложенные (4) exc_div, exc_fp, exc_data_debug неточные(3) exc_illegal_opcode, exc_priv_action, exc_fp_disabled, exc_fp_stack_u, exc_diag_ct_cond, exc_diag_instr_addr, exc_illegal_instr_addr, exc_instr_debug, exc_window_bounds, exc_user_stack_bounds, exc_fp_stack_o, exc_diag_cond, exc_diag_operand, exc_illegal_operand, exc_aray_bounds, exc_access_rights, exc_addr_not_aligned, exc_instr_page_miss, exc_instr_page_prot, exc_base_not_aligned, exc_software_trap точные (21) Классификация особых ситуаций Особая ситуация exc_data_page вырабатывается при различных обращениях впамять если не выполняется трансляция виртуального адреса в физический адрес. exc_data_page exc_data_page.page_miss exc_data_page.illegal_page exc_data_page.priv_page exc_data_page.prot_page exc_data_page.isys_page exc_data_page.io_page exc_data_page.nwrite_page exc_data_page.page_bound exc_data_page.ph_bound exc_data_page.ph_pr_page exc_data_page.intl_res_bits exc_data_page.global_sp exc_data_page.addr_prot_page “page protection” Обработка прерывания exc_data_page нет нет DT любой Спекулятивное чтение из памяти нет нет DT page_prot Да да DT page_miss Полуспекулятивноечтение из памяти да да DT любой Неспекулятивное чтение из памяти да да Не меняется любой Любая запись в память Сброс в «подвал» Обработчик прерывания Место назначения Тип ошибки Тип операции Обработка прерывания exc_data_page ALU MLT Cellar (подвал) Кэш L1 Кэш L2 MAU DAM SLT AAU(APB) RF TIRs TLB TLU CPU 0 Link to CPU 1 VLIWe3m – 300 MHz, 2 cpus, SMPe3s – 500 MHz,4-16 cpus, NUMA ALU MLT Cellar (подвал) Кэш L1 Кэш L2 MAU DAM SLT AAU(APB) RF TIRs TLB TLU Аппаратура (процессор) ALU MLT Cellar (подвал) Кэш L1 Кэш L2 MAU DAM SLT AAU(APB) RF TIRs TLB TLU CPU 0 Link to CPU 1 VLIWe3m – 300 MHz, 2 cpus, SMPe3s – 500 MHz,4-16 cpus, NUMA ALU MLT Cellar (подвал) Кэш L1 Кэш L2 MAU DAM SLT AAU(APB) RF TIRs TLB TLU Аппаратура (процессор) j 63 56 aa 55 52 49 44 al 43 0 exc hi: lo: 47 0 ip 63 Регистры TIR (Trap Info Registers) Регистры TIR содержат информацию о нескольких последних командах, то есть о заключительной части трассы выполнения. Трасса собирается во время выполнения программы и «замораживается» при входе в прерывание. После этого информация о трассе доступна для операций чтения регистров. «Размораживание» TIR – запись в регистр TIR. 1 TIR – квадро-слово (TIRlo, TIRhi). Количество регистров TIR: TRAP_NUM = 19. Устройство Cellar («подвал») Trap Pointer Register (TRAP_POINT) – указывает на начало специально отведенной области в памяти («подвал»), где сохраняется информация о невыполнившихся запросах. Trap Counter (TRAP_COUNT) – количество двойных слов, занятых сброшенной в подвал информацией.Всего может быть сброшено до 7 запросов: 4 синхронных запроса с каналов 0, 2, 3, 5 + 3 асинхроных запроса от устройства аппаратной чистки стека CLW. Формат 0-го слова: Формат 1-го слова: Формат 2-го слова: 63 48 47 0 Reserved Virtual Address 63 tag Data 0 rcv r dst_rcv clw empt num_align miss_lvl 63 62 61 60 53 52 51 50 49 48 fault_type chan pm spec sru scal 47 34 33 32 31 30 29 28 root mas s_f mode_80 r opcode 27 26 20 19 18 17 16 13 store 14 10 dst 9 0 Устройство Cellar («подвал») parse_TIR_registers do_trap_cellar: do_page_fault execute_mmu_operations Вход для прерываний Выход: обратно к приложению Обработка прерывания exc_data_page Ссылки http://www.lab.sun.mcst.ru/honey/elbrus_s/project_docs/iset/index.html :4. Форматы данных6. Команда7. ПрерыванияПриложение D: Спекулятивный и полуспекулятивный режимы исполнения http://os.lab.sun.mcst.ru/mipt/ Вопросы

Приложенные файлы

  • ppt 7822290
    Размер файла: 179 kB Загрузок: 1

Добавить комментарий