Оригінальний набір мікросхем (OCS) — це чипсет, що використовувався в найперших комп’ютерах Commodore Amiga і визначав графічні та звукові можливості Amiga. Його наступниками стали (ECS) та (AGA).

Оригінальний набір мікросхем застосовувався в моделях Amiga, вироблених між 1985 і 1990 роками: , , Amiga CDTV та .

Огляд мікросхем Чипсет, який надав Amiga її унікальні графічні можливості, складався з трьох основних «кастомних» мікросхем: Agnus, Denise та Paula. І оригінальний набір мікросхем, і вдосконалений набір виготовлялися за технологією N-МОН дочірнім виробничим підрозділом Commodore — MOS Technology. За словами Джея Майнера, чипсет OCS був виготовлений за технологічним процесом 5 μm, тоді як Lisa реалізовувалася у 1,5 μm процесі. Усі три кастомні мікросхеми спершу випускалися в 48-вивідних DIP-корпусах; пізніші версії Agnus, відомі як Fat Agnus, випускалися в 84-вивідних .

Agnus є центральною мікросхемою у проєкті. Вона контролює доступ до як із боку центрального процесора 68000, так і з боку інших кастомних мікросхем, використовуючи складну систему пріоритетів. Agnus містить підкомпоненти, відомі як блітер (швидке перенесення даних у пам’яті без участі процесора) та Copper (відеосинхронізований співпроцесор). Оригінальна Agnus може адресувати Chip RAM. Пізніші ревізії, що отримали назву «Fat Agnus», додали псевдо-швидкої пам’яті, яку в ECS змінили на 1 МБ (іноді звану «Fatter Agnus»), а згодом — на 2 МБ Chip RAM.

Denise — головний відеопроцесор. Без використання графічний дисплей Amiga мав роздільну здатність 320 або 640 пікселів у ширину та 200 (NTSC) або 256 (PAL) пікселів у висоту. Denise також підтримує черезрядкову розгортку, що подвоює вертикальну роздільність, ціною значного мерехтіння на типових моніторах того часу. (Існували різні рішення на кшталт .) Використовувалася планарна растрова графіка, яка розділяла окремі біти на піксель на окремі ділянки пам’яті — бітові площини. У звичайному режимі Denise дозволяла від одного до п’яти бітових площин, що давало від двох до 32 унікальних кольорів. Ці кольори вибиралися з палітри у 4096 кольорів (по чотири біти на кожен компонент RGB). Шоста бітова площина доступна для двох спеціальних відеорежимів: та HAM. Denise також підтримує вісім спрайтів, покрокову прокрутку на один піксель і режим «dual-playfield». Крім того, Denise обробляє введення від миші та цифрових джойстиків.

Paula є переважно аудіочипом, що забезпечує чотири незалежні апаратно змішувані 8-бітні звукові канали PCM, кожен із яких підтримує 65 рівнів гучності (від відсутності звуку до максимальної гучності) та швидкість відтворення від приблизно 20 семплів на секунду до майже 29 000 семплів на секунду. Paula також відповідає за переривання та різні функції введення/виведення, включаючи роботу з дисководом гнучких дисків, послідовним портом і аналоговими джойстиками.

Існує багато подібностей як у загальній функціональності, так і в поділі функцій між трьома компонентними мікросхемами між чипсетом OCS та набагато ранішим і простішим чипсетом 8-бітних комп’ютерів Atari, що складався з мікросхем , , та ; обидва чипсети були концептуально спроєктовані Джеєм Майнером, що й пояснює їхню схожість.

Agnus

Мікросхема Agnus загалом контролює роботу всього чипсета. Усі операції синхронізовані з позицією відеопроменя. Це включає доступ до вбудованої RAM, відомої як , оскільки до неї має доступ увесь чипсет. І центральний процесор 68000, і інші складові чипсета повинні узгоджувати доступ до Chip RAM через Agnus. У термінах комп’ютерної архітектури це прямий доступ до пам’яті, де Agnus виконує роль контролера DMA (DMAC).

Agnus має складну політику доступу до пам’яті, засновану на пріоритетах, яка намагається оптимально координувати запити на доступ до пам’яті між конкуруючими ресурсами. Наприклад, вибірка даних із бітових площин має пріоритет над передаваннями блітер, оскільки негайне відображення даних буфера кадру вважається важливішим за обробку пам’яті бліттером. Agnus також намагається впорядковувати доступи так, щоб перекривати цикли шини ЦП із циклами DMA. Оскільки оригінальний процесор 68000 в Amiga зазвичай звертався до пам’яті лише в кожному другому доступному циклі, Agnus реалізує систему, де «непарні» цикли доступу до пам’яті спершу розподіляються під часо-критичним DMA кастомних чипів, а всі залишкові цикли доступні для ЦП. Таким чином, ЦП зазвичай не блокується від доступу до пам’яті й не виглядає уповільненим. Однак нетермінові доступи кастомних чипів, такі як передавання блітер, можуть використовувати будь-які вільні непарні чи парні цикли, і якщо встановлено прапорець «BLITHOG» (blitter hog), Agnus може заблокувати парні цикли для ЦП на користь блітер.

Часові характеристики Agnus вимірюються в «колірних тактах» тривалістю 280 нс. Це еквівалентно двом пікселям у низькій роздільності (140 нс) або чотирьом пікселям у високій роздільності (70 нс). Як і Denise, ці таймінги були розраховані на відображення на побутових телевізорах і можуть синхронізуватися із зовнішнім тактовим джерелом.

Блітер Блітер є підкомпонентом Agnus. «Blit» є скороченням від block image transfer або . Блітер — це високопаралельний пристрій для передавання даних у пам'яті та виконання логічних операцій. Він має три режими роботи: копіювання блоків пам'яті заповнення блоків (наприклад, заповнення полігонів) малювання ліній

Блітер дає змогу швидко копіювати відеопам'ять, звільняючи ЦП для інших завдань. Він здебільшого використовувався для малювання та перемальовування графічних об'єктів на екрані, які називалися «bobs» (скорочено від blitter objects).

Режим копіювання блоків Блітер може використовувати від нуля до трьох джерел даних у пам'яті (A, B і C), виконувати програмовану булеву функцію над джерелами даних і записувати результат у цільову область D. Будь-яка з цих чотирьох областей може перекриватися. Блітер працює або від початку блоку до кінця (так званий «висхідний» режим), або у зворотному напрямку («спадний» режим). Такий тип операції сьогодні відомий як .

Блоки є «прямокутними»: вони мають ширину, кратну 16 бітам, висоту (у «лініях»), і «крок» (stride) — відстань для переходу від кінця одного рядка до початку наступного. Це дозволяє Блітер працювати з будь-якою відеороздільністю до 1024×1024 пікселів.Реєстр BLTSIZE містить шість бітів для горизонтальних слів і десять бітів для вертикальних ліній. Копіювання автоматично виконує побітову логічну операцію для кожного пікселя. Такі операції описуються загально за допомогою мінтермів. Найчастіше це використовується для: прямого копіювання (D = A) застосування маски пікселів навколо об'єктів (D = (C AND B) OR A)

Може виконувати зсув рядків (так званий barrel shift) на 0–15 пікселів. Це дозволяє Блітер малювати з піксельними зсувами, які не є кратними 16.

Ці функції дозволяють Amiga швидко переміщати вікна графічного інтерфейсу екраном, оскільки кожне з них представлене у графічному просторі пам'яті як прямокутний блок, який можна пересунути в будь-яке місце екранної пам'яті.

Режим ліній Блітер малює лінії товщиною в один піксель, використовуючи алгоритм Брезенхейма. Також він може застосовувати 16-бітний повторюваний візерунок до лінії. Режим ліній можна також використовувати для малювання повернутих bobs: кожен рядок даних bob використовується як лінійний візерунок, тоді як режим лінії малює нахилений bob по рядках.

Режим заповнення Блітер використовується для заповнення горизонтальних ділянок рядка. На кожній ділянці він читає кожен піксель справа наліво. Коли він читає встановлений піксель, перемикається режим заповнення (вмикається/вимикається). Якщо режим заповнення ввімкнено, Блітер встановлює кожен наступний піксель, доки режим не буде вимкнено або доки рядок не завершиться.

Разом ці режими дозволяють Блітер малювати окремі полігони з плоским зафарбуванням. У пізніших моделях Amiga зазвичай використовувалася комбінація швидшого ЦП та Блітер для багатьох операцій.

Copper Copper є ще одним підкомпонентом Agnus; назва є скороченням від «co-processor» (співпроцесор). Copper — це програмований скінченний автомат, який виконує програмований потік інструкцій, синхронізований із відеообладнанням.

Коли він увімкнений, Copper має три стани: зчитування інструкції, виконання інструкції або очікування на певну позицію відеопроменя. Copper виконує програму під назвою Copper list паралельно з головним ЦП. Він працює синхронно з відеопроменем і може використовуватися для виконання різних операцій, що потребують відеосинхронізації. Найчастіше його застосовують для керування відеовиходом, але він також може записувати в більшість регістрів чипсета, а отже — може запускати блітер, встановлювати регістри звуку або переривати ЦП.

Список Copper має три типи інструкцій, кожна з яких є парою двох байтів (усього чотири байти): Інструкція MOVE записує 16-бітне значення в один із апаратних регістрів чипсета та використовується також для завдання нової адреси в покажчик інструкцій Copper. Інструкція WAIT призупиняє виконання Copper, доки не буде досягнуто вказаної позиції променя, що дозволяє синхронізувати інші інструкції відносно малювання екрану. Вона також може чекати завершення роботи блітер. Під час очікування Copper звільняє шину та не використовує цикли DMA. Інструкція SKIP пропускає наступну інструкцію Copper, якщо вказана позиція променя вже була досягнута. Це можна використати для створення циклів у списку Copper.

Довжина програми Copper list обмежена часом виконання. На початку кожного нового кадру Copper починає виконання списку заново. Явної інструкції «кінець» не існує; натомість використовується інструкція WAIT, яка очікує на позицію, що ніколи не настає.

Використання Copper Найчастіше Copper використовується для встановлення та скидання регістрів відеообладнання на початку кожного кадру. Його можна застосовувати для зміни відеоналаштувань у середині кадру. Це дозволяє Amiga змінювати конфігурацію відео, включно з роздільністю, між . Завдяки цьому Amiga може відображати різні горизонтальні роздільності, різні глибини кольору та абсолютно різні буфери кадрів на одному екрані. AmigaOS дозволяє кільком програмам працювати з різними роздільностями в різних буферах, одночасно відображаючись на екрані. Наприклад, графічний редактор може дозволяти користувачу малювати безпосередньо на низькороздільному екрані HAM, пропонуючи водночас високороздільну панель інструментів угорі чи внизу. Copper може змінювати регістри кольору всередині кадру, створюючи ефект "", часто помітний у іграх Amiga. Більше того, Copper може змінювати колір фону настільки часто, що це дозволяє створювати «грубопіксельний» графічний дисплей взагалі без використання растрової графіки. Copper дозволяє «повторно використовувати» спрайти; після того як спрайт намальований у заданій позиції, Copper може миттєво перемістити його в інше місце, і він буде намальований знову, навіть на тому ж рядку розгортки. Copper може викликати переривання, коли відеопромінь досягає точної позиції на екрані. Це корисно для синхронізації ЦП з відеопроменем. Copper також може програмувати та керувати блітер. Це дозволяє блітер працювати незалежно й паралельно з ЦП. При спільному програмуванні Copper і блітер можуть емулювати текстовий режим. Copper можна використати для створення «sliced HAM» або S-HAM,Винайдено у 1989 році Реттом Андерсоном що полягає у створенні списку Copper, який перемикає палітру на кожному рядку розгортки, покращуючи вибір базових кольорів у графіці режиму HAM.

Зовнішня синхронізація відео