Welcome, Guest. Please login or register.


Author Topic: Csoda hw álmodozás :-) (Read 5416 times)

Offline Z80System

  • EP addict
  • *
  • Posts: 3926
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 36.0.1985.143 Chrome 36.0.1985.143
    • View Profile
Re: Csoda hw álmodozás :-)
« Reply #30 on: 2014.August.21. 19:28:08 »
Vagy esetleg még úgy is kell értenem amit írtál, hogy még ezzel az FPGA dologgal sem lenne triviális mondjuk (az egyszerű példa kedvéért) egy z80 PIO -t megvalósítani,
és teljesíteni egy igazi z80 PIO által teljesített időzítéseket ?
Z80 System

Offline lgb

  • EP addict
  • *
  • Posts: 3497
  • Country: hu
  • æðsta yfirmaður
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 31.0 Firefox 31.0
    • View Profile
    • http://lgb.hu/
Re: Csoda hw álmodozás :-)
« Reply #31 on: 2014.August.21. 19:53:03 »
Quote from: Z80System
Én valahogy úgy képzeltem volna, hogy az EP -ben előforduló legnagyobb 4MHz (vagy 8MHz ?) órajelnél annyival nagyobb (gigaherceken) órajeleken mennek a mai szutykok, hogy simán C -ben lehetne írni ilyen emulátorokat, melyek egy EP vasat emulálnak ...

Ez akkor véleményed szerint is teljes hulyeség ? A 4 Mhz -en működő vasak is olyan pontos időzítéseket igényelnek, hogy a gigaherceken működő vasak csúszkálásaiból eredő pontatlanságok is nagyok már hozzájuk ?

És akkor az általad javasolt FPGA (vagy mi) eszközök és technológiák már a megoldás lenne ? Tehát olvasni valami USB portokat, és futtatni valami EP hw emulációs szoftvereket megfelelő sebességekkel és pontosságokkal tudhatnának ?

Szerintem nem lehetetlen PC-n megoldani ezt, de mint mondtam, akkor totalis kontrol kell a hw-n, amit a modern multitask OS-ek (windows, linux, stb) kizarnak. Szoval akkor pl DOS ala kell irni ...

Offline ergoGnomik

  • EP lover
  • *
  • Posts: 840
  • Country: hu
  • Stray cat from Commodore alley
  • OS:
  • Windows NT 6.2 Windows NT 6.2
  • Browser:
  • Firefox 31.0 Firefox 31.0
    • View Profile
Re: Csoda hw álmodozás :-)
« Reply #32 on: 2014.August.21. 22:16:39 »
Nos, az FPGA teljes értékű megoldás tud lenni. Kicsit úgy kell elképzelni, hogy a megfelelő logikai kapuk összeválogatása és megfelelő sorrendben hálózatba szervezése (ahogyan pl. Zozo csinálja) helyett az elemi logikai műveleteket amiből felépíted a kívánt funkciókat egy programozási nyelvre nagyon hasonlító formalizmus segítségével beletöltöd egy rugalmasan konfigurálható logikai elemeket tartalmazó egységbe, ami a végén megvalósítja az igényelt vezérléseket vagy amire szükség van.

A modern operációs rendszert futtató PC-k azok sajnálatos módon nem csak a felhasználó által meghatározott feladatokat végzik, hanem egyéb szolgáltatásokat is nyújtanak, illetve mindenféle segédszoftvereket futtatnak, ezért nem fog determinisztikusan futni egyetlen szoftver sem abban az értelemben, hogy pontosan meg tudnád határozni az egyes részfeladatok végrehajtásának sorrendjét más programok részfeladatainak végrehajtási sorrendjei függvényében még ugyan azon a számítógépen sem. Nincs semmi garancia mikor melyik programszál melyik processzoron fog időszeletet kapni. Ja, és természetesen a hardverek között is hatalmas eltérések lehetnek annak ellenére hogy látszólag pontosan ugyan olyan jól futtatják a operációs rendszert és a programokat (saját évekkel korábbi tapasztalat, hogy egyik számítógépen egy windowsos programban a timer esemény szépen bekövetkezett 15 ms-onként a másikon meg ahogyan sikerült, de inkább 40 ms felé volt az átlag). Ahogyan lgb azt említette, ilyenkor az a lehetséges megoldás hogy nem használsz rendes operációs rendszert, de ekkor neked kell az utolsó használni kívánt hardver elem felprogramozásával is nyűglődnöd, mivel nincs driver támogatás hozzá. Szóval még ha lehetséges lenne is az elég gyors program megírása, esélytelennek gondolom a driver hiány miatt azt hogy ténylegesen működhetne.

Offline Z80System

  • EP addict
  • *
  • Posts: 3926
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 36.0.1985.143 Chrome 36.0.1985.143
    • View Profile
Re: Csoda hw álmodozás :-)
« Reply #33 on: 2014.August.21. 22:30:33 »
Quote
Nos, az FPGA teljes értékű megoldás tud lenni.
Csuhajj. :)


Quote
hogy a megfelelő logikai kapuk összeválogatása és megfelelő sorrendben hálózatba szervezése (ahogyan pl. Zozo csinálja) helyett az elemi logikai műveleteket amiből felépíted a kívánt funkciókat egy programozási nyelvre nagyon hasonlító formalizmus segítségével beletöltöd egy rugalmasan konfigurálható logikai elemeket tartalmazó egységbe

Aham, tehát akkor ez messze nem egy processzoros rendszer, mégcsak nem is processzor, hanem csak valami konfigurálható logikai kapu halom, amin akár egy processzor is megvalósítható ...

Ami végülis nem feltétlen baj, hisz maguk az "emulálandó" dolgok is logikai áramkörök inkább, mint komplex számítógépes rendszerek ... nem ?

De pld. ha egy ilyen rendszert én rammal akarok ellátni, melyből ő valamennyit mutasson az EP irányába, mintha az EP RAM vagy ROM bővítés lenne, akkor a ramot is le kell "programozzam" logikai áramkörökből az FPGA -ban, vagy annyi logikai áramkör nincs benne, hogy ramot valósítsak meg vele, hanem a ram valami külső alkatrész lenne, és ennek az FPGA -nak a mindenkori "szoftverének" tudnia kéne a külső ramot kezelni ?
Z80 System

Offline Z80System

  • EP addict
  • *
  • Posts: 3926
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 36.0.1985.143 Chrome 36.0.1985.143
    • View Profile
Re: Csoda hw álmodozás :-)
« Reply #34 on: 2014.August.21. 22:49:19 »
Akinek van hozzá joga, át kéne nevezze ezt a topikot:

"Univerzális bővítő hardver"

névre, mert a PC összeköttetéses címet azt kinőtte ...
« Last Edit: 2014.August.22. 03:22:02 by Z80System »
Z80 System

Offline Z80System

  • EP addict
  • *
  • Posts: 3926
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 36.0.1985.143 Chrome 36.0.1985.143
    • View Profile
Re: Csoda hw álmodozás :-)
« Reply #35 on: 2014.August.21. 22:56:15 »
És ezek az FPGA -s rendszerek gyorsan felülírhatók PC -ről vajon ?

Valamint a "programozásukhoz" nincsenek ilyen grafikus felületek, amik esetleg már ismernek is IC -ket, és azok belsejét nekem már esetleg nem is kéne leprogramoznom ?

Tehát az ember kiválaszt grafikusan X db IC -t, aztán összekötögeti a lábaikat, és az így kapott eredő áramkört pedig a szoftver beleplántálná az FPGA -ba ?
Z80 System

Offline lgb

  • EP addict
  • *
  • Posts: 3497
  • Country: hu
  • æðsta yfirmaður
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 31.0 Firefox 31.0
    • View Profile
    • http://lgb.hu/
Re: Csoda hw álmodozás :-)
« Reply #36 on: 2014.August.22. 08:18:42 »
Quote from: Z80System
És ezek az FPGA -s rendszerek gyorsan felülírhatók PC -ről vajon ?

Valamint a "programozásukhoz" nincsenek ilyen grafikus felületek, amik esetleg már ismernek is IC -ket, és azok belsejét nekem már esetleg nem is kéne leprogramoznom ?

Tehát az ember kiválaszt grafikusan X db IC -t, aztán összekötögeti a lábaikat, és az így kapott eredő áramkört pedig a szoftver beleplántálná az FPGA -ba ?

En mar hirbol ismerem az FPGA-t, szoval keretik kijavitani (aki ert hozza), de amennyire tudom: az FPGA ugye vegulis kb egy programozhato logikai halozat, ami a RAM-hoz hasonloan el is felejt mindent, tehat fel kell tolteni bele a cuccot az elejen, kulonben nem fog mukodni (nehany FPGA-ban van mar EEPROM vagy hasonlo, es abbol maga megcsinalja, mas esetben szoktak vmi MCU-t tenni melle, ami elvegzi, hogy ne PC-rol kelljen minden alkalommal). Ha van egy "kesz" cuccos, az szerinem max par masodperc felolteni. Azonban, ha valoztatsz vmit (ezt kulonbozo erre specializalodott nyelveken szokas leirni - marmint a hardware mukodeset az FPGA-ban - a ket legismertebb a VHDL es a Verilog, mindketto un HDL azaz Hardware Description Language, ha jol remlik - ebbol altalaban de nem kizarolagosan USA fele a Verilogot szokas szeretni, kornyekunkon viszont jobban divat a VHDL), akkor ujra kell szinetizalni, ami egy bonyolult aramkornel akar egy oras idotartamot is eleri, amig a HDL leiras alapjan "kitalalja" a software, hogy ez majd hogy fog leforditodni FPGA elemi szintjere (ennek vmi koze van az RTL reprezentaciohoz ami vmi register-transfer-level vagy minek a roviditese). Mivel igazabol sajat tapasztalatom nincs, nem tudom, hogy ez a viszonylag hosszu ido miert kell es minden esetben ilyen nagysagrend-e (nyilvan pontosan nem, de kb), stb ...

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13531
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 31.0 Firefox 31.0
    • View Profile
    • http://enterprise.iko.hu/
Re: Csoda hw álmodozás :-)
« Reply #37 on: 2014.August.22. 09:30:58 »
Quote from: ergoGnomik
A modern operációs rendszert futtató PC-k azok sajnálatos módon nem csak a felhasználó által meghatározott feladatokat végzik, hanem egyéb szolgáltatásokat is nyújtanak, illetve mindenféle segédszoftvereket futtatnak, ezért nem fog determinisztikusan futni egyetlen szoftver sem abban az értelemben, hogy pontosan meg tudnád határozni az egyes részfeladatok végrehajtásának sorrendjét más programok részfeladatainak végrehajtási sorrendjei függvényében még ugyan azon a számítógépen sem. Nincs semmi garancia mikor melyik programszál melyik processzoron fog időszeletet kapni.
De már eleve a processzorok sem teszik lehetővé a pontos futást, a mindenféle optimalizáló cucc miatt véletlenszerű idő alatt, és véletlenszerű sorrendben futnak le az utasítások. Mint azt már többször írtam, láttam olyat, hogy egy proci lefuttatta a végtelen ciklust :-) vélhetőleg az utasítás optimalizáló akármi hülyét kapott az önmagára ugró JMP-től, és kihagyta.

Offline lgb

  • EP addict
  • *
  • Posts: 3497
  • Country: hu
  • æðsta yfirmaður
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 31.0 Firefox 31.0
    • View Profile
    • http://lgb.hu/
Re: Csoda hw álmodozás :-)
« Reply #38 on: 2014.August.22. 09:55:18 »
Quote from: Zozosoft
De már eleve a processzorok sem teszik lehetővé a pontos futást, a mindenféle optimalizáló cucc miatt véletlenszerű idő alatt, és véletlenszerű sorrendben futnak le az utasítások. Mint azt már többször írtam, láttam olyat, hogy egy proci lefuttatta a végtelen ciklust :-) vélhetőleg az utasítás optimalizáló akármi hülyét kapott az önmagára ugró JMP-től, és kihagyta.

Hat nyilvan ilyen time critical dolgot x86 assemblyben kene irni. Bar mar az is hatareset pl egy Z80-hoz kepest, ui ott mar nem olyan egyszeru kitalalni, hogy hany orajelciklus stb, fugg a cache allapotatal, a pipeline-oktol, meg meg kisezer dologtol (persze mivel egy modern x86 CPU azert joval gyorsabb, lehetne valami idozitest megoldani, de imho azert az asm must-have lenne itt mas okokbol is).

Offline Povi

  • EP addict
  • *
  • Posts: 1875
  • Country: hu
  • OS:
  • Linux Linux
  • Browser:
  • Chrome 35.0.1916.153 Chrome 35.0.1916.153
    • View Profile
    • http://povi.fw.hu
Re: Csoda hw álmodozás :-)
« Reply #39 on: 2014.August.22. 11:05:08 »
szerintem sokkal egyszerűbb hw-t épiteni, mint szoftverből (FPGA-val) emulálni azt. Egy debug-gal (és hibalehetőséggel) kevesebb.

Ami nekem megfordult a fejemben, hogy első körben kéne egy olyan NYÁK, amit az EP bővitőjébe lehet dugni, jobboldalt (nem tudom, mi ennek a csatlakozófelületnek a pontos neve). Ez a NYÁK nem csinálna semmit, csak fölfelé álló tüskesorokra vezetné ezt a kb. 40 darab (?) érintkezőt.

Erre lehetne aztán már különböző NYÁK-okat (kész projekteket, pl. floppy vezérlő, RAM, ROM, RS-232 kártya, SPI kártya, I2C kártya, parallel port kártya, IDE kártya, koproci kártya, kiskutya füle stb.) egymásra tenni, hasonlóan, mint az Arduino shield-eknél
https://www.google.hu/search?q=arduino+shields&es_sm=93&tbm=isch&tbo=u&source=univ&sa=X&ei=8QX3U-iIKK6B7Qaav4GAAg&ved=0CFgQsAQ&biw=1535&bih=1115#facrc=_&imgdii=_&imgrc=sNevZjzvKWgLNM%253A%3BzLmyKbjscuS1mM%3Bhttp%253A%252F%252Fwww.robotshop.com%252Fmedia%252Ffiles%252Fimages%252Farduino-compatible-mega-motor-shield-1a-5-28v-large.jpg%3Bhttp%253A%252F%252Fwww.robotshop.com%252Fen%252Farduino-compatible-mega-motor-shield-1a-5-28v.html%3B2000%3B1410

félreértés elkerülése érdekében: nem ezekkel kompatibilis kártyákra gondoltam, csak tetszik, ahogy igy egymásra dughatók ezek a kártyák.
*** Speicherplatz zu klein

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13531
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 31.0 Firefox 31.0
    • View Profile
    • http://enterprise.iko.hu/
Re: Csoda hw álmodozás :-)
« Reply #40 on: 2014.August.22. 11:23:36 »
Vagyis vízszintes buszkártya helyett függőlegest akarsz :-)

Offline Povi

  • EP addict
  • *
  • Posts: 1875
  • Country: hu
  • OS:
  • Linux Linux
  • Browser:
  • Chrome 35.0.1916.153 Chrome 35.0.1916.153
    • View Profile
    • http://povi.fw.hu
Re: Csoda hw álmodozás :-)
« Reply #41 on: 2014.August.22. 11:47:31 »
végül is igen
*** Speicherplatz zu klein

Offline lgb

  • EP addict
  • *
  • Posts: 3497
  • Country: hu
  • æðsta yfirmaður
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 31.0 Firefox 31.0
    • View Profile
    • http://lgb.hu/
Re: Csoda hw álmodozás :-)
« Reply #42 on: 2014.August.22. 12:10:54 »
Quote from: Povi
szerintem sokkal egyszerűbb hw-t épiteni, mint szoftverből (FPGA-val) emulálni azt. Egy debug-gal (és hibalehetőséggel) kevesebb.

Az FPGA szerintem inkabb hardware mint software, software az x86-on futo program lenne. :)

Offline Z80System

  • EP addict
  • *
  • Posts: 3926
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 36.0.1985.143 Chrome 36.0.1985.143
    • View Profile
Re: Csoda hw álmodozás :-)
« Reply #43 on: 2014.August.22. 13:00:12 »
Hát Zozó! Ez a cím, ez nem volt szép ... Szerencséd, hogy oltásom van sértődés ellen ... :)

És mégegyszer akkor a súlyozás végett, mert mások sem az egész képet nézik (hát vagy jobban értenek hozzá, de az most mellékes):

Tehát természetesen mindenkinek igaza van abban, hogy csinálni bármilyen EP vasat vagy csinálni ugyanazt az EP vasat egy ilyen emulált (pld. eddig kiderült okosság alapján FPGA alapokon) módszerrel úgy hogy maga az FPGA hardver sincs még meg ... egyértelmű hogy az első egyszerűbb, ez triviális.

Sőt, még az is lehet (bár itt már talán olyan bővítő is lehet, ahol az emulált irány fele billen a mérleg) hogy a legtöbb bővítőnél olyan komplex áramkörök az alkatrészek, melyek működését leírni logikai kapukkal igen nagy munka lenne, és hiába van már egy kész, emulációra képes (FPGA) -s univerzális bővítő hardvere az embernek, egyszerűen még mindíg gyorsabb megtervezni az új bővítőt létező alkatrészekből, legyártani hozzá a nyákot és fizikailag összerakni, heggeszteni mindent, mint ugyanazt az áramkört simán csak "leprogramozni" az FPGA -s vackunkra.

(Bár ha a bővítőnk pld. egy egyszerű rom vagy ram bővítő ... hát talán azt egy már kész FPGA -s univerzális hardveren "lekódolni" egyszerűbb is lehet már, mint fizikai valójában létre hozni.)

De az előnyök is kézenfekvőek:

Egy ember kitalálja, hogy ő sprite hardvert épít, hogy lássuk végre milyen az. Ha ez az ember magának rakja össze a hardvert, akkor vagy sorozatgyártani kényszerül vagy fényképen mutogatni. Senki másnak nem lesz olyan hardvere, így a hardvert használó szoftvereit is magának írja és/vagy más sem írhat olyan programot, ha nincs hardvere. A hardverek terjedése időben és anyagiakban limitált. Ha X ember január elsején megalkotna egy sprite hardvert, még két év múlva január elsején sem biztos, hogy minden érdeklődőnek lesz olyanja. Egyszerű gyakorlati okok miatt. Pontosan ezért komolyan el sem kezd gondolkodni egy sprite hardver kategóriájú dolgon egyetlen hardverész sem, mert nagyjából 2 embernek rakná össze a világon lehetséges 30 helyett.

Ezzel az emulált módszerrel ha január elsején valakinek megvan a sprite hardver, azt január másodikán mindenki tölthetné, nézhetné, használhatná ... vas EP -n. (Az is lehet hogy az FPGA -s szoftvereket is simán emulálja a PC is ... és az emuhoz csatlakoztatás után automatikusan emulálódnának is, de ez csak most jutott eszembe, nem számít.)

Tehát mint írtam, még az is lehet hogy bonyolultabb, de a hardver fejlesztést szoftveres alapokra rakni ... sztm nagyon előremutató lenne. Pld. valszeg sokkal több itt a szoftveres ember mint a hardveres. Talán a világon ez méginkább igaz lehet. Hardverek programozásán magam is gondolkodnék, hardvert építeni eszembe sem jutna, bármilyen egyszerű kis hardver is az: szerszámok, körülmények, műhelymunka kellenek hozzá. Nem steril dolog, mint a szoftver.

Slusszpoénnak pedig a méret. Egyetlen fizikai vas. És minden lehetséges bővítő, amit csak az ember akar.

És azt az egyetlen fizikai vasat a hardverek terjedési sebességével idővel minden érdekődő birtokolhatná, és egy új hardver (még ha szoftveresen nehezebb is volt a megalkotása, mint egy HARDVERES embernek fizikailag összerakni lett volna) megszerzése utána csak egy letöltés lenne ...

Ettől sztm. nagyobb kedve lenne bárkinek is hardvert (ami mostmár egy szoftver) készíteni ... hiszen tudhatná, hogy amint kész azt mindenki azonnal láthatja.

Lehet álomnak csúfolni, de szép álom, annyi biztos.
« Last Edit: 2014.August.22. 13:03:13 by Z80System »
Z80 System

Offline ergoGnomik

  • EP lover
  • *
  • Posts: 840
  • Country: hu
  • Stray cat from Commodore alley
  • OS:
  • Windows NT 6.2 Windows NT 6.2
  • Browser:
  • Firefox 31.0 Firefox 31.0
    • View Profile
Re: Csoda hw álmodozás :-)
« Reply #44 on: 2014.August.22. 13:04:56 »
Quote from: Povi
szerintem sokkal egyszerűbb hw-t épiteni, mint szoftverből (FPGA-val) emulálni azt. Egy debug-gal (és hibalehetőséggel) kevesebb.
Hát, ahogyan gondolod. De azért mert nem szoftverből intézed a hibakeresést (és ezért nem debuggolásnak nevezed), hanem oszcilloszkóppal meg logikai analizátorral ugrasz neki és írsz hozzá tesztprogramokat én nem gondolnám lényegesen könnyebbnek. Ki mihez van szokva, inkább ez dönt.