OldComp.cz

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


Právě je 28.03.2024, 14:28

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 225 ]  Přejít na stránku 1, 2, 3, 4, 5 ... 15  Další
Autor Zpráva
 Předmět příspěvku: HW násobička MH1020
PříspěvekNapsal: 23.02.2021, 10:01 
Offline
Óm Nejvyšší
Uživatelský avatar

Registrován: 07.07.2019, 22:14
Příspěvky: 3766
Has thanked: 269 times
Been thanked: 452 times
Protože se skutečně spamuje téma MH102 problémy vývoje MH1020, která toto původní řešení jistě výrazně překoná, otevírám nové diskusní téma zde :-).


Nahoru
 Profil  
 
 Předmět příspěvku: Re: HW násobička MH1020
PříspěvekNapsal: 23.02.2021, 10:09 
Offline
Óm Nejvyšší
Uživatelský avatar

Registrován: 07.07.2019, 22:14
Příspěvky: 3766
Has thanked: 269 times
Been thanked: 452 times
l00k píše:
za mně je to špatný nápad, kolik z vás to nakonec realizuje a kdo upraví ty Basicy (PP01/IQ151/PMD85 nebo i Spectrum)? a kolik programů na to vznikne? Busy udělá pár extra super dem a to bude vše k čemu to bude dobré...


Náhodou 300x200 je 60000pixelů. PMD má 288x242, to je 69696 pixelů a PP 256x256, to máš 65535 pixelů.Za mě cajk :-P. Máš pravdu že ten rozsah bude nutně omezený, ale na druhou stranu - k čemu je dnes vlastně dobré používat jakýkoliv 8bit? :-) Tak bych to tak přísně nebral, kolik lidí že to bude používat. Vždyť kolik lidí ještě používá 8bity samotné. Je to hlavně zábava a touha dokázat, že to dokážu (já tedy né ale zábavy bych si s tím i tak užil pytel :lol: ), něco se naučit... Toto člověka nutí projít a pochopit tolik věcí. Pokud se to výkonem pohybuje v intencích té doby vzniku, tak bych se jí nebránil. Kor když ta patice tam na to je.

Podle mě i taková chytřejší násobička otevírá dvířka do terra incognita, nových prostor a možností, které nás často ani nenapadnou dokud to někdo kdo neví že to nejde prostě neudělá. A FPU, to je ještě další úroveň. Když se Basic naučí ji používat automaticky sám, tak to pomůže úplně každému, co napíše program, kde se intenzivněji počítá. Všechny takové programy pak poběží rychleji. Stačí se na youtube podívat jak (ne)přítomnost FPU ovlivní běh nějakého z prvních CADů na XTčku či 286, ten rozdíl je zcela masivní.

Jak už jsem psal, já sám nemám sice znalosti to vytvořit ale rád tomu kdo je má přispěji aby to mohlo vzniknout. A díval bych se na to čistě prakticky. Máme dvě možnosti - buď navrhnout a rovnou nechat osadit pcb s FPGA u profi výrobce aby to prostě fungovalo s tím, že by si pak už jen hráli programátoři, nebo se držet varianty spájitelnosti v domácích podmínkách a použití levných běžně dostupných součástek. Za mě osobně bych raději tu druhou variantu, je to totiž mnohem jednodušší kusově zreplikovat až se i váhavci rozhoupají si to pořídit :-).

Protože Panda38 tu má řekl bych asi jedny z nejširších znalostí této problematiky díky novotvorbě chytrých kalkulátorů, tak bych ho chtěl poprosit zda by na začátek viděl jako reálné tu celou knihovnu ze SAPI-1 funkčně dostat do nějaké Atmegy. Polovičaté řešení nemá smysl a násobička samotná je stále lehce dostupná za pár šupů, tedy její replika taky ne.

Potom ti, co jsou schopni upravit některý výše zmíněný Basic, aby s takovou násobičkou komunikoval si to musí též promyslet zda a jak to bude reálně možné udělat. PMD Basic počítá s možností modifikací a dalšími příkazy. Basic PP-01 má standardně k dispozici 2 kB RAM pro strojový kód a ekvivalent příkazu RAMTOP. Basic pro IQ-151 neznám.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: HW násobička MH1020
PříspěvekNapsal: 23.02.2021, 10:17 
Offline
Óm Nejvyšší
Uživatelský avatar

Registrován: 07.07.2019, 22:14
Příspěvky: 3766
Has thanked: 269 times
Been thanked: 452 times
l00k píše:
Czech Human píše:
Protože Panda38 tu má řekl bych asi jedny z nejširších znalostí této problematiky díky novotvorbě chytrých kalkulátorů, tak bych ho chtěl poprosit zda by na začátek viděl jako reálné tu celou knihovnu ze SAPI-1 funkčně dostat do nějaké Atmegy. Polovičaté řešení nemá smysl a násobička samotná je stále lehce dostupná za pár šupů, tedy její replika taky ne.

Potom ti, co jsou schopni upravit některý výše zmíněný Basic, aby s takovou násobičkou komunikoval si to musí též promyslet zda a jak to bude reálně možné udělat. PMD Basic počítá s možností modifikací a dalšími příkazy. Basic PP-01 má standardně k dispozici 2 kB RAM pro strojový kód a ekvivalent příkazu RAMTOP. Basic pro IQ-151 neznám.


BasicG pro IQ151 s Racesoftem upravíme na BasicG2021 jednoduchým přidáním 2kB Eprom do modulu a změnou na pár adresách původního BasicG, na IQ151 se výrazně zrychlí nejen cokoliv co násobí ale i SIN/COS/TAN LOG a EXP využívající stejnou rutinu násobení, ale i kreslení křivek na obrazovku kde je Bressenham v FP aritmetice a pořád se násobí nějaké koeficienty pro rotace/rozlišení zobrazovaného okna

Na PP01 vidím větší problém díky podivuhodnému systému uložení FP a jednalo by se o obrovský zásah do Basicu to celé změnit, PMD85 nechám na Romanovi ať zhodnotí náročnost, SAPI bude podobné jak IQ151 celkem jednoduše upravitelné.

Úpravy Basicu v PP bude moct udělat asi jen Busy :shrug:. Jako druhá varianta by byl firmware násobičky pracující s formátem co PP používá a rychlejší krystal :D To by možná bylo ve finále lehčí...


Nahoru
 Profil  
 
 Předmět příspěvku: Re: HW násobička MH1020
PříspěvekNapsal: 23.02.2021, 10:50 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 24.05.2018, 22:32
Příspěvky: 1972
Bydliště: Most, Praha
Has thanked: 864 times
Been thanked: 697 times
Rozpracovávám variantu s ATmega (FPGA neumím tak to přenechávám jiným). Zda to někdo využije nevím, protože to asi neodpovídá představám jak to do nějakého počítadla začlenit, ale možná když se to zadaří dokončit tak někdo najde využití.

Představu funkce mám takovou - nebyla by to jen násobička, ale kompletní kalkulátor ovládaný přes porty. Zatím představa (která se možná pak v praxi zredukuje), že by uměl operace s integer čísly 1,2,3,4,6,8,12 a 16 bajtů a float čísla v rozsahu 1 až 18 bajtů (standardní IEEE i nestandardní), tj. přesnost mantisy 1 až 38 číslic a exponent až 9863. Funkce s čísly by uměl to co kalkulačka - mocniny, exponent, logaritmy, goniometrie, hyperbolické, exponent, faktoriály. A i nějaké komplexnější knihovní operace, možná 3D maticové transformace (myslím že i IQ by mělo zvládnout např. rotující 3D krychli). A převody mezi číslem a textem. Na operace by se mohl dát používat interní stack a ukládání do interních registrů (při nejdelším formátu čísla je k dispozici 100 registrů), to by urychlilo že by se složitější operace mohly dělat uvnitř procesoru a ušetřit tak na přenosech. Do interní EEPROM paměti 1 KB by se daly ukládat uživatelské programy.

Procesor by se použil ATmega328P. Má patici DIP28. Sice neumí obsluhovat přímo sběrnici, takže by pro připojení k x80 musel být ještě latch 74HC573 pro zápis dat a oddělovač 74HC245 pro čtení. Samotný procesor by buď nevyžadoval žádné další součástky, v tom případě by jel na 8 MHz, nebo by se připojil externí krystal a jel by na 20 MHz. Napájecí napětí by bylo v rozsahu 2.5 až 5.5V (20 MHz lze využít jen při 4.5V až 5.5V). Ke komunikaci by sloužil jeden 8-bitový port pro zápis dat do procesoru a druhý 8-bitový port pro čtení dat z procesoru. Při zápisu a čtení se použijí signály z dekodéru adres, které aktivují strobovací signál procesoru. K procesoru se tak bude přistupovat jednoduše zápisem bajtu na port a čtení z portu, tj. přístup by mohl být rychlý.

Jak jsem rozmýšlel vnitřní koncepci, tak myslím že je reálné aby to bylo docela svižné. AVR procesory mají většinu instrukcí na 1 takt, tak by to mohlo jet podstatně rychleji než v x80.

_________________
i++ (INC) increment
i-- (DEC) decrement
i@@ (EXC) excrement


Nahoru
 Profil  
 
 Předmět příspěvku: Re: HW násobička MH1020
PříspěvekNapsal: 23.02.2021, 11:17 
Offline
Pan Štábní

Registrován: 11.11.2013, 10:29
Příspěvky: 1198
Has thanked: 359 times
Been thanked: 304 times
Mozna bych jeste pripomnel diskuzi u MZ-800, kde jsem dospel az k reseni, ktere pouziva ARM procesor. Ten emuluje vetsinu matematickych funkci. Funguje tak, ze na urcitem portu se posle cislo(a) a na jinem se zada oparece, kterou to vykona. Nasledne se na portu vyzvedne vysledek. V ramci dalsi optimalizace jsem emulaci predelal na format cisel, ktere pouziva Sharp BASIC. Uprava BASICu tak byla celkem jednoducha, protoze stacilo upravit volani funkce a ta vratila hotovy vysledek.
Blizsi info muzu poskytnout.

_________________
Sharp MZ-800++, MZ-1500++, MZ-2500++, SM-B-80T, MK-14_replica, HP-85, ZX-80+replica, ZX81, ZX-Spectrum+replica++, PMI-80+replica, SAM coupe++, PMD-85-2A+3, Didaktik-M, SORD-M5, TI-57, TI-59+PC-100, TI99/4A, ZetaV2+ppp, ZX-uno, Petr


Nahoru
 Profil  
 
 Předmět příspěvku: Re: HW násobička MH1020
PříspěvekNapsal: 23.02.2021, 11:33 
Offline
Óm Nejvyšší
Uživatelský avatar

Registrován: 07.07.2019, 22:14
Příspěvky: 3766
Has thanked: 269 times
Been thanked: 452 times
Já bych se portů nevzdával, minimálně pro zpětnou kompatibilitu.Jen data a kódy operací nad možnosti základních 8x8 bitů bych držel pokud možno od sebe. MH102 používá porty čtyři - dva vstupy a 2 jako půlky výstupu. U MH1020 bych jeden vstup vyčlenil na data, jeden instrukce (a ta by musela být spojená s velikostí vstupních čísel a ideálně jeho pozicí), jeden výstup a čtvrtý rezerva nebo přesnost výpočtu (ideálně zvolený režim držet až do další změny).


Nahoru
 Profil  
 
 Předmět příspěvku: Re: HW násobička MH1020
PříspěvekNapsal: 23.02.2021, 12:18 
Offline
Profík

Registrován: 28.07.2018, 14:37
Příspěvky: 917
Has thanked: 43 times
Been thanked: 411 times
Jen jednu poznámku. Bresenhamův algoritmus pro kreslení úsečky je tak rychlý, že generuje jeden pixel každých cca 40 taktů CPU. Za tu dobu stihnu pouze uložit jedno floating point číslo do násobičky, pokud je mám vůbec připravené v registrech. Skoro to vypadá, že osmibity nedisponují takovou datovou propustností, aby jakoukoliv násobičku stačily dostatečně rychle krmit, aby to bylo vůči celkové zátěži CPU výrazně poznat.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: HW násobička MH1020
PříspěvekNapsal: 23.02.2021, 12:32 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 24.05.2018, 22:32
Příspěvky: 1972
Bydliště: Most, Praha
Has thanked: 864 times
Been thanked: 697 times
Tohle se dá vyřešit tak, že "násobička" bude dělat výpočty interně a vrátí jen sérii souřadnic pixelů, ze zadaných souřadnic začátku a konce. Podobně jako grafická karta v PC, které se předá interní program a ona jen vyplivne výsledky.

_________________
i++ (INC) increment
i-- (DEC) decrement
i@@ (EXC) excrement


Nahoru
 Profil  
 
 Předmět příspěvku: Re: HW násobička MH1020
PříspěvekNapsal: 23.02.2021, 12:32 
Offline
Óm Nejvyšší
Uživatelský avatar

Registrován: 07.07.2019, 22:14
Příspěvky: 3766
Has thanked: 269 times
Been thanked: 452 times
Tak zase to je jedna specifická situace, když bude zase třeba hodně floating point počítání tak se situace změní a CPU si může na pozadí posílat třeba goniofunkce nebo mocnění a vybírat si výsledky až se mu to bude hodit poté co si dokončí další část programu kdy ho bude potřebovat. I kdyby ty výpočty běžely stejně rychle tak ty výsledky jsou přesné zatímco integer metody ne. Bude každopádně zajímavé to vyzkoušet


Nahoru
 Profil  
 
 Předmět příspěvku: Re: HW násobička MH1020
PříspěvekNapsal: 23.02.2021, 14:03 
Offline
Óm Nejvyšší
Uživatelský avatar

Registrován: 07.07.2019, 22:14
Příspěvky: 3766
Has thanked: 269 times
Been thanked: 452 times
Já se zamyslel nad tím, jak takovou destičku fyzicky naskládat do PP-01. Do patice na násobičku připojit přes precizní piny kablík, ten připojit pinovou lištou na destičku a destičku samotnou uchytit na volné místo po ROM modulu. Atmeze jsem dopřál i 20MHz krystal :mrgreen:


Přílohy:
Schematismus 1.jpg
Schematismus 1.jpg [ 191.44 KiB | Zobrazeno 5826 krát ]
Nahoru
 Profil  
 
 Předmět příspěvku: Re: HW násobička MH1020
PříspěvekNapsal: 23.02.2021, 15:01 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3642
Bydliště: Bratislava
Has thanked: 371 times
Been thanked: 788 times
Panda38 píše:
Tohle se dá vyřešit tak, že "násobička" bude dělat výpočty interně a vrátí jen sérii souřadnic pixelů, ze zadaných souřadnic začátku a konce.
Akurat je tu taky hacik, ze prepocet suradnic na adresu videoramky a poziciu bitu zaberie viac, nez 40T. To by ten koprocesor musel davat rovno adresy videoram a masky pre bit, a idealne by to rovno zapisoval do videoramky, takze stacilo by naOUTovat zaciatok a konec ciary a ciara by sa vykreslila sama autonomne. Jedine vtedy by malo zmysel riesit nejake HW urychlovanie kreslenia.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: HW násobička MH1020
PříspěvekNapsal: 23.02.2021, 15:12 
Offline
Pan Štábní

Registrován: 12.05.2013, 22:24
Příspěvky: 1508
Bydliště: u Prahy
Has thanked: 44 times
Been thanked: 380 times
Proto by větší smysl než "násobička" dával smysl programovatelný akcelerovaný koprocesor (ideálně se stejným kódem - tedy Z80, urychlil by vlastně "již existující" rutiny).


Nahoru
 Profil  
 
 Předmět příspěvku: Re: HW násobička MH1020
PříspěvekNapsal: 23.02.2021, 15:29 
Offline
Óm Nejvyšší
Uživatelský avatar

Registrován: 07.07.2019, 22:14
Příspěvky: 3766
Has thanked: 269 times
Been thanked: 452 times
Asi by bylo lepší nejdříve navrhnout a rozběhnout co do rychlosti přenosu dat optimální verzi "protokolu"a naimplementovat si základní početní funkce +,-,/,* v definovaném rozsahu a potom se na tom už dá stavět i ta 3D akcelerovaná grafika a GPGPU funkce. Pěkně krůček po krůčku ;)

Škoda že jsem elektronikou tak nepolíbený, byl by někdo ochotný udělat pro tu Atmegu se vstupem na patici MH102 funkční schéma? Z něj bych to pcb už nějak vytvořil ale kdepak elektrický návrh zapojení jako takový :cry: .

dex: Však Pandovo řešení ideově takový koprocesor je. Jen s takovou radikální změnou by se muselo staré CPU vyhodit a nahradit novým a jednalo by se vlastně už o úplně jiný počítač. Pomocný obvod by už ani nebyl potřeba, byl by integrovaný uvnitř. Což je idea zcela jistě správná ale o mnoho let novější než i8080 či Z80. Stejný problém - tedy příliš času zabírající komunikace vzhledem ke stále rostoucí pracovní frekvenci - totiž zabil externí koprocesory mimo CPU a proto vznikla 486 :-).


Nahoru
 Profil  
 
 Předmět příspěvku: Re: HW násobička MH1020
PříspěvekNapsal: 23.02.2021, 18:18 
Offline
Profík

Registrován: 15.01.2014, 20:08
Příspěvky: 782
Bydliště: Šlapanice
Has thanked: 129 times
Been thanked: 97 times
Matematické koprocesory u x86 (8087 – 80387) jsou navržené tak že rozšiřují instrukční sadu daného x86 CPU (8086/88 – 80386). Na druhou stranu dané x86 CPU (8086/88 – 80386) s tímto počítají, takže odpadá to otravné stěhová dat tam a zpět ale zase na druhou stanu ty matematické koprocesory jsou skoro nepřipojitelné k jinému CPU než ke kterému byli navržené. Na druhou stranu jsou tu na přiklad AM9511, AM9512, MH102 nebo zrovna řešená MH1020 které jdou připojit skoro k čemukoliv, ale platí za to obrovskou daň, že se spousta času zabije přenosem dat tam a zpět. Jinak u x86 s x87 se vyplatí veškerou matematiku v plovoucí čárce hodit na matematický koprocesor. Jenže u 8bitů nebo obecně u CPU co nativně nepodporují matematický koprocesor jako x86 je situace o dost jiná. Režie spojená s přenosem dat zabije velkou část potenciálu toho matematického koprocesoru. Jedna z možností jak urychlit přenos dat by bylo, kdyby ten matematický koprocesor byl adresován v RAM a ještě uměl načíst a uložit data RAM a to ideálně v době kdy CPU, neleze do RAM. Idea je taková ‚že se tomu CPU jen řekne kde má data a co nimi má udělat což by bylo tak max. 7 bytu (2x adresy operandu, adresa výsledku a typ operace) Toto by bylo docela rozumně realizovatelné tak akorát na SAPI-1 kde by se kvůli tomu udělala nová deska RAM i s tím matematickým koprocesorem. Ono by to bylo kárné tu mít úžasně rychlou matematiku v plovoucí čárce ale co s tím. V 99% případů se toho nevyužije, to jedno procento budou grafická DEMA nebo fraktály …. Jediné kde osobně bych použil matematiku v plovoucí čárce (mimo BASIC či vyšší programovací jazyky) je konverze dat z HPGL na MINIGRAF či XY41xx. Uvažoval jsem nad dvěma způsoby jak to řešit bud předělat chytristiku z AR/ME 90 nebo to řešit na jiném stroji. Nakonec jsem dospěl k závěru, že ten druhy stroj bude jednouší a celé to tak bude rychlejší, aneb to kreslení trvá dost dlouho, takže ty výpočty bys stíhal i BASIC na 8bitu.

Ano chápu postoj „l00k“ ale zas na druhou stranu bych nepohrdl mít ten matematický koprocesor.

Omlouvám se za ten výlev typu monoblok.

_________________
Ne všichni jsme měli z češtiny za jedna, aneb jsem dyslektik a dysgrafik.

http://www.sapi.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: HW násobička MH1020
PříspěvekNapsal: 23.02.2021, 18:32 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 24.05.2018, 22:32
Příspěvky: 1972
Bydliště: Most, Praha
Has thanked: 864 times
Been thanked: 697 times
Dotaz pro ověření. Když je takový "běžný" výstup na koprocesor takhle:
mvi A,123 ; [7]
out cmd ; [10]
mov A,C ; [5]
out data ; [10]
a krystal PMD85 je 2 MHz, znamená to že mezi těmi OUTy je prodleva 7.5 mikrosekundy? (jestli chápu správně přepočty časování)

_________________
i++ (INC) increment
i-- (DEC) decrement
i@@ (EXC) excrement


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ů: 225 ]  Přejít na stránku 1, 2, 3, 4, 5 ... 15  Další

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 10 návštevní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