Primula C Compiler     Xameleon Project        |        In English

Текущий статус проекта

Comment are off

На скриншоте показан момент отладки нового конвейеризированного процессорного ядра системы команд «Эверест».

writememinloop

Моделирование работы устройства

Моделирование производится программой ModelSim Starter Edition. Показанные волны соответствуют исполнению следующего участка кода:

loop

Этот код является типичным и используется, например, при инициализации списков. Если бы у процессора был компилятор, то вышеприведённый дамп мог бы соответсвовать следующему коду на языке Си:

do {
    struct list_item * next_free = item + 1;
    item->next_free = next_free;
    item = next_free;
} while( --counter );

Изюминкой новой реализации является «бесплатная» запись во внутреннюю память процессора. Бесплатная в смысле без прерывания конвейера. Конечно, нашемму ядру далеко до изделий мэтров индустрии, но то, что волны из первого скриншота демонстрируют одну инструкцию за такт — это факт.

Приблизительно оценить масштаб проделанной работы вам поможет волна Counter, показывающая количство синхроимпульсов с момента старта. И горизонтальная линейка прокрутки на том же скриншоте.

Оценка количества логических элементов не производилась, но предварительная оценка показывает что устройство поместится в плату Марсоход-2.


Оставить комментарий