Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Grafické karty a brutální PODtaktování sběrnice

Z různých testů je vidět, že sběrnici GPU lze v nějakém rozsahu přetaktovat nahoru (např. AGP, nominálně 66MHz, ale některé karty zvládnou až 100MHz stabilně).

Mě ale jde o přesně opačný problém:

Na jaké nejnižší frekvenci by šlo provozovat starší grafárny (konkrétně mi tu leží ATI Radeon 9250 AGP, ale spíš mi jde o obecnou odpověď).

Proč se ptám - rád bych použil nějaké starší grafárny pro výstup na obrazovku v rozumném rozlišení a počtu barev (VGA a výše), s tím, že mají vlastní rychlé obvody, vlastní paměť a zvládají moderní monitory.

A chtěl bych je používat jako výstup pro různá Arduina, 8bitové počítače a jiné obskurnosti, které rozhodně 66MHz nedají ani omylem - o několik řádů. Na druhou stranu pamatuje, že před asi miliónem let byly tyhle karty běžně v PC namapované přímo do paměti (třeba od 0xA000) a prostým zapisováním bytů na vhodná místa té paměti se daly kreslit obrázky, psát písmena a tak podobně (a sám jsem si nějaké takové hrátky užíval). Kdyby se tedy taková karta dala provozovat na sběrnici běžící mnohem pomaleji, tak by šla použít jako skvělý výstup z těchto udělátorů na normální monitor se slušným rozlišením.

V principu jde jen o to, na správné piny nastavit adresu, na jiné piny nastavit hodnotu a pak hodit signál Write a tím zapsat dotyčný byte/slovo/dvojslovo do té grafárny. Pak si pomalu vypočíst další hodnoty a celé to zopakovat. Grafárna by si zatím vesele kreslila obrazovku přez VGA/DVI konektor ve správném časování a čas od času by se ta obrazovka změnila, že by tam byl další bod. (z pohledu kartu jednou za věčnost, z pohledu člověka pár (desítek/stovek) tisíc bodů za sekundu - čili třeba vykreslování grafiky jak na spektru při nahrávání hry, ale v moderním rozlišení a barvách)

Zkoušel jsem hledat porůznu, ale neměl jsem vůbec šťastnou ruku. Principiálně by to fungovat mělo, ale je otázka, zda ta grafárna nějak nezávisí na frekvenci té sběrnice kvůli (co já vím třeba například) refrešování RAM.

(Třeba tady si chlápek staví 8bitový počítač, má tam integráče (a paměti) zvládající 20MHz+ a celé to taktuje ručním mačkáním tlačítka - zjevně dolní mez frekvence sběrnice tohoto počítače je 0Hz
https://www.youtube.com/channel/UCS0N5baNlQWJCUrhCEo8WlA A k něčemu takovému by se mi opravdu líbil "dálnopisový" výstup na normální monitor, kde by jednotlivá písmenka naskakovala po odeslání hodnoty na nějaký port)

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
(Odpověď v mezičase zmizela, ale když už to píšu ...) Na tom videu si staví v podstatě procesor a p…
gilhad 26.05.2019 23:45
gilhad
Mozna ted napisu totalni hovadinu, ale proc tu sbernici nenataktujes na jeji standardni frekvenci ex…
Tbrthg iodzvj 27.05.2019 17:16
Tbrthg iodzvj
No, zejména proto, že bych tou rychlostí tam zcela jistě nestíhal ještě navíc cpát data tím arduinem…
gilhad 27.05.2019 17:24
gilhad
No, a musel by to byt problem tam ty data cpat pomaleji, ackoliv by ta karta bezela rychle? Proste,…
Tbrthg iodzvj 27.05.2019 17:36
Tbrthg iodzvj
No na to se přesně ptám :-) Protože při přetaktování ta sběrnice místo na 66MHz běžela na 100MHz a… poslední
gilhad 27.05.2019 21:04
gilhad

(Odpověď v mezičase zmizela, ale když už to píšu ...)

Na tom videu si staví v podstatě procesor a par primitivnich periferii pro debugování, ale jde o ten princip.

I takováto "hračka" (nemluvě o tom, když se jí přidá trochu RAM, což je trivialita), dokáže "něco" upočítat a výsledek poslat na další periferii (přičemž ji může brát jako speciální I/O operaci, nebo prostě namapovat do paměti, oba principy tam jsou použité), třeba na posuvný registr a příslušné signály - takže ač pomalu, tak potřebná data vystavit dokáže. (Ostatně chci časem otestovat, jak rychle to může běžet, teoretické maximum je takt 20MHz a tedy 1M operací za sekundu, prakticky to asi do této frekvence už stabilní nebude kvůli dlouhým drátům).

Ale spíš mám na mysli různá Arduina (16MHz, 1 instrukce na takt, čili v mnohém řádově srovnatelné s prvními Pentii) a jiné zajímavé konstrukce (tak na úrovni Spektra, BBC Micro a tak, ale s dnešní technologií a přístupy - něco třeba emulované na FPGA, něco v původním křemíku a paměťově mapovanými inteligentními periferiemi, klidně časem i sítě takovýchle zařízení a multiprocesorové sestavy - ale pořád spíš v ranku do 20MHz, i když klidně se specializovaným HW)

Nicméně můj první plán je ovládat to Arduinem, které bude fungovat jako "síťová grafická karta" - čili opravdu něco na způsob programovatelného https://en.wikipedia.org/wiki/CTIA_and_GTIA ale s podporou spíš teletextu, vstupu z klávesnice a jiného univerzálního I/O.

Takže ostatní mikroprocesory v síti si jen požádají o vypsání textu na souřadnice, zobrazení menu, nakreslení elipsy a tak - pár bytů zpráva po síti (a adresovat velkou obrazovku je prakticky stejně drahé jako malou, a vykreslení čáry potřebuje jen souřadnice koncových bodů, bez ohledu na délku čáry), interface propočítá pár stovek/tisíc bodů a grafárna pojede v plném rozlišení a paletě.

A pak ten interface (čili např to Arduino) můžu rozšířit i třeba o čtečku SD karet a na vyžádání tam cpát celé sprity, nebo obrazovky, případně tam pro tyto účely přidat i nějakou rozumně velkou RAM - no fantazii se meze nekladou.

Že to pojede pomalu je celkem jasné, ale není důvod, aby to nejelo ve velkém rozlišení a plné paletě se stabilním obrazem.

---

Ale potřeboval bych nějak přeskočit tu mezeru mezi seriovou komunikací, I2C sítí, 16-20MHz interfacem a kvalitní grafikou na monitoru - a co líp to zvládne, než skutečná grafická karta?
A na druhou stranu takovou kartu koupím v bazaru za pár stovek, pokud už ji nedostanu zdarma (nebo nevytáhnu z šuplíku) a přibastlit k Arduinu pár posuvných registrů je legrace.

Na druhou stranu řešit podporu takovýchto protokolů na klasickém počítači s UEFI a mutitaskingem a swapováním a úlohama na pozadí, který naopak nemá HW podporu pro tyto protokoly a není stavěný, aby působil jako slave zařízení v reálném čase mi přijde jako mnohem složitější cesta. A taky míň zábavná a punk :)

No na to se přesně ptám :-)

Protože při přetaktování ta sběrnice místo na 66MHz běžela na 100MHz a přitom obraz určitě nebyl rozsypaný, tak v té kartě musel uvnitř tikat na svojí frekvenci minimálně ten výstupní obvod. A sběrnice přenášela do té karty víc dat za stejnou dobu.

Tak se ptám, zda by taky šlo přetaktovat tu sběrnici místo 66MHz třeba na 6MHz, nebo 1kHz, nebo dokonce úplně zastavit a krokovat po jednotlivých slovech (32bitů nebo kolik potřebuje + potřebné signály a věci okolo). Přitom aby ta karta uvnitř běžela po svém a výstup splňoval VGA/HDMI/whatever specifikace.

No a teoreticky by to jít mohlo, když jde to přetaktování. Ale zase vím, že tam můžou být problémy s tím, že ta karta prostě může z nějakého důvodu být závislá na taktu sběrnice a vyžadovat ho z alespoň určité rychlosti. Protože vím, že v archaických počítačích byly paměti, co vyžadovaly pravidelný refresh, generovaný procesorem, jinak ztrácely data. Když byl refresh častější, tak jim to vůbec nevadilo, když byl o fous nižší, tak jim to taky nevadilo, ale když klesnul moc, tak to vadilo. A u těch sběrnic je nominální frekvence, takže by to mohlo svádět ji k něčemu dalšímu použít taky.

Zpět do poradny Odpovědět na původní otázku Nahoru