Тенденции в CPU programming-environment. Базовое целочисленное ядро + FP (RISC) + векторные целочисленные инструкции (MMX) + векторные FP инструкции (SSE/SSE2) + команды иерархии памяти (SSE2) матричные команды зацепление операций
Регистр версии процессора Удобство определять тип и возможности процессора прямо а не базируясь на косвенных признаках TODO: Пример косвенного определения для x86 и пример CPUID.
Счетчики производительности Time Base Facility (Time stamp counter) каждый такт увеличивается на 1 (минусы: когда процессор управляет своей частотой динамически, время тактов бывает различное) Performance monitoring TODO: Примеры событий и регистров по их управлению
Управление регионами памяти Cached Regions Controls В микропроцессорной системе в физическом адрессном пространстве существуют много различных видов памяти: Оперативная память Регистры ввода/вывода отображенные в память видеобуфер Очевидно что эти регионы должны иметь как минимум разные политики кэширования например память кэшировать на запись хорошо, видеобуфер кэшировать на запись плохо, а на чтение хорошо (если только его не изменяет какой нибудь 3D engine). Регистры ввода/вывода кэшировать просто нельзя. BIOS который копируется из ROM в оперативную память для быстродействия может кэшироваться, но не должен модифицироваться. Кроме того современные процессоры поддерживают out-of-order execution, а порядок операций ввода/вывода в некоторых случаях критически важен ------------------------------------------------------------- Speculative Memory Cache WB Read Ordering ------------------------------------------------------------- Write Protected Yes No Yes Speculative Write Back Yes Yes Yes Speculative Write Through Yes No Yes Speculative Write Combining No No Yes Weak Uncachable No No No Strong ------------------------------------------------------------- В принципе OS может настроить все эти параметры в таблицах страниц. Но это неэффективно, поэтому в современные процессоры добавлены регистры которые позволяют настроить эти параметры для регионов физической памяти. При обращении параметры из этих регистров как правило перебивают параметры выставленные в таблицах страниц. TODO: Примеры Uncached:
Write Combining:
Write Through
Write Back