import BlogArea from "../components/blogpost"; // Mock data for blog posts const blogposts = [ { label: "Оптимизация конвейера: как мы добились IPC 1.2 в нашем RISC-V ядре", body: "Разбираем как с помощью глубокого конвейера и точного предсказания переходов ускорили выполнение инструкций. Бенчмарки показывают прирост в 3.7x compared to naive implementation.", publish: "5 августа 2023", get_absolute_url: "/post/optimizatsiya-konveyera-risc-v", tags: ["risc-v", "microarchitecture", "optimization"] }, { label: "RISC-V Custom Extensions: почему мы добавили свои инструкции в процессор", body: "После 6 месяцев анализа мы расширили базовый набор команд. В статье делимся болью верификации, разработкой компиляторной поддержки и тем, как это ускорило обработку AES в 17 раз.", publish: "12 августа 2023", get_absolute_url: "/risc-v-custom-extensions", tags: ["risc-v", "isa", "hardware"] }, { label: "Кастомный memory-mapped периферийный контроллер для RISC-V SoC", body: "Как мы реализовали низколатентный доступ к периферии. Разбираем взаимодействие с шиной TileLink, arbitration и особенности работы с прерываниями.", publish: "19 августа 2023", get_absolute_url: "/memory-mapped-controller-risc-v-soc", tags: ["risc-v", "soc", "embedded"] }, { label: "Hot-swap модулей в RISC-V системе: динамическая подгрузка ускорителей", body: "Реализовали runtime-конфигурацию процессорных расширений на ПЛИС. Теперь можно подгружать крипто-ускорители и DSP блоки без перезагрузки всей системы.", publish: "26 августа 2023", get_absolute_url: "/hot-swap-risc-v-modules", tags: ["risc-v", "fpga", "dynamic"] }, { label: "Верификация RISC-V ядра: как мы покрыли 99.8% кода формальной проверкой", body: "Наша методология верификации с использованием UVM и SymbiYosys. Показываем как обнаружили 47 критических багов до tape-out и добились соответствия спецификации.", publish: "2 сентября 2023", get_absolute_url: "/verifikatsiya-risc-v-yadra", tags: ["risc-v", "verification", "formal"] } ]; export default function Home() { return (
); }