PLOSTENKA: Tak kralici nory to jsou a pekne hluboke
do jedne zalezes a nez najdes cestu zpet, 6 mesicu v pr...
> ze instrukce dela tohle a pouze tohle je ta zajimava cast
Souhlasim s tim, ze to je zajimavych je i spousta veci okolo. I kdyz
odmyslis formalni metody a jen si reknes ze udelas nove CPU je tam
dost zajimavych veci na praci. Treba, jak to vubec budes ladit? Jak
pro to budes prekladat kod? A kdyz se rozhodnes to udelat jako
soft-core v nejakem FPGA, uz to neni jen o CPU core ale o celem SoC...
> Je nekde ten verifikovany kompilator k videni, nebo je to inhouse chranene reseni?
Je to k videni, ja uz se dost let veci co nejsou open-source nedotykam
(krom jedne veci, dusledek mladicke nerozvaznosti :-)
Vsechno je to ve fazi vyvoje, je to hodne WIP. Celkovou ideu asi nejlepe
popisuje clanek
Towards a Dynabook for verified VM constructionCo se kodu tyce, je to desnej bordel, dany tim ze vetsinu casu nevime
co delame a pred temi 10 lety jsme byli desne naivni :-)
*
Tinyrossa je ten
prekladac, je to brutalne primitivni ve srovnani s modernima prekladacema,
dost veci tomu chybi, POWER backend je hodne pozadu za RISC-V, ostatni
architektury jsou jen experimenty. Nicmene kod to produkuje a je mozne
ho pustit jak v simulatorech (gem5, qemu) tak na FPGA soft-cores
nebo realnem kremiku (SiFive U540, StarFive JH7110, PPC e500, POWER).
Ta formalni stranka jeste neni zaintegrovana, najdes ji v branchi
MoreVMs24. Nejake trivialni priklady co to umi jsou
TRMoreVMs24.class.st.
*
Arch je knihovna
co resi instruction encoding a assembler/dissasembler pro ruzne ISA.
Funguje to, umi to dost, ale je treba to cele predelat. Akorat zatim
nevim jak presne :-)
*
MachineArithmeticje ta "matematika" co je za tim. To je hlavne prace kolegy, on je
matematik, ja jsem jen obycejny inzenyr, takze tam delam jen tu
nejspodnejsi vrstvu kolem interfacu k Z3.
Pak samozrejme mame spousty jinych veci okolo, neco jsou
kravinkyna odreagovani kdyz se nam zavari mozek, neco je prace na externich projektech
kam prispivame vecma co potrebujeme (GDB, OMR, gem5). Co se tyce
semantiky
ISA idea je
Sail->JIB->MachineArithmetic semantic core. To je zatim v plenkach a bude
to dost zajimave, protoze treba semantika ARMv8 ISA vycucla z ASL a natazena
do Coqu (nebo Isabell) zabira ~500GB RAM, takze to uz chce lepsi pocitac
a slusnej GC.