MIPS () — архітектура мікропроцесорів, розроблена компанією MIPS Computer Systems (нині MIPS Technologies) відповідно до концепції проєктування процесорів RISC, тобто концепції зі скороченим набором команд. Ранні моделі процесора мали 32-бітну структуру, пізніше з'явилася 64-бітна версія. Існує багато модифікацій цієї архітектури, включаючи MIPS I, MIPS II, MIPS III, MIPS IV, MIPS V, MIPS32 (для 32-бітної реалізації) і MIPS64 (для 64-бітної реалізації). MIPS32 і MIPS64 визначають як набір регістрів керування, так і набір команд. Архітектура MIPS з порядком байт little endian називається mipsel.

Крім цього, доступні доповнені моделі, наприклад: MIPS-3D — включає в себе набір SIMD команд для обробки чисел з рухомою комою, призначений для вирішення простих 3D завдань; MDMX (MaDMaX) — з іще ширшими можливостями, має набір SIMD команд та команд з використанням 64-бітових регістрів з рухомою комою для роботи з цілими числами; MIPS16e — стискає потік команд для зменшення обсягу зайнятої програмами пам'яті; MIPS MT (Multi-Threading) — забезпечує багатопотоковий режим оброблення.

Архітектуру MIPS часто вивчають в програмі курсу «Комп'ютерна архітектура» в університетах і технічних ліцеях. Ця архітектура мала істотний вплив на подальший розвиток інших процесорів RISC-архітектури, зокрема на Alpha.

Різні реалізації MIPS використовуються в основному у вбудованих системах, наприклад, в пристроях Windows CE, маршрутизаторах, шлюзах, а також в ігрових консолях, таких як Sony PlayStation 2 і Sony PlayStation Portable. До кінця 2006 року вони застосовувалися і в комп'ютерах SGI. До кінця 1980-х і 1990-х ця архітектура широко використовувалася багатьма компаніями, серед них Digital Equipment Corporation, NEC, Pyramid Technology, Siemens Nixdorf і Tandem Computers. З середини до кінця 1990-х років кожним третім мікропроцесором на ринку виробництва був процесор архітектури MIPS.

Історія

Основоположник RISC У 1981 році колектив під керівництвом Джона Геннесі з Університету Стенфорда почав роботу над проєктом, який отримав назву MIPS. Головною ідеєю було збільшити продуктивність процесора, використовуючи подовжений конвеєр. Концепція застосування конвеєра як основної технології була відома ще задовго до цього (наприклад, в IBM 801), але вона не використовувала весь свій потенціал. Центральний процесор включає в себе кілька спеціальних субблоків, таких як декодери команд, цілочисельний АЛП (арифметико-логічний пристрій), блоки завантаження / зберігання (робота з пам'яттю) і т. д. В традиційній не оптимізованій реалізації окрема команда в програмі має бути (майже завжди) завершена, перш ніж запуститься інша; в той час як в конвеєрній архітектурі послідовні команди можуть виконуватися паралельно. Наприклад, коли математична інструкція вноситься в блок з рухомою комою, блок завантаження / зберігання пам'яті може в цей же момент викликати наступну команду.

Однією з головних перешкод у використанні конвеєра був той факт, що деякі команди, такі як ділення, виконуються набагато довше за інші. Внаслідок цього центральному процесору доводиться чекати, перш ніж передати на конвеєр наступну команду. Єдине вирішення цієї проблеми — використовувати серію блокувань, що дозволяють певним стадіям конвеєра сигналізувати, що вони зайняті. В цьому випадку виконання наступних команд потоку призупиняється. Група Геннесі розглядала ці блокування як величезний бар'єр у збільшенні продуктивності, оскільки було необхідно звертатися до всіх модулів центрального процесора, що займає зайвий час і обмежує тактову частоту. Головним завданням розробки пристроїв MIPS було вкласти кожну підфазу кожної команди, в тому числі кешування, в один цикл, таким чином уникаючи необхідності в блокуваннях.

Хоча така реалізація і виключала б деякі дуже корисні операції, такі як множення і ділення, очевидно, що гранична продуктивність системи значно збільшилася б, бо мікросхеми змогли б працювати з вищою тактовою частотою. Досягнення високої швидкості з використанням блокувань було б складним, тому що час, необхідний для встановлення блокувань, пропорційний тактовій частоті (залежній, в свою чергу, від розміру кристала). Ось чому виключення вищезазначених операцій стало спірним питанням.

Інша відмінність дизайну MIPS від конкурентних з ним Berkeley-архітектур — це впроваджена в Berkeley-RISC можливість обробки виклику підпрограм. Щоб збільшити продуктивність настільки загальної задачі, в Berkeley-RISC була використана технологія, яка називається регістровим вікном, яка, тим не менш, обмежувала максимальну глибину багаторівневих викликів. Кожен виклик підпрограми вимагав свого набору регістрів, що призводило до необхідності збільшення їх кількості. А апаратна реалізація даного механізму займала додатковий простір в кристалі ЦП. Але Геннессі вважав, що «ретельніший» компілятор міг би знайти вільні регістри для передачі параметрів функції, і що всього лише збільшення числа регістрів могло б не тільки спростити цю задачу, але і збільшити продуктивність всіх операцій. Тому було прийнято рішення відмовитися від даної технології в MIPS.

Архітектура MIPS була, в деякому відношенні, найтиповішою для RISC. Щоб заощадити біти в коді команди, в RISC було зменшено кількість інструкцій для кодування. В MIPS з 32 бітів слова всього 6 використовуються для основного коду, а інші можуть містити або єдину 26-бітну адресу переходу, або до 5 полів, що встановлюють від 1 до 3 регістрів + величина зсуву регістра. Існує і ряд інших форматів, наприклад, коли 2 регістри задаються безпосередньо виділеним 16-бітовим полем і так далі. Такий розподіл дозволив процесору завантажувати команду і необхідні їй дані в одному циклі, в той час як у старіших архітектурах (що не були RISC), наприклад, MOS Technology 6502, були потрібні окремі цикли для завантаження основного коду і даних.

Це було одним з головних удосконалень продуктивності, які пропонували RISC. Однак, варто сказати, що не RISC архітектури все ж досягли подібної швидкості, але іншими засобами (такими, як черги в ЦП).

Перша апаратна реалізація У 1984 році, переконаний у комерційному успіху своєї розробки, Геннессі покинув Стенфорд, щоб заснувати компанію MIPS Computer Systems. У 1985 році була реалізована перша версія мікропроцесора MIPS — R2000, допрацьована в 1988 році і отримала назву R3000. Ці 32-бітові процесори лягли в основу компанії в 1980-х і використовувалися переважно в SG-серіях робочих станцій. Нові комерційні проєкти не відповідали Стенфордським науковим дослідженням, так як практично всі блокування виконувалися на апаратному рівні, до того ж операції множення і ділення були повністю реалізовані.

У 1991 році MIPS вперше був представлений як 64-бітний мікропроцесор, у версії R4000. R4000 має розширений TLB, в якому запис містить не лише віртуальний адресу, але і віртуальний ідентифікатор адресного простору. Такий буфер усуває основні проблеми продуктивності мікроядра, досить повільного в архітектурах компаній-конкурентів (Pentium, PowerPC, Alpha) через необхідність скидати TLB під час частого перемикання контексту.

Тим не менш, у MIPS виникали фінансові труднощі у зв'язку з постачанням процесорів на ринок. Проєкт був настільки важливий для SGI (в той час були одними з небагатьох основних покупців MIPS), що в 1992 році SGI викупили права на компанію з умовою гарантії, що конструкція мікропроцесорів не зміниться. Ставши дочірньої компанією, MIPS Computer Systems отримали назву MIPS Technologies.

Ліцензована архітектура

На початку 1990 року MIPS почали ліцензування своїх розробок для сторонніх постачальників. Ідея виявилася успішною через простоту ядра, яке знаходило безліч застосувань, де раніше використовувалися набагато менш ефективні CISC-архітектури, з тією ж кількістю і тієї ж ціною схем (2 цих критерію тісно пов'язані: ціна ЦП, як правило, залежить від кількості схем і контактів). Компанія Sun Microsystems зробила аналогічну спробу ліцензування ядра SPARC, але їх хід не мав подібного успіху. До кінця 1990-х MIPS стали найважливішою компанією у виробництві вбудованих процесорів, і в 1997 році 48-мільйонні поставки процесорів на базі MIPS змусили RISC-архітектури витіснити популярне сімейство процесорів 68k. MIPS були настільки успішними, що в 1998 році SGI передали частину активів MIPS Technologies. На сьогодні половина доходів MIPS надходить з ліцензування розробок, а велика частина іншої половини — з контрактів на розробку ядер для виробництва сторонніми постачальниками.

У 1999 році MIPS формалізували свої системи ліцензування навколо двох основних конструкцій — 32-розрядної 'MIPS32 (на базі MIPS II з деякими додатковими функціями MIPS III, IV MIPS і MIPS V) і 64-розрядних MIPS64' (на базі MIPS V). Ліцензія на MIPS64 була придбана кожної з компаній NEC, Toshiba і SiByte (згодом придбана Broadcom) відразу ж після оголошення про її випуску. Незабаром, до них приєдналися Philips, LSI Logic і IDT. Успіх випливав за успіхом, і сьогодні процесори MIPS є одним з найбільш затребуваних товарів на ринку пристроїв комп'ютерного типу (кишенькових комп'ютерів, приставок тощо), поряд з іншими розробниками, марно намагаються їх витіснити.

Через кілька років після того, як MIPS-архітектура стала ліцензованої, вона почала привертати все більше і більше нових компаній з розробки процесорів. Першою такою компанією була Quantum Effect Devices (див. наступний розділ). Команда розробників, що зібрали MIPS R4300i заснувала компанію SandCraft, яка надала компанії NEC новий процесор R5432, а трохи пізніше змодельовану R71000 — один з перших нестандартних процесорів для ринку вбудованих систем. Команда засновників компанії DEC StrongARM зрештою розділилася на дві нові компанії з розробки процесорів, в основу яких ліг MIPS: SiByte, яка виробляла SB-1250 — одну з перших чипових систем з високою продуктивністю, заснованих на MIPS (SOC) і Alchemy Semiconductor (пізніше придбана AMD), яка виробляла Au-1000 SOC для малопотужних додатків. Компанія Lexra використовувала архітектуру, подібну MIPS, додавши до неї DSP для ринку аудіо мікросхем, а також підтримку багатопотокового режиму для мережевого ринку. Так як Lexra не купувала ліцензію на MIPS, незабаром, між двома компаніями розгорілися судові процеси. Перший був досить швидко погашений вже після того, як Lexra пообіцяла не просувати свої процесори, як подібні з MIPS. Другий процес (про патент MIPS 4814976 на обробку невирівняного інструкції (unaligned) доступу до пам'яті) був більш затяжним і негативно позначилася на бізнесі обох компаній, а по його завершенні MIPS Technologies видали Lexra безкоштовну ліцензію та виплатили грошову компенсацію у великому розмірі.

Слідом за цими подіями на ринку з'явилися дві компанії, що спеціалізуються на створенні багатоядерних пристроїв, що використовують архітектуру MIPS. Корпорація Raza Microelectronics викупили виробничу лінію у менш успішних SandCraft, а потім почали випускати восьмиядерні пристрої для ринку телекомунікацій і мереж. Cavium Networks, спочатку були постачальником засобів захисту процесорів, теж почали виробництво восьми, а пізніше і 32-ядерних архітектур для тих же ринків. Обидві компанії самі проєктували ядра, і лише ліцензували розробки, замість того, щоб купувати готові процесори MIPS.

Втрата ринку ПК

Серед виробників, які створили робочі станції з використанням мікропроцесорів MIPS такі компанії, як SGI, MIPS Computer Systems, Inc., Whitechapel Workstations, Olivetti, Siemens-Nixdorf, Acer, Digital Equipment Corporation, NEC, і DeskStation. У числі операційних систем, перенесених на архітектуру MIPS: IRIX компанії SGI, Windows NT (до версії 4.0) компанії Microsoft, Windows CE, Linux, BSD , UNIX System V, SINIX, QNX, і операційна система RISC безпосередньо належить компанії MIPS Computer Systems.