Set original de cipuri

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

Original Chip Set ( OCS ) este prima generație a chipset - ului utilizat pentru platforma IT Amiga .

Folosit din 1985 până în 1991 , OCS implementează, printre altele, capacitățile grafice și sonore ale Amiga, care, în special în primii ani, erau extraordinare în două dintre clasele de computere pentru care a fost utilizat OCS, computerul de acasă și personal computer .

OCS a fost înlocuit mai întâi de ECS , o ușoară îmbunătățire, apoi de AGA , o îmbunătățire substanțială.

Nașterea numelui

OCS este abrevierea englezei „Original Chip Set”, în italiană „original chipset”. De fapt, denumirea OCS nu a fost atribuită imediat, ci în urma comercializării noilor generații de chipset-uri pentru platforma Amiga.

Numele componentei Agnus derivă din „Address GeNerator UnitS”, deoarece conține toate registrele de adresare și controlează accesul la memorie al cipurilor personalizate. Paula a luat în schimb numele fetei designerului de cipuri.

Produse comerciale

OCS a fost utilizat în diverse produse comerciale: un computer de acasă, cinci computere personale și o stație de lucru . În special, a fost utilizat pentru următoarele computere:
(computer de acasă :)

(calculator personal:)

(stație de lucru :)

Prezentare generală a cipurilor

OCS este compus în principal din următoarele trei jetoane personalizate:

OCS, precum și ECS , au fost produse în logică NMOS de Commodore Semiconductor Group , un producător de cipuri la acea vreme filială a Commodore International . Un pachet DIP cu 48 de pini a fost utilizat pentru Agnus, Denise și Paula și un pachet PLCC cu 84 de pini pentru Fat Agnus.

Agnus este cipul central al proiectului. Controlează accesul la memoria RAM a cipului , indiferent dacă acestea sunt realizate de microprocesor sau de celelalte cipuri personalizate, utilizând un sistem de prioritate complicat. Agnus poate adresa până la 512 KiB de memorie RAM, în timp ce Fat Agnus poate adresa până la 512 KiB, 1 MiB sau 2 MiB de memorie RAM în funcție de versiune. Versiunile de Fat Agnus capabile să adreseze până la 1 sau 2 MiB de RAM Chp au fost, de asemenea, numite informal „Super Agnus”, „Super Fat Agnus”, „Fatter Agnus”, „Big Agnus”, „Big Fat Agnus”, „Super Fat” Agnus ". Agnus conține în el blitterul și cuprul.

Denise este coprocesorul video. Fără supra-scanare , ecranul grafic al Amiga are o lățime de 320 sau 640 pixeli și o înălțime de 200 ( NTSC ) sau 256 ( PAL ). Denise acceptă, de asemenea, întrețeserea, ceea ce dublează rezoluția verticală. Denise foloseste grafica bitmap plane, care divizează individuale biți per pixel în zone de memorie separate, numite bitplanes (avioane de biți). În funcționare normală, Denise acceptă 1 până la 5 planuri de biți, adică 2 până la 32 de culori unice, selectate dintr-o paletă de 4.096 de culori. Sunt disponibile și două moduri video speciale, realizate grație celui de-al șaselea bitplane: EHB și HAM . Denise acceptă, de asemenea, opt sprite , defilare și modul „dual playfield”. În cele din urmă, gestionează intrările pentru mouse și joystick-ul digital.

Paula este în principal cipul de sunet, cu 4 canale hardware independente în PCM pe 8 biți, fiecare dintre acestea acceptând 65 de niveluri de volum și o rată de eșantionare între aproximativ 20Hz și 29kHz. Paula gestionează, de asemenea, întreruperile și diverse funcții I / O, inclusiv unitatea de dischetă , portul serial și joystick-urile analogice .

Agnus

MOS 8367R0 - Agnus

Cipul Agnus coordonează funcționarea întregului chipset. Toate operațiunile sunt sincronizate cu pensula video, inclusiv accesul la memoria RAM dedicată chipset-ului, cunoscut pentru această memorie RAM . Microprocesorul de bază 68000 și alți membri ai chipsetului concurează pentru accesul la RAM prin Agnus . În ceea ce privește arhitectura computerului, vorbim de acces direct la memorie (în engleză: Direct Memory Address, DMA), iar Agnus este controlerul DMA (DMAC).

Agnus gestionează 25 de canale DMA pentru chipset cu o politică complexă bazată pe priorități. Întrucât procesorul 68000 accesează în mod normal memoria la fiecare două cicluri de ceas RAM, Agnus face de preferință accesuri pentru chipset numai în timpul ciclurilor impare, lăsând cele par pentru CPU, care în acest mod nu este încetinit. Cu toate acestea, această coexistență pașnică este subminată atunci când sunt alese moduri video cu mai mult de 4 planuri de biți cu rezoluție mică (sau 2 planuri de biți de înaltă rezoluție): în aceste cazuri Agnus începe să acceseze memoria RAM chiar și în cicluri uniforme, încetinind procesorul. Chiar și blitter-ul , dacă este activat, poate scădea cicluri din CPU, mai ales dacă bitul "Blitter Nasty" este setat: în acest caz, Agnus poate refuza procesorul la fiecare ciclu uniform, dacă este solicitat de blitter.

Timpurile Agnus sunt măsurate în „ceas color” de 280 ns , echivalent cu doi pixeli la rezoluție mică (140ns) și patru pixeli la rezoluție înaltă (70ns). La fel ca la Denise, aceste temporizări au fost proiectate pentru ecranele TV de acasă și pot fi sincronizate cu o sursă de ceas externă.

Blitter

Blitterul este o sub-componentă a Agnus. „Blit” este abrevierea pentru „blocare transfer imagine” sau bit blit . Blitter-ul este o unitate foarte paralelă capabilă să transfere blocuri de memorie și operații logice. Are trei moduri de funcționare: copierea blocurilor de memorie, umplerea poligoanelor și desenarea liniilor.

Blitterul permite copierea rapidă a memoriei video, lăsând procesorul liber pentru alte operații. Blitter-ul a fost folosit în principal pentru a desena pe ecran imagini grafice numite „bob”, prescurtarea „obiect blitter”.

În modul copiere, blitterul ia de la zero la trei surse din memorie, numite A, B și C, și efectuează o funcție booleană programabilă pe ele. Rezultatul este (posibil) scris într-o zonă de destinație, D. Aceste zone se pot suprapune și toate blocurile trebuie să fie aliniate pe 16 biți. Blitter-ul poate funcționa pe blocuri atât de la început până la sfârșit, în așa-numitul mod „ascendent”, sau invers, în modul descendent.

Blocurile sunt „dreptunghiulare”; au o lățime în multipli de 16 biți, o înălțime măsurată în linii și un pas, care este decalajul dintre sfârșitul unei linii și următorul. Acest lucru permite blitter-ului să funcționeze în orice rezoluție video. În timpul copierii, se efectuează automat o operație logică asupra pixelilor individuali, descrisă de minterms [1] . Operațiile tipice sunt copierea (D = A) sau aplicarea unei măști de pixeli în jurul obiectelor blit (D = A ȘI C). Copierea poate, de asemenea, derula fiecare linie cu până la 15 pixeli, ceea ce permite blitter-ului să deseneze la coordonate orizontale care nu sunt neapărat multipli de 16 pixeli.

În modul desen linie, blitterul trasează linii groase cu un pixel folosind algoritmul Bresenham . De asemenea, poate aplica un model pe 16 biți liniei. În modul de umplere, blitterul funcționează după linii orizontale, umplând goluri orizontale între doi pixeli aprinși. Pentru fiecare linie, citește fiecare pixel la rândul său de la stânga la dreapta; când citește un pixel la unu, începe să umple toți biții care urmează până la următorul bit la unul sau la sfârșitul liniei. Împreună, aceste moduri permit blitter-ului să deseneze poligoane cu o singură culoare, deși foarte încet în comparație cu chipset-urile grafice 3D moderne sau chiar cu același procesor ca un Amiga accelerat.

Cupru

Cuprul este o altă subcomponentă a Agnus. Numele este o abreviere pentru „coprocesor”. Cuprul este o mașină programabilă cu stări finite care execută un flux de instrucțiuni sincronizate cu hardware-ul video.

Când rulează, cuprul are trei stări: citirea unei instrucțiuni, executarea sau așteptarea ca pensula video să atingă o poziție specifică pe ecran. Cuprul rulează un program (numit cupru listă ) în paralel cu CPU-ul principal, sincronizat cu pensula video și poate fi utilizat pentru a efectua diverse operații care necesită sincronizare cu videoclipul. Este cel mai frecvent utilizat pentru a controla ieșirea video, dar poate scrie în orice registru al chipset-ului și, prin urmare, poate controla audio sau poate trimite o întrerupere către CPU.

Lista cuprului are trei tipuri de instrucțiuni, fiecare dintre acestea fiind alcătuită dintr-o pereche de cuvinte pe 16 biți, pentru un total de patru octeți.

  • Instrucțiunea MOVE scrie un cuvânt pe 16 biți într-unul din registrele chipset-ului.
  • Instrucțiunea WAIT blochează cuprul până când se atinge o anumită poziție video, făcând astfel posibilă sincronizarea altor instrucțiuni cu urmărirea ecranului. De asemenea, poate aștepta ca blitterul să termine o operație.
  • Instrucțiunea SKIP va face ca cuprul să treacă peste următoarea instrucțiune dacă a fost atinsă deja o anumită poziție de perie video. Poate fi folosit pentru a crea bucle în listele de cupru.

Lungimea unei liste de cupru este limitată de timpul de execuție. Cuprul repornește execuția listei de cupru la începutul fiecărui cadru video. Nu există nicio declarație explicită „final”, declarația WAIT este utilizată în schimb pentru a aștepta o poziție video inaccesibilă.

Utilizări ale cuprului

  • Cuprul este utilizat în mod obișnuit pentru (re) inițializa registrele hardware video la începutul fiecărui cadru video. Poate fi folosit și pentru a schimba setările video în timp ce desenezi un cadru. Acest lucru permite Amiga să schimbe configurația video, inclusiv rezoluția, de la o linie la alta. Amiga poate afișa rezoluții orizontale diferite și adâncimi de culoare diferite pe același ecran. Interfața grafică a AmigaOS permite două programe să funcționeze cu două rezoluții video distincte, în timp ce ambele sunt vizibile pe ecran în același timp. De exemplu, un program de desen poate utiliza această caracteristică pentru a permite utilizatorilor să deseneze direct pe un ecran Hold and Modify cu rezoluție mică, oferind în același timp o bară de instrumente de înaltă rezoluție în partea de sus sau de jos a ecranului.
  • Cuprul poate schimba și registrele de culoare la fiecare linie de scanare, creând efectele „ barei raster ” atât de frecvente în jocurile Amiga. Cuprul poate face și mai mult, cum ar fi schimbarea culorii de fundal suficient de des pentru a afișa grafică bloc fără a utiliza deloc planuri de biți.
  • Cuprul vă permite să reutilizați sprite: după ce un sprite a fost vizualizat pentru prima dată, cuprul îl poate muta imediat într-o locație nouă, făcându-l să atragă din nou chiar și pe aceeași linie de scanare.
  • Cuprul poate fi folosit și pentru programarea și activarea blitterului. Acest lucru este util pentru efectuarea mai multor operații în ordine cu blitterul, deoarece cuprul poate aștepta ca blitterul să termine o operație și să-l reprogrameze imediat pentru ultima operație.
  • Cuprul poate fi utilizat pentru a produce modul video „slam HAM ” sau S-HAM [2] , care constă în construirea unei liste de cupru care schimbă paleta de culori la fiecare linie de scanare, îmbunătățind alegerea culorilor de bază în Hold And Modificați modul grafic.

Denise

MOS 8362R5 - Denise

Denise generează temporizări video și, la fel ca Agnus, acestea sunt măsurate în „ceas color”, dar se poate sincroniza și cu un semnal video extern. Denise este programat să preia date de la un număr de planuri de biți (planuri de biți) și să le traducă în indici ai unei palete de culori. Numărul de planuri de biți poate fi selectat între 1 și 5, deci dacă nu aveți nevoie de 32 de culori, puteți utiliza doar 2, 4, 8 sau 16. Numărul de planuri de biți (și rezoluția) poate fi modificat din mers, la exemplu din cupru. Acest lucru permite o utilizare foarte economică a memoriei RAM.

Este disponibil și un al șaselea plan de biți, care poate fi utilizat în trei moduri grafice speciale:

  • În modul Extra-Halfbrite (EHB), pixelii continuă să aibă culoarea paletei specificată de planurile de biți de la 1 la 5, dar dacă bitul corespunzător din al șaselea plan de biți este 1, luminozitatea culorii este redusă la jumătate. Primele versiuni ale Amiga 1000 vândute în Statele Unite nu aveau modul Extra-HalfBrite [3] .
  • În modul Hold-and-Modify (HAM), cei 6 biți ai fiecărui pixel sunt interpretați ca 2 biți de control și 4 biți de date. Cele 4 valori posibile ale biților de control corespund „alegeți din paletă”, „schimbați roșu”, „schimbați verde” și „modificați albastru”.
    • Cu „luați din paletă”, culoarea pixelului este preluată din paletă, indexându-l cu ceilalți 4 biți.
    • Cu una dintre „modificări”, totuși, cei patru biți indică în mod explicit care este valoarea pe care trebuie să o asume componenta roșie, verde sau albastră a acelui pixel; celelalte două rămân aceleași cu cele ale pixelului anterior. Acest lucru vă permite să vizualizați toate cele 4096 de culori pe ecran în același timp.
  • În modul Dual Playfield , în loc să aveți un singur ecran, aveți două ecrane suprapuse („playfield”) de 8 culori fiecare. Cele două ecrane pot fi derulate independent și culoarea de fundal a ecranului superior nu este vizibilă, dar permite ecranului inferior să strălucească.

Există două rezoluții grafice orizontale: rezoluția redusă ( lowres ), cu pixeli de 140 ns, și rezoluția înaltă ( angajează ), cu pixeli de 70 ns. Acestea corespund ecranelor cu lățime de 320 și respectiv 640 pixeli, fără a utiliza overscan. Denise acceptă supra-scanări foarte mari, nu este necesar să aveți un chenar în jurul graficii, așa cum a fost cazul în alte sisteme. Rezoluția verticală, fără supra-scanare, este de 200 de pixeli pentru un NTSC Amiga de 60 Hz și 256 de pixeli pentru un Amiga PAL de 50 Hz. Rezoluția verticală poate fi dublată prin întrepătrundere .

Denise poate afișa, de asemenea, 8 sprite pe grafică și poate detecta coliziuni între sprite și fundal sau între sprite. Acești sprite au 3 culori vizibile și unul transparent, dar este posibil să legați doi sprite împreună pentru a crea un sprite unic de 15 culori.

Ieșirea video a Denisei este RGB digital pe 12 biți. Conversia la RGB analog se face printr-un convertor digital-analog numit Vidiot . Pe Amiga 2000 , ieșirea digitală RGB este disponibilă într-un slot video dedicat.

Timpuri video externe

În mod normal, Amiga își generează temporizările în mod autonom, dar chipset-ul este capabil să se sincronizeze cu un semnal extern, astfel încât să poată fi blocat cu un dispozitiv video extern. Printr-unul dintre semnalele de ieșire de pe conectorul video, Denise poate indica, de asemenea, dacă culoarea de ieșire curentă este sau nu culoarea de fundal, simplificând foarte mult construcția hardware pentru a suprapune semnalul video Amiga pe un semnal extern. Acest lucru a făcut ca Amiga să fie deosebit de interesant în utilizarea ca generator de caractere pentru titlarea videoclipurilor și difuzarea televiziunii, deoarece a scutit utilizarea unităților scumpe AB roll și chromakey . Suportul pentru suprascanare, intercalare și genlock, împreună cu faptul că sincronizarea ecranului era foarte apropiată de standardele de transmisie video (NTSC sau PAL), au făcut din Amiga computerul de referință pentru aplicații video cu costuri reduse. Multe studiouri de televiziune l-au folosit pentru captarea video (sau captarea cadrelor), subtitrarea și știrile video interactive.

Paula

Cipul Paula 8364 R4 folosit la Amiga 1000

Cipul Paula este utilizat în principal pentru a produce semnale audio. Cipul oferă 4 canale de audio PCM pe 8 biți în DMA . Două dintre canalele de sunet sunt amestecate în canalul audio stâng, celelalte două în dreapta. Singurul format eșantion acceptat este complementul liniar pe 8 biți. Fiecare canal audio are un volum independent și o rată de eșantionare. Intern, hardware-ul audio este implementat ca patru mașini de stare, cu opt stări fiecare.

De asemenea, este posibil să utilizați unul dintre canalele fiecărei perechi pentru a modula perioada sau amplitudinea celeilalte. Această caracteristică a fost utilizată rar în Amiga, dar ar putea fi utilizată pentru a simula efectele tremolo și vibrato .

Cu unele trucuri de programare este posibilă reproducerea sunetului pe 14 biți, combinând două canale ale căror volume au fost setate corespunzător. Este astfel posibil să se obțină două canale de 14 biți în loc de 4 canale de 8 biți.

Pe un ecran normal, NTSC sau PAL, redarea audio este limitată la o rată maximă de eșantionare de 28867 Hz, datorită cantității de date care poate fi citită din memorie în timpul rezervat pentru Paula. După cum sa explicat în secțiunea dedicată Agnus, accesele la memorie sunt prioritare și doar unele dintre sloturile de acces la memorie sunt disponibile pentru canalele audio ale Paulei. Această limită poate fi depășită în setul de cipuri îmbunătățit utilizând un mod video cu o frecvență mai mare sau utilizând CPU-ul direct pentru a conduce ieșirea audio.

Amiga conține un filtru de reconstrucție analogic extern Paula. Acesta este un filtru low-pass de 12 dB / oct Butterworth cu o frecvență de întrerupere de aproximativ 3,3 KHz. Filtrul poate fi aplicat global la toate cele patru canale. La modelele de după Amiga 1000, luminozitatea LED-ului de putere a fost utilizată pentru a indica starea filtrului. Filtrul este activ când LED-ul este aprins normal; este dezactivat când LED-ul este slab luminat (în primele modele Amiga 500 LED-ul s-a stins complet). Modelele anterioare Amiga 1200 au, de asemenea, un filtru trece-jos static activ în mod constant, indiferent de starea „filtrului cu LED” opțional. Acest filtru este un filtru trece jos de 6 dB / oct cu o frecvență de întrerupere de 4,5KHz sau 5KHz.

Controler de dischetă

Controlerul pentru dischetă este neobișnuit de versatil. Poate citi și scrie date folosind codificări MFM sau GCR , în orice format, prin I / O sau DMA programate. De asemenea, acceptă unele caracteristici utile, cum ar fi sincronizarea pe cuvânt (în codificarea MFM, 4489 USD este de obicei folosit ca cuvânt de sincronizare). Codificarea și decodarea MFM se face de obicei cu blitter - într-un singur pas pentru decodare, în trei pași pentru codificare. Piesele sunt de obicei scrise integral într-o singură operațiune, mai degrabă decât sector cu sector.

În plus față de formatul nativ al discurilor de 3,5 inch de 880 KiB , controlerul poate gestiona multe alte formate, cum ar fi:

Port serial

Portul serial este rudimentar: acceptă doar I / O programate și nu are tampon FIFO . Caracteristică pozitivă: Practic poate fi selectată orice rată baud, inclusiv toate ratele standard, cea a interfeței MIDI și multe alte rate non-standard.

Notă

  1. ^ I minterm del Blitter , în For You , n. 18, octombrie 1993, pp. 5-7.
  2. ^ Inventat în 1989 de Rhett Anderson ( EN ) Copie arhivată , pe islandnet.com . Adus la 10 iulie 2006 (arhivat din original la 10 iulie 2006) .
  3. ^ (EN) Amiga 1000 , pe old-computers.com.

Bibliografie

Elemente conexe

Alte proiecte

linkuri externe