Мануалы покури... Например латентности для AMD64: JMP pntr16:16/32(far, direct, no call gate) = 31 JMP pntr16:16/32(far, direct, call gate) = 120 (если я правильно понял вопрос)
> "точные координаты" Software Optimization Guide for AMD64 Processors (25112.pdf) A.Fog How to optimize for the Pentium® microprocessors (pentopt.pdf) Интересно, для чего тебе понадобилась латентность переключения. Ведь около сотни тиков far JMP или CALL могут быть цветочками по сравнению с побочными эффектами переключения задачи 1) возможно исключение #NM, если задача использует инструкции FPU/MMX/XMM 2) возможны исключения #PF, если страницы кода\данных задачи не загружены в физ.память 3) сброс TLB и соответсвенно загрузка PTE из кэша или ОЗУ 4) на P4 сброс T-кэша и T-BTB 5) на Атлонах возможна доп.задержка раннего преддекодирования в L1-instruction Каждое исключение отъедает несколько тысяч тиков, инициализация и подкачка страницы где-то на порядок больше, чтение PTE из ОЗУ - сотня-другая тиков. Ну и P4 после переключения задачи работает в режиме декодирования (одна инструкция за такт) и динамическое предсказание переходов скорее всего отдыхает (если нет истории в BTB)
Первая дока у меня не открывается. Гугл ее открывает в html до 94 страницы %( Во второй доке я ненашел. Я имел ввиду скорость переключения TSS без исключений. Насколько будет быстрее если делать структуру вручную? Конечно можно сказать что также как и при обычных обращениях к памяти но недаром там все автоматически делается...
И что, все регистры вручную? Включая сегментные и CR3? 8-| А если не секрет зачем? (Я не издеваюсь, мне действительно интересно...)