Достаточно длинная презентация про использование Хаскеля в моделировании аппаратуры.

Эта версия чуть больше, чем использованная в докладе, я добавил туда примеры кода на разных языках описания аппаратуры и код для примитивов, использованных в самом проекте.


Регалии, так сказать: моделировался superscalar RISC (MIPS architecture) with out-of-order instruction scheduling, automatic address prefetch (data and command addresses). Дополнительно в процессе к нему добавили закоротку (bypass).

Можно было менять многое: можно было включать/выключать внеочередное выполнение, закоротку, вычисление адресов для подкачки из памяти, можно было менять размеры кэша и длину буфера предпросмотра внеочередного выполнения, и тд, и тп.


Если интересно продолжение темы, то см. исходники на http://thesz.mskhug.ru/browser/hiersort

Там лежит модель (очень сложной в подробном описании штуки), но ядро системы моделирования находится в районе http://thesz.mskhug.ru/browser/hiersort/core и совершенно небольшое.


http://thesz.livejournal.com/436186.html - описаны комбинаторы и даны несколько примеров.

Attachments