Vlákno názorů k článku Amiga 1200 – příchod královny: jaká je a jak ji připravit na ples od Pavel Píša - Architektura a Unixové stanice a průmyslové počítače postavené...

  • Článek je starý, nové názory již nelze přidávat.
  • 4. 9. 2025 11:40

    Pavel Píša

    Architektura a Unixové stanice a průmyslové počítače postavené na 68k byly v devadesátých letech mým snem. Bohužel cena do našich přístrojů, kde jsem byl zodpovědný za volbu HW a firmware, byla mimo naše možnosti, takže jsem napsal megabyte zdrojových kódu v a 8051 assembleru a pozdější přechod na ARM a C byla značná a zbytečná zátěž. Ale udělal jsem si někdy v třeťák radost a od Amiga klubu koupil trochu poškozený kit s 68332 a rozjel s na něm RTEMS. Později jme pak pro robotiky z FEL vyvinuli řídicí jednotky s m68376, které slouží doteď a přežívají pokusy studentů po asi 25 let. Ukázka řízení z PC z Pythonu zde.

    Mým snem ale byla varianta procesoru 68060, kde se Motorole podařilo reimplementovat původní CISC architekturu s mikrokódem jako RISC jádro s predikcí skoků s nulovou latencí pro správě předpovězené skoky, zařídit superskalární vykonávání až dvou instrukcí paralelně (stejně jako Intel Pentium, ale instrukční sada je o třídu čistší a jen jeden režim od uvedení 68000 v roce 1979), integrovat MMU a FPU a vše další. Pokud někoho dobrodružství rozvoje superskalárního vykonávání instrukcí od začátků až po AMD Zen zajímá více, tak ho přibližui v předmětu Pokročilé architektury počítačů.

    Pro zájemce o experimentování s historickým, ale opravdu nádherným HW, nyní mohu nabídnout na experimentování systém VM62 s tímto procesorem od PEP Modular Computers (nyní část Kontron). Jedná se o historickou průmyslovou počítačovou sestavu z projektů ČVUT FEL s firmou Unicontrols.

    . Ti na HW provozovali OS 9 a na škole jsme testovali a navrhovali někdy okolo roku 1996 drivery na jejich (na ČVUT vyvinutou*1) sériově vyráběnou inteligentní VME CAN kartu pro VxWorks. Na podobných PEP systémech Unicontrols dodával systémy do bitevníků L-159 a vlaků včetně Pendolina.

    Co je ale na VM62 s 68060 lákavé, je to, že podpora 68060 je stále obsažené v mainline Linux kernelu. VM62 má snad dostatek RAM na start jádra a malého userspace. Přitom na modulu je kromě VME sběrnice s HW mailboxy a mnoha dalšími technickými skvosty přítomný i komunikační koprocesor 68360, který je použitelný třeba i jako periferie k hlavní 68060 a obsluhuje rozhraní Ethernet 10 Base-T.

    Sériový port, RAM, MMU a další by měly potřebovat pro zprovoznění jádra Linux nebo třeba RTEMS minimum úprav. Někdy v dávnověku uCLinux i bootoval na procesoru 68360, ten obsahuje CPU32 (něco mezi 68010 a 68020 jádrem pro embeddded, kde jsme si vyhráli s laděním, které stále používají tuneři na ECU v autech s 683xx čipy). Ale drivery pro jeho využití jeko Ethernet periferie pro nadřazený větší CPU jsem nenašel. V každém případě by to bylo sice na čas dosti náročně hraní ale s možností výsledku třeba kompilovat Debian nebo spíš něco menšího nativně na 68060 třeba na NFS svazku.

    Jinak někde mám asi i ještě kity s ColdFire 5484, kde je i PCI a opět podpora základu v mainline.

    Poznámka 1: dnes jsme se již dostali k tomu, že se naše CAN projekty používají na FPGA ve vesmíru a výrobci je integrují na čipech.

  • 4. 9. 2025 13:03

    Michal Tauchman

    Díky za rozsáhlý komentář, radost číst.

    Já jen tady díky tomu trochu předběhnu zatím nevydanou druhou část článku, kde právě zmiňuji jednu z částí projektu, která jsem nakonec zavrhnul. Měl jsem v plánu zkusit rozjet Linux na této Amize, jenže 68020C nemá potřebné instrukce (chybí MMU), takže by to vyžadovalo turbokartu s variantou 68030 a výš. A to už není úplně směr, kterým jsem chtěl jít.

  • 6. 9. 2025 19:52

    Pavel Píša

    Tak 68020 sice MMU nemá, ale podporuje precizní obsluhu výjimek (ta na původní 68000 chyběla a přišla až s 68010), supervisor, user mode bit USP a SSP zázobníky, takže plnohodnotné MMU šlo přidat externím obvodem 68851 PMMU. Zajímavostí je, že velikost stránky šlo nakonfigurovat od 256 byte do 32kb. Při malé kapacitě paměti vedly menší stránky k menším blokacím nevyužité pěměti. Naopak vetší stránky vedou na mensší obměnu položek TLB a pomalých pagewalks. Na pozdějších procesorech řadu 68k již byla konfigurovatelnost velikosti stránky omezená, na 68060 již jen na volbu mezi 4kb a 8kb. Cache na 68060 pracovaly na přeložených/fy­zických adresách s indexováním běžícím paralelně s překladem (cesta cache měnší než page). Tedy dávno před ARMem korektní chování PIPT cache. ARM se slouho držel VIVT a pak různých hybridů. Určitá nevýhoda stránkování na 68060 je, že stránkovací tabulky je nařízeno umísťovat do necachovaných oblastí, stránek...

    Jinak teto čtvrtek se shodou okolností ozval zase jeden uživatel mnou již 28 let spravovaného BDM driveru pro ladění CPU32, tak jsem ho trochu poladil, že se kompiluje a jde nahrát do 6.12 jádra. S HW jsem ho ještě netestoval a nechám to asi na uživatelích. Je to již pěkný Frankenstein, jak je udržovaný mimo mainline a tak, aby chodil s různými jádry, tak dokumentuje změny interních API jádra od nějaké verze 2.0.x až do 6.x. Teoreticky by měl jít zkompilovat stále se věžemi.

    Nedávno se také další uživatel,/vývojář ozval, že míní driver a ladící nástroje pro CPU32/M683xx portovat/zprovoznit na nějakém ESP tak, aby mohl targety ladit přes WiFi.