OldComp.cz

Komunitní diskuzní fórum pro fanoušky historických počítačů

Registrace na OCP IV ZDE!

Právě je 19 srp 2018, 02:40

Všechny časy jsou v UTC + 1 hodina




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 11 ] 
Autor Zpráva
 Předmět příspěvku: CLAUDIA-1
PříspěvekNapsal: 26 úno 2018, 21:43 
Offline
Pan Štábní

Registrován: 16 čer 2014, 11:23
Příspěvky: 1836
Bydliště: Jesenice
Has thanked: 8 times
Been thanked: 110 times
Očekával bych, že někde bude blokové schema.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: CLAUDIA-1
PříspěvekNapsal: 27 úno 2018, 10:36 
Offline
Kecálek

Registrován: 16 lis 2013, 19:07
Příspěvky: 101
Has thanked: 0 time
Been thanked: 20 times
Existuje i podrobné schéma v Eaglu. Po Bastlfestu 2015 se toho ujal Martin Lukášek a po mých korekturách by to schéma mělo být OK. Martin se pak chtěl pustit do návrhu desky, ale nějak to vyšumělo. Soudě podle toho, jak dlouho pracoval na MK-14, se Claudia-1 dostane na řadu někdy počátkem třetí dekády 21. století:) Ale nic ve zlém, Martine, jsem na tom úplně stejně, ne-li hůř:)

Takže veřejně dostupné jsou jen:
Obecný popis: http://nostalcomp.cz/cpu74_claudia1.php
Instrukční soubor: http://nostalcomp.cz/cpu74_instrukce.php
Mikroinstrukce řadiče: http://nostalcomp.cz/cpu74_minstrukce.php

Ale hotový je také podrobný textový popis funkce jednotlivých částí procesoru, jen k tomu nejsou obrázky a bez nich je to k ničemu.

Ta Martinem zkreslená Claudia už je v podstatě Claudia-2. Na rozdíl od jedničky má 12-bitovou adresaci. Těch původních 8 bitů - čili 256 adres je na psaní "seriózních" programů fakt málo. A také má 16-úrovňový "stack" - zásobník návratových adres pro skoky do podprogramů. Jednička má jen jednu úroveň. Mě to stačilo, ale EC1045 trval na víceúrovňovém registru:)


Nahoru
 Profil  
 
 Předmět příspěvku: Re: CLAUDIA-1
PříspěvekNapsal: 27 úno 2018, 16:27 
Offline
Kecálek

Registrován: 16 lis 2013, 19:07
Příspěvky: 101
Has thanked: 0 time
Been thanked: 20 times
Ještě jedna věc. Na papíře mám nakreslenou Claudii Lite, což je v podstatě radikálně přepracovaný PIP-2 (viz. zde asi v půlce stránky: http://www.nostalcomp.cz/kamdal.php). Podařilo se mi podstatně rozšířit jeho funkcionalitu při zachování +- stejného počtu integrovaných obvodů. Pochopitelně jsem hodně uspořil tím, že sběrnice nevážu přes otevřené kolektory 7403, ale používám třístavové 74240,244 a podobně. Nicméně se mi povedlo do té maličké PROM 74188 narvat skoro dvojnásobek instrukcí, takže už to je opravdový procesor a ne jen sekvenční "ŘADIČ"(sic) :D

Momentálně to u mě má největší prioritu a fakt bych to rád postavil. Už mám objednané chybějící věci. Bude to nějakých 26-27 integráčů a to se dá. Claudia-1 jich má pětašedesát a dvojka ještě víc.

Mimochodem, ten PIP-2 tak jak je nakreslený, nemůže nikdy fungovat. Ale jsou to asi jen chyby vzniklé při překreslování schématu a zkušený bastlíř si s nima poradí. Mám od dvou důvěryhodných lidí potvrzeno, že si to kdysi postavili a fungovalo jim to. A na to, že to kdysi navrhl 16 letý kluk, je to prostě geniální!


Nahoru
 Profil  
 
 Předmět příspěvku: Re: CLAUDIA-1
PříspěvekNapsal: 08 bře 2018, 11:57 
Offline
Pan Štábní

Registrován: 16 čer 2014, 11:23
Příspěvky: 1836
Bydliště: Jesenice
Has thanked: 8 times
Been thanked: 110 times
Nostalcomp píše:
Nicméně se mi povedlo do té maličké PROM 74188 narvat skoro dvojnásobek instrukcí, takže už to je opravdový procesor a ne jen sekvenční "ŘADIČ"(sic) :D

Stačí přidat 1 bit do čítače mikroinstrukcí :)


Nahoru
 Profil  
 
 Předmět příspěvku: Re: CLAUDIA-1
PříspěvekNapsal: 08 bře 2018, 12:27 
Offline
Kecálek

Registrován: 16 lis 2013, 19:07
Příspěvky: 101
Has thanked: 0 time
Been thanked: 20 times
danhard píše:
Nostalcomp píše:
Nicméně se mi povedlo do té maličké PROM 74188 narvat skoro dvojnásobek instrukcí, takže už to je opravdový procesor a ne jen sekvenční "ŘADIČ"(sic) :D

Stačí přidat 1 bit do čítače mikroinstrukcí :)

Čítač zůstal 4-bitový. Ten jeden bit navíc jsem zajistil pomocí D-klopáku (1/2 7474), který by mi beztak zbyl. Ale to nebyl problém. Problém byl ten, že instrukční cyklus sestává v průměru ze 4 mikrokroků. A 32/4=8. Jenže já mám instrukcí momentálně 13. A jelikož jsem na základní koncepci procesoru nic neměnil a počet mikrokroků zůstal stejný, musel jsem prostě zařídit, aby 32/4=13:-)


Nahoru
 Profil  
 
 Předmět příspěvku: Re: CLAUDIA-1
PříspěvekNapsal: 08 bře 2018, 12:51 
Offline
Pan Štábní

Registrován: 16 čer 2014, 11:23
Příspěvky: 1836
Bydliště: Jesenice
Has thanked: 8 times
Been thanked: 110 times
Nostalcomp píše:
Čítač zůstal 4-bitový. Ten jeden bit navíc jsem zajistil pomocí D-klopáku (1/2 7474), který by mi beztak zbyl.

No a ten se chová jako čítač, přidáš ho ze spoda, aby se nemuselo nic drátovat a doplníš ho do E vstupu.
Čítač mikroroinstrukcí se pak rozeskokuje modulo 2, takže se tam pak vejde 16 dvoutaktových instrukcí a ty delší se nechají přetékat do následující, která se stane nepoužitelnou.

Obrázek - programovatelý týdenní časovač ze 14 IO, řešený jako řadič. Někdy z r. 83 :)
Nejjednodušší mikrořadič měl jen 2 TTL IO, MH7496 a MH74188, 32 taktů, 7 výstupů, jen se trochu komplikovaně programoval.
Několikrát jsem ale použil kombinaci MH74164, MH74S287 jako sekvencer 256x3.


Přílohy:
hodiny.jpg
hodiny.jpg [ 245.53 KiB | Zobrazeno 1434 krát ]
Nahoru
 Profil  
 
 Předmět příspěvku: Re: CLAUDIA-1
PříspěvekNapsal: 08 bře 2018, 14:36 
Offline
Kecálek

Registrován: 16 lis 2013, 19:07
Příspěvky: 101
Has thanked: 0 time
Been thanked: 20 times
danhard píše:
No a ten se chová jako čítač, přidáš ho ze spoda, aby se nemuselo nic drátovat a doplníš ho do E vstupu.Čítač mikroroinstrukcí se pak rozeskokuje modulo 2, takže se tam pak vejde 16 dvoutaktových instrukcí a ty delší se nechají přetékat do následující, která se stane nepoužitelnou.

To je právě na té elektronice krásný. Že se stejného výsledku dá dosáhnout různými způsoby. Ten D-klopák nepoužívám jako další bit čítače, ale jako registr nejvyššího bitu opkódu instrukce. PROM je pak rozdělena na dvě banky a v nich se rozeskakuje modulo 2. Delší instrukce s "jiným zakončením" (typicky skoky), se opravdu nechávají přetékat a následný prostor nemůže být využit pro jinou instrukci. Ovšem většina zbylých instrukcí má zakončení úplně stejné: 1) inkrementuj adresu PC a vystav ji, 2) přesuň opcode další insrukce z RAM do instrukčního registru. Toto je zcela mimochodem také celý instrukční cyklus instrukce NOP. Takže já si ve dvou krocích vždy u každé instrukce udělám vše potřebné a pak zavolám NOP. Měl jsem na PROM jeden volný bit, tak jsem ho použil jako flag pro ten skok na NOP. Pak se místo inkrementace čítače mikroinstrukcí tento vynuluje i s tím D-klopákem. Sám nevím, jak mě to napadlo, ale napadlo a budu to tak stavět.


danhard píše:
Obrázek - programovatelý týdenní časovač ze 14 IO, řešený jako řadič. Někdy z r. 83 :)
Nejjednodušší mikrořadič měl jen 2 TTL IO, MH7496 a MH74188, 32 taktů, 7 výstupů, jen se trochu komplikovaně programoval. Několikrát jsem ale použil kombinaci MH74164, MH74S287 jako sekvencer 256x3.

Ten časovač je moc hezký. V podstatě je to jako ten PIP-2, akorát bez ALU:-) Mě se ty obvodové řadiče líbí. Je to prostě opravdový low-level řídící systém. A líbí se mi, že se dají postavit na bázi všeho možného. Od hodinových strojků, přes relátka po hradla a klopáky:-)


Nahoru
 Profil  
 
 Předmět příspěvku: Re: CLAUDIA-1
PříspěvekNapsal: 08 bře 2018, 15:29 
Offline
Pan Štábní

Registrován: 16 čer 2014, 11:23
Příspěvky: 1836
Bydliště: Jesenice
Has thanked: 8 times
Been thanked: 110 times
Nostalcomp píše:
To je právě na té elektronice krásný. Že se stejného výsledku dá dosáhnout různými způsoby. Ten D-klopák nepoužívám jako další bit čítače, ale jako registr nejvyššího bitu opkódu instrukce.

Každýmu je snad jasný, že stačí, aby byla délka čítače jako délka nejdelšího mikroprogramu.
Když se ten bit přidá zespoda, tak se nemusí nic dělat s dekédováním instrukce a nemusíš dávat pozor aby nepřetékal mikroprogram přes polovinu.
Když měl CPU paměť mikroprogramu jako diodovou matici, tak s prostorem ROM vůbec nešetřili, protože když tam nebyl mikroprogram, tak tam nebyly ani diody. Zrovnatak šířka výstupu byla přes všechny řídící signály a diod nepřibylo, byly jen tam, kde potřebovali vygenerovat signál.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: CLAUDIA-1
PříspěvekNapsal: 08 bře 2018, 16:11 
Offline
Kecálek

Registrován: 16 lis 2013, 19:07
Příspěvky: 101
Has thanked: 0 time
Been thanked: 20 times
Ale o to tady nejde. Já ten klopák klidně můžu připojit k čítači shora i zdola a efekt bude stejný. Základní problém je, jak do té maličké PROM nacpat co nejvíce instrukcí.

Já mám pouze 2 instrukce na 2 mikrokroky (bajty PROM). Zbylých 11 vyžaduje 3, nebo 4 mikrokroky. Pokud bych je nechal přetékat, tak při modulo 2 každá obsadí 4 bajty. A v tom případě bude potřeba 11x4 + 2x2 = 48 bajtů. Jenže v 74188 je bajtů jen 32 a přesto jsem tam těch 13 instrukcí dostal. Právě díky tomu, že opakovaně využívám mikrokód instrukce NOP, který by byl jinak zcela zbytečně součástí většiny dalších instrukcí a zabíral cenné bajty. Takhle ho tam mám jen jednou. Já vím, že to není asi úplně standardní, ale fungovat to bude. O tom jsem přesvědčen.

Pro dnešek končím, jdu na pívo:-))


Nahoru
 Profil  
 
 Předmět příspěvku: Re: CLAUDIA-1
PříspěvekNapsal: 08 bře 2018, 16:39 
Offline
Pan Štábní

Registrován: 16 čer 2014, 11:23
Příspěvky: 1836
Bydliště: Jesenice
Has thanked: 8 times
Been thanked: 110 times
Nostalcomp píše:
Ten časovač je moc hezký. V podstatě je to jako ten PIP-2, akorát bez ALU:-)

Nikoliv, nemá to s PIP-2 nic společného, snad jen to, že je tam jako paměť dat MH7489.
A řídí to v podstatě "aritmetika" v MH74S287.
Umí to denní / týdenní cyklus. Hodiny, zapínací a vypínací čas.
Řídí to "hodinkový krystal", jen je trochu větší :D a žere to 0,5A.
Postavil jsem si to na nahrávání pořadů z rádia.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: CLAUDIA-1
PříspěvekNapsal: 10 bře 2018, 17:22 
Offline
Pan Štábní

Registrován: 16 čer 2014, 11:23
Příspěvky: 1836
Bydliště: Jesenice
Has thanked: 8 times
Been thanked: 110 times
Často konstrukce mikroprogramu začíná fází FETCH, kdy se podle PC přečte instrukce, inkrementuje se PC, instrukce se přímo, nebo přes tabulku dekóduje a udělá se rozeskok do mikroprogramu. Pokud je rozeskok na počátek, tak se neprovede kromě inkrementu PC nic a je to instrukce NOP. Proto má také při přímém dekódovaní NOP op. kód 0000 :D
Ostatní instrukce končí skokem na začátek mikroporgramu.


Nahoru
 Profil  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 11 ] 

Všechny časy jsou v UTC + 1 hodina


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 1 návštěvník


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na:  
Založeno na phpBB® Forum Software © phpBB Group
Český překlad – phpBB.cz