MIPS

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук

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

Крім цього, доступні доповнені моделі, наприклад:

  • 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 році колектив під керівництвом Джона Хеннесі (John L. Hennessy) з Університету Стенфорда почав роботу над проектом, який отримав назву 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.

На початку 1990х існувало припущення, що MIPS разом з іншими потужними процесорами RISC незабаром обженуть архітектуру IA32 компанії Intel. Цьому сприяла підтримка двох перших версій Windows NT для Alpha, MIPS і PowerPC компанії Microsoft, і, дещо меншою мірою, — архітектури Clipper і SPARC. Однак, як тільки Intel випустив новітні версії ЦП класу Pentium, Microsoft Windows NT v4.0 перестав підтримувати все, крім Alpha і Intel. Після рішення SGI перейти на архітектури Itanium і IA32, процесори MIPS практично повністю перестали використовуватися в персональних комп'ютерах.

Ринок вбудовуваних систем[ред.ред. код]

Ingenic JZ4730 — приклад SOC, базованої на MIPS

У 1990-ті роки, MIPS -архітектура була широко поширена на ринку вбудовуваних систем: для мереж, телекомунікацій, відео ігор, ігрових консолей, принтерів, цифрових приставок, цифрових телевізорів, xDSL і кабельних модемів, а також кишенькових комп'ютерів.

Низьке енергоспоживання і температурні характеристики вбудованих MIPS-архітектур, широкі можливості внутрішніх функцій роблять цей мікропроцесор універсальним для багатьох пристроїв.

Синтезовані ядра для ринку вбудованих систем[ред.ред. код]

В останні роки більшість технологій, що використовуються в різних поколіннях MIPS , запропоновані у вигляді IP-ядер (стандартних блоків) для вбудованих реалізацій процесора. Більше того, запропоновані обидва типи ядер — засновані на 32 і 64 бітах, відомі як 4 K і 6 K . Такі ядра можуть поєднуватися з іншими структурними елементами, такими як FPU , системами SIMD, різними пристроями введення / виводу і т. д.

Колись комерційно успішні ядра MIPS, і в даний час знайшли споживче та промислове застосування. Ці ядра можна знайти в нових маршрутизаторах Cisco, Linksys та MikroTik, кабельних і ADSL модемах, смарт-карта х, механізмах лазерних принтерів, цифрових приставках, роботах, кишенькових комп'ютерах, Sony PlayStation 2 і Sony PlayStation Portable. Тим не менш, в додатках мобільних телефонів і PDA MIPS не вдалося змістити міцно сталу там конкуруючу ARM -архітектуру.

Процесори під управлінням MIPS включають в себе: IDT RC32438; ATI Xilleon; Alchemy Au1000, 1100, 1200 ; Broadcom Sentry5; RMI XLR7xx, Cavium Octeon CN30xx, CN31xx, CN36xx, CN38xx and CN5xxx; Infineon Technologies EasyPort, Amazon, Danube, ADM5120, WildPass, INCA-IP, INCA-IP2; Microchip Technology PIC32, NEC EMMA and EMMA2, NEC VR4181A, VR4121, VR4122, VR4181A, VR5432, VR5500; Oak Technologies Generation; PMC-Sierra RM11200 ; QuickLogic QuickMIPS ESP; Toshiba Donau, Toshiba TMPR492x, TX4925, TX9956, TX7901.

Суперкомп'ютери MIPS[ред.ред. код]

Одним з найцікавіших застосувань архітектури MIPS є їх використання в багатопроцесорних обчислювальних суперкомп'ютерах. На початку 1990х компанія Silicon Graphics (SGI) перенаправила свій бізнес з графічних терміналів на ринок високопродуктивного обчислення. Успіх перших спроб компанії в області серверних систем (а саме, серія Challenge, заснована на R4400, R8000 і R10000) мотивував SGI створити набагато потужнішу систему. Використання R10000 дозволило компанії спроектувати систему Origin 2000, в кінцевому рахунку розширювану до 1024 ЦП, використовуючи власну міжсистемних зв'язків cc-NUMA (NUMAlink). Пізніше Origin 2000 породила нову систему — Origin 3000 , що вийшла з тими ж максимальними 1024 ЦП, але використала в розробці мікросхеми R14000 та R16000 з частотою до 700 МГц. Проте, в 2005 році, коли SGI прийняла стратегічне рішення про перехід на архітектуру Intel IA-64, суперкомп'ютери, базовані на MIPS були зняті з виробництва.

У 2007 році корпорація SiCortex представила новий багатопроцесорний персональний суперкомп'ютер, заснований на архітектурі MIPS. У його розробку лягли MIPS64 і високопродуктивна міжсистемна зв'язок з використанням топології графів Кауца (англ. Kautz graph). Дана система є гранично ефективної та обчислювально потужною. Її унікальний аспект — багатоядерний вузол обробки, інтегруючий шість ядер MIPS64, комутатор контролера пам'яті, міжсистемних зв'язків механізмів прямого доступу до пам'яті, локальну мережу з пропускною здатністю 1 Гбіт і PCI Express контролери. І все це на одному кристалі, який споживає 10 Вт енергії, але виконує максимум 6 мільярдів операцій з плаваючою крапкою в секунду. Найпотужніша конфігурація такого суперкомп'ютера — версія SC5832, що складається з 972 вузлів (всього 5832 ядер MIPS64) і виконує 8200000000000 операцій з плаваючою крапкою в секунду.

Loongson повертає до персоналізації[ред.ред. код]

Основна стаття: Loongson

Компанія Loongson, в надії обійти патент MIPS , випустила свою архітектуру, яка була повністю схожа з розробкою MIPS Technologies і підтримувалася ОС Linux. Так як виробництво процесорів Loongson було дешевшим, MIPS отримали можливість відродитися на ринку персональних комп'ютерів в особі Loongson. (Надалі Loongson купили ліцензію на MIPS — див основну статтю)

Процесори під управлінням MIPS також використовуються в нетбуках компаній iUnika, Bestlink, Lemote і Golden Delicious Computers.

MIPS IV[ред.ред. код]

MIPS IV  — це четверте покоління архітектури, являє собою розширену версію MIPS III і сумісний з усіма існуючими моделями MIPS. Перший випуск MIPSIV був представлений в 1994 році під назвою R8000. MIPS IV включив в себе:

  • Простий регістр + регістр адресації для завантаження і зберігання чисел з плаваючою точкою
  • Операції FMA і FMS з одинарною і подвійної точності для чисел з плаваючою точкою
  • Команди умовного переходу для цілих чисел і для чисел з плаваючою точкою
  • Додаткові умовні біти в регістрі контролю та стану числа з плаваючою точкою: в цілому 8 бітів.

MIPS V[ред.ред. код]

MIPS V  — п'ята версія архітектури, була представлена ​​21 жовтня 1996 року на Форумі мікропроцесорів 1996. Ця модель була розроблена для того, щоб підвищити продуктивність графічних 3D-додатків. В середині 1990х велика частина не вбудованих мікропроцесорів MIPS припадала на графічні термінали від SGI. Розробка MIPS V була доповнена цілочисельними мультимедійними розширеннями MDMX (MIPS Digital Media Extensions), які були представлені в той же день, що і MIPS V.

Реалізації MIPS V так ніколи і не були впроваджені. У 1997 році SGI представила мікропроцесори під назвами «H1» («Beast») і «H2» («Capitan»), які повинні були бути проведені в 1999 році. Але незабаром їх об'єднали, і в кінцевому підсумку в 1998 році ці проекти були скасовані.

В MIPS V був доданий новий тип даних — PS (pair-single), який являє собою два числа з плаваючою точкою подвійної точності (32-бітні), що зберігаються в 64-бітному регістрі з плаваючою крапкою. Щоб працювати з цим типом даних в режимі SIMD, були додані різні варіанти арифметичних, порівняльних операцій над числами з плаваючою точкою, а також команда умовного переходу. З'явилися нові інструкції для завантаження, реконфігурації і перетворення PS-даних. Це перша архітектура, зуміла реалізувати обробку чисел з плаваючою точкою в SIMD-режимі з наявними ресурсами.

Родина процесорів з архітектурою MIPS[ред.ред. код]

Першим комерційним мікропроцесором з архітектурою MIPS був мікропроцесор R2000 , представлений в 1985 році. У ньому були реалізовані операції множення і ділення, які виконувалися за кілька тактів. Пристрій множення і ділення не було тісно інтегровано в ядро ​​процесора, хоча й розміщувалось на тому ж кристалі; з цієї причини система команд розширена інструкціями для завантаження результатів множення і ділення в регістри загального призначення, ці інструкції блокували конвеєр.

Мікропроцесор R2000 міг бути завантажений як в режимі big-endian, так і в режимі little-endian, містив тридцять два 32-розрядних регістра загального призначення. Подібно процесорам AMD 29000 і Alpha мікропроцесор R2000 не мав окремого регістра прапорів умов, так як розробники порахували його потенційним «вузьким місцем». Слід зазначити, що лічильник команд безпосередньо недоступний.

Мікропроцесор R2000 підтримував підключення до чотирьох співпроцесорів, один з яких є вбудованим і забезпечує роботу з винятками, а також управління пам'яттю (MMU). У разі необхідності в якості ще одного співпроцесора можна було підключити мікросхему R2010, арифметичний співпроцесор, який містив тридцять два 32-розрядних регістра, які можна було використовувати як шістнадцять 64-розрядних регістрів для роботи з числами подвійної точності. Наступним в сімействі став R3000, який з'явився в 1988 році. Він містив кеш-пам'ять даних об'ємом 64 КБ (R2000 — 32 КБ). Крім того, R3000 забезпечував когерентність кеш-пам'яті при роботі в мультипроцесорних конфігураціях. Незважаючи на те, що в підтримці мультипроцессорности R3000 є ряд недоліків, на базі R3000 було створено декілька працездатних багатопроцесорних систем. Як і для R2000, для R3000 був створений арифметичний співпроцесор у вигляді окремої СБИС: R3010. Мікропроцесор R3000 став першим комерційно успішним процесором з архітектурою MIPS, було виготовлено більше мільйона процесорів. Прискорена версія R3000, що працює на тактовій частоті 40 МГц, названа R3000A, досягла продуктивності в 32 VUPs (VAX Unit of Performance). Подальший розвиток R3000A, мікропроцесор R3051, що працює на частоті 33,8688 МГц був використаний в ігровій приставці Sony PlayStation. Інші виробники також представили процесори, сумісні з R3000A: в Performance Semiconductor був розроблений R3400, в той час як компанія IDT створила R3500, обидва згаданих процесора мали в інтегрований математичний співпроцесор R3010. Першою системою на кристалі, що використовує процесор з архітектурою MIPS, стала розробка R3900 фірми Toshiba; дана мікросхема використовувалася в портативному комп'ютері, який працював під управлінням Windows CE. Був розроблений радіаційно-стійкий варіант R3000 з інтегрованим R3010, призначений для застосування в космічних апаратах, який отримав назву Mongoose-V .

Серія R4000 , випущена в 1991 році, розширила процесори MIPS до 64 бітів. (MIPS Technology була першою компанією випустила процесори з 64-бітової архітектурою) R4000 складається з 1300000 транзисторів, має вбудований кеш даних і кеш інструкцій (обидва по 8 Кб). У цьому процесорі зовнішня тактова частота 50 МГц подвоюється, а внутрішня тактова частота становить 100 МГц. Процесор R4400 виконаний на основі R4000, складається з 2200000 транзисторів, має вбудований кеш даних і кеш інструкцій (обидва по 16 Кб), а внутрішня тактова частота становить 150 МГц. Набір команд цих процесорів (специфікація MIPS II) було розширено командами завантаження і записи 64-розрядних чисел з плаваючою точкою, командами обчислення квадратного кореня з одинарною і подвійною точністю, командами умовних переривань, а також атомарними операціями, необхідними для підтримки мультипроцесорних конфігурацій. В процесорах R4000 і R4400 реалізовані 64-бітові шини даних і 64-бітові регістри.

MIPS, тепер є відділом SGI під назвою MTI , розробив недорогі процесори R4200, що послужили основою для майбутніх (ще більш дешевих) R4300i. Похідна цього процесора, NEC VR4300, використовувалася в ігрових консолях Nintendo 64 .

нижня сторона R4700 Orion, на якій видно кремнієвий чіп, виготовлений IDT і спроектований Quantum Effect Devices
лицьова сторона R4700 Orion

Quantum Effect Devices (QED), самостійна компанія, заснована розробниками MIPS, розробила серію процесорів R4600 Orion, R4700 Orion, R4650 і R5000. Якщо в R4000 збільшили тактову частоту, але пожертвували кількістю кеш-пам'яті, то QED приділили велику увагу і ємності кеш-пам'яті (доступ до якої можна отримати всього за 2 цикли), і ефективному використанню поверхні кристала. Процесори R4600 і R4700 використовувалися в недорогих версіях робочої станції SGI Indy, а також у перших маршрутизаторах Cisco (заснованих на MIPS), наприклад, серії 36х0 і 7х00. Мікропроцесор R4650 застосовувався в телевізійних приставках WebTV (нині — Microsoft TV). У процесорі R5000 FPU диспетчеризація операцій з плаваючою точкою (одинарної точності) була гнучкішою, ніж в R4000, і, внаслідок цього, робочі станції SGI Indys, базовані на R5000 відрізнялися кращою графічною продуктивністю, ніж R4400 з такою ж тактовою швидкістю і графічним апаратним пристроєм . Щоб підкреслити поліпшення після об'єднання R5000 і старої графічної плати, SGI дала їй нову назву. Трохи пізніше QED розробили сімейство процесорів RM7000 і RM9000 для ринку мереж і лазерних принтерів. У серпні 2000 року компанія QED була придбана виробником напівпровідників PMC-Sierra, і остання продовжила інвестування MIPS-архітектур. Процесор RM7000 включав в себе 256 Кб вбудованої кеш-пам'яті 2-го рівня і контролер для додаткової кеш-пам'яті 3го рівня. Були створені процесори RM9xx0 — сімейство SOC-пристроїв, в які включені такі периферійні складові (на північному мосту) як: контролер пам'яті, PCI-контролер, контролер Ethernet, а також швидкі пристрої введення-виведення (наприклад, високопродуктивна шина типу HyperTransport).

R8000 (представлений в 1994 році) був першою суперскалярної архітектурою MIPS, здатної здійснювати 2 цілочисельні інструкції (або з плаваючою точкою) і 2 інструкції звернення до пам'яті за один цикл. Дана розробка використовувала 6 схем: пристрій для цілочислових команд (16 Кб — команди і 16 Кб — кеш даних), для команд з плаваючою точкою, три вторинних дескриптора кеш-пам'яті ОЗУ (два для вторинного доступу до кеш-пам'яті + один для відстеження шини), а також кеш-контролер ASIC. Архітектура має два повністю конвейерізовать пристрою множення-складання (з подвійною точністю), які можуть передавати потік даних в 4 Мб внекрістального вторинного кеша. В середині 1990х процесори R8000 запустили SGI сервери POWER Challenge, а пізніше стали доступні на робочих станціях POWER Indigo2. Хоча продуктивність цього FPU і була найбільш підходящою для наукових співробітників, обмеженість його целочисленной продуктивності і висока ціна не змогли залучити більшість користувачів, тому R8000 був на ринку всього рік, і навіть зараз його навряд чи можна знайти.

У 1995 році був випущений R10000 . Цей процесор в однокристальному виконанні, працював з більш високою тактовою частотою, ніж R8000, а також включав в себе об'ємну (32 КБ) первинну кеш-пам'ять даних і команд. Крім того, він був суперскалярних, але це головне нововведення було несправне. Але навіть з простішим FPU, значно збільшена продуктивність цілочисельний обчислень, нижча ціна та висока щільність запису зробили R10000 кращим для більшості користувачів.

Усі пізніші проекти були засновані на ядрі R10000 . В R12000 був використаний 0.25 мікронний технологічний процес з метою зменшити чіп і досягти більшої тактовою швидкості. Виправлений R14000 мав вищу тактову частоту на додаток з підтримкою DDR SRAM для внекрістальной кеш-пам'яті. Слідом були випущені R16000 і R16000A, тактова частота яких була також збільшена; в них була вбудована додаткова кеш-пам'ять першого рівня, а їх виробництво вимагало дрібніших кристалів, ніж раніше.

Серед інших представників сімейства MIPS — R6000 , ЕСЛ-реалізація, виконана компанією Bipolar Integrated Technology . R6000 відноситься до покоління процесорів MIPS II. Його TLB і пристрій кеш-пам'яті значно відрізняються від інших представників даного сімейства. R6000 не приніс обіцяної вигоди, і, хоча був визнаний в деякій мірі корисним для комп'ютерів Control Data, він миттєво зник з основного ринку.

Мікропроцесори MIPS
Модель Частота (МГц) Рік Технологія розробки (μm) Транзистори (млн.) Розмір кристала (мм²) Число висновків Потужність (Вт) Напруга (В) Кеш даних (КБ) Кеш інструкцій (КБ) Кеш 2го рівня Кеш 3го рівня
R2000 8-16.67 1985 2.0 0.11 ? ? ? ? 32 64 НІ НЕМАЄ
R3000 12-40 1988 1.2 0.11 66.12 145 4 ? 64 64 0-256 Кб Зовнішня НЕМАЄ
R4000 100 1991 0.8 1.35 213 179 15 5 8 8 1 Мб Зовнішня НЕМАЄ
R4400 100-250 1992 0.6 2.3 186 179 15 5 16 16 1-4 Мб Зовнішня НЕМАЄ
R4600 100-133 1994 0.64 2.2 77 179 4.6 5 16 16 512 Кб Зовнішня НЕМАЄ
R4700 133 1996 ? ? ? 179 ? ? 16 16 Зовнішня НЕМАЄ
R5000 150-200 1996 0.35 3.7 84 223 10 3.3 32 32 1 Мб Зовнішня НЕМАЄ
R8000 75-90 1994 0.7 2.6 299 591 +591 30 3.3 16 16 4 Мб Зовнішня НЕМАЄ
R10000 150-250 1996 0.35, 0.25 6.7 299 599 30 3.3 32 32 512 Кб-16 Мб Зовнішня НЕМАЄ
R12000 270-400 1998 0.25, 0.18 6.9 204 600 20 4 32 32 512 Кб-16 Мб Зовнішня НЕМАЄ
RM7000 250-600 1998 0.25, 0.18, 0.13 18 91 304 10, 6, 3 3.3, 2.5, 1.5 16 16 256 Кб Внутрішня 1 Мб Зовнішня
R14000 500-600 2001 0.13 7.2 204 527 17 ? 32 32 512 Кб-16 Мб Зовнішня НЕМАЄ
R16000 700-1000 2002 0.11 ? ? ? 20 ? 64 64 512 Кб-16 Мб Зовнішня НЕМАЄ
R24K 750 + 2003 65 nm ? 0.83 ? ? ? 64 64 4-16 Мб Зовнішня НЕМАЄ

Формат інструкцій MIPS I[ред.ред. код]

Інструкції поділяються на три типи: R, I і J. Кожна інструкція починається з 6-бітного коду. На додаток до коду, інструкції R-типу визначають три регістра, область розміру зсуву регістра, і область функції; інструкції I-типу визначають два регістри і безпосереднє значення; інструкції J-типу слідують коду операції з 26-бітовим кроком.

Мова асемблера MIPS[ред.ред. код]

Дані інструкції мови асемблера мають пряму апаратну реалізацію, на відміну від псевдоінструкцій, які перед складанням транслюються в справжні складові інструкції.

  • Далі, реєстрові літери d, t, і s будуть позначати покажчики на номери і імена регістрів.
  • C позначає константу.
  • Усі наступні команди є власними.
  • Всі коди операцій і функцій представлені в шістнадцятковій системі числення.
  • Набір інструкцій MIPS32 ідентифікує, що число без знака, яка бере участь у складанні або вирахуванні, некоректно. Різницею між форматами числа зі знаком і без є не збільшення довжини операндів (або її зменшення), а здатність розпізнавати, чи було переривання та в разі переповнення, або ж переривання було проігноровано. Операнд константа, у відповідність з цими інструкціями, завжди повинен мати знак.

Цілочисельні операції[ред.ред. код]

MIPS має 32 регістра для цілочисельних операцій. Для виконання арифметичних обчислень дані повинні перебувати в регістрах. Регістр $ 0 завжди зберігає 0, а регістр $ 1 резервується для збірки (для зберігання псевдоінструкцій і великих констант).

Операції над числами з плаваючою точкою[ред.ред. код]

MIPS має 32 регістра з плаваючою крапкою. Регістри з'єднані по 2 для подвійної точності обчислень. Регістри з непарними номерами не можуть бути використані для арифметичних операцій або розгалуження, вони можуть лише частково вказувати подвійну точність в парі регістрів.

Псевдоінструкціі[ред.ред. код]

Ці інструкції приймаються мовою асемблера MIPS, проте вони не є реальними. Асемблер переводить їх в послідовності справжніх інструкцій.

Кілька інших важливих інструкцій[ред.ред. код]

  • NOP (без операції) (машинний код 0x00000000, інтерпретується в процесором як sll $ 0, $ 0, 0)
  • Break (розриви програми, використовується відладниками)
  • Системний виклик (використовується для системних викликів операційної системи)

Використання регістра транслювання[ред.ред. код]

Апаратна архітектура визначає наступні критерії:

  • Регістр загального призначення $ 0 завжди повертає значення 0.
  • Регістр загального призначення $ 31 використовується як регістра-посилання для команд переходу і зв'язку.
  • HI і LO використовуються для доступу до результатів множення / ділення, доступ до яких здійснюється командами mfhi (move from high) і mflo (move from low).

Це єдині обмеження, які апаратна архітектура накладає на використання регістрів загального призначення.

Різні пристрої MIPS реалізовують спеціальні угоди про виклики, які обмежують використання регістрів. Угоди про виклики повністю підтримуються комплексом ПО, але не потрібні апаратним забезпеченням.

Захищені регістри (за угодою) не можуть бути змінені викликом системи або процедури (функції). Наприклад, $ s-регістри повинні бути збережені в стеці процедурою, яка збирається ними скористатися; до $ sp і $ fp-регістрів прирощується константи, а після закінчення процедури регістри знову зменшуються. Протилежним прикладом служить регістр $ ra, який автоматично змінюється при його виклику будь функцією. $ T-регістри повинні зберігатися програмою перед викликом будь-якої процедури (якщо програмі потрібні дані, отримані після виклику).

Емулятори[ред.ред. код]

Серед Open Virtual Platforms існує безкоштовний емулятор OVP-sim, доступний для некомерційного використання, який являє собою бібліотеку моделей процесорів і платформ, а також програмних інтерфейсів, що дозволяють користувачеві проектувати власні моделі. Бібліотека моделей є відкритим ресурсом, написаному на мові С, і включає в себе ядра MIPS 4K, 24K і 34K. Дані моделі створені і підтримуються компанією Imperas, яка у співпраці з MIPS Technologies протестувала емулятор і відзначила його знаком MIPS-Verified. Зразки платформ, заснованих на MIPS включають в себе як апаратне забезпечення, так і платформи для завантаження немодифікованих двійкових образів Linux. Такі платформи-емулятори ефективні для навчання, а також доступні, безкоштовні і прості у використанні. OVPsim розроблений і підтримуваний Imperas працює з високою швидкістю (сотні мільйонів інструкцій на секунду), і може бути використаний для опису багатоядерних архітектур.

Існує вільно доступний емулятор MIPS32 (ранні версії могли імітувати тільки R2000/R3000), випущений під назвою SPIM і призначений для використання в навчанні. EduMIPS64 — це міжплатформовий графічний емулятор процесора MIPS64, написаний на мові Java з використанням графічної бібліотеки Swing. Він підтримує множину команд MIPS64 ISA і дозволяє користувачеві наочно побачити, що відбувається в конвеєрі, коли ЦП виконує програму на мові асемблера. Проект має строго освітні цілі і широко використовується на деяких курсах комп'ютерної архітектури в усьому світі.

Ще один GUI-емулятор процесорів MIPS — це MARS, теж розроблений в освітніх цілях, особливо ефективний разом з книгою Хеннессі Computer Organization and Design.

Більш просунуті версії безкоштовних емуляторів — Gxemul (раніше відомі як проекти mips64emul), а також проекти QEMU. Вони імітують різні моделі мікропроцесорів MIPS III і MIPS IV (як доповнення до комп'ютерних систем, що їх використовують).

Комерційні розробки емуляторів доступні в основному для вбудованого використання процесорів MIPS, наприклад, Virtutech Simics (MIPS 4Kc і 5Kc, PMC RM9000, QED RM7000), VaST Systems (R3000, R4000), і CoWare (MIPS4KE, MIPS24K, MIPS25Kf і MIPS34K).

Список процесорів на базі архітектури MIPS[ред.ред. код]

Примітки[ред.ред. код]

Джерела[ред.ред. код]

Посилання[ред.ред. код]