Video display controller - Video display controller
En videodisplaycontroller eller VDC (også regelmæssigt kaldet displaymotor , displaygrænseflade ) er et integreret kredsløb, som er hovedkomponenten i en videosignalgenerator , en enhed, der er ansvarlig for produktionen af et tv -videosignal i et computer- eller spilsystem. Nogle VDC'er genererer også et lydsignal , men det er ikke deres hovedfunktion.
VDC'er blev brugt i hjemmets computere i 1980'erne og også i nogle tidlige videobilledsystemer .
VDC er hovedkomponenten i videosignalgeneratorlogikken, der er ansvarlig for at generere timingen af videosignaler, såsom de vandrette og lodrette synkroniseringssignaler og blanking -interval -signalet. Undertiden andre understøttende chips var nødvendigt at bygge et komplet system, såsom RAM til hold pixel data , ROM til venteposition skrifttyper , eller nogle diskrete logik såsom skifteregistre .
Oftest er VDC -chippen fuldstændig integreret i logikken i hovedcomputersystemet (dens video -RAM vises på hukommelseskortet for hoved -CPU'en), men nogle gange fungerer den som en coprocessor, der kan manipulere video -RAM -indholdet uafhængigt.
Video display controller kontra grafikprocessorenhed
Forskellen mellem en displaycontroller, en grafikaccelerator og en videokomprimering/dekomprimering IC er enorm, men da al denne logik normalt findes på chippen i en grafikbehandlingsenhed og normalt ikke er tilgængelig separat for slutkunden , er der ofte stor forvirring omkring disse meget forskellige funktionelle blokke.
GPU'er med hardware acceleration begyndte at dukke op i løbet af 1990'erne. VDC'er havde ofte særlig hardware til oprettelse af " sprites ", en funktion, der i mere moderne VDP -chips udføres med " Bit Blitter " ved hjælp af " Bit blit " -funktionen.
Et eksempel på en typisk videodisplayprocessor er " VDP2 32-bit baggrunds- og rulleplan-videodisplayprocessor " i Sega Saturn . Et andet eksempel er Lisa (AGA) -chippen, der blev brugt til den forbedrede grafik på den senere generation af Amiga -computere.
Når det er sagt, er det ikke helt klart, hvornår en "videochip" er en "video display controller", og hvornår det er en "video display processor". For eksempel kaldes TMS9918 undertiden en "video display controller" og nogle gange en "video display processor". Generelt har en "videodisplayprocessor" dog en vis magt til at "behandle" indholdet af video -RAM'en (fylder f.eks. Et RAM -område), mens en "video -displaycontroller" kun styrer timingen af videosynkroniseringssignalerne og adgang til video -RAM.
De graphics processing unit (GPU) går et skridt videre end den VDP og understøtter normalt også 3D-funktionalitet. Dette er den slags chip, der bruges i moderne personlige computere.
Typer
Video display controllere kan opdeles i flere forskellige typer, der er anført her fra enkleste til mest komplekse;
- Video shifters eller "video shift register baserede systemer" (der er ikke noget generelt aftalt navn for denne type enheder), er den mest simple type video controllere. De er direkte eller indirekte ansvarlige for videosiming -signalerne, men de får normalt ikke direkte adgang til video -RAM'et. De får videodataene fra hoved -CPU'en, en byte ad gangen, og konverterer dem til en seriel bitstream, deraf det tekniske navn "video shifter". Denne serielle datastrøm bruges derefter sammen med synkroniseringssignalerne til at udsende et videosignal. Hoved CPU'en skal klare hovedparten af arbejdet. Normalt understøtter disse chips kun en rastergrafiktilstand med meget lav opløsning .
- En CRTC- eller katodestrålerørcontroller genererer videotimingerne og læser videodata fra RAM, der er knyttet til CRTC, for at udsende den via en ekstern karaktergenerator-ROM (til teksttilstande ) eller direkte til videooutputskiftregistret (for høj opløsning grafiske tilstande). Fordi videogeneratorens faktiske muligheder i høj grad afhænger af den eksterne logik, kan videogenerator baseret på en CRTC-chip have en bred vifte af muligheder, lige fra simple teksttilstandssystemer til systemer med høj opløsning, der understøtter en lang række farver. Sprites understøttes dog normalt ikke af disse systemer.
- Videointerface -controllere er meget mere komplekse end CRT -controllere, og det eksterne kredsløb, der er nødvendigt med en CRTC, er integreret i video -controller -chippen. Sprites understøttes ofte, ligesom (RAM-baserede) tegngeneratorer og video-RAM dedikeret til farveattributter og palletteregistre ( farveopslagstabeller ) til højopløsnings- eller teksttilstande.
- Videokoprocessorer har deres egen interne CPU dedikeret til at læse (og skrive) deres eget video -RAM (som kan deles med CPU'en) og konvertere indholdet af denne video -RAM til et videosignal. Hoved -CPU'en kan give kommandoer til coprocessoren, f.eks. For at ændre videotilstande eller for at manipulere video -RAM -indholdet. Videokoprocessoren styrer også den (oftest RAM-baserede) karaktergenerator, farveattributten RAM, paletregistre og sprite-logikken (så længe disse findes selvfølgelig).
Liste over eksempler på VDC'er
Eksempler på video display controllere er:
Videoskiftere
- Den RCA CDP1861 var en meget enkel chip, bygget i CMOS- teknologi (hvilket var usædvanligt for midten af 1970'erne) at supplere RCA 1802 mikroprocessor, det blev hovedsageligt brugt i COSMAC VIP . Det kunne kun understøtte en monokrom grafisk tilstand med meget lav opløsning.
- Den tv-interface adapter (TIA) er skik video chip, der er hjertet af Atari 2600 spillekonsol, en meget primitiv chip, der har påberåbt sig den 6502 mikroprocessor til at gøre det meste af arbejdet, også blev brugt til at generere lyd.
CRT -controllere
- Den Intel 8275 CRT controller blev anvendt i Konvergent Technologies AWS / Burroughs B20 , sammen med nogle S-100 bus systemer.
- Den Motorola 6845 (MC6845) er en video adresse generator først introduceret af Motorola og anvendes til Amstrad CPC , og BBC Micro . Det blev også brugt til næsten alle de tidlige videoadaptere til pc'en, såsom MDA , CGA og EGA -adaptere. MDA og CGA bruger en egentlig Motorola -chip, mens EGA har et brugerdefineret IBM -chipsæt med fem LSI -chips; en af disse chips inkluderer IBMs genimplementering af CRTC, der fungerer som en MC6845, men adskiller sig fra nogle få registeradresser og funktioner, så den ikke er 100% kompatibel. I alle senere VGA -kompatible adaptere er funktionen af 6845 stadig gengivet inde i videochippen, så på en måde indeholder alle nuværende IBM PC -kompatible pc'er stadig logikken i 6845 CRTC.
Controller til videointerface
- De Signetics 2636 og 2637 er video controllere bedst kendt for deres anvendelse i Interton VC 4000 og Emerson Arcadia 2001 hhv.
- Den MC6847 er en video display generator (VDG) først introduceret af Motorola og anvendes i TRS-80 Color Computer , Drage 32/64 , Laser 200 og Acorn Atom blandt andre.
- Den MOS Technology 6560 (NTSC) og 6561 (PAL) er kendt som video interface controller (VIC) og anvendt i Commodore VIC-20 .
- Den MOS Technology 6567/8562/8564 (NTSC-versioner) og 6569/8565/8566 (PAL) blev kendt som VIC-II og blev anvendt i Commodore 64 .
- Den MOS Technology 8563 / 8568 blev anvendt i Commodore 128 (8563) og Commodore 128D (8568) for at skabe en 80-kolonne tekstdisplay, samt flere høj opløsning grafiktilstand. Commodore 128-modellerne inkluderede en VIC-II til understøttelse af Commodore 64- kompatible videotilstande.
- Den MOS Technology 7360 tekstredigering enhed (TED) blev anvendt i Commodore Plus / 4 , Commodore 16 og Commodore 116 computere og havde en integreret-funktion.
- Den NEC μPD7220 . Anvendes i nogle avancerede grafikkort til IBM-pc'en i midten af 80'erne, især i produkter fra Number 9 Computer Company .
- De Philips Semiconductors SCC66470 var en VSC (Video- og Systems Controller) anvendes i forbindelse med deres 68070 -Microcontroller fx i CD-i -systemer.
- Den Picture Processing Unit var en video coprocessor designet af Ricoh til Nintendos 's brug i Famicom og Nintendo Entertainment System . Den var forbundet til 2048 bytes dedikeret video -RAM og havde en dedikeret adressebus, der gjorde det muligt at få adgang til yderligere RAM eller ROM fra spilpatronen. Et rullefelt på 256 × 240 pixels blev understøttet sammen med en visningsliste med 64 OBJ'er (sprites), hvoraf 8 kunne vises pr. Scanningslinje.
Videokoprocessorer
- Den ANTIC ( A lpha- N umeric T elevision jeg nterface C ircuit ) var en tidlig videosystem chip anvendes i Atari 8-bit familie af mikrocomputere . Den kunne læse en " Displayliste " med sin egen indbyggede CPU og bruge disse data til at generere et komplekst videosignal.
- Den TMS9918 er kendt som Video Display Processor (VDP) og blev først konstrueret til Texas Instruments TI-99/4 , men blev senere også anvendes i systemer som MSX (MSX-1), Colecovision , Memotech MTX serie , og for den Sega SG-1000 og SC-3000 . Den Master System bruger en forbedret VDP baseret på TMS9918, og Sega 315-5313 (Yamaha YM7101) VDP anvendt i Sega Genesis og nogle arcade maskiner er en yderligere fremrykning af Master System VDP med originalen (ringere) TMS9918 tilstande fjernet .
- Den Yamaha V9938 er en forbedret version af TMS9918, og blev hovedsageligt brugt i MSX2 .
- Den Yamaha V9958 er den video Display Processor (VDP) anvendes hovedsageligt i de MSX2 + og MSX turboR computere.
- VLSI VS21S010D-L er en 128 kB SPI/parallel SRAM med en integreret video display controller med variable bitdybde pixels og en blok-move blitter.
- Den Thomson EF936x serie af Graphic Display Processor (BNP), som tilbyder en lodtrækning på 1 million pixels per sekund og opløsninger op til 1024 × 512.
Alternativer til en VDC -chip
Bemærk, at mange tidlige hjemmecomputere ikke brugte en VDP-chip, men byggede hele videodisplaycontrolleren ud fra en masse diskrete logiske chips (eksempler er Apple II , PET og TRS-80 ). Fordi disse metoder er meget fleksible, kunne videodisplaygeneratorer være meget dygtige (eller ekstremt primitive, afhængigt af designets kvalitet), men også brug for mange komponenter.
Mange tidlige systemer brugte en eller anden form for et tidligt programmerbart logisk array til at oprette et videosystem; eksempler inkluderer ZX Spectrum og ZX81 systemer og Elektronika BK-0010 , men der var mange andre. Tidlige implementeringer var ofte meget primitive, men senere implementeringer resulterede undertiden i temmelig avancerede videosystemer, som dem i SAM Coupé .
Disse systemer kunne dermed bygge et meget dygtigt system med relativt få komponenter, men det lave transistortal af tidlig programmerbar logik betød, at mulighederne for tidlige PLA-baserede systemer ofte var mindre imponerende end dem, der brugte videogrænsefladekontrollerne eller videokoprocessorerne, der var tilgængelige på samme tid. Senere PLA-løsninger, f.eks. Dem, der anvender CPLD'er eller FPGA'er , kan resultere i meget mere avancerede videosystemer, der overgår dem, der er bygget ved hjælp af komponenter på hylden.
En ofte anvendt hybridløsning var at bruge en videointerface controller (ofte Motorola 6845 ) som grundlag og udvide sine muligheder med programmerbar logik eller en ASIC . Et eksempel på en sådan hybrid løsning er det originale VGA -kort, der brugte en 6845 i kombination med en ASIC. Derfor bruger alle nuværende VGA -baserede videosystemer stadig hardware -registre, der blev leveret af 6845.
Moderne løsninger
Med de fremskridt, der er gjort inden for fremstilling af halvlederenheder , implementeres mere og mere funktionalitet som integrerede kredsløb , ofte licensable som halvleder -intellektuel ejendomskerne (SIP -kerne). Displaycontroller SIP -blokke findes på matricen af GPU'er , APU'er og SoC'er .
De understøtter en række grænseflader : VGA , DVI , HDMI , DisplayPort , VHDCI , DMS-59 og mere. Den PHY omfatter LVDS , TMDS og fladskærm Link , OpenLDI og CML .
For eksempel transporteres et VGA-signal, som er oprettet af displaycontrolleren, over et VGA-kabel til skærmen. Begge ender af kabelenden i et VGA -stik . Bærbare computere og andre mobile computere bruger forskellige grænseflader mellem skærmkontrollen og skærmen. En displaycontroller understøtter normalt flere computerskærmstandarder .
KMS-driver er et eksempel på en enhedsdriver til displaycontrollere, og AMD Eyefinity er et særligt mærke af displaycontroller med understøttelse af flere skærme .
RandR (resize and rotate) er en metode til at konfigurere skærmopløsning og opdateringshastighed på hver enkelt output separat og samtidig konfigurere vinduessystemets indstillinger i overensstemmelse hermed.
Et eksempel på denne dikotomi tilbydes af ARM Holdings : de tilbyder SIP -kerne til 3D -gengivelsesacceleration og til displaycontroller uafhængigt. Førstnævnte har marketingnavne som Mali-200 eller Mali-T880, mens sidstnævnte er tilgængelig som Mali-DP500, Mali-DP550 og Mali-DP650.
Historie
I 1982, NEC udgivet NEC μPD7220 , en af de mest udbredte skærmstyreenheder i 1980'erne personlige computere . Det blev brugt i NEC PC-9801 , APC III , IBM PC-kompatible , DEC Rainbow , Tulip System-1 og Epson QX-10 . Intel licenserede designet og kaldte det 82720 grafikskærmcontrolleren.
Tidligere blev grafikkort også kaldet grafikkort, og de chips, der blev brugt på disse ISA / EISA -kort, bestod udelukkende af en displaycontroller, da dette var den eneste funktionalitet, der kræves for at slutte en computer til en skærm. Senere kort inkluderede IC'er til at udføre beregninger relateret til 2D -gengivelse parallelt med CPU'en; disse kort blev omtalt som grafikacceleratorkort. Tilsvarende fulgte IC'er til 3D -gengivelse til sidst. Sådanne kort var tilgængelige med VLB- , PCI- og AGP -grænseflader; moderne kort bruger typisk PCI Express -bussen, da de kræver meget større båndbredde end ISA -bussen kan levere.
Se også
Referencer
eksterne links
- Embedded Linux Conference 2013 - Anatomi af en integreret KMS -driver på YouTube KMS -driver er en enhedsdriver til displaycontrollere