MIPS: відмінності між версіями

[перевірена версія][перевірена версія]
Вилучено вміст Додано вміст
мНемає опису редагування
SimondR (обговорення | внесок)
правопис
Рядок 25:
Інша відмінність дизайну MIPS від конкуруючих з ним Berkeley-архітектур — це впроваджена в Berkeley-[[RISC (процесор)|RISC]] можливість обробки виклику підпрограм. Щоб збільшити продуктивність настільки загальної задачі, в Berkeley-RISC була використана технологія, яка називається регістровим вікном, яка, тим не менш, обмежувала максимальну глибину багаторівневих викликів. Кожен виклик підпрограми вимагав свого набору регістрів, що призводило до необхідності збільшення їх кількості. А апаратна реалізація даного механізму займала додатковий простір в кристалі ЦП. Але Хеннессі вважав, що «ретельніший» компілятор міг би знайти вільні регістри для передачі параметрів функції, і що всього лише збільшення числа регістрів могло б не тільки спростити цю задачу, але і збільшити продуктивність всіх операцій. Тому було прийнято рішення відмовитися від даної технології в MIPS.
 
Архітектура '''MIPS ''' була, в деякому відношенні, найтиповішою для '''[[RISC (процесор)|RISC]] '''. Щоб заощадити біти в коді команди, в RISC було зменшено кількість інструкцій для кодування. В MIPS з 32 бітів слова всього 6 використовуються для основного коду, а інші можуть містити або єдину 26-бітну адресу переходу, або до 5 полів, що встановлюють від 1 до 3 регістрів + величина зсуву регістра. Існує і ряд інших форматів, наприклад, коли 2 регістри задаються безпосередньо виділеним 16-бітовим полем і так далі. Такий розподіл дозволив процесору завантажувати команду і необхідні їй дані в одному циклі, в той час як у старіших архітектурах (що не були [[RISC (процесор)|RISC]]), наприклад, MOS Technology 6502, були потрібні окремі цикли для завантаження основного коду і даних.
 
Це було одним з головних удосконалень продуктивності, які пропонували RISC. Однак, варто сказати, що не RISC архітектури все ж досягли подібної швидкості, але іншими засобами (такими, як черги в ЦП).
 
=== Перша апаратна реалізація ===
У 1984 році, переконаний у комерційному успіху своєї розробки, Хеннессі покинув Стенфорд, щоб заснувати компанію MIPS Computer Systems. У 1985 році була реалізована перша версія мікропроцесора MIPS — '''R2000 ''', допрацьована в 1988 році і отримала назву '''R3000 '''. Ці 32-бітові процесори лягли в основу компанії в 1980-х і використовувалися переважно в SG-серіях робочих станцій. Нові комерційні проекти не відповідали Стенфордським науковим дослідженням, так як практично всі блокування виконувалися на апаратному рівні, до того ж операції множення і ділення були повністю реалізовані.
 
У 1991 році MIPS вперше був представлений як 64-бітний мікропроцесор, у версії R4000. '''R4000 ''' має розширений [[Translation lookaside buffer|TLB]], в якому запис містить не лише віртуальний адресу, але і віртуальний ідентифікатор адресного простору. Такий буфер усуває основні проблеми продуктивності мікроядра, досить повільного в архітектурах конкуруючих компаній ([[Pentium]], [[PowerPC]], [[DEC Alpha|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.
Рядок 56:
 
[[Файл:Ingenic JZ4730.JPG| thumb| 168px | [[Ingenic Semiconductor|Ingenic]] JZ4730 — приклад SOC, базованої на MIPS]]
У 1990-ті роки, '''MIPS '''-архітектура була широко поширена на ринку [[Вбудована система|вбудовуваних систем]]: для мереж, телекомунікацій, відео ігор, ігрових консолей, принтерів, цифрових приставок, цифрових телевізорів, [[xDSL]] і кабельних модемів, а також кишенькових комп'ютерів.
 
Низьке енергоспоживання і температурні характеристики вбудованих MIPS-архітектур, широкі можливості внутрішніх функцій роблять цей мікропроцесор універсальним для багатьох пристроїв.
Рядок 62:
=== Синтезовані ядра для ринку вбудованих систем ===
 
В останні роки більшість технологій, що використовуються в різних поколіннях '''MIPS ''', запропоновані у вигляді [[IP-cores|IP-ядер]] (стандартних блоків) для вбудованих реалізацій процесора. Більше того, запропоновані обидва типи ядер — засновані на 32 і 64 бітах, відомі як '''4 K '''і '''6 K '''.
Такі ядра можуть поєднуватися з іншими структурними елементами, такими як '''[[Математичний співпроцесор|FPU]] ''', системами [[SIMD]], різними пристроями введення / виводу і т. д.
 
Колись комерційно успішні ядра MIPS, і в даний час знайшли споживче та промислове застосування. Ці ядра можна знайти в нових маршрутизаторах [[Cisco]], [[Linksys]] та [[MikroTik]], кабельних і [[ADSL]] модемах, [[смарт-карта]] х, механізмах лазерних принтерів, цифрових приставках, роботах, кишенькових комп'ютерах, Sony PlayStation 2 і Sony PlayStation Portable. Тим не менш, в додатках мобільних телефонів і PDA MIPS не вдалося змістити міцно сталу там конкуруючу '''[[ARM (архітектура)|ARM]] '''-архітектуру.
 
Процесори під управлінням '''MIPS ''' включають в себе: [[Integrated Device Technology|IDT]] RC32438; [[ATI Technologies|ATI]] Xilleon; [[Alchemy (процесори)|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]] [[PIC#32-бітові мікроконтролери|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 і високопродуктивна міжсистемна зв'язок з використанням топології графів Кауца ({{lang-en | Kautz graph}}). Дана система є гранично ефективної та обчислювально потужною. Її унікальний аспект — багатоядерний вузол обробки, інтегруючий шість ядер MIPS64, комутатор контролера пам'яті, міжсистемних зв'язків механізмів прямого доступу до пам'яті, локальну мережу з пропускною здатністю 1 Гбіт і [[PCI Express]] контролери. І все це на одному кристалі, який споживає 10 Вт енергії, але виконує максимум 6 мільярдів операцій з плаваючою крапкою в секунду. Найпотужніша конфігурація такого суперкомп'ютера — версія SC5832, що складається з 972 вузлів (всього 5832 ядер MIPS64) і виконує 8200000000000 операцій з плаваючою крапкою в секунду.
Рядок 78:
Основна стаття: [[Loongson]]
 
Компанія [[Loongson]], в надії обійти патент '''MIPS ''', випустила свою архітектуру, яка була повністю схожа з розробкою '''MIPS Technologies ''' і підтримувалася ОС [[Linux]]. Так як виробництво процесорів Loongson було дешевшим, MIPS отримали можливість відродитися на ринку персональних комп'ютерів в особі Loongson. (Надалі Loongson купили ліцензію на MIPS — див основну статтю)
 
Процесори під управлінням MIPS також використовуються в [[нетбук]]ах компаній iUnika, Bestlink, Lemote і Golden Delicious Computers.
Рядок 86:
MIPS IV включив в себе:
* Простий регістр + регістр адресації для завантаження і зберігання чисел з плаваючою точкою
* Операції '''FMA ''' і '''FMS ''' з одинарною і подвійної точності для чисел з плаваючою точкою
* Команди умовного переходу для цілих чисел і для чисел з плаваючою точкою
* Додаткові умовні біти в регістрі контролю та стану числа з плаваючою точкою: в цілому 8 бітів.
Рядок 95:
Реалізації 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 і [[DEC Alpha|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 '''.
 
[[Файл:IDT R4700 diephoto2.jpg| thumb | нижня сторона R4700 Orion, на якій видно кремнієвий чіп, виготовлений [[Integrated Device Technology|IDT]] і спроектований Quantum Effect Devices]]
[[Файл:KL IDT R4700 MIPS Microprocessor.jpg|thumb|лицьова сторона 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, він миттєво зник з основного ринку.
 
{| Class = wikitable summary = "This table contains some specifications for common MIPS microprocessors. Each microprocessor is given the frequency in megahertz, the release year, the fabrication process in micrometers, the number of transistors (in millions), the size of the die in square millimeters, the pin count, the power dissipation in watts, its voltage, and the sizes of the data, instruction, L2 and L3 caches. "