Жылдам дерек синхрондауға арналған интегралды схема
Blitter
Жылдам дерек синхрондауға арналған интегралды схема – блиттер. Блиттерлер компьютер жадында деректерді жылдам жылжытуға, өңдеуге арналған, CPU-ды босатады.
Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Деректерді жылдам синхрондауға арналған интегралдық схема.
An integrated circuit for rapid data synchronization
Блиттер – компьютер жадындағы деректерді жылдам жылжыту және өзгертуге арналған схема, кейде микропроцессордағы копроцессор немесе логикалық блок ретінде қолданылады. Блиттер үлкен көлемдегі деректерді бір жад аймағынан екінші жад аймағына салыстырмалы түрде жылдам және CPU-мен параллель түрде көшіре алады, сонымен бірге CPU-дың басқа операциялар үшін күрделі мүмкіндіктерін босатады. Блиттерді қолданудың кең таралған мысалы – биттік картаны жылжыту, мысалы, графикалық интерфейстегі терезелер мен белгішелер немесе 2D бейне ойындағы кескіндер мен фондар. Атауы 1973 жылғы Xerox Alto-ның «бит-блит» операциясынан шыққан. Блит операциясы жадты көшіруден артық, себебі ол байтқа сәйкес келмейтін деректерді (сондықтан «бит-блиттегі» «бит»), мөлдір пиксельдерді (мақсатты жерге жазылмауы керек пиксельдер) және бастапқы және мақсатты деректерді әртүрлі тәсілдермен біріктіруді қамтиды. Блиттерлер көбінесе бағдарламаланатын графикалық процессорлармен алмастырылды.
A blitter is a circuit, sometimes as a coprocessor or a logic block on a microprocessor, dedicated to the rapid movement and modification of data within a computer's memory. A blitter can copy large quantities of data from one memory area to another relatively quickly, and in parallel with the CPU, while freeing up the CPU's more complex capabilities for other operations. A typical use for a blitter is the movement of a bitmap, such as windows and icons in a graphical user interface or images and backgrounds in a 2D video game. The name comes from the bit blit operation of the 1973 Xerox Alto, A blit operation is more than a memory copy, because it can involve data that's not byte aligned (hence the bit in bit blit), handling transparent pixels (pixels which should not overwrite the destination), and various ways of combining the source and destination data. Blitters have largely been superseded by programmable graphics processing units.
Тарих
Жабдықтық түрде жеделдетілген растрлық графикасы жоқ компьютерлерде, соның ішінде 1970-80 жылдардағы үй компьютерлері және 1990 жылдардың ортасына дейінгі IBM PC-ге үйлесімді компьютерлерде, кадр буфері әдетте CPU-ға қолжетімді жадта сақталады. Сурет салу бағдарламалық жасақтама арқылы кадр буферін жаңарту арқылы іске асырылады. Негізгі графикалық операциялар үшін, мысалы, кішкентай суретті үлкен суреттің ішіне енгізу (видео ойын үшін) немесе толтырылған тіктөртбұрыш салу үшін, үлкен көлемде жадты өңдеу қажет, және көптеген циклдар жүктеу/сақтау нұсқауларының қысқа тізбектерін алу және декодтау үшін жұмсалады. Кэші жоқ процессорлар үшін нұсқауларға қатысты шина талаптары деректерге қарағанда маңыздырақ болуы мүмкін. Кадр буферінің көлемін азайту үшін, бір байт міндетті түрде пикселге сәйкес келмейді, бірақ 8 бір биттік пиксел, 4 екі биттік пиксел немесе 4 биттік пикселдердің жұбын қамтуы мүмкін. Біріктірілген пикселдерді өңдеу үшін CPU-да қосымша жылжыту және маскалау операциялары қажет. Блиттерлер деректерді көшіру немесе жад блоктарын CPU-дан мүмкіндігінше жылдам толтыру сияқты қайталанатын тапсырмаларды жеңілдету үшін жасалды. Бұл процессормен параллель жұмыс істеуі мүмкін, сондай-ақ қолмен кодталғанда айтарлықтай баяу болатын ерекше жағдайларды да өңдеуге болады, мысалы, мөлдір деп белгіленген пикселдерді өткіріп жіберу немесе байтқа тураланбаған деректерді өңдеу.
In computers without hardware accelerated raster graphics, which includes most 1970s and 1980s home computers and IBM PC compatibles through the mid 1990s, the frame buffer is commonly stored in CPU accessible memory. Drawing is accomplished by updating the frame buffer via software. For basic graphics routines, like compositing a smaller image into a larger one (such as for a video game) or drawing a filled rectangle, large amounts of memory need to be manipulated, and many cycles are spent fetching and decoding short loops of load/store instructions. For CPUs without caches, the bus requirement for instructions is as significant as data. To reduce the size of the frame buffer, a single byte may not necessarily correspond to a pixel, but contain 8 single bit pixels, 4 two bit pixels, or a pair of 4 bit pixels. Manipulating packed pixels requires extra shifting and masking operations on the CPU. Blitters were developed to offload repetitive tasks of copying data or filling blocks of memory faster than possible by the CPU. This can be done in parallel with the CPU and also handle special cases which would be significantly slower if coded by hand, such as skipping over pixels marked as transparent or handling data that isn't byte aligned.
Басқа тәсілдер
Жабдықтық спрайттар – дербес орналастырылатын және бейнечиптің тікелей өңдеуімен фонмен біріктірілетін шағын растрлік кескіндер. Бейнебуфер өзгертілмейді. Спрайттардың кемшілігі – бір сканжолға жылжымалы графиканың шектелуі, ол үштен (Atari 2600) сегізге (Commodore 64 және Atari 8 биттік компьютерлер) дейін, ал 16 биттік консольдар мен аркадалық аппараттық құралдар үшін одан да жоғары болуы мүмкін (Neo Geo бір жолға 96 спрайтты көрсетуге қабілетті), сондай-ақ тұрақты растрлік кескінді жаңарту мүмкін болмауы (оларды жалпы десктоптық GUI-дың жылдамдауы үшін қолайсыз етеді).
Hardware sprites are small bitmaps which can be positioned independently and are composited together with the background on the fly by the video chip. The frame buffer is not modified. The downside of sprites is a limit of moving graphics per scanline, which can range from three (Atari 2600) to eight (Commodore 64 and Atari 8 bit computers) to significantly higher for 16 bit consoles and arcade hardware (the Neo Geo can display 96 sprites per line), and the inability to update a permanent bitmap (making them unsuitable for general desktop GUI acceleration).