[неперевірена версія][неперевірена версія]
Вилучено вміст Додано вміст
IvanBot (обговорення | внесок)
Немає опису редагування
Рядок 15:
Хоча така реалізація і виключала б деякі дуже корисні операції, такі як множення і ділення, очевидно, що гранична продуктивність системи значно збільшилася б, так як мікросхеми змогли б працювати з більш високою тактовою частотою. Досягнення високої швидкості з використанням блокувань було б складним, тому що час, необхідний для установки блокувань, пропорційно тактовій частоті (залежної, в свою чергу, від розміру кристала). Ось чому виключення вищезазначених операцій стало спірним питанням.
 
Інша відмінність дизайну MIPS від конкуруючих з ним Berkеley-архітектур - це впроваджена в Berkеley-[[RISC]] можливість обробки виклику підпрограм. Щоб збільшити продуктивність настільки спільноїзагальної справизадачі, в Berkеley-RISC була використана технологія, яка називається регістровим вікном, яка, тим не менш обмежувала максимальну глибину багаторівневих викликів. Кожен виклик підпрограми вимагав свій набір регістрів, що призводило до необхідності збільшення їх кількості. А апаратна реалізація даного механізму займала додатковий простір в кристалі ЦП. Але Хеннессі вважав, що більш «ретельний» компілятор міг би знайти вільні регістри для передачі параметрів функції, і що всього лише збільшення числа регістрів могло б не тільки спростити цю задачу, але і збільшити продуктивність всіх операцій. Тому було прийнято рішення відмовитися від даної технології в MIPS.
 
Архітектура '''MIPS ''' була, в деякому відношенні, найтиповішою для '''[[RISC]] '''. Щоб заощадити біти в коді команди, в RISC було зменшено кількість інструкцій для кодування. В MIPS з 32 бітів слова всього 6 використовуються для основного коду, а інші можуть містити або єдиний 26-бітний адреса переходу, або до 5 полів, що встановлюють від 1 до 3 регістрів + довжина зсуву регістра. Існує і ряд інших форматів, наприклад, коли 2 регістра задаються безпосередньо виділеним 16-бітовим полем і т. д. Такий розподіл дозволило процесору завантажувати команду і необхідні їй дані в одному циклі, в той час як у старіших архітектурах (не були [[RISC]]), наприклад, таких як MOS Technology 6502, були потрібні окремі цикли для завантаження основного коду і даних.