Pull to refresh

Comments 8

Интересный материал, но не могли бы Вы переформатировать текст с использованием тега CODE , в качестве языка можно выбрать Typecript, он нормально читается.
За список литературы отдельное спасибо!

ЗЫ Встеаки не Sensivity_list а Sensitivity_list

Спасибо!

Форматирование пропатчил (я и не знал, что там язык выбирать можно)))

always @ (*)
  begin
    h_out <= rom[h_addr];
  end
endmodule

Почему вы не используете SystemVerilog конструкции? Позволило бы избежать ошибки выше.

Весьма интересное решение. Сначала мне подумалось, что такой способ реализации многопоточности сильно ущербен, так как делает невозможным одновременное исполнение нескольких hart-ов (иначе это приведет к коллизиям). Но потом подумалось еще, и мне кажется это весьма простым способом сделать многопоточность незаморачиваясь с разграничением доступа к общим ресурсам (память, csr).

Теперь жду описание того, как реализовать в такой схеме контроллер прерываний и обработчик исключений. Напомню, что в спецификации RISC-V прерывания и исключения это одна и та же сущность. Как это должно работать не нарушая спецификацию.

нужна табличка всех архитектурных регистров RISC-V и на каждый регистр прописывать общий он для потоков или для каждого индивидуальный.

Напоминает многоядерную систему с общей памятью, в которой арбитр доступа к памяти перенесен в ядро процессора :) Интересно было бы сравнить 8-миядерный однопоточный с одноядерным 8-мипоточным по площади и частоте. Судя по реализации XCORE одному потоку гарантируется 1/8 времени минимум. Хотя при этом нужно еще уметь исполнять первый поток когда второй остановился. Итого чтобы один поток имел 100 МГц , вся система должна работать на 800 МГц. Решение прикольное.

у XMOS в зависимости от ядра(или от микроархитектуры ) 4х или 5ти стадийный конвейер, соответственно одиночный поток (единственный активный когда) получает 1/4 или 1/5 тактовой частоты.

Спасибо за уточнение. Поспрашивал ИИ :) Действительно, для экономии и упрощения всего и вся, следующая команда потока не запускается на конвейере пока не завершится предыдущая. ВЫгодно запускать число потоков не меньшее длины конвейера.

Sign up to leave a comment.

Articles