MUHI uraden seznam

Table of Contents

1. Seznam

Žal vam ne garantiram nič boljšega kot poskus kronološkega sortiranja. Gotovo ne obljubljam popolne skladnost s standardom 😏 (Gledam tebe OW).

  1. ass.si/git/MUHI_‍consortium/1bitvm
    • 1. implementacija, v tem repozitoriju je tudi zbirnik (skoraj garantira pravilnost)
  2. ass.si/git/MUHI_‍consortium/1bitvm.zig
    • 2. implementacija in koincidentno najhitrejša (delujoča)
  3. github.com/Oliwerix/1bitvm.c
  4. ni.4a.si/sijanec/ebs
  5. github.com/marwuint/kihatsu
    • Najhitrejša implemetacija v cpp in koincidentno ne delujoča. Avtor odgovoril z

      :3

  6. github.com/MaticBabnik/1b.js < Ni testiran >
  7. github.com/MaticBabnik/lastBit < Ni testiran >
    • C++
    • Rewrite js implementacije

2. Mirrors

3. Prihodnje [0%]

3.1. STRT Dokumentacija na tej strani!

3.2. STRT Bitrout jezik

3.2.1. TODO Boljši benchmark kot example3.out

3.3. TODO Compliance test

V bitrout assembliju lahko generiram zaporedje ne pogostih inštrukcij. Primerjave med rezultati bodo pokazale pogoste napake (integration testing)!

3.4. TODO FPGA implementacija

3.5. TODO C compiler

To je community opportunity!

3.6. TODO slabši zbirnik

Nočeš met zbirnika ki ima comptime hitrejši od nastalega runtajma. (😥 Brez inline “pythona”)

4. Docs

4.1. Procesor

4.1.1. n

  • \(n\in\mathbb{N}\)
  • najpogostejši \(n\) je \(7\)

4.1.2. Inštrukcija

  • lsb to msb
    • op koda (2 bita)
    • 2. naslov (\(n\) bitov)
    • 1. naslov (\(n\) bitov)
4.1.2.1. TODO copy (00)
4.1.2.2. TODO load (01)
4.1.2.3. TODO nand (10)
4.1.2.4. TODO xor (11)
4.1.2.5. Primer za \(n = 7\)

instruction.svg

4.1.3. Procesor

4.1.4. Registri

  • \(2^{n}\) bitov
  • Delovni spomin
  • Naslavlja neposredno z inštrukcijami
  • Implementacije smejo dodati še (dolžina inštrukcije - 1 bitov)
    • Ti biti smejo imeti pomen, npr. konfiguracija okolja
    • Obstoj tega spomina ni zagotovljen
    • Zapis sem ne sme pisat na programski števec
4.1.4.1. TODO IO
4.1.4.1.1. TODO IN
  • (0x10)
4.1.4.1.2. TODO INA
  • (0x11)
4.1.4.1.3. TODO OUT
  • (0x12)
4.1.4.1.4. TODO OUTA
  • (0x13)
4.1.4.2. Programski števec
4.1.4.3. Zemljevid
naslov raba
0x00 PC&(1<<0xf)
0x01 PC&(1<<0xe)
0x02 PC&(1<<0xd)
0x03 PC&(1<<0xc)
0x04 PC&(1<<0xb)
0x05 PC&(1<<0xa)
0x06 PC&(1<<0x9)
0x07 PC&(1<<0x8)
0x08 PC&(1<<0x7)
0x09 PC&(1<<0x6)
0x0a PC&(1<<0x5)
0x0b PC&(1<<0x4)
0x0c PC&(1<<0x3)
0x0d PC&(1<<0x2)
0x0e PC&(1<<0x1)
0x0f PC&(1<<0x0)
0x10 IN
0x11 IN_A
0x12 OUT
0x13 OUT_A
0x14-0x7f Prosto
0x80-0x8e Odvisno od implementacije 4.1

4.1.5. Programski spomin

4.1.6. Začetno stanje

4.1.7. Korak

  • naloži inštrukcijo
  • povečaj programski števec
  • izvedi inštrukcijo
  • če je programski števec isti kot pred inkrementacijo lahko zaključiš z izvajanjem

steps.svg

Author: Adrian Sebastian Šiška

Created: 2024-10-16 Wed 12:32