# Introduction CoreBlocks is going to be an out-of-order processor which will implement a RISC-V microarchitecture. The project will focus on flexibility, which should allow to easily make experiments with different component implementations. ## Documentation Documentation located in the `docs/` directory collects description of the whole processor. In `Overview` a high level overview of CoreBlocks can be found. Html versions of these pages and API documentation generated from code are available at [kuznia-rdzeni.github.io/coreblocks/](https://kuznia-rdzeni.github.io/coreblocks/) ```{mermaid} graph F[FRONTEND
-get instruction
-decode] F -->|FIFO| S S[SCHEDULER
-allocate register
-rename
-allocate ROB
-send to RS] S --RS--> E E[EXEC
-listen to incoming operands
-select instruction to execute
-send to FU
-deallocate RS] E --FU--> B B[BACKEND
-listen for results from FU
-announce results to RF and RS
-mark done in ROB] B --> R R[RETIREMENT
-check rediness of instruction from the end of ROB
-update RAT
-deallocate old register
-deallocate ROB] ROB((ROB)) RF((RF)) FREE_RF((FREE RF)) RAT((RAT)) R --> FREE_RF --> S S & R & B <--> ROB B --> RF --> S S <--> RAT <--> R ```