У вас нет доступа к фактическому переупорядочению, выполненному внутри ЦП (не существует общеизвестного способа включить трассировку).Но есть некоторые эмуляторы переупорядочения, и некоторые из них могут дать вам полезные советы.
Для современных процессоров Intel (ядро 2, Nehalem, Sandy и Ivy) есть «Intel (R) Architecture Code Analyzer» (IACA)) от Intel.Его домашняя страница - http://software.intel.com/en-us/articles/intel-architecture-code-analyzer/
Этот инструмент позволяет вам увидеть, как какой-то линейный фрагмент кода будет разделен на микрооперации и как они будут планироваться в портах исполнения.У этого инструмента есть некоторые ограничения, и это только неточная модель переупорядочения и выполнения CPU u-op.
Есть также некоторые «внешние» инструменты для эмуляции внутренних компонентов процессора x86 / x86_84, я могу порекомендовать PTLsim (или производное MARSSx86 ):
PTLsim моделирует современное суперскалярное из строя x86-64-совместимое процессорное ядро с настраиваемым уровнем детализации от ... доМодели уровня RTL всех ключевых структур конвейера.Кроме того, весь микрокод, полная иерархия кеша, подсистема памяти и вспомогательные аппаратные устройства моделируются с истинной точностью цикла.
Но PTLsim моделирует некоторый процессор "PTL", а не настоящий процессор AMD или Intel.Хорошей новостью является то, что этот PTL Out-Of-Order , основанный на идеях реальных ядер:
Базовая микроархитектура этой модели представляет собой комбинацию конструктивных особенностей изIntel Pentium 4, AMD K8 и Intel Core 2, но включает в себя некоторые идеи от IBM Power4 / Power5 и Alpha EV8.
Также в качестве аргумента http://es.cs.uni -kl.de / публикации /datarsg / Senf11.pdf говорит, что JavaHASE апплет способен эмулировать различные простые процессоры и даже поддерживает Tomasulo пример .