Fórum témák
» Több friss téma |
Fórum » GPU architektúrája
Témaindító: bpatrik111, idő: Szept 7, 2016
Témakörök:
Sziasztok!
Picit megszállott hobbim van, szeretnék logikai kapukkal építeni egy számítógépet. A CPU nagy részét már megterveztem, de elakadtam ott hogy a proci által kiszámított értékeket valahogy megjelenítsem. Nem is akarom addig tovább tervezgetni amíg valahogy olvasható formára nem tudnám hozni az adatokat. A legjobb lenne egy képcsöves tv-n, crt monitor vagy valami ilyesmi. Sajnos nem találtam könyvet, videót ebben a témában, pedig már sokat kerestem. Remélem tudtok valami kezdőlökést adni nekem.
Szia!
Ha az aritmetikát teszteled, (gondolom 8 bites rendszer) akkor egyszerűen ledekkel látható az eredmény a status bitet is láthatod szintén leddel. A teszt gondolom lépésenkénti... üdv .Foxi
Természetesen amikor elkezdem az egészet építeni, akkor a CPU val kezdem, és lesz olyan fázis amikor csak ledekkel tesztelem, de addig nem akarom megépíteni, amíg nem látom át a teljes szerkezetet.
A ledek jók, de 2 es számrendszert jelenítene meg (esetleg hexát megoldanám, hogy könyebben tudjam én is ellenőrizni), amit én értek, de ha családom és barátaim megkérdezik mibe ölöm a pénzem és az időm, jobb lenne, ha nekik is érthető formában tudnám megmutatni.
Egyébként programozni is tanulok, pár magas szintű nyelvben már egész jónak érzem magam, de most assembly-be is belekezdtem, és jó lenne ha egy IBM PC kompatibilis gépet sikerülne összehozni, és kapásból egy halom már megírt programot használhatnék.
A kompozit videojel generálása nem nagy cucc, ha színeset akarsz kicsit neccesebb, de pl. egy AD725 IC-vel megoldható.
Primitív módon pl. memóriából közvetlenül R2R DAC-ra mondjuk pixelenként 8 bit, ami fel van osztva a 3 színre és azt az IC-re. Ill. nézz utána, hogy a C64 és társai hogy kezelték akkoriban a színeket, ott nem állt rendelkezésre annyi videomemória, így pixelcsoportokban volt két szín, a 0 az egyik, az 1 a másik színt jelentette, mondjuk egy 2x2-es csoportban.
A fekete - fehér a legegyszerűbb:
A Megjelenítendő adatokat egy (D)RAM -ba kell beírni. A memória egy bitje 1 pixel, egy byte 8 egymásutáni pixel adatát tárolja. A video jel előállítása és a CPU hozzáférést átlapolva kellene megoldani: A video adat kiolvasása után 8 pixelnyi idő áll rendelkezésre, hogy a CPU adatot írjon vagy olvasson. A video jel a hagyományos TV -n 64us soridővel (ebből 52.6 a video jel ideje) és 20 ms képidővel működik. Bővebben: Link Az 52.6 us alatt kell a sort alkotó pixeleket "kiléptetni", aztán előállítani a sor szinkron impulzust. Így felrajzolni a 320 sort, majd a kép szinkront kell előállítani. Az időzítési feladatokat egy a pixel frekvenciának megfeleő órajelről járatott számláló lánccal lehet megvalósítani. A szinkron és a video jeleket egyszerű ellenállásos keveréssel lehet kompozit video jellé alakítani. Rengeteg áramkör, amit alap digitális kapukból szinte reménytelen összerakni. Volt szerencsém ilyet tervezni, de MSI elemekkel és DRAM -mal. Kitett egy egész Europa kártyát, a nagyobb felbontású pedig egy dupla Europa kártyát. Idézet: „IBM PC kompatibilis gépet sikerülne összehozni” Alap logikai kapukkal? Jesszus.
Köszönöm a segítségeket, mindennek utánanézek amit írtatok.
Idézet: „Alap logikai kapukkal? Jesszus.” Jó lehet picit merész ötlet volt Majd írom a fejleményeket.
Szép hobbi. Valamikor régen úgy volt a videoegység, hogy egy nagy számlán:
0-1-2 bit kimarad, mert az a pixel clock, az hajtotta a 74165 (?) párhuzamos soros shiftregisztert. Következő mondjuk 5 bit (ha 32 karakter van egy sorban) léptette a karakter RAM alsó címeit, annak adatkimenete ment a karakter ROM címbemeneteira (az meg a shiftregszterre). következő 3 bit (ha 8 pixel magas a karakter) ment a karakter ROM sorkijelölő címeire (a karakter hányadik sorát kell kipakolni). A következő bitek a karaktersorral növelődtek, de az előző előtti bit meg billentette a sorszinkron monostabilt (ami lelőtte az órajelet és 0 szintet kényszerített a kimenetre). Amikor egy teljes ciklus lement, akkor jött a képszinkron monostabil. Ott kis ügyeskedéssel a befűrészelést is meg kellett oldani. Valahogy így volt...régen volt. A RAM elérést lehetett szinkronozni a kép vagy a sorszinkronhoz sok-sok multiplexerrel. lehet, most jobban jársz, ha 6845-öt használsz vagy mégjobban, ha kerítesz egy régi 8-bites XT Hercules kártyát, annak jó a doksija és elég faék. Anno én is terveztem procot, de az mikroprogram táras volt, hálózattal sokkal több munkába lett volna. A mikroprogram tár fele nálam RAMban volt és be tudta tölteni a mikrokódot a külső ROMból, így tetszőleges "utasításokat" lehetett kreálni (no meg tönkretenni is). Kb 20 éve még megtaláltam valami leírást róla, de azóta sok költözés volt... Az IBM 8086/88 kompatibilitást egyelőre felejts el, szerintem 115.000+ kapufunkciót összevezetékezni...szóval sok madzag kell. Ja, aritmetikai egységnek 74181-et használtam, persze gyors átvitelképző nélkül. Hajrá, remélem bemutatod, ha elkészül!
Elfelejtettem: Van olyan IC aminek megadod, hogy milyen logkai kapcsolatot szeretnél a vezérlőlábakon és olyan kapu lesz (agyon ütnek sem tudom most fejből a típust, valami CMOS volt), de kis tokban, asszem SOT23/6 vagy SC70-ben meg vannak komplett okos kapuhálózatok, azok sokat egyszerűsítenek.
Ismét köszönöm a válaszokat, igyekszek ezeknek az infóknak is utánanézni. Nem ígérem, hogy egyhamar már a kész elektronikát összehozom, mert idén érettségizek és utána egyetem, de a szabadidőmet többnyire ennek szentelem.
Persze ha bármi elkészül, megosztom veletek.
Ha a cél nem arról szól, hogy évekre lefoglaljuk a forrasztópákát miközben elhasználjuk a világ eddig legyártott összes CMOS/TTL kapuáramkörét, össze lehet azt huzalozni egy chip-en belül is. Ezt hívják FPGA-nak. Egy komolyabb tokban akár az IBM PC kompatibilis proci is létrehozható.
Nekem ez volt a szakdolgozatom.
Sikerült is kiírnom hogy "bakfitty". Pontosabban mivel felcsereléltem két címbitet, valami olyasmi lett, hogy ""abfktiyt". Már annak is nagyon örültem, hogy megtaláltam a sok szemét között, amit ki akartam jelezni. Nem könnyű hardvert, OP rendszert, egyedül nulláról megalkotni. De határozottan sokat lehet belőle tanulni Ha kéred, neked adom (bár a RAM az egyben van és nem 7475-ökből összerakva)...
Gondolkodjunk egz kicsit:
Ha FPGA: fejlesztő rendszer kell és sok-sok tanulás. Ha megengedett az LSI (8253, 8237, DRAM, stb): Ilyet már látott a világ kb. 1985-86 körül készült IBM PC, XT formájában. Ha csak MSI, SSI áramkörök megengedettek: A legnagyobb gond a jelterjedés (vezetékhosszak) és a tápellátás lesz. Előbb egy 5V - 25 .. 50A -es (vagy még nagyobb kapacitású) tápegységet kellene építeni... Idézet: Egy monokrom, karakteres display-t egy kis europa kartyan siman meg lehet csinalni sima TTL IC-kbol. Plusz 2K SRAM, meg egy EPROM. Persze nem alap kapukbol, hanem szamlalokbol, komparatorokbol, shift-bol. „Rengeteg áramkör, amit alap digitális kapukból szinte reménytelen összerakni. Volt szerencsém ilyet tervezni, de MSI elemekkel és DRAM -mal. Kitett egy egész Europa kártyát,”
Ovastad? Volt szerencsém párat csinálni, de nem kapukból, hanem MSI elemekkel és DRAM -okkal. Egy 4096 * 4096 felbontású 16 bit (pseudo color) megjelenítő egy nyolcad köbméteres doboz volt 5V@25A táppal. Kismillio 41256 volt benne... De régen is volt.... kb.1986-87...
A hozzászólás módosítva: Szept 9, 2016
Olvastam. En is csinaltam par ilyet, azert is mondtam, hogy siman megoldhato akár egy kis euro kartyan is. Es SRAM-mal egyszerubben, mint DRAM-mal. De hol a felreertes kozottunk? A TTL az MSI-nek szamit? (Csinaltam display-t tisztan TTL-bol, de volt EF9366 alapu is, meg kesobb 6845 is. Azt a mai napig meg tudom mutatni, mukodik: Bővebben: Link)
4k x 4k felbontas min jelet meg? Mert nem TV-n, az tuti. Na igen, en nem ilyen felbontasut csinaltam, csak sima 512x256 meg 720x350.
A hozzászólás módosítva: Szept 9, 2016
Nincs közöttünk félreértés, hiszen ugyan azt mondjuk:
Idézet: „Rengeteg áramkör, amit alap digitális kapukból szinte reménytelen összerakni. Volt szerencsém ilyet tervezni, de MSI elemekkel és DRAM -mal. Kitett egy egész Europa kártyát,...” Emlékszik még valaki a MEDICOR - BME-MMT MMT rendszerére? Sajnos ez még a PC + internet korszak előtt volt. Ebben a rendszerben volt fekete-fehér és szinek kaktares és grafikus "kártya" is kis Európa méretben.
Lehet persze akár egyszerűbb elemekből is építkezni:
Bővebben: Link Mondjuk annyiba került, mint egy jobb autó, és kevésbé lehet csajozni vele, de kinek mi a fontos, ugye.
Komolyan erdekelne, hogy milyen berendezesnek volt ekkora felbontasa. Meg a 32 megabyte RAM is izgalmas lehetett 1024 db 41256-bol. Raadasul mindez '86-'87-ben.
Egy geofizikai - orvosi megjelenítő volt, de ez a méret egy felvétel mérete volt, amit egyben tárolt a "GPU". Ennek egy kiválasztott része jelent meg TV -ken. Persze a részt mozgatni lehetet a tejles képen.
Örülök, hogy ennyi ember ilyen segítőkész, és hogy tudom, nem csak én vagyok ennyire bogaras.
Köszönöm a segítségeket! Lesz még mit tanulnom a jövőben.
Mi nem bogarasak vagyunk, hanem oregek (ha meg nem bantom a tobbieket) Mi ezeket azert epitettuk TTL IC-kbol, mert akkor meg nem volt FPGA es hasonlo technologiak.
Ha már GPU, azt el tudjátok nekem mesélni, hogyan kell hardwer-zoom-ot csinálni?
Ez valahogy kimaradt az életemből és soha nem jöttem rá, illetve csak nagyon bonyolult eljárással (vektorizálás+single szorzás+re-pixel), amit nem hittem el, hogy úgy csinálják. Tehát van egy BMP a memóriában, csökkentsük le mondjuk 27%-al. Biztos vagyok benne, hogy valami faék dolog, de hát vannak lyukak...és maradnak is...
Hat, nem faék. Egyszerubb zoom-ot sima pixel eldobassal vagy duplazassal is lehet csinalni, de az nem mindig elegendo, plusz nem lehet akarmekkora aranyt elerni vele. Arra eleg, hogy pl. egy 1536x1152 kepet TV-n (768x576) megjelenit, tehat szeltebe, hosszaba minden masodik pixelt eldobsz. Ennel kicsit szebb a kep, ha négy pixelbol szamolsz egy matematikai atlagot, es abbol lesz 1 kimeno pixel. Ezt konkretan megcsinaltam HW-bol, ez nezheto. Bővebben: Link Sot, az eredeti meretbol tudtam 512x384 pixeles kepet is csinalni, igy a kep korul lehetett szoveg a kepernyon. Ennel a modnal az volt a megoldas, hogy a felezes utani kepet tovabb csokkentettem eldobasos technikaval. Ket pixel marad, 1 eldob. Ugyanez vertikalisan is, ket sort terit, egyet eldob. Ez is hasznalhato kepet adott. Ezek viszonylag egyszeru megoldasok. Igazan korrekt zoom-hoz digitalis szurot szokas hasznalni tudomasom szerint (down-scale, up-scale).
Ahh, köszi! A fel-leskálázás valahogy nem ugrott be. Azóta töröm a fejem rajta, mióta (talán 1980) bemutatták az első valósidejű videó-processzort a Deltában. Néztem is, milyen kicsi, aztán kiderült, hogy az csak a konzol, mellette egy mosógép méretű doboz volt az agy. Igaz, ez már tudott elforgatást is...Most meg egy vacak PC-n ha kell, szétrobbanthatom a képet is.
Az említett szkennerben a LED valami speciális volt vagy a színhelyességet utófeldolgozással állítottad be? Idézet: Eleve a kameran ugy van a feher egyensuly beallitva, hogy feher legyen a feher. De utofeldolgozasban volt tovabbi szinhelyesseg allitas, de az csak a szines filmeknel. A gep fokepp fekete-feher filmekhez keszult, azoknal eleve monokrom keppel ment az utomunka. „Az említett szkennerben a LED valami speciális volt vagy a színhelyességet utófeldolgozással állítottad be?” |
Bejelentkezés
Hirdetés |